許暉 柯常國 沈楓
(中國船舶重工集團公司712研究所, 武漢 430064)
隨著自動化系統中設備分布日趨分散,現場總線系統的應用日益普遍。現場總線系統實現了數字和模擬輸入/輸出模塊、智能信號裝置和過程調節裝置與可編程邏輯控制器(PLC)和 PC之間的數據傳輸,把I/O通道分散到實際需要的現場設備附近,使安裝和布線的費用開銷減少到最小,從而使成本費用大大地節省。另外,標準化的現場總線具有“開放”的通信接口,允許用戶選用不同制造商生產的分散I/O裝置和現場設備[1]。Modbus 協議是應用于電子控制器上的一種通用語言。通過此協議,不同廠家的控制器之間可以通信,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。在眾多的使用場合,普遍存在各種專用控制系統混合使用的情況,這些專用控制系統包括PLC、數據采集器和各種智能儀表,幾乎所有控制系統都具有Modbus 通訊接口,使得系統間變得相對簡單。
某拖動系統由變頻器、異步電動機、上位監控系統組成,該拖動系統采用 HARSVERT-A高壓變頻器驅動異步電動機,變頻器采用西門子S7-200系列PLC。
上位監控系統采用施耐德 M340控制器,M340通過Modbus與變頻器S7-200進行數據交換。M340通過Modbus對變頻器進行遠程遙控啟動、停止、頻率給定等控制,并實時將變頻器的運行狀態和相關電氣參數讀取回來。控制網絡如圖1所示。

圖1 控制網絡
通訊協議是對數據傳送方式的規定,包括數據格式和數據位的定義等通訊雙方必須共同遵守才能正確地傳送數據,完成特定的控制功能。Modbus通訊協議是一種適用于工業控制的主從結構式串口通訊協議,可用于實現簡單的主從結構式網絡監控,協議具有兩種傳輸模式:RTU模式和 ASCII模式,其中 RTU模式信息幀中的 8位數據包括兩個4位16進制字符,相對于ASCII模式表達相同的信息只需較少的位數,在相同通訊速率下較ASCII模式具有更大的信息量。所以通常情況下較多采用RTU模式[2,3]。
在一個通訊系統中,只能選用一種通訊方式,兩種方式不能并用。在我們的應用系統中一般使用RTU 的通訊方式,后面的敘述都是以RTU通訊方式為基礎。
Modbus RTU通訊協議的報文格式如表1所示,它沒有起始位,也沒有停止位,而是以至少3.5個字符間隔時間標志開始和結束,信息幀包括站地址、功能碼、數據和CRC校驗構成,所有字符位由16進制組成。如下表1所示。Modbus 通訊協議將通訊的雙方規定為“主站”(MASTER)和“從站”(SLAVE)。每臺從站都有自己的唯一編號,這個編號被稱作從站地址,地址范圍為1-254,通訊時先由主站發出通訊申請指令字符串,指令字符串由從站地址開頭,從站只接受與自己地址相同的指令字符串,然后根據功能碼類型,做出相應的回答,對發送給其他從站的指令字符串則不予理會。

表1 RTU模式下的信息幀格式
S7-200系列小型 PLC可應用于各種自動化系統。緊湊的結構、低廉的成本以及功能強大的指令集使得S7--200 PLC成為各種小型控制任務理想的解決方案。S7-200產品的多樣化以及基于Windows的編程工具,使您能夠更加靈活地完成自動化任務。
使用 S7--200的自由端口功能,支持大部分常用 Modbus功能。以下是 S7-200所支持的Modbus功能如表2:

表2 功能碼
S7-200 CPU上的通信口Port0、port1均可以實現Modbus通訊,西門子提供port0作為RTU從站的庫函數,通過安裝Tool Box可以獲得RTU從站庫進行調用。作為 RTU從站,S7-200需要調用程序庫“MBUS_INIT”和“MBUS_SLAVE”[4]。
編程時使用SM0.1調用子程序 MBUS_INIT進行初始化,使用SM0.0調用MBUS_SLAVE,并指定相應參數。關于參數的詳細說明如下:
圖中參數意義如下:


圖2 調用Modbus RTU通信指令庫
由子程序參數HoldStart和MaxHold指定的保持寄存器區,是在S7-200 CPU的V數據存儲區中分配,此數據區不能和庫內存數據區有任何重疊,否則在運行時會產生錯誤,不能正常通信。另外,Modbus 中的保持寄存器區按“字”尋址,即MaxHold規定的是VW而不是VB的個數。
例子中,設定Modbus 保持寄存器區從 VB0開始(HoldStart=VB0),并且保持寄存器為1000個字(MaxHold=1000),因保持寄存器以字(兩個字節)為單位,實際上這個通信緩沖區占用了VB0~VB1999共2000個字節。因此分配庫指令保留數據區時至少要從VB2000開始。當然保持區不一定要從VB0開始。
包含Modbus RTU從站指令庫的項目編譯、下載到CPU中后,在編程計算機(PG/PC)上運行一些Modbus 測試軟件(比如MODSCAN)可以檢驗S7-200的Modbus RTU通信是否正常,這對查找故障點很有用。測試軟件通過計算機串口(RS-232)和PC/PPI電纜連接CPU。如果必要,須將PC/PPI電纜設置在自由口通信方式。
M340是施耐德電氣UNITY家族的新成員,性能介于TWIDO和Premium之間,M340充分支持工業和基礎設施自動化控制系統的“透明就緒”架構,成為Modicon Premium和Quantum系列產品線的最佳拓展。Modicon M340具有卓越的運算能力,能精確進行整數或浮點數運算,每毫秒可處理7K條指令。CPU 擁有高達4MB程序空間,最多處理70K條指令,自帶8MB存儲卡,方便程序備份。除了集成USB口、CPU模塊,還內置了2個通訊接口( CANOpen、Ethernet或Modbus),能夠方便高速地連接外部設備和網路[5]。
本系統CPU采用P34 2010,帶有Modbus通訊口和CANOpen。在硬件配置中設置如圖3所示。主要設置參數如下:


圖3 M340的Modbus設置
硬件設置完成后,通訊連接建立。通過軟件編程來實現通訊的數據交換。通過調用READ_VAR和 WRITE_VAR來進行數據交換。M340作為主站,通過調用 READ_VAR和WRITE_VAR支持的功能如下表3。

表3 M340的Modbus主站功能
本系統中,與變頻器的數據交換通過功能 3和功能16完成,從變頻器讀回來的數據從40004到40015,共12個字,包括運行狀態和電氣參數等,發送到變頻器的數據從40000到40003,共4個字,主要包括啟動停止控制指令和頻率給定等。程序如圖4、圖5所示。
選用 Modbus現場總線來構造控制系統網絡,不僅降低改造成本,減少接線,提高了系統的智能化和自動化程度,系統監控信息更加豐富,而且使整個系統的控制性能得到了很大的提高。經試驗驗證,提高了系統的可靠性、可用性、抗干擾性和可維護性。

圖4 讀數據程序

圖5 寫數據程序
[1]陽憲惠. 現場總線技術及其應用. 北京:清華大學出版社, 1999.
[2]Modicon. Inc. Modicon Modbus Protocol Reference Guide, 1996.
[3]GB/Z 19582-2004基于Modbus協議的工業自動化網絡規范. 中華人民共和國國家標準化指導性技術文件, 2004,9.
[4]SIMATIC S7-200可編程序控制器系統手冊,西門子公司,2008.
[5]Modicon M340 Unity Pro 串行鏈路用戶手冊,施耐德電氣,2006.11.