本案例將通過Docker容器安裝DLT-645協(xié)議插件采集實現(xiàn)電表數(shù)據(jù)上云,前面已經(jīng)講過Modbus RTU協(xié)議通過Node -RED上云,如果采用支持Modbus RTU電表可以參考之前的“Docker容器實現(xiàn)邊緣采集”。
首先需要搭建Node-RED運行環(huán)境,可以參考以往案例,也可以直接百度搜索,接下來的部分都是在搭建好環(huán)境的基礎(chǔ)上進(jìn)行。
安裝插件
打開“菜單”選擇“節(jié)點管理”在點擊控制板,選擇“安裝”;
搜索插件“node-red-contrib-meter-works”,點擊安裝即可,該插件由Node-RED社區(qū)的三方開發(fā)者制作的免費插件,具體功能以及使用說明建議自行查看(https://flows.nodered.org/node/node-red-contrib-meter-works);
創(chuàng)建“流程”
這次使用MQTT服務(wù)器來轉(zhuǎn)發(fā)數(shù)據(jù),Node-RED內(nèi)置MQTT3.1.1協(xié)議可以快速接入云服務(wù)器,創(chuàng)建一個“MQTT IN”節(jié)點用于接收平臺請求數(shù)據(jù);
上圖“2”為添加一個MQTT連接(通過EMQX搭建的私有服務(wù)器,使用阿里云、ONENET等支持標(biāo)準(zhǔn)MQTT3.1.1服務(wù)器與此處類似);
以阿里云為例演示如何配置標(biāo)準(zhǔn)MQTT3.1.1服務(wù)連接方法。
登錄阿里云查詢?nèi)兀?/p>
填入上面查詢得到的三要素;
查詢或定義用于測試的Topic,也可以使用標(biāo)準(zhǔn)物模型的訂閱發(fā)布Topic,如果使用標(biāo)準(zhǔn)物模型需要加入編解碼過程,筆者這里先不講,大家可以自己先研究下,只需要使用一個節(jié)點一個腳本即可實現(xiàn);
配置訂閱地址(也就是剛才選擇的MQTT IN節(jié)點):
點擊部署,連接成功后于節(jié)點下方會提示“已連接”代表設(shè)備連接服務(wù)器成功,并成功訂閱;
code_meter(DLT654查詢節(jié)點)采用固定查詢方式,為了實現(xiàn)不同的數(shù)據(jù)查詢引入“SWITCH”節(jié)點,如若使用阿里云標(biāo)準(zhǔn)物模型就可以在“SWITCH”節(jié)點前加入“function”節(jié)點實現(xiàn)數(shù)據(jù)的解碼;
筆者為了演示方便直接使用服務(wù)器下發(fā)“1”“2”“3”“4”分別代表查詢“正向有功功率”“當(dāng)前電壓”“當(dāng)前電流”“當(dāng)前功率”;
配置code_meter節(jié)點的表號和功能碼,按照相同方法配置“當(dāng)前電壓”“當(dāng)前電流”“當(dāng)前功率”;
DLT645是一個用于串口的收發(fā)協(xié)議,筆者暫時沒有測試過Node-RED直接驅(qū)動串口節(jié)點(node-red-node-serialport),并且搭建Node-RED的USB被之前搭建的3D打印機(jī)(Kilpper)占用,不想調(diào)試參數(shù),這里就使用串口服務(wù)器來轉(zhuǎn)發(fā)數(shù)據(jù),添加網(wǎng)絡(luò)節(jié)點“tcp out”;
根據(jù)配置的服務(wù)器參數(shù)配置串口服務(wù)器網(wǎng)絡(luò)參數(shù)和串口參數(shù),DDSU666電表默認(rèn)采用2400-8O1,將串口服務(wù)器的串口參數(shù)與電表一致;
至此已經(jīng)完成指令發(fā)送的全部過程,如下所示。
接下來處理電表返回數(shù)據(jù),配置“tcp in”節(jié)點采集串口服務(wù)器返回數(shù)據(jù);
添加“decode_meter”節(jié)點解析電表返回參數(shù);
配置發(fā)布地址用于向服務(wù)器返回采集數(shù)據(jù),一圖為自建MQTT服務(wù)器,二圖為阿里云MQTT服務(wù)器;
至此就完成了Node-RED服務(wù)器采集DLT645電表全部流程。
測試演示
自建服務(wù)器查詢當(dāng)前電壓,利用MQTTX連接服務(wù)器,向Node-RED訂閱地址“DLT645SUB”發(fā)送數(shù)據(jù)2,就會從Node-RED發(fā)布地址“DLT645PUB”收到當(dāng)前電壓值,發(fā)送其他指令代碼也會收到對應(yīng)數(shù)據(jù);
利用阿里云查詢“當(dāng)前電壓”,利用云服務(wù)器調(diào)試接口向“/a1iJTfIclao/DEV01/user/get”Node-RED訂閱地址發(fā)送數(shù)據(jù)2,就會從Node-REN發(fā)布地址“/a1iJTfIclao/DEV01/user/test”收到當(dāng)前電壓值,發(fā)送其他指令代碼也會收到對應(yīng)數(shù)據(jù);
查詢MQTT日志,電表返回數(shù)據(jù)成功傳輸?shù)椒?wù)器;
如果采用物模型就可以利用阿里云的提供的安卓軟件“云智能”查看DDSU666的采集的參數(shù)。
產(chǎn)品推薦
E870-G1邊緣計算網(wǎng)關(guān)是基于億佰特自行研發(fā)的通訊協(xié)議《億佰特云設(shè)備通訊協(xié)議》開發(fā)的以太網(wǎng)/4G邊緣采集云網(wǎng)關(guān),可通過服務(wù)器下發(fā)指令到設(shè)備達(dá)到控制或采集功能;可采集500個邊緣數(shù)據(jù)點。設(shè)備上支持多種協(xié)議(TCP、UDP、MQTT)接入服務(wù)器,支持心跳包、注冊包設(shè)置;同時該產(chǎn)品支持多種配置方式,支持網(wǎng)頁平臺;采用工業(yè)級設(shè)計標(biāo)準(zhǔn),保證設(shè)備的高可靠性。