高 陽
(上海中廣核工程科技有限公司,上海 200241)
通訊協議是應用于工業控制器與設備上的通用語言,通過選用某一種共同支持的通訊協議,不同品牌的控制器與設備可以組成控制網絡,實現控制系統的構建。Modbus TCP是一種在工控網絡中常用的通訊協議,具有標準、開放、免費等特點,可實現控制器與其他設備之間的遠程通信。中廣核國產化PLC可以完美支持Modbus TCP通訊協議,可以通過Modbus TCP通訊協議靈活方便地構建控制系統,應用于自動化控制、醫療、新能源等行業。
Modbus協議是一種廣泛應用于工業控制領域的通訊協議,它規定了控制器能區別和運用的信息結構。通過Modbus協議,控制器與控制器之間、控制器和接入網絡中的設備之間可以實現通信。Modbus協議使用的是主從通訊技術,即由主設備主動查詢和操作從設備。Modbus通訊物理接口可以是串口,也可以是以太網口。其通信遵循以下過程:主設備向從設備發送請求,從設備分析并處理主設備的請求,然后向主設備發送結果,如果出現任何差錯,從設備將返回一個異常功能碼[1]。
Modbus是一種應用層報文傳輸協議,Modbus報文傳輸服務提供設備之間的客戶機/服務器通信,這些設備接入一個網絡中。網絡中傳遞的有4類報文:Modbus請求、Modbus證實、Modbus指示和Modbus響應。Modbus請求是服務器在網絡上發送用來啟動事務處理的報文;Modbus指示是客戶機接收的請求報文;Modbus響應是客戶機發送的響應報文;Modbus證實是服務器接收的響應報文[2]。
Modbus TCP協議是Modbus家族中應用于自動控制裝置上的開放的通訊協議,用于實現不同類型的總線或網絡連接的設備之間的通信。物理層和數據鏈路層是標準的以太網協議,網絡層是標準的IP協議,傳輸層是標準的TCP協議,應用層嵌入Modbus協議。在Modbus TCP協議網絡結構模型中,第一層為Ethernet物理層,第二層為IP協議網絡層,第三層為TCP協議傳輸層,第四層為Modbus/TCP協議層,第五層則為Modbus協議應用層[3]。
在工業控制領域中,Modbus TCP協議廣泛應用于儀器儀表、人機界面及遠程監控系統等設備與PLC之間的通訊。
PLC作為工業自動化最典型的代表之一,其最早的作用是為了進行邏輯控制,取代繼電器。PLC可以簡單地定義為一種用于工業環境下的微型計算機,其穩定性十分優秀。PLC的硬件組成與計算機十分相似,都具備CPU、I/O模塊、電源模塊、底板、通訊設備和外界設備,采用了可編程的存儲器對邏輯運算、順序控制、計時計數和算數運算進行存儲,并通過數字的、模擬的輸入輸出指令控制各種類型的工業生產過程。
自從工業4.0的概念被提出,國內的工控水平得到不斷提升,國內PLC市場不斷增長,其中以新能源、環保等新興市場的增長速度尤為明顯。從國內市場規模來看,據統計2020年中國PLC行業市場規模為125億元,同比上升9.65%。未來在自動化升級和智能制造的大背景下,PLC市場規模有望持續擴張。值得關注的是,據2020年統計數據,西門子、三菱、歐姆龍、羅克韋爾、臺達和施耐德等6家外資品牌在國內PLC市場的占有率高達83%[4],國產品牌PLC市場占有率情況并不樂觀。
在當前國際貿易摩擦不斷的大背景下,為了解決工業控制器“卡脖子”問題,保證國內工業控制器的自主化與安全性,中廣核集團積極響應國家號召,自主開發出L4000和L7000系列可編程邏輯控制器(PLC),可廣泛應用于自動化控制、醫療、新能源等行業。
中廣核國產化PLC具有如下6個特點:
1)處理能力強大,采用多任務實時操作系統,最多支持16個任務,最小任務周期1ms。
2)通訊能力強大,支持RS232/422/485、CANOPEN、PROFIBUS DP、MODBUS TCP、OPC UA、MQTT等通訊,滿足與常見工業設備通訊的需求。
3)模塊種類齊全,具有通訊、模擬量、數字量、溫度采集、計數器等多種類模塊,完美支持工控系統的構建。
4)環境友好,存儲溫度-40℃~70℃,運行溫度-30℃~60℃,支持-30℃低溫啟動,滿足IEC61131-2中環境、電磁、機械測試等級要求,可以鹽霧環境下穩定運行。

圖1 國產化PLC典型應用架構Fig.1 Typical application architecture of localized PLC
5)高可靠性,傳承核電基因擁有核電品質,MTBF>50萬小時,系統可靠性高達99.99%。
6)運維方便,支持遠程維護與遠程固件升級,以及遠程用戶程序批量下載。
以此為基礎,中廣核國產化PLC可以實現工控領域中常用的主控制站-遠程控制站結構,接入所需種類的傳感器并實現對執行機構的控制,同時支持本地人機界面與遠程監控系統,并可以將數據上傳至服務器,乃至云端[5]。
中廣核國產化PLC以標準IEC61131-3控制器軟件開發平臺CoDeSys為開發環境,完美支持IEC61131-3編程語言與PLCopen編程規范。為了方便行業應用,中廣核國產化PLC提供了豐富的功能模塊與行業算法庫,幫助用戶提高開發效率與代碼質量。
中廣核國產化PLC也支持使用高級編程語言的開發,通過Tornado實時操作系統開發環境,能夠實現對PLC系統底層程序的編寫及調試等工作。Tornado為PLC系統開發人員提供了一個開發與調試環境,不僅集成了CNU工具箱,而且提供了Launcher、WindSh等一系列加載調試器,能方便客戶快速實現C語言程序的開發,并部署運行到中廣核國產化PLC中。
為了應用方便,中廣核國產化PLC還配備有上位機管理軟件。上位機管理軟件可以方便地實現系統組態、參數配置、狀態監測、測試診斷、故障錄播等功能,把對PLC的一些底層操作以界面化的形式呈現給用戶,提升了系統的用戶友好性。
在工業控制領域中,對于Modbus TCP協議廣泛應用于儀器儀表、人機界面及遠程監控系統等設備與PLC之間的通訊。中廣核國產化PLC通過主CPU模塊MPC1200CG上的2個10M/100M/1000M自適應以太網口來支持與其它設備的Modbus TCP通訊。其特點在于PLC與外部設備通訊的建立可以通過文件配置的方式得以實現,避免了對集成開發環境(IDE)和通訊模塊的綁定與依賴。具體優勢有如下4點:
1)方便開發人員和現場人員進行維護,不需要專業的編程知識,不需要熟悉通訊模塊配置方法,提供了一個文本化的編輯環境。
2)通訊配置靈活,添加、刪除或調整通訊變量的順序非常方便。
3)檢查校驗手段多樣,為保證配置文件的格式正確,可以通過多種文本工具對配置文件中通訊變量的格式進行高效校驗。
4)批量應用簡單高效,通過配置文件的復制,即可批量應用于大批量控制系統中去。
Modbus TCP通訊在中廣核國產化PLC上的配置與應用方法如下。
在全局變量列表(GVL)中聲明變量的名稱與類型,以及賦初始值。對于Modbus TCP通訊而言,變量類型只存在數字量變量與模擬量變量的區別,分別對應著Modbus TCP通訊中的線圈和寄存器,至于模擬量中各種數據類型在綁定寄存器時并不做嚴格地區分,方便了用戶的使用。
首先需要在POU中添加符號配置,然后將需要進行通訊的變量選中并添加到符號配置文件中去,如圖2所示。在添加過程中需要注意變量的完整性,對變量的順序沒有要求。

圖2 通訊變量的符號配置Fig.2 Symbol configuration of communication variables
MCONFIG文件是中廣核國產化PLC的底層配置文件,包含啟動信息、系統目錄、數據存儲、總線端口、SNTP客戶端、系統日志、掉電保持變量、網絡地址、通訊變量映射、模塊驅動等內容。
在MCONFIG文件中按照“Application.GVL.variable+offset”的格式將變量按照通訊點表的順序進行填寫,將數字量變量填寫到CoilsSviList中,將模擬量變量填寫到HRegsSviList中去,如圖3所示。

圖3 通訊點表配置Fig.3 Communication point table configuration
對于變量的offset值,單一變量填寫1占用一個數據長度。如果需要占位的話,可以通過定義數組的方式,靈活地占用一定的數據長度。如圖4所示,可以通過將offset設置為300來占用300個連續的數據長度。
通過變量定義、符號配置文件、填寫MCONFIG變量映射列表,就可以建立中廣核國產化PLC與外部設備的MODBUS TCP通訊連接。
在中廣核國產化PLC上應用MODBUS TCP通訊的典型架構如圖5所示。

圖5 典型的通訊應用架構Fig.5 Typical communication application architecture
中廣核國產化PLC可以通過光纖來支持子站模塊的擴展,主站控制器MPC1200CG作為Modbus TCP服務器,通過接入交換機來與HMI/SCADA等Modbus TCP客戶端進行通訊。測試主機一般為工程師站,用于進行通訊變量的監控。
為了方便客戶進行靈活組態應用,中廣核國產化PLC還提供了以太網通訊模塊ETH31CG,也可以作為控制系統的MODBUS TCP通訊接口。
下面與以中廣核國產化PLC與北京嘉士寶SCADA的MODBUS TCP通訊為例,介紹MODBUS TCP通訊方案在風力發電行業中的具體應用情況。SCADA(數據采集與監控系統)用以實現對風機機組的數據采集、監測、儲存、分析、展示,用戶可以及時、全面地對風電場設備運行狀態和發電量進行實時監控,確保風電場的安全高效生產。SCADA系統實現風電場風機組的基本參數(包括風速、功率、轉速等)的綜合展示,用戶通過遠程控制單個或多個風機的啟停,實時監視風機的運行狀況,提高效率。同時,用戶可以根據需求實現對不同方向風機組(運行參數、發電量)進行監控,通過對比分析,對每個風機組進行效率評估。對于風機組內的各個子系統狀態的監控也至關重要,主要子系統有齒輪箱、交流發電機、控制器、制動器、風輪、測風儀等。SCADA系統可以實現對每個子系統的參數趨勢、故障報警的綜合展示。同時,目前一些風電場在SCADA系統中也集成開發了PHM(故障預測與健康管理)等功能,實現了風力發電機組的從預防性維護向預測性維護轉變。
以上所述的典型SCADA系統中需要的數據,其數據源主要來自于風力發電機組主控系統中的PLC,按照數據類型可以劃分為數字量信號與模擬量信號。又根據對于PLC是輸入信號或是輸出信號,可以進一步劃分為數字量輸入信號、數字量輸出信號、模擬量輸入信號和模擬量輸出信號。
對于一般的MODBUS TCP的通訊來講,寄存器分為4個種類:線圈狀態、離散輸入狀態、保持寄存器與輸入寄存器,對應到PLC的數字量輸出信號、數字量輸入信號、模擬量輸入信號和模擬量輸出信號,其讀寫狀態分別為可讀可寫、只讀、可讀可寫與只讀。根據行業應用中的具體需求與應用經驗,中廣核國產化PLC將通訊配置中使用的寄存器類型簡化為線圈狀態與保持寄存器兩種,其中線圈狀態用于數字量輸出信號和數字量輸入信號,保持寄存器用于模擬量輸出信號和模擬量輸入信號,簡化了MCONFIG配置文件中通訊變量的配置,方便應用工程師高效地完成配置文件的創建與更新。
分別選取線圈寄存器與保持寄存器的若干地址進行測試,包括讀數據與寫數據,以驗證通訊的建立與數據點的對應關系。
寫線圈寄存器。將線圈寄存器地址位1017的變量按照1→0→1→0→1的順序進行變換,在SCADA后臺進行觀察與記錄,記錄文件的內容如圖6所示。可以看到文件中數據以“1→0→1→0→1”的趨勢發生了變化,由于采樣周期的原因,變換過程中的數據在連續兩個周期內的保持了一致。

圖6 寫線圈寄存器Fig.6 Write coil register
寫保持寄存器。將保持寄存器地址位40001的變量按照636.8→15.8→626.2的順序進行變換,SCADA后臺記錄文件如圖7所示。可以看到文件中數據以“636.8→15.8→626.2”的趨勢發生了變化,同樣也是采樣周期的原因,變換過程中的數據在連續兩個周期內的保持了一致。
讀線圈寄存器。SCADA后臺將地址位301的線圈寄存器寫TRUE。在PLC側觀察對應程序變量的變化情況,如圖8所示。可以看到對應變量值為TRUE,與SCADA側寫入值保持了一致。
讀保持寄存器。SCADA后臺將地址位40003的保持寄存器寫值199.98。在PLC側觀察對應程序變量的變化情況,如圖9所示。可以看到對應變量值為199.98,與SCADA側寫入值保持了一致。

圖9 讀保持寄存器Fig.9 Read hold register
從以上步驟可以看到,中廣核國產化PLC與北京嘉士寶SCADA之間的MODBUS TCP通訊建立成功,數據讀寫功能正常。
綜上所述,中廣核國產化PLC可以方便靈活地支持MODBUS TCP通訊在工程項目中的應用,特別是對HMI與SCADA等常用設備的通訊支持,實現工控系統的快速配置與搭建。
目前,工控領域中正在進行著IT與OT的快速融合,傳輸速度更快,實時性更好,安全性更高的下一代工業以太網已經開始廣泛應用,如MQTT,OPC UA等協議逐步參與到工控系統的組網中來,這也正是中廣核國產化PLC今后網絡化、智能化的發展方向。