Connecting Multiple WinCC Runtime Clients to a Siemens S7-1500
WinCC Runtime Advanced and WinCC Runtime Professional both support concurrent HMI connections to a single SIMATIC S7-1500 CPU. A common engineering task is to install the same WinCC Runtime project on two physical PCs (or a PC and a Panel) and have both clients communicate with one PLC. This reference covers the connection topology, the per-CPU HMI connection budgets, the TIA Portal configuration required to duplicate an HMI station, and the S7-1500-side diagnostics that expose how many clients are currently online.
1. Topology Overview
Two physical HMI stations can connect to a single S7-1500 over the SIMATIC S7-1200, S7-1500 Channel (channel name SIMATIC S7-1200, S7-1500 Channel). The channel uses the S7-1500 PG/OP protocol on top of ISO-on-TCP (RFC1006) or TCP, and each client establishes an independent PG/HMI connection resource on the CPU. From the PLC's perspective, each HMI consumes one of the available HMI connections defined in the CPU's connection resources (formerly called "OP connections").
Both PCs are independent clients with unique IP addresses. The PLC must have enough HMI connection resources to handle both clients in parallel plus any PG, OPC UA, S7, or Open User Communication sessions currently active.
2. S7-1500 HMI Connection Budget by CPU
Each S7-1500 CPU has a fixed maximum number of HMI (OP) connections. Exceeding this number causes new connection attempts to be rejected and the HMI displays "Connection failed: Maximum number of connections reached." The following table summarizes the most common CPU types; always verify against the current manual for the exact catalog number in use.
| CPU family | Typical MLFB example | Max HMI/OP connections | Max PG connections | Max S7 connections |
|---|---|---|---|---|
| CPU 1511-1 PN | 6ES7511-1AK02-0AB0 | 10 | 2 (configurable up to 4) | 16 |
| CPU 1513-1 PN | 6ES7513-1AL02-0AB0 | 10 | 4 | 16 |
| CPU 1515-2 PN | 6ES7515-2AM02-0AB0 | 14 | 4 | 32 |
| CPU 1516-3 PN/DP | 6ES7516-3AN02-0AB0 | 14 | 4 | 32 |
| CPU 1517-3 PN/DP | 6ES7517-3AP00-0AB0 | 14 | 4 | 64 |
| CPU 1518-4 PN/DP | 6ES7518-4AP00-0AB0 | 14 | 4 | 64 |
| CPU 1511C-1 PN | 6ES7511-1CK00-0AB0 | 6 | 2 | 16 |
| ET 200SP CPU 1510SP-1 PN | 6ES7510-1DJ01-0AB0 | 6 | 2 | 16 |
For two WinCC Runtime clients you need at least 2 dedicated HMI connections. Reserve additional resources for engineering (PG), OPC UA servers, and any S7 routing used during commissioning.
3. Configuring Two HMI Stations in One TIA Portal Project
The recommended approach is to add both HMI devices to the same TIA Portal project, even when the runtime files will be deployed to two different PCs. The project becomes the single source of truth; only the PG/PC interface and the HMI device's IP address differ at download time.
3.1 Prerequisites
- TIA Portal V16 or later (V20 recommended for the latest S7-1500 CPUs).
- S7-1500 CPU with GSD/GSDML installed and a configured PROFINET subnet.
- Two PC systems with WinCC Runtime Advanced or Professional installed.
- Each PC assigned a unique static IP address on the same subnet as the CPU.
3.2 Step-by-Step Procedure
- Open the TIA Portal project containing the S7-1500 station.
- In the project tree, choose Add new device > HMI > WinCC Runtime Advanced (or Professional). Add the first HMI station; configure the connection to the S7-1500 and the IP address of PC #1 in the HMI device configuration under Properties > General > PROFINET interface.
- Complete the HMI screens, tag connections, alarms, and area pointer configuration for the first HMI.
- Right-click the HMI station in the project tree and choose Duplicate (or use copy → paste). TIA Portal duplicates the entire HMI configuration, including the connection to the PLC.
- Open the second HMI's device configuration and change its PROFINET IP to PC #2's address. The PLC connection path remains identical because the target CPU is the same device.
- In the second HMI's connection properties, verify that the partner (PLC) IP matches the S7-1500 CPU's PROFINET address. Set the access point to
S7ONLINEfor TCP/IP routing, or to the explicit PROFINET interface if used. - For runtime transfer, configure each HMI station's PG/PC interface to point at the corresponding physical Ethernet adapter of its target PC.
- Compile each HMI station separately, then download to its dedicated PC. Use Project > Download to device with the appropriate target visible.
Reference: Creating a connection (RT Advanced) — WinCC, TIA Portal V20 documentation.
3.3 What the Runtime Will and Will Not Differentiate
Both HMIs run the same project image, so they share tag names, screen IDs, alarm IDs, and the connection partner. From the PLC's point of view, the two HMI connections appear as two independent sessions identified by the client IP and the S7 connection resource ID. If you need per-client behavior (for example, station-specific user logins, station-specific user rights, or per-panel recipe views), use PLC-side logic to discriminate, as described in Section 5.
4. PLC-Side Visibility of Active HMI Connections
The S7-1500 does not expose a single tag that returns "how many HMIs are connected right now," but it does expose everything required to derive that number deterministically. There are three practical mechanisms, listed in order of recommendation.
4.1 Method A — Connection Resource Diagnostics Blocks
The instruction RD_SINFO reads the start information of OB 100, OB 101, or the current OB, but it does not enumerate HMI connections. For HMI connection status, use the system blocks and constants exposed in the S7-1500 system data:
- Diagnostics in the online view of the device: Online & diagnostics > Connections shows every active PG/HMI/S7/OPC UA connection, its local ID, type, and partner address. Use this during commissioning only; it is not a runtime tag.
-
Connection diagnostics via
STATUSin the user program: the system functionTCON,TDISCON, and the HMI connection status can be polled withSTATUSof the configured HMI connection. Each HMI connection can be queried with its connection ID.
4.2 Method B — Area Pointer "Coordination"
The Coordination area pointer is the most reliable, deterministic mechanism. It is a dual-bit handshake in the PLC memory that each HMI client toggles once per second. The PLC counts the number of toggling bits per cycle to determine which HMIs are alive.
- In the TIA Portal HMI connection editor, open the connection to the S7-1500 and select Area pointer.
- Enable the Coordination area pointer and assign a unique DB and byte offset for each HMI station. For HMI #1 use DB 100 DBX 0.0; for HMI #2 use DB 100 DBX 1.0 (or any other two bits in the same or different DBs).
- Download the configuration to both WinCC Runtime PCs. At runtime, each WinCC client toggles its assigned bit at a 1 Hz cadence.
- In the S7-1500 program, monitor the two bits and increment/decrement a counter.
Example SCL code in the PLC to count active HMI stations:
// SCL in OB1 or cyclic OB
// Inputs: bHMI1Coord AT %I0.0 : BOOL; // Coordination bit for HMI #1
// bHMI2Coord AT %I0.1 : BOOL; // Coordination bit for HMI #2
// Outputs: iHmiCount : INT; // Number of active HMIs
// bHMI1Online : BOOL; // Edge-detected status HMI #1
// bHMI2Online : BOOL; // Edge-detected status HMI #2
// Edge detection: an HMI is considered online if a toggle is seen
// within the last 3 seconds.
IF bHMI1Coord AND NOT bHMI1CoordPrev THEN
bHMI1Online := TRUE;
tHMI1LastToggle := TIME();
END_IF;
bHMI1CoordPrev := bHMI1Coord;
IF bHMI2Coord AND NOT bHMI2CoordPrev THEN
bHMI2Online := TRUE;
tHMI2LastToggle := TIME();
END_IF;
bHMI2CoordPrev := bHMI2Coord;
// Timeout: 3 seconds without a toggle ⇒ HMI considered offline
IF (TIME() - tHMI1LastToggle) > T#3s THEN bHMI1Online := FALSE; END_IF;
IF (TIME() - tHMI2LastToggle) > T#3s THEN bHMI2Online := FALSE; END_IF;
iHmiCount := BOOL_TO_INT(bHMI1Online) + BOOL_TO_INT(bHMI2Online);
Alternative: simply use the current bit value and a watch window in TIA Portal to verify. The Coordination bit is high for 1 s and low for 1 s, so it appears as a 0.5 Hz square wave at the PLC when the HMI is online and as a constant zero when offline.
4.3 Method C — Per-Connection Life-Bit via a Custom Area Pointer or a Periodic Tag
If you cannot use the Coordination area pointer (for example, when the HMI is a third-party OPC UA client, not WinCC), implement your own heartbeat:
- On the HMI, schedule a VBScript or C-script that toggles a dedicated PLC bit every 500 ms:
' VBScript on the HMI (WinCC RT Advanced, scheduler @ 500 ms)
Dim tagName, bitValue
tagName = "HMI_Heartbeat_HMI1"
bitValue = SmartTags(tagName) ' current value
SmartTags(tagName) = NOT CBool(bitValue) ' toggle
- On the PLC, run the same edge-detect + 3-second timeout logic shown in Method B.
This is the approach recommended by the field report when the HMI has a built-in connection health check: HMI runs a function that polls a "healthy" bit in the PLC, and if no feedback arrives within 3–5 s, the HMI raises a connection-lost alarm. The same pattern can be inverted to expose HMI health to the PLC.
5. Differentiating Between HMI Stations in the PLC
With both HMIs sharing the same connection path, the PLC must use a unique resource per station if it needs to distinguish them. Practical mechanisms:
| Mechanism | Per-station key | Limitations |
|---|---|---|
| Coordination area pointer | Unique bit in the coordination DB | 1-bit heartbeat only; no data exchange |
| Project ID area pointer | Unique DB offset per station | Returns WinCC project version; not user-defined |
| Tag-prefix in HMI | HMI #1 writes a constant 1, HMI #2 writes 2 to a known tag | Requires unique HMI tag and a write trigger |
| Source IP from the connection | Inspect with TCON partner IP |
Complex; not all HMI drivers expose it to the PLC |
| PlcID/User in WinCC user administration | WinCC variable @CurrentUser in the PLC script |
Requires SIMATIC Logon and user roles |
For most small installations, the Coordination area pointer plus a "station ID" tag written once at HMI startup is the cleanest solution.
6. Connection Health Monitoring and System Alarms
WinCC Runtime raises a built-in system alarm whenever the connection to the PLC is interrupted. The default alarm text is "Connection to PLC failed" with alarm number 140002 in WinCC V7 and 190200 in TIA Portal HMI alarms. You do not need a script to detect a connection loss; you can subscribe to the system alarm and forward its state to the PLC using a tag.
To forward the alarm state to the PLC, enable the System events in the HMI alarms editor and add a tag-based acknowledgement in the PLC. A simple ladder equivalent:
// STL pseudo-code on the PLC
A "HMI1_ConnFault" // HMI #1 system alarm tag (BOOL)
S "HMI1_AlarmAck" // latched acknowledgement
// timeout: clear after 5s with self-reset
Reference: WinCC Connection to S7-1500, S7-1200 and ET 200SP — Siemens Industry Online Support, ID 101908495.
7. Common Configuration Errors and Fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Second HMI shows "Connection failed" immediately at startup | CPU reached max HMI connection count; or HMI PG/PC interface points at the wrong NIC | Verify CPU connection resources in TIA Portal device properties. Set PG/PC interface to the correct LAN adapter. |
| Both HMIs connect but the Coordination bit never toggles | Coordination area pointer not enabled in the HMI connection | Open the connection → Area pointer → enable Coordination and assign unique offsets |
| HMI #1 toggles, HMI #2 toggles the same bit | Same DB offset assigned to both HMIs | Assign different byte/bit offsets per HMI in the area pointer |
| PLC connection count reads 0 even though both WinCC Runtimes are running | Using PG/UART or wrong connection resource query | Use Coordination area pointer; do not rely on PLC connection count, which is a static configuration property, not a live diagnostic |
| WinCC V7 project cannot find the S7-1500 | Missing S7-1200/S7-1500 Channel license or wrong channel assignment | Add the channel in WinCC V7: Variable Management > Add new driver > SIMATIC S7-1200, S7-1500 Channel |
| Intermittent dropouts on a heavily loaded CPU | HMI update rate too aggressive (250 ms) plus OPC UA traffic | Increase HMI acquisition cycle to 500–1000 ms; reduce unsolicited event load |
8. WinCC V7 vs. WinCC Runtime Advanced — Differences in Multi-Client Setup
| Feature | WinCC V7 / WinCC Professional | WinCC Runtime Advanced |
|---|---|---|
| Channel name | SIMATIC S7-1200, S7-1500 Channel | S7-1500 integrated connection |
| Connection config location | Variable Management → Driver | Connections editor of the HMI device |
| Coordination area pointer | Available in connection properties | Available in connection properties |
| Project ID area pointer | Available | Available |
| Number of clients supported by one project | One project can host multiple server-client pairs; each client must be configured as a server in the project | One runtime instance per HMI device in TIA Portal; duplicate the HMI for each PC |
| Typical use case | Large multi-station SCADA with redundant servers | Single-machine HMI duplicated across operator stations |
For the two-PC scenario described in the field report, both products support it. WinCC Runtime Advanced is the simpler choice because the HMI can be duplicated inside the same TIA Portal project without writing additional server/client logic.
9. Verification Procedure
- Download the project to both PCs.
- On the PLC, open Online & diagnostics > Connections and confirm two HMI connections are listed with different partner IPs.
- In the PLC, watch the two Coordination bits in the configured DB; each should toggle at 0.5 Hz.
- Shut down WinCC Runtime on PC #1; the corresponding bit on the PLC should fall to 0 within 3 seconds and the HMI count should decrement to 1.
- Restart PC #1; the bit resumes toggling and the count returns to 2.
- Trigger a fault (pull the network cable from PC #2); confirm a system alarm appears on PC #2 and the HMI #2 status changes to offline on the PLC.
10. Field-Proven Recommendations
- Always configure two distinct Coordination area pointers, one per HMI, instead of a single shared one. The Coordination bit is intended to be per-client.
- Reserve a 3–5 second timeout in the PLC to filter out short network blips; shorter timeouts generate false offline alarms.
- Document the HMI connection ID of each station in the TIA Portal project comment; the ID appears in the online connection list and is useful for support cases.
- When migrating from WinCC V7 to TIA Portal, re-create the connections with the SIMATIC S7-1200, S7-1500 Channel. The older S7 Channel for S7-300/400 cannot be used with the S7-1500.
- For CPU firmware ≥ V2.9, the SIMATIC S7-1200/S7-1500 Channel supports symbol-based access with the "Create structure" button for PLC UDTs — see the PDF WinCC Communication to S7-1500, S7-1200 and ET 200SP (PDF, ID 101908495) for the supported field names and data types.
FAQ
Can a single WinCC Runtime project be installed on two different PCs and connect to the same S7-1500?
Yes. Configure the same HMI device twice in the TIA Portal project (Project tree → right-click HMI → Duplicate), assign each duplicate a unique IP address for its PROFINET interface, and download each to its dedicated PC. Both will run independently and consume one HMI connection resource each on the CPU.
How many HMI connections does an S7-1500 support?
It depends on the CPU. CPU 1511/1513 support up to 10 HMI/OP connections, CPU 1515/1516/1517/1518 support up to 14, and the compact CPUs (1511C, ET 200SP CPU 1510SP) support up to 6. The exact figure is in the CPU's device manual under "Connection resources."
Is there a built-in tag in the S7-1500 that returns the number of active HMI clients?
No single system tag exists for this. Use the Coordination area pointer and count the bits that are toggling within a defined timeout. The example SCL code in Section 4.2 shows a 3-second timeout and a counter that returns the active HMI count.
What happens if the S7-1500 has no free HMI connection resources?
New connection attempts are rejected and the WinCC Runtime shows a "Connection to PLC failed" system alarm. The error is logged in the S7-1500 diagnostics buffer as event ID 0x0194 ("No resources available"). Reduce concurrent PG/HMI/OPC UA sessions or upgrade to a CPU with a larger connection budget.
Does WinCC Runtime need a separate license per HMI station?
WinCC Runtime Advanced is licensed per tag count, not per connection or per station, so the license is identical for one or two stations as long as the tag count is unchanged. WinCC Professional and WinCC V7 are typically licensed per operator station; check the SIEMENS AG price list for the exact model numbers (e.g., 6AV2105-xxxxx-xxxx for RT Advanced, 6AV2110-xxxxx-xxxx for RT Professional).