1 帧格式
![](https://img.haomeiwen.com/i4909431/03bcd21cd8ddfae8.png)
1.1 帧起始符 68H
每一帧的开始固定为0x68
1.2 地址域 A0~A5
对应电表地址,需要将地址反转,地位在前,高位在后
例如,电表地址为:NO.102030405060
则发送控制指令时,应该发送的地址域为0x60,0x50,0x40,0x30,0x20,0x10
1.3 控制码 C
![](https://img.haomeiwen.com/i4909431/2d314b2cb8e47644.png)
一般使用的控制码为
0x11
,即(00010001),表示读数据。
1.4 数据长度 L
表示数据域的字节数,读数据时L≤200,写数据时L≤50,L=0表示无数据域。
1.5 数据域
传输时,发送方需要加0x33,接收方减0x33.例如需要传输0x00,x11,0x22
,则应发送0x33,0x44,0x55
一组查询指令和数据返回:
68 29 61 30 00 16 00 68 11 04 34 34 37 38 8c 16
68 29 61 30 00 16 00 68 91 08 34 34 37 38 9c 33 33 33 45 16
1.6 CS校验码
计算方法如下:
void getCS_uchar()
{
unsigned char CS_DATA[16] = { 0x68,0x29,0x61,0x30,0x00,0x16,0x00,0x68,0x11,0x04,0x35,0x34,0x37,0x38,0xc2,0x16 };
int CS_LEN = 16;
int tmp = 0;
for (int i = 0; i<CS_LEN - 2; i++)
{
tmp = tmp + CS_DATA[i];
}
tmp %= 256;
printf("cs result:%2x",tmp);
}
1.7 结束符 16H
指令以0x16结束。
2 应答帧
![](https://img.haomeiwen.com/i4909431/28332989cf255d70.png)
应答帧与上面类似,只是数据块前一部分为数据标识。
网友评论