
5.2.4 Address Field
The address field of a message frame contains 1 byte. Valid slave device addresses are in the range of 0 - 247 decimal. The individual slave devices are
assigned addresses in the range of 1 - 247 (0 is reserved for broadcast mode, which all slaves recognise). A master addresses a slave by placing the
slave address in the address field of the message.
When the slave sends its response, it places its own address in this address field to let the master know which slave is responding.
5.2.5 Function Field
The function field of a message frame contains 1 byte. Function fields are used to send messages between master and slave. When a message is sent
from a master to a slave device, the function code field tells the slave what kind of action to perform. When the slave responds to the master, it uses the
function code field to indicate either a normal (error-free) response, or that some kind of error occurred (called an exception response).
For a normal response, the slave simply echoes the original function code. For an exception response, the slave returns a code that is equivalent to the
original code with its most significant bit set to logic 1. In addition, the slave places a unique code into the data field of the response message. This tells
the master what kind of error occurred, or the reason for the exception. Please also refer to the sections
Function Codes Supported by Modbus RTU
and
Exception Codes
.
5.2.6 Data Field
The data field is constructed using sets of two hexidecimal digits in the range of 00 to FF hexidecimal. These are made up of one RTU character. The
data field of messages sent from a master to a slave device contains additional information which the slave must use to take the action defined by the
function code. This can include items such as addresses of coils or registers, the quantity of items to be handled. and the count of actual data bytes in
the field.
5.2.7 CRC Check Field
Messages include an error-checking field, operating on the basis of a Cyclical Redundancy Check (CRC) method. The CRC field checks the content of the
entire message. It is applied regardless of any parity check method used for the individual characters of the message.
The CRC value is calculated by the transmitting device, which appends the CRC as the last field in the message. The receiving device recalculates a CRC
during receipt of the message and compares the calculated value to the actual value received in the CRC field. If the two values are unequal, a bus time-
out occurs. The error-checking field contains a 16-bit binary value implemented as two 8-bit bytes. When this is done, the low-order byte of the field is
appended first, followed by the high-order byte. The CRC high-order byte is the last byte sent in the message.
5.2.8 Coil/Register Addressing
In Modbus, all data are organised in coils and holding registers. Coils hold a single bit, whereas holding registers hold a 2-byte word (i.e. 16 bits). All
data addresses in Modbus messages are referenced to zero. The first occurrence of a data item is addressed as item number zero.
Example:
The coil known as “coil 1” in programmable controller is addressed as coil 0000 in the data address field of a Modbus message. Coil 127 decimal is
addressed as coil 007E
HEX
(126 decimal).
Holding register 40001 is addressed as register 0000 in the data address field of the message. The function code field already specifies a “holding register”
operation. Therefore, the “4XXXX” reference is implicit. Holding register 40108 is addressed as register 006B
HEX
(107 decimal).
VLT
®
Micro Drive FC 51 Operating Instructions
5 Modbus RTU
MG.02.A4.02 - VLT
®
is a registered Danfoss trademark
27
5