以太网扩展IO【中盛科技ZS-DIO-R-10A-4】_物联网平台_边缘计算网关

1、准备工作

1-1、ZS-DIO-R-10A-4

中盛科技ZS-DIO-R-10A-4 购买链接:

1-2、进入串口服务器配置界面,设置IP地址/端口参数

1-2-1、ZS-DIO-R-10A-4连接电脑设备接线图:

1-2-2、连接好设备后进行以下操作:

配置软件:📎中盛综合测试系统.rar

打开配置软件依次操作:

读取完参数后修改IP、端口子网掩码、网关等信息:

PS:参数配置完成保存后,给设备断电五秒后再上电,期间将连接电脑的水晶头拔出另插入与电脑同网段的交换机后即可远程访问该设备。

2、进入AIoTedge配置设备接入

2-1、创建继电器产品及继电器设备

进入创建产品页面后:

创建成功后会立即弹信息栏:

2-2、创建Node-RED实例

进入"创建实例":

2-3、通过JSON代码快速导入配置

[{"id":"af57f951bbe289ba","type":"modbus-read","z":"d5dc9da6e54e4c8e","name":"读取继电器DO状态","topic":"","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"showWarnings":true,"unitid":"1","dataType":"Coil","adr":"0","quantity":"4","rate":"2","rateUnit":"s","delayOnStart":true,"startDelayTime":"0.2","server":"fd895ac228bdb9b4","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":210,"y":140,"wires":[["9a212f6efa4b19fe"],["0b87fc2531097e45"]]},{"id":"0b87fc2531097e45","type":"modbus-response","z":"d5dc9da6e54e4c8e","name":"","registerShowMax":20,"x":410,"y":160,"wires":[]},{"id":"55b94f99614e19ae","type":"debug","z":"d5dc9da6e54e4c8e","name":"debug 2","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":580,"y":80,"wires":[]},{"id":"9a212f6efa4b19fe","type":"function","z":"d5dc9da6e54e4c8e","name":"function 1","func":"var json = msg.payload;nvar flag = {n    "DO1": json[0],n    "DO2": json[1],n    "DO3": json[2],n    "DO4": json[3]n}nnmsg.payload = flag;nnreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":120,"wires":[["55b94f99614e19ae","4c60e9d15dca40a9"]]},{"id":"4c60e9d15dca40a9","type":"mqtt-out","z":"d5dc9da6e54e4c8e","name":"继电器","deviceProfileId":"d98cd850-f99e-11ef-b417-f75d50ad5b4d","organizationId":"623732c0-f578-11ef-94fc-3f249dd3e932","entityId":"08bf5d50-f99f-11ef-b417-f75d50ad5b4d","credentialsId":"5U47P19SD5010585","username":"","password":"","clientId":"","transportType":"DEFAULT","deviceType":"DIRECT_CONNECTION","gatewayId":"","thingsModelMapping":[],"x":770,"y":120,"wires":[]},{"id":"70455c9746c57843","type":"mqtt-in","z":"d5dc9da6e54e4c8e","name":"继电器DO命令控制","deviceProfileId":"d98cd850-f99e-11ef-b417-f75d50ad5b4d","organizationId":"623732c0-f578-11ef-94fc-3f249dd3e932","entityId":"08bf5d50-f99f-11ef-b417-f75d50ad5b4d","credentialsId":"5U47P19SD5010585","username":"","password":"","clientId":"","transportType":"DEFAULT","deviceType":"DIRECT_CONNECTION","gatewayId":"","sensorName":"","x":190,"y":600,"wires":[["e08aee73d76dac01","ae7e82d79a101417"]]},{"id":"b57b17f445cc4753","type":"modbus-read","z":"d5dc9da6e54e4c8e","name":"读取DI状态","topic":"","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"showWarnings":true,"unitid":"1","dataType":"Input","adr":"0","quantity":"4","rate":"2","rateUnit":"s","delayOnStart":true,"startDelayTime":"0.5","server":"fd895ac228bdb9b4","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":180,"y":320,"wires":[["a41908142dfa2d19"],["4c06a83c5b60e1f3"]]},{"id":"4c06a83c5b60e1f3","type":"modbus-response","z":"d5dc9da6e54e4c8e","name":"","registerShowMax":20,"x":410,"y":340,"wires":[]},{"id":"fb090c0a9bcefabd","type":"debug","z":"d5dc9da6e54e4c8e","name":"debug 5","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":640,"y":300,"wires":[]},{"id":"a41908142dfa2d19","type":"function","z":"d5dc9da6e54e4c8e","name":"function 3","func":"var json = msg.payload;nvar flag = {n    "DI1": json[0],n    "DI2": json[1],n    "DI3": json[2],n    "DI4": json[3]n}nnmsg.payload = flag;nnreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":300,"wires":[["fb090c0a9bcefabd","4c60e9d15dca40a9"]]},{"id":"c5ad62523e17a132","type":"comment","z":"d5dc9da6e54e4c8e","name":"实例:两秒一次轮询4个继电器DO口状态","info":"寄存器地址:nn温度:0000 Hn湿度:0001 H","x":260,"y":40,"wires":[]},{"id":"1224024d44a452e4","type":"comment","z":"d5dc9da6e54e4c8e","name":"实例:两秒一次轮询4个继电器DI口状态","info":"寄存器地址:nn温度:0000 Hn湿度:0001 H","x":250,"y":240,"wires":[]},{"id":"205bb2e7c601a85a","type":"comment","z":"d5dc9da6e54e4c8e","name":"实例:物模型命令下发控制DO口启停","info":"寄存器地址:nn温度:0000 Hn湿度:0001 H","x":250,"y":460,"wires":[]},{"id":"815e7213cf6ff0f7","type":"switch","z":"d5dc9da6e54e4c8e","name":"","property":"payload["value1"]","propertyType":"msg","rules":[{"t":"eq","v":"DO1","vt":"str"},{"t":"eq","v":"DO2","vt":"str"},{"t":"eq","v":"DO3","vt":"str"},{"t":"eq","v":"DO4","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":510,"y":600,"wires":[["8a5c2e2e1e0e355f"],["d8d36b094d2a7eeb"],["63f31eccdb87e33d"],["c4b55fcf270d2d48"]]},{"id":"ecedfb85ddb5c37d","type":"modbus-write","z":"d5dc9da6e54e4c8e","name":"","showStatusActivities":false,"showErrors":false,"showWarnings":true,"unitid":"01","dataType":"Coil","adr":"00","quantity":"1","server":"fd895ac228bdb9b4","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":960,"y":440,"wires":[[],[]]},{"id":"0f93d446b69ad1ac","type":"modbus-write","z":"d5dc9da6e54e4c8e","name":"","showStatusActivities":false,"showErrors":false,"showWarnings":true,"unitid":"01","dataType":"Coil","adr":"01","quantity":"1","server":"fd895ac228bdb9b4","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":960,"y":520,"wires":[[],[]]},{"id":"44ddaceda1b906b0","type":"modbus-write","z":"d5dc9da6e54e4c8e","name":"","showStatusActivities":false,"showErrors":false,"showWarnings":true,"unitid":"01","dataType":"Coil","adr":"03","quantity":"1","server":"fd895ac228bdb9b4","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":960,"y":640,"wires":[[],[]]},{"id":"b51a6eb7bab2714d","type":"modbus-write","z":"d5dc9da6e54e4c8e","name":"","showStatusActivities":false,"showErrors":false,"showWarnings":true,"unitid":"01","dataType":"Coil","adr":"02","quantity":"1","server":"fd895ac228bdb9b4","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":960,"y":580,"wires":[[],[]]},{"id":"6c804a5aaef84629","type":"inject","z":"d5dc9da6e54e4c8e","name":"打开D01","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":720,"y":440,"wires":[["ecedfb85ddb5c37d"]]},{"id":"e08aee73d76dac01","type":"function","z":"d5dc9da6e54e4c8e","name":"function 4","func":"var json = msg.payload;nvar value1 = Object.keys(json)[0];nvar value2 = json[value1];nvar message = {n    "value1":value1,n    "value2":value2n}nmsg.payload = message;nnreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":600,"wires":[["815e7213cf6ff0f7"]]},{"id":"8a5c2e2e1e0e355f","type":"function","z":"d5dc9da6e54e4c8e","name":"function 5","func":"var json = msg.payload;nvar value = json["value2"];nmsg.payload = {n    "value":valuen};nnreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":520,"wires":[["ecedfb85ddb5c37d"]]},{"id":"d8d36b094d2a7eeb","type":"function","z":"d5dc9da6e54e4c8e","name":"function 6","func":"var json = msg.payload;nvar value = json["value2"];nmsg.payload = value;nnreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":560,"wires":[["0f93d446b69ad1ac"]]},{"id":"63f31eccdb87e33d","type":"function","z":"d5dc9da6e54e4c8e","name":"function 7","func":"var json = msg.payload;nvar value = json["value2"];nmsg.payload = value;nnreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":600,"wires":[["b51a6eb7bab2714d"]]},{"id":"c4b55fcf270d2d48","type":"function","z":"d5dc9da6e54e4c8e","name":"function 8","func":"var json = msg.payload;nvar value = json["value2"];nmsg.payload = value;nnreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":640,"wires":[["44ddaceda1b906b0"]]},{"id":"d14ab0993007a05f","type":"inject","z":"d5dc9da6e54e4c8e","name":"关闭D01","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":720,"y":400,"wires":[["ecedfb85ddb5c37d"]]},{"id":"ae7e82d79a101417","type":"debug","z":"d5dc9da6e54e4c8e","name":"debug 6","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":350,"y":560,"wires":[]},{"id":"fd895ac228bdb9b4","type":"modbus-client","name":"USER-485toRJ45","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"failureLogEnabled":true,"tcpHost":"192.168.1.182","tcpPort":"8234","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","serialAsciiResponseStartDelimiter":"0x3A","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectOnTimeout":true,"reconnectTimeout":"2000","parallelUnitIdsAllowed":true,"showErrors":false,"showWarnings":true,"showLogs":true}]

将上述JSON代码按下列步骤导入:

成功导入如图所示:

PS:第一次导入和后续每次更改配置后,需要点击部署才会使得配置生效

2-4、命令下发和服务端连接自定义配置

因配置时的场景不同,导入配置中的传感器设备地址码或EBYTE设备的IP及其端口有所差异,可作如下更改:

读4个DO口状态:

读4个DI口状态:

2-5 、数据验证

本文通过 YUQUE WORDPRESS 同步自语雀
云腾五洲-AI助理