使用 KEPServerEX:把 OPC 數據通過 MQTT 上傳
IoT Gateway 即 Internet of Things Gateway 物聯網網關。
最近發現 kep 自帶網關功能,能把 OPC 定義的數據,通過 mqtt 上傳。
這樣就不用實現 OPC 協議了
動圖演示

需要注意的地方
安裝 32位 的 jre
jre 32位,kep 提供的 mqtt 網關,需要 jre 32位,估計是 kep 使用的 paho 版本是 32 位的。


安裝 mqtt 服務端
搭建 mqtt broker,用 EMQ 的比較多,用 mosquitto 也行,看 mosquitto 最近新版本同時支持 v3.1.1 和 v5.0 。

詳解截圖



說明:
?? Wide Format:每一項都發送
?? Narrow Format:只發送變化的值的項



獲得的 JSON 數據,外面的 timestamp 是 MQTT 客戶端的上報時間,數組內是項的上報數據。
{
"timestamp": 1663049865628,
"values": [{
"id": "通道 1.設備 1.標記 5",
"v": 2697,
"q": true,
"t": 1663049863613
}, {
"id": "通道 1.設備 1.標記 5",
"v": 2698,
"q": true,
"t": 1663049864602
}, {
"id": "通道 1.設備 1.標記 5",
"v": 2699,
"q": true,
"t": 1663049865603
}]
}

疑問
KEPServerEX 是怎么和 MQTTX 通信的,怎么把 KEPServerEX 上的數據轉入到 MQTTX 上?
KEPServerEX 里面啟動了一個 MQTT 客戶端(Java 寫的,jre 用的 32位,有點舊)。
MQTT 客戶端連接 MQTT 服務端,并且定時往自定義的主題里發消息。
其他 MQTT 客戶端(可以是 MQTTX),連接 MQTT 服務端,并且訂閱這個自定義主題,就一直能收到消息。
通過 mqtt 網關,只能上傳數據嗎,能修改數據嗎?
kep 現在沒提供。

怎么能遠程修改數據呢?
?? kep 現在是個 OPCUA Server,一般裝在工控機上。
?? 需要 kep 作為一個客戶端,去連接遠程的 server,把數據發出去,也接受信息修改數據。
?? open62541 提供了免費的 OPCUA Server 客戶端實現,kep 配置一個OPCUA client。
?? OPCUA client 有瀏覽器用的 opcua.js 客戶端嗎?還沒發現,感覺應該有的。
?? mqtt over WebSocket 的 mqtt.js 都有,opcua over WebSocket 的 opcua.js 應該有的。
關于 OPCUA 的需求
?? 上報數據展示是最簡單,最普遍的需求。
?? 遠程修改數據,一般真不需要,遠程控制設備的需求現在很少。
?? 數據獲取到以后,只是展示實時數據,是否需要更高級的時間段統計計算呢?好像需要的也不多。

浙公網安備 33010602011771號