Troubleshooting High PdlRT CPU Utilization and Slow Faceplate Opening on SIMATIC IPC647D
On SIMATIC PCS 7 OS client workstations running on IPC647D hardware, high CPU consumption by Picture Runtime (PdlRT.exe) and delayed faceplate opening are caused by uncompiled cyclic script queues, graphics device interface (GDI) handle leaks, or unbuffered graphic picture caches. Diagnosing the root cause requires analyzing active script execution with the WinCC apdiag.exe utility, replacing fast cyclic screen triggers with tag-change events, verifying GDI object thresholds, and optimizing APL picture caching.
Table of Contents
- Role of PdlRT.exe in SIMATIC PCS 7 WinCC Runtime
- Diagnostic Procedures Using apdiag.exe and Process Explorer
- Script Queue Saturation: Cyclic Actions vs. Tag-Change Triggers
- GDI Handle Exhaustion and Graphics Hardware Acceleration
- Optimizing APL Faceplate Caching on OS Client Stations
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Role of PdlRT.exe in SIMATIC PCS 7 WinCC Runtime
On SIMATIC PCS 7 Operator Stations (OS Clients and Single Stations), PdlRT.exe (Picture Runtime) is the core graphics rendering engine of WinCC:
* It decodes and renders Process Description Language (.pdl) screens, executes local C-scripts and VBScripts embedded in graphic objects, updates dynamic properties (colors, bar graphs, levels), and instantiates APL faceplates.
* In a balanced installation, PdlRT.exe maintains modest CPU consumption (< 15% on multi-core IPC647D processors) with faceplate open response times under 1 second.
* When PdlRT.exe monopolizes CPU cores (spiking to 50% or 100% of an allocated thread), operator commands freeze, trend displays lag, and faceplates take 5 to 10 seconds to open.
Diagnostic Procedures Using apdiag.exe and Process Explorer
To determine what is stalling PdlRT.exe, use the native Siemens diagnosis utility:
1. Open Windows Run dialog (Win + R), type:
C:/Program Files (x86)/Siemens/WinCC/bin/apdiag.exe and press Enter.
2. In the APDIAG console:
* Select Diagnostics -> Script Queue: Inspect the active C-Action and VBS-Action queue depth. In a healthy system, queue counts should fluctuate near 0. If queues exceed 50 actions, script executions are backing up.
* Select Diagnostics -> First Action: Displays the specific script currently blocking the runtime execution thread.
* Select Output Window: Enables real-time logging of script compilation errors, division-by-zero faults, and undefined tag calls.
3. Open Windows Task Manager -> Details:
* Add the column GDI Objects.
* Monitor PdlRT.exe. If GDI Objects climb continuously toward the Windows desktop heap limit (10,000 handles), a graphics memory leak is active.
Script Queue Saturation: Cyclic Actions vs. Tag-Change Triggers
The single most frequent engineering defect causing PdlRT.exe saturation is unoptimized script triggers:
* The Cyclic Trigger Trap: Placing a VBScript or C-Action on an object property (e.g., color change or visibility) with a fast cyclic trigger (e.g., 250 ms or 500 ms) forces the engine to recalculate the script continuously even when the underlying process value has not changed.
* When a graphic mimic contains dozens of cyclic scripts, the execution queue saturates, delaying all interactive user actions (such as opening faceplates).
* Remediation: Replace all cyclic script triggers with Upon Change triggers linked to the specific driving process tag, or replace custom scripts with native WinCC Dynamic Dialogs which evaluate directly in compiled C++ code without script engine overhead.
GDI Handle Exhaustion and Graphics Hardware Acceleration
On multi-monitor IPC647D workstations with multi-display graphics adapters:
* Custom ActiveX / .NET Controls: Poorly written third-party controls or custom OCX elements frequently allocate Windows GDI handles on picture open without releasing them on picture close.
* Once GDI handles exceed 8,000–9,000, Windows graphics rendering degrades severely before crashing PdlRT.exe.
* Hardware Acceleration: Ensure the installed graphics driver matches the certified Siemens IPC hardware package; disable unneeded software desktop effects under Windows System Properties -> Performance Settings.
Optimizing APL Faceplate Caching on OS Client Stations
To accelerate faceplate opening speeds across APL process plants:
1. In WinCC Explorer on the OS Server/Client, open the OS Project Editor.
2. Select the Basic Data tab.
3. Verify that the Picture Cache configuration is enabled. Caching pre-loads standard APL template pictures (@pg_*.pdl) into local RAM, eliminating disk read latency during runtime click events.
4. Verify that the client station holds a fast local SSD drive and that Windows page file allocation is set to system-managed size.
Verification
- Launch APDIAG Output Window and trigger the opening of a complex motor or valve faceplate.
- Confirm that the faceplate renders in less than 1.0 second without script queue backlog.
- In Task Manager, monitor
PdlRT.exeCPU usage: confirm that CPU usage returns to baseline (< 10%) immediately after the faceplate opens. - Navigate across 20 process screens sequentially: verify that GDI Objects remain stable below 2,000 handles without incremental growth.
Limitations and Operational Precautions
- Modifying script triggers in Graphics Designer requires saving the PDL and downloading changes to the OS clients.
- Never kill
PdlRT.exevia Task Manager on an active production station without a cleanreset_wincc.vbssequence, as this can corrupt local client runtime cache files. - Do not disable Windows security updates on IPC647D systems; verify compatibility using the Siemens
security_patches_iec.xlslist before deployment.
Engineer FAQ
- What utility diagnoses WinCC C-Script and VBScript execution bottlenecks?
Theapdiag.exediagnosis utility located inC:/Program Files (x86)/Siemens/WinCC/bin/. - What is the Windows architectural limit for GDI handles per process?
By default, Windows limits a single process to 10,000 GDI handles; approaching this limit causes severe graphic lag or crashes. - Why are Dynamic Dialogs preferred over C-scripts or VBScripts in Graphics Designer?
Dynamic Dialogs are compiled directly into native C++ code, executing significantly faster and without occupying script queue slots. - What causes faceplates to open slowly on an OS client while opening fast on the OS server?
Network latency, unbuffered picture caches on the client, or server package loading delays across the terminal bus. - How do I enable faceplate picture caching in PCS 7 OS?
Configure picture caching parameters within the WinCC OS Project Editor under the Basic Data / Runtime properties. - What Task Manager column indicates graphics object memory leaks?
The GDI Objects column in Task Manager Details view tracks graphics resource allocation. - Can high CPU utilization on CPU 5 or a single core be resolved by processor scheduling?
Setting processor scheduling to Background Services helps OS servers, while OS clients benefit from Programs optimization. - Does installing unapproved Windows patches affect PdlRT performance?
Yes, untested cumulative patches can disrupt DCOM, GDI rendering, or .NET subsystems; always checksecurity_patches_iec.xls. - How does apdiag.exe show which script is currently running?
Selecting Diagnostics -> First Action in APDIAG displays the name and line number of the active blocking script. - What is the normal script queue depth on a healthy WinCC client?
On a healthy system, the active script queue should fluctuate between 0 and 5 actions.
Technical References
- SIMATIC HMI WinCC V7.4 / V7.5 WinCC Information System Manual
- SIMATIC PCS 7 OS Process Control System Operating Manual
- Siemens Industry Online Support Entry: Diagnosing WinCC Runtime Performance (Entry ID 299025)
- SIMATIC IPC647D Operating Instructions and Hardware Configuration Guide
Related Articles
- Resolving WinCC Lifebeat Monitoring Failures After Windows 10 Security Updates in PCS 7 V9.0
- Troubleshooting WinCC SQL Server Access Loss and Database Lockups on PCS 7 OS Stations
Related Tags
PCS 7, WinCC, PdlRT, IPC647D, Performance Optimization, Faceplates, apdiag, GDI Handles, Scripts, Diagnostics