Modbus RTU and Modbus ASCII talk the same protocol. The only difference is that the bytes being transmitted over the wire are presented as binary with RTU and as readable ASCII with Modbus RTU.
important to note about RTU is that the RTU message does not have a Start_of_text indication. The receiving party in the communications uses a "silent" time in order to determine the start of a new message.
ASCII does have a start-of-text token.
Binary messages are shorter than ASCII and therefore theoretically faster to transmit/receive. You may be happy to see update rates of about 100 ms in your HMI/SCADA and could choose either communication.
- use RTU is possible
- use ASCII in case RTU is giving timeout problems on WinNT or when using slow communications media like 300 bps or dialup modems
Most OPC Servers for Modbus support ASCII as well as RTU communications.
Hope this helps a bit in selecting your communications.
> What is the difference between Modbus RTU and Modbus ASCII? When should I use one in preference to the other? >
The difference is in how the numbers are actually transmitted. In standard RTU, the data strings are represented in hexadecimal byte form. for example, if the slave 16-bit address is one, the transmitted value would be 01h. In Ascii, the transmitted value would be 30h 31h. These are the hexadecimal ASCII values for the numbers 0 and 1.
Also, in standard RTU, the last two bytes are the CRC bytes followed by a "quiet time". In ASCII, they are followed by a Carriage Return (0dh) and Line Feed (0ah).
Today, most RTU, such as, Modbus TCP, is the standard form, and therefore, the preferable.
The Difference between Modbus ASCII and Modbus RTU is the bit contents of message fields transmitted serially between Devices.
In Modbus ASCII, each 8=96bit byte in a message is sent as two ASCII characters, the error check characters are the result of a Longitudinal Redundancy Check (LRC) calculation.The advantage of this mode is that
it allows time intervals of up to one second to occur between characters without causing an error.
In Modbus RTU, each 8=96bit byte in a message contains two 4=96bit hexadecimal characters,the error check value is the result of a Cyclical Redundancy Check (CRC) calculation . The advantage of this mode is that its greater character density allows better data throughput than ASCII for the same baud rate.