新聞中心
PRESS CENTEREG邊緣計(jì)算網(wǎng)關(guān)可以從現(xiàn)場設(shè)備采集數(shù)據(jù),并通過MQTT協(xié)議將數(shù)據(jù)上報(bào)到云平臺,實(shí)現(xiàn)設(shè)備的遠(yuǎn)程管理和監(jiān)控。縱橫云物聯(lián)網(wǎng)平臺為用戶提供了一個強(qiáng)大的云端平臺,用于接收、處理和可視化這些數(shù)據(jù)。本教程將介紹如何使用EG邊緣計(jì)算網(wǎng)關(guān)通過MQTT協(xié)議連接縱橫云物聯(lián)網(wǎng)平臺,實(shí)現(xiàn)數(shù)據(jù)采集和上傳。
本章節(jié)主要實(shí)現(xiàn)一個流程:EG8000采集的數(shù)據(jù),組裝成JSON格式,并通過MQTT上報(bào)應(yīng)用平臺;同時能夠接收應(yīng)用平臺下發(fā)的控制命令,實(shí)現(xiàn)遠(yuǎn)程開關(guān)。要實(shí)現(xiàn)此流程,需要提前準(zhǔn)備好以下材料:
要采集的PLC的IP端口以及點(diǎn)位表,例如:
PLC | S7-200 Smart | ||
IP | 192.168.0.30/102 | ||
地址 | 數(shù)據(jù)類型 | 屬性 | 名稱 |
I0.0 | Boolean | 只讀 | MotorState1 |
I0.1 | Boolean | 只讀 | MotorState2 |
V0.4 | Boolean | 讀寫 | MotorControl1 |
V0.5 | Boolean | 讀寫 | MotorControl2 |
VD100 | Float | 只讀 | voltage |
VD200 | Float | 只讀 | current |
VW300 | Uint16 | 只讀 | frequency |
VW302 | Uint16 | 只讀 | frequencySetValue |
MQTT通信相關(guān)參數(shù)及JSON數(shù)據(jù)格式要求,例如:
1.網(wǎng)關(guān)配置:
第一步:采集PLC數(shù)據(jù)
第二步:拼接Json
第三步:MQTT上報(bào)
第四步:下行MQTT訂閱
第五步:解析下行Json寫入PLC
2.平臺配置:
第一步:添加設(shè)備
第二步:添加數(shù)據(jù)點(diǎn)
第三步:綁定標(biāo)志
第四步:測試
1.網(wǎng)關(guān)配置
第一步:采集PLC數(shù)據(jù)
此處為采集PLC數(shù)據(jù),不在過多贅述,可參考其他案例。采集到PLC的流程如下:
此處為語雀內(nèi)容卡片,點(diǎn)擊鏈接查看:https://iotrouter.yuque.com/org-wiki-iotrouter-rlzwv5/eg8000/hh3gq8an371h7xiw
第二步:拼接Json
此處報(bào)文將數(shù)據(jù)按照需求概述拼接成Json格式,需要注意的是平臺限制每包數(shù)據(jù)上傳間隔必須大于1S,這里使用緩存隊(duì)列節(jié)點(diǎn)來實(shí)現(xiàn)數(shù)據(jù)有序發(fā)送:
平臺3.0有數(shù)據(jù)接收長度限制,所以本案例通過函數(shù)節(jié)點(diǎn)對采集的數(shù)據(jù)做了拆分上傳處理
PLC節(jié)點(diǎn)輸出JSON | 描述 | MQTT上報(bào)JSON |
{ "MotorState1": false, "voltage": 50, } | 將左側(cè)PLC節(jié)點(diǎn)輸出的JSON轉(zhuǎn)換成右側(cè)輸出的JSON | { "sensorDatas": [{ "flag": "MotorState1", "switcher": 0 }, { "flag": "voltage", "value": 50 }] } |
第三步:MQTT上報(bào)
配置MQTT發(fā)布節(jié)點(diǎn),用于將采集到的數(shù)據(jù)上傳平臺3.0:
此處為語雀視頻卡片,點(diǎn)擊鏈接查看:MQTT連接.mp4
第四步:下行MQTT訂閱
配置MQTT訂閱節(jié)點(diǎn),用于接收平臺3.0下發(fā)的控制指令:
此處為語雀視頻卡片,點(diǎn)擊鏈接查看:下行配置.mp4
第五步:解析Json并寫入到PLC
因?yàn)槠脚_3.0的下發(fā)的報(bào)文格式不滿足PLC的要求,所以,此處需要將收到的JSON格式進(jìn)行格式轉(zhuǎn)換。這里我們需要使用函數(shù)計(jì)算節(jié)點(diǎn),通過編程將它進(jìn)行處理轉(zhuǎn)換,再給到PLC進(jìn)行寫的操作:
MQTT下發(fā)JSON | 描述 | PLC節(jié)點(diǎn)需要的JSON |
{ "sensorDatas": [{ "sensorsId": 4503840, "switcher": 0, "flag": "MotorControl2" }], "down": "down" } | 將左側(cè)PLC節(jié)點(diǎn)輸出的JSON轉(zhuǎn)換成右側(cè)輸出的JSON | { "MotorControl2": false } |
此處為語雀視頻卡片,點(diǎn)擊鏈接查看:下行解包.mp4
2.平臺配置
第一步:添加設(shè)備
設(shè)備管理->添加設(shè)備->填入網(wǎng)關(guān)SN:GIF
第二步:添加數(shù)據(jù)點(diǎn)
設(shè)備管理找到剛才添加的設(shè)備,進(jìn)入編輯設(shè)備
找到傳感器添加數(shù)據(jù)點(diǎn)
根據(jù)本案例中的數(shù)據(jù)點(diǎn)添加,4個開關(guān)型變量,4個數(shù)值型變量,其他小數(shù)位以及單位根據(jù)自己的需求設(shè)定(添加完成后需要下滑到底部點(diǎn)擊創(chuàng)建設(shè)備)
第三步:綁定標(biāo)志
設(shè)備管理找到剛才添加的設(shè)備,點(diǎn)擊設(shè)置連接
填入讀寫標(biāo)識(需要和網(wǎng)關(guān)PLC節(jié)點(diǎn)的第三列配置一致)
第四步:測試
此處為語雀視頻卡片,點(diǎn)擊鏈接查看:測試.mp4
MQTT配置節(jié)點(diǎn)導(dǎo)出時,不會攜帶用戶名和密碼。因此導(dǎo)入時需要重新錄入用戶名和密碼