PLC串口通讯中,对于指令码都能理解,但是“和校验”第一次接触时,没有计算出来,网上资料都没有完整的计算过程,后来灵感迸现,明白了,记录如下。
方法/步骤
1
和校验:Temp = 命令位 + 数据位(首地址、字节数) + 报文结束位内容;取累加和数值Temp的低8位,将其装换为ASCII放入和校验位即可!
2
举例说明:02 30 31 32 41 42 30 32 03 37 42Temp = 0x30 + 0x31 + 0x32 + 0x41 + 0x42 + 0x30 + 0x32 + 0x03 = 0x17B取Temp的低8位,即为0x7B;
3
Temp的低8位为0x7B,装换为ASCII码为:7->'7' = 55(10) = 0x37(16) B->'B' = 66(10) = 0x42(16)即填写入和校验位的是 0x37 0x42.
4
看这张图突然启发的,希望对还不懂,有点启发!
5
练习如题:PLC返回报文:和校验 = 数据位和结束位的累加和的低8位,转为ASCII后放入和校验位。PLC串口通讯接收到的数据:02 33 34 31 32 03 43 44
6
上题计算方式如下:PLC串口通讯接收到的数据:02 33 34 31 32 03 43 44则Temp = 0x33 + 0x34 + 0x31 + 0x32 + 0x03 = 0xCD C->'C' = 67 =0x43;D->'D' = 68 = 0x44;故和校验通过。
注意事项
具体协议,网上查询资料吧,暂时没写博客记录。
上一篇:怎么选择串口和串口怎么选择
下一篇:如何判断串口通讯是否正常