摘要:伴隨著預測性維護和大數據分析的需求在自動化領域的日益增加,設備級過程數據的重要性也越來越突出。赫優訊推出的設備級物聯網嵌入式研發產品netIC IOT,是基于netX 52多協議芯片研發的一款智能DIL-32封裝通訊IC,集成通用對象接口,通過OPC UA和MQTT實現IoT通訊,并在同一根物理線纜上與實時以太網通訊并行地傳輸數據。netIC IOT采用netPROXY技術,基于對象的抽象層,面向應用程序開發,并通過netX Studio工程工具進行參數配置。
關鍵字:netIC IOT,OPC UA,MQTT,netPROXY 技術,netX Studio
Researchand Application of HilschernetIC IOT Device-LevelIoT Products
Lingyue Xia1,Wupeng Deng2, Hongqing Yang3
(Hilscher Gesellschaft für Systemautomation mbH (Shanghai). Shanghai 200010)
Abstract:With the increasing demand for predictive maintenance and big data analytics in the field of automation, the importance of device-level process data is becoming more prominent.Hilscher has launched device-level IoT embedded R&D product netIC IOT, is an intelligent DIL-32 communication IC based on the netX 52 multi-protocol chip. It integrates a common object interface and implements IoT communication through OPC UA and MQTT. Data is transmitted in parallel with real-time Ethernet communication on the same physical cable. netIC IOT adopts netPROXY technology, object-based abstraction layer, and application-oriented development, and is configured by netX Studio Engineering Tool.
Keywords: netIC IOT, OPC UA, MQTT, netPROXY technology, netX Studio
1 引言
近年來,隨著工業4.0、萬物互聯時代的來臨,越來越多的設備制造商和工業設備終端用戶都紛紛進行“互聯網+制造業”的大轉型。通過充分利用信息通訊技術和網絡空間虛擬系統——信息物理系統(CPS)相結合的手段,將制造業向智能化轉型。其中,實現工業自動化物聯網通訊是必不可少的一個環節,而設備是工業物聯網互聯互通的基礎元素,所以設備上云將成為其最具先導性的一個突破點[1]。
工業設備上云更多的是依賴無形的“數據驅動”要素,進行大數據處理,以及數據之間的關聯性分析。然而,設備上云不僅僅是采集和存儲設備的過程數據,以實現預測性維護。從數據全面性來說,更重要的是,能夠充分匯聚設備的狀態數據、生產中的工藝過程數據、質量檢驗數據,實現整個生產過程中運營數據的整體貫通和連接。將關鍵過程數據與企業管理流程相結合,利用數據洞察企業管理問題,在一定程度上降低生產成本和能耗,并提高效率和質量,提升企業經營的精細化管理[2]。
在技術層面上,需要建立一個從現場設備到管理層一致的面向對象的數據模型,并且設備上云迫切需要解決工業協議多、接口難統一這一實際問題。德國赫優訊針對這一難題,推出設備級物聯網產品netIC IOT,一款用于現場設備的智能多協議模塊,通過OPC UA和MQTT實現IoT通訊,并與實施以太網通訊并行,采用獨立于協議的對象接口進行應用程序的開發,定制化的設備描述文件和源代碼,可無縫集成到用戶的應用中。netIC IOT的整體應用系統如下圖所示:
圖1 開發實例系統
2 物聯網通訊協議
2.1 OPC UA
OPC UA是一套集信息模型定義、服務與通訊標準為一體的標準化技術框架,其中OPC是用于過程控制的 OLE(OLE for Process Control)技術,是由OPC基金會組織管理、用于工業通訊的標準。OPC UA作為一種面向服務的通信協議,目的是使工業化通訊有據可循, 可以理解為一個UA服務端和UA客戶端的實時數據庫框架。UA服務端負責數據管理與邏輯運算,并通過OPC UA通訊協議對UA客戶端程序提供相應的數據與服務[3]。
UA服務端既可以是可編程邏輯控制器 (PLC)、I/O控制器或傳感器等設備上二次開發的應用程序,也可以是MES、SCADA等物聯網應用平臺。UA客戶端是UA服務端進行通訊的系統或設備,可以是ERP系統、大數據平臺、物聯網系統,也可以是任意物聯網設備[4]。OPC UA整體架構如下圖所示:
圖2 OPC UA整體架構
為打通異構信息系統集成的信息渠道,實現數據的互聯互通和無縫傳遞,OPC UA技術需具備獨立于平臺、可伸縮性、高度可利用性、可植入因特網服務等特點,不但可實現獨立于各大設備制造商,還獨立于各個主流操作系統,并支持多種編程語言實現軟件應用開發。
OPC UA作為物聯網通訊協議有以下幾大優勢[5]:
(1)不僅實現原始數據采集,還采用基于語義和面向服務的統一架構和模式;
(2)支持跨平臺應用,可擴展且設計數據傳輸安全(TLS);
(3)支持設備之間的互操作性;
(4)可輕松集成到現有IT 網絡中;
(5)配置和維護更加方便。
2.2 MQTT
MQTT協議(MessageQueuingTelemetryTransport),即遙信消息隊列傳輸,是一種輕量級基于代理的發布/訂閱消息的傳輸協議,其設計思想是開放、簡單、輕量、易于實現,適合在寬帶、計算和處理能力受限的環境下工作。MQTT協議采用客戶端-服務器的基本結構,基于主題訂閱/消息發布進行消息傳輸,使通信的參與者在空間、時間和控制流上完全解耦,在輕松實現拓撲結構擴展的同時,保留了實時的特性以及服務質量的可配置性[6]。所以,MQTT是適合物聯網場景的通訊協議,其協議架構如下圖所示:
圖3 MQTT協議架構
MQTT協議作為物聯網通訊有以下特點[7]:
(1)傳輸消耗少,最短的消息只有兩個字節,可實現最大程度的降低網絡負載;
(2)協議簡單、開放、易于實現,MQTT協議采用訂閱/發布的消息模式,提供從1到n的消息轉發,降低通信雙方的耦合度;
(3)為不同的場景提供三個級別的消息傳輸服務質量;
(4)MQTT的遺囑機制使得客戶端在發生異常連接中斷時,相關終端可以接收到本客戶端的遺囑消息。
2.3 netIC IOT 集成物聯網通訊
工業4.0與IoT一個關鍵的需求是通過IoT通訊從現場設備傳輸信息至云端,netIC IOT就是如此定位的,過程數據及服務數據已經預定義在抽象對象中,因此能夠轉換成通訊模塊中的信息。除了實時以太網協議棧,支持IoT通訊的netIC IOT還集成了OPC UA服務器以及MQTT客戶端。OPC UA或MQTT連接將建立在同一根線纜上與實時以太網通訊并行的TCP/IP 通道,不會影響PLC運行。
在工廠自動化中,將現場設備連接至云端提升了安全機制的重要性。除了IT架構的標準安全,系統設計人員必須考慮用于現場設備及控制的信息安全概念。
netIC IOT在技術上更進了一步,設備制造商可以通過SPI 連接TPM(Trusted Platform Module)信息安全芯片,從而能夠增強netIC額外的安全機制,如“安全啟動”。
圖4 netIC IOT的工作機制
3 netIC IOT系統設計
netIC IOT基于netPROXY框架面向應用程序開發,采用netXStudio開發工具進行配置。netPROXY為設備開發提供了一整套基于對象的框架,具有統一的、獨立于協議的主機接口。netXStudio配置工具采用自上而下的設計原則,有利于開發人員在開發界面管理程序。
3.1 netPROXY框架
每種網絡系統都提供特定的服務,這些服務需要用戶移植進他的應用中。這需要對每種系統的功能都具有很深的了解,并且在應用軟件中對于每種新的網絡需要花費額外的精力。這就是netPROXY技術旨在解決的問題。
netPROXY的基本思想是在應用和通訊間建立一個面向設備的對象接口與服務接口。這一抽象層能夠隱藏不同協議API的復雜性,使用一些簡單的服務即可實現周期與非周期數據交換。用戶只需在他的應用中移植這個通用對象接口,netPROXY根據相應的網絡服務自動記錄對象,因此能夠開發完全獨立于任何網絡特定需求的應用,最終實現一個真正的多協議設備。
netPROXY提供了一個對象模型作為服務或數據的通用抽象層,為產品開發提供了一個基于對象的框架,有助于顯著降低處理多個協議棧項目的開發成本。可以將netPROXY視為用戶應用程序和協議堆棧之間的中間層,圖4 顯示了有沒有采用netPROXY技術的差別,右側可看出netPROXY如何在具有透明對象模型的協議棧之上建立應用程序抽象層。
圖5 netPROXY工作機制
netPROXY技術旨在實現在不同協議棧上層用戶應用程序開發過程中的協同作用,通過這種方式,netX自動化平臺的主要優勢體現在不僅可以在硬件方面使用netX處理器,還可以在不同通訊系統中再次使用應用軟件。
3.2 netX Studio 工程工具
net Studio Basic/Engineering Tool是一款基于Eclipse的設備開發工具,可實現以下功能:定義對象及映射關系、配置設備、生成設備描述文件、裝載設備文件及Firmware等。
netX Studio工具根據“模塊化設計原理”運行,經過一次創建的模塊可以重復使用,一次創建的對象定義以及整個對象庫可以在不同類型的應用程序中應用,對象的定義對整個產品系列都有效。如果以自己的用戶對象形式定義設備的屬性,則可以根據預設的產品設計和組合,將對象庫中的對象或預定義的標準對象以任何變量的形式組合在不同的應用程序中,規劃一套自己的產品系列。一次定義的對象,可以反復使用在新產品中。例如,在為溫度傳感器創建值、狀態和操作模式作為元素的對象,可用于具有不同功能范圍的設備。
圖6 netX Studio配置界面
3.3 netIC IOT 設計原理
netIC IOT通信模塊集成到主機系統中需要相應的硬件組件和軟件API接口,采用netXStudio進行開發。在開發netIC IOT模塊時,需要進行的操作主要分為硬件設計和軟件設計,如下圖所示:
圖7 netICIOT開發原理
3.3.1 硬件設計
netIC IOT模塊的硬件接口靈活,提供了不同的功能,通過netXStudio工程工具就能輕松實現,主要步驟如下:
(1)創建對象庫的定義
以手動創建對象為例,點擊Object Model→User→input data,右鍵input data→ New Object,如下圖所示:
圖8 創建一個新的對象
需對所創建的對象進行命名,本文對其命名為Sensor-simple,對其進行設置。一般情況下,對于新創建的對象,需要設置其基本屬性和設備的元素。在Properties配置中,需定義對象的Identifier、Name、Description、Version、Type name、Labels,客戶可根據自己的具體應用對其進行設置。
設置對象的Elements,點擊右側的Add按鈕添加一個新的元素,如下圖所示:
圖9 添加對象元素
對于Attributes來說正是體現了netPROXY的工作機制,面向對象的原理,獨立于協議棧,可通過多種方式(Peripherals、Application、Network)實現通訊設置,如下圖所示:
圖10 通訊屬性設置原理
圖11 Attributes選擇
(2)通訊設置
在netXStudio配置工具中,選擇通信系統(協議)創建的每個應用程序的變量,需要單獨地執行通信設置。除了通過實時以太網進行網絡通訊外,還可以執行物聯網通訊設置,通過WebServer,OPC UA或MQTT配置對對象數據的訪問。
對于已添加的通訊設置,每個應用程序變量都會顯示在“Connections”編輯器中,根據已添加的對象,將設備的屬性在通訊模型中顯示出來,包括相應的數據類型,根據通訊路徑,設定該數據被映射到輸入輸出數據。因此,在應用程序變量的I/O數據映射視圖中,顯示該應用程序變量的循環通訊設置,以及其功能范圍和相應的設備屬性。
圖12 通訊設置
在配置EthernNet/IP和PROFINET通訊過程中,也可以實現將對象數據映射到非周期網絡通訊。在EtherNet/IP中通過Explicit Messaging配置,在PROFINET中通過Acyclic Data Exchange來配置。
(3)產品和供應商信息設置;
netX Studio配置工具可以配置產品的詳細信息,包含以下信息:
① 產品信息:名稱、ID、類型、訂單ID、配置文件ID、配置文件類型;
② 產品版本信息:產品修訂、硬件名稱和版本、軟件名稱和版本、引導加載程序名稱和版本。
(4)Web頁面設置和用戶管理;
在netXStudio中,WebBuilder充當WebServer頁面的一種內容管理系統,可將自定義的網頁和圖形(例如產品名稱和圖片)分配給不同的產品和設備。在構建過程之后,可以將定制的Web內容與在netX Studio中創建/管理的其他數據一起下載到各個目標設備(例如,固件,配置數據,設備和制造商ID等),整個流程如下圖所示:
圖13 Web Builder應用過程
(5)netIC IOT硬件引腳配置
netIC IOT的設計優勢之一就是使用戶可根據其需要修改DIL-32管腳定義。除了部分用于供電及通訊的預定義管腳,所有其他管腳幾乎都能夠自由配置,比如,可以在UART、I2C、SPI、GPIO、LED、CAN 以及SSIO 間選擇。通過netX Studio配置工具對netIC IOT硬件進行設置,包含操作模式和引腳分配、接口配置和將對象映射到相應的接口,如下圖所示:
圖14 硬件引腳配置界面
進行完以上所有配置,可完成netIC IOT模塊的整個對象模型的創建、特定的設備描述文件(EDS)和集成的源代碼(.h),將配置文件裝載到硬件中,同時包含對協議棧的下載。在通訊設置中可同時設置幾個通訊,下載協議棧時根據實際通訊網絡下載不同的協議棧。
3.3.2 軟件設計
netIC IOT模塊提供的主機接口是netPROXY,用戶應用程序通過netPROXY來訪問模塊。如下圖所示,可采用ST公司的STM32系列的MCU 作為主MCU,其Host 應用程序通過netPROXY接口進行數據的訪問,可有效節約開發時間。netPROXY Host API用于通過HIF DPM訪問netIC IOT,需通過cifX API訪問DPM,如下圖所示:
圖15 netIC IOT 與主機接口連接模式
netPROXY的優勢在于為使用簡單對象模型以通用方式描述設備應用程序數據提供了一種可能性,這可以僅通過一次設計覆蓋特定設備應用程序功能,達到重新使用以將這些數據轉換為不同的網絡協議的目的。netPROXY使用對象模型不僅可以管理和訪問數據,還可以在netPROXY對象網絡服務之間執行自動轉換。
4 netIC IOT實例PROFINET Slave+OPC UA應用
通過netIC IOT的開發板,連接STM32,進行PROFINET Slave+OPC UA的測試。NIOT-I-ICEB-RE開發板通過USB接口連接到計算機,通過netX Studio工具對其進行配置,然后將配置文件及協議棧下載到硬件中。完成配置之后,連接至STM32開發板,對其進行應用程序的調試。將以太網口連接到主站cifX 50-RE,并通過外設SSIO接口連接NIOT-I-ICEB-SSIO擴展板。在SYCON.net中創建工程,進行PROFINET通訊調試。然后采用Softing的OPC UA Client進行OPC UA通訊測試。硬件連接圖如下圖所示:
圖16 硬件連接圖
通過OPC UA Client可以抓取到netIC IOT在PROFINET網絡中與主站進行數據交換的周期數據,若將數據上傳至云服務器或通過云服務器的OPC UA Client獲取數據,在進一步對數據進行分析或預測性維護。通過OPC UA Client觀測數據變化如下圖所示:
圖17 OPCUAClient監測圖
由此可見,通過netIC IOT設備級物聯網通訊模塊進行產品研發,可節省投入成本,并輕松實現設備上云。
5 結束語
netIC IOT通訊模塊在同一硬件上支持現主流的實時以太網從站協議,用戶可在netXStudio工程工具生成用于其設備的并獨立于協議的對象模型,而且在應用軟件中只需要移植一次。根據不同的現場網絡應用,只需在netXStudio中配置并下載不同的協議棧即可。對于應用來說無需對不同的通訊網絡作相應的設計,僅一次軟硬件設計就可以實現真正意義上的多協議設備研發。
參考文獻
[1]企業上云走向深入,設備上云現燎原之勢.http://www.sohu.com/a/301491238_99988082.
[2]企業上云走向深入_設備上云仍需爬坡過坎.電子信息產業網.行業動態.
[3]任偉.工業物聯網關鍵技術OPC_UA分析[M].2017-08-11.
[4]Hilscher. netIOT Interface (netIC IOT&netX, netRAPID,comX)_Rev5.3_Product Presentation.
[5] 姚春雷. OPCUA-工業4.0 的先行者[ J ] . 中國儀器儀表,2017,03:36-37.
[6]張亞慧.物聯網環境下輕量級發布/訂閱系統的設計與實現[D].北京郵電大學,2014
[7]S Lee,H Kim,D Hong.Correlation analysis of MQTT loss and delay according to QoS level[J].ACM,2013,10:23-37.