dIXEL
MODBUS-RTU
applied to
iCHILL 100CX FW1.6
1/15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
1. COMMANDS DESCRIPTION
1.1 READ HOLDING REGISTERS (0X03):
Slave Function Register Register Number Number CRC CRC
Address Code Address Address of of (LSByte) (MSByte)
(MSByte) (LSByte) Registers Registers
(MSByte) (LSByte)
Slave Address: Defined the device address that received the answer of reading data.
Function Code: code of the desired function = 0x03
Register address: is the address of the first register to be read
Number of Registers: Defines the number of Elements (Register) that the device has to return (es. 3 = 3
Registers). No more than 5 Elements allowed.
CRC : Defined the CRC calculated for the frame data received and has to be used to verify the integrity of
data received. It is calculated
The answer message has the following format:
Slave Function NumByte Byte Data 1 Byte Data n CRC CRC
address code (LSByte) (MSByte)
NumByte: Defined the number of bytes followed without CRC.
ByteData: byte data buffer.
Page 2 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
1.2 WRITE SINGLE REGISTERS (0X06):
This command is not available for all instruments.
The command has the following format:
Slave Function Register Register DATA DATA CRC CRC
Address Code Address Address (MSByte) (LSByte) (LSByte) (MSByte)
(MSByte) (LSByte)
Slave Address: Defined the device address that received the answer of reading data.
Function Code: code of the desired function = 0x06
Register address: is the address of the register to write to
Data: is the data to write
CRC : Defined the CRC calculated for the frame data received and has to be used to verify the integrity of
data received. It is calculated
The answer message is an eco of the command you sent (it has the same format)
Page 3 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
1.3 WRITE HOLDING REGISTER (0X10):
The command has the following format:
Slave Function Register Register Number Number NumByte DATA CRC CRC
address Code Address Address of of (LSByte) (MSByte)
(MSByte) (LSByte) Registers Registers
(MSByte) (LSByte)
Slave Address: Defined the device address that received the answer of writing data.
Function Code: code of the desired function = 0x10
Register address: is the address of the first register to write to
Number of Registers. : Defines the number of registers to write to. No more than 5 Elements allowed.
NumByte: Defined the number of bytes followed without CRC. The number of bytes has to be double respect the
number of addressed Elements (NumByte = 2*Nreg).
CRC:
Defined the CRC calculated for the frame data received and has to be used to verify the integrity of data received.
The answer has the following format:
Slave Function Register Register Number of Number of CRC CRC
Address code Address Address Registers Registers (LSByte) (MSByte)
(MSByte) (LSByte) (MSByte) (LSByte)
Page 4 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
Serial configuration for DIXELL controllers
Physical layer = RS485 (RS232 for XJ500 system)
Baud Rate = 9600 bps (19200 bps for XJ500 system)
Data Length = 8 bit
Parity = None
Stop Bit = 1
START/STOP = silent interval of 3 characters
MIN TIME BETWEEN TWO RETRY = 500 msec
Slave addresses:
This field range is 1-247. Address 0 is used for the broadcast address. In this case the slave execute the command ( only
Write Holding Register command) but doesn’t return some response
Exceptions code:
Dixell’s devices answers with exception codes when they are not able to execute the last command received. The
exception configuration is:
1. Not implemented function (0x01)
In this case is requested a function that device is not able to support. Es: every time master sends a function different
from ‘0x03’ or ‘0x10’
2. Not implemented area (0x02)
In this case is requested a resource absent in the device. Es: every time is requested a Logic Area absent.
3. Area index not valid (0x03)
In this case the value of the selected resource is out of range. Example:
Every time is requested an Element of a Logic Area absent.
More than 5 Elements requested.
Writing a parameter out of range
Writing in a Logic Area just reading.
4. Read/Write error (0x04)
The device didn’t succeeded in reading or writing requested operation. Es: every time reading or writing operation (Ram,
E2, RTC and etc) is not ending correctly.
5. Busy state for slave active (0x06)
The device can’t execute requested operation because busy in another analogue operation. Master has to repeat the
same request in another time.
The exception answer has the following format:
Slave Function code OR hex(80) Exception code CRC CRC
address (LSByte) (MSByte)
Page 5 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
The CRC
The CRC value is calculated (on the entire message) by the transmitting device, which appends the CRC to the message.
The receiving device recalculates a CRC during receipt of the message and compares the calculated value to the actual
value it received in the CRC field. If the two values are not equal, an error results.
Here there is the code (in C format) to generate CRC.
#define MODBUS_GENERATOR 0xA001
Unsigned int CRC;
void ModbusCalcCRC(unsigned char* Frame,unsigned char LenFrame)
{
unsigned char CntByte;
unsigned char j;
unsigned char bitVal;
CRC = 0xFFFF;
For(CntByte=0;CntByte<LenFrame;CntByte++)
{
CRC ^= Frame[CntByte];
for(j=0;j<8;j++)
{
bitVal = CRC & 0x0001;
CRC = CRC >> 1;
if(bitVal == 1)
CRC ^= MODBUS_GENERATOR;
}
}
}
NOTE:
To uniform interpretation mode of data, all data areas will have the following format:
WORD (single data register)
MSByte LSByte
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Page 6 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
LOGICAL AREA 00 IDENTIFICATION AND CONFIGURATION (reading)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Product family code 1 MSByte = Product family code
Firmware Version LSByte = Firmware Version
1 Instrument code 1 (MSWord) 1 DIXELL code
2 Instrument code 2 (LSWord) 1 DIXELL code
3 Serial number 1 (MSWord) 1 MS WORD
4 Serial number 2 (LSWord) 1 LS WORD
5 FW version date 1 Day = bit15 / bit11
Month = bit10 / bit7
Year = bit6 / bit0
6 EEPROM descriptor 1 MSWord always 0 – LSWORD with
descriptor
7 Probe configuration 1 if bitN=1 probe (N+1) present
(probe 1 LSbit –LSByte)
8 Relay configuration (I°) 1 See description below register 8
9 Relay configuration (II°) 1 Not defined (always 0)
10 Digital input configuration (I°) 1 See description below register 10
DIXELL CODE FOR COMMERCIAL CODE: ‘X’ ….
Instrument code 1 (MSWord) HIGH BYTE ASCII code
Instrument code 1 (MSWord) LOW BYTE ASCII code
Instrument code 2 (LSWord) :
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Value from 0 to 999 (1000 is null value) (ASCII code -hex(20))
RELAY OUTPUTS
ELEMENT 8 DEVICE RELAY OUTPUT
MSByte LSByte
Bit0 Compressor 1 Relay bit0
Bit1 Compressor 2 Relay bit1
Bit2 Supply fan relay bit2
Bit3 Condensing fan relay bit3 Alarm relay
Bit4 Anti freeze/integration heater n°1 relay bit4
Bit5 Evaporator pump relay bit5 Condenser water pump relay
Bit6 Solenoid valve on water circuit relay bit6 Compressor capacity step relay
Bit7 Integration heater relay n°2 bit7 4 ways valve Relay
BIT-MAP INGRESSI DIGITALI
ELEMENT 10 DIGITAL INPUTS
MSByte LSByte
Bit0 PB1 used as Digital input bit0 ID1 present
Bit1 PB2 used as Digital input bit1 ID2 present
Bit2 bit2 ID3 present
Bit3 PB4 used as Digital input bit3 ID4 present
Bit4 bit4 ID5 present
Bit5 bit5
Bit6 bit6
Bit7 bit7
Page 7 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
LOGICAL AREA 01 PROBE STATUS (reading)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Probe 1 status (I°) 1 Probe 1 value
1 Probe 1 status (II°) 1 Probe 1 status (Probe status table below)
2 Probe 2 status (I°) 1 Probe 2 value
3 Probe 2 status (II°) 1 Probe 2 status (Probe status table below)
4 Probe 3 status (I°) 1 Probe 3 value
5 Probe 3 status (II°) 1 Probe 3 status (Probe status table below)
6 Probe 4 status (I°) 1 Probe 4 value
7 Probe 4 status (II°) 1 Probe 4 status (Probe status table below)
PROBE STATUS TABLE
Byte Description
Byte (H) Engineering unit:
Bit0-1-2-3 0=NC,1=°C,2=°F,3=RH%,4=PSI,5=BAR,6=Rpm,7=mA,8=A,9=mV,10=V
11,12,13,14,15=Not used.
Byte (H) bit 4 Probe resolution (1) decimal, (0) integer
Byte (H) bit 5-6-7 n.u.
Byte (L) bit 0 Probe error (1-1)
Byte (L) bit 1
Byte (L) n.u.
LOGICAL AREA 02 Digital inputs status (reading)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Digital inputs status (I°) 1 always 0
1 Digital inputs status (II°) 1 always 0
2 Digital inputs status (III°) 1 always 0
3 Digital inputs status (IV°) 1 see bit-map below
4 Digital inputs status (V°) 1 see bit-map below
If bit = 0 the digital input is not active or not present, If bit = 1 the digital input is active (if present). The polarity has been
already verified
DIGITAL INPUTS BIT-MAP
Element 3 DIGITAL INPUT MANAGED BY THE DEVICE
MSByte LSByte
Bit0 st bit0
1 compressor overload protection Energy Saving
Bit1 Condenser fan overload protection bit1 Remote heat pump (*)
Bit2 Evaporator pump flow switch bit2 Low pressure pressure switch
Bit3 Remote On/Off bit3 High pressure pressure switch
Bit4 Remote chiller (*) bit4 ON for condensing units
Bit5 2nd compressor overload protection bit5 Chiller ON (condensing unit)
Bit6 2nd compressor or 2nd step request bit6 Heat pump ON (condensing unit)
(condensing unit)
Bit7 End defrost bit7 Anti freeze
(*) Active only if CF28 = 1
Page 8 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
Elemento_4 DIGITAL INPUT MANAGED BY THE DEVICE
MSByte LSByte
Bit0 General alarm bit0
Bit1 Supply fan/ evaporator pump bit1
overload protection
Bit2 Condenser water pump overload bit2
protection
Bit3 Condenser pump flow switch bit3
Bit4 bit4
Bit5 bit5
Bit6 bit6
Bit7 bit7
LOGICAL AREA 03 USER PARAMETER (reading – writing)
ELEMENT DESCRIPTION SIZE (word) NOTE
st
0 1 parameter 1 Parameter and range depending on the device
nd
1 2 parameter 1 Parameter and range depending on the device
Parameter and range depending on the device
n last parameter 1 Parameter and range depending on the device
Only parameters with visibility enabled by Dixell can be red and/or written. If a not enabled parameter is requested
for reading and/or writing, device answers with exception 3.
If a read only parameter is request for writing (es. firmware release), device answers with exception 3
If the writing of a parameter is not successful, device answers with exception 4.
If the keyboard is active (set displaying, Set programming input or parameters…) or in programming (parameters, set
or RTC) or into functions menu, the device answers with exception 6.
To have the parameter list, please refer to the Ichill 100C instruction manual.
LOCIC AREA 04 EEPROM (reading – writing)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 First word value 1
1 Second word value 1
N Last word value 1
If the keyboard is active (set visualization, programming set or parameters input…) or in programming mode
(parameters, set or clock) or into the function menu, the device respond with the exception 6.
If the eeprom writing isn’t correct, the device respond with the exception 4.
LOGICAL AREA 05 MACHINE STATUS (reading – writing)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Machine status (I°) 1 High byte state machine status. Low byte state
the mask. (in reading the 2 bytes have the same
value. In writing low byte state which elements
have to be set). See working status table
1 Machine status (II°) 1 Always 0
Page 9 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
2 Machine status (III°) 1 As element 0
WORKING STATUS TABLE
Element 0 MACHINE STATUS
MSByte MODIFY STATUS LSByte ENABLE MODIFICATION
Bit0 Device Off (0). bit0 On / Off device
In reading:
0 if stand-by or remote Off,
1 if ON in chiller or heat pump
In writing:
Only OFF command is allowed (0)
Bit1 In reading: Defrost Active (1). bit1 Defrost
In writing: only defrost request (1)
Bit2 bit2
Bit3 bit3
Bit4 Buzzer silencing in case of alarm (1) bit4 Buzzer silencing in case of alarm
Bit5 bit5
Bit6 Energy Saving Mode bit6 Energy Saving Mode
Bit7 bit7
Element 2 MACHINE FUNCTIONS
MSByte MODIFY STATUS LSByte ENABLE MODIFICATION
Bit0 WD driver blocked (1) bit0 Modify WD driver enabling (1)
Bit1 Write only: manual reset for all the bit1 Alarm manual reset (1)
alarms (1)
(verify the reset by reading again alarms
status)
bit2 Read only: remote On (1) or Off (0) bit2
bit3 bit3
bit4 Read only: boiler bit4 boiler
bit5 Read only: dynamic set-point bit5 dynamic set-point
bit6 Chiller: bit6 Chiller operation mode
Only in writing: device ON in chiller (1)
bit7 Heat pump: bit7 Heat Pump operation mode
Only in writing: device ON in heat pump
(1)
Writing of logical area 5:
Is enabled by means of command WSR (write single register)
Is enabled by means of command WSR WHR (write holding register) with number of registers = 1 (otherwise
exception 3)
In not allowed writings answers with exception 3 (E.g.: Request to write element 1, Request to write dynamic set
…, Request to write not allowed bit)
If the keyboard is active (set displaying, Set programming input or parameters…) or in programming (parameters,
set or RTC) or into functions menu, the device answers with exception 6.
Page 10 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
LOGICAL AREA 06 FUNCTION PARAMETERS (reading)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Real working setpoint 1
1 Chiller setpoint 1
2 Heat pump setpoint 1
3 Real user’s working setpopint 1
4 User’s chiller setpoint 1
5 User’s heat pump setpoint 1
SET is always expressed in degrees.
The parameter CF32 selects the unit of measure: °C (resolution 0,1) or °F (resolution 1).
Condensing units:
Device answers with exception 3 to every request of reading
Other units:
Element 0 and element 3 are allowed only if the machine is ON (otherwise exception 6)
Element 3, element 4 and element 5 are allowed only if the geothermal function is enabled (otherwise exception
6)
Element 1 and element 4 are allowed only if the chiller regulation is enabled (otherwise exception 3)
Element 2 and element 5 are allowed only if the heat pump regulation is enabled (otherwise exception 3)
LOGICAL AREA 08 DIGITAL OUTPUT STATUS (reading)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Relay output status (I°) 1 MSByte: relay status.
LSByte: state of the mask (in reading the 2 bytes
have the same value. In writing low byte state
which elements have to be set).
1 Relay output status (II°) 1 MSByte: relay status.
LSByte: state of the mask (in reading the 2 bytes
have the same value. In writing low byte state
which elements have to be set).
RELAY OUTPUT STATUS TABLE
Element 0 MACHINE RELAY OUTPUTS
MSByte MODIFY STATUS LSByte ENABLE MODIFICATION
bit0 bit0
bit1 bit1
bit2 bit2
bit3 Alarm Relay bit3
bit4 bit4
bit5 Condenser water pump relay bit5
bit6 Compressor capacity step relay bit6
bit7 4 ways valve Relay bit7
Element 1 MACHINE RELAY OUTPUTS
MSByte MODIFY STATUS LSByte ENABLE MODIFICATION
Bit0 Compressor 1 relay bit0
Bit1 Compressor 2 relay bit1
Bit2 Supply air fan relay bit2
Bit3 Condensing fan relay bit3
Bit4 Anti freeze/integration heater n°1 relay bit4
Bit5 Water pump relay bit5
Bit6 Solenoid valve (water side) relay bit6
Bit7 Anti freeze/integration heater n°2 relay bit7
Page 11 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
LOGICAL AREA 09 ANALOGUE OUTPUT ONLY (read only)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Analogue output 1 value (I°) 1 Value, in percentage, of the 4-20 mA
output (0-100%)
1 Analogue output 1 status (II°) 1 always 0
2 Analogue output 2 value (I°) 1 Value, in percentage, of the triac output
(0-100%)
3 Analogue output 2 status (II°) 1 always 0
LOGICAL AREA 11 REAL TIME CLOCK (reading – writing)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Seconds and Minutes 1 MSByte = seconds LSByte = minutes
1 Hours and day of the week 1 MSByte = Hour LSByte = day of the
week (1-Sunday, 7-Saturday)
2 Days and month 1 MSByte = day LSByte = month
3 Year 1 Year
If the clock is not configured device answers with exception 3
If the clock is not red or written correctly device answers with exception 4
If the keyboard is active (set displaying, Set programming input or parameters…) or in programming (parameters, set
or RTC) or into functions menu, the device answers with exception 6.
Page 12 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
LOGICAL AREA 13 ALARMS STATUS (reading/writing)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Functional alarms (I°) 1 Always 0
1 Functional alarms (II °) 1 Always 0
2 Functional alarms (III °) 1 Always 0
3 Functional alarms (IV°) 1 Each bit states an alarm. Bit meaning is
explained in the System alarms table
4 Functional alarms (V°) 1 Each bit states an alarm. Bit meaning is
explained in the System alarms table
5 Functional alarms (VI°) 1 Each bit states an alarm. Bit meaning is
explained in the System alarms table
SYSTEM ALARMS TABLE
Element 3 ALARMS LIST III°
MSByte LSByte
bit0 EE (Eeprom) bit0 A04 (Low temperature outlet)
Bit1 P1 (Faulty probe pb1) bit1 A05 (High temperature/condensing
pressure)
bit2 P2 (Faulty probe pb2) bit2 A06 (Low temperature/condensing
pressure)
bit3 P3 (Faulty probe pb3) bit3 A07 (anti freeze)
bit4 P4 (Faulty probe pb4) bit4 Ferr (condensing unit)
bit5 A01 (High pressure alarm) bit5 A08 (Evaporator flow switch)
bit6 A02 (Low pressure alarm) Bit6 A09 (Compressor 1 overload
protection)
bit7 A03 (Low temperature inlet) Bit7 A10 (Compressor 2 overload
protection)
Element 4 ALARMS LIST IV°
MSByte LSByte
bit0 A11 (Condenser fan overload Bit0 ACF1 (Configuration alarm 1)
protection)
bit1 A12 (End defrost) bit1 ACF2 (Configuration alarm 2)
Bit2 A13 (Compressor 1 maintenance) bit2 ACF3 (Configuration alarm 3)
bit3 A14 (Compressor 2 maintenance) bit3 ACF4 (Configuration alarm 4)
bit4 A15 (Water pump/ supply fan bit4 ACF5 (Configuration alarm 5)
maintenance)
bit5 RtC (Clock data) bit5 ALOC (General alarm)
bit6 RtF (Faulty clock) bit6 A16 (High temperature water inlet)
bit7 Afr (Out of range supply voltage bit7 A17 (Supply fan / evaporator water
frequency) pump overload protection)
Element 5 ALARMS LIST IV°
MSByte LSByte
bit0 A18 (Condenser water pump Bit0
overload protection)
bit1 A19 (Condenser water pump flow bit1
switch)
Bit2 A20 (Condenser water pump bit2
maintenance)
bit3 noL (Failure of the communication bit3
with remote keyboard)
bit4 bLOC (General alarm) bit4
bit5 AEUn Evaporator unloading bit5
bit6 ACUn Condenser unloading bit6
bit7 bit7
Page 13 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
Reading of forecasted logic elements allows to know system alarm.
Writing of logic element allow to reset a manual alarm:
Is enabled by means of command WSR (write single register)
Is enabled by means of command WSR WHR (write holding register) with number of registers = 1 (otherwise
exception 3)
Reset only 1 alarm per time. If it’s requested to reset more than one alarm, the device resets only the one linked to
the first alarm in the buffer (MSByte, LSByte).
If the alarm is not present the device answers with exception 3
If the it’s not possible to reset the alarm device answers with exception 6
If the keyboard is active (set displaying, Set programming input or parameters…) or in programming (parameters,
set or RTC) or into functions menu, the device answers with exception 6.
LOGICAL AREA 14 LOADS WORKING HOURS (reading – writing)
ELEMENT DESCRIPTION SIZE (word) NOTE
0 Load 1 working hours 1 Compressor 1 working hours
1 Load 2 working hours 1 Compressor 2 working hours
2 Load 3 working hours 1 Evaprator water pump / supply fan working
hours
3 Load 4 working hours 1 Condenser water pump working hours
When reading working hours of single loads are red, when writing is possible to set the working hour at the start (E.g.
reset them).
Element 1 is allowed only if compressor 2 is present (CF21 = 2) otherwise the device answers exception 3
Element 4 is allowed only if the pump (or supply air fan) is present (CO11≠0) otherwise the device answers
exception 3
If the keyboard is active (set displaying, Set programming input or parameters…) or in programming (parameters, set
or RTC) or into functions menu, the device answers with exception 6.
LOGICAL AREA 15 ALARMS TIME ACTIVATION (reading)
Element 0 LOW PRESSURE (A02)
MSByte N° of activation LSByte Alarm threshold (par. AL02)
Element 1 LOW TEMPERATURE PB2 (A04)
MSByte N° of activation (1) LSByte Alarm threshold (par. AR06) (1)
Element 2 LOW CONDENSING TEMPERATURE/PRESSURE (A06)
MSByte N° of activation LSByte Alarm threshold (par AL16)
Element 3 GENERAL ALARM (ALOC)
MSByte N° of activation LSByte Alarm threshold (par. AL20)
Element 4 ANTI FREEZE (A07)
MSByte N° of activation (2) LSByte Alarm threshold (par. AR06) (2)
Element 5 OVERLOAD PROTECTION 1st COMPRESSOR (A09)
MSByte N° of activation LSByte Alarm threshold (par. AL09)
nd
Element 6 OVERLOAD PROTECTION 2 COMPRESSOR (A10)
MSByte N° of activation LSByte Alarm threshold (par. AL09) (3)
Page 14 / 15
ModBUS-RTU Communication protocol
Applied to iCHILL 100CX FW1.6
Element 7 INLET EVAPORATOR HIGH TEMPERATURE (A16)
MSByte N° of activation LSByte Alarm threshold (par. AL27)
Element 8 CONDENSING HIGH PRESSURE (A01)
MSByte N° of activation LSByte Alarm threshold (par. AL10)
Element 9 CONDENSING HIGH TEMPERATURE/PRESSURE (A05)
MSByte N° of activation LSByte Alarm threshold (par. AL10)
(1) Always 0 if the machine isn’t air-air
(2) Always 0 if the machine is air-air
(3) Always 0 if 2nd compressor is not configured
Page 15 / 15