用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

3

主题

3

帖子

1231

积分

金牌会员

Rank: 6Rank: 6

积分
1231
2019-9-28 21:28:43 小鬼鬼 金牌会员 楼主 0142
本文为小鬼鬼原创文章,未经许可,严禁转载!
如经许可转载时务必注明原作者小鬼鬼及原始链接,并注明“发表于ioBroker中国”,转载不得对作品进行修改。 https://bbs.iobroker.cn/thread-342-1-1.html
本帖最后由 小鬼鬼 于 2019-9-28 21:41 编辑

不经意间得到了这个电表,之前接触过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:
0x03
图2 0x10:
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
在这里简单介绍下这图怎么弄出来的:
1.你需要一个数据库把表头的数据存到数据库,我是一小时读取一次电量,几分钟读取一次功耗和电压。
2.这个图表工具叫Grafana大家可以去看下,docker下安装非常方便。  

附件:
串口工具:E串口调试(带CRC16验证).exe
DDSD720-L协议:DDSD720-L电子式电能表使用说明书.pdf

使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册