Question

Quering devices from a Linux Host PC with a USB converter to RS-485 network, we have the chance of using Modbus RTU or ASCII with checksum.

Given we are using a Linux PC, we have the freedom of using a C program using libmodbus or any other high level language to use ASCII.

Which are the advantages/disadvantages of each application protocol?

I understand that ASCII is not a protocol, but it kind of acts like an application protocol here.

This post helps, but in my opinion is not entirely clear. On first impressions Modbus RTU should be lighter therefore faster and perhaps more secure do to CRC.

Real World experiences would be great!

Was it helpful?

Solution

I have interfaced with probably 50+ different utilities and monitoring equipment using Modbus RTU (RS485 connection) or Modbus TCP. I find the most widely used protocol I have experienced is Modbus RTU (universally supported), and only a handful of devices supported Modbus ASCII.

If you want my real-world advice on Modbus RTU vs. Modbus ASCII, I would definitely recommend building an application for Modbus RTU. Modbus protocol is very simple at it's core, and the work to create either implementation would be virtually the same, but (in my line of work anyway) Modbus RTU is much more prevalent in the field, at least for NOW.

Having said this, I'm running into Modbus TCP more and more, and depending on how much Modbus you want to get yourself into, Modbus TCP is growing in popularity. The protocol is virtually the same (no CRC needed...TCP protocol takes care of this), but you have to deal with the network layers. Most newer devices I come across are supporting Modbus TCP and Modbus RTU (still rarely ASCII).

My 2 cents. Good luck!

OTHER TIPS

I vote for Modbus RTU, because requests and responses are smaller that in Modbus ASCII. Therefore it minimizes traffic, increases a response time and overall system productivity, allows to connect more devices to the same bus.

The only benefit of ASCII is that it's readable by humans, so it's easier to troubleshoot in some cases.

The wide majority of the industry uses RTU because the transmission speed of a binary protocol is much greater and it's not supposed to be read by humans anyway.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top