All devices

Nilan · HVAC controller

CTS 602 controller with HMI350T control panel Modbus register map

Default configuration

Protocol
RS485
Port
502
Unit ID
30
Addressing
0-based
Byte order
Big endian
Word order
High word first
Baud rate
19200
Parity
Even
Data bits
8
Stop bits
1

This device has an RS-485 interface. Reach it through a Modbus RTU-to-TCP gateway, configured with the factory serial settings above.

Register map

AddressCountNameTypeUnitScaleAccess
01
Bus protocol version (Bus.Version)
Version of the bus protocol spoken by the CTS 602 board.
UInt16-1R
11
Application version, major (App.VersionMajor)
Major number of the controller software version.
UInt16-1R
21
Application version, minor (App.VersionMinor)
Minor number of the controller software version.
UInt16-1R
1001
Digital input: user function 1 (Input.UserFunc)
0 = inactive, 1 = active.
UInt16-1R
1011
Digital input: air filter alarm (Input.AirFilter)
0 = no alarm, 1 = filter alarm active.
UInt16-1R
1021
Digital input: door contact (Input.DoorOpen)
0 = closed, 1 = door open.
UInt16-1R
1031
Digital input: smoke alarm (Input.Smoke)
0 = no alarm, 1 = smoke alarm active.
UInt16-1R
1041
Digital input: motor thermo fuse (Input.MotorThermo)
0 = no alarm, 1 = motor thermo fuse tripped.
UInt16-1R
1051
Digital input: heating surface frost or overheat (Input.Frost_Overht)
0 = no alarm, 1 = frost or overheat alarm active.
UInt16-1R
1061
Digital input: airflow monitor (Input.AirFlow)
0 = no alarm, 1 = airflow alarm active.
UInt16-1R
1071
Digital input: high pressure switch (Input.P_HI)
0 = no alarm, 1 = high pressure switch tripped.
UInt16-1R
1081
Digital input: low pressure switch (Input.P_LO)
0 = no alarm, 1 = low pressure switch tripped.
UInt16-1R
1091
Digital input: hot water boiling (Input.Boil)
0 = inactive, 1 = hot water boiling active.
UInt16-1R
1101
Digital input: hot water 3-way valve position (Input.3WayPos)
0 = inactive, 1 = valve in the hot water position.
UInt16-1R
1111
Digital input: hotgas defrost type selection (Input.DefrostHG)
0 = inactive, 1 = hotgas defrost selected.
UInt16-1R
1121
Digital input: defrost thermostat (Input.Defrost)
0 = inactive, 1 = defrost thermostat active.
UInt16-1R
1131
Digital input: user function 2 (Input.UserFunc_2)
0 = inactive, 1 = active.
UInt16-1R
1141
Digital input: air damper closed position switch (Input.DamperClosed)
0 = inactive, 1 = damper reported closed.
UInt16-1R
1151
Digital input: air damper opened position switch (Input.DamperOpened)
0 = inactive, 1 = damper reported open.
UInt16-1R
1161
Digital input: combined fan-coil and thermo alarm (Input.FCorThermoAl)
0 = no alarm, 1 = combined FC/thermo alarm active.
UInt16-1R
1171
Digital input: brine pressostat (Input.BrinePress)
0 = no alarm, 1 = brine pressostat tripped.
UInt16-1R
2001
Temperature T0 – controller board (Input.T0_Controller)
Temperature of the CTS 602 controller board.
Int16°C0.01R
2011
Temperature T1 – fresh air intake (Input.T1_Intake)
Outdoor/fresh air intake temperature.
Int16°C0.01R
2021
Temperature T2 – inlet before heater (Input.T2_Inlet)
Supply air temperature before the heater.
Int16°C0.01R
2031
Temperature T3 – room exhaust (Input.T3_Exhaust)
Extract air temperature from the room.
Int16°C0.01R
2041
Temperature T4 – outlet (Input.T4_Outlet)
Exhaust air outlet temperature.
Int16°C0.01R
2051
Temperature T5 – condenser (Input.T5_Cond)
Condenser temperature of the heat pump circuit.
Int16°C0.01R
2061
Temperature T6 – evaporator (Input.T6_Evap)
Evaporator temperature of the heat pump circuit.
Int16°C0.01R
2071
Temperature T7 – inlet after heater (Input.T7_Inlet)
Supply air temperature after the heater.
Int16°C0.01R
2081
Temperature T8 – outdoor (Input.T8_Outdoor)
Outdoor temperature.
Int16°C0.01R
2091
Temperature T9 – heating surface (Input.T9_Heater)
Heating surface / electric heater temperature.
Int16°C0.01R
2101
Temperature T10 – external room (Input.T10_Extern)
External room temperature sensor.
Int16°C0.01R
2111
Temperature T11 – hot water top (Input.T11_Top)
Hot water cylinder, top sensor.
Int16°C0.01R
2121
Temperature T12 – hot water bottom (Input.T12_Bottom)
Hot water cylinder, bottom sensor.
Int16°C0.01R
2131
Temperature T13 – central heating return (Input.T13_Return)
Return temperature of the central heating circuit.
Int16°C0.01R
2141
Temperature T14 – central heating supply (Input.T14_Supply)
Supply temperature of the central heating circuit.
Int16°C0.01R
2151
Temperature T15 – user panel room (Input.T15_Room)
Room temperature measured by the HMI350T panel.
Int16°C0.01R
2161
Temperature T16 – auxiliary (Input.T16)
Auxiliary temperature sensor (hot water anode).
Int16°C0.01R
2171
Temperature T17 – preheater or earth tube intake (Input.T17_PreHeat)
Air intake temperature of the preheater or earth tube.
Int16°C0.01R
2181
Temperature T18 – pressure pipe (Input.T18_PresPibe)
Temperature of the pressure pipe.
Int16°C0.01R
4001
Alarm status (Alarm.Status)
Bit mask: 0x80 = active alarm(s) present, 0x0F = number of alarms.
UInt16-1R
4011
Alarm list 1 – alarm code (Alarm.List_1_ID)
Alarm code 1..99, 0x80 reserved, 0x7F = display code.
UInt16-1R
4021
Alarm list 1 – date (Alarm.List_1_Date)
Packed DOS date: year since 1980 in the high byte, month and day in the low byte.
UInt16-1R
4031
Alarm list 1 – time (Alarm.List_1_Time)
Packed DOS time: hours in the high byte, minutes and seconds/2 in the low byte.
UInt16-1R
4041
Alarm list 2 – alarm code (Alarm.List_2_ID)
Alarm code 1..99, 0x80 reserved, 0x7F = display code.
UInt16-1R
4051
Alarm list 2 – date (Alarm.List_2_Date)
Packed DOS date: year since 1980 in the high byte, month and day in the low byte.
UInt16-1R
4061
Alarm list 2 – time (Alarm.List_2_Time)
Packed DOS time: hours in the high byte, minutes and seconds/2 in the low byte.
UInt16-1R

Read this device live with Modbus Connect, free for Windows, macOS and Linux

Related guides

Notes

Source: Nilan 'Protocol description – CTS602 with HMI350T, Modbus version 23', document 52173104, revision 22.11.2023: section 3 'Setup' (node address default 30, 19200 bps, 8 data bits, 1 stop bit, even parity, communication speed and framing cannot be changed) and section 5 'Register layout' (5.1 input registers, 5.2 holding registers). The CTS 602 is an RS-485 Modbus RTU slave, so it is reached through a Modbus RTU-to-TCP gateway using the factory serial settings above. The manual's own note states that its tables list 'the register addresses as used in Modbus messages without the global offset' (reading input register 100 with function code 04 gives global address 30101), so the numbers here are wire addresses and the seed declares zero-based addressing. Only input registers are listed: the manual publishes name, address, scale and unit but no per-register write access for the holding-register block, and the app has to know whether a row may be written, so the holding registers are left out rather than guessed. Temperature rows are signed 16-bit: the same document documents temperature ranges such as '-40.00 °C - 99.00 °C'. The registers with a 100 scale are entered with 0.01. Three groups are left out for the same reason: the version/ID text registers 003-005 and 100 (the 'text' flag in the scale column cannot be tied to a single row because the description column is a stacked block), the pressure rows 219/220 (bar, no scale published) and the humidity/CO2 rows 221/222 (the scale column shows '100 %' against the CO2 row).