EP OS MOTOR MANAGEMENT SY STEM – INSTRUCTION MANUAL
4.7
CHAPTER 4: COMMUNICATION
4.1.8 Implementation basics
The EntelliPro ES implements a subset of the Modicon Modbus RTU protocol standard. Modbus is a master-slave protocol,
which means that a single host/master device initiates and controls all communication with the other devices on the
network.
The hardware interface is implemented as two-wire RS-485. In a two-wire link, data are transmitted and received over the
same lines. In such a half-duplex link, data are transmitted and received in separate time slices. Also, per the EIA-485
standard, the number of devices that can be connected on a single communication channel is limited to 32 (including the
master).
4.1.9 Modbus RTU message format
The Modbus RTU protocol is strictly based upon a transaction scheme in which a master device generates a query and a
slave device replies with a response. Each query and response message transaction consists of the following parts:
Device address
1 byte
Function code
1 byte
Data N
bytes
CRC 2
bytes
Dead time
3.5 bytes transmission time
These parts are as follows:
Device address – This is the first byte of each Modbus RTU transmission. The device address is a number limited to the
range of 0–247 and is associated with a single device configured with a matching address. This
device receives and processes the transmission from the master. Only the addressed slave device
responds to a transmission beginning with this address. A device address of 0 indicates a broadcast
command.
Function code – This is the second byte of each transmission and represents the commanded action to the slave
device (for queries from the master) or the action that was taken by the slave device (for responses
from the slave). Codes between 1 and 127 are defined as Modbus RTU functions. If a slave device
responds with a function code with the most significant bit (MSB) equal to 1 (or equivalently a
function code greater than 127), then the slave device did not perform the commanded action and
is signaling an error response.
Data – This field contains a variable number of bytes, depending on the function performed. Data may
contain addresses, actual values, or setpoints.
CRC – This is a two-byte error-checking code, known as a Cyclic Redundancy Check. The Modbus RTU
standard requires each message to have a two-byte CRC (commonly known as CRC-16 for 16 bits
of error checking) to be appended to every transmission.
If the EntelliPro ES detects a CRC error in a received Modbus message, the EntelliPro ES does not respond to the message.
An error in the CRC calculation indicates that one or more bytes of the transmission were received incorrectly, so the
entire transmission is ignored, preventing an unintended operation.
The CRC-16 calculation is an industry standard method used for error detection. An algorithm is included here to assist
programmers in situations where no standard CRC-16 calculation routines are available.