摘要:伴隨著預測性維護和大數(shù)據(jù)分析的需求在自動化領(lǐng)域的日益增加,設(shè)備級過程數(shù)據(jù)的重要性也越來越突出。赫優(yōu)訊推出的設(shè)備級物聯(lián)網(wǎng)嵌入式研發(fā)產(chǎn)品 netIC IOT,是基于 netX 52 多協(xié)議芯片研發(fā)的一款智能 DIL-32 封裝通訊 IC,集成通用對象接口,通過 OPC UA 和 MQTT 實現(xiàn) IoT 通訊,并在同一根物理線纜上與實時以太網(wǎng)通訊并行地傳輸數(shù)據(jù)。netIC IOT 采用 netPROXY 技術(shù),基于對象的抽象層,面向應(yīng)用程序開發(fā),并通過 netX Studio 工程工具進行參數(shù)配置。
0 引言
近年來,隨著工業(yè) 4.0、萬物互聯(lián)時代的來臨,越來越多的設(shè)備制造商和工業(yè)設(shè)備終端 用戶都紛紛進行"互聯(lián)網(wǎng)+制造業(yè)"的大轉(zhuǎn)型。通過充分利用信息通訊技術(shù)和網(wǎng)絡(luò)空間虛擬系統(tǒng)--信息物理系統(tǒng)(CPS)相結(jié)合的手段,將制造業(yè)向智能化轉(zhuǎn)型。其中,實現(xiàn)工業(yè)自動化物聯(lián)網(wǎng)通訊是必不可少的一個環(huán)節(jié),而設(shè)備是工業(yè)物聯(lián)網(wǎng)互聯(lián)互通的基礎(chǔ)元素,所以設(shè) 備上云將成為其最具先導性的一個突破點[1]。
工業(yè)設(shè)備上云更多的是依賴無形的"數(shù)據(jù)驅(qū)動"要素,進行大數(shù)據(jù)處理,以及數(shù)據(jù)之間 的關(guān)聯(lián)性分析。然而,設(shè)備上云不僅僅是采集和存儲設(shè)備的過程數(shù)據(jù),以實現(xiàn)預測性維護。 從數(shù)據(jù)全面性來說,更重要的是,能夠充分匯聚設(shè)備的狀態(tài)數(shù)據(jù)、生產(chǎn)中的工藝過程數(shù)據(jù)、質(zhì)量檢驗數(shù)據(jù),實現(xiàn)整個生產(chǎn)過程中運營數(shù)據(jù)的整體貫通和連接。將關(guān)鍵過程數(shù)據(jù)與企業(yè)管理流程相結(jié)合,利用數(shù)據(jù)洞察企業(yè)管理問題,在一定程度上降低生產(chǎn)成本和能耗,并提高效率和質(zhì)量,提升企業(yè)經(jīng)營的精細化管理[2]。
在技術(shù)層面上,需要建立一個從現(xiàn)場設(shè)備到管理層一致的面向?qū)ο蟮臄?shù)據(jù)模型,并且設(shè) 備上云迫切需要解決工業(yè)協(xié)議多、接口難統(tǒng)一這一實際問題。德國赫優(yōu)訊針對這一難題,推出設(shè)備級物聯(lián)網(wǎng)產(chǎn)品 netIC IOT,一款用于現(xiàn)場設(shè)備的智能多協(xié)議模塊,通過 OPC UA 和 MQTT 實現(xiàn) IoT 通訊,并與實施以太網(wǎng)通訊并行,采用獨立于協(xié)議的對象接口進行應(yīng)用程序的開發(fā),定制化的設(shè)備描述文件和源代碼,可無縫集成到用戶的應(yīng)用中。netIC IOT 的整體應(yīng)用系統(tǒng)如下圖所示:
圖 1 開發(fā)實例系統(tǒng)
1 物聯(lián)網(wǎng)通訊協(xié)議
1.1 OPC UA
OPC UA 是一套集信息模型定義、服務(wù)與通訊標準為一體的標準化技術(shù)框架,其中 OPC 是用于過程控制的 OLE (OLE for Process Control)技術(shù),是由 OPC 基金會組織管理、用于工業(yè)通訊的標準。OPC UA 作為一種面向服務(wù)的通信協(xié)議,目的是使工業(yè)化通訊有據(jù)可循, 可以理解為一個 UA 服務(wù)端和 UA 客戶端的實時數(shù)據(jù)庫框架。UA 服務(wù)端負責數(shù)據(jù)管理與邏輯運算,并通過 OPC UA 通訊協(xié)議對 UA 客戶端程序提供相應(yīng)的數(shù)據(jù)與服務(wù)[3]。
UA 服務(wù)端既可以是可編程邏輯控制器 (PLC)、I/O 控制器或傳感器等設(shè)備上二次開發(fā)的應(yīng)用程序,也可以是 MES、SCADA 等物聯(lián)網(wǎng)應(yīng)用平臺。UA 客戶端是 UA 服務(wù)端進行 通訊的系統(tǒng)或設(shè)備,可以是 ERP 系統(tǒng)、大數(shù)據(jù)平臺、物聯(lián)網(wǎng)系統(tǒng),也可以是任意物聯(lián)網(wǎng)設(shè)備[4]。OPC UA 整體架構(gòu)如下圖所示:
圖 2 OPC UA 整體架構(gòu)
為打通異構(gòu)信息系統(tǒng)集成的信息渠道,實現(xiàn)數(shù)據(jù)的互聯(lián)互通和無縫傳遞,OPC UA 技術(shù)需具備獨立于平臺、可伸縮性、高度可利用性、可植入因特網(wǎng)服務(wù)等特點,不但可實現(xiàn)獨立于各大設(shè)備制造商,還獨立于各個主流操作系統(tǒng),并支持多種編程語言實現(xiàn)軟件應(yīng)用開發(fā)。
OPC UA 作為物聯(lián)網(wǎng)通訊協(xié)議有以下幾大優(yōu)勢[5]:
?。?) 不僅實現(xiàn)原始數(shù)據(jù)采集,還采用基于語義和面向服務(wù)的統(tǒng)一架構(gòu)和模式;
?。?) 支持跨平臺應(yīng)用,可擴展且設(shè)計數(shù)據(jù)傳輸安全(TLS);
?。?) 支持設(shè)備之間的互操作性;
(4) 可輕松集成到現(xiàn)有 IT 網(wǎng)絡(luò)中;
?。?) 配置和維護更加方便。
1.2 MQTT
MQTT 協(xié)議(MessageQueuingTelemetryTransport),即遙信消息隊列傳輸,是一種輕量級基于代理的發(fā)布/訂閱消息的傳輸協(xié)議,其設(shè)計思想是開放、簡單、輕量、易于實現(xiàn),適合在寬帶、計算和處理能力受限的環(huán)境下工作。MQTT 協(xié)議采用客戶端-服務(wù)器的基本結(jié)構(gòu), 基于主題訂閱/消息發(fā)布進行消息傳輸,使通信的參與者在空間、時間和控制流上完全解耦, 在輕松實現(xiàn)拓撲結(jié)構(gòu)擴展的同時,保留了實時的特性以及服務(wù)質(zhì)量的可配置性[6]。所以, MQTT 是適合物聯(lián)網(wǎng)場景的通訊協(xié)議,其協(xié)議架構(gòu)如下圖所示:
圖 3MQTT 協(xié)議架構(gòu)
MQTT 協(xié)議作為物聯(lián)網(wǎng)通訊有以下特點[7]:
?。?) 傳輸消耗少,最短的消息只有兩個字節(jié),可實現(xiàn)最大程度的降低網(wǎng)絡(luò)負載;
(2) 協(xié)議簡單、開放、易于實現(xiàn),MQTT 協(xié)議采用訂閱/發(fā)布的消息模式,提供從 1到 n 的消息轉(zhuǎn)發(fā),降低通信雙方的耦合度;
?。?) 為不同的場景提供三個級別的消息傳輸服務(wù)質(zhì)量;
(4) MQTT 的遺囑機制使得客戶端在發(fā)生異常連接中斷時,相關(guān)終端可以接收到本客戶端的遺囑消息。
1.3 netIC IOT 集成物聯(lián)網(wǎng)通訊
工業(yè) 4.0 與 IoT 一個關(guān)鍵的需求是通過 IoT 通訊從現(xiàn)場設(shè)備傳輸信息至云端,netIC IOT 就是如此定位的,過程數(shù)據(jù)及服務(wù)數(shù)據(jù)已經(jīng)預定義在抽象對象中,因此能夠轉(zhuǎn)換成通訊模塊中的信息。除了實時以太網(wǎng)協(xié)議棧,支持 IoT 通訊的 netIC IOT 還集成了 OPC UA 服務(wù)器以 及 MQTT 客戶端。OPC UA 或 MQTT 連接將建立在同一根線纜上與實時以太網(wǎng)通訊并行的 TCP/IP 通道,不會影響 PLC 運行。
在工廠自動化中,將現(xiàn)場設(shè)備連接至云端提升了安全機制的重要性。除了 IT 架構(gòu)的標 準安全,系統(tǒng)設(shè)計人員必須考慮用于現(xiàn)場設(shè)備及控制的信息安全概念。
netIC IOT 在技術(shù)上更進了一步,設(shè)備制造商可以通過 SPI 連接 TPM(Trusted Platform Module)信息安全芯片,從而能夠增強 netIC 額外的安全機制,如"安全啟動"。
圖4 netIC IOT的工作機制
2netIC IOT 系統(tǒng)設(shè)計
netIC IOT 基于 netPROXY 框架面向應(yīng)用程序開發(fā),采用 netXStudio 開發(fā)工具進行配置。netPROXY 為設(shè)備開發(fā)提供了一整套基于對象的框架,具有統(tǒng)一的、獨立于協(xié)議的主機接口。 netXStudio 配置工具采用自上而下的設(shè)計原則,有利于開發(fā)人員在開發(fā)界面管理程序。
2.1 netPROXY 框架
每種網(wǎng)絡(luò)系統(tǒng)都提供特定的服務(wù),這些服務(wù)需要用戶移植進他的應(yīng)用中。這需要對每種 系統(tǒng)的功能都具有很深的了解,并且在應(yīng)用軟件中對于每種新的網(wǎng)絡(luò)需要花費額外的精力。這就是 netPROXY 技術(shù)旨在解決的問題。
netPROXY 的基本思想是在應(yīng)用和通訊間建立一個面向設(shè)備的對象接口與服務(wù)接口。這 一抽象層能夠隱藏不同協(xié)議 API 的復雜性,使用一些簡單的服務(wù)即可實現(xiàn)周期與非周期數(shù)據(jù)交換。用戶只需在他的應(yīng)用中移植這個通用對象接口,netPROXY 根據(jù)相應(yīng)的網(wǎng)絡(luò)服務(wù)自動記錄對象,因此能夠開發(fā)完全獨立于任何網(wǎng)絡(luò)特定需求的應(yīng)用,最終實現(xiàn)一個真正的多協(xié)議設(shè)備。
netPROXY 提供了一個對象模型作為服務(wù)或數(shù)據(jù)的通用抽象層,為產(chǎn)品開發(fā)提供了一個基于對象的框架,有助于顯著降低處理多個協(xié)議棧項目的開發(fā)成本??梢詫?netPROXY 視 為用戶應(yīng)用程序和協(xié)議堆棧之間的中間層,圖 4 顯示了有沒有采用 netPROXY 技術(shù)的差別,右側(cè)可看出 netPROXY 如何在具有透明對象模型的協(xié)議棧之上建立應(yīng)用程序抽象層。
圖 5netPROXY 工作機制
netPROXY 技術(shù)旨在實現(xiàn)在不同協(xié)議棧上層用戶應(yīng)用程序開發(fā)過程中的協(xié)同作用,通過這種方式,netX 自動化平臺的主要優(yōu)勢體現(xiàn)在不僅可以在硬件方面使用 netX 處理器,還可 以在不同通訊系統(tǒng)中再次使用應(yīng)用軟件。
2.2 netX Studio 工程工具
net Studio Basic/Engineering Tool 是一款基于 Eclipse 的設(shè)備開發(fā)工具,可實現(xiàn)以下功能: 定義對象及映射關(guān)系、配置設(shè)備、生成設(shè)備描述文件、裝載設(shè)備文件及 Firmware 等。
netX Studio 工具根據(jù)"模塊化設(shè)計原理"運行,經(jīng)過一次創(chuàng)建的模塊可以重復使用, 一次創(chuàng)建的對象定義以及整個對象庫可以在不同類型的應(yīng)用程序中應(yīng)用,對象的定義對整個產(chǎn)品系列都有效。如果以自己的用戶對象形式定義設(shè)備的屬性,則可以根據(jù)預設(shè)的產(chǎn)品設(shè)計和組合,將對象庫中的對象或預定義的標準對象以任何變量的形式組合在不同的應(yīng)用程序中, 規(guī)劃一套自己的產(chǎn)品系列。一次定義的對象,可以反復使用在新產(chǎn)品中。例如,在為溫度傳感器創(chuàng)建值、狀態(tài)和操作模式作為元素的對象,可用于具有不同功能范圍的設(shè)備。
圖 6netX Studio 配置界面
2.3 netIC IOT 設(shè)計原理
netIC IOT 通信模塊集成到主機系統(tǒng)中需要相應(yīng)的硬件組件和軟件 API 接口,采用 netXStudio 進行開發(fā)。在開發(fā) netIC IOT 模塊時,需要進行的操作主要分為硬件設(shè)計和軟件設(shè)計,如下圖所示:
圖 7netICIOT 開發(fā)原理
2.3.1 硬件設(shè)計
netIC IOT 模塊的硬件接口靈活,提供了不同的功能,通過 netXStudio 工程工具就能輕 松實現(xiàn),主要步驟如下:
?。?) 創(chuàng)建對象庫的定義以手動創(chuàng)建對象為例,點擊 Object Model→User→input data,右鍵 input data→ New Object,如下圖所示:
圖 8 創(chuàng)建一個新的對象
需對所創(chuàng)建的對象進行命名,本文對其命名為 Sensor-simple,對其進行設(shè)置。一般情況 下,對于新創(chuàng)建的對象,需要設(shè)置其基本屬性和設(shè)備的元素。在 Properties 配置中,需定義 對象的 Identifier、Name、Description、Version、Type name、Labels,客戶可根據(jù)自己的具 體應(yīng)用對其進行設(shè)置。
設(shè)置對象的 Elements, 點擊右側(cè)的 Add 按鈕添加一個新的元素, 如下圖所示:
圖 9 添加對象元素
對于 Attributes 來說正是體現(xiàn)了 netPROXY 的工作機制,面向?qū)ο蟮脑恚毩⒂趨f(xié)議 棧,可通過多種方式(Peripherals、Application、Network)實現(xiàn)通訊設(shè)置,如下圖所示:
圖 10 通訊屬性設(shè)置原理
?。?) 通訊設(shè)置
圖 11 Attributes 選擇
在 netXStudio 配置工具中,選擇通信系統(tǒng)(協(xié)議)創(chuàng)建的每個應(yīng)用程序的變量,需要 單獨地執(zhí)行通信設(shè)置。除了通過實時以太網(wǎng)進行網(wǎng)絡(luò)通訊外,還可以執(zhí)行物聯(lián)網(wǎng)通訊設(shè)置, 通過 WebServer,OPC UA 或 MQTT 配置對對象數(shù)據(jù)的訪問。
對于已添加的通訊設(shè)置,每個應(yīng)用程序變量都會顯示在"Connections"編輯器中,根據(jù) 已添加的對象,將設(shè)備的屬性在通訊模型中顯示出來,包括相應(yīng)的數(shù)據(jù)類型,根據(jù)通訊路徑, 設(shè)定該數(shù)據(jù)被映射到輸入輸出數(shù)據(jù)。因此,在應(yīng)用程序變量的 I/O 數(shù)據(jù)映射視圖中,顯示該 應(yīng)用程序變量的循環(huán)通訊設(shè)置,以及其功能范圍和相應(yīng)的設(shè)備屬性。
圖 12 通訊設(shè)置
在配置 EthernNet/IP 和 PROFINET 通訊過程中,也可以實現(xiàn)將對象數(shù)據(jù)映射到非周期 網(wǎng)絡(luò)通訊。在 EtherNet/IP 中通過 Explicit Messaging 配置,在 PROFINET 中通過 Acyclic Data Exchange 來配置。
(3) 產(chǎn)品和供應(yīng)商信息設(shè)置;
netX Studio 配置工具可以配置產(chǎn)品的詳細信息,包含以下信息:
?、?產(chǎn)品信息:名稱、ID、類型、訂單 ID、配置文件 ID、配置文件類型;
② 產(chǎn)品版本信息:產(chǎn)品修訂、硬件名稱和版本、軟件名稱和版本、引導加載程序名稱 和版本。
?。?) Web 頁面設(shè)置和用戶管理;
在 netXStudio 中,WebBuilder 充當 WebServer 頁面的一種內(nèi)容管理系統(tǒng),可將自定義的 網(wǎng)頁和圖形(例如產(chǎn)品名稱和圖片)分配給不同的產(chǎn)品和設(shè)備。在構(gòu)建過程之后,可以將定制的 Web 內(nèi)容與在 netX Studio 中創(chuàng)建/管理的其他數(shù)據(jù)一起下載到各個目標設(shè)備(例如,固件,配置數(shù)據(jù),設(shè)備和制造商 ID 等),整個流程如下圖所示:
圖 13Web Builder 應(yīng)用過程
(5) netIC IOT 硬件引腳配置
netIC IOT 的設(shè)計優(yōu)勢之一就是使用戶可根據(jù)其需要修改 DIL-32 管腳定義。除了部分用 于供電及通訊的預定義管腳,所有其他管腳幾乎都能夠自由配置,比如,可以在 UART、I2C、 SPI、GPIO、LED、CAN 以及 SSIO 間選擇。通過 netX Studio 配置工具對 netIC IOT 硬件進 行設(shè)置,包含操作模式和引腳分配、接口配置和將對象映射到相應(yīng)的接口,如下圖所示:
圖 14 硬件引腳配置界面
進行完以上所有配置,可完成 netIC IOT 模塊的整個對象模型的創(chuàng)建、特定的設(shè)備描述 文件(EDS)和集成的源代碼(.h),將配置文件裝載到硬件中,同時包含對協(xié)議棧的下載。 在通訊設(shè)置中可同時設(shè)置幾個通訊,下載協(xié)議棧時根據(jù)實際通訊網(wǎng)絡(luò)下載不同的協(xié)議棧。
2.3.2 軟件設(shè)計
netIC IOT 模塊提供的主機接口是 netPROXY,用戶應(yīng)用程序通過 netPROXY 來訪問模 塊。如下圖所示,可采用 ST 公司的 STM32 系列的 MCU 作為主 MCU,其 Host 應(yīng)用程序通 過 netPROXY 接口進行數(shù)據(jù)的訪問,可有效節(jié)約開發(fā)時間。netPROXY Host API 用于通過 HIF DPM 訪問 netIC IOT,需通過 cifX API 訪問 DPM,如下圖所示:
圖 15 netIC IOT 與主機接口連接模式
netPROXY 的優(yōu)勢在于為使用簡單對象模型以通用方式描述設(shè)備應(yīng)用程序數(shù)據(jù)提供了 一種可能性,這可以僅通過一次設(shè)計覆蓋特定設(shè)備應(yīng)用程序功能,達到重新使用以將這些數(shù)據(jù)轉(zhuǎn)換為不同的網(wǎng)絡(luò)協(xié)議的目的。netPROXY 使用對象模型不僅可以管理和訪問數(shù)據(jù),還可 以在 netPROXY 對象網(wǎng)絡(luò)服務(wù)之間執(zhí)行自動轉(zhuǎn)換。
3netIC IOT 實例 PROFINET Slave+OPC UA 應(yīng)用
通過 netIC IOT 的開發(fā)板,連接 STM32,進行 PROFINET Slave+OPC UA 的測試。 NIOT-I-ICEB-RE 開發(fā)板通過 USB 接口連接到計算機,通過 netX Studio 工具對其進行配置, 然后將配置文件及協(xié)議棧下載到硬件中。完成配置之后,連接至 STM32 開發(fā)板,對其進行 應(yīng)用程序的調(diào)試。 將以太網(wǎng)口連接到主站 cifX 50-RE, 并通過外設(shè) SSIO 接口連接 NIOT-I-ICEB-SSIO 擴展板。在 SYCON.net 中創(chuàng)建工程,進行 PROFINET 通訊調(diào)試。然后采 用 Softing 的 OPC UA Client 進行 OPC UA 通訊測試。硬件連接圖如下圖所示:
圖 16 硬件連接圖
通過 OPC UA Client 可以抓取到 netIC IOT 在 PROFINET 網(wǎng)絡(luò)中與主站進行數(shù)據(jù)交換的 周期數(shù)據(jù),若將數(shù)據(jù)上傳至云服務(wù)器或通過云服務(wù)器的 OPC UA Client 獲取數(shù)據(jù),在進一步對數(shù)據(jù)進行分析或預測性維護。通過 OPC UA Client 觀測數(shù)據(jù)變化如下圖所示:
圖 17 OPCUAClient 監(jiān)測圖
由此可見,通過 netIC IOT 設(shè)備級物聯(lián)網(wǎng)通訊模塊進行產(chǎn)品研發(fā),可節(jié)省投入成本,并輕松實現(xiàn)設(shè)備上云。
4 結(jié)束語
netIC IOT 通訊模塊在同一硬件上支持現(xiàn)主流的實時以太網(wǎng)從站協(xié)議, 用戶可在 netXStudio 工程工具生成用于其設(shè)備的并獨立于協(xié)議的對象模型,而且在應(yīng)用軟件中只需要移植一次。根據(jù)不同的現(xiàn)場網(wǎng)絡(luò)應(yīng)用,只需在 netXStudio 中配置并下載不同的協(xié)議棧即可。 對于應(yīng)用來說無需對不同的通訊網(wǎng)絡(luò)作相應(yīng)的設(shè)計,僅一次軟硬件設(shè)計就可以實現(xiàn)真正意義上的多協(xié)議設(shè)備研發(fā)。
參考文獻
[1]企業(yè)上云走向深入,設(shè)備上云現(xiàn)燎原之勢.http://www.sohu.com/a/301491238_99988082. [2]企業(yè)上云走向深入_設(shè)備上云仍需爬坡過坎.電子信息產(chǎn)業(yè)網(wǎng).行業(yè)動態(tài). [3]任偉.工業(yè)物聯(lián)網(wǎng)關(guān)鍵技術(shù) 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 - 工業(yè) 4 . 0 的先行者[ J ] . 中國儀器儀表,2017,03:36-37.
[6]張亞慧.物聯(lián)網(wǎng)環(huán)境下輕量級發(fā)布/訂閱系統(tǒng)的設(shè)計與實現(xiàn)[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.