(北京機械工業(yè)自動化研究所有限公司,北京 100120)
隨著互聯(lián)網(wǎng)+的迅速發(fā)展,物聯(lián)網(wǎng)在新一代信息技術(shù)領(lǐng)域中扮演者重要的角色。物聯(lián)網(wǎng)就是物物相連的互聯(lián)網(wǎng),通過傳感器,識別技術(shù),智能網(wǎng)關(guān)和計算機技術(shù)將萬物連接在一起。萬物互聯(lián)的重要橋梁就是物聯(lián)網(wǎng)網(wǎng)關(guān),物聯(lián)網(wǎng)網(wǎng)關(guān)是連接傳感層與應用層之間的重要通道,是萬物互聯(lián)的基礎,由于不同設備通常采用不同的通訊協(xié)議,要使它們之間進行數(shù)據(jù)通訊,需要編寫大量的數(shù)據(jù)通訊協(xié)議,耗時耗力。對于以上問題,西門子IOT2040智能物聯(lián)網(wǎng)網(wǎng)關(guān)通過內(nèi)嵌OPC UA技術(shù),Nodered可視化編程語言來實現(xiàn)不同數(shù)據(jù)之間的通訊協(xié)調(diào),并把大量的數(shù)據(jù)傳輸?shù)綉脤舆M行云計算分析[1]。
西門子IOT2040是適用于生產(chǎn)環(huán)境數(shù)據(jù)的采集、處理和傳輸?shù)目煽啃蚤_放性平臺,是云或公司IT層和生產(chǎn)系統(tǒng)之間的理想網(wǎng)關(guān),作為數(shù)據(jù)接口可實現(xiàn)雙向通訊,在云平臺分析后的數(shù)據(jù)傳送給生產(chǎn)控制設備。IOT2040還支持多種通訊協(xié)議和高級語言,可實現(xiàn)定制化的解決方案。
西門子IOT2040系列產(chǎn)品側(cè)重于IOT環(huán)境,是SIMATIC IPC產(chǎn)品低功耗范圍的完美補充,如圖1所示。
圖1 西門子IOT2040
產(chǎn)品特性如表1所示。
表1 西門子IOT2040產(chǎn)品型號
1.2.1 OPC UA簡介
OPC通信的核心是互通性和標準化問題。傳統(tǒng)的OPC技術(shù)在控制級別很好的解決了硬件設備之間的互通性問題,但同樣需要在企業(yè)層面的通信標準化。OPC訪問規(guī)范都是基于微軟的COM/DCOM技術(shù),這會給新增層面的通信帶來不可根除的弱點。加上傳統(tǒng)的OPC技術(shù)不夠靈活,平臺局限性等問題逐漸凸顯,OPC基金會發(fā)布了最新的數(shù)據(jù)通訊統(tǒng)一方法:OPC統(tǒng)一架構(gòu)(OPC UA),涵蓋了OPC實時數(shù)據(jù)訪問規(guī)范(OPC DA)、OPC歷史數(shù)據(jù)訪問規(guī)范(OPC HDA)、OPC報警時間訪問規(guī)范(OPC A&E)和OPC安全協(xié)議(OPC Security)等不同方面,但又在其基礎上進行了功能擴展。OPC UA是在傳統(tǒng)OPC技術(shù)取得很大成功之后的又一個突破,讓數(shù)據(jù)采集、信息模型以及工廠底層與企業(yè)層面之間的通訊更加安全和可靠[2~4]。OPC UA的幾大優(yōu)勢有:
1)與平臺無關(guān),可在任何操作系統(tǒng)上運行。
2)為未來的先進系統(tǒng)做好準備,與保留系統(tǒng)繼續(xù)兼容。
3)配置和維護更加方便。
4)基于服務的技術(shù)。
5)可見性增加。
6)通信范圍更廣。
7)通信性能提高。
1.2.2 Node-red簡介
Node-red是構(gòu)建物聯(lián)網(wǎng)應用程序的一個強大工具,其重點是簡化代碼塊的“連接”以執(zhí)行任務。它采用可視化編程方法,允許開發(fā)人員將預定義的代碼塊(稱為“節(jié)點”,Node)連接起來執(zhí)行任務。連接的節(jié)點,通常是輸入節(jié)點,處理節(jié)點和輸出節(jié)點的組合,當它們連接在一起的時候,構(gòu)成一個“流”(Flow)[5]。
IBM創(chuàng)建Node-red時,他們主要關(guān)注的是物聯(lián)網(wǎng),即連接設備到流程,流程到設備的過程。作為一種快速的物聯(lián)網(wǎng)應用開發(fā)工具,Node-red既靈活又強大。它的特點來自兩個因素:
1)Node-red是基于流的編程模型,表示節(jié)點間事件流的消息,觸發(fā)以及輸出結(jié)果的處理。基于流的編程模型很好地映射到典型的物聯(lián)網(wǎng)應用程序,這些應用程序以真實的事件為特征,觸發(fā)某種處理,從而導致實際操作。Node-red將這些事件打包為消息,這些消息為在組成流的節(jié)點之間的流動事件提供了一個簡單而統(tǒng)一的模型。
2)內(nèi)置節(jié)點集是Node-red的第二個優(yōu)勢。通過建立一套強大的輸入輸出節(jié)點,每一個隱藏的復雜性與真實世界互動,Node-red的開發(fā)者提供了強大的基礎,并讓它們迅速流動,完成很多工作,而不必擔心編程細節(jié)。
這兩個因素使得Node-red成為物聯(lián)網(wǎng)應用開發(fā)者有力的工具。當結(jié)合靈活創(chuàng)建和使用功能節(jié)點,它允許開發(fā)人員快速寫任意的JavaScript。Node-red社區(qū)不斷創(chuàng)造和分享新的節(jié)點,這讓Node-red成為物聯(lián)網(wǎng)開發(fā)者的主要工具之一。
首先,通過軟件putty輸入西門子IOT2040智能物聯(lián)網(wǎng)網(wǎng)關(guān)默認的IP地址192.168.200.1來連接到IOT2040上。
IOT2040的官方鏡像文件里面已經(jīng)安裝好了Nodered編程環(huán)境,我們可以輸入命令:node/usr/lib/node_modules/red/node-red/red &來安裝IOT2040內(nèi)部的Nodered,如圖2所示。
圖2 IOT2040安裝Node-red示意圖
IOT2040鏡像文件,從V2.1.2版本以后的Node-red都可以聯(lián)網(wǎng)安裝OPC UA。
首先測試一下IOT2040是否聯(lián)網(wǎng),硬件上可以通過X2P1LAN口連上已經(jīng)上網(wǎng)的路由器,因為X2P1LAN默認是自動獲取IP地址的,所以不需要設置特別的IP地址。
連上互聯(lián)網(wǎng)之后,通過輸入命令:cd /usr/lib/node_modules回車,再輸入:npm install node-red-contribopcua ,開始安裝OPC UA,安裝成功如圖3所示。
首先,找一個帶有OPC UA Server的PLC,用的是倍福的twincat軟PLC,配置好OPC UA Server。把電腦的以太網(wǎng)端口和PLC的OPC UA的以太網(wǎng)端口配置在同一網(wǎng)段,通過瀏覽器打開Node-red界面,并從左邊拖拽三個Node控件到Flow里面,分別為Inject、OPC UA Client、Text,并分別設置三個控間的參數(shù),如圖4、圖5、圖6所示。
圖3 IOT2040成功安裝OPC UA
圖4 inject設置
圖5 OPC UA Client設置
設置完成后把Node直接連接起來形成一個“流”,這樣讀變量的編程就算完成了,如圖7所示。
通過Node-red來讀取PLC中的一個bool量,Text中顯示true或者false,再讀取一個int類型的數(shù)值,如圖8所示。
圖6 Text設置
圖7 Node一個“流”
圖8 Node-red讀取數(shù)據(jù)
本文利用西門子IOT2040智能物聯(lián)網(wǎng)網(wǎng)關(guān)成功與帶有OPC UA Server的PLC進行通訊。隨著數(shù)字化,信息化的不斷發(fā)展,數(shù)據(jù)采集變得尤為重要,但是不同制造商所生產(chǎn)的設備通常采用不同的數(shù)據(jù)語言和協(xié)議,因此對于控制網(wǎng)和互聯(lián)網(wǎng)之間的通訊就需要大量的復雜改造。IOT2040智能網(wǎng)關(guān)可以將不同數(shù)據(jù)源間的通訊進行標準化,并且可以將數(shù)據(jù)上傳至云平臺進行數(shù)據(jù)挖掘。
本文只介紹了西門子IOT2040中Node-red的圖形化編程軟件,其實IOT2040支持多種高級編程語言例如C++,Javascript等。通過此次試驗,了解了西門子IOT2040功能的強大性,其實IOT2040還有很多強大的功能,需要深入挖掘其中的功能,充分發(fā)揮IOT2040的性能。