Overview
Two Ethernet-capable PLCs do not automatically talk to each other. The Siemens S7 family and the Allen-Bradley SLC 500 share the same physical layer (IEEE 802.3) and the same transport (TCP/IP), but their session, presentation, and application layers are not compatible. Siemens S7 controllers default to S7 Communication (a Siemens-proprietary protocol that runs over ISO Transport / RFC 1006, port 102) and (on the newer S7-1200/1500 lines) OPC UA. Allen-Bradley SLC 500 Ethernet modules speak EtherNet/IP — CIP over TCP/UDP, port 44818 for explicit (class 3) messaging and UDP port 2222 for implicit I/O. Bridging them requires either a PC-based OPC server pair, a purpose-built protocol gateway (ProSoft, HMS Anybus, Molex SST), or a custom S7/CIP client. This reference documents the protocol stacks, the required hardware catalog numbers and firmware revisions, the configuration procedure for each approach, the realistic scan times, and the field-proven pitfalls when connecting a legacy SLC 500 to a modern or legacy S7 CPU.
Protocol Stack Comparison
| Layer | Siemens S7 | Allen-Bradley SLC 500 (EtherNet/IP) |
|---|---|---|
| Application | S7 Communication (PUT/GET, USEND/URCV); OPC UA (S7-1200/1500) | CIP (Common Industrial Protocol); CIP Safety optional |
| Session / Presentation | ISO Transport (ISO 8073 Class 4), TPDU size 1024 | ENIP encapsulation (session mgmt, port 44818); CIP routing |
| Transport | TCP port 102 (S7 Comm over ISO-on-TCP); TCP/UDP for OPC UA | TCP/UDP port 44818 (explicit), UDP 2222 (implicit I/O) |
| Network | IPv4, IGMP for multicast, optional VLAN | IPv4, IGMP for multicast, DLR optional (not on 1747-EN2T) |
| Physical | 10/100 Mbps copper or fiber via CP | 10/100 Mbps copper (1747-EN2T) or fiber (1747-AENTR) |
The mismatch is at layers 5-7. Layer 1-4 will pass traffic between the two PLCs without issue; what is missing is a translator that can issue a CIP Read on one side and an S7 Read on the other.
SLC 500 Ethernet Hardware
The SLC 500 (1746 chassis, 1747 CPU) does not have built-in Ethernet on most catalog numbers. Ethernet is added with a sidecar or rack-resident module:
| Catalog | Function | EtherNet/IP role | MSG support | Notes |
|---|---|---|---|---|
| 1747-ENI/A, /B | Ethernet Interface | Adapter (I/O slave) only | Limited | Legacy, no scanner; for HMI only |
| 1747-EN2T/A, /B, /C | Ethernet TCP/IP | Adapter + Scanner | Yes (CIP Generic, CIP Write/Read Tag) | Preferred for cross-vendor MSG |
| 1747-AENTR | Add-on Ethernet/IP module | Adapter only | Yes, with 1747-CPR2 | Modern replacement path |
Critical firmware requirements for MSG over EtherNet/IP on the SLC 500:
- SLC 5/05 CPU firmware ≥ OS501 (FRN 5.01). Earlier OS levels cannot issue CIP Generic over the 1747-EN2T.
- 1747-EN2T firmware ≥ 4.005 for CIP Generic support; ≥ 5.001 for CIP Tag (symbolic) messages.
- RSLogix 500 ≥ v9.0 with the matching AOP (Add-On Profile) for the EN2T revision.
S7 Ethernet Hardware
| CPU / CP | Type | Protocols | Typical FW |
|---|---|---|---|
| S7-200 + CP 243-1 | Module | S7 Comm, ISO-on-TCP, TCP, Modbus TCP | CP 243-1 v2.0+ |
| S7-300 + CP 343-1 Lean | Module | S7 Comm, ISO-on-TCP, TCP, PROFINET | v2.0+ |
| S7-300 + CP 343-1 Advanced | Module | All + integrated OPC server (SIMATIC NET) | v2.5+ |
| S7-400 + CP 443-1 | Module | S7 Comm, ISO-on-TCP, TCP | v2.0+ |
| S7-1200 CPU (PN interface) | Built-in | S7 Comm, TCP, ISO-on-TCP, Modbus TCP, OPC UA (FW 4.4+) | FW 4.0+ |
| S7-1500 CPU (PN/IE) | Built-in | S7 Comm, OPC UA (server & client), TCP, ISO-on-TCP | FW 1.8+ |
For all S7 CPUs you must enable remote partner access:
- TIA Portal → CPU Properties → Protection & Security → tick Permit access with PUT/GET communication from remote partner.
- Define a DB with the shared data (e.g., DB100 with 20 INTs).
- Confirm the CPU's Connection Resources (S7-300/400 have a hard limit, typically 16-32).
Connection Architecture Options
Three architectures are used in production. The decision tree is:
Option A — OPC Server Pair on a PC
Classic three-tier architecture:
- Server A (S7 side): SIMATIC NET PC Software (≥ V13 SP2) provides an OPC DA and OPC UA server. It speaks S7 Communication with the S7 CPU on TCP port 102.
- Server B (SLC 500 side): RSLinx Classic, RSLinx OEM, or RSLinx Gateway provides an OPC DA server. It speaks EtherNet/IP with the 1747-EN2T on TCP/UDP 44818.
- Bridge (client): Any OPC DA 2.05/3.0 or OPC UA client (KEPware, Matrikon OPC, Cogent DataHub, WinCC, Ignition, iFIX) reads tags from both servers and writes them back to the other. The tag namespace is unified inside the client.
Typical configuration on the SLC 500 side in RSLinx:
Driver: EtherNet/IP Driver
AGS path: 192.168.0.10, 1747-EN2T/A, 1, 0
Update interval: 100 ms (default 1000 ms; reduce to 100 ms for process control)
Typical SIMATIC NET PC station configuration:
PC station index: 1
S7-300 station: rack 0, slot 2
Connection: ISO-on-TCP, TSAP local 03.00, TSAP remote 03.01
Update rate: 200 ms
Realistic scan time: 250-1000 ms per direction with OPC DA polling at 200-500 ms. The PC and the OPC client are a single point of failure and require disciplined Windows patching, antivirus exclusions, and NIC power management disabled.
Option B — ProSoft Protocol Gateway
ProSoft Technology is the de-facto industrial bridge vendor for the SLC 500 era. The ProLinx and the newer PLX32 platforms are the relevant product lines:
| Model | Side A | Side B | Use case |
|---|---|---|---|
| PLX31-EIP-SIE | EtherNet/IP (scanner/adapter) | S7 MPI/PROFIBUS | Legacy S7-300/400 with MPI or PROFIBUS |
| PLX32-EIP-SIE | EtherNet/IP | S7-300/400/1200/1500 Industrial Ethernet | Native S7-Comm over TCP port 102 |
| 5201-MNET-SIE | Modbus TCP/IP | S7 MPI/PROFIBUS | When SLC 500 uses Modbus TCP only |
The 1747-EN2T acts as EtherNet/IP scanner and consumes a fixed-size input/output assembly from the gateway. The gateway, in turn, maps that assembly to S7 data blocks. Configuration is performed with ProSoft Configuration Builder (PCB).
ProSoft side (PCB):
Module: PLX32-EIP-SIE
EtherNet/IP side:
Mode: Scanner
Connection 1: 192.168.0.10, Assembly 100 (20 words in, 20 words out)
RPI: 50 ms
S7 side:
Connection: ISO-on-TCP, TSAP 03.01
DB: DB100, byte offset 0, length 40
RSLogix 500 ladder snippet (SLC 500 reading from S7):
Rung 1
MSG Instruction
Type: CIP Generic
Service: 0x4C (Read Data)
Target path: 192.168.0.20, 1, 0, N7:0
Local destination: N7:0 (length 20 words)
Trigger: Continuous, scan-time priority
RSLogix 500 ladder snippet (SLC 500 writing to S7):
Rung 1
MSG Instruction
Type: CIP Generic
Service: 0x4D (Write Data)
Target path: 192.168.0.20, 1, 0, ST14:0
Source: N7:100 (length 20 words)
Trigger: One-shot on input transition
Realistic scan time: 50-150 ms per direction with ProSoft ProLinx polling; 20-50 ms with CIP RPI 10-20 ms and event-driven triggers. Determinism is medium-to-high and adequate for slow PID (≤10 Hz).
Option C — Custom Application (libnodave / EIPScanner)
For high-volume or non-standard data, a Windows or Linux service can use libnodave (open-source S7 Communication) and a CIP library such as EIPScanner to do the translation directly without OPC or a gateway. This works for high data rates but requires:
- S7 connection parameters: rack/slot, TSAP, partner IP.
- CIP forward-open request with the correct service code and route path.
- Robust socket error handling on both sides — both protocols drop sockets on network blips and require explicit reconnection.
Avoid this approach for production unless the volume of data exceeds OPC capacity (typically 5000+ tags updated < 100 ms) and you have a clear test plan. It is, however, the cheapest path for prototypes.
Performance and Timing
| Method | Typical scan (ms) | Jitter (ms) | Determinism | Failover |
|---|---|---|---|---|
| OPC DA polling @ 200 ms | 250-500 | 50-200 | Low | Manual PC restart |
| OPC UA pub/sub | 100-250 | 20-50 | Medium | Auto-reconnect |
| ProSoft ProLinx (polled) | 50-150 | 10-20 | Medium | Standalone, no PC |
| ProSoft with CIP RPI 10 ms | 20-50 | 5-10 | High | Standalone |
| Native S7 PUT/GET in CPU | 30-100 | 5-15 | High | CPU handles |
| libnodave + EIPScanner (custom) | 10-40 | 2-10 | High (if coded well) | Application restart |
For PID loops faster than 10 Hz update, the only acceptable paths are ProSoft with RPI 10-20 ms, native S7 PUT/GET (if the SLC 500 side supports it on the bridge), or a custom application with the PID executed on the faster of the two CPUs.
Configuration Procedure (ProSoft Reference Path)
Prerequisites
- SLC 5/05 CPU FW ≥ OS501 with 1747-EN2T FW ≥ 5.001.
- S7 CPU FW per table above with PUT/GET access enabled.
- ProSoft PLX31-EIP-SIE or PLX32-EIP-SIE gateway.
- ProSoft Configuration Builder (PCB) latest version.
- RSLogix 500 ≥ v9.0 with the matching 1747-EN2T AOP.
- TIA Portal (or STEP 7) for S7 side.
Step-by-Step
- Assign static IPs to all four devices (SLC + EN2T, S7 CPU, ProSoft, engineering PC). Avoid DHCP.
- In PCB, add the gateway. Configure the EtherNet/IP scanner side with the SLC's IP and define the input/output assembly (e.g., 20 INTs each direction).
- Configure the S7 side: ISO-on-TCP connection, local TSAP 03.00, remote TSAP 03.01, target DB100, byte offset 0, length 40 bytes.
- Download the configuration to the gateway. Verify with PCB's Diagnostics window that the EtherNet/IP connection is Open and the S7 connection is Established.
- In RSLogix 500, add the 1747-EN2T to the I/O tree with the same assembly sizes. The status bits indicate connection health.
- Add a CIP Generic MSG with service 0x4C (Read) and a CIP Generic MSG with service 0x4D (Write). Trigger the read on a slow timer (e.g., 100 ms), the write on a one-shot.
- In TIA Portal, monitor DB100. The values should mirror the SLC 500 tags N7:0..N7:19.
Configuration Procedure (OPC Reference Path)
- Install RSLinx Classic on the engineering PC. Add an EtherNet/IP driver. Browse to 192.168.0.10, 1747-EN2T/A, 1, 0. Confirm the SLC chassis is visible in RSWho.
- Install SIMATIC NET PC Software. Run Station Configuration Editor and add an S7-300 station. Set the connection to ISO-on-TCP, local TSAP 03.00, remote TSAP 03.01.
- Install an OPC DA or UA client (e.g., KEPware, Ignition, Matrikon OPC Explorer). Add both servers.
- Create a tag mapping:
SLC.N7:0↔S7.DB100.DBW0,SLC.N7:1↔S7.DB100.DBW2, etc. Set the update rate to 200 ms. - Confirm bidirectional flow with a tag-write from the OPC client and observing the destination PLC tag.
- Configure the OPC client as a Windows service (or run as a service via srvany/NSSM) so it auto-starts.
Verification
-
Layer 1-3 check:
pingthe SLC 500 (EN2T), the S7 CPU, and the gateway from the engineering PC. All must respond < 1 ms on a quiet LAN. - Server-side check: RSLinx RSWho shows the SLC 500 chassis. SIMATIC NET station configurator shows the S7 CPU Online with a green check.
- Bridge-side check: OPC client shows both servers with non-zero tag values. ProSoft PCB Diagnostics shows connections Open and Established.
- End-to-end check: Write a value from the SLC 500 (or change a process variable) and confirm the corresponding S7 DB byte updates within the expected scan time. Repeat in the opposite direction.
- Soak test: Run for 24-72 hours. Monitor the gateway's connection counter and the OPC client's quality codes. Look for "Bad" or "Uncertain" flags.
- Failover test: Cycle power on the bridge PC, gateway, and one PLC at a time. Verify auto-reconnect within 30 seconds.
Troubleshooting Matrix
| Symptom | Likely cause | Action |
|---|---|---|
| "Connection timed out" from gateway | Wrong IP/subnet, EN2T not in scanner table |
ping from PC; verify EN2T in I/O tree |
| "Class 3 connection failed" | SLC 500 OS < 5.01 or MSG path wrong | Update CPU firmware; correct CIP path |
| "TSAP error" on S7 | TSAP mismatch (rack/slot vs TSAP) | Local TSAP = 03.00, remote = 03.01 for S7-300 default |
| Random comm drops on OPC path | PC sleep/power settings, antivirus, NIC teaming | Disable NIC power management; whitelist RSLinx and SIMATIC NET in AV |
| High CPU on ProSoft gateway | Polling rate too aggressive | Increase poll interval; reduce tag count; lower RPI |
| OPC tags stuck on "Bad" | DCOM permissions on Windows | Use OPC UA endpoints; or run OPC client as a service with elevated identity |
| MSG error 16#0010 on SLC 500 | Target device offline or wrong path | Verify gateway online; check CIP path syntax |
| S7 SF LED on, "Connection refused" | PUT/GET access disabled in TIA | Enable "Permit access with PUT/GET" in CPU Protection |
| One-way only communication | Unidirectional assembly defined | Check ProSoft assembly configuration: both T→O and O→T required |
Selection Guidance
| Requirement | Recommended path |
|---|---|
| < 100 tags, non-time-critical, < 1 s update | OPC DA on a PC |
| < 100 tags, modern infrastructure, HA desired | OPC UA on Ignition or WinCC |
| 100-1000 tags, no PC allowed, deterministic | ProSoft PLX32-EIP-SIE with RPI 50 ms |
| High data rate, custom tag mapping, budget constrained | libnodave + EIPScanner service |
| Safety or SIL data | Do not bridge; use native CIP Safety or PROFIsafe |
Safety and Operating Constraints
- Do not route safety-rated signals (CIP Safety, PROFIsafe) over an OPC or generic protocol bridge. Use the native safety network and a safety-rated gateway if cross-vendor safety is required.
- Segment the bridge network with a firewall or VLAN. Both EtherNet/IP and S7 Communication have known unauthenticated read/write vulnerabilities on legacy firmware.
- Disable unused services on the gateway (HTTP, FTP, Telnet) and require a strong admin password.
- Use a dedicated NIC or VLAN for the bridge PC. Do not share the engineering network.
Key Standards and References
- ODVA CIP Networks Library, Volume 1 (Common Industrial Protocol) and Volume 2 (EtherNet/IP Adaptation of CIP).
- OPC Foundation: OPC UA Specification Parts 1-14 (IEC 62541).
- IEC 61158 (fieldbus) and IEC 61784 (profile sets) for CP/CP classification.
- Siemens SIMATIC NET S7 Programming Interface manual and the S7-1200/1500 Communication Function Manuals.
- Rockwell Automation 1747-EN2T User Manual (1747-UM013) and 1747-EN2T Installation Instructions (1747-IN010).
FAQ
Do two Ethernet-capable PLCs need a driver on each side to talk?
Yes. Ethernet is only the physical and data-link layer. S7 Communication (Siemens, ISO-on-TCP, TCP 102) and EtherNet/IP (CIP over TCP/UDP 44818, UDP 2222) are separate application-layer protocols. The two PLCs cannot exchange data without a translator, an OPC pair, or a purpose-built gateway such as the ProSoft PLX32-EIP-SIE.
What is the minimum SLC 500 firmware to issue MSG over EtherNet/IP?
SLC 5/05 CPU firmware OS501 (FRN 5.01) or later, paired with a 1747-EN2T firmware of 4.005 (CIP Generic) or 5.001 (CIP Tag / symbolic). Earlier OS levels can only poll via 1747-ENI as an adapter, which is not a scanner.
How fast can a ProSoft ProLinx bridge update 20 words between the SLC 500 and an S7-300?
With a 50 ms CIP RPI and a 100 ms S7 poll, expect 50-150 ms end-to-end per direction and 5-20 ms jitter. Lowering the RPI to 10 ms brings the round trip to 20-50 ms; verify CPU connection-resource headroom first.
Can OPC DA polling do real-time PID between an SLC 500 and an S7-1200?
No. OPC DA polling at 200-500 ms cannot sustain PID loops faster than 1-2 Hz. Use a ProSoft gateway with RPI ≤ 20 ms, or execute the PID entirely on one side and stream the setpoint/process variable at 10 Hz on the other side.
What TSAP should I use for a partner connection to an S7-300?
For an S7-300 default slot 2, the standard partner TSAPs are 03.00 (local) and 03.01 (remote) for an OP/PG-style S7 connection, or 03.02/03.03 for an S7 connection to another S7 CPU. For an S7-1200/1500, the local TSAP is the slot number (e.g., 01.00 for slot 1) and the partner is 03.01.
Can I share the same Ethernet switch between the S7 and SLC 500 networks?
Yes, on a single flat subnet, if both PLCs and the gateway are in the same broadcast domain. For larger plants, segment the bridge network with a managed switch and VLAN to isolate broadcast traffic and to apply ACLs against unauthorized CIP or S7 read/write traffic.