海大艺高表协议和数据

广播读表号表数指令:
发送:
0E 0D 0B 03 FF FF FF FF 0B
功能码
返回:
0E 0D 0B 03 FF 01 00 00 F5
功能码
表地址01(十六进制数)
表数0(BCD码)
 
读取表数:
发送:
0E 0D 0B 02 01 FF FF FF F4
功能码
表地址01
校验和,将前面的所有数据异或后得出的数据即为校验和
返回:
0E 0D 0B 02 01 06 07 00 0A
功能码
表地址01
表数700
校验和,将前面的所有数据异或后得出的数据即为校验和
 
修改表地址命令:
发送:
0E 0D 0B 9A 05 FF FF FF 68 0E 0D 0B 9A 05 FF FF FF 68
功能码 功能码
表地址05(十六进制数),该地址为修改后的地址
表地址05(十六进制数),该地址为修改后的地址
该指令为将两条一模一样的修改表号指令发送两遍,即为修改表号,单独发一条,无法完成表号修改。需快速发两遍。
 
无返回指令。
 
测试数据:
波特率:1200,偶检验
 
[09:30:16.384] 0E 0D 0B 03 FF FF FF FF 0B
[09:30:16.615] 0E 0D 0B 03 FF 17 07 00 E4
表号:23 表数:700
 
[09:42:47.286] 0E 0D 0B 02 17 FF FF FF E2
[09:42:47.519] 0E 0D 0B 02 17 06 07 00 1C
 
[10:18:41.429] 0E 0D 0B 9A 05 FF FF FF 68 0E 0D 0B 9A 05 FF FF FF 68
[10:18:49.167] 0E 0D 0B 03 FF FF FF FF 0B
[10:18:49.396] 0E 0D 0B 03 FF 05 07 00 F6
表号变为5 修改表地址成功
 
 
public static byte CalcXor(byte[] bs) {
byte result = 0;
for (byte b : bs) {
result ^= b;
}
return result;
}
 
 

posted @ 2019-07-19 15:57  张金富  阅读(220)  评论(0编辑  收藏  举报