不经意间得到了这个电表,之前接触过modbus协议电表的我,原本想着很简单就可以搞定。实际折腾了一天才搞定,哎……
一.开箱果图
这里啥都不多说直接上图。
图1 全身照:
图2 正面照:
图3 菊花照:
二.导线连接
二话不说先上图:
1.强电的连接
一共4个强电接口,2进2出,根据表头侧面的说明
线柱 11和13 是进线,12和14 是负载端(L代表火线,N代表零线)。
2.通讯接口的连接
图的右边能看到端子21和22 是脉冲信号,23和24 是RS485,根据表头说明书可以看到表支持Modbus-RTU协议。
所以很简单了,找一个usb转485,A接A B接B然后怼到你电脑上就搞定了。
三.工具调试
开门见山先上图:
这里我用到的工具是带CRC16校验的 串口调试工具(带进制转换功能)使用比较方便,缺点就是在2次没获取到反馈的时候就出现假死未响应这个有点头疼。(想要工具去附件里面下载)
四.协议说明
根据说明书看到用了2个功能码 0x03 和0x10。
这里奉上2个功能码的具体游戏规则。
图片来自百度文库:modbus功能码及格式
图1 0x03:
图2 0x10:
五.Node-red
我这里只放一个实例供参考:
{"id":"a73ef499.fee4c8","type":"modbus-read","z":"42ed5f1a.83bb7","name":"DDSD720-L电压","topic":"","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"22","dataType":"HoldingRegister","adr":"40016","quantity":"2","rate":"1","rateUnit":"m","delayOnStart":false,"startDelayTime":"","server":"ddef800f.1a319","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":320,"y":200,"wires":"a0773d88.c5ef2"],]]},{"id":"1da4d432.9fc34c","type":"debug","z":"42ed5f1a.83bb7","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":730,"y":200,"wires":]},{"id":"a0773d88.c5ef2","type":"function","z":"42ed5f1a.83bb7","name":"16进制转浮点","func":"var data_hex1 = '0000'+msg.payload[0].toString(16);\nvar data_hex2 = '0000'+msg.payload[1].toString(16);\n\nvar data_hex = data_hex1.substr(-4) + data_hex2.substr(-4);\n\nmsg.payload = Buffer.from(data_hex, 'hex').readFloatBE().toFixed(2)*1\nreturn msg;","outputs":1,"noerr":0,"x":540,"y":200,"wires":"1da4d432.9fc34c"]]},{"id":"ddef800f.1a319","type":"modbus-client","z":"","name":"10.0.0.30","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"10.0.0.30","tcpPort":"9095","tcpType":"TELNET","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectTimeout":"2000"}]
六.总结
1.功能介绍
电压,电流,有功功率,无功功率,视在功率,功率因数,频率,用电量值的读取。也就是一个带远程抄表功能的电表。
在这里给大家欣赏一张图,我自己组的:
2.用途拓展
那我们可以把它用来做啥呢?
我把电表放到了总电箱里面(带导轨座方便安装),检测总电量情况,其实就是瞎折腾,2333333!~~
在这里简单介绍下这图怎么弄出来的:
1.你需要一个数据库把表头的数据存到数据库,我是一小时读取一次电量,几分钟读取一次功耗和电压。
2.这个图表工具叫Grafana大家可以去看下,docker下安装非常方便。
附件:
串口工具:E串口调试(带CRC16验证).exe
DDSD720-L协议:DDSD720-L电子式电能表使用说明书.pdf