FC101 Design Guide

Start Address Function Data
CRC
check
End
T1-T2-T3-
T4
8 bits 8 bits N x 8 bits 16 bits
T1-T2-T3-
T4
Table 7.14 Typical Modbus RTU Telegram Structure
7.8.3 Start/Stop Field
Telegrams start with a silent period of at least 3.5 character
intervals. The silent period is implemented as a multiple of
character intervals at the selected network baud rate
(shown as Start T1-T2-T3-T4). The rst eld to be
transmitted is the device address. Following the last
transmitted character, a similar period of at least 3.5
character intervals marks the end of the telegram. A new
telegram can begin after this period.
Transmit the entire telegram frame as a continuous stream.
If a silent period of more than 1.5 character intervals
occurs before completion of the frame, the receiving
device ushes the incomplete telegram and assumes that
the next byte is the address eld of a new telegram.
Similarly, if a new telegram begins before 3.5 character
intervals after a previous telegram, the receiving device
considers it a continuation of the previous telegram. This
behavior causes a timeout (no response from the slave),
since the value in the nal CRC eld is not valid for the
combined telegrams.
7.8.4 Address Field
The address eld of a telegram frame contains 8 bits. 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 recognize. A master addresses a slave by placing the
slave address in the address eld of the telegram. When
the slave sends its response, it places its own address in
this address eld to let the master know which slave is
responding.
7.8.5 Function Field
The function eld of a telegram frame contains 8 bits. Valid
codes are in the range of 1–FF. Function elds are used to
send telegrams between master and slave. When a
telegram is sent from a master to a slave device, the
function code eld tells the slave what kind of action to
perform. When the slave responds to the master, it uses
the function code eld 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 function code with
its most signicant bit set to logic 1. In addition, the slave
places a unique code into the data eld of the response
telegram. This code tells the master what kind of error
occurred, or the reason for the exception. Also refer to
chapter 7.8.11 Function Codes Supported by Modbus RTU and
chapter 7.8.12 Modbus Exception Codes.
7.8.6 Data Field
The data eld is constructed using sets of 2 hexadecimal
digits, in the range of 00–FF hexadecimal. These digits are
made up of 1 RTU character. The data eld of telegrams
sent from a master to a slave device contains additional
information which the slave must use to perform
accordingly.
The information can include items such as:
Coil or register addresses.
The quantity of items to be handled.
The count of actual data bytes in the
eld.
7.8.7 CRC Check Field
Telegrams include an error-checking eld, operating based
on a cyclic redundancy check (CRC) method. The CRC eld
checks the contents of the entire telegram. It is applied
regardless of any parity check method used for the
individual characters of the telegram. The transmitting
device calculates the CRC value and appends the CRC as
the last eld in the telegram. The receiving device
recalculates a CRC during receipt of the telegram and
compares the calculated value to the actual value received
in the CRC eld. 2 unequal values result in bus timeout.
The error-checking eld contains a 16-bit binary value
implemented as 2 8-bit bytes. After the implementation,
the low-order byte of the eld is appended rst, followed
by the high-order byte. The CRC high-order byte is the last
byte sent in the telegram.
7.8.8 Coil Register Addressing
In Modbus, all data is organized in coils and holding
registers. Coils hold a single bit, whereas holding registers
hold a 2 byte word (that is 16 bits). All data addresses in
Modbus telegrams are referenced to 0. The 1st occurrence
of a data item is addressed as item number 0. For example:
The coil known as coil 1 in a programmable controller is
addressed as coil 0000 in the data address eld of a
RS485 Installation and Set-...
VLT
®
HVAC Basic Drive FC 101
92 Danfoss A/S © 04/2018 All rights reserved. MG18C822
77