In order to better appreciate how a Modbus ASCII test tool like Modbus protocol Analyzer can help you, let’s take a look at the Modbus ASCII data and message format.
Modbus ASCII data format
Modbus ASCII uses the ASCII character set to represent hexadecimal characters that each contain 4 bits of data. There are 10 bits in each byte in Modbus ASCII mode. They consist of:
- 1 start bit
- 7 data bits with the least significant bit sent first
- 1 bit for parity completion
- 1 stop bit
Modbus ASCII message format
The format of Modbus ASCII messages consists of a start character which is a colon “:” and the end of the message is defined by a carriage return and line feed. This enables the space between the messages to be variable and make Modbus ASCII suitable for transmission through certain modems.
Modbus Sniffer software can be extremely helpful in debugging, monitoring, and diagnosing issues in a Modbus network. It can be used in for both Modbus RTU and ASCII implementations.
Using this tool allows you to:
- Analyze serial port activity - You can open any serial port in your system even if it already in use by another application. Use real-time data collection to quickly diagnose issues of all serial port activity.
- Monitor multiple serial ports at one time - A central log file will hold all of your monitored data in a first-in-first-out basis for easier analysis.
- View your data in four different formats - Use these various views singly or in combinations to gain more insight into your data. Table, line, dump, and terminal mode let you view your data in the way that suits your needs.
- Emulation of data transmission - You can emulate data transmission to serial devices in various formats such as string, binary, decimal, and hex.
- Export your monitored data - You can export your data to files in HTML, ASCII text, UNICODE text or Exсel CSV format. New data can be appended to previously saved files.
All told, Modbus Protocol Analyzer is an essential tool for those working with serial devices and the Modbus protocol.
What is the difference between Modbus ASCII and RTU?
Both Modbus ASCII and RTU were introduced as part of the original Modbus protocol specification. The two variations use the same master/slave architecture and are very similar. They are both designed to work with serial devices, but are not compatible with each other due to differences that we will discuss below.
The main differentiating factor is that Modbus RTU employs binary coding where the aptly named Modbus ASCII uses the ASCII character set. Modbus RTU performs error-checking using the stringent CRC method whereas Modbus ASCII uses the less effective LRC error-checking method. The data format is also slightly different as the RTU variation uses a start bit, 8 data bits, and a stop bit as opposed to the ASCII data format that we looked at earlier.
The combination of binary coding and CRC error-checking make Modbus RTU suitable to industrial applications as it lends itself to more efficient transmission than the alternative of ASCII characters. When choosing between Modbus RTU vs ASCII, RTU is the first choice if performance is a consideration.
Modbus ASCII vs TCP
There is one more flavor of Modbus to consider and that is Modbus TCP. This is simply an implementation of Modbus that runs over a TCP/IP network. The main difference between Modbus ASCII and Modbus TCP is that the LRC error-checking that is required by Modbus ASCII is performed by the IP layer.
How do you convert Modbus ASCII to the Modbus RTU protocol?
As we mentioned earlier the Modbus ASCII and Modbus RTU protocols are not compatible with each other. Devices employing the two protocols cannot communicate directly with each other. But there are ways to get the devices talking to each other.
To do this you will need to use a hardware solution called a Modbus ASCII to RTU converter. This type of device is basically a translator that reads data from one device and then stores it internally in another protocol for use by the second device. In this way devices using any Modbus variation can communicate with each other.