1 引言
在傳統(tǒng)的plc——變頻控制集成系統(tǒng)中,變頻器的啟動/停止與故障監(jiān)控由plc通過開關量實現(xiàn)端對端控制。變頻器頻率是由plc通過模擬量輸出端口輸出0~5(10)v或4~20ma信號控制,需要plc配置昂貴的模擬量輸出端口模塊。變頻器出現(xiàn)故障時由plc讀取變頻器的故障報警觸點,對具體故障原因并不清楚,需查詢變頻器報警信息后再閱讀變頻器說明書才知道。隨著交流變頻控制系統(tǒng)及通訊技術的發(fā)展,可以利用plc及變頻器的串行通訊的方式來實現(xiàn)plc對變頻器的控制。
2 變頻器的選型
danfoss vlt系列變頻調速器提供串行通訊技術的支持。它所支持的串行通訊技術包括標準rs-485、profidrive、lonworks在內的多種現(xiàn)場總線方式。其中,rs-485通訊方式為用戶提供了無需附加任何費用的、最為廉價實用的串行通訊方式。只需按照danfoss vlt變頻器規(guī)定的通訊數(shù)據結構、控制字和狀態(tài)字格式發(fā)送數(shù)據即可實現(xiàn)與vlt變頻的通訊。vlt為用戶提供了兩種控制字和狀態(tài)字格式標準:即danfoss標準的danfoss fc協(xié)議和profibus標準的profidrive協(xié)議。其中fc協(xié)議為用戶提供了更多的與vlt有關的控制信息和狀態(tài)信息。本項目中選用danfoss fc協(xié)議。
3 plc的選型
西門子工控產品在工控領域應用市場中有較高的占有率。s7-200系列是西門子simatic plc家族中的小規(guī)模plc成員,自由通訊口方式是s7-200 plc的一個特色的功能,它使s7-200 plc可以由用戶自己定義通訊協(xié)議。利于自由通訊口方式,在本系統(tǒng)中plc可以與變頻器和方便連接。plc通過自由通訊口方式與變頻器通訊,控制變頻器的運行,讀取變頻器自身的電壓、電流、功率、頻率和過壓、過流、過負荷等全部報警信息等參數(shù),這比通過外部端口控制變頻器的運行具有較高的可靠性,節(jié)省了plc寶貴的i/o端口,又獲的了大量變頻器的信息。在本例中,作者將按照danfoss fc協(xié)議來對s7-200的自由口進行編程。
4 vlt串行通訊
4.1 vlt通訊原理
vlt變頻器的串行通訊為異步半雙工的方式,使用字節(jié)奇偶校驗和塊傳送異或校驗方法。每個變頻器都配備有一個標準的rs-485通訊端口,使協(xié)議可以通過rs-485電氣接口來進行傳輸。plc為主機,變頻器為從機,系統(tǒng)電碼的傳輸由主機控制,主機不斷發(fā)出某個地址的電碼給從機,等待從機的響應。主機最多能帶31個從機,在有中繼器的情況下,可以增加到126個從機,也就是從機的地址最多可以設定到126。通訊時,每一個字節(jié)從一個起始位開始實行傳送,然后再傳遞8個數(shù)據位,相應地組成一個字節(jié),每個字節(jié)由一個奇偶校驗位來驗證傳送的正確性,然后由一個終止位結束。這樣一個字節(jié)共由11個位組成。
4.2 vlt電碼結構
每個電碼由一個起始字節(jié)(stx)開始,這個起始字節(jié)為stx=02h。隨后緊跟一個表示電碼長度(lge)的字節(jié)和表示變頻器地址的字節(jié)(adr)。然后是一些數(shù)據字節(jié)(隨電碼類型而變)。整個電碼由一個數(shù)據控制字節(jié)(bcc)來結束。結構如附表。
附表 vlt電碼結構
在上述數(shù)據結構中:
(1) pke占用兩個字節(jié),包括參數(shù)命令類型和參數(shù)數(shù)目;
(2) ind為索引,也占用兩個字節(jié),索引字節(jié)用于表明它是一個讀命令還是寫命令。在讀命令中必須具有0400h的格式,在寫命令中必須具有0500h的格式;
(3) pwe為參數(shù)值塊。占用四個字節(jié),分為高字(pwe h)和低字(pwe l)!氨热缰鳈C要改變當前的變頻器參數(shù),新的參數(shù)就應寫在參數(shù)pwe中發(fā)送給變頻器;”
(4) pcd為過程塊,占用4個字節(jié)。它有兩種狀態(tài),當主機發(fā)給從機時,pcd1為控制字,pcd2為參考值;當從機發(fā)給主機時,pcd1為狀態(tài)字,pcd2為當前的輸出頻率;
(5) bcc為數(shù)據控制字節(jié)。由它來對接收到的命令進行檢驗正確與否。它的初始值為0,然后對該字節(jié)以前的所有字節(jié)進行異或。
5 plc編程示例
5.1 變頻器初始化子程序
plc在第一次掃描時執(zhí)行初始化子程序,對端口及rcv指令進行初始化。為了增加程序的可靠性,在初始化完成后,如果檢測到端口空閑時則運行rcv指令使端口處于接受狀態(tài)。初始化子程序如下:
network 1 // 網絡標題
檢測端口空閑可編在主程序中
// 設定端口屬性
ld sm0.0
movb 73, smb30
network 2
// 接收信息狀態(tài)
&nb