wiisir 发表于 2021-2-9 22:00:54

请教通信协议的校验的计算公式

坛里高手多,我又来请教一个通信实例的最后两个字节的计算方法了.
写    Length: 0008, Data: 01 03 00 00 00 04 44 09
读    Length: 0013, Data: 01 03 08 4E 12 4E 20 4E 20 4E 20 8E D9

写    Length: 0008, Data: 01 03 00 00 00 0A C5 CD
读    Length: 0025, Data: 01 03 14 4E 12 4E 20 4E 20 4E 20 00 00 00 00 00 00 00 00 00 00 00 00 B3 AB
上面是用串口侦听读到的结果。我用modbus RTU通信协议计算最后两个字节和实际的完全不一样。请问有高手知道上面每次读写的最后两个字节是怎么计算出来的吗?

add00 发表于 2021-2-9 22:44:09

刚好在做这个,顺手验证了下 CRC是对的4个都对
你算法或者计算错了吧
CRC-16/modbus 计算 结果小端https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

wiisir 发表于 2021-2-10 07:12:15

谢谢你的回复,那肯定是我计算错了,请问你能把你的计算程度分享给我吗?非常感谢了!

takashiki 发表于 2021-2-10 08:03:14

wiisir 发表于 2021-2-10 07:12
谢谢你的回复,那肯定是我计算错了,请问你能把你的计算程度分享给我吗?非常感谢了! ...

确实是Modbus CRC16,可以用sscom直接测试:

你在网上随便下载个modbus crc16的就可以了,查表的直接计算的都行。

wiisir 发表于 2021-2-10 08:41:56

谢谢,我用VB6写了一段程序计算不对来求教了,我依你说的去找下吧,谢谢了

68336016 发表于 2021-2-10 09:00:12

本帖最后由 68336016 于 2021-2-10 09:05 编辑

以前在论坛下载的一个小工具CRCTool.exe,里面有计算的代码

wiisir 发表于 2021-2-10 11:11:00

68336016 发表于 2021-2-10 09:00
以前在论坛下载的一个小工具CRCTool.exe,里面有计算的代码

谢谢你,及时雨啊!{:handshake:}

mtswz.213 发表于 2021-2-10 17:41:39

这一眼看过去就是modbus rtu啊,03指令读
页: [1]
查看完整版本: 请教通信协议的校验的计算公式