Problem Overview
On a Siemens SIMATIC IPC running Windows XP SP3 with WinCC V7 SP3 (TIA predecessor generation), the Graphics Runtime can hang intermittently. The picture does not redraw, input events stop responding, and the WinCC explorer process appears frozen in Task Manager. The Windows Application event log shows consecutive Application Error records against svchost.exe rather than against the WinCC process itself, which leads most technicians down the wrong path looking for an HMI project fault.
The actual root cause in this class of fault is a Windows service dependency failure: the Windows Firewall/Internet Connection Services (ICS) host process (svchost.exe) crashes and takes the dependent WinCC runtime services down with it. The faulting module reported in the event is always unknown, version 0.0.0.0 with fault address 0x00000000, which is a signature of a service-host failure rather than a WinCC application fault.
Affected Environment
| Component | Version / Detail |
|---|---|
| HMI Software | SIMATIC WinCC V7 SP3 (also valid for V7 SP2, V7 SP4 with same firewall behavior) |
| Runtime Mode | Graphics Runtime (RT), with or without Alarm Logging / Tag Logging |
| Hardware | SIMATIC IPC (e.g., IPC547C, IPC627C, IPC847C, IPC277D as RT) |
| Operating System | Windows XP SP3 (32-bit) — also seen on Windows XP SP2, Windows Server 2003 |
| Service Account | LocalSystem, or custom user added to SIMATIC HMI group |
| Network | Single NIC, machine on plant LAN, no dedicated domain controller on segment |
Symptoms
- Graphics Runtime process appears to "hang" — picture freezes, no redraw, no mouse focus changes.
- Periodic spontaneous exits of
svchost.exein Task Manager (multiplesvchost.exerows, one keeps disappearing). - Windows generates a popup: "Windows cannot start the Windows Firewall/Internet Connection Services (ICS) service."
- After the popup, the runtime freezes within 30–120 seconds.
- Restarting only WinCC Runtime does NOT resolve the issue; it returns within minutes.
- Event Viewer → Windows Logs → Application shows two recurring entries (Event ID 1004 and 1000) from source Application Error.
Event Log Decode
The two records produced by a single crash cycle look like this on a WinCC V7 SP3 / WinXP SP3 IPC. Pay close attention to the faulting module unknown, version 0.0.0.0 and fault address 0x00000000 pair — they are diagnostic of a service-host failure, not a process DLL fault.
| Record # | Event ID | Source | Faulting Application | Faulting Module | Fault Address | Meaning |
|---|---|---|---|---|---|---|
| 20304 | 1000 | Application Error | (empty) | unknown 0.0.0.0 | 0x00000000 | First crash: child service terminated unexpectedly |
| 20332 | 1004 | Application Error | svchost.exe 0.0.0.0 | unknown 0.0.0.0 | 0x00000000 | Second crash: shared host process containing Firewall/ICS |
The fault data (ASCII-decoded from the binary 78-byte record) reads "Application Failure 0.0.0.0 in unknown 0.0.0.0 at offset 00000000 000000d4". The trailing 0xd4 is the Windows error code 0xC0000005 (ACCESS_VIOLATION) in the lower bits of the 32-bit word; the high 16 bits are 0, so the read is sometimes logged as 0xC0000005 truncated. This is the Windows XP service control manager signal that one of the services hosted by svchost.exe -k netsvcs failed to register.
Root Cause
WinCC V7 RT on Windows XP ships with a WinCC-specific firewall configuration that opens TCP/UDP ports for Alarm Logging, Tag Logging, Server/Client, and Redundancy. When the Windows Firewall/Internet Connection Sharing (ICS) service cannot start — typically because:
- TCP/IP stack corruption (e.g., after an unclean shutdown on the IPC),
- Conflicting third-party firewall/security suite (Symantec, McAfee, Trend, G Data) installed on the same machine,
- Missing or corrupted
ipnathlp.dll/iphlpapi.dll/winsrv.dllsystem files, - Group Policy or registry override disabling the service (
SharedAccesskey set to 4 = disabled), - WinCC project importing an old
WinCCFirewallConfig.xmlreferencing obsolete port rules,
…the service control manager terminates the entire svchost.exe -k netsvcs process group. WinCC runtime services that were registered in the same service group are killed by the cascade, even though they are not the cause of the original fault. The Graphics Runtime client process is left in a half-dormant state that presents as a "hang" rather than a clean exit, because the underlying channel DLL has not completed its termination handshake with the WinCC Server.
CCRtV7.exe, PDLRT.exe, or WinCC_RT.exe), the cause is project-side, not firewall-side. An empty faulting application name combined with svchost.exe in the 1004 record is the firewall signature.Solution
Step 1 — Re-establish the Windows Firewall/ICS Service
- Open Control Panel → Administrative Tools → Services.
- Locate Windows Firewall/Internet Connection Sharing (ICS).
- Set Startup type to Automatic. If it is set to Disabled in the registry (
HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess→Start = 4), change to2(Automatic) and reboot. - Start the service. If it refuses to start with error 1075 (dependency does not exist), check the
DependOnServicemulti-string value — it must containNetman,RpcSs, andWinMgmt.
Step 2 — Reapply the WinCC Firewall Rules
WinCC V7 SP3 ships a configuration tool that writes the port exceptions into the Windows Firewall policy. The correct path and command for silent re-apply is:
C:\Program Files\Siemens\Automation\WinCC\bin\WinCCFirewallConfig.exe /apply
C:\Program Files\Siemens\Automation\WinCC\bin\WinCCFirewallConfig.exe /verify
If the executable is missing, the rules can be re-imported from the WinCC installation media at WinCC_V7_SP3\InstData\Firewall\WinCCFirewallConfig.xml. Required ports for a single-station WinCC V7 RT:
| Port | Protocol | Service | Direction |
|---|---|---|---|
| 2308 | TCP | WinCC Server / Client (project remote) | Inbound |
| 2309 | TCP | WinCC OPC Server / Connectivity Station | Inbound |
| 4897 | TCP | WinCC Tag Logging (archiving) | Inbound |
| 5555 | TCP | WinCC Alarm Logging | Inbound |
| 5566 | TCP | WinCC Redundancy sync | Bidirectional |
| 1433 / 1434 | TCP/UDP | SQL Server (WinCC archive DB) | Inbound |
Step 3 — Clean the WinCC Diagnostic Folder
Stale diagnostic files can mask the real cause and slow the next analysis. The Siemens diagnostic system writes to:
C:\Program Files\Siemens\Automation\WinCC\diagnose\
C:\Program Files\Siemens\Automation\WinCC\WinCCProject\diagnose\ (project-relative)
%TEMP%\PMDiagnose\*.log
- Stop the WinCC Runtime and the WinCC Configuration Studio.
- Copy any
PMDiagnose.log,CCError.log, andRTTrace.logto a separate folder (do not delete the original until verification is complete). - Delete the contents of the three folders above.
- Start WinCC Explorer, activate the project (RT Start), and let it run.
- Wait for the error to reoccur (or for the issue to not reoccur after 24 hours of operation).
- Collect the freshly generated log files for review.
Step 4 — Review the WinCC Release Notes for Operating Notes
The official WinCC V7 SP3 release notes — accessible inside the WinCC Information System under Release Notes → Notes on Operation → Microsoft Windows Security Settings — contain a dedicated section on firewall configuration. Always cross-check against the latest edition of the documentation that ships with your installed Update / Hotfix level (e.g., V7 SP3 Update 5 added rules for the new WebNavigator V7 SP3 HTTPS listener on 443). See the live Siemens support pages for the current revision:
- WinCC V7 SP3 — Operating Instructions (Siemens Support entry 109750609)
- WinCC V7 SP3 Release Notes / Readme (entry 109739186)
Verification
-
Service persistence: After reboot,
sc query SharedAccessmust returnSTATE: 4 RUNNINGwithSTART_TYPE: 2 AUTO_START. - Event log clean: No new Event ID 1000 / 1004 Application Error records after 24 hours of normal operator traffic.
- Runtime uptime: Run WinCC RT for at least 8 hours with full picture-change load. The runtime must not freeze.
-
Firewall rules applied: Run
netsh firewall show config(XP-style) ornetsh advfirewall firewall show rule name=alland confirm the WinCC entries are present and Enabled = Yes. -
Connectivity check: From a WinCC Client, use
telnet <server> 2308— the connection must open. Repeat for 4897, 5555, 5566. -
Diagnostic sweep: Confirm
PMDiagnose.logis recreated and shows no FATAL or EXCEPTION entries related toCCRtV7.exe.
Troubleshooting Matrix
| Observed Event | Likely Cause | Corrective Action |
|---|---|---|
| Event ID 1000: empty faulting app, then 1004 svchost.exe 0.0.0.0 at 0x00000000 | Firewall/ICS service crashed; svchost group torn down | Re-enable SharedAccess service, reapply WinCC firewall config, reboot |
Event ID 1000: faulting app = CCRtV7.exe, module = CCRTGUI7.dll
|
WinCC project side — corrupted picture, missing tag, recursion | Activate project with CCStartModeler /diagnose, review RT trace |
Event ID 1000: faulting app = explorer.exe
|
Shell extension conflict (graphics driver, antivirus) | Disable non-Microsoft shell extensions, update GPU driver |
| Event ID 7034: "WinCC Runtime terminated unexpectedly" | Project memory ceiling, RAM < 2 GB on large archive | Increase RAM to 4 GB, split archive cycles |
| Popup "Windows cannot start the Windows Firewall/ICS service" | ICS dependency broken or service disabled | Check ipnathlp.dll, reset Winsock with netsh winsock reset
|
| Runtime freezes, no event at all | SQL archive full, or CCArchiveConnMon deadlocked |
Truncate archive, restart CCArchiveManager
|
Winsock / TCP-IP Reset (Use Sparingly)
If the Firewall/ICS service refuses to start after dependency repair, the TCP/IP stack on Windows XP may need to be reset. Run from an elevated command prompt:
netsh int ip reset resetlog.txt
netsh winsock reset catalog
netsh firewall reset
shutdown /r /t 0
Re-apply the WinCC firewall configuration from Step 2 after the reboot. This sequence is destructive: any third-party VPN adapters, custom Winsock LSPs, and non-Microsoft firewall hooks will be removed. Re-install them only after WinCC runtime is verified stable for 24 hours.
Why This Misleads Engineers
The symptoms strongly mimic a WinCC project fault: the runtime is the visible artifact that stops working. The Application Error log names svchost.exe, which most operators do not associate with WinCC. The combination of an "empty" faulting application name and a service-host fault is unique to service-group cascades, and the dependency chain (Firewall → ICS → Netman → WinCC) is documented only in the WinCC V7 release notes — not in the main operator manual. Always read the Notes on Operation section before assuming a project fault.
Related Configuration Checks
-
DCOM: WinCC V7 RT uses DCOM for server/client. Confirm
dcomcnfg→ Default Properties → Enable Distributed COM on this computer is checked, and the Default Impersonation Level is Identify. -
SQL Server: Confirm the
WinCCSQL instance namedWINCCis started and theSQL Server (WINCC)service is Automatic with the service account having Perform volume maintenance tasks privilege. - User Rights: The runtime user must be a member of SIMATIC HMI, SQLServer2005MSSQLUser$<machine>$WINCC (or the equivalent for the installed SQL version), and Performance Log Users.
-
Antivirus exclusions: Exclude
C:\Program Files\Siemens\Automationand the project path from real-time scanning. See entry 109750609, appendix "Antivirus software compatibility list". -
Windows Update: KB967715 and KB2510581 (XP) address the original
svchost.execrash class. Confirm both are installed.
Field-Proven Caveats
- Do not disable the WinCC diagnostic folder cleanup. The PMDiagnose logs are the only way Siemens Technical Support can triage a fault remotely — they require
PMDiagnose.logandCCTraceRt.login addition to the OS event log. - The
netsh firewallcommand set is deprecated in Windows Vista and later, but on Windows XP SP3 it is the canonical way to verify that WinCC rules are loaded. On Windows 7 / Server 2008 R2 and later, usenetsh advfirewall. - On Siemens IPCs with pre-installed SIMATIC images, the Firewall service is sometimes set to Disabled by the manufacturer image to speed up boot. Restore it to Automatic before commissioning the WinCC runtime.
- If the machine is on a plant network behind a managed switch, a spanning-tree reconvergence can momentarily drop the NIC link and crash the ICS service. Enable PortFast on the IPC switch port and disable Energy Efficient Ethernet on the IPC NIC.
- Do not use the Windows XP built-in Internet Connection Firewall (ICF) and a third-party host firewall simultaneously — they will tear down
svchost.exe -k netsvcswithin minutes of activation.
When the Issue Persists After All Above
- Capture a full
PMDiagnose.logfrom a clean diagnostic directory (Step 3 above). - Capture the full
CCError.logfrom<Project>\diagnose\. - Export the Windows Application event log as
.evtxcovering the 30 minutes before and after the crash. - Run
msinfo32 /report c:\diag\msinfo.nfoandsysteminfo > c:\diag\sysinfo.txt. - Open a support request at Siemens Industry Online Support with the WinCC project version (e.g., V7.3.3.4) and the IPC type (e.g., 6AG4114-3...), and attach the four artefacts above.
FAQ
Why does WinCC V7 SP3 Graphics Runtime hang when svchost.exe crashes?
Because WinCC runtime DLLs (CCRTGUI7.dll, CCRTEngine.dll) register their IPC channels inside the same svchost.exe -k netsvcs service group as Windows Firewall/ICS. When that service group terminates, the channels are torn down ungracefully, and the Graphics Runtime enters a wait state that looks like a hang. The event log will show Event ID 1004 against svchost.exe with fault address 0x00000000.
Which WinCC ports must be opened in Windows Firewall?
For a default single-station WinCC V7 SP3 install, open TCP 2308 (server/client), TCP 2309 (OPC/connectivity), TCP 4897 (tag logging), TCP 5555 (alarm logging), TCP 5566 (redundancy), and TCP/UDP 1433–1434 (SQL archive). Always re-apply with WinCCFirewallConfig.exe /apply after any firewall reset.
How do I re-enable the Windows Firewall/ICS service if it will not start?
Open services.msc, set Windows Firewall/Internet Connection Sharing (ICS) to Automatic, and verify the DependOnService registry value under HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess contains Netman, RpcSs, and WinMgmt. If dependencies are correct but start still fails with error 1075 or 1077, run netsh winsock reset and reboot.
Is the issue the same on Windows 7 or Windows 10 with newer WinCC versions?
WinCC V7 SP4 and later, and WinCC Professional (TIA Portal), use the same firewall ruleset but the service-group cascade no longer occurs because the Windows service host model changed in Vista. On those platforms the symptom is more often an explicit "WinCC Server not reachable" popup, not a hang. The fix path is the same — re-apply the firewall config — but the event log signature differs.
Where is the WinCC PMDiagnose.log located and how do I use it?
The log is written to %TEMP%\PMDiagnose\PMDiagnose.log and to C:\Program Files\Siemens\Automation\WinCC\diagnose\. Stop WinCC, copy the existing files to a backup folder, delete the originals, restart WinCC, and reproduce the fault. The fresh log will contain only the entries for the fault cycle and is the primary artefact Siemens Technical Support requires for ticket escalation.