Go Down

Topic: Modbus ASCII Implementation (Read 3164 times) previous topic - next topic


Hi, I'm new with the Arduino development so maybe I'm a little bit confused, anyway here it goes.

I'm working in a machine controlled using and Arduino, it's likely that this machine will be controlled by a remote PC or a PLC. I need to expose some control, reading and writing commands using the serial protocol.

The control commands will be only a few, mostly to change status or clear warnings. I also need writing commands to change parameters and reading commands to watch some signals.

I was looking some different protocols implementations and I think that Modbus is a good fit, and there is some libraries that works with Arduino but those are for the RTU version. I think that the perfect fit will be Modbus ASCII, the problem is that I didn't find any library or development for this version on Arduino. someone knows about any?

I just don't want to expend a huge amount of time doing something that someone already did.

My second thought was modifying the Modbus RTU slave library to use the ASCII standard, do you thing that this is a good idea?

Thanks in advance for any help.



Modbus ASCII is not often used like RTU or TCP version of Modbus, you can found on the Modbus website the specs to build your own Modbus or migrate an RTU build in ASCII.

My question is why you need ASCII rather than RTU or TCP? The ASCII protocols require more RAM and execution time, so for a small uC like an ATmega a binary Modbus RTU or TCP will perform better.

There are several SCADA that allows you to control a Modbus Slave device, one that I like is IntegraXor. It should be not so hard find a Modbus RTU or TCP Master for you PC.


Souliss - Open-source Distributed Home Automation with Arduino and Android

Follow at @soulissteam



You can download Mango Automation as a free Modbus master.  It logs your data into a database, has a great UI, does email alarms, and support several other protocols.



Go Up