首先,对不起!我是个初学者..。
我在modbus上得到了以下字节序列:"01 04 08 00 00 00 09 00 00 00 f8 0c“。这个字节序列上粗体上的CRC是正确的。但是,要检查/创建CRC,我必须遵循设备especs,其中声明:
错误检查必须使用以两个8位字节实现的16位CRC来完成。CRC作为最后一个字段附加到帧中。首先追加CRC的低阶字节,然后是高阶字节。因此,CRC高阶字节是在帧中发送的最后一个字节。用于生成CRC的多项式值必须为0xA001。
现在,如何使用crcmod检查CRC?我的代码是:
import crcmod
crc16 = crcmod.mkCrcFun(0x1A001, rev=True, initCrc=0xFFFF, xorOut=0x0000)
print crc16("0104080000000900000000".decode("hex"))我什么都试过了,但是我找不到字节序列上正确的"f8 0C“.
发布于 2021-09-29 06:37:42
使用0x18005而不是0x1A001。
发布于 2022-11-20 04:00:33
Modbus快捷方式,如果不深入CRC详细信息
from pymodbus.utilities import computeCRChttps://stackoverflow.com/questions/69369408
复制相似问题