Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Implementation of the Modbus protocol

in the Liebherr controllers with RS-485


interface
The Liebherr controller implements the Modbus protocol according to protocol specification V1.1a of
4 June 2004 and the implementation guide for Modbus over serial line V1.0 of 12 February 2002,
both of which can be downloaded at:

http://www.modbus-ida.org/specs.php

The Modbus protocol physically travels on the same 485 line as the Liebherr protocol. The Master
automatically recognises the protocol used, which means that if the user connects the controller to a
Liebherr supervisor, the controller will automatically communicate using the Liebherr protocol. Vice-
versa, if the user connects the controller to a Modbus supervisor, the control will automatically
communicate using the Modbus protocol. The Modbus transmission mode implemented by the
Liebherr controllers is RTU mode. In RTU mode, each byte transmitted contains two 4 bit
hexadecimal characters. The advantage of RTU mode involves being able to much more information
than in ASCII mode, at the same baud rate.

The serial parameters for the Modbus protocol are the same as used by the Liebherr protocol. All the
devices connected in the same network must have the same serial parameters:

8 data bits

1 start bit

1 stop bits

Parity even.

Important: Modbus address n, indicated in the tables below, corresponds to the physical address n-1
(for example, coil 1 has physical address 0).
Function codes and Exceptions supported

The table below illustrates the function codes that are currently supported by the Liebherr controller:

The table below illustrates the Modbus Exceptions currently supported by the Liebherr controller:
Description of the Function codes supported

0x01 Read Coils, 0x02 Read Discrete Inputs

Return from 1 to 65 consecutive digital variables. The use of the two function codes is identical, as
the Liebherr controller makes no distinction between Coils (read/write digital variables) and Discrete
Inputs (read only digital variables from I/O devices).

The slave responds with an Exception in the following cases:

EXCEPTION 2:
Address of the first variable requested > 65;
Address of the first variable requested + number of variables requested > 65;

EXCEPTION 3:
Number of variables requested > 65;

0x03 Read Holding Registers, 0x04 Read Input Registers

Return from 1 to 38 consecutive analogue variables or from 1 to 48 consecutive integer variables.


The use of the two function codes is identical, as the Liebherr controller makes no distinction
between Holding Registers (read/write Registers) and Input Register (read only Registers from I/O
devices). To map the addresses of the analogue and integer variables (according to the standard
Liebherr protocol) in the space of Modbus addresses, the following rule has been defined:

Analogue variables (Liebherr range: 1-38) Modbus range: Holding/Input Register 1-38
Integer variables (Liebherr range: 1-139) Modbus range: Holding/Input Registers 101-239

The slave responds with an Exception in the following cases:

EXCEPTION 2:
Address of the first variable requested NOT between 1 - 38 and 101 - 239;
Address of the first variable requested between 1 - 38 and Address of the first variable
requested + number of variables requested > 38;
Address of the first variable requested between 101 - 239 and Address of the first variable
requested + number of variables requested > 239;

EXCEPTION 3:

Address of the first variable requested between 1 - 38 and number of variables requested > 38;
Address of the first variable requested between 101 - 239 and number of variables requested > 48;

NOTE: the maximum number of 48 integer variables that can be sent is determined by the maximum
size of the Liebherr controller transmission buffer.
0x05 Write Single Coil

Writes a digital variable as ON or OFF to the Slave.

The slave responds with an Exception in the following cases:

EXCEPTION 2:

Address of the variable being written > 65;

EXCEPTION 3:

Value being written contained in the Modbus package other than 0x0000 (OFF) or 0xFF00 (ON)
(Note: a Write Single Coil package sent by a Master compliant with the Modbus protocol should
NEVER generate this exception;

EXCEPTION 4:

The Master has attempted to write a read only digital variable;

0x06 Write Single Register

Writes an analogue or integer variable to the Slave.

The slave responds with an Exception in the following cases:

EXCEPTION 2:

Address of the variable being written not between 1 - 38 and 101 - 239;

EXCEPTION 4:

The Master has attempted to write a read only analogue or integer variable;
The Master has attempted to write an analogue or integer value that is outside of the minimum and
maximum range;

0x11 Report Slave ID

Returns the Carel Machine ID and the ON/OFF status of the controller.
The slave never responds with an exception.
VARIABLES DATABASE

Following a resume of the variables database.

Please consider the Modbus address subject to variations at the moment.

Analogue status variables

Normal analogue variables


Integer status variables

Normal integer variables


Digital status variables
Normal digital variables

You might also like