controllerminimalmodbus

Modbus registers can be only read and cannot be written


I am trying communicate via Modbus protocol to a uC2 SE controller for a air-water chiller. A serial RS485 to USB port COM is connected with the controller and I was able to read registers, but it is not possible to change their values by using write_register function. I have also tried with tester. exe and Modscan64 softwares and the result was the same, they only can read but not write. I have introduced here the piece of code is being run and debug responses can be checked. Thank you for your help in advance!

Change temperature setpoint

COOLING_SETPOINT_REG = 41

try: print(instrument.read_register(COOLING_SETPOINT_REG,1)) except IOError: print('Failed to read from instrument')

NEW_TEMPERATURE = 20.1

return_flag = instrument.write_register(COOLING_SETPOINT_REG, NEW_TEMPERATURE,1,functioncode = 6, signed = True) # Registernumber, value, number of decimals for storage output_flag = 'SUCCESS' if return_flag else 'FAILURE' print('writing single register status ' + output_flag + '\n' )

try: print(instrument.read_register(COOLING_SETPOINT_REG,1)) except IOError: print('Failed to read from instrument')

Respuesta debug:

MinimalModbus debug mode. Will write to instrument (expecting 7 bytes back): '\x01\x03\x00)\x00\x01UÂ' (01 03 00 29 00 01 55 C2) MinimalModbus debug mode. Opening port COM8 MinimalModbus debug mode. Clearing serial buffers for port COM8 MinimalModbus debug mode. No sleep required before write. Time since previous read: 334030.00 ms, minimum silent period: 4.01 ms. MinimalModbus debug mode. Closing port COM8 MinimalModbus debug mode. Response from instrument: '\x01\x03\x02\x00ȹÒ' (01 03 02 00 C8 B9 D2) (7 bytes), roundtrip time: 62.0 ms. Timeout for reading: 1000.0 ms.

20.0 MinimalModbus debug mode. Will write to instrument (expecting 8 bytes back): '\x01\x06\x00)\x00É\x98T' (01 06 00 29 00 C9 98 54) MinimalModbus debug mode. Opening port COM8 MinimalModbus debug mode. Clearing serial buffers for port COM8 MinimalModbus debug mode. No sleep required before write. Time since previous read: 47.00 ms, minimum silent period: 4.01 ms. MinimalModbus debug mode. Closing port COM8 MinimalModbus debug mode. Response from instrument: '\x01\x06\x00)\x00É\x98T' (01 06 00 29 00 C9 98 54) (8 bytes), roundtrip time: 47.0 ms. Timeout for reading: 1000.0 ms.

writing single register status FAILURE

MinimalModbus debug mode. Will write to instrument (expecting 7 bytes back): '\x01\x03\x00)\x00\x01UÂ' (01 03 00 29 00 01 55 C2) MinimalModbus debug mode. Opening port COM8 MinimalModbus debug mode. Clearing serial buffers for port COM8 MinimalModbus debug mode. No sleep required before write. Time since previous read: 46.00 ms, minimum silent period: 4.01 ms. MinimalModbus debug mode. Closing port COM8 MinimalModbus debug mode. Response from instrument: '\x01\x03\x02\x00ȹÒ' (01 03 02 00 C8 B9 D2) (7 bytes), roundtrip time: 47.0 ms. Timeout for reading: 1000.0 ms.


Solution

  • It is not allowed to write parameters in Carel controllers uC Compact and uC2 SE Process by means of a Modbus protocol, because they are not configured for it. For this purpose, only a Carel protocol can be used.