node-red-contrib-opcua-ui 1.0.0
Node-RED 節點,提供圖形化樹狀介面瀏覽與選擇 OPC UA 伺服器地址進行讀取與寫入
node-red-contrib-opcua-ui
專為 Node-RED 設計的工業級 OPC UA 視覺化套件,包含
opcua reader(讀取)與opcua writer(寫入)節點,具備圖形化樹狀瀏覽器 (Address Space Browser),讓您能夠直觀、快速地探索 OPC UA 伺服器並點選要讀取或寫入的變數地址!
🌟 核心特色
- 獨立分類 (Category:
OPC-UA-UI):- 在 Node-RED 節點側邊欄中獨立成
OPC-UA-UI群組,與一般節點清晰分離。
- 在 Node-RED 節點側邊欄中獨立成
- 圖形化階層式地址空間瀏覽器:
- 點擊「🔍 圖形化選擇地址」即時連線 OPC UA 伺服器並開啟階層樹狀檢視。
- 具備物件(📁 Folder/Object)、變數(🏷️ Variable)、方法(⚙️ Method)圖示區分。
- 已修復搜尋欄圖示與文字重疊問題,提供乾淨流暢的輸入與篩選體驗。
- 全面支援深色模式 (Dark Mode):
- 針對 Node-RED 編輯器的深色主題及系統深色色彩模式進行深度調色與高對比度優化。
- 多種輸出格式支援 (Reader):
- 純數值 (Raw Value):
msg.payload為原始數值(如65.5)。 - 物件結構 (Object):
msg.payload為包含value,nodeId,dataType,statusCode,sourceTimestamp的完整 JSON 物件。 - 陣列包裝 (Array):
msg.payload為陣列包裝(如[65.5])。
- 純數值 (Raw Value):
- 完整實作寫入節點 (
opcua writer):- 與 Reader 共享相同的圖形化瀏覽體驗,點選變數即可自動帶入 NodeId 與偵測到的 DataType。
- 自動型別安全轉換:支援
Auto自動轉換,亦可強制指定為Double,Float,Int32,Int16,UInt32,UInt16,Boolean,String,DateTime。 - 多種數值來源:支援由輸入訊息
msg.payload動態寫入,或在節點中設定固定值觸發寫入。
- 按需延遲載入 (Lazy Loading):
- 展開時才向伺服器拉取子層級,即使伺服器包含成千上萬個節點亦能順暢瀏覽。
📦 安裝與更新方式
在 Node-RED 使用者目錄下安裝
cd $env:USERPROFILE\.node-red
npm install "c:\Users\Administrator\Documents\Project\node-red-contrib-opcua-ui"
安裝後重新啟動 Node-RED 即可在左側節點欄中看到 OPC-UA-UI 分類。
🚀 節點說明
1. opcua reader(讀取節點)
- 分類:
OPC-UA-UI(藍色標籤) - 讀取模式:
- 由輸入訊息觸發 (msg Trigger)
- 定時週期輪詢 (Interval Polling)
- 數值變更訂閱 (DataChange Subscription)
- 輸出格式:
- 純數值 (Raw) / 物件結構 (Object) / 陣列包裝 (Array)
2. opcua writer(寫入節點)
- 分類:
OPC-UA-UI(橘色標籤) - 資料類型:Auto、Double、Float、Int32、Int16、UInt32、UInt16、Boolean、String、DateTime、ExtensionObject
- 數值來源:
- 由輸入訊息帶入 (
msg.payload) - 指定固定值 (Fixed Value)
- 由輸入訊息帶入 (
- 結構體 (ExtensionObject / PLC UDT) 智慧合併寫入:
- 支援僅傳入欲修改之屬性,如
msg.payload = { "STOP": true },節點會自動讀取當前結構並將其餘欄位保持 PLC 原值寫回!
- 支援僅傳入欲修改之屬性,如
- 輸出結果:
msg.payload.success: 布林值表示是否寫入成功msg.payload.statusCode: OPC UA 狀態碼(例如 Good)msg.payload.writtenValue: 實際寫入之轉換數值
📄 授權條款
MIT License