Problem Overview
AVEVA (formerly Wonderware) InTouch HMI/SCADA stations intermittently stop fetching process data from Siemens SIMATIC S7 controllers (S7-300, S7-400, S7-1200, S7-1500, and S7-200). The HMI runtime appears healthy, alarms still fire on local logic, but tag values freeze on screen and historical logs record constant values. In multi-node deployments with several InTouch stations polling the same PLC pool, the failure often correlates with a recently added HMI client, a polling-rate change, or a cabling swap.
The root cause is almost always one of three issues:
- S7 CPU connection-resource exhaustion – the PLC has reached its maximum number of simultaneous S7 or PG/OP connections.
- Ethernet physical-layer problems – marginal cabling (CAT-5 runs installed where CAT-6/CAT-7 is required by the environment) causing late collisions, retransmits, and TCP timeouts on the S7 protocol (ISO-on-TCP / RFC 1006 / S7 Comm).
- Driver/architecture mismatch – the wrong DAServer (SIDirect, DASIDirect, OPC, SyPPI), a missing redundancy partner, or an InTouch hierarchical topology that collapses when one peer drops.
This reference walks through diagnosis, mitigation, and long-term remediation using STEP 7 (S7 Manager), Windows networking tools, and the AVEVA InTouch configuration interface.
Symptom Profile and Failure Modes
InTouch polling failures against S7 controllers present in a small number of recognizable patterns. Identifying the pattern narrows root-cause analysis considerably.
| Pattern | Observed Behavior | Likely Cause |
|---|---|---|
| Freeze 1–2 times per day | All tags from a single CPU freeze simultaneously; window viewer keeps running; no PLC SF/BF LED. | Connection table on PLC exhausted for 30–90 s. |
| Freeze once per week after cabling change | Recovers automatically, but losses cluster around heavy polling periods. | Marginal Ethernet link (CAT-5 in noisy plant), late collisions triggering TCP resets. |
| One specific InTouch node always freezes | Other HMIs read the same PLC cleanly; the affected node never recovers without a service restart. | Local SIDirect server hung, or stale OPC subscription that the local node never tore down. |
| Freeze only after system expansion | Adding an HMI or a second SCADA server coincides with first occurrence. | PLC crossed its configured-connection budget; new client never receives a slot. |
| Sporadic freeze only at night | Day shift is fine; night shift freezes correlate with batch events. | S7 connection resources competed by recipes/recipe-related PG sessions during commissioning. |
Root Cause: S7 Connection Resource Limits
Every SIMATIC S7 CPU maintains an internal connection table that is dimensioned in firmware. The connection table is split into configured (programmed in STEP 7 / TIA Portal) and unconfigured (dynamically allocated) resources. The SIMATIC S7-300 and S7-400 manuals define the following maximum connection counts:
| CPU Family | Typical Max S7 Connections | Max PG Connections | Max OP/HMI Connections |
|---|---|---|---|
| S7-300 (e.g., CPU 315-2 PN/DP) | 16 (combined PG/OP/S7) | subset of 16 | subset of 16 |
| S7-400 (e.g., CPU 416-3) | 64 (combined) | subset | subset |
| S7-1200 (CPU 1214C/1215C/1217C) | 3 PG + 8 HMI/OPC (firmware-dependent) | 3 | up to 8 |
| S7-1500 (CPU 1515-2 PN) | 64 HMI + 64 S7 (typical) | 4 | 64 |
| S7-200 (legacy, PPI) | PPI master/slave only – no ISO-on-TCP | 1 PG over PPI/PPI Multi-Master cable | Requires SyPPI / PC Access |
The numbers above must be confirmed against the specific CPU's manual because Siemens revises connection counts per firmware release. Confirm by opening the device manual from Siemens Industry Online Support, selecting your order number (e.g., 6ES7315-2AH14-0AB0), and reading the "Communication" section.
When the configured + unconfigured connection table fills, the CPU responds to new ISO-on-TCP connect requests with a TCP RST or simply drops the SYN. The InTouch client then sees "Quality: Bad" or "Comm Error", and from that moment every tag that was mapped through that connection stays frozen until InTouch releases the socket.
Diagnostic Procedure Using STEP 7
The PLC exposes live connection counts in STEP 7's online CPU properties. This is the single most informative diagnostic when InTouch drops.
- Open SIMATIC Manager and load the project that matches the offline hardware (or browse online via "Accessible Nodes" / "Online → Accessible Nodes").
- Select the CPU in the project tree.
- Press Ctrl+D (or right-click → "PLC → Monitor/Modify"). The "CPU Properties – Online" dialog opens.
- Click the "Communication" tab. Three counters are displayed:
- Configured connections – total slots declared in the project's NetPro/HW Config.
- Currently used connections – live count of active sockets, including PG, OP/HMI, and S7 peer links.
- Available connections – remaining capacity.
- Note the "Used" value with the InTouch fleet online, then poll again with a single HMI to confirm baseline. If "Used" matches "Configured", the PLC is saturated.
- For S7-1200/1500 in TIA Portal, the equivalent path is Project tree → Devices & Networks → select CPU → Online & Diagnostics → Connection diagnostics, or use the Web server's "Communication status" page.
Repeat the measurement at different times of day. If the count spikes only during batch or recipe downloads, it confirms that PG sessions (commissioning laptops) are stealing slots from runtime HMIs.
Ethernet Physical-Layer: Cable Quality and Signal Integrity
Where the PLC connection budget is healthy but InTouch still freezes, the cause is frequently the cable plant. S7 Comm runs over ISO-on-TCP (RFC 1006), which tolerates modest packet loss but is highly sensitive to late collisions, jitter, and duplex mismatches. When operators report that freezes stopped after a CAT-5 to CAT-7 swap, the cause is almost always:
- CAT-5 vs CAT-5e vs CAT-6 spec mismatch – 100 Mb/s S7 communication normally runs over CAT-5, but a noisy VFD room or proximity to 480 V power will inject noise that a CAT-5 (not 5e) jacket cannot reject.
- Shield not bonded – foil/drain wire unterminated turns the shielded run into a common-mode antenna.
- Run length – 100BASE-TX is specified to 100 m; field terminations sometimes push 110 m with marginal SNR.
- Duplex mismatch – switch port hard-set to full-duplex while the PLC auto-negotiates half-duplex results in late collisions that pass through TCP as timeouts.
Validate with these tools:
-
Wireshark on a SPAN/mirror port of the S7 switch. Filter for
tcp.port == 102and look for retransmissions, duplicate ACKs, and zero-window events. A healthy S7 link shows <0.1% retransmits; >1% is degraded. - Managed switch counters – check "CRC errors", "Late collisions", "Runts", and "Giants" per port. Any non-zero counts after a fresh boot indicate physical-layer issues.
- Cable certifier – Fluke DSX or equivalent. Verify the run meets the rated category (CAT-6A for industrial runs near drives).
Architecture Options: Direct vs Hierarchical Polling
Where the PLC cannot accommodate another client (small S7-300 CPU, S7-1200 with only 3 PG + 8 HMI slots), redistribute load so the PLC sees fewer connections and the HMIs still get their data:
| Topology | PLC Connections Used | HMI Connections Used | Best When |
|---|---|---|---|
| Each HMI polls PLC directly | N (one per HMI) | 1 | Few HMIs, large PLC budget, network isolation required. |
| One HMI is "data hub", others read from it via SuiteLink/DDE | 1 | N-1 hub links | Small PLC budget, HMIs on same subnet, low-latency OK. |
| Central SCADA server (e.g., Application Server) aggregates; InTouch views read from server | 1 (SCADA server to PLC) | N (clients to server) | Large fleets, redundancy required, plant-wide historian needed. |
| OPC UA aggregation with S7 OPC server on a dedicated PC | 1 (OPC server to PLC) | N (HMIs to OPC UA) | Cross-vendor mix, future migration to S7-1500 or non-Siemens PLC. |
For the InTouch fleet problem reported in the field, splitting HMIs into two groups – half polling the PLC directly, half polling a peer InTouch node that already holds a healthy connection – eliminates the saturation window without new hardware.
Driver Selection: SIDirect DAServer, OPC, and SyPPI
InTouch connects to S7 controllers through one of three integration paths. Mismatched drivers are a frequent cause of partial freezes.
| Driver | Target Hardware | Protocol | Connection Type |
|---|---|---|---|
| SIDirect DAServer (ArchestrA / System Platform) | S7-300, S7-400, S7-1200, S7-1500 over Ethernet | ISO-on-TCP / S7 Comm | 1 S7 connection per server instance |
| DASSIDirect / Wonderware S7 driver | S7-300 / S7-400 via TCP/IP | S7 Comm (RFC 1006) | 1 S7 connection per server |
| OPC DA / OPC UA bridge | Any PLC reachable via Siemens OPC (SimaticNet) | DCOM (DA) / UA TCP | 1 connection to OPC, N client connections |
| SyPPI / S7-200 PC Access | S7-200 only | PPI / MPI over USB-PPI cable or CP | 1 PPI master |
Recommended deployment when saturation is suspected:
- Run a single SIDirect DAServer instance per PLC or per cluster of small PLCs.
- Configure the SIDirect topic to use single S7 connection with multiplexing of tags (this is the default but verify in
DAServer Manager → SIDirect → Topic Configuration → Connection Mode). - Connect every InTouch node to that one SIDirect topic via SuiteLink.
- Confirm the S7 connection count drops from N (one per HMI) to 1 (one per SIDirect) in STEP 7's Communications tab.
Restoring Communication: Step-by-Step Procedure
Apply this procedure when InTouch polling has already failed and you need to recover the running plant.
-
Confirm scope. Identify whether one InTouch node or all nodes are affected. Check
smc.log(SIDirect) and InTouch'sLoggeroutput for "S7 connection refused", "Quality Bad", or "Read timed out" entries. - Check PLC availability. From a maintenance laptop, ping the PLC's IP. If ping fails, escalate to network/cabling before proceeding.
- Read PLC connection count. Use the STEP 7 procedure above. If "Used" = "Configured", jump to step 6.
- Release zombie connections. In STEP 7, select PLC → Clear/Reset → Reset Connection List (older S7-300/400). For S7-1200/1500 use TIA Portal's "Reset to factory defaults" only as a last resort; prefer "Disconnect all" from the online diagnostics.
-
Verify InTouch recovery. Within 60 s of the reset, tags should refresh. If not, restart
archestrA.SIDirect.DAServerservice and the affected InTouch node. - Redistribute polling if the PLC has a structural limit (S7-300 with 16 connections serving 8 HMIs + 4 engineering stations). Move engineering stations to a separate "engineering" VLAN with PG routing only when required.
- Replace cabling if Wireshark shows retransmits or if managed switch counters show CRC/late-collision events. Re-pull with CAT-6A STP bonded at both ends.
- Document the new baseline connection count for shift handover so operators can spot future regressions.
Verification Checks and Long-Term Monitoring
Once polling has been restored, establish ongoing checks so the next regression is caught at the same minute it occurs:
| Check | Tool | Threshold / Target |
|---|---|---|
| PLC used-connection count vs. configured | STEP 7 / TIA Portal Online diagnostics | < 75% of configured at peak |
| SIDirect S7 socket health | DAServer Manager → Connection Status | State = "Connected", Quality = "Good" |
| InTouch tag quality | Industrial Graphic object's Quality indicator | > 99.9% Good over a rolling 24 h |
| Ethernet retransmits | Wireshark capture on SPAN port | < 0.1% of S7 packets |
| Switch port error counters | Managed switch CLI / Web UI | CRC, late collision, runts = 0 after reboot |
| PG/OP session count from engineering | STEP 7 "Disconnect all" routine at end of shift | 0 PG sessions during runtime |
Troubleshooting Matrix
| Symptom | First Check | Second Check | Likely Fix |
|---|---|---|---|
| All HMIs freeze once per day | STEP 7 connection count peak | Count PG sessions on the same PLC | Restrict PG access; aggregate via SIDirect |
| One HMI freezes, others fine | Local SIDirect service state | Local PC NIC duplex/speed | Restart service; force 100/Full; update NIC driver |
| Freezes after cabling change | Switch port counters for CRC/late collision | Cable certifier pass/fail | Re-pull with CAT-6A; bond shield |
| Freezes on S7-1200 only | Confirm firmware ≥ V4.x for HMI count | Reduce simultaneous HMI clients to ≤ 8 | Upgrade CPU or move to S7-1500 |
| S7-200 will not respond at all | Confirm PPI/USB cable and CP addressing | S7-200 PC Access OPC test client | Switch to S7-200 PC Access OPC; do not use SIDirect |
| Freeze with S7-400H redundant PLC | Confirm redundancy-supported InTouch version | Verify both H-system connections used | Use SIDirect redundancy topic; do not bind to a single CPU IP |
Field-Proven Caveats
- Engineering PC during commissioning is the single biggest contributor to runtime freezes. Make "Disconnect all" a daily close-out step on every engineering laptop that touches the PLC.
- OPC DA over DCOM has its own connection-quota problems unrelated to S7 (Windows firewall, DCOM authentication). OPC UA is preferable for any new deployment.
- S7-1500 firmware updates sometimes revise the per-CPU HMI connection count upward – always re-read the manual after a firmware upgrade.
- Switched port security that limits MAC addresses per port can break ISO-on-TCP silently if the PLC's MAC ages out.
How do I see how many S7 connections an S7 PLC is currently using?
Open the project in SIMATIC Manager, select the CPU, and press Ctrl+D to open the online CPU properties. On the "Communication" tab, the "Used" counter shows the live number of active PG, OP/HMI, and S7 connections. For S7-1200/1500 in TIA Portal, the equivalent view is Online & Diagnostics → Connection diagnostics.
What is the maximum number of HMI clients an S7-1200 supports?
For most S7-1200 CPUs from firmware V4.x onward, the limit is 3 PG connections plus up to 8 HMI/OPC connections. Exact figures vary per order number and firmware, so verify in the device manual on the Siemens Industry Online Support portal.
Why does InTouch keep its S7 socket open even when the HMI is idle?
AVEVA InTouch's SIDirect DAServer maintains a persistent S7 connection per topic so that tag reads, writes, and alarms use the same authenticated channel. The connection is only torn down when the service stops or the topic is reconfigured. This is why a single SIDirect topic serving many InTouch nodes (via SuiteLink) is more efficient than each node opening its own S7 connection.
Can InTalk communicate with an S7-200 PLC directly over Ethernet?
No. The S7-200 family does not implement ISO-on-TCP. Use SIMATIC S7-200 PC Access (OPC DA) over a USB-PPI Multi-Master cable, or migrate the controller to S7-1200/1500 if Ethernet HMI access is required. Mixing PPI and Ethernet segments requires an Ethernet/PPI gateway or CP.
Does CAT-5 vs CAT-7 cable really cause S7 communication freezes?
It can. S7 Comm over ISO-on-TCP tolerates modest packet loss, but late collisions, jitter, and CRC errors on a marginal link translate into TCP retransmits and, eventually, socket resets from the PLC. In electrically noisy panels, re-pulling with CAT-6A or CAT-7 shielded cable and bonding the shield at both ends regularly eliminates the freeze.