Resolving WinCC V7.0 SP3 Server Hang on Binary Tag Updates
Symptom: In a migrated WinCC V7.0 SP3 redundant server pair, the Graphics Designer and the runtime's dynamic-dialog expressions for digital (binary) tags freeze on the server, while analog tags, trends, and all client pictures continue updating. The runtime is alive (process pdlrt.exe responds to navigation), but button events tied to binary tags stop firing. The same project on a standalone OS runs without fault. The defect returns several days after each server restart. This article documents the root-cause path, the recommended Siemens corrective actions, and the verification procedure.
1. Problem Environment and Project Topology
The reported environment has the following characteristics that constrain the diagnostic path:
| Component | Configuration | Notes |
|---|---|---|
| SCADA software | WinCC V7.0 SP3 (originally V6.2 on XP SP3) | Project migrated, not rebuilt |
| Server OS | Windows Server 2008 R2 Standard SP1 (x64) | Domain member |
| Client OS | Windows 7 Ultimate (x86/x64) | 3 clients |
| Standalone OS | Windows 7 Ultimate, WinCC V7.0 SP3 | 2 machines, identical project |
| Redundancy | 2 redundant servers (master/standby) | Both exhibit the symptom |
| Connection | PLC link via S7-Protocol Suite or similar channel | Analog values pass; binary tags misread |
| Affected element | Dynamic-dialog expressions referencing binary tags | Buttons, status icons, valve feedback |
| Non-affected element | Analog tags, trend groups, page navigation | Process pdlrt.exe is alive |
The asymmetric behavior — server wrong, client right — is the most important diagnostic clue. It eliminates the PLC, the field wiring, and the tag database itself as primary suspects, and points instead at server-side picture evaluation or the redundancy/event channel between the two WinCC servers.
2. Symptom Matrix
| Symptom | Server | Client | Standalone | Likely Layer |
|---|---|---|---|---|
| Analog values updating | OK | OK | OK | Channel / driver |
| Trends updating | OK | OK | OK | Archive / runtime |
| Page navigation (mouse) | OK | OK | OK | Picture cache |
| Binary tag dynamic-dialog value | Wrong (stuck at 0) | Correct | Correct | Picture eval / redundancy sync |
| Button click triggering tag write | No effect | Effective | Effective | Runtime event handler |
| Behavior after server restart | Recovers for several days | N/A | N/A | Memory / handle leak |
The pattern — partial picture evaluation failure on the server only, with full recovery on restart — is a classic signature of a handle or memory leak in the picture runtime DLLs of WinCC V7.0 SP3 base, which Siemens addressed in Update 8 for WinCC V7.0 SP3.
3. Root-Cause Hypotheses
Three independent root causes can produce this exact symptom family. Each must be eliminated in turn before a fix is committed.
3.1 Defect in the WinCC V7.0 SP3 base picture runtime
WinCC V7.0 SP3 (released in 2011) shipped with several picture-evaluation defects that surface only in migrated projects that use dynamic-dialog expressions with binary tags. The most prominent cluster was corrected in Update 8, available from the Siemens Industry Online Support portal.
Reference: WinCC V7.0 SP3 Update 8 — Siemens Entry ID 109741127.
3.2 Incomplete project migration from WinCC V6.2 to V7.0 SP3
When projects are migrated from V6.2 to V7.x, the V6.2 picture structure and tag aliases are translated. If the migration is interrupted, the database is partially upgraded, or the original V6.2 CDB/MCP files are mixed with V7 files, the server can resolve analog tags through the new channel but fail to re-evaluate binary expressions because of stale pointers in the picture DLL. The Siemens migration manual mandates the post-migration verification steps in chapter 5.8.
Reference: WinCC Upgrade V4/V7 — Migration Manual (PDF).
3.3 Corrupt or inconsistent DCF (Data Cache File)
The *.DCF file caches runtime data and is the file the picture engine reads to evaluate expressions. A DCF generated under V6.2 and used under V7, or a DCF written by a partially-installed service pack, can cause exactly the asymmetric behavior described: the tag is in the database, the client reads it through the redundancy path, but the server's local picture evaluation uses a stale pointer. Regenerating the DCF resolves this in many cases.
Reference: How to create a new DCF file in WinCC V7 — Siemens Entry ID 16749678.
4. Pre-Fix Information Gathering
Before applying any corrective action, capture the following state from the affected server. The data is required both to confirm the diagnosis and to validate the fix.
4.1 Process and handle snapshot
- Open Task Manager → Processes, add the columns Handles, User Objects, GDI Objects, Private Bytes, Virtual Size.
- Sort by Image Name and locate
pdlrt.exe,CCArchiveConn.exe,CCAlgRtServer.exe,CCEServer.exe. - Record the handle count and Private Bytes for
pdlrt.exeimmediately after a server restart. - Repeat the snapshot every 4 hours. If the handle count climbs monotonically and the binary-tag freeze appears when the count exceeds a threshold (commonly observed between 20,000 and 60,000 handles in legacy V7.0 SP3 builds), the runtime is leaking GDI/USER handles. This confirms a picture-runtime defect addressed by Update 8.
4.2 Service-pack and hotfix inventory
- On the server, open Control Panel → Programs and Features and list the installed WinCC components with exact build numbers.
- The exact installed V7.0 SP3 update level is recorded in
C:\Program Files (x86)\Siemens\Automation\WinCC\bin\WinCCVersion.txtor by reading the registry valueHKLM\SOFTWARE\Wow6432Node\Siemens\Automation\WinCC\Version\UpdateLevel. - Compare the recorded update level against the Update 8 (or later) reference build listed in the Siemens entry referenced in section 3.1. If the server is below Update 8, proceed directly to section 5.1.
4.3 Migration integrity check
- Open WinCC Explorer on the server. From the menu, choose Help → About and note the database schema version.
- From the project root, inspect
<Project>\wincc.opnwith a text editor and confirm the Database version field is consistent on both redundant servers. - Cross-check that no file with a V6.2 timestamp (pre-2009) remains in the project tree.
5. Corrective Action Path
Apply the fixes in the order below. Stop after each step and verify; do not stack fixes without a controlled restart between them.
5.1 Install WinCC V7.0 SP3 Update 8 (or the latest available update)
Update 8 is the single most impactful corrective action for the symptom family described. It contains cumulative hotfixes for the picture runtime, the redundancy synchronization engine, and the dynamic-dialog expression evaluator.
- Stop the WinCC runtime on both redundant servers: Start → Programs → Siemens Automation → WinCC → Stop WinCC Runtime. Verify
pdlrt.exehas exited via Task Manager. - Close the WinCC Explorer and the Graphics Designer on the server.
- Run the Update 8 installer with administrative credentials. The installer is a self-extracting executable; allow it to back up the existing
binandlibraryfolders. - Reboot the server.
- Repeat on the partner server. Do not bring both servers online simultaneously until both have been updated and rebooted.
5.2 Validate the V6.2 → V7.0 SP3 migration
If the Update 8 install does not resolve the binary-tag freeze, the next step is to confirm the migration. The Siemens upgrade manual, chapter 5.8, lists the post-migration checks.
- On the server, open WinCC Explorer and verify that every picture in Graphics Designer compiles without warnings. Warnings about unknown tag or type mismatch on binary tag are a red flag for an incomplete migration.
- From the menu Tools → Cross Reference, search for binary tags used in dynamic-dialog expressions. Open each occurrence and confirm the Trigger column is set to the correct tag and update cycle (typically 1 s or 2 s). A blank or default trigger is a symptom of a corrupted V6.2 → V7 migration entry.
- Open the migration log file
<Project>\MigrationLog.txt. Resolve every WARNING and ERROR entry before proceeding. - If the migration log shows structural errors, perform a clean re-migration on a test bench from the original V6.2 source project, not from the previously-migrated V7.0 project.
5.3 Regenerate the DCF file
A stale or partially-overwritten DCF causes the picture engine to read inconsistent tag values for binary expressions while the channel driver — which reads directly from the tag manager — still serves correct values to the clients via the redundant path.
- Close the WinCC Runtime and WinCC Explorer on the server.
- Open the Windows service manager and stop the WinCC Runtime service.
- Navigate to the project runtime folder, typically
<Project>\<ServerName>\. Locate the files*.DCF,*.RT, and the binaryPDLRTcache files. - Move (do not delete) the existing DCF file to a backup folder with a timestamp suffix.
- Reopen WinCC Explorer. The system will detect the missing DCF and create a new one automatically. If a manual rebuild is required, follow the procedure in the Siemens KB article: Siemens Entry ID 16749678.
- Start the runtime and monitor
pdlrt.exehandle counts (section 4.1) for 24 to 72 hours.
6. Memory-Leak Diagnostic Procedure
If the freeze returns after Update 8 + DCF regeneration, the next investigation layer is a full memory and handle audit. WinCC V7.0 SP3 picture evaluation is a 32-bit process; the 2 GB user-space address limit is reached faster in migrated projects with many dynamic-dialog expressions.
| Counter | Tool | Threshold Indicating Defect | Action |
|---|---|---|---|
pdlrt.exe handle count |
Task Manager, Process Explorer | Steady climb > 5,000 handles / 24 h | Collect Process Explorer handle diff; open Siemens ticket |
pdlrt.exe private bytes |
Task Manager, PerfMon | Climbs > 50 MB / 24 h | Enable 4GT tuning, then 4GB patch via IMAGE_FILE_LARGE_ADDRESS_AWARE
|
| User objects / GDI objects | Process Explorer → Lower Pane | Climb to 10,000 per process | Indicates a leaking picture script; isolate by screen |
CPU on pdlrt.exe
|
PerfMon counter Process\% Processor Time | Constant 25 %+ during freeze | Check expression complexity; reduce dynamic-dialog nesting |
CPU on CCEServer.exe
|
PerfMon | Constant 25 %+ | Event-channel saturation; reduce event tag count |
6.1 4 GB large-address-aware tuning (optional, 64-bit OS only)
Windows Server 2008 R2 supports 4 GB for 32-bit processes when the binary is marked large-address-aware. WinCC V7.0 SP3 ships with the flag set in the pdlrt.exe image, but a clean Update 8 install is required for the flag to remain intact after patching.
- Open an elevated command prompt.
- Run
editbin /LARGEADDRESSAWARE "C:\Program Files (x86)\Siemens\Automation\WinCC\bin\pdlrt.exe"(requires Visual Studio tools) or use the free SetLAA utility. - Reboot and observe the peak Private Bytes of
pdlrt.exeover a 7-day window.
7. Redundant-Server Specific Considerations
The fact that the symptom appears on both redundant servers but not on the standalone OS is itself diagnostic. It rules out hardware differences and points to project-level artifacts that are loaded by every server but not by a standalone:
-
Redundancy DLLs (
ccredundsrv.dlland partners) — initialize additional event channels that the standalone machine does not load. -
Server-only picture scripts — scripts gated by
@SERVERor by the redundancy master state. - User archive synchronization — opens additional connections to the partner that the standalone never sees.
If the freeze correlates with a redundancy partner switchover, capture the Redundancy log file <Project>\<Server>\Redundancy\Redundancy.LOG. A growing list of WARN: lost connection to partner entries followed by rapid reconnects is associated with event-channel thrashing, which in turn can starve the picture evaluator and freeze binary-tag updates.
8. Step-by-Step Resolution Procedure
- Schedule a maintenance window for both redundant servers. Do not attempt a hot fix; the runtime must be stopped.
- Capture the pre-fix baseline per section 4.
- Install WinCC V7.0 SP3 Update 8 (or the latest available hotfix rollup) on server A. Reboot. Repeat on server B.
-
Verify the migration per section 5.2. Resolve every WARNING in
MigrationLog.txt. - Regenerate the DCF per section 5.3.
- Recompile the project: in WinCC Explorer, right-click the server and select Rebuild all. Confirm zero compile errors.
- Start the runtime on the master server first; allow it to reach the redundant state, then start the standby.
-
Run for 7 days. Monitor
pdlrt.exehandle counts twice per shift. Compare to the pre-fix baseline. - Validate the client by clicking every binary-tag-driven button and confirming the server reflects the new value within the configured update cycle (typically 1 s).
9. Verification Checklist
| Check | Expected Result After Fix | Pass Criteria |
|---|---|---|
| Binary tag value on server vs. client | Identical | Zero mismatches over 24 h |
| Button click on binary tag | PLC write occurs within 1 cycle | 100 % success on 50 test clicks |
pdlrt.exe handle count |
Stable or slowly oscillating | No monotonic climb over 7 days |
| Redundancy switchover | Clean, < 5 s, no freeze | Three forced switchovers pass |
| Standalone OS | Unchanged behavior | No regression |
| Update level on both servers | Identical, ≥ Update 8 | Matches Siemens reference build |
10. When the Fix Does Not Hold
If the binary-tag freeze returns after the full procedure, escalate through the official Siemens support channel with the following package:
- The pre-fix and post-fix handle/Private-Bytes logs from Process Explorer.
- The complete
WinCC\Diagnosticsfolder (enable with Apdiag.exe). - The
MigrationLog.txtshowing zero warnings. - Two screenshots, one from the server and one from the client, capturing the same picture at the moment of the freeze, with the time stamps visible in the Windows taskbar.
- The
Computer.propertiesfile from the project root.
This evidence package is the standard deliverable expected by Siemens WinCC support and is required for a hotfix escalation beyond Update 8.
Why do the clients show the correct binary tag value while the server shows zero?
Clients read tag values through the redundant event channel, which is independent of the server's local picture evaluation engine. The server's pdlrt.exe uses the DCF cache and the dynamic-dialog evaluator to render status. When the picture engine freezes on a server-side defect (most often the V7.0 SP3 base bug fixed in Update 8) or reads from a corrupt DCF, the client picture remains correct because the client does not depend on the server's picture cache.
Which WinCC V7.0 SP3 update contains the fix for the binary-tag picture freeze?
Update 8 for WinCC V7.0 SP3 (Siemens Entry ID 109741127) is the cumulative hotfix that resolves the picture-evaluation defects producing this symptom. Install it on every redundant server in the same maintenance window.
Is a clean re-migration from the original V6.2 source better than fixing the migrated V7.0 project?
Yes, when the migration log shows warnings or when the project has been opened and saved across multiple V7.0 SPx versions. A clean re-migration from the original V6.2 source, followed by a single application of Update 8 and a DCF regeneration, eliminates mixed-version artifacts that a fix-on-top approach cannot fully remove.
How do I prove the binary-tag freeze is a memory leak and not a network or PLC issue?
Capture the handle count and Private Bytes of pdlrt.exe from Task Manager or Process Explorer every 4 hours. A monotonic climb in handle count, with the freeze appearing when the count exceeds a known threshold, is the signature of a WinCC runtime memory leak. A PLC or network issue would affect both server and client identically and would not be cured by a server restart alone.
Can the redundancy partner continue running while the master is being patched?
Yes, but the partner will become the new master and will reject re-synchronization if the original master returns with a different update level. Plan a single maintenance window in which both servers are patched and rebooted before redundancy is re-established.