In this article I'll walk you through how to setup a connection between an Allen Bradley CompactLogix 1769-L36ERM controller, and a Siemens Simatic S7-300 PLC CPU 315-2PN/DP via Ethernet using the Prosoft PLX31-EIP-SIE Gateway.
Of course, you can write you own code on both AB and Siemens sides using, for example, a Modbus TCP protocol. However, the fastest way is to use an Industrial Gateway.
Prosoft Company has a lot of different gateways, almost for all existing types of industrial networks and protocols.
In this article I will show you how to use their PLX31-EIP-SIE gateway to make a connection for data exchange between Ethernet/IP and Industrial Ethernet protocols.
For it to work, you will need to write a small amount of code on the A-B Logix side only, and set the appropriate gateway configuration for your application.
You will not need to write a bit of code on Siemens side.
Below I will show you step-by-step how to do this in real application examples based on experience from my latest project:
Step 1) Add new module to the Ethernet subnet – Prosoft PLX31-EIP-SIE industrial gateway.
You can find it in Communication Adapter subcategory filtered by Prosoft Technology Vendor.
If you cannot find it there then you should download and install EDS files from Prosoft Technology PLX31-EIP-SIE product’s web page:
In addition, you may check Module Connection settings (2). This is the connection setup between CompactLogix Controller and PLX31-EIP-SIE module.
You can leave all I/O connection setting on its default values. For most cases, one connection and 496 bytes for input and 496 bytes for output will cover all your needs.
Let’s for example read from S7-300 PLC (absolute address in PLC memory DB1.DBD0) one 32-bit double word value (a bunch of separate bits) and write one REAL value to S7-300 PLC (absolute address in PLC memory DB1.DBD4).
Step 3) In this step, we will configure PLX31-EIP-SIE. To do this we need to download and install the Prosoft Configuration Builder software. You can find it on the PLX31-EIP-SIE product’s web page.
After PCB installation, an empty untitled project will open and it will ask you to choose your module type. Please select PLX30 family first and then select PLX31-EIP-SIE module from drop down list. Finally, press the OK button.
Please check module EIP connection settings. Go to EIP Class 1 Connection branch and double click on EIP Class 1 Connection 1 (this is the I/O connection 1 which you have already set up in Step 2. A connection properties window will open.
These values you should take in an account when you configuring connection rows for read and write data. Input and output sizes are equal to 248 bytes by default. You may leave all setting on its default values.
After this, you should setup a client connection for S7-300. You can have here up to 20 client’s connections and up to 16 data connection rows (commands) in each connection. Expand SIE Client 0 branch and double click on SIE Client 0 Commands.
A client’s commands setup window will open. We will setup there two separate commands for read and write data from S7-300 PLC. To setup command press the button Add Row.
Key moments are the following:
- Enable: for eventually non-periodical access, doesn’t matter for reading or for writing access, we should select here the value Conditional Write.
- Internal address: start address in structured tag, from which your data will have been put in. In case of 0 value here your data in PLX31 input tag structure will start from I1.Data_1
- Reg Count: – quantity of 16-bit which we are reading from Siemens PLC. For example to get one 32-bit value (DWORD, DINT or REAL) we should set the value 2 in the Reg Count property.
- Slot: slot in a rack where CPU has been placed. For S7-300/S7-400 PLCs you should set here the value: 2, for S7-1200/S7-1500 PLCs you should set the value: 1.
In the same way, we configure a command for writing data to S7-300.
There is only one key moment you should pay your attention for is the Internal Address value. For output data, it should start from 2000. In case of 2000 value here, your data in PLX31 output tag structure will start from O1.Data_1:
Step 4) In this step, we will test S7-300 and 1769-L36ERM data exchange. As I said before, we should not make any changes on the S7-300 side. In Simatic Step7 we will use a variable table VAT_1 for control data values:
First we send a value 16#EF00ABCD to CompactLogix.
To do this we need to use one temporary REAL controller tag in_temp and one INT array controller tag temp, and compute them with COP and MOVE instructions. We brake one REAL tag in_temp into two INT tags temp and temp.
About the author:
I just wanted to quickly thank Oleksandr for taking the time to write up the above procedure and share it with the rest of us.
Having written many similar articles myself, I know first hand how much effort goes into documenting a procedure like the above, and in appreciation would like to ask anyone who finds this helpful to please take a moment and either share it on social media or say thanks in the comments below.
And if you'll like to join the ranks of our guest bloggers, please let us know using our contact form here.
Sponsor and Advertise: Get your product or service in front of our 75K followers while also supporting independent automation journalism by sponsoring or advertising with us! Learn more in our Media Guide here, or contact us using this form.
- Exchange Data Between Simatic S7 PLCs on Different Subnets - May 21, 2018
- Connecting ControlLogix to Simatic S7-300 via Ethernet - January 26, 2018