Real Time Automation   Contact Real Time Automation Contact Us Real Time Automation Product Support Support Link to Real Time Automation Link to Us
  Real Time Automation Homepage Real Time Automation Products Technologies We Offer Industrial Library Company Information Custom Applications
MODBUS RTU OVERVIEW
Modbus RTU Unplugged – An introduction to Modbus RTU Addressing,
   Function Codes and Modbus RTU Networking

1. OVERVIEW
Modbus RTU is an open, serial (RS-232 or RS-485) protocol derived from the client/server architecture. It is a widely accepted protocol due to its ease of use and reliability. Modbus RTU is widely used within Building Management Systems (BMS) and Industrial Automation Sytems (IAS). This wide acceptance is due in large part to MODBUS RTU’s ease of use.

MODBUS RTU messages are a simple 16-bit CRC (Cyclic-Redundant Checksum). The simplicity of these messages is to ensure reliability. Due to this simplicity, the basic 16-bit MODBUS RTU register structure can be used to pack in floating point, tables, ASCII text, queues, and other unrelated data. These drawbacks can be circumvented by using user-configurable units called ProtoCessor modules and FieldServers to make adjustments.

Modbus RTU Protocol Diagram

Protocol of MODBUS
MODBUS is considered an application layer messaging protocol, providing client/server communication between devices connected together through buses or networks. On the OSI model, MODBUS is positioned at level 7. MODBUS is intended to be a request/reply protocol and delivers services specified by function codes. The function codes of MODBUS are elements of MODBUS’ request/reply PDUs (Protocol Data Unit).

In order to build the MODBUS application data unit, the client must initiate a MODBUS transaction. It is the function which informs the server as to which type of action to perform. The format of a request initiated by a client is established by the MODBUS application protocol. The function code field is then coded into one byte. Only codes within the range of 1 through 255 are considered valid, with 128-255 being reserved for exception responses. When the client sends a message to the server, it is the function code field which informs the server of what type of action to perform.

To define multiple actions, some functions will have sub-function codes added to them. For instance, the client server is able to read the ON/OFF states of a group of discreet outputs or inputs. It could also read/write the data contents of a group of MODBUS registers. When the client receives the server response, the function code field is used by the server to indicate either an error-free response or an exception response. The server echoes to the request of the initial function code in the case of a normal response.

Drawbacks of MODBUS RTU - Reporting by Exception
There are some limitations to MODBUS RTU. For instance, the client/server architecture requires that in order for data to reach the client, the client node must poll the server node. Another limitation is that MODBUS RTU can be multi-dropped, meaning numerous server devices can operate on one MODBUS RTU network, so long as the physical layer is configured for this. To allow for the multiple slave network, an RS-485 device can be used, or simply by using modems or radios. With this configuration, it is possible that numerous nodes are multi-dropped, even at lower baud rates. Seconds, or even minutes can pass before changes can in the field nodes can be made. This is due to the slow speed and amount of MODBUS nodes involved.

There have been attempts made in order to bypass these limitations of MODBUS RTU. The problem with these attempts is that as soon as “unsolicited message” or “report by exception” enhancements are made, the protocol can no longer be considered MODBUS RTU. If faster data transfer is an absolute requirement, as well as a support of “report by exception,” a different protocol should be sought ought, possibly EtherNet/IP or BACnet.

Data Object Properties
MODBUS RTU packets are only intended to send data; they do not have the capability to send parameters such as point name, resolution, units, etc. If the ability to send such parameters is needed, one should investigate a BACnet, EtherNet/IP, or other modern protocols.

MODBUS RTU versus Other Protocols
Despite the limitations of MODBUS RTU, there are still many good reasons as to why it is still a contender among other industrial automation protocols. For one, MODBUS RTU is much easier to implement than newer protocols and is a dominant force in the market place. MODBUS RTU also requires significantly less memory. To implement MODBUS RTU, you can fit the necessary size of 2Kb on a small 8-bit CPU or PIC processor, whereas with BACnet and EtherNet/IP, you may require 30-100Kb of memory.

MODBUS RTU Address Requirements
Standard MODBUS RTU node addresses are 1-254, with 0 being reserved for broadcast messages and write only. However the 0 address is rarely used due to the fact that there is no confirmation that the message was properly received at the server node. This doesn’t have much affect if your physical layer is RS-232 as only one node can be implemented anyway. RS-485 limits the number of nodes to 32, though some drivers will allow you to extend the amount.

The difference between MODBUS RTU and MODBUS TCP
The most basic difference between MODBUS RTU and MODBUS TCP (Also known as MODBUS IP, MODBUS EtherNet, and MODBUS TCP/IP) is that MODBUS TCP uses a 6 byte header to allow routing.

Bit Structure in the Byte
The Bit of least importance is sent and received first. All devices thin the network must interpret each transmitted byte analogously in this manner. There are no methods for automated recognition of baud rates is not assigned and the same baud rate must be utilized by the Server as well as all clients connected to the bus. No specific baud rate is specified by the MODBUS: typical baud rates are 9600 or 19200.

MODBUS RTU Bit Diagram

A transmitted Byte is coded as: 8 Bit binary value, hexadecimal 0 - 9 and A - F. The least significant Bit is sent and received first

MODBUS RTU Memory Map
Modbus RTU
Data Type
Common
name
Starting address
Modbus Coils Bits, binary values, flags 00001
Digital Inputs Binary inputs 10001
Analog Inputs Binary inputs 30001
Modbus Registers Analog values, variables 40001

The difference between MODBUS RTU and MODBUS/ASCII
There are two basic transmission modes found in serial MODBUS connections, ASCII and RTU. These transmission modes determine the way in which the MODBUS messages are coded. In ASCII format, the messages are readable, whereas in RTU the messages are in binary coding and cannot be read while monitoring. The trade-off is that the RTU messages are a smaller size, which allows for more data exchange in the same time span. One should be aware that all nodes within one MODBUS network must be of the same transmission mode, meaning MODBUS ASCII cannot communicate with MODBUS RTU and vice versa.

In MODBUS/ASCII, messages are encoded with hexadecimal value, represented with comprehensive ASCII characters. The characters used for this encoding are 0…9 and A…F. For every byte of information, two communication-bytes are used because every communication-byte can only define 4 bits in the hexadecimal system. MODBUS RTU, however, exchanges data in binary format where each byte of data is coded in one communication-byte.

The MODBUS messages on a serial connection are not broadcast in plain format. They are constructed in a way that allows receivers an easy way to detect the beginning and end of a message. The characters start and end a frame when in ASCII mode. To flag the start of a message, a colon ‘:’ is used, and each message is ended with a CR/LF combination. MODBUS RTU uses a different method. In RTU, framing is constructed by measuring gaps of silence on the communication line. Before each message, there must be a minimum gap of 3.5 characters. To prepare for new messages, the receiver clears the buffer when a gap of 1.5 characters is detected. One of the main differences between MODBUS/ASCII and MODBUS RTU is that ASCII allows gaps between the bytes of a message with a maximum length of 1 second. With MODBUS RTU, continuous streams of messages must be sent.

Properties of Modbus/ASCII and Modbus/RTU

  Modbus/ASCII Modbus/RTU
Characters ASCII 0...9 and A..F Binary 0...255
Error check LRC Longitudinal Redundancy Check CRC Cyclic Redundancy Check
Frame start character ':' 3.5 chars silence
Frame end characters CR/LF 3.5 chars silence
Gaps in message 1 sec 1.5 times char length
Start bit 1 1
Data bits 7 8
Parity even/odd none even/odd none
Stop bits 1 2 1 2


» I want this file in PDF Format
» I need to Modbus RTU-enable My    Product

For Your Immediate Needs Call:
John Rinaldi
Networking Project Manager
1-800-249-1612
1-414-453-5100

RTA, Inc. - The Industrial Networking Home for DeviceNet, EtherNet/IP, Ethernet Drive,
Modbus TCP, Modbus RTU, PROFINET CBA, PROFINET IO, BACnet, IEC 61131-3,
IEEE 1588, AS-Interface and other networks. © 2009 Real Time Automation, Inc.
Networking in 30 Days or Less
www.rtaautomation.com



 
Real Time Automation, Inc.
2825 N. Mayfair Rd. Suite 11
Wauwatosa WI 53222
© Real Time Auomation, Inc. All Rights Reserved. | http://www.rtaautomation.com

(414) 453-5100 (V)
(414) 453-5125 (F)
www.rtaautomation.com