DL/T645-2007电表协议 数据域DATA注意事项

调07规约电表时忽略了一点,导致一直调不通

过程:
1、想要修改电表波特率
2、查看通信协议
DL/T645-2007电表协议 数据域DATA注意事项_第1张图片
在这里插入图片描述
我想把它设为2400bps
就发送了如下指令:
[发送]68 01 00 12 01 19 20 68 17 01 08 3D 16
[接收]FE FE 68 01 00 12 01 19 20 68 D7 01 35 2A 16
结果出错了。。。
通信速率特征字Z为08就是设置为2400bps没问题啊,为什么一直回复出错。
后来又看了一遍协议,才恍然大悟,问题出在DATA字段,协议中有对DATA字段的介绍,发送的DATA要按字节加33H发送,这里的通信速率特征字Z也属于DATA字段,所以也要加33H再发送。

DL/T645-2007电表协议 数据域DATA注意事项_第2张图片
在这里插入图片描述
正确协议
[发送]68 01 00 12 01 19 20 68 17 01 3B 70 16
[接收]FE FE 68 01 00 12 01 19 20 68 97 01 3B F0 16

08H + 33H = 3B,所以设置波特率为2400,要发送3BH而不是08H。

所有指令都必须遵循数据域DATA传输时发送方按字节进行加 33H 处理,接收方按字节进行减 33H 处理。

你可能感兴趣的:(IoT)