鐘朝勇,胡 波
(寧波中國科學院信息技術應用研究院,浙江 寧波 315100)
隨著智能終端的不斷涌現,以及相關龍頭企業在工業互聯網領域不斷發聲,使得工業互聯網的熱度持續攀升,逐漸走入大眾視野。工業互聯網將工業制造、工業經濟與互聯網等新興技術融合,形成智能化產業生態鏈,通過數字技術與工業相連接,為工業制造轉型、數字化升級、信息化建設提供強有力的基礎,為新型產業的孵化奠定基礎。隨著數據量的增長,信息復雜程度越來越高,為提高運營效率,選擇合適的通信協議至關重要。本文首先對Modbus與PowerLink通信協議進行介紹,再針對其消息格式、數據傳輸特點及安全性進行對比,并分析它們各自所適用的工業互聯網場景。
Modbus與PowerLink是目前應用比較廣泛的開源實時通信協議,常用于工業電子設備之間的通信。
Modbus協議是由Modicon于1979年發明的首款服務于工業生產的標準總線通信協議。該通信協議可擴展、開源,優點包括但不限于強大的適應性、友好的開源性、協議格式易懂等,在工業生產總線中具有舉足輕重的作用。
Modbus協議采用主從通信模式(Master-Slaver),主機將消息幀發送給從機,從機收到消息后作出應答,返回應答幀,并通過串行協議進行封裝。在通過Modbus網絡傳輸數據時,Modbus PDU由主機構建。當前操作類型由PDU中的功能代碼表示,數據字段指代執行該功能所需的參數。ADU通過主機在PDU上添加其他所需數據特征字段而形成,包含一個地址字段,表示從機地址,這使得從主機到從機的尋址更加容易。隊列包含一個驗證代碼,用于驗證消息內容的冗余性,用來保證數據傳輸的準確性。最后,在收到主機請求后,從機處理數據的同時反饋響應幀。響應幀中,ADU與PDU的信息格式與發送幀一致,數據字段涵蓋了從機操作后的結果。若從機在Response或Request的過程中發生錯誤,會反饋異常報文。該異常報文包括異常功能碼和其他異常碼,為完成后續的處理,需要提供這部分異常碼,便于主機識別異常。Modbus事務處理圖如圖1所示。

圖1 Modbus事務處理圖
PowerLink是在標準以太網協議IEEE802.3之上制定的Master-Slave運作方式的工業網絡通信協議,其具有傳輸速率快、免費開源等特征,在CNC、機器人、城市交通等領域應用廣泛。主站負責時間段的分配和從站的網絡管理,還被稱為管理節點(Management Node, MN)。從站將全過程的PowerLink通信周期稱為同步通信階段、異步通信階段和空閑階段。在同步通信階段,主站使每個從站的高精度時鐘同步,再基于網絡配置polling從站。只有當從站接收到polling請求后,數據才能傳輸。PowerLink通信周期如圖2所示。

圖2 PowerLink通信周期
PowerLink協議的實現方法有許多種,通過查閱相關文獻得到以下幾種實現方式。
(1)通過ZYNQ平臺實現。將ZYNQ作為硬件平臺基礎,在平臺上建立2個MicroBlaze軟核,用以承載互相獨立的2個PowerLink協議。通過雙網絡平臺復用,達到PowerLink站點隨意組合的效果,以完善網絡結構、減少費用開支。可通過Wireshark軟件接入網絡進行測試,查看具體的網絡運行情況。
(2)通過FPGA平臺實現。采用C語言編程,在FPGA硬件平臺上嵌入NIOS II軟核CPU,并啟用C代碼所在區域;在PowerLink網絡接口通過以太網控制芯片用作配置結點和受控結點的通信,以實現高性能網絡化自動控制,保證PowerLink受控結點的實時性與確定性。
(3)通過VxWorks平臺實現。VxWorks RTOS的價值在工業控制領域被愈發重視。在VxWorks網絡協議棧的Data Link Layer與網絡協議層中嵌入MUX層,實現4個功能函數。將PowerLink嵌入其中,并初始化創建網絡內存池,利用muxbind命令與協議棧進行整合,調用相關函數對數據幀進行處理。
(1)Modbus/ASCII
當Modbus總線進行通信時,協議數據負載中每8 Byte轉化為2個ASCII字符,字符傳輸時間在小于1 s的情況下不會產生誤差。數據錯誤校驗為縱向冗余校驗(LRC)。
(2)Modbus/RTU
RTU模式下,信息幀每8 Byte拆成2個4 Byte十六進制的字符進行通信。Modbus/RTU通信采用循環冗余校驗(Cyclic Redundancy Check, CRC)方式,主機向從機發送信息幀時,攜帶CRC碼傳輸。當從機收到請求時,先消除傳輸信息中攜帶的CRC校驗碼,接著重新核算CRC校驗碼后與主機發送的CRC碼比對,兩者相同則代表信息傳輸正確。
(3)Modbus/TCP
Modbus/TCP協議通信通過連接建立,連接過程包括建立連接、進行通信及釋放連接。Modbus/TCP協議以位于數據鏈路層的Modbus RTU串行鏈路協議為基礎,物理層采用以太網接口,網絡層采用IP協議,傳輸層采用TCP協議,無會話層和表示層。在應用層將特定的報文頭添加到標準的Modbus RTU協議報文,然后插入TCP協議報文中,Modbus/TCP協議報文即可借助TCP/IP協議在以太網中傳輸。
現代網絡采用分層結構體系,按照不同功能進行層次劃分。國際化標準組織(ISO)在開放系統互聯(OSI)參考模型中將網絡系統體系劃分為7層,見表1所列。

表1 ISO/OSI模型分層
Modbus串行鏈路協議位于OSI模型的第二層,即數據鏈路層,通過異步方式傳輸信息。在物理層中,Modbus串行鏈路協議可采用TIA/EIA-485或TIA/EIA-232等物理接口,如RS 485。串行鏈路的Modbus協議模型如圖3所示。

圖3 Modbus協議模型
PowerLink協議在3個分層上作了相應改動,包括物理層、數據鏈路層和應用層。PowerLink物理層基于標準以太網,遵循IEEE 802. 3快速以太網標準。PowerLink主要作用于數據鏈路層,以有效改善通信質量,提高通信速度。應用層依照CANopen標準制定。CANopen是應用層協議,提供統一的對外接口供其他應用使用,其他終端的應用能夠通過該接口與應用程序通信。PowerLink協議模型如圖4所示。

圖4 PowerLink協議模型
PowerLink數據幀嵌合在標準以太網數據信息中,與標準以太網一致,數據幀長度最長為1 518 Byte,最短為64 Byte。PowerLink數據幀結構如圖5所示,其中0~13 Byte是標準Ethernet的幀頭,+1~+4為CRC校驗序列,14~Byte是PowerLink數據幀信息。

圖5 PowerLink數據幀
相較于PowerLink,Modbus/TCP模式下的協議幀更為緊湊、簡潔。為使報文能夠在TCP/IP協議上傳輸,Modbus/TCP需要在Modbus/RTU串行鏈路上添加MBAP報文頭。該報文頭攜帶了長度信息,即使數據被分割傳輸也能夠識別相應請求,且由于TCP/IP自身的優勢,使得Modbus/TCP進行CRC校驗便可保證其傳輸準確性。圖6所示為Modbus/TCP的數據幀格式。

圖6 Modbus/TCP數據幀格式
PowerLink與Modbus均采用Master-Slave模式通信,不同的是,Modbus主站不僅可單獨與從站進行信息傳輸,也能以廣播方式和從站通信。在單獨傳輸時,將返回一個Message作為回應。采用廣播方式通信時,從設備無應答。PowerLink需要主站在同步階段與其他各從站進行高精度時鐘同步,依據主站配置進行輪詢,在接收到請求后,做出應答,進行數據傳輸。PowerLink支持異步通信,可進行非實時性數據傳輸。
PowerLink協議具有以下特性:
(1)開放性:具有開源的協議代碼,可在多種硬件平臺上實現;
(2)實時性:在FPGA硬件平臺上,最快通信循環周期小于 100 μs;
(3)抖動范圍:網絡抖動范圍為50~70 ns;
(4)支持多種網絡拓撲結構;
(5)支持PowerLink網絡中各節點之間的交叉通信。
Modbus協議的特性包括如下幾方面:
(1)標準、開放:使用者無需繳納許可費,不會涉及知識產權問題,具有國家標準;
(2)協議產品成本低:Modbus協議攜帶有報文信息,支持多種電氣API,信息傳輸能夠使用的媒介多,購買方便;
(3)Modbus協議幀簡單、緊湊、高效,易于用戶理解使用,開發便捷。
工業通信協議活躍在工業、建筑、基礎設施等領域,由于其開放性,使用范圍還在不斷擴張。
將Modbus協議作為通信協議,為Gateway添加監聽功能,不僅能夠對主站發送的數據信息進行監聽,同時也能夠接收由從站發出的響應數據。
Gateway監聽過程:主站使用Modbus總線對收到的數據報文進行解析,獲取主站Request信息,從站在響應由主站發送的數據報文后將其與主站信息進行關聯,同時對所要監控的Modbus從站設備進行數據讀寫以及分析處理。
以PowerLink協議作為通信協議,網關到LAN接口的緩沖數據長度為lenP,通過后臺程序LanReader()函數監聽lenP數值的變化,一旦發現非零就通過函數將數據發送給遠程主機;當遠程主機將信息發送給PowerLink網絡中某從站時,就將數據寫入對應變量(對象字典中的某個對象),主站按照對象字典將數據發送到指定從站。
從上述舉例可以看出,在網關實現的過程中,Modbus實現相比更簡單,可以同時從主站發出請求與接收從站響應,這使得通信過程中的兼容性大大提高。PowerLink更注重實效性,通過緩沖數據的變化對請求作出響應。如果工業互聯網需要靈活、實時性好的通信協議,那么Modbus是較好的選擇。如果需要完成非實時性數據傳輸或異步傳輸,則選用PowerLink協議作為通信協議比較可靠。
從王林浩等人智能斷路器中Modbus/TCP協議的實時性測試研究中可以得出,當寄存器個數不同時,Modbus/TCP信息傳輸的時延比較小且變化不大,以此證明實時性這一特征為Modbus所擁有。圖7為該研究中不同個數寄存器下測得的通信時延信息。

圖7 不同個數寄存器下測得的通信時延信息
對于PowerLink的通信性能測試可從李駿杰等人對于PowerLink多客戶端通信系統的設計中得出。將數據差為2的連續數據從主站發送給從站,在從站收到數據后再以數據差為1的連續數據返回主站。最后通過Wireshark進行數據驗證,其中驗證指標包括測試時間、傳輸時間、丟包率以及誤碼率。表2為測試結果。

表2 性能測試結果
由該測試結果可知,通過PowerLink協議進行多端通信非常穩定,丟包率為0,隨著測試時間增長,誤碼率變高,但仍在可允許范圍內,這對于數據精度要求較高的工業互聯網通信具有較大幫助。
本文從目前應用比較廣泛的工業互聯網通信協議Modbus與PowerLink入手,首先,對其進行了簡要介紹,再對其實現方式進行描述。接著,對兩者的網絡模型、協議幀結構、協議特性進行對比分析,通過特點差異來介紹他們適合的應用場景。最后,通過其他協議性能研究案例體現在不同環境和測試壓力下2種通信協議性能的優劣。