楊鍵(天津渤化石化有限公司,天津 300452)
西門子PLC控制系統輪巡功能的設計與實現
楊鍵(天津渤化石化有限公司,天津 300452)
本文提出采用一種基于MODBUS RTU(RS485)通訊協議,實現西門子PLC系統作為master實現對多個slave站的通訊應用,介紹了西門子PLC作為master的組態設計與實現。
MODBUS;PLC;通訊
在目前的工業控制領域,對同一廠區的不同控制系統之間要求遠程監控控制的需求不斷加大。通過利用MODBUS RTU Master/Slave協議,實現主站PLC對多從站進行數據采集和控制,保證了可靠有效的實時數據傳遞和控制效果。
1.1 MODBUS通訊協議
Modbus協議是使用了一個可以使網絡上的各個控制器能夠識別的消息結構。各個控制器之間通過識別消息,來完成需要的動作。Modbus協議可以將不同生產廠商的設備連接到一起形成控制網絡,進行監控控制。在中國,Modbus已經成為國家標準GB/T19582-2008。Modbus網絡要求只可以有一個mas?ter,網絡上所有的消息都由它發出。每條網絡最大有247個slave控制器。
1.2 Modbus傳輸模式
Modbus協議有ASCII或RTU兩種傳輸模式。本文采用RTU模式。用RTU模式傳輸的數據是8位二進制字符且報文字符必須以連續數據流的形式傳送。
1.2.1 主機請求數據報文格式
如表1所示。(功能碼以03為例)

表1 主機請求數據報文格式表
1.2.2 從站響應讀數命令報文格式
如表2所示。(功能碼以03為例)

表2 從站響應讀數命令報文格式表
2.1 西門子PLC功能塊
2.1.1 DB塊構建
我們以S7組態環境為例,因為Modbus協議通訊報文8位二進制字符固定格式,所以我們要先構建第一個DB塊,起名以DB1為例,用來完成master站發送請求報文信息的收集。這個DB塊中需要定義一個字節的slave站地址(byte類型)、一個字節的功能碼(byte類型)、兩個字節的起始地址(word類型)、和兩個字節的數據長度(word類型)。然后,我們構建第二個DB塊,起名DB2為例,這個DB塊主要用來接收slave站的回復數據。
2.1.2 FB7,FB8功能塊
PLC控制器要完成發送與接受功能,需要西門子功能塊庫中的FB7接收功能塊與FB8發送功能塊。而將它們使用的時候會自動生成背景DB塊,為了方便使用將DB命名為相應的DB7與DB8。
2.1.3 FC功能塊
FC功能塊完成輪巡程序的寫入,最后將FC塊在OB1或OB35中調用即可完成輪巡。
2.2 輪巡程序
a.將第一個slave站地址,功能碼、起始地址、數據長度分別寫入DB1的對應地址。
b.將第一個slave站接收DB塊的號碼(本文為2)寫入DB7的DBW4,將接收起始地址寫入DB7的DBW6。
c.重復前2步操作完成剩余slave站。
d.為每個slave站程序設置入口條件,條件滿足啟動,不滿足等待。
e.設置FB7的LADDR管腳為CP341卡件的地址,啟動條件為對應的slave站的條件。設置FB8的LADDR管腳為CP341卡件的地址,DB_NO管腳填入1,DBB_NO管腳填入0,SF管腳填入'S',LEN管腳填入6,R_TYP管腳填入'X',REQ管腳為對應的slave站啟動條件。
2.3 CP341卡件設置
在CP341中設置modbus master類型、波特率、停止位、奇偶效驗位等參數后load。
Modbus RTU通訊是現場兩個或幾個不同控制系統實現通訊的一個簡單例證,成功的解決了西門子PLC和第三方的通訊問題,節省了因標準儀表信號布線所需的大量電纜,并且可靠性得到了大幅度提高,是我們今后現場信號采集通訊值得借鑒的一個典型代表。
[1]潘洪躍.基于Modbus協議通信的設計與實現.計量技術, 2002,(4).
[2]封亞斌.采用串口通信技術實現Modbus數據通信.自動化儀表,2004,25(10):56-58.
[3]吉順平.西門子PLC與工業網絡技術.機械工業出版社, 2008.
[4]王海波.基于CP341的Modbus RTU通信的設計與實現.工礦自動化,2009,8:89-91.
[5]西門子技術手冊.CP340_CP341_CP440_CP441通訊及編程.2010:37-44.