DDSU666电表modbus通讯 接入node red

说明

此接入方法仅针对正泰DDSU666带通讯功能的导轨电表,不一定适用于所有电表,但可参考使用。

参考

1、DDSU666说明书
2、视频教程 网易云课堂/HomeAssistant智能家居实战篇/485总线篇

第一步 准备

1、ddsu666电表一只
2、电脑一台 安装node-red 安装node-red-contrib-modbus节点
3、usb转485设备一个 或 485转ttl + ttl转usb

第二步

1、给电表通上电 (零线接3号端子、火线接1号端子:随便接反了也没关系)
2、观察电表LCD窗口。
3、现在进入一个拼人品的时候了,电表默认是走DL/T 645协议的,但有时候他不默认呢,比如我的默认是modbus协议。
4、观察你的电表是否显示如下画面


上边画面当前协议为modbus,下边画面当前协议为DL/T 645

5、此画面后跟着就是通讯地址


此处有一个电话标志 表示显示的是通讯类参数
上边表示modbus地址为98(十进制),下边为DL/T 645地址(进制未知)

6、观察获得波特率 baud-x:1200、2400、4800、9600



7、如果是modbus则进入第四步,DL/T 645 则进入第三步。

第三步

说明:此处内容、未经测试,仅参考视频得出、详细请参照视频教程。

1、视频教程请与网易云课堂搜索home assistant 或者qq群搜索ddsu 会找到相关视频,此视频网易云收费,此处就不提供,以免侵权。

2、根据所获得的645地址 补充指令

3、带入 校验和计算器 计算出校验值 取后两位 替换指令中的CS

4、使用 Commix 填入指令 发送后 即切换为modbus协议

5、查看电表LCD 是否切换为modbus 并获得相应地址和波特率

第四步

1、在nr里新建modbus getter节点 点击server 新建server

   按图填写

2、参照说明书 获取相应数据

3、获得 电压、电流、瞬时功率、功率因素等

4、获得 电网频率

5、获得 总电能,即用电量

 456所填Address为说明里2000H、200EH、4000H转换为十进制。

 Quantity为获取数据位数;4里是连续的六个数据总共获取12个、5是单个数据获取2个、6是单个数据获取两个。

6、参考说明可知、所获取的数据是两个8位的数据组合的float,而nr默认将获取的数据转化为十进制、需对其进行处理(此处理函数有一点小问题、但不影响使用,如有大神能优化一下感激不尽)。

至此 已完成ddsu666的接入

相关文档至于附件

175EC28702CFCEABFA1DD48326C33D07
提取码 af58
https://pan.baidu.com/s/18PRAE9Ed-PS1jll13atmeA

膜拜大佬,给大佬端茶

不错,不错最后的转换公式不太对,依据IEEE754数据格式类型,这个解析出来的数有点不对

是的 有点不对 后期修订

1赞

我买的电表默认是645协议的。按照图中的方法获取了通讯地址,但是就是切换不到modbus协议

看网易云课堂那个视频,里面有详细的切换教程

视频能发一份吗?QQ群搜不到。

牛逼,居然玩成功了,还玩了一年时间

嗯 目前我这一套除了iob里的小米节点要不定时重启外别的都很正常