我正在搜索几天,如果我使用了错误的搜索字符串,我很抱歉。
我想使用“pymodbus.utilities.computeCRC”来计算 CRC 值以与使用专有代码的 Modbus 设备进行通信,因此不能使用默认的“读取寄存器”功能。
正确的 CRC 是 0x34bb
问题是,它只适用于版本 1,将十六进制值直接提供给 computeCRC,但“变量”选项都不起作用。
import pymodbus.utilities
meins=[]
meins.append('10')
meins.append('33')
meins.append('01')
meins.append('01')
meins1=''
for i in meins:
meins1 = meins1 + "\\x" + i
meins2='\x10\x33\x01\x01'
meins3=bytearray.fromhex("10330101")
crc=hex(pymodbus.utilities.computeCRC('\x10\x33\x01\x01'))
print(crc)
crc=hex(pymodbus.utilities.computeCRC(meins))
print(crc)
crc=hex(pymodbus.utilities.computeCRC(meins1))
print(crc)
crc=hex(pymodbus.utilities.computeCRC(meins2))
print(crc)
crc=hex(pymodbus.utilities.computeCRC(meins3))
print(crc)
输出:
- 0x34bb
- 0x2a9c
- 0xdc0b
- 0x9c0a
- 0x5dca