OPC server to MODBUS TCP

G

Thread Starter

Gabe Tosello

I already have an OPC server but I need to convert that into a MODBUS TCP protocol. Is this possible?
 
B
There are quite a few options when using an OPC Client to Modbus but unfortunately we have found most OPC Server to Server connections to be unreliable when in production. The vendors talk them up but they just always seem to come up short on handling interruptions and general reliability.

Could you use something like Kepware connected to your OPC Client to read it in to your Historian first before serving it on?

Best Regards,

Bill Graham
Industrial Thinking Ltd
http://www.industrialthinking.com
 
G

Gabe Tosello

That is an alternative we can try.

I'll provide more details.

We are trying to communicate between two PLC's; one has OPC Server and Modbus RTU and the other has MODBUS TCP and RTU. I was able to get the RTU's communicating but the throughput was about 60 float values per second which isn't good enough for us (looking at about 600/second). I was able to get 2400 floats per second from the OPC server.

So we are looking at using other alternatives.
Gabe Tosello
 
If we knew what the actual application was attempting to achieve, we might be able to suggest a different solution.
 
Your latest post has provided more detail. However, how many floats (or registers) are you transferring in a single transaction (poll)? That makes a big difference as a lot of the delay can be the time it takes to turn a message around.

For example, if you are transferring 2 registers per polling cycle, the average throughput (registers per second) will be much slower than if you are transferring the maximum of 125 registers per polling cycle. In fact, the average time to conduct a poll for a large amount of data over Modbus/TCP (over Ethernet) is typically not that much greater than the time to poll for a small amount of data. That's why you need to also count the transaction rate (number of polls per second).

Also, the message overhead is the same in each case, so the ratio of overhead to data is much greater when you are transferring a few registers at a time than when you are transferring many. That will matter more on a serial connection where the link itself can be the bottleneck.

As far as the OPC rate of 4800 register per second (2400 floats per second), the limit there will be related to how OPC handles the data. I have benchmarked Modbus/TCP servers that don't use OPC, and they are typically much, much faster than that.

So, at this point it's hard to say where the bottleneck is. How many registers are you transferring in each transaction (poll)? What baud rate are you using for RTU?
 
F

Fred Loveless

Typically if I am contacted by a customer that has an OPC server and they want to get that data outputed as Modbus data, usually for a Delta V or other DCS system to read, I have them use our LinkMaster bridge product and our Modbus TCP Ethernet driver.

First I have them configure the Modbus Ethernet driver using the local IP or 127.0.0.1 which turns the device in our server into a Modbus Etherent Slave. They then create static tags to for each register that they want the Modbus Etherent Master to read. ( they do not have to create the tags but if they have a lot of data to transfer it is easier to keep track of everything.)

Next the configure the LinkMaster so that it is connected to the other server and our server. Using drag and drop they can browse and select OPC items from their server and drop them in LinkMaster to create link items. These OPc Items will be the inputs to the link they then select the tag that they want to receive the data in our server and drop it onto the link. It becomes the output of the link. With that you are reading data form the server and writing it to modbus.

You can create links that go the other way in case you want to write data to the server from the Modbus Master.

You could also have our server be the modbus master and write data out to a Modbus slave device.

Fred Loveless
Kepware Technologies
http://www.kepware.com
 
D
To communicate directly between the PLCs, using serial on one side and Ethernet on the other, you can use the MBX Bridge Suite. But the throughput is going to be limited by the slower network, so I don't know that you'll get much better performance that way than with the direct serial connection.

If you need to pass data between the OPC server and the other PLC, you can use an MBX OPC Premier Suite, which will let you talk to both PLCs and the existing OPC server, passing data among any of them.

But a simpler configuration would be to just replace the existing OPC server with the MBX OPC Premier server. That will let you get data from both PLCs into the server, and pass it between the two PLCs, giving you everything you need, without having to deal with server-to-server transfers.

Details on both products are available at www.cyberlogic.com.

Dan Muller
Cyberlogic
 
Top