Overview: Open User Communication on S7-1500
Open User Communication (OUC) is the Siemens term for program-controlled, free-form Industrial Ethernet communication on the S7-1200, S7-1500, and S7-1500T CPU families. Unlike S7 communication, which is configured through connection partners in the TIA Portal device configuration, OUC is built by the application using instruction blocks such as TCON, TDISCON, TSEND, TRCV, TSEND_C, and TRCV_C. The blocks implement ISO-on-TCP (RFC 1006), TCP, and UDP transport on top of the CPU's integrated PROFINET / Industrial Ethernet interface, and on supported CP/CM modules.
For a S7-1500 CPU 1516-3 PN/DP, the published limits are:
- 128 connections via the integrated PROFINET/IE interfaces
- 256 total connections across the integrated interfaces and any connected CPs/CMs
- 10 connections reserved for ES, HMI, and the Web server
- 16 S7 routing paths
To communicate with 200 Allen-Bradley ControlLogix PLCs over OUC, the architecture must be expanded beyond the integrated-interface ceiling of 128. The standard practice is to add one or more CP 1543-1 (security / gateway module) or CM 1542-1 (PROFINET/IE communications module) to lift the cap toward 256, or to redesign the topology around fewer logical connections and external data concentrators.
TSEND_C and TRCV_C placed in the same network as a single TCON share that one connection. Placing them in separate networks, or using TSEND and TRCV without TCON, will each create a new connection and count against the total.Connection Resource Architecture
The S7-1500 manages a fixed pool of connection resources per CPU. The pool is shared by every active communication relationship: S7 connections, OUC, HMI, PG, Web server, OPC UA server, routing, and PROFINET IO. Connection resources are not a soft license; once exhausted, the next TCON request returns error status 0x80A1 (Connection resource already used) or 0x8085 (Connection already established) and the block reports it on the STATUS output.
| Resource Bucket | CPU 1516-3 PN/DP Limit | Configurable? |
|---|---|---|
| Total connections (integrated PN/IE + CP/CM) | 256 | No (fixed) |
| Connections via integrated interfaces | 128 | No (fixed) |
| Connections via CPs / CMs | 128 additional | Per CP/CM |
| Reserved for ES / HMI / Web | 10 | Partial (Web server can be disabled) |
| S7 routing paths | 16 | No |
| PG/OP communication | Yes | Enabled in properties |
| Open IE communication (OUC) | Yes | Enabled by default |
| Isochronous mode | Yes (PROFINET IO) | Per IO device |
| IRT (Isochronous Real-Time) | Yes | Per IO device |
The 10 connections reserved for ES, HMI, and Web server are part of the 128/256 budget. Disabling the Web server or reducing the number of HMI connections in the device configuration returns those slots to the general pool, but the ceiling itself does not move.
CPU 1516-3 PN/DP Technical Data
| Parameter | Value |
|---|---|
| Order number (MLFB) | 6ES7516-3AN02-0AB0 |
| Integrated interfaces | 2× PROFINET (X1, X2), 1× PROFIBUS (X3) |
| PROFINET X1 / X2 ports | 2-port switch each (RJ45) |
| Work memory (program) | 1 MB |
| Work memory (data) | 5 MB |
| Bit memory / timers / counters | 16 KB / 2,048 / 2,048 |
| Max. connection count | 256 (with CPs/CMs), 128 (integrated only) |
| Routing paths | 16 |
| PG / OP / S7 routing | Yes / Yes / Yes |
| Open IE / IRT / Isochronous | Yes / Yes / Yes |
| OPC UA server | Yes (firmware V2.6+) |
Always pull the exact values from the datasheet that matches the order number and firmware version of the installed CPU. Siemens revises the technical data sheet (TDS) without changing the MLFB; the same 6ES7516-3AN02-0AB0 has shipped with firmware V1.8, V2.0, V2.1, V2.5, V2.6, V2.8, V2.9, and V3.0, and the connection counts have been stable across this range for the integrated interfaces.
What Counts as a Connection?
Connection resources are tied to the TCON instance ID, not to individual TSEND or TRCV calls. A typical compact block placement looks like this:
// One TSEND_C and one TRCV_C share the same TCON
// connection - only ONE connection resource is used
TSEND_C(REQ := bTrigger,
ID := 1,
CONNECT := udtConnection_1);
// If you place TSEND_C and TRCV_C in different networks
// with the SAME ID, they still share the connection.
// With DIFFERENT IDs, each pair consumes its own resource.
TSEND_C(ID := 1, ...); // connection 1
TRCV_C (ID := 2, ...); // connection 2 - separate resource
Under the hood, the TSEND_C block instantiates an internal TCON, TSEND, and TRCV. The ID input selects the connection description (DB or TCON_IP_v4 UDT) and is also the resource handle that the CPU uses to track the active connection. Two rules govern this in practice:
-
Same
IDonTSEND_C/TRCV_Cpairs → one connection resource. -
Different
IDvalues → one resource per unique ID, regardless of whether the block isTSEND_C,TRCV_C, or aTCON+TSEND/TRCVcombination.
The 200 Allen-Bradley target translates directly to a need for 200 unique connection IDs, or a redesign of the communication strategy so that a single S7-1500 connection can carry data for many remote PLCs.
Locating the Connection Limit in the CPU Datasheet
The connection limit is not in the device manual; it is in the technical data sheet on the Siemens Industry Online Support portal. To find it:
- Note the order number on the front of the CPU (for example, 6ES7516-3AN02-0AB0).
- Open support.industry.siemens.com and search for the MLFB.
- Filter by "Manuals" → "Data sheet" (German: Datenblatt).
- Open the PDF and navigate to the section titled Communication → Number of connections.
The data sheet is authoritative. The TIA Portal hardware catalog also shows the value in the Properties → Communication tab of the CPU, but the data sheet is the source of truth for procurement and architecture decisions. TIA Portal V18 and later cross-link the catalog entry to the data sheet on the Industry Online Support portal.
Scaling to 200 Allen-Bradley ControlLogix PLCs
Three practical paths exist when the connection budget exceeds 128.
Option 1: Add a CP 1543-1 or CP 1542-1 Module
Both the CP 1543-1 and CM 1542-1 extend the connection count by up to 128 each. For an S7-1500 architecture, the CP 1543-1 is preferred when:
- A firewall / IP ACL is required between the plant network and the field network.
- The remote ControlLogix PLCs are on a separate subnet reachable only through a gateway.
- EtherNet/IP scanner functionality is needed to communicate natively with ControlLogix without using an OPC UA bridge or AOI on the AB side.
A single CPU 1516-3 PN/DP with one CP 1543-1 supports 128 (integrated) + 128 (CP) = 256 connections, of which 10 are reserved. That covers the 200-Allen-Bradley target with margin for HMI, PG, OPC UA, and S7 routing. A second CP 1543-1 does not double the budget; the CPU-level ceiling is 256.
| CP/CM Module | Order Number | Additional Connections | EtherNet/IP Scanner |
|---|---|---|---|
| CP 1543-1 | 6GK7543-1AX00-0XE0 | 128 | Optional (with GSD) |
| CM 1542-1 | 6GK7542-1AX00-0XE0 | 128 | No |
| CP 1545-1 | 6GK7545-1GX00-0XE0 | 128 | Yes |
Option 2: Distribute Across Multiple Integrated Interfaces
The CPU 1516-3 PN/DP has two PROFINET interfaces, X1 and X2, plus a PROFIBUS master on X3. However, the 128-connection budget for integrated interfaces is a CPU-wide total, not per port. Splitting traffic across X1 and X2 does not give 128 + 128 = 256; it gives 128 total. This option is useful for network isolation (cell network on X1, ControlLogix field network on X2) but does not lift the connection ceiling.
Option 3: Connection Multiplexing via Hub PLCs
When adding a CP is not viable, multiple S7-1500 or S7-1200 CPUs can be deployed as data concentrators, each holding 50–100 OUC connections to the ControlLogix fleet and publishing the aggregated data to a central S7-1500 over S7 communication (which counts only against the central CPU's S7 connection budget, not the OUC pool). For 200 ControlLogix PLCs, a typical arrangement is two hub S7-1200 CPUs (CPU 1215C or 1217C) each holding ~100 OUC connections, then one S7 connection from each hub to the central 1516-3 PN/DP. The central CPU sees two S7 connections, not 200.
| Approach | Connections on 1516-3 | Hardware Delta | Engineering Effort |
|---|---|---|---|
| Single 1516-3 with CP 1543-1 | 200 OUC + 10 reserved | +1 CP | Low |
| Two hub S7-1200s + central 1516-3 | 2 S7 + 10 reserved | +2 PLCs | Medium |
| Single 1516-3 with EtherNet/IP scanner on CP | 200 EtherNet/IP + 10 reserved | +1 CP | Medium (per-AB AOI) |
| Single 1516-3, integrated PN only | 128 OUC max | None | Insufficient for 200 PLCs |
Block Selection for OUC
The Siemens instruction library offers several OUC blocks; selection depends on whether the data is cyclic polled, event-driven, or a single-shot exchange.
| Block | Protocols | Use Case | Connections Used |
|---|---|---|---|
TSEND_C |
TCP / ISO-on-TCP / UDP | Compact send + receive pair | 1 per ID |
TRCV_C |
TCP / ISO-on-TCP / UDP | Compact receive (uses paired ID) | 0 (shared with TSEND_C) |
TCON |
All | Establish connection explicitly | 1 per ID |
TDISCON |
All | Tear down connection | 0 (releases a resource) |
TSEND |
TCP / ISO-on-TCP / UDP | Modular send on existing connection | 0 (uses TCON ID) |
TRCV |
TCP / ISO-on-TCP / UDP | Modular receive on existing connection | 0 (uses TCON ID) |
TMAIL_C |
SMTP | Email / SMS gateway via CP | 1 per ID |
TFTP |
UDP/TFTP | Recipe / firmware push | 1 per ID |
For Allen-Bradley ControlLogix communication, the practical choices are TSEND_C with TCP (MSG instruction on the AB side) or ISO-on-TCP, with the AB side programmed using the CIP MSG instruction and the EN2T or L8xER module. Some users report success with raw TCP and a custom AOI on the AB side; ISO-on-TCP is generally more robust across firmware revisions because it provides a connection-oriented, length-prefixed stream that matches the MSG-Read/Write CIP encapsulation better than raw TCP.
Connection Resource Diagnostics
Once the application is running, three tools reveal live connection usage.
- TIA Portal online → Diagnostics → Connection list. Shows every active connection, its type, partner, and state.
- Web server → Information → Connection resources. Visible on any S7-1500 with the Web server enabled. The summary view shows used vs. available connection resources in real time.
-
Diagnostic buffer (online → CPU → Online & diagnostics → Diagnostic buffer). Records connection establishment and teardown events with timestamp and the OUC block's
STATUSword.
Common error codes observed on a saturated connection pool:
| STATUS (hex) | Meaning | Action |
|---|---|---|
0x80A1 |
Connection resource already used (duplicate ID) | Audit TCON IDs; remove duplicate or release with TDISCON
|
0x8085 |
Connection already established | Check that TCON is not called twice on the same ID |
0x80C3 |
All connection resources in use | Add CP, free a resource, or reduce partner count |
0x80C4 |
Connection aborted by partner / network | Verify network, partner CPU state, and keep-alive |
0x80A7 |
Establishment rejected / partner unreachable | Check IP routing, ACLs, partner port state |
Programming Pattern for 1:Many OUC
When each ControlLogix PLC needs its own connection, a one-to-many pattern with an array of connection DBs and parameterized block calls is the cleanest approach. The example below uses a parameterized FC that builds a connection on demand. The number of unique ID values determines the connection count.
// Array of 200 connection descriptions in a global DB
DATA_BLOCK "gDB_ConnList"
STRUCT
sConn : ARRAY[1..200] OF TCON_IP_v4; // one per ControlLogix
END_STRUCT
END_DATA_BLOCK
// FC that opens a connection to a specific PLC index
FUNCTION "fcOpenConnection" : Void
VAR_INPUT
iPlcIndex : Int; // 1..200
bEnable : Bool;
END_VAR
VAR_TEMP
iStatus : Word;
END_VAR
BEGIN
TCON(REQ := bEnable,
ID := iPlcIndex, // unique 1..200
CONNECT := "gDB_ConnList".sConn[iPlcIndex],
DONE => , BUSY => , ERROR => ,
STATUS => iStatus);
END_FUNCTION
Each iPlcIndex consumes one connection resource. For 200 PLCs, set iPlcIndex := 1..200 and ensure the CPU has at least 210 connection resources available (200 OUC + 10 reserved). This is the boundary case that mandates the CP 1543-1.
Verification and Commissioning
- Pre-load check. In TIA Portal, right-click the CPU → Properties → Communication → Open the connection list view. Confirm that the configured number of connections is at or below the data sheet limit.
- Compile and download. TIA Portal will reject configurations that exceed the data sheet limit during compile; the online connection diagnostics reveal the real count after download.
-
Establish connections one by one. Walk the partner PLCs up sequentially and monitor the Web server → Connection resources view. A failed
TCONwill surface as a 0x80A1 or 0x80C3 STATUS in the diagnostic buffer. - Watch the diagnostic buffer. Set the CPU to capture all events in the diagnostic buffer. Repeated 0x80C3 entries are the most reliable signal that the connection budget is exhausted.
- Stress test. Cycle power on a partner PLC and confirm the S7-1500 re-establishes the OUC connection automatically. The 1516-3 PN/DP supports the keep-alive mechanism; tune the keep-alive timeout in the CPU properties if connections drop on a slow network.
Connection-Resource-Specific Errors and Resolutions
| Symptom | Likely Cause | Diagnostic Path | Resolution |
|---|---|---|---|
| TSEND_C reports STATUS = 80C3 | Connection resource pool exhausted | Web server connection resources view | Add CP 1543-1 or reduce partner count |
| TSEND_C reports STATUS = 80A1 | Duplicate connection ID | Cross-reference ID usage in TIA Portal | Renumber the conflicting ID |
| Connection drops after ~30 s idle | Partner is not sending keep-alive | Wireshark on the partner port | Enable keep-alive on the AB MSG instruction |
| Some connections work, others fail | Faulty physical port or VLAN mismatch | Check switch port counters, VLAN ID | Reconfigure switch port or VLAN |
| Compile error: "Number of connections exceeded" | Configured > data sheet limit | TIA Portal message | Reduce configured connections or select higher-capacity CPU |
Notes on OUC vs. Native EtherNet/IP
The CP 1543-1 with the EtherNet/IP scanner GSD can communicate with ControlLogix natively as a Class 3 or Class 1 CIP client, eliminating the need for MSG instructions on the AB side for routine polling. This does not change the connection resource count; each EtherNet/IP assembly instance still consumes one connection on the S7-1500 side. The benefit is simpler AOI design on the AB PLC, at the cost of a per-tag licensing model in the GSD. Verify the scanner's connection count limit on the CP — it is typically 64 connections for the CP 1543-1 in EtherNet/IP scanner mode, which would itself become the bottleneck for a 200-PLC deployment and require multiple CPs.
Reference Documentation
- Allocation of connection resources (S7-1500) – TIA Portal V20
- Basics of Open User Communication (S7-1200, S7-1500, S7-1500T)
- CP 1543-1 product page
- CM 1542-1 product page
- EtherNet/IP scanner GSD / Add-on instruction
Frequently Asked Questions
Does each TSEND_C block consume a separate connection on the S7-1500?
Each TSEND_C with a unique ID consumes one connection resource. A TSEND_C and a TRCV_C pair that share the same ID consume a single connection. 200 ControlLogix PLCs therefore require 200 unique IDs and 200 connection resources.
What is the maximum number of Open User Communication connections on a CPU 1516-3 PN/DP?
128 connections via the integrated PROFINET/IE interfaces, or 256 total when a CP/CM is added. Of these, 10 are reserved for ES, HMI, and the Web server, leaving 118 or 246 for OUC respectively. The data sheet for MLFB 6ES7516-3AN02-0AB0 is authoritative.
Can I add two CP 1543-1 modules to reach more than 256 connections?
No. The 256-connection ceiling is a CPU-level limit, not a per-CP limit. A second CP does not double the budget. To exceed 256, the CPU must be replaced with a higher model (for example, CPU 1518-4 PN/DP supports more) or the architecture must be redesigned with hub PLCs.
How can I see live connection usage on a running S7-1500?
Enable the Web server on the CPU, navigate to Information → Connection resources, and refresh. The same data is available in TIA Portal under Online & Diagnostics → Connection list. The diagnostic buffer records each TCON establish and disconnect event with a timestamp.
Is it better to use ISO-on-TCP or raw TCP for ControlLogix communication?
ISO-on-TCP (RFC 1006) is the more robust choice. It provides a length-prefixed, connection-oriented stream that aligns with the AB MSG instruction's CIP encapsulation. Raw TCP works for custom AOIs but adds responsibility for framing, keep-alive, and reconnection on the application side.