Problem Overview
WinCC V5.x runtime installations on legacy Siemens Panel PCs (notably the Panel PC 670 with Windows 2000 Professional SP2) can fail with a chain of HRESULT errors that block project loading, tag logging, and alarm logging. The most commonly reported codes in this scenario are:
| HRESULT (Hex) | HRESULT (Dec) | Generic Meaning | WinCC V5.x Context |
|---|---|---|---|
| 0x80004005 | -2147467259 | E_FAIL — Unspecified COM error | Generic failure raised by the WinCC Explorer data manager when it cannot access a backing object or database |
| 0x80010105 | -2147417851 | COM exception originating in a server-side process (RPC/COM interop class) | Surfaced when the WinCC server process (e.g., CCTlgserver.exe) terminates unexpectedly or returns a non-recoverable exception |
| 0x80046204 | -2147471868 | WinCC-specific data manager / CCDM error class | Raised by the CCDmTagProviderMux layer when the tag provider chain cannot enumerate or read project data |
| 0x00000002 | 2 | ERROR_FILE_NOT_FOUND | System cannot find a referenced project file (e.g., damaged project database or missing DLL) |
The error chain typically presents in the following sequence at WinCC Explorer startup:
- WinCC runtime restarts, Windows reports "CCTlgserver.exe has generated errors and will be closed by Windows. You will need to restart the program."
- AutoStart freezes, requiring manual cancellation.
- On opening WinCC Explorer the user is prompted with
0x80004005 Unspecified error→0x2 The system can not find the file specified→0x80046204 : (null). - WinCC Explorer dialog "Die Projektdaten konnten nicht gelesen werden" (English: "The project data could not be read") appears.
- Trend and Alarm Window controls in runtime show no database connectivity.
Affected Platforms and Versions
| Component | Verified Version | Status |
|---|---|---|
| Hardware | Siemens Panel PC 670 (Touch variant) | Affected |
| Operating System | Windows 2000 Professional SP2 | Affected (last mainstream OS for Panel PC 670) |
| HMI Software | SIMATIC WinCC V5.1 (no SP) | Affected |
| HMI Software | SIMATIC WinCC V5.1 SP2 | Resolved after upgrade |
| Networking | SIMATIC NET CD 05/2000 SP2, build 2309 | Co-installed; verify no symbol conflict |
| Configuration Tool | SIMATIC AuTeRStW (configuration tool) | Co-installed |
The Panel PC 670 was shipped with Windows 2000 / Windows XP Embedded depending on order code. Always cross-check the OS service pack level before attempting a repair; mismatched SP levels between OS and WinCC are a documented source of COM initialization failures.
Root Cause Analysis
Siemens documents the HResult error class in WinCC V5.x as a symptom of either a corrupt project, an incorrect installation, or a missing/incompatible runtime component. The official Siemens support article (ID 6836122) attributes the HResult error to:
- Incorrectly installed WinCC — partial MSI packages, interrupted setup, or DLL version mismatches after applying an OS service pack without a matching WinCC service pack.
-
Corrupted project database — the data manager cannot read the project file, triggering the cascade of COM exception codes (
0x80004005 → 0x2 → 0x80046204). -
Incompatible or obsolete runtime components — early V5.1 builds (pre-SP2) had known defects in the
CCTlgserver.exetaglogging server that caused it to terminate on startup.
The diagnose folder provides the definitive evidence. The following entries were captured from a real Panel PC 670 install before the fix was applied:
255,25.10.2007,16:40:27:133,1003051,2,Administrator,CT-KRAFT,Alarm Logging RT,
Quittiervariable(Bit) schon von Einzelmeldung belegt
255,23.10.2007,09:32:44:045,0,4,Administrator,CT-KRAFT,CCDmTagProviderMux,
Provider : CCDmTagLocal throws Exception in Method : ICCDmAsoEnum::GetCount()
255,25.10.2007,16:40:46:671,0,4,Administrator,CT-KRAFT,CCDmTagProviderMux,
Provider : CCDmTagLocal throws Exception in Method : ICCDmAsoEnum::EnumData()
Interpretation:
- "Quittiervariable(Bit) schon von Einzelmeldung belegt" — the acknowledgement variable (bit) is already occupied by a single-message reference. This is a project-configuration conflict in Alarm Logging Runtime, not a system error, but it generates log noise that masks the underlying COM failures.
-
"CCDmTagProviderMux ... ICCDmAsoEnum::GetCount() / EnumData() throws Exception" — the multiplexed tag provider cannot enumerate the local data source. This is the structural fault that produces
0x80046204in the Explorer.
The combined symptom set points to a project that was migrated or edited on a different WinCC V5.x build and then deployed to a runtime machine that has not been kept at a matching service pack level. The fix must be applied at the runtime host, not in the project source.
HRESULT Code Map for WinCC V5.x
The HRESULT codes surfaced in V5.x originate from layered components. Use the map below to triage which subsystem is failing:
| Code | Subsystem | Likely Subsystem File | Recommended Action |
|---|---|---|---|
| 0x80004005 | COM / OLE | Generic; raised by Explorer shell | Re-register COM components, then re-install WinCC |
| 0x80010105 | .NET COM interop / server fault | CCTlgserver.exe, CCDmTagProviderMux | Install WinCC 5.1 SP2; verify process is not blocked by DEP or AV |
| 0x80046204 | WinCC data manager (CCDM) | CCDmTagLocal provider | Reinstall; repair project database |
| 0x2 | Win32 file subsystem | Project file or DLL | Re-copy project, re-apply permissions |
0x80004005 = facility NULL (default), 0x80010105 = facility 0x01 (interop/COM), 0x80046204 = facility 0x46 (WinCC custom), code 0x204. A custom facility of 0x46 confirms WinCC-internal origin, not a generic OS or DCOM fault.Pre-Diagnosis: Collecting Evidence
Before any remediation, capture the WinCC diagnose log. On a Panel PC 670 the path is:
C:\Program Files\Siemens\WinCC\Diagnose
The folder contains rolling logs of every WinCC subsystem. Filter for the strings below to isolate the fault:
findstr /S /I "CCDmTagProviderMux" "C:\Program Files\Siemens\WinCC\Diagnose\*.log"
findstr /S /I "CCTlgserver" "C:\Program Files\Siemens\WinCC\Diagnose\*.log"
findstr /S /I "0x8004" "C:\Program Files\Siemens\WinCC\Diagnose\*.log"
Additionally, the Windows Application event log (eventvwr.msc) records process termination events for CCTlgserver.exe. Cross-reference the timestamp of the Explorer error with the event log to confirm that the taglogging server is the source of the cascade. For Panel PC 670 deployments, the touch driver layer ("SIMATIC HMI Touch Input") should also be checked: a wedged touch driver can hold the WinCC Explorer window non-responsive and produce false-positive HRESULT errors on shutdown.
Resolution Procedure
The remediation path follows the Siemens official recommendation for HResult errors in WinCC V5.x. Escalate through the steps in order; stop when runtime starts cleanly.
Step 1 — Apply WinCC 5.1 SP2
- Close WinCC Explorer and stop all WinCC services:
net stop "CCAgent"andnet stop "CCProjectManager"from an elevated command prompt. - Insert the WinCC 5.1 SP2 installation media. The service pack is a delta installation; WinCC 5.1 base must already be present.
- Run
Setup.exeand accept the maintenance install path. - Reboot the Panel PC 670 when prompted. Do not skip the reboot —
CCTlgserver.execaches the olderCCDMlibraries in memory until restart. - Open the project; verify Trend and Alarm windows connect to their databases before proceeding to Step 2.
Service Pack 2 ships the fixed CCDmTagLocal provider and resolves the ICCDmAsoEnum::GetCount() / EnumData() exceptions. In the documented field case the SP2 install alone restored both alarm and trend visibility, with no further project edits required.
Step 2 — Verify COM Registration
Even with SP2 applied, residual COM registration errors can persist if a previous failed install left orphaned registry keys. Re-register the WinCC COM libraries:
cd "C:\Program Files\Siemens\WinCC\bin"
for %i in (*.dll) do regsvr32 /s %i
regsvr32 /s "C:\Program Files\Siemens\WinCC\bin\CCDmTagProviderMux.dll"
regsvr32 /s "C:\Program Files\Siemens\WinCC\bin\CCTlgserver.exe"
Restart the WinCC services. If regsvr32 returns 0x80004005 on a specific DLL, that DLL is corrupt and must be re-copied from the installation media before continuing.
Step 3 — Repair the Project Database
If the project is suspected of corruption (symptom: Explorer errors only on a specific project, not on a new empty project), use the WinCC Project Duplicator or the CCProjectBackup utility to rebuild the project files:
- Open WinCC Explorer → Tools → Project Duplicator.
- Duplicate the project to a new directory. The duplicator re-packs the project database and forces the data manager to re-enumerate tag providers.
- Open the duplicated project and confirm that the Trend and Alarm windows connect.
- Promote the duplicated project to the runtime directory if successful.
Step 4 — Clean Reinstall (Last Resort)
If Steps 1–3 do not resolve the HResult error chain, perform a full clean reinstall of the runtime host:
- Back up the project directory and the diagnose folder.
- Uninstall WinCC 5.1 via Control Panel → Add/Remove Programs.
- Delete residual directories:
C:\Program Files\Siemens\WinCCandC:\Siemens\WinCC\storage. - Reboot the Panel PC 670.
- Reinstall Windows 2000 Pro SP2 from the recovery media (verify the OS image matches the bundled Panel PC 670 driver pack).
- Reinstall SIMATIC NET, then WinCC 5.1, then WinCC 5.1 SP2 in that order.
- Restore the project from the backup.
C:\Siemens\WinCC\storage path is used by the WinCC storage server (HMI Storage). If the directory exists but the service is not active, leave it in place — deleting it will break the storage server configuration once reactivated.Verification Tests
After remediation, perform the following checks before returning the system to production:
| Test | Procedure | Pass Criterion |
|---|---|---|
| Explorer startup | Open WinCC Explorer with a populated project | No HRESULT prompt; project list loads in < 5 s |
| Taglogging server | Open Control Panel → Administrative Tools → Services | CCTlgserver.exe status = "Started"; no restart within 60 s |
| Alarm runtime | Trigger a configured alarm; acknowledge it | Alarm visible in Alarm Window; acknowledgement updates the bit variable |
| Trend runtime | Open a configured Trend Window | Online tags plotted; historical segments show database connectivity |
| Diagnose cleanliness | Clear the diagnose folder, run 10 min, then inspect | No entries containing "throws Exception" or "0x8004" |
| AutoStart on reboot | Restart the Panel PC 670; let WinCC autostart | WinCC runtime activates without user intervention |
Troubleshooting Matrix
| Symptom | Primary Cause | Action |
|---|---|---|
0x80004005 immediately at Explorer start |
COM initialization failure or corrupt project file | Re-register COM (Step 2); repair project (Step 3) |
CCTlgserver.exe terminated by Windows |
Pre-SP2 bug in taglogging server | Apply WinCC 5.1 SP2 (Step 1) |
0x80046204 from CCDmTagProviderMux
|
Local tag provider cannot enumerate | Reinstall (Step 4) or upgrade to SP2 |
| Trend/Alarms show no database | Project database unreadable | Project Duplicator rebuild (Step 3) |
| Errors only on Touch variant, not on standard | Touch input panel driver conflict | Reinstall "SIMATIC HMI Touch Input" from Panel PC 670 driver pack |
| Errors after SIMATIC NET upgrade | DCOM/RPC symbol conflict with WinCC | Reinstall WinCC 5.1 SP2 on top of the new SIMATIC NET |
| AutoStart freezes | Taglogging server crash loop | Disable AutoStart, apply SP2, re-enable |
Prevention and Best Practices
- Keep the runtime host on the latest V5.1 service pack available for the Panel PC 670. Siemens' official statement is that service packs ship specifically to fix bugs, and SP2 contains the taglogging server fix that resolves this entire error class.
- Do not mix WinCC V6/V7 documentation with V5.x — the Simatic HMI user group ACL issue that fixes the same-looking error in V6 does not apply to V5. Chasing the wrong remediation wastes hours.
-
Always back up the diagnose folder before any service pack application. The diagnose files are the only authoritative source of
CCDmTagProviderMuxexceptions and will be overwritten. - Maintain OS service pack parity. Windows 2000 SP2 with WinCC 5.1 SP2 is the last tested combination on Panel PC 670. Do not apply post-SP2 hotfixes to the OS without a WinCC compatibility check.
-
Stop the WinCC services before any COM re-registration or service pack install. Hot-patching
CCTlgserver.exein memory is a known source of0x80010105server-fault exceptions. - Document the alarm variable mapping. The German diagnose entry "Quittiervariable(Bit) schon von Einzelmeldung belegt" (acknowledgement bit already assigned to a single message) is a project-design issue that produces recurring log noise. Audit the alarm configuration and assign a unique acknowledgement bit per alarm class.
Official References
- Siemens Support Entry 6836122 — Fix "HResult Error" with WinCC
- Siemens Support PDF — HResult Error in WinCC V5.x (Cause / Remedy)
What does HRESULT 0x80004005 mean in WinCC V5.1?
It is the generic COM failure code E_FAIL raised when the WinCC Explorer data manager cannot access a backing project object or database. In a V5.1 runtime it is almost always the first code in a chain that resolves to a corrupt project file, an un-registered COM DLL, or a service pack mismatch — the fix is to apply WinCC 5.1 SP2 and re-register the COM components in C:\Program Files\Siemens\WinCC\bin.
How do I fix the CCTlgserver.exe crash on a Panel PC 670?
Apply WinCC 5.1 SP2. The pre-SP2 CCTlgserver.exe has a known defect that causes Windows to terminate the process on startup, which then triggers the 0x80010105 server-fault exception when the Explorer tries to query the taglogging server. Reboot the Panel PC 670 after the SP2 install so the new executable is loaded.
What is HRESULT 0x80046204 and which subsystem raises it?
0x80046204 is a WinCC custom facility code (facility 0x46, code 0x204) raised by the CCDmTagProviderMux layer when the local tag provider (CCDmTagLocal) cannot enumerate the project data source. The diagnose folder will show entries such as "Provider : CCDmTagLocal throws Exception in Method : ICCDmAsoEnum::GetCount()". Repair is achieved by reinstalling WinCC 5.1 SP2 or by rebuilding the project via the Project Duplicator.
Where is the WinCC V5.x diagnose log located?
The default path on a Panel PC 670 running Windows 2000 is C:\Program Files\Siemens\WinCC\Diagnose. Each WinCC subsystem writes its own log file in this directory. Use findstr /S /I "0x8004" "C:\Program Files\Siemens\WinCC\Diagnose\*.log" to extract only the HRESULT-related entries.
Does the Simatic HMI user group fix from WinCC V6 apply to V5.x?
No. The Simatic HMI user group permission issue that resolves similar-looking HResult errors in WinCC V6 and V7 does not exist as a remediation in V5.x. V5.x does not even create the Simatic HMI group by default. Chasing the V6 ACL fix on a V5.x system is a known time-waster — follow the V5.x-specific path of installing SP2, re-registering COM, and repairing the project database instead.