关于modbus rtu协议的CRC(循环冗余校验)在线计算

 
 

上位机须按照MODBUS协议的命令格式发送数据(包括计算的CRC值),从机才能正确辨识数据。若无CRC值,从机将返回含有错误号的应答包,不会得到正确结果。标准的做法发送前计算CRC值并一起发送,接收后也计算CRC值并与接收的校验码对比是否相等,以辨别数据是否准确。 计算CRC有相应的方法和代码,我觉得很繁琐,倒不如用现成的计算器算算,在线的比较好用,不错。

在线计算网址一 http://www.ip33.com/crc.html

比如要发送的命令是:15 03 00 31 00 01

这里使用的参数模型是:CRC 16/modbus,点击计算得到CRC值:D1D6 H

注意:放置 CRC 于命令字节必须交换 ,所以,报文中CRC低字节:0xD6 高字节0xD1

在线计算网址二https://www.lammertbies.nl/comm/info/crc-calculation.html
发送的命令是:15 03 00 31 00 01
计算得CRC 16/modbus的D1D6 H
同样需要注意放置 CRC 于命令字节必须交换 ,所以报文中CRC低字节:0xD6  高字节0xD1 
 
 
在线计算网址三:http://cht.nahua.com.tw/index.php?url=http://cht.nahua.com.tw/software/crc16/&key=Modbus,%20RTU,%20CRC16&title=計算%20Modbus%20RTU%20CRC16
 
 
 
 
计算得到校验码:D6D1 H
注意放置 CRC 于命令字节必须交换 ,这里计算后已经有交换,所以我们在报文中直接用就可以了,所以低字节:0xD6  高字节0xD1

 
 
 
 

 
 


猜你喜欢

转载自blog.csdn.net/dmfylb/article/details/73555160