Modbus TCP to Ethernet TCP


Thread Starter


I am using a Siemens PLC which transfers the datas through Modbus TCP/IP. These data to be exchanged with another third party PLC which can access only Ethernet TCP/IP.

Can anyone to tell me how to convert the data from Modbus TCP to Ethernet/TCP. Is there any module can be used in between to do the conversion or any coding can be done at the Siemens PLC side

Please answer my question.
Thank you.
There are several layers to a typical network. Ethernet is the bottom layer. IP is the next layer on top of that. TCP or UDP (and others) are on top of IP. Modbus/TCP is on top of TCP. So, Modbus/TCP uses Ethernet and TCP/IP.

Ethernet and TCP/IP worry about delivering the data to its destination. Modbus/TCP is the "application level" protocol which helps the application software figure out what the data means.

There are other application layer protocols besides Modbus/TCP. However, quite a few PLCs do understand Modbus/TCP natively. For those that don't, you can also often get Modbus/TCP communications cards that plug into the rack. Finally, there are converter boxes that will convert one protocol to another.

The first thing you need to do though is to find out what this third party PLC is, and what protocols it does understand.

James Ingraham

It's difficult to answer your question without knowing more specific details.

"Siemens PLC." Which Siemens PLC? Is this an old system like an S5 or a newer S7 series? Which flavor of S7?

"Modbus TCP/IP." To the best of my knowledge, there is nothing called "Modbus TCP/IP." There is a protocol called "Modbus/TCP." I know it seems like I'm nitpicking, but it could matter. For example, if you take Modbus serial packets and wrap them in TCP/IP packets you get a different animal than true Modbus/TCP.

Further, I've never actually done Modbus/TCP communications out of a Siemens PLC. Are you using a standard Siemens Ethernet module, or is this a third-party add-on card that talks Modbus/TCP? According to my brief research, a standard S7 Ethernet module can't do Modbus/TCP natively, but it CAN do generic TCP/IP, at which point it is pretty easy to implement Modbus/TCP in code.

"...third party PLC which can access only Ethernet TCP/IP."

Well, this could be simple or impossible. Like I just said, the S7 can do generic TCP/IP. So it sounds like this is no problem. However, there's a caveat. "Raw" TCP/IP can be very simple, or it can be made to be EXTREMELY complex. For example, RPC-XML and SOAP are two protocols that can run over TCP/IP, and both are quite intensive to implement, not least of which is being able to parse XML. Assuming your device can do a generic "send" and "receive," you should have no problem using the corresponding "AG_SEND" and "AG_RECEIVE" in S7.

I might be able to give you a clearer answer if you tell me PLC what you're talking to.

One more caveat. Rockwell Automation uses a protocol called "EtherNet/IP." Some people see this and mistakely read "Ethernet TCP/IP." The two are only marginally related. Make sure that you're really talking about "Ethernet TCP/IP" and not "EtherNet/IP." (Note the capital "N" and the lack of the initials TCP. "IP in this case standards for "Industrial Protocol," while the "IP" in "TCP/IP" stands for "Internet Protocol.")

Hope that helps.

-James Ingraham
Sage Automation, Inc.

curt wuollet

At the outset you'll have to clarify, because ModbusTCP is built on top of Ethernet and TCP/IP. That is it uses TCP/IP to send Modbus packets over ethernet. Now perhaps what they meant is EtherNetIP (tm.) which is Rockwell's contribution to obfustication. It seem the name was meant to confuse since TCP/IP predates it. Here IP means Industrial Protocol rather than Internet Protocol. A good start might be which 3rd party PLC you are trying to talk to. If it's AB, that would likely be the case.


If you're looking for a gateway to translate between Modbus/TCP and EtherNet/IP, take a look at the Digi One IAP (Made by Digi). I've successfully used them on many occasions.