Modbus RTU over TCP Slave Simulator

J

Thread Starter

Jon Leininger

I am trying to test a Modbus master I have created. I have tried out various modbus slave simulators, but I am not sure how to test Modbus RTU over TCP. If I understand correctly Modbus RTU over TCP is just an RTU message surrounded by a TCP wrapper, right? How does that message differ from a Modbus TCP message? When I understand this I am pretty sure I will know how to use these modbus slave simulators to test my Modbus master using Modbus RTU over TCP. Any ideas? Any suggestions for slave simulators that have RTU over TCP functionality?
 
I believe that Modbus RTU over TPC is as you said, just an RTU message tunneled over TCP. Modbus TCP is like an RTU message, but doesn't have the RTU checksum (it relies on the Ethernet checksum).

Modbus TCP is part of the Modbus standard. So far as I know, Modbus RTU over TCP isn't part of any standard. It's just something that (a few) people do.

If you have some real plans for using it, I think you need to test it against whatever actual systems you think it needs to be able talk to. What Modbus RTU over TPC systems do you actually care about?
 
F

Fred Loveless

In addition to not having the traditional RTU checksum try, modbus ethernet has a special header that sends a unique transaction ID with each request packet. The return message for that request will have the same ID.

If you want to test Modbus RTU over TCP you can use Kepwares Unsolicited Modbus RTU driver in Ethernet Encapsulation mode which is what you would see with Modbus RTU over TCP. (http://www.kepware.com/Spec_Sheets/Modbus_Unsolicited.html).

You could also try the Modbus Simulator from Peak HMI I sometimes use that as well.

Fred Loveless
Senior Application Engineer
Kepware Technologies
 
Also, read this blog:

http://controltoolbox.com/blog/2009/03/why_dnp_over_ip_is_smarter_tha.html

Modbus decided to remove check sum at the end of the message going to TCP version. Because of that, you cannot simply throw a terminal server between Modbus TCP and Modbus RTU.

For your test, what I suggest you is writing a simple program to re-send your TCP traffic on a serial port and use one of the inexpensive/free Modbus RTU slave test applications in the market.


Rod
 
I know of no such thing as a Modbus RTU over TCP slave simulator. A Modbus RTU slave is a serial device, by definition. You need a Modbus serial device or simulator. But what you seem to be missing is a serial device server or serial device server simulator (if there is such a thing).

I suggest that you buy a hardware serial device server and read the manual. These are available from Digi, Moxa, Lantronix, and others. These all seem to work about the same. There is nothing Modbus specific about serial encapsulation over TCP (or UDP)! Serial device servers have been around for a long time.

 
As a previous post states above, the simulator from Calta (Mdbus) does support RTU over TCP. Based on the original poster's description, this is exactly what he's looking for.

I've used both ModSim32 and Mdbus, and both are very capable products. Currently, I don't think ModSim32 supports RTU over TCP.. it only supports the standard Modbus TCP on port 502.

CH
 
Top