(北京機械工業自動化研究所有限公司,北京 100120)
隨著互聯網+的迅速發展,物聯網在新一代信息技術領域中扮演者重要的角色。物聯網就是物物相連的互聯網,通過傳感器,識別技術,智能網關和計算機技術將萬物連接在一起。萬物互聯的重要橋梁就是物聯網網關,物聯網網關是連接傳感層與應用層之間的重要通道,是萬物互聯的基礎,由于不同設備通常采用不同的通訊協議,要使它們之間進行數據通訊,需要編寫大量的數據通訊協議,耗時耗力。對于以上問題,西門子IOT2040智能物聯網網關通過內嵌OPC UA技術,Nodered可視化編程語言來實現不同數據之間的通訊協調,并把大量的數據傳輸到應用層進行云計算分析[1]。
西門子IOT2040是適用于生產環境數據的采集、處理和傳輸的可靠性開放性平臺,是云或公司IT層和生產系統之間的理想網關,作為數據接口可實現雙向通訊,在云平臺分析后的數據傳送給生產控制設備。IOT2040還支持多種通訊協議和高級語言,可實現定制化的解決方案。
西門子IOT2040系列產品側重于IOT環境,是SIMATIC IPC產品低功耗范圍的完美補充,如圖1所示。

圖1 西門子IOT2040
產品特性如表1所示。

表1 西門子IOT2040產品型號
1.2.1 OPC UA簡介
OPC通信的核心是互通性和標準化問題。傳統的OPC技術在控制級別很好的解決了硬件設備之間的互通性問題,但同樣需要在企業層面的通信標準化。OPC訪問規范都是基于微軟的COM/DCOM技術,這會給新增層面的通信帶來不可根除的弱點。加上傳統的OPC技術不夠靈活,平臺局限性等問題逐漸凸顯,OPC基金會發布了最新的數據通訊統一方法:OPC統一架構(OPC UA),涵蓋了OPC實時數據訪問規范(OPC DA)、OPC歷史數據訪問規范(OPC HDA)、OPC報警時間訪問規范(OPC A&E)和OPC安全協議(OPC Security)等不同方面,但又在其基礎上進行了功能擴展。OPC UA是在傳統OPC技術取得很大成功之后的又一個突破,讓數據采集、信息模型以及工廠底層與企業層面之間的通訊更加安全和可靠[2~4]。OPC UA的幾大優勢有:
1)與平臺無關,可在任何操作系統上運行。
2)為未來的先進系統做好準備,與保留系統繼續兼容。
3)配置和維護更加方便。
4)基于服務的技術。
5)可見性增加。
6)通信范圍更廣。
7)通信性能提高。
1.2.2 Node-red簡介
Node-red是構建物聯網應用程序的一個強大工具,其重點是簡化代碼塊的“連接”以執行任務。它采用可視化編程方法,允許開發人員將預定義的代碼塊(稱為“節點”,Node)連接起來執行任務。連接的節點,通常是輸入節點,處理節點和輸出節點的組合,當它們連接在一起的時候,構成一個“流”(Flow)[5]。
IBM創建Node-red時,他們主要關注的是物聯網,即連接設備到流程,流程到設備的過程。作為一種快速的物聯網應用開發工具,Node-red既靈活又強大。它的特點來自兩個因素:
1)Node-red是基于流的編程模型,表示節點間事件流的消息,觸發以及輸出結果的處理。基于流的編程模型很好地映射到典型的物聯網應用程序,這些應用程序以真實的事件為特征,觸發某種處理,從而導致實際操作。Node-red將這些事件打包為消息,這些消息為在組成流的節點之間的流動事件提供了一個簡單而統一的模型。
2)內置節點集是Node-red的第二個優勢。通過建立一套強大的輸入輸出節點,每一個隱藏的復雜性與真實世界互動,Node-red的開發者提供了強大的基礎,并讓它們迅速流動,完成很多工作,而不必擔心編程細節。
這兩個因素使得Node-red成為物聯網應用開發者有力的工具。當結合靈活創建和使用功能節點,它允許開發人員快速寫任意的JavaScript。Node-red社區不斷創造和分享新的節點,這讓Node-red成為物聯網開發者的主要工具之一。
首先,通過軟件putty輸入西門子IOT2040智能物聯網網關默認的IP地址192.168.200.1來連接到IOT2040上。
IOT2040的官方鏡像文件里面已經安裝好了Nodered編程環境,我們可以輸入命令:node/usr/lib/node_modules/red/node-red/red &來安裝IOT2040內部的Nodered,如圖2所示。

圖2 IOT2040安裝Node-red示意圖
IOT2040鏡像文件,從V2.1.2版本以后的Node-red都可以聯網安裝OPC UA。
首先測試一下IOT2040是否聯網,硬件上可以通過X2P1LAN口連上已經上網的路由器,因為X2P1LAN默認是自動獲取IP地址的,所以不需要設置特別的IP地址。
連上互聯網之后,通過輸入命令:cd /usr/lib/node_modules回車,再輸入:npm install node-red-contribopcua ,開始安裝OPC UA,安裝成功如圖3所示。
首先,找一個帶有OPC UA Server的PLC,用的是倍福的twincat軟PLC,配置好OPC UA Server。把電腦的以太網端口和PLC的OPC UA的以太網端口配置在同一網段,通過瀏覽器打開Node-red界面,并從左邊拖拽三個Node控件到Flow里面,分別為Inject、OPC UA Client、Text,并分別設置三個控間的參數,如圖4、圖5、圖6所示。

圖3 IOT2040成功安裝OPC UA

圖4 inject設置

圖5 OPC UA Client設置
設置完成后把Node直接連接起來形成一個“流”,這樣讀變量的編程就算完成了,如圖7所示。
通過Node-red來讀取PLC中的一個bool量,Text中顯示true或者false,再讀取一個int類型的數值,如圖8所示。

圖6 Text設置

圖7 Node一個“流”

圖8 Node-red讀取數據
本文利用西門子IOT2040智能物聯網網關成功與帶有OPC UA Server的PLC進行通訊。隨著數字化,信息化的不斷發展,數據采集變得尤為重要,但是不同制造商所生產的設備通常采用不同的數據語言和協議,因此對于控制網和互聯網之間的通訊就需要大量的復雜改造。IOT2040智能網關可以將不同數據源間的通訊進行標準化,并且可以將數據上傳至云平臺進行數據挖掘。
本文只介紹了西門子IOT2040中Node-red的圖形化編程軟件,其實IOT2040支持多種高級編程語言例如C++,Javascript等。通過此次試驗,了解了西門子IOT2040功能的強大性,其實IOT2040還有很多強大的功能,需要深入挖掘其中的功能,充分發揮IOT2040的性能。