-
Notifications
You must be signed in to change notification settings - Fork 333
Description
Hello Samuel,
when I am trying your example RS485_slave increasing registers length to 32, it is OK to ask for 29 registers, but when hitting 30, my modbus master complains about the CRC:
test = instrument.read_registers(0, 30)
MinimalModbus debug mode. Writing to instrument (expecting 65 bytes back): '\x01\x03\x00\x00\x00\x1e\xc5\xc2' (01 03 00 00 00 1E C5 C2)
MinimalModbus debug mode. No sleep required before write. Time since previous read: 3182.5 ms, minimum silent period: 1.00 ms.
MinimalModbus debug mode. Response from instrument: '\x01\x03<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00zA' (01 03 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7A 41) (65 bytes), roundtrip time: 30.3 ms. Timeout setting: 50.0 ms.
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/site-packages/minimalmodbus.py", line 498, in read_registers
numberOfRegisters=numberOfRegisters, payloadformat='registers')
File "/usr/lib/python2.7/site-packages/minimalmodbus.py", line 697, in _genericCommand
payloadFromSlave = self._performCommand(functioncode, payloadToSlave)
File "/usr/lib/python2.7/site-packages/minimalmodbus.py", line 798, in _performCommand
payloadFromSlave = _extractPayload(response, self.address, self.mode, functioncode)
File "/usr/lib/python2.7/site-packages/minimalmodbus.py", line 1075, in _extractPayload
raise ValueError(text)
ValueError: Checksum error in rtu mode: 'zA' instead of 'z\xd7' . The response is: '\x01\x03<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00zA' (plain response: '\x01\x03<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00zA')
As you see I am using minimalmodbus library.
Have you already seen this kind of problem?
Cheers,
Beer4duke