新聞中心
PRESS CENTER本文主要實現(xiàn)的功能是:使用EG系列網(wǎng)關(guān),實現(xiàn)串口與網(wǎng)口的自定義數(shù)據(jù)收發(fā)功能,并支持串口到網(wǎng)口之間的雙向數(shù)據(jù)透傳。EG系列網(wǎng)關(guān)可通過串口(如RS485/RS232)接收或發(fā)送自定義協(xié)議數(shù)據(jù),同時通過以太網(wǎng)接口(TCP/MQTT/UDP)與上位機(jī)或其他網(wǎng)絡(luò)設(shè)備進(jìn)行數(shù)據(jù)交互。透傳功能確保串口側(cè)的數(shù)據(jù)可實時、可靠地轉(zhuǎn)發(fā)至網(wǎng)絡(luò)側(cè),反之亦然,滿足工業(yè)物聯(lián)網(wǎng)場景下多協(xié)議、多接口互聯(lián)的通信需求。整體方案具備高靈活性與可擴(kuò)展性,適用于數(shù)據(jù)采集、遠(yuǎn)程監(jiān)控及設(shè)備聯(lián)網(wǎng)等應(yīng)用。
場景一:串口自定義數(shù)據(jù)收發(fā)
1. 使用注入節(jié)點(diǎn)構(gòu)造數(shù)據(jù)
EG系列網(wǎng)關(guān)通過串口1實現(xiàn)自定義數(shù)據(jù)格式的發(fā)送與接收(使用串口調(diào)試軟件模擬串口設(shè)備):
下行發(fā)送(網(wǎng)關(guān) → 串口設(shè)備):EG系列網(wǎng)關(guān)向串口1發(fā)送一串十六進(jìn)制數(shù)據(jù):01 02 03 04 05 06 0A 0B ,使用注入節(jié)點(diǎn)發(fā)送數(shù)據(jù),在配置注入節(jié)點(diǎn)時,數(shù)據(jù)類型設(shè)置為“二進(jìn)制流”(Buffer),數(shù)據(jù)以十進(jìn)制格式輸入,對應(yīng)為:1, 2, 3, 4, 5, 6, 10, 11。
此處為語雀內(nèi)容卡片,點(diǎn)擊鏈接查看:https://iotrouter.yuque.com/zn3vdn/eg8000/lg97tbt1ma1nfzb3#z8HWp
上行接收(串口設(shè)備 → 網(wǎng)關(guān)):EG系列網(wǎng)關(guān)從串口1接收數(shù)據(jù),使用調(diào)試節(jié)點(diǎn)打印串口工具發(fā)送的數(shù)據(jù)。
[{"id":"2b4704f7922fabce","type":"serial port","z":"a3d0b3056469a324","name":"","serial":"3d7d723f9d24c89e","x":370,"y":260,"wires":[["f1b38d12ef17afda"]]},{"id":"92173440eff8d025","type":"inject","z":"a3d0b3056469a324","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[1,2,3,4,5,6,10,11]","payloadType":"bin","x":150,"y":260,"wires":[["2b4704f7922fabce"]]},{"id":"f1b38d12ef17afda","type":"debug","z":"a3d0b3056469a324","name":"調(diào)試 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":590,"y":260,"wires":[]},{"id":"3d7d723f9d24c89e","type":"serial config","name":"","serialport":"/dev/ttyAS3","serialportname":"RS485-1","baudrate":"9600","databits":"8","stopbits":"1","parity":"none","timeout":"50","reqtimeout":"1000"}] |
2. 使用函數(shù)計算節(jié)點(diǎn)構(gòu)造數(shù)據(jù)
除了使用注入節(jié)點(diǎn)發(fā)送自定義數(shù)據(jù)外,還可通過函數(shù)計算節(jié)點(diǎn)靈活構(gòu)造和封裝待發(fā)送的數(shù)據(jù)報文。配置如下:在函數(shù)計算節(jié)點(diǎn)中編寫JavaScript代碼,將目標(biāo)數(shù)據(jù)(十六進(jìn)制報文)以數(shù)組形式按字節(jié)定義,并封裝為Buffer對象輸出。例如,發(fā)送數(shù)據(jù) 01 02 03 04 05 06 0A 0B,可表示為:
msg.payload = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0A, 0x0B]); return msg; |
[{"id":"9b2fbc4223a8a405","type":"inject","z":"a3d0b3056469a324","name":"","props":[{"p":"payload"},{"p":"topic","vt":tr"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":260,"wires":[["ea7b6a1481b2cb8d"]]},{"id":"ea7b6a1481b2cb8d","type":"function","z":"a3d0b3056469a324","name":"函數(shù)計算 1","func":"msg.payload = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0A, 0x0B]);\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":350,"y":260,"wires":[["2b4704f7922fabce"]]},{"id":"2b4704f7922fabce","type":"serial port","z":"a3d0b3056469a324","name":"","serial":"3d7d723f9d24c89e","x":590,"y":260,"wires":[["eeb20e704fcb6bfe"]]},{"id":"eeb20e704fcb6bfe","type":"debug","z":"a3d0b3056469a324","name":"調(diào)試 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":810,"y":260,"wires":[]},{"id":"3d7d723f9d24c89e","type":"serial config","name":"","serialport":"/dev/ttyAS3","serialportname":"RS485-1","baudrate":"9600","databits":"8","stopbits":"1","parity":"none","timeout":"50","reqtimeout":"1000"}] |
場景二:網(wǎng)口(TCP協(xié)議)自定義數(shù)據(jù)收發(fā)
1. 網(wǎng)關(guān)作為TCP客戶端
與場景1的串口自定義收發(fā)流程類似,若要實現(xiàn)網(wǎng)口(TCP)的自定義數(shù)據(jù)收發(fā),只需將原流程中的串口節(jié)點(diǎn)替換為TCP客戶端節(jié)點(diǎn),連接TCP服務(wù)器即可(使用網(wǎng)絡(luò)調(diào)試助手模擬TCP服務(wù)器)。
[{"id":"ae1690e73aa50bb9","type":"inject","z":"a3d0b3056469a324","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[1,2,3,4,5,6,10,11]","payloadType":"bin","x":250,"y":420,"wires":[["2a19998cda5f16e7"]]},{"id":"db64c73423c1f330","type":"debug","z":"a3d0b3056469a324","name":"調(diào)試 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":690,"y":420,"wires":[]},{"id":"2a19998cda5f16e7","type":"tcp request","z":"a3d0b3056469a324","name":"","server":"192.168.0.59","port":"9600","out":"sit","ret":"buffer","splitc":" ","newline":"","trim":false,"tls":"","x":460,"y":420,"wires":[["db64c73423c1f330"]]}] |
2. 網(wǎng)關(guān)作為TCP服務(wù)端
使用TCP IN節(jié)點(diǎn)工作在監(jiān)聽模式接收數(shù)據(jù),通過TCP OUT節(jié)點(diǎn)來響應(yīng)和發(fā)送數(shù)據(jù)。
[{"id":"1f53226ed4f3b785","type":"tcp in","z":"a3d0b3056469a324","name":"","server":"server","host":"","port":"502","datamode":"stream","datatype":"buffer","newline":"","topic":"","trim":false,"base64":false,"tls":"","x":270,"y":380,"wires":[["24484352918c8c59"]]},{"id":"6176128689f6e641","type":"tcp out","z":"a3d0b3056469a324","name":"","host":"","port":"","beserver":"reply","base64":false,"end":false,"tls":"","x":490,"y":300,"wires":[]},{"id":"cce25820a104d510","type":"inject","z":"a3d0b3056469a324","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[1, 2, 3, 4, 5, 6, 10, 11]","payloadType":"bin","x":270,"y":300,"wires":[["6176128689f6e641"]]},{"id":"24484352918c8c59","type":"debug","z":"a3d0b3056469a324","name":"調(diào)試 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":490,"y":380,"wires":[]}] |
場景三:數(shù)據(jù)透傳
1. 串口到TCP(MQTT同理)
這里以EG系列網(wǎng)關(guān)的RS485-1口與TCP服務(wù)器進(jìn)行數(shù)據(jù)透傳為例:
此處為語雀視頻卡片,點(diǎn)擊鏈接查看:見文末
2. TCP到MQTT
這里以EG系列網(wǎng)關(guān)TCP與MQTT數(shù)據(jù)透傳為例:
詳細(xì)見:https://iotrouter.yuque.com/zn3vdn/eg8000/rct9apxmetko92v4