【工業樹莓派】如何結合Node-Red編程實現工控功能?

【 關於工業級樹莓派 】

工業樹莓派(RevolutionPi)是一種DIN導軌安裝的小型工控機和智能網關。RevolutionPi(簡稱RevPi)具有一整套IO和總線模塊,可以與所有常見的模擬和數字傳感器、執行器和總線系統以及基於TCP-IP的網路進行通訊。RevPi運行Linux操作系統,這使得它成為一個功能多樣的多功能解決方案。

與傳統的可編程邏輯控制器(PLC)相比,軟PLC沒有一個用於進行編程的預定義軟體。Revolution Pi可以用幾乎所有語言進行編程:高級語言(例如C,C#,Java,PHP,Python),經典的自動化解決方案(例如Codesys)或圖形工具(例如NodeRed)。這就是巨大的潛力所在:您幾乎可以在RevPi上運行任何東西。

【關於Node-Red】

Node-RED是構建物聯網(IoT)應用程序的強大工具,它使用可視化的編程方法,允許開發人員將預定義的代碼塊(稱為「節點」)連接在一起以執行任務。當連接在一起時,通常由輸入節點,處理節點和輸出節點組成的連接節點構成一個 「 流 」 。RevPi 模塊已經內置Node-RED運行環境,本文將詳細介紹Node-RED基本概念與編程邏輯,以及可能的應用方案。

【節點】

與常見的程式語言比(如C,Java,Python)不同,Node-RED是一種可視化編程工具,可以快速實現代碼塊的複用,簡單快捷地構建您的IIOT程序。它最重要的幾個基本概念是節點、消息結構和「流」。

節點是指封裝好的程式碼塊,通常分為輸入節點、處理節點和輸出節點三種。

輸入節點可以產生訊息,並將訊息傳送給下一個節點。這類節點最重要的特徵是只有輸出端,沒有輸入端。

處理節點可以接受來自上一個節點的消息,並對收到的訊息進行處理,然後將處理後的訊息輸出到下一個節點。這類節點通常同時具有輸入端和輸出段。

輸出節點消耗消息,通常只有輸入端,可以接收來自其它節點的消息並執行相應操作。通常此類節點具有輸出功能,即通過各種協議或方式將Node-RED流中的消息輸出。

【消息結構】

各節點之間透過稱為msg的JavaScript對像傳輸消息,其典型結構為:

其中最重要的是payload,它是指一條消息的有效負載,一般常見的節點都會涉及到payload內容的操作。其它的都是可選項,可以根據需要自行決定。

【流】

Node-RED是一種可視化編程工具,可以在可視化面板上將輸入節點、處理節點以及輸出節點以一定的順序連接起來,消息在各節點之間流動,這就形成了一個「流」。用戶可以透過「流」實現各種功能,對於一些比較複雜的流程也可以將其包裝成一個「子流」,簡化程序結構。

【簡單的邏輯控制】

簡單來說,Node-RED就是連接不同功能的代碼塊以實現需要的功能。而Node-RED被稱為構建工業物聯網的強大工具,能夠實現哪些功能呢?下面幾個簡單的例子,可供參考。

RevPi針對Node-RED製作了專屬節點,可以透過RevPi的Node-RED節點直接控制附屬的IO模塊或者網關模塊。所以可以透過Node-RED建立邏輯關係,從而實現小型控制的功能。比如可以控制電機的啟停、繼電器的開閉等等。

Node-RED具有各種各樣包裝好的節點,可以直接使用。如果沒有滿足需求功能的節點也可以透過function節點編寫自己的功能節點,使用的語言是JavaScript。

邊緣智能網關與數據上雲

Node-RED支援多種傳輸協議,如串口、TCP、MQTT、HTTP、Modbus、OPC UA、S7等。可以藉助這些節點,採集連接到樹莓派的傳感器或者 PLC等設備的數據並對數據進行處理,然後透過其它協議發送出去,從而可以對接您的 SCADA系統或者進行串口虛擬化,協議轉換等。

工業樹莓派可以擴展常見工業以太網和現場總線的網關模塊,您可以利用這些模塊接入到OT網路中,獲取數據之後,再透過 Node-RED進行協議轉換或數據上雲等。

當然不是所有的節點都是預裝好的,比如Modbus或者OPC UA功能的節點,用戶需要在節點管理面板中搜索安裝。

Node-RED作為一個開源平台,擁有強大的開發者社區論壇,您可以在其中找到各種功能節點。

HMI儀表盤】

Node-RED還具有一些Dashboard節點,您可以藉助它建立您自己的HMI界面。Dashboard節點可以自動生成一個基於web的界面,用戶不僅可以在本地查看設備運行狀態,也可以進行遠程監控。如果用戶想要升級工廠,使得產線設備運行狀態更加直觀,Node-RED是一個很好的選擇。

上圖是一個簡單的示例,不是很精緻,只是簡單展現一些基本功能。您可以根據實際需要建立自己的儀錶盤界面。

總結

透過Node-RED可視化編程工具可以大大減少用戶的開發工作量。透過其它程序大量程式碼實現的工作,在這裡只需要幾個節點就可以配置完成。如果您需要進行小型控制、採集設備或者傳感器數據、邊緣計算、協議轉換、數據上雲、建立HMI界面、遠程數據監控等等,Node-RED都大有用武之地。關於Node-RED的具體應用示例,可以我們的其他案例文章。