Controllogix to Siemens S7 communication via ethernet

A

Thread Starter

Anonymous

Can anyone help, I have a Allen Bradley Controllogix PLC and I need to transfer data to and from a Siemens S7-400 PLC via ethernet. I have been told by someone at Siemens that it has been done but they did not know how.

Equip
CLX Logix5555 - PLC
AB Ehternet module

Siemens S7-400 - PLC
Siemens CP443-1 - Communications Processor
 
E

Eddie Willers

You can't send any kind of messages over Ethernet between a ControlLogix and an S7. Their application-level protocols are completely and utterly incompatible.

You're going to have to resort to Profibus, probably.
 
S
Well, first you can buy a Profibus DP card for the ControlLogix from SST/Woodhead (http://www.mysst.com). This will get the two PLCs talking the same language, and might be your solution if you don't absolutely have to use Ethernet. If you do have to use Ethernet, Siemens or other manufacturer can probably provide modules to bridge the Profibus to Ethernet. Install one at either end and you're ready to break for lunch.

--
Steve Myres, PE
Automation Solutions
(480) 813-1145
 
S
If you have the ethernet cards already as it appears, couldn't you use two OPC servers and some type bridging software. Companies like kepware have all this. I know they opc severs for the Siemens and AB and they have a bridging product I think called Link master.

http://www.kepware.com

I would give that a try. This does require a PC running windows.

Good Luck.
 
I never did an Ethernet communication between Siemens and AB, but I don’t see the "special case". What's so special (at least on the Siemens side)? I don’t quite understand why everybody points you to Profibus (unless they are all AB guys).

So, on the Siemens side:
Install an Ethernet card on the rack (ex CP343-1 for S7-300 or CP443-1 for S7-400).
Use FC5 (AG_SEND) respectively FC6 (AG_RECV) to send receive data to a CONFIGURED connection (TCP/IP). You can find these subroutines in the catalog / Libraries / SIMATIC_NET_CP / CP… (300 or 400, depending on your system). Click (once) the sbr you want (in the catalog) and hit F1 for full explanations / descriptions. Then, you have to build your block of data to be transmitted so you can access it from FC5 / 6. Technically when you "configure" your connection you specify an IP address (mask, sub-mask, MAC, etc). The Ethernet module doesn’t care who's on the other side (PC, PLC, etc).

And that's all on the Siemens side. I have no idea what you have to do on the AB side. I suppose something similar (choose Ethernet card, call the send / receive standard subroutines, etc). This way you exchange data using "telegrams". This is not a "memory reading /access" method! This telegram method is asynchronous.

This was the basic part. Then you have to arrange the data so you can use it properly on the other side. You will need (probably) some IDs and some kind of header, so you can identify (on the receiving side) what kind of data it is.

Hope this will help. For future questions email at [email protected]

ValRo
 
You can connect to Siemens PLCs over Ethernet using TCP or ISO. The ISO communications includes addressing information applicable to the Siemens architecture which is not necessarily understandable to the allen Bradley so this probably leaves only TCP as a viable option.

There are some problems associated with TCP in Siemens PLCs and they relate to the handling of communications errors, this because when receiving data, the H1 card fills up a buffer, and when the buffer is as big as the
receiving data mailbox, the data is sent to the CPU where it becomes available to the user program. This works well so long as the Ethernet link performs without any glitches, however this does not happen, so on a failed
or aborted transmission it happens that the buffer is partially full and on the next transaction it becomes full 1/2 way thru receiving the data you sent to it, it then transfers the data to the CPU and continues to receive data till the end of the telegram, leaving the buffer partially full until the next telegram fills it up again.

This means you have to frame your data with recognizable characters, such as the typical carriage return line feed <cr><lf> sequence, and then search for these characters to determine where the data received starts and ends. This is quite tricky and if used for important interlocking data can lead to dangerous situations unless you are a fairly advanced programmer. I have no idea how or even if this can be done in the allen bradley, I only work on real PLCs!!

As to the solution of Link Master and Kepware, it is probably not a bad idea, you might have to consider creating a driver with the kepware ucon driver package, however as I hate the concept of PCs getting involved in
plant control on the interlocking level, I would not recommend this if it is mission critical data you want to exchange.

If I was in your position, I would make one PLC a Profibus slave and the other a Profibus master, either of them should be able to handle Profibus master functions easily, the Siemens can be made a Profibus slave and this works well I have used it a few times.

Regards
Donald P
 
J
Like Eddie Willers pointed out, just because both ends are Ethernet and TCP/IP will not make the communicated. The most important aspect is the application layer. A-B and Siemens have different application layers so they will not talk directly. That is why you need a gateway or OPC in between.

Ethernet and TCP/IP provide no interoperability, just coexistence. The devil is in the application layer.

Good discussion. See also my post here on the same topic:
http://www.control.com/1026198669/index_html

Jonas Berge
SMAR
===========
[email protected]
www.smar.com
Learn fieldbus at your own pace: www.isa.org/fieldbuses
 
Top