S7-1500 to ControlLogix Ethernet Communication Without a Gateway

David Krause14 min read
EtherNet/IPSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

Direct peer-to-peer Ethernet communication between a Siemens SIMATIC S7-1500 and an Allen-Bradley (Rockwell Automation) ControlLogix L6x/L7x/L8x processor is technically possible without any third-party protocol gateway. Three production-grade paths exist on a standard 10/100/1000 Mbit/s TCP/IP Ethernet network:

  1. EtherNet/IP scanner/adapter on the S7-1500 (firmware V2.5 and later for scanner, V2.6 for adapter in TIA Portal V15.1 and later) talking to a ControlLogix EtherNet/IP adapter on the 1756-EN2T or 1756-EN2TR module, or to the on-board port of an L8xE processor.
  2. Open User Communication (OUC) over ISO-on-TCP (RFC 1006), TCP, or UDP using the S7-1500 TSEND/TUSEND, TRCV/TURCV and TMAIL instructions on one side and a MSG instruction or socket API on the ControlLogix side.
  3. Modbus TCP using the S7-1500 MB_CLIENT/MB_SERVER instructions paired with a Modbus TCP-capable AOI or instruction on the ControlLogix side.

This reference covers each path with hardware prerequisites, TIA Portal and Studio 5000 configuration blocks, register/tag mapping, data-size limits, error codes, and a field-tested troubleshooting matrix.

Communication Path Comparison

Path Siemens Side AB Side Max Payload Cyclic / Acyclic CPU Load Failover
EtherNet/IP Scanner/Adapter S7-1500 FW ≥ 2.5 with EIP_SCANNER/EIP_ADAPTER FBs 1756-EN2T/R or L8xE on-board port ~480 bytes per direction (per CIP connection) Cyclic (RPI ≥ 1 ms) or acyclic Medium Connection-based, automatic reconnect
ISO-on-TCP (RFC 1006) / OUC S7-1500 PN port or CP 1543-1 1756-EN2T/R + CIP Generic MSG or socket AOI 32 000 bytes per call (TSEND_C) Acyclic Low Application-managed
TCP / UDP raw S7-1500 PN port with TSEND/TRCV 1756-EN2T/R with MSG over socket 8 192 bytes (TCP) / 1 472 bytes (UDP) Acyclic Low Application-managed
Modbus TCP S7-1500 with MB_CLIENT/MB_SERVER 1756-EN2T/R + Modbus TCP AOI 125 registers (250 bytes) / call Acyclic Low Application-managed
Critical hardware note for ControlLogix L6x and L7x: the original 1756-ENBT bridge module does not expose the TCP or UDP socket layer to user programs. To use OUC, Modbus TCP, or any custom socket-based protocol, the ControlLogix chassis must contain a 1756-EN2T or 1756-EN2TR module. The on-board Ethernet port of an L8xE, L82E, L83E, L85E, or any CompactLogix with an "E" suffix (e.g. 1769-L27ERM, 5069-L320ERM, 5380 CompactLogix) is fully usable for the same purpose without a separate communication module.

Path 1 — EtherNet/IP Scanner on S7-1500

The S7-1500 CPU family gained native EtherNet/IP connectivity through PROFINET/Ethernet-IP linkage. The integrated PROFINET interface of an S7-1511, S7-1513, S7-1515, S7-1516, S7-1517, S7-1518 or the rack-mounted S7-1505-S (CPU 1505 SP) supports the CIP (Common Industrial Protocol) layer and presents itself as a Class 1 EtherNet/IP scanner in TIA Portal V15.1 and later. Firmware prerequisites:

  • S7-1500 CPU firmware V2.5 or higher for EIP_SCANNER.
  • S7-1500 CPU firmware V2.6 or higher and TIA Portal V15.1 or higher for EIP_ADAPTER (so that an AB scanner can consume S7-1500 tags).
  • 1756-EN2T firmware V5.007 or higher recommended for stable Class 1 connections to third-party scanners.

Library blocks used from the "EtherNet/IP Scanner / Adapter" library in TIA Portal:

FB / FC Direction Purpose
EIP_SCANNER S7-1500 → AB adapter Establish CIP Class 1 connection, read/write assembly tags
EIP_ADAPTER S7-1500 ← AB scanner Advertise CIP connection from an AB scanner
EIP_CONNECT Both Build CIP session and connection handles
EIP_READ / EIP_WRITE Both CIP acyclic data record read/write

Reference Siemens entry 109739495 — Connecting S7-1200 / S7-1500 to a third-party EtherNet/IP device (Entry ID 108740380) for the canonical configuration walk-through and connection parameter spreadsheet.

Step-by-step: S7-1500 as Scanner to ControlLogix

  1. In TIA Portal, open Devices & Networks, add the S7-1500 CPU, drag the EtherNet/IP scanner from the catalog onto the PROFINET interface. Assign the scanner IP (e.g. 192.168.0.10/24).
  2. Add a ControlLogix station entry with IP 192.168.0.20/24, vendor ID 0x0001 (Rockwell Automation/Allen-Bradley), device type 0x000C (generic CIP adapter) or 0x000E (drive). For a 1756-EN2T, choose vendor 0x0001, device type 0x000E or the generic adapter type and supply the assembly instance numbers from the Studio 5000 project (Input 100, Output 101, Configuration 102, Heartbeat 199 are typical for explicit messaging only).
  3. Configure Connection parameters: RPI ≥ 5 ms (per practical field experience with non-Rockwell scanners), Output assembly (T→O) instance 101 length = number of bytes to write, Input assembly (O→T) instance 100 length = number of bytes to read, Configuration assembly 102 length 0, timeout multiplier 4, transport class 1.
  4. Map the assemblies to PLC tags of matching byte length (max 480 bytes per direction per CIP connection — the S7-1500 implementation limit observed on tested firmware V2.6 and V2.9). For larger payloads, instantiate multiple connections.
  5. Call EIP_SCANNER from OB1 (or a cyclic OB with the same scan time). Wire REQ to a one-shot trigger, supply CONNECTION_HANDLE from EIP_CONNECT, supply source/target buffers as VARIANT pointers (e.g. P#DB100.DBX0.0 BYTE 480).
  6. Download the project and observe the scanner status word (STATUS = 16#0000 when connected, non-zero CIP error otherwise).

Step-by-step: S7-1500 as Adapter to an AB Scanner

  1. Add the S7-1500 CPU and on the same PROFINET interface, switch the role to EtherNet/IP adapter. TIA Portal will create a default CIP assembly template with instances 100 (input), 101 (output), 102 (configuration).
  2. Resize the assembly lengths to match the application. The library enforces a 480-byte ceiling per direction.
  3. Export the EDS file (or vendor ID + device type + instance numbers) and import it into Studio 5000 via EDS Hardware Installation Tool.
  4. In Studio 5000, add a new Ethernet Module under the 1756-EN2T or L8xE backplane. Pick the imported EDS, set Connection Parameters: Input = instance 101 (data S7 sends), Output = instance 100 (data S7 receives), Configuration = instance 102, RPI = 50 ms starting point.
  5. Use the generated I/O tags (e.g. I_Scanner:I, O_Scanner:O) in ladder or AOI logic.
Field note: Siemens reports the scanner role as production-proven. The adapter role is supported but listed as "not yet fully tested" by Siemens pre-sales. For new designs where data direction is heavily skewed (e.g. AB is the master controller with many slaves), prefer keeping the S7-1500 as the scanner and the ControlLogix as the adapter.

Path 2 — Open User Communication (OUC) over ISO-on-TCP / TCP / UDP

Open User Communication is the legacy Siemens term for socket-style communication that does not require an additional CP module on the S7-1500 side. The on-board PN interface of every S7-1500 CPU (and S7-1200 V4.0+) supports it natively. The blocks involved are summarised below:

Instruction Protocol Function Max Length
TSEND_C TCP / ISO-on-TCP Send + connect management 32 000 bytes
TRCV_C TCP / ISO-on-TCP Receive + connect management 32 000 bytes
TSEND TCP / ISO-on-TCP / UDP Send only 8 192 bytes
TRCV TCP / ISO-on-TCP / UDP Receive only 8 192 bytes
TUSEND UDP Send datagram 1 472 bytes
TURCV UDP Receive datagram 1 472 bytes
TCON All Establish connection
TDISCON All Terminate connection

On the ControlLogix side, a MSG instruction with Service = SOCKET_CREATE / SOCKET_ACCEPT / SOCKET_SEND / SOCKET_RECV / SOCKET_CLOSE (CIP Sync, requires 1756-EN2T firmware V5.011+ for full SOCKET services) handles the equivalent function. For older 1756-EN2T firmware, write your own socket AOI using the Socket_Open instance or use third-party AOI bundles such as the public Rockwell sample "Socket Messaging AOI".

TIA Portal OUC Configuration

  1. In Devices & Networks > S7-1500 > Properties > Ethernet addresses, enable Use router only if the AB device is on a different subnet.
  2. Insert the desired instruction (TSEND_C + TRCV_C) into a function block such as FB100 "OUC_AB_Comms".
  3. Right-click on the CONNECT pin → Connection propertiesPartner. Specify Partner IP (e.g. 192.168.0.20), Partner port (e.g. 2000), Local port (e.g. 2001), Connection type = ISO-on-TCP for parity with legacy AB integration, or TCP if the AB side uses CIP socket or a TCP-capable AOI.
  4. Set TSAPs: Local TSAP = 10.00 hex is the S7 default; for AB use the equivalent CIP path or AOI convention (the TSAP bytes are sent but AB MSG-based sockets ignore them).
  5. Map send/receive buffers to DBs. Example: P#DB101.DBX0.0 BYTE 256.
  6. Run TSEND_C in OB1 (rising edge on REQ to send). Place TRCV_C in OB1 with EN_R = TRUE for continuous receive.

Studio 5000 OUC Configuration

  1. Confirm the 1756-EN2T module is in the chassis, double-click → Connection tab → verify IP Address matches the partner IP entered on the S7 side.
  2. Create an AOI or a routine containing ladder logic for the MSG instruction with the SOCKET service class. A skeleton:
MSG(SocketService := SOCKET_CREATE,
      SocketInstance := SocketInst,
      Server := 0,                // 0 = client mode
      RemotePort := 2001,
      RemoteAddress := '192.168.0.10',
      LocalPort := 2000,
      Status => MsgStatus);
  1. On a successful create, perform SOCKET_SEND with the byte payload as the SourceBuffer. For each poll cycle, perform SOCKET_RECV and copy the received buffer into a tag of matching length. Close the socket only on shutdown.
  2. If your 1756-EN2T firmware does not expose SOCKET services, use the CIP Generic MSG against a CIP path of the AB-side Ethernet module with service 0x4C (CIP encapsulation socket open) — see EN2T user manual Rev. 1756-UM540.

Reference OUC Example for HMI Integration

The AutomationDirect C-more HMI setup guide for Siemens Ethernet ISO over TCP/IP (S7-1200 or S7-1500) documents the equivalent connection parameters (port 102, TSAP 10.00 / 10.01) and is useful for sanity-checking the TIA side of any ISO-on-TCP socket between an S7-1500 and a third-party device.

Path 3 — Modbus TCP

Modbus TCP is the lowest-friction option when both vendors are accepted but the firmware revision of the ControlLogix is not known. Siemens S7-1500 provides the MB_CLIENT and MB_SERVER instructions (under Communication > Modbus TCP) natively on every firmware V1.7+ CPU. The ControlLogix side requires either a Rockwell-published AOI ("Modbus TCP AOI") or a vendor AOI from Prosoft, HMS, or Red Lion. For systems where neither AOI can be added, fall back to OUC.

  1. Add MB_CLIENT to the S7-1500 program. MB_Unit_ID = 255 for TCP, REQ pulsed, MB_DB_ADDR = the Modbus function code (16#03 = read holding registers, 16#06 = write single, 16#10 = write multiple).
  2. Set Connect_ID unique (1, 2, 3...), IP address 192.168.0.20, port 502.
  3. Map MB_DATA_PTR to a global DB of WORD registers. Each Modbus register consumes one WORD in the Siemens DB, while each AB-side SINT/INT/DINT needs explicit byte-swap consideration (Modbus is big-endian, ControlLogix is little-endian).
  4. Verify with the standard Modbus diagnostic DONE, BUSY, and ERROR outputs.

Hardware & Firmware Prerequisites

Component Minimum Revision Notes
S7-1500 CPU (any PN model) Firmware V2.5 Required for EtherNet/IP scanner FBs
S7-1500 CPU (adapter role) Firmware V2.6 + TIA V15.1 Required to expose CIP adapter assemblies
ControlLogix 1756-EN2T Firmware V5.007 Native socket services V5.011+
ControlLogix 1756-EN2TR Firmware V5.011 DLR ring-topology capable
ControlLogix 1756-ENBT Not suitable for OUC/Modbus TCP/Scanner from user program
L8xE on-board port Firmware V28+ Direct socket support, no EN2T required
CompactLogix L27ERM / L3xERM / L4x Firmware V20+ On-board Ethernet usable for socket comms
TIA Portal V15.1 Includes EIP scanner/adapter blocks
Studio 5000 Logix Designer V30+ EDS Hardware Installation Tool support

Data Layout & Byte Order

Every byte transferred between the two controllers requires attention to two distinct ordering conventions:

  • Siemens S7-1500: Big-endian at the bit and byte level, but the on-board PROFINET stack is little-endian for CIP and ISO-on-TCP payloads. Use SWAP instructions or WORD_TO_INT for explicit conversion.
  • Allen-Bradley ControlLogix: Little-endian throughout. Tags of type SINT[], INT[], and DINT[] consume memory in low-to-high byte order.

When mapping a Siemens WORD to an AB INT, a single SWAP on the Siemens side or a SWAP_INT AOI on the AB side normalises the value. When mapping a Siemens REAL (DWORD) to an AB REAL (32-bit float), the same SWAP operation is required because the IEEE 754 byte order differs.

Performance & Throughput

Path Typical Update Time (100 bytes) CPU Overhead
Determinism
EtherNet/IP scanner 5–20 ms (RPI 5–10 ms) Low (1 ms per call) High
ISO-on-TCP TSEND_C 20–50 ms (OB1 cycle) Very low Medium
Modbus TCP 30–100 ms Low Low
UDP TUSEND/TURCV 5–15 ms Very low None (loss possible)
UDP caveat: UDP provides no acknowledgement. Use only for non-critical data such as telemetry or heartbeat counters. The S7-1500 PN port typically supports up to 8 simultaneous UDP/TCP connections per CPU; exceeding this number causes TMAIL_STATUS to return 16#80C0 "No resources available".

Verification Steps

  1. Layer 1 / 2: confirm physical link (green/yellow LEDs on both PN ports).
  2. Layer 3: ping both controllers from a maintenance laptop. On the S7-1500 use Online & Diagnostics > Functions > Ping; on the ControlLogix use Studio 5000 > RSLinx Classic > Ethernet Devices > Browse.
  3. Layer 4: from a maintenance laptop run telnet <ControlLogix IP> 2000 to verify the AB-side socket port is reachable (only valid for OUC path).
  4. Application: insert a 4-byte counter in both projects. Force a known value on the source, observe it on the destination within one RPI/poll cycle.
  5. Diagnostics: S7-1500 TSEND_C.STATUS = 16#0000, DONE = TRUE pulse on success. ControlLogix MSG instruction .ER = 0, .DN = 1 on completion. For EtherNet/IP scanner, watch the STATUS output of EIP_SCANNER: 16#0000 = running, 16#FF01 = not connected, 16#FF02 = connection timeout.

Troubleshooting Matrix

Symptom Likely Cause Diagnostic Remedy
Ping fails in one direction Firewall on EN2T, ACL on managed switch Try ping in both directions from each device Enable ICMP on the EN2T (Studio 5000 module properties > Port Configuration > Allow ICMP Echo). Disable ACL on switch port.
TSEND_C.STATUS = 16#80C4 Partner unreachable / partner port closed Check AB MSG EN bit, AB SocketStatus tag Open the partner port on the AB side. Verify Local Port and Partner Port values are not both 0.
EIP_SCANNER STATUS = 16#FF02 Connection timeout, wrong assembly instance Check CIP connection in Studio 5000 > Connected Components Workbench or RSWho Re-check Input/Output instance numbers match the AB adapter configuration. Verify RPI is not zero.
Data appears byte-swapped Endianness mismatch Compare hex dump from both sides using Wireshark Apply SWAP on Siemens side or SWAP_INT/SWAP_REAL AOI on AB side.
Modbus MB_CLIENT ERROR = 16#80A8 Gateway / TCP error Wireshark capture on port 502 Verify the AB-side Modbus server is listening (open Modbus TCP AOI must be running in OB1 / periodic task).
MSG instruction stuck with .EN = 1 but .ER = 1 CIP path invalid Inspect Communication tab of MSG Set CIP path to EN2T,2,192.168.0.20,1,0 for direct socket service.
ENBT-only chassis, no OUC support ENBT does not expose socket layer Replace ENBT with EN2T or EN2TR; alternatively move to CompactLogix with on-board port.
S7-1500 adapter not appearing in RSWho Firmware too old, EDS missing EDS Hardware Installation Tool Update S7-1500 firmware to V2.6+, regenerate and install EDS.
Intermittent disconnects with CPU red SF LED CIP RPI too aggressive for non-Rockwell scanner Reduce RPI to 20 ms, raise timeout multiplier Set RPI to 20 ms, timeout multiplier to 4 (4× RPI), check Electronic Keying set to Compatible on AB side.

Safety-Critical Considerations

  • F-CPU limitation: if the S7-1500 is a failsafe CPU (S7-1515F, S7-1516F, S7-1517F, S7-1518F), only Open User Communication (OUC) is permitted for safety-relevant data exchange. EtherNet/IP scanner/adapter FBs are not safety-rated and cannot be used to transmit F-runtime data. The CP 1543-1 industrial Ethernet security module also supports OUC with ISO-on-TCP and TCP.
  • Network isolation: place the Siemens and Allen-Bradley subnets behind a managed switch with port security. Disable LLDP on the AB side (or the S7 PROFINET interface will mis-interpret LLDP frames and log a "link-up/link-down" storm).
  • CPU redundancy: H-CPU firmware does not change any of the OUC block calls but be aware that the connection ID may shift after a redundancy switchover; re-trigger the TCON instance in OB72.

Recommended Path by Application

  • High-speed I/O mirror (≤ 480 bytes, ≤ 10 ms): EtherNet/IP scanner/adapter, S7-1500 FW V2.6+.
  • Large block data exchange, recipe transfer, fault logs: ISO-on-TCP OUC with TSEND_C / TRCV_C.
  • Mixed fleet, brownfield, unfamiliar firmware: Modbus TCP with vendor AOIs.
  • Best-effort telemetry, heartbeats, HMI traffic: UDP TSEND/TURCV.

FAQ

Do I need a gateway between an S7-1500 and a ControlLogix?

No. A direct Ethernet link works for EtherNet/IP (S7-1500 FW V2.5+ scanner, V2.6+ adapter), Open User Communication over ISO-on-TCP/TCP/UDP, and Modbus TCP. Gateways from Anybus, Hilscher, Prosoft, or Red Lion are only required when the firmware revision of either controller cannot be updated or when one side lacks the appropriate protocol stack.

Why does my 1756-ENBT not accept MSG socket instructions?

The 1756-ENBT is a bridge module; its firmware does not expose the TCP/UDP socket services to user programs. Replace it with a 1756-EN2T (firmware V5.007+) or 1756-EN2TR (firmware V5.011+) to enable SOCKET_CREATE, SOCKET_SEND, SOCKET_RECV and SOCKET_CLOSE CIP services. L8xE and CompactLogix-E processors have a usable on-board Ethernet port and do not require an extra module.

What is the maximum payload size between an S7-1500 and ControlLogix?

For EtherNet/IP, the S7-1500 implementation is limited to approximately 480 bytes per direction per CIP Class 1 connection. ISO-on-TCP TSEND_C supports up to 32 000 bytes per call; TCP TSEND supports up to 8 192 bytes; UDP TUSEND/TURCV supports up to 1 472 bytes. Modbus TCP supports up to 125 holding registers (250 bytes) per request.

Can an S7-1500F exchange failsafe data with ControlLogix GuardLogix?

No. CIP Safety is a separate stack and is not implemented on the S7-1500F EtherNet/IP blocks. Use PROFIsafe on PROFINET for F-CPU to F-CPU communication, or a third-party safety gateway. OUC with non-safety protocols can still be used for non-safety status reporting between an F-CPU and a ControlLogix.

Which TIA Portal version first added EtherNet/IP scanner/adapter support?

TIA Portal V15.1 with S7-1500 CPU firmware V2.5 added the scanner role; firmware V2.6 and TIA V15.1 added the adapter role. Siemens Entry ID 108740380 documents the full configuration procedure including the EDS export for third-party scanners such as ControlLogix with 1756-EN2T/R or L8xE processors.

Back to blog