5.8 Modbus RTU Message Framing
Structure
5.8.1 Introduction
The controllers are set up to communicate on the Modbus
network using RTU (remote terminal unit) mode, with each
byte in a telegram containing 2 4-bit hexadecimal
characters. The format for each byte is shown in
.
Start
bit
Data byte
Stop/
parity
Stop
Table 5.12 Format for Each Byte
Coding system
8-bit binary, hexadecimal 0–9, A–F.
2 hexadecimal characters contained in each
8-bit field of the telegram.
Bits per byte
•
1 start bit.
•
8 data bits, least significant bit sent first.
•
1 bit for even/odd parity; no bit for no
parity.
•
1 stop bit if parity is used; 2 bits if no
parity.
Error check field
Cyclic redundancy check (CRC).
Table 5.13 Byte Details
5.8.2 Modbus RTU Telegram Structure
The transmitting device places a Modbus RTU telegram
into a frame with a known beginning and ending point.
This allows receiving devices to begin at the start of the
telegram, read the address portion, determine which
device is addressed (or all devices, if the telegram is
broadcast), and to recognize when the telegram is
completed. Partial telegrams are detected and errors set as
a result. Characters for transmission must be in
hexadecimal 00–FF format in each field. The frequency
converter continuously monitors the network bus, also
during silent intervals. When the first field (the address
field) is received, each frequency converter or device
decodes it to determine which device is being addressed.
Modbus RTU telegrams addressed to 0 are broadcast
telegrams. No response is permitted for broadcast
telegrams. A typical telegram frame is shown in
.
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 5.14 Typical Modbus RTU Telegram Structure
5.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 first field 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 flushes the incomplete telegram and assumes that
the next byte is the address field 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 final CRC field is not valid for the
combined telegrams.
5.8.4 Address Field
The address field 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 field of the telegram. 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.8.5 Function Field
The function field of a telegram frame contains 8 bits. Valid
codes are in the range of 1–FF. Function fields are used to
send telegrams between master and slave. When a
telegram 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 function 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
telegram. This code tells the master what kind of error
occurred, or the reason for the exception. Also refer to
chapter 5.8.10 Function Codes Supported by Modbus RTU
and
chapter 5.8.11 Modbus Exception Codes
.
RS485 Installation and Set-...
Design Guide
MG07B102
Danfoss A/S © 03/2016 All rights reserved.
61
5
5