摘要:伴隨著預測性維護和大數據分析的需求在自動化領域的日益增加,設備級過程數據的重要性也越來越突出。赫優訊推出的設備級物聯網嵌入式研發產品 netIC IOT,是基于 netX 52 多協議芯片研發的一款智能 DIL-32 封裝通訊 IC,集成通用對象接口,通過 OPC UA 和 MQTT 實現 IoT 通訊,并在同一根物理線纜上與實時以太網通訊并行地傳輸數據。netIC IOT 采用 netPROXY 技術,基于對象的抽象層,面向應用程序開發,并通過 netX Studio 工程工具進行參數配置。
0 引言
近年來,隨著工業 4.0、萬物互聯時代的來臨,越來越多的設備制造商和工業設備終端 用戶都紛紛進行"互聯網+制造業"的大轉型。通過充分利用信息通訊技術和網絡空間虛擬系統--信息物理系統(CPS)相結合的手段,將制造業向智能化轉型。其中,實現工業自動化物聯網通訊是必不可少的一個環節,而設備是工業物聯網互聯互通的基礎元素,所以設 備上云將成為其最具先導性的一個突破點[1]。
工業設備上云更多的是依賴無形的"數據驅動"要素,進行大數據處理,以及數據之間 的關聯性分析。然而,設備上云不僅僅是采集和存儲設備的過程數據,以實現預測性維護。 從數據全面性來說,更重要的是,能夠充分匯聚設備的狀態數據、生產中的工藝過程數據、質量檢驗數據,實現整個生產過程中運營數據的整體貫通和連接。將關鍵過程數據與企業管理流程相結合,利用數據洞察企業管理問題,在一定程度上降低生產成本和能耗,并提高效率和質量,提升企業經營的精細化管理[2]。
在技術層面上,需要建立一個從現場設備到管理層一致的面向對象的數據模型,并且設 備上云迫切需要解決工業協議多、接口難統一這一實際問題。德國赫優訊針對這一難題,推出設備級物聯網產品 netIC IOT,一款用于現場設備的智能多協議模塊,通過 OPC UA 和 MQTT 實現 IoT 通訊,并與實施以太網通訊并行,采用獨立于協議的對象接口進行應用程序的開發,定制化的設備描述文件和源代碼,可無縫集成到用戶的應用中。netIC IOT 的整體應用系統如下圖所示:
圖 1 開發實例系統
1 物聯網通訊協議
1.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) 支持設備之間的互操作性;
?。?) 可輕松集成到現有 IT 網絡中;
(5) 配置和維護更加方便。
1.2 MQTT
MQTT 協議(MessageQueuingTelemetryTransport),即遙信消息隊列傳輸,是一種輕量級基于代理的發布/訂閱消息的傳輸協議,其設計思想是開放、簡單、輕量、易于實現,適合在寬帶、計算和處理能力受限的環境下工作。MQTT 協議采用客戶端-服務器的基本結構, 基于主題訂閱/消息發布進行消息傳輸,使通信的參與者在空間、時間和控制流上完全解耦, 在輕松實現拓撲結構擴展的同時,保留了實時的特性以及服務質量的可配置性[6]。所以, MQTT 是適合物聯網場景的通訊協議,其協議架構如下圖所示:
圖 3MQTT 協議架構
MQTT 協議作為物聯網通訊有以下特點[7]:
(1) 傳輸消耗少,最短的消息只有兩個字節,可實現最大程度的降低網絡負載;
?。?) 協議簡單、開放、易于實現,MQTT 協議采用訂閱/發布的消息模式,提供從 1到 n 的消息轉發,降低通信雙方的耦合度;
(3) 為不同的場景提供三個級別的消息傳輸服務質量;
?。?) MQTT 的遺囑機制使得客戶端在發生異常連接中斷時,相關終端可以接收到本客戶端的遺囑消息。
1.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的工作機制
2netIC IOT 系統設計
netIC IOT 基于 netPROXY 框架面向應用程序開發,采用 netXStudio 開發工具進行配置。netPROXY 為設備開發提供了一整套基于對象的框架,具有統一的、獨立于協議的主機接口。 netXStudio 配置工具采用自上而下的設計原則,有利于開發人員在開發界面管理程序。
2.1 netPROXY 框架
每種網絡系統都提供特定的服務,這些服務需要用戶移植進他的應用中。這需要對每種 系統的功能都具有很深的了解,并且在應用軟件中對于每種新的網絡需要花費額外的精力。這就是 netPROXY 技術旨在解決的問題。
netPROXY 的基本思想是在應用和通訊間建立一個面向設備的對象接口與服務接口。這 一抽象層能夠隱藏不同協議 API 的復雜性,使用一些簡單的服務即可實現周期與非周期數據交換。用戶只需在他的應用中移植這個通用對象接口,netPROXY 根據相應的網絡服務自動記錄對象,因此能夠開發完全獨立于任何網絡特定需求的應用,最終實現一個真正的多協議設備。
netPROXY 提供了一個對象模型作為服務或數據的通用抽象層,為產品開發提供了一個基于對象的框架,有助于顯著降低處理多個協議棧項目的開發成本??梢詫?netPROXY 視 為用戶應用程序和協議堆棧之間的中間層,圖 4 顯示了有沒有采用 netPROXY 技術的差別,右側可看出 netPROXY 如何在具有透明對象模型的協議棧之上建立應用程序抽象層。
圖 5netPROXY 工作機制
netPROXY 技術旨在實現在不同協議棧上層用戶應用程序開發過程中的協同作用,通過這種方式,netX 自動化平臺的主要優勢體現在不僅可以在硬件方面使用 netX 處理器,還可 以在不同通訊系統中再次使用應用軟件。
2.2 netX Studio 工程工具
net Studio Basic/Engineering Tool 是一款基于 Eclipse 的設備開發工具,可實現以下功能: 定義對象及映射關系、配置設備、生成設備描述文件、裝載設備文件及 Firmware 等。
netX Studio 工具根據"模塊化設計原理"運行,經過一次創建的模塊可以重復使用, 一次創建的對象定義以及整個對象庫可以在不同類型的應用程序中應用,對象的定義對整個產品系列都有效。如果以自己的用戶對象形式定義設備的屬性,則可以根據預設的產品設計和組合,將對象庫中的對象或預定義的標準對象以任何變量的形式組合在不同的應用程序中, 規劃一套自己的產品系列。一次定義的對象,可以反復使用在新產品中。例如,在為溫度傳感器創建值、狀態和操作模式作為元素的對象,可用于具有不同功能范圍的設備。
圖 6netX Studio 配置界面
2.3 netIC IOT 設計原理
netIC IOT 通信模塊集成到主機系統中需要相應的硬件組件和軟件 API 接口,采用 netXStudio 進行開發。在開發 netIC IOT 模塊時,需要進行的操作主要分為硬件設計和軟件設計,如下圖所示:
圖 7netICIOT 開發原理
2.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 選擇
在 netXStudio 配置工具中,選擇通信系統(協議)創建的每個應用程序的變量,需要 單獨地執行通信設置。除了通過實時以太網進行網絡通訊外,還可以執行物聯網通訊設置, 通過 WebServer,OPC UA 或 MQTT 配置對對象數據的訪問。
對于已添加的通訊設置,每個應用程序變量都會顯示在"Connections"編輯器中,根據 已添加的對象,將設備的屬性在通訊模型中顯示出來,包括相應的數據類型,根據通訊路徑, 設定該數據被映射到輸入輸出數據。因此,在應用程序變量的 I/O 數據映射視圖中,顯示該 應用程序變量的循環通訊設置,以及其功能范圍和相應的設備屬性。
圖 12 通訊設置
在配置 EthernNet/IP 和 PROFINET 通訊過程中,也可以實現將對象數據映射到非周期 網絡通訊。在 EtherNet/IP 中通過 Explicit Messaging 配置,在 PROFINET 中通過 Acyclic Data Exchange 來配置。
?。?) 產品和供應商信息設置;
netX Studio 配置工具可以配置產品的詳細信息,包含以下信息:
① 產品信息:名稱、ID、類型、訂單 ID、配置文件 ID、配置文件類型;
?、?產品版本信息:產品修訂、硬件名稱和版本、軟件名稱和版本、引導加載程序名稱 和版本。
?。?) Web 頁面設置和用戶管理;
在 netXStudio 中,WebBuilder 充當 WebServer 頁面的一種內容管理系統,可將自定義的 網頁和圖形(例如產品名稱和圖片)分配給不同的產品和設備。在構建過程之后,可以將定制的 Web 內容與在 netX Studio 中創建/管理的其他數據一起下載到各個目標設備(例如,固件,配置數據,設備和制造商 ID 等),整個流程如下圖所示:
圖 13Web Builder 應用過程
?。?) netIC IOT 硬件引腳配置
netIC IOT 的設計優勢之一就是使用戶可根據其需要修改 DIL-32 管腳定義。除了部分用 于供電及通訊的預定義管腳,所有其他管腳幾乎都能夠自由配置,比如,可以在 UART、I2C、 SPI、GPIO、LED、CAN 以及 SSIO 間選擇。通過 netX Studio 配置工具對 netIC IOT 硬件進 行設置,包含操作模式和引腳分配、接口配置和將對象映射到相應的接口,如下圖所示:
圖 14 硬件引腳配置界面
進行完以上所有配置,可完成 netIC IOT 模塊的整個對象模型的創建、特定的設備描述 文件(EDS)和集成的源代碼(.h),將配置文件裝載到硬件中,同時包含對協議棧的下載。 在通訊設置中可同時設置幾個通訊,下載協議棧時根據實際通訊網絡下載不同的協議棧。
2.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 對象網絡服務之間執行自動轉換。
3netIC 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 設備級物聯網通訊模塊進行產品研發,可節省投入成本,并輕松實現設備上云。
4 結束語
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] 姚春雷. O P C U A - 工業 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.