鄭騰飛 王思涵
中國核電工程有限公司 北京 100048
隨著現代大型工業生產自動化的不斷興起和對控制過程要求的日益復雜,自動化控制系統在工業控制中得到了廣泛的應用?,F代過程控制系統對于過程設備的開放性和交互性提出了越來越高的要求,目前工業控制所用PLC種類繁多,很多場合需要同一品牌不同型號PLC之間進行通信,或者不同品牌PLC之間也需要進行通信,采用Modbus協議可解決控制系統相互之間、控制器經由網絡和其他設備之間可以通信。它已成為一種通用的工業通信標準,有了它可以使不同品牌的控制系統組建成統一的工業網絡,完成對自動化控系統的集中監控。
浙江中控JX300XP系統吸收了近年來快速發展的通信技術、微電子技術,應用最新信號處理技術、軟件設計技術和現場總線技術,采用微處理器和成熟的控制算法,全面提高了自動控制系統的性能,同時實現多種總線兼容和異構系統綜合集成,使各種國內外品牌的DCS、PLC及現場智能設備都可以接入到JX-300XP控制系統中,使其能適應更廣泛更復雜的應用要求。
Modbus是一種串行通信協議,是Modicon公司為實現可編程邏輯控制器(PLC)通信而發表。目前,Modbus已經成為工業領域通信協議的業界標準,并且現在是自動控制系統之間常用的通信方式。Modbus比其他通信協議使用的更廣泛的主要原因是其更易于部署和維護且通信距離長。
Modbus允許多個設備連接在同一個網絡上進行通信,Modbus協議目前存在用于串口、以太網以及其他支持互聯網協議的網絡的版本。關于串行連接,有兩種方式的Modbus通信,它們在數據格式和協議細節上略有不同。Modbus-RTU通信:在消息中的每個8Bit字節包含兩個4Bit的十六進制字符。這種方式的主要在同樣的波特率下,可比ASCII方式傳送更多的數據,而Modbus ASCII通信是將消息中的每個8Bit字節都分為兩個ASCII字符發送。這種方式的主要優點是字符發送的時間間隔可達到1秒而不產生錯誤[1]。
基于JX300系統的Modbus通信硬件實現方式有兩種,即通過XP244和XP248通信板卡都可以實現modbus-RTU通信,XP244板卡通信驅動程序僅支持通過SCX語言編寫實現,而XP248可以通過SCControl圖形化語言進行通信組態,AdvanTrol-Pro軟件內部集成了通信設置功能塊、Modbus-RTU功能塊、HostLink功能塊等。利用軟件提供的各種運算功能塊,XP248還可以根據需要將通信回來的數據實現復雜的運算。本文選用XP248卡件來搭建整個通信網絡,XP248多串口通信卡是JX300系統與PLC、變頻器、儀表等智能設備等通信的接口模塊,其支持4路串口的并發工作,每路串口可同時掛接設備數量最多不超過32個。本文重點介紹系統的通信共包含兩路,一路與西門子S7-200smart通信讀取的數據,另外一路與現場各路儀表進行通信[2]。

圖1 系統架構圖
本系統軟件程序是基于浙江中控組態軟件AdvanTrol-Pro2.80版本編寫的。AdvanTrol-Pro是一款支持多種實現方式的圖形編程軟件,是專門為SUPCON系列產品提供的一套組態工具,依據IEC61131-3標準,為用戶提供高效的組態環境,與系統組態軟件聯合完成對系統的組態,是SUPCON控制系統軟件的重要組成部分。
所選用的XP248與主控制卡都掛載在SCnet網絡上,故XP248卡件需要占用SCnet網絡的兩個IP地址。XP248的組態方法與主控制卡相同,通過撥碼開關設置卡件的通信地址、控制周期默認為500ms??哂喾绞接捎脩暨x擇。
在XP248下創建通信變量表,用于存放所有掛載設備讀出或要寫入下掛設備的數據,創建方式與主控點表的創建方式一致,變量分為1字節變量、2字節變量、4字節變量、8字節變量,分別用于存放開關量、半浮點型(JX300特有)、浮點型、累積量數據。XP248通過這些變量與控制系統的服務器進行數據交互。

圖2 通信點表組態
通信程序編寫分為四個部分,首先是確定各個通信站點的站號,站號可以選擇0-254內的任一值作為站號,本項目共包含5個通信站,其中JX300XP下的XP248設定為主站,站號為6,與之通信的s7-200samrtPLC以及3塊智能儀表設置為從站,站號分別為2、3、4、5。
其次是通過組態軟件提供的GW_SETCOM模塊對通信參數進行設置,將與s7-200smart通信的波特率9600、數據位8位、停止位1位,校驗方式選擇為偶校驗、端口號為0號端口,而與另外三塊儀表的通信的端口號選擇1號端口,其他參數與PLC通信的參數設置方法一致,但參數的設置要與從站的相關參數設定相匹配;理論上可以將本項目的PLC與三個儀表掛接在一個485總線上,綜合考慮以往的項目經驗,不同類型設備掛接在同一總線由于高電平的誤差會導致較多的通信故障產生,由于XP248模塊配備了4個總線接口,有足夠的余量,故將從站PLC和三塊儀表分別掛在不同的總線下,這樣將有效的減小調試問題發生的概率。

圖3 通信程序
通過GW_MODBUS_RTU主站模塊調用ModBus協議,建立從站數據與主站中的自定義變量間的映射關系,所設定的參數包括從站地址Slave、超時時間AckTim、功能號Func、數據起始編號Start及操作的寄存器個數等。該模塊支持的Modbus功能包括:讀線圈狀態、讀輸入狀態、讀保持寄存器、讀輸入寄存器、強迫設置一個線圈、預置單個寄存器、強迫設置多個線圈、預置多個寄存器等8個類別。
最后使用GW_GETMORE功能塊將執行后Modbus-RTU命令緩沖區的數據寫入到新創建的變量表中,寫入變量表是按照從命令緩沖區讀取的順序進行寫入的。在此需要設置讀命令緩沖區的讀取順序Serial、所要寫入的自定義變量類型DataType、自定義變量的起始ID號VarId(自定義量表中的No.號)以及連續存取數量的個數。
該部分組態需嚴格按照先定義串口的通信參數,然后讀取數據到命令緩沖區,最后組取數或置數模塊的順序進行。為方便調試,SCControl軟件還提供了豐富的串口命令診斷函數,通過這些功能塊可以軟件調試環境中,獲取串口的收、發次數,命令的收、發次數,命令的通信質量碼等信息。
采用本文的方法編寫的modbus-RTU通信方式,使用戶可以通過功能塊的方式實現與智能儀表及PLC的通信,這種方式使通信程序更加簡潔易讀,在調試過程中更加易于查找問題。在多個項目中應用該方法編制的通信程序穩定可靠,提高了現場調試人員排除故障的效率。