DLT698和DLT645协议读电表地址

要读任意一个电表的数据,首先要关注的不是电表的地址,而是电表所支持的通信协议,验证电表所支持的通信协议只需要两步:

1. “485接口”或“红外接口"建立连接

  • 使用RS485接口连接电表,默认波特率是2400bps或9600bps,偶校验,数据位8,停止位1。

  • 使用红外接口,默认波特率是1200bps或9600bps,偶校验,数据位8,停止位1.

不管是485接口还是红外接口,在确定接口和模块没问题的情况下,如果两个波特率都无法读到数据,请查看电表说明书(应该不支持DLT645或DLT698协议)。

(精通DLT645协议和DLT698协议,Contact:xiaoyiyz)

2. 发送广播指令(通配符指令)

DLT645协议广播指令:

FE FE FE 68 AA AA AA AA AA AA 68 13 00 DF 16

FE FE FE(前缀唤醒电表) 

68(起始符)

 AA AA AA AA AA AA(电表地址编号通配符) 

68(起始符) 

13(控制码) 

00(数据域长度) 

DF(校验码) 

16(结束符)

返回指令:

FE FE FE FE 68 14 35 09 03 12 24 68 93 06 47 68 3C 36 45 57 B1 16

68(起始符)

14 35 09 03 12 24(电表地址) 

68(起始符) 

93(控制码) 

06(数据域长度) 

47 68 3C 36 45 57(电表地址,需减0x33) 

B1(校验码) 

16(结束符)

DLT698协议广播指令:

68 17 00 43 45 AA AA AA AA AA AA 10 DA 5F 05 01 03 40 01 02 00 00 90 0F 16

68(起始字符)

1700(长度域)

43(控制域)

45(服务器地址标志)

AAAAAAAAAAAA(服务器地址)

10(客户机地址)

DA5F(帧头校验)

0501(读取请求GetRequestNormal)

03(PIID)

40010200(OAD)

00(时间标签域)

900F(帧校验)

16(结束字符)

返回指令:

FE FE FE FE 68 2D 00 C3 05 14 35 09 03 12 24 10 5C 20 85 01 03 40 01 02 00 01 09 06 24 12 03 09 35 14 01 01 01 33 20 02 01 01 51 30 11 02 00 00 7F 21 16

68(起始字符)

2D00(长度域)

C3(控制域)

05(服务器地址标志)

143509031224(服务器地址)

10(客户机地址)

5C20(帧头校验)

8501(GetResponseNormal)

03(PIID)

40010200(OAD)

010906(响应结果octet_string长度6)

241203093514(字符串)

010101(跟随上报信息域长度1)

33200201(OAD)

015130110200(响应结果OAD)

00(时间标签域)

7F21(帧校验)

16(结束字符)

总结

使用RS485或红外正确连接电表,并打开串口,发送DLT645广播指令和DLT698广播指令,如果都无数据返回,切换波特率再次尝试,如果还是没有数据返回,说明电表不支持标准协议或者通信接口故障。

有些小厂家的非标准电表(可能是因为成本原因)只支持内部自己定义的Modbus协议,这种情况只能参考电表说明书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值