Modbus TCP/IP with Scada

T

Thread Starter

ts

I have a controller that is a Modbus Master. I have a SCADA is a Modbus Master to serial devices. If I connect these two devices via Modbus TCP/IP I am inferring that the client/server model provides for these two devices to transfer data between one another without the Master/Slave configuration getting in the way. I am assuming the Master/Slave configuration only exists on the the serial communications configuration side. Am I correct?
 
P
Regardless of whether the link is serial (RS-485) or Ethernet, Modbus uses a master/slave paradigm. So, you cannot have master talking with a master, or a slave talking directly with a slave, without a special protocol converter in between.

Regards,

Paul Wacker
Product Manager (ICOM)
Advantech Corp.
 
Client/server is a software concept, not a hardware limitation. Modbus TCP/IP uses client/server (just like almost every other Ethernet protocol).

What you want is a passive server that can sit in between the two clients that both can talk to. Client 'A' writes to a register, and client 'B' reads from the same register, etc.

I have a Free Software project that provides a program to run on a PC that does this. The software is hosted at:

http://sourceforge.net/projects/mblogic/.

You would want the latest version of the MBTools package, which includes MBAsyncServer (as well as several other programs). Documentation for this is at:

http://mblogic.sourceforge.net/mbtools/mbtools.html

There may be other systems that do more or less the same thing.
 
There are 2 solutions.

1. Have 2 Modbus lines. There is a Master PLC collecting all data from it's Slaves. But the Master PLC is a Slave to the SCADA on a second Modbus line.

2. Your SCADA is a Slave to the Master PLC
 
Thank you all for the clarification. Thanks also for the recommendation on the software, I will take a look at it.
 
K
Hi,

Even I was going to ask the same doubt. Thanks to all the people for kind reply.

- Kapil Edke
 
With Modbus/TCP, any device can act as a master, slave, or both as long as both master and slave functionality have been implemented in the device.

This is opposed to Modbus RTU/ASCII, where only one device can be a master and all other devices are slaves. Generally, you must select between master or slave on serial devices. There are some workarounds that allow multiple masters, but an intelligent gateway is required.

In the scenario that you described using Modbus/TCP, you would need to add slave capability to either the controller or SCADA and then the two systems could talk.

Automated Solutions offers a Modbus/TCP Slave ActiveX Control that can easily be added to Windows applications to deliver slave functionality.

What platform does your SCADA system run on? Is it off-the-shelf or custom built?

-Mark
http://automatedsolutions.com
 
If I implement this slave functionality via software or hardware can I now receive data updates from the "slave" via exception or does the data always have to be pushed to the intermediate slave?
 
A client ("master") pushes data to a server ("slave"). When and how frequently that happens depends on the client.

If you are using Ethernet, the same program can be both a client and a server, provided the program was written to do this. However, most programs are *not* written to do this (I can recommend one that does if you are interested).

If you are using RS-232, then it has to be either a client or a server.

For either Ethernet or RS-232 you can have a proxy server ("slave") sit in between two clients ("masters") and store data in its internal data table. For Ethernet this is simply a software program (I mentioned one in a previous posting above).

For RS-232, you would either need a PC with two serial ports and a software program, or a special embedded box that does the same thing.
 
Top