WinCC Client Picture Loading PDL Cache, Server Graphics

David Krause17 min read
HMI / SCADASiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

WinCC Client Picture Loading: PDL Cache, Server Graphics, and Performance Tuning

Siemens WinCC (TIA Portal and WinCC V7.x) splits runtime picture storage between the WinCC Server's GraCS directory, the Client's local GraCS directory, and the server-side PDLCache folder. Misconfiguration of these locations produces tag connection loss, slow picture change times, and silent fallback to server pictures when an engineer expected local loading. This reference documents the precedence rules WinCC uses when resolving a .pdl file, how the standard server property and Server Prefix behave in multi-server topologies, and how to commission a client that mixes local graphics with remote tag sources.

1. WinCC Client Runtime Picture Architecture

A WinCC Client does not host tag archives or its own image of the process data when configured as a Client without its own project. All picture data, tag connections, and archive sources originate from one or more paired WinCC Servers. Picture Description Language (.pdl) files compiled at project design time can exist in three locations at runtime:

Location Host Path Example Purpose
Server GraCS WinCC Server <Project>\GraCS\ Source .pdl files compiled with the project; loaded by clients without local copies
Client GraCS WinCC Client <ClientProject>\GraCS\ Locally compiled .pdl files; loaded without a Server Prefix tag connection
PDLCache WinCC Server <Project>\PDLCache\ Cached copy of .pdl files automatically generated for clients; the recommended mechanism for distributed systems

When the WinCC Explorer starts, it registers picture paths in the order defined in the Computer properties dialog. For a WinCC Client, three picture paths are usually listed: the local GraCS, the Server Prefix path (which resolves through the server's GraCS), and the PDLCache path. The WinCC runtime loader reads these paths in the order they appear and selects the first match for a given picture name.

Note: PDL = Picture Description Language, the runtime-compiled screen file produced from a WinCC Graphics Designer (.pdl_<projectname> source). The runtime never reads the editable source files; only the compiled .pdl binary is consumed by the client.

2. Picture Loading Precedence Logic

The WinCC documentation states that a client first checks its local directory for a .pdl and, if the file is not present, opens the server picture. In practice the resolution is more nuanced because picture changes are nested and the start picture can pre-select a server path.

The actual precedence order applied by the WinCC runtime picture cache is:

  1. The picture currently displayed on the server (the one last opened by the server's active picture in the navigation tree) is the preferred source. The client inherits the server's current screen for the root picture.
  2. Nested picture windows that call OpenPicture("Name.pdl") resolve through the active Server Prefix's GraCS directory if the parent picture was opened from the server.
  3. If the parent picture is opened locally (start picture on the client), the runtime searches the local GraCS first and only falls back to the server GraCS when the file is missing.
  4. The PDLCache directory is consulted as the last fallback. If present, it acts as a read-only cache that mirrors the server's GraCS contents.

This behavior explains the field observation that a start picture loaded from the server tends to keep all nested pictures on the server even if the client has a local copy. The runtime does not re-resolve the path on every picture change; it inherits the path context from the first picture open.

WinCC Client Picture Resolution Start picture requested Active server screen? Inherit Server Prefix path Search local GraCS first Search PDLCache No picture found - error

3. Local GraCS vs Server Pictures — Why the Tag Connection Breaks

Local GraCS files open measurably faster than the server equivalents because the client does not need a remote file open through Server Prefix. The trade-off is that any tag inside a local picture is referenced without a Server Prefix, so the tag resolution context is local to the client project. If the client project does not define that tag (or defines it with a different data type), the picture displays ##### in I/O fields, the bar/needle of a slider, or static initial values in trend views.

The Server Prefix is the text that WinCC prepends to tag names when communicating with a remote server. It is configured per server in Server Data in the WinCC Explorer of the client. Standard default prefixes look like Server1::, Server2::, etc. A picture with a tag reference such as Server1::Motor_RPM will resolve only on a client that has a Server Prefix Server1 bound to a live server carrying that tag.

To run local pictures and still consume server tags, two options are supported:

  1. Configure the Server Prefix manually in the Server Data dialog of the client. The client knows the tag is prefixed and routes the request to the remote server.
  2. Set the Standard Server property on the client. Any tag request without an explicit prefix is automatically routed to the standard server. This is the typical setting for a single-server project.

Copying the entire GraCS folder from the server to the client does not by itself produce a working configuration. The picture opens locally (fast), but tag prefixes inside the picture still reference the server name. If Standard Server is not set or the configured server does not match the prefix, tag values stop updating.

Critical: After copying GraCS from the server to the client, run a project consistency check (right-click project » Check Consistency) and verify the client's Server Data names match the Server Prefix strings embedded in the local pictures.

4. PDLCache Folder — Recommended Mechanism

The PDLCache folder is created and maintained automatically by the WinCC Server the first time a client opens a picture whose source is on the server. From that point, every picture change request from any client is answered from the cache if available. The cache:

  • Mirrors the compiled .pdl files served by the server's GraCS directory.
  • Carries the Server Prefix with each picture because the source picture is the same file used by the server.
  • Is shared between all clients connected to that server; the server's PDLCache reduces network traffic and picture open latency by up to 60% for first-open pictures on a cold client.

Enable PDLCache via the server's computer properties:

  1. Open WinCC Explorer on the server.
  2. Right-click Computer » Properties » Graphics tab.
  3. Tick Use PDL Cache and confirm the cache path (default <Project>\PDLCache).
  4. Restart the WinCC Runtime on the server and reconnect all clients.

The PDLCache folder is the only mechanism that works correctly when the client connects to more than one server, because the cache is per-server. Each server populates its own PDLCache, and the client routes picture requests through the Server Prefix that is bound to the live tag context.

5. Standard Server Property and Multi-Server Scenarios

The Standard Server property is a single boolean per server entry on the client. If a client has two configured servers (Server A and Server B) and only Server A is marked as standard, then any tag without a prefix in a server-side picture is routed to Server A. Tags that exist only on Server B must be referenced with an explicit prefix, for example ServerB::Tank_Level.

Configuration Standard Server Picture Storage Tag Resolution Recommended Use
Single-server plant Server1 = Yes Server1 GraCS + PDLCache Unprefixed tags → Server1 Typical single-area SCADA
Multi-server plant, same project family Server1 = Yes, Server2 = No PDLCache on each server Unprefixed → Server1, Server2::Tag → Server2 Two production lines, common overview
Redundant pair (WinCC/PCS 7 OS pair) Preferred partner = Yes PDLCache on each server Mirror partner auto-fails over High-availability plant
Client with own project (no shared picture) n/a Local GraCS only Server package copies tags into local project Operator station with custom graphics

Setting the Standard Server to None (no standard server) is supported, but every tag in every server-side picture must carry an explicit prefix. The runtime will fail to resolve unprefixed tags with error 1001 Tag not found written to the WinCC diagnosis file WinCC_Sys_<computername>_<timestamp>.log.

6. @Screens — System Screens Explained

WinCC uses the at-sign prefix (@) as a marker to identify system screens. System screens are generated and updated by the WinCC OS Project Editor (PCS 7) or by Basic Process Control (BPC) and are never authored by hand in the Graphics Designer. Examples include:

  • @Overview.pdl — generated area overview
  • @Alarm.pdl — PCS 7 alarm summary view
  • @Trend.pdl — PCS 7 trend group display
  • @PG_Overview.pdl — Picture generator output

The runtime treats @ screens identically to normal pictures for file resolution, but it enforces that the calling picture must reference them by their full name including the at sign. Copying an @ screen to the client GraCS folder does not work because the screen is regenerated on the server by the project editor and may contain server-specific archive and tag references that the client cannot resolve.

The @ sign is purely a naming convention — the file is still a normal .pdl file. There is no separate @ screen engine and no special loader. The benefit of the marker is twofold: it prevents operators from accidentally editing a system screen, and it lets the OS Project Editor overwrite these files safely on each compile without overwriting engineer-authored screens.

Practical tip: When opening a WinCC project that includes PCS 7 OS components, the client GraCS folder will contain @ screens that are not used by that client. This is normal. Do not delete them; the OS Project Editor expects to find them and will recreate them on the next compile.

7. Client with Own Project vs Client without Own Project

WinCC distinguishes two client operating modes. The selection governs whether picture files are local, remote, or hybrid.

Property Client without own project Client with own project
Picture source Server GraCS + PDLCache Client local GraCS only
Tag source Live server connection via Server Prefix Imported server package (snapshot) into local project
Tag updates Real-time Real-time (via imported server package references)
Configuration effort Low High — must export server package, import into client project, regenerate graphics
Use case Standard operator station Station with custom HMI screens, training simulator, or station that runs offline

To configure a Client with its own project:

  1. On the server, export the server package: right-click the server in WinCC Explorer » Server Data » Export Server Package. This creates a .pck file with the project configuration, tag list, and archive definitions visible to the client.
  2. Copy the .pck file to the client.
  3. On the client, in the local WinCC project, import the package: Server Data » Import Server Package.
  4. Author the client-specific .pdl files locally and reference the imported server tags with their full Server Prefix name (e.g. Server1::Motor_RPM).
  5. Compile the client project and start runtime.

The server package mechanism means that the client can hold the full set of available tags and archives locally, even though the actual values continue to come from the live server. This is the configuration that supports a training simulator: a separate server with simulated values can be paired to the same client, and the operator screens run unchanged because the prefix is the same.

8. Multi-Server Picture Loading — Inserting Multiple Server Data

For a client that connects to several servers, each server must be added to the client's Server Data. The Server Prefix in the picture file must match the prefix in the client's server data, otherwise the picture opens but the tag is not found.

WinCC Client Operator station Server1 (Area A) Standard = Yes Server2 (Area B) Standard = No Server3 (Area C) Standard = No Server1::Tag Server2::Tag Server3::Tag PDLCache: Server1\PDLCache PDLCache: Server2\PDLCache PDLCache: Server3\PDLCache

The runtime opens a picture with prefix Server2:: only when Server2 is online and the picture name exists in the Server2 GraCS or in PDLCache on Server2. If the server is offline, the picture opens but the tag references return 1001 Tag not found.

9. Performance Tuning Parameters

The following parameters in the WinCC project file wincc_projects_ps<computername>.ini and the registry govern picture loading behavior:

Parameter Default Recommended Effect
PDLCacheEnable 0 1 Enables PDLCache creation on the server
PDLCacheSize (MB) 100 500–2000 Cache size; raise for large picture counts
PictureCacheSize (entries) 50 200 In-memory picture cache; raise to reduce recompile hits
GraphicsRuntimeResolution 96 DPI Match client monitor Avoids re-rasterization on every open
LazyPictureLoad 0 1 (large plants) Defers non-visible picture components until needed
Registry path: HKLM\SOFTWARE\Siemens\WinCC\RT\Graphics holds the runtime-side cache sizes. Modify only during a maintenance window — WinCC Runtime must be stopped, the value changed, and the runtime restarted for the change to take effect.

10. Troubleshooting Matrix

Symptom Likely Cause Diagnostic Resolution
Picture opens slowly, several-second delay on first open PDLCache disabled or cold Check Computer Properties » Graphics on server; check PDLCache folder size Enable PDLCache, pre-warm by opening each picture once from the server
Tag shows ##### in I/O field after copy of GraCS to client Standard server not set; Server Prefix mismatch Open client Server Data; compare prefix with picture text Set standard server or rewrite tags with explicit prefix
Picture shows static values, never updates Local GraCS picture without server package import Check client's Server Data » Server package Import server package, or move picture back to server GraCS
Log shows 1001 Tag not found Tag prefix points to offline server Open WinCC Explorer &emdash Server Data &emdash Status Bring server online or remove the reference
Start picture works, nested pictures do not Mixed path context — start picture on server, child on client Trace picture path through APDIAG log Use PDLCache for consistency or move all pictures to same source
Edited picture not visible on client Client GraCS has older local copy Compare file timestamps between server and client Re-compile project on client or delete local GraCS copy
@Overview.pdl missing after client compile OS Project Editor not run on client Check OS Project Editor log Re-run OS Project Editor on the client and re-compile

11. Commissioning Procedure for a New Client

Follow this sequence to commission a client that loads a mix of local and server pictures reliably.

  1. Install WinCC Runtime on the client machine. Match the version (and update level) to the server. Mismatched .pdl versions cause open errors and the runtime logs 1401 Picture cannot be opened.
  2. On the server, export the server package for the client and copy the .pck file to the client.
  3. On the client, open WinCC Explorer, create a project (or open the existing client project), and import the server package under Server Data.
  4. Add the client to the server's Computer list and grant the appropriate operator rights.
  5. Enable PDL Cache on the server.
  6. Copy the start picture to the client GraCS folder only if a custom design is required. Otherwise, leave GraCS empty on the client and rely on PDLCache.
  7. Start the server runtime, then start the client runtime. The client login screen should appear within 5–15 seconds depending on the network latency.
  8. Open each operator screen once. The first open populates the PDLCache. Subsequent opens load from cache.
  9. Verify tag updates by changing a process value on the server (e.g. via a simulator) and confirming the I/O field on the client updates within the configured acquisition cycle (default 1 s).
  10. Trigger an alarm on the server and confirm the client's alarm line shows the same message text and color within 2 s of the trigger.
Verification: A correctly configured client with PDLCache and a working server package will open the start picture in < 1 s after the first cold open. The APDIAG log (path: <Project>\Diagnostics\) should not contain entries for 1001 Tag not found or 1401 Picture cannot be opened after commissioning.

12. Differences Between WinCC V7 and TIA Portal WinCC

The PDLCache mechanism and Server Prefix handling described in this reference apply to WinCC V7.x and WinCC Professional (TIA Portal) running in a distributed server-client configuration. For WinCC Unified (TIA Portal), the picture cache behavior is implemented on the Unified runtime, but the Server Prefix concept is replaced by the HMI tag connection with a connection name. The picture file extension .pdl remains, but the project layout differs.

Feature WinCC V7 WinCC Professional (TIA) WinCC Unified
Picture file .pdl .pdl .pdl
Cache folder PDLCache PDLCache Unified cache directory
Server prefix Yes Yes (connection name) Connection-based
Local GraCS on client Supported Supported Limited (Unified station project)
Server package export Yes (.pck) Yes (.pck) Via HMI tag connection
@ system screens Yes (PCS 7 OS) Yes (PCS 7 OS) Limited

13. Diagnostic Log Locations

The following log files are the primary sources for diagnosing picture loading problems on a WinCC Client:

Log File Location Contents
WinCC_Sys_<PC>_<TS>.log <Project>\Diagnostics\ Runtime status, server connections, tag resolution errors
APDIAG <Project>\Diagnostics\ Picture open events, cache hits/misses, nested picture calls
PDLCache.log <Project>\PDLCache\ Cache population and eviction events
WinCC_RT_<TS>.txt %TEMP%\ Runtime startup, license, computer name resolution

To increase log verbosity for picture-related diagnostics, set the registry value HKLM\SOFTWARE\Siemens\WinCC\RT\Diagnostics\Level to 3 and restart the runtime. The default value is 1 (errors only).

14. Field-Proven Best Practices

  • Always use PDLCache for plants with more than one operator station. The cache is invisible to the operator and dramatically reduces picture open time on warm clients.
  • Do not mix local and server pictures for the same screen on the same client. Pick one source per picture and stick to it. Mixing produces the start-picture / nested-picture mismatch described in section 2.
  • Keep the WinCC version (including HF / update level) identical on every server and client in the plant. A client on V7.4 SP1 connecting to a server on V7.5 will load pictures from PDLCache but the .pdl compile target may differ, producing log entries for 1401 errors.
  • Set Standard Server deliberately. Do not leave it on the first server in the list by accident. If a client genuinely uses more than one server, set the most-used server as standard and qualify all other tags with explicit prefix.
  • After any change to server tag names, re-export the server package and re-import on every client. The local GraCS pictures still reference the old tag names until the package is refreshed.
  • For PCS 7 plants, never delete @ screens from the client GraCS. The OS Project Editor expects to find and update them.

15. References to Official Siemens Documentation

For project-specific configuration, refer to the WinCC V7.x documentation set in the Siemens Industry Online Support portal. The manuals that govern the behavior described in this reference include:

Verify the exact error code returned for a given failure mode against the WinCC V7.x error code reference in the manual listed above. The codes 1001 and 1401 referenced in this article are stable across V7.4 and V7.5.

Does copying GraCS from the server to the client make pictures load faster without breaking tags?

Copying GraCS from the server to the client does open local pictures faster, but the tag references inside the picture still carry the Server Prefix. Set the Standard Server property on the client to the server that owns those tags, or rewrite the tags with an explicit prefix matching the client's Server Data. The recommended production mechanism is PDLCache, which gives the same performance benefit without breaking the Server Prefix context.

What is the difference between @screens and normal screens in WinCC?

The @ prefix is a naming convention used by the PCS 7 OS Project Editor and BPC to mark system-generated screens (e.g. @Overview.pdl, @Alarm.pdl). The runtime loads them the same way as a normal .pdl, but the convention prevents accidental manual editing and lets the editor regenerate them on every compile. Do not delete @ screens from the client GraCS folder.

How does a client with two configured servers resolve a picture with no Server Prefix?

The client routes the request to the server marked as Standard Server in its Server Data. If no standard server is set, the unprefixed tag returns error 1001 Tag not found in the WinCC Sys log. For a multi-server plant, set the most-used server as standard and qualify all other tags with the explicit prefix, e.g. Server2::Tank_Level.

Why does the start picture load from the server even when the client has a local copy?

WinCC inherits the picture path context from the first picture opened. If the start picture is served from the server's GraCS (or PDLCache), all nested picture windows resolve through the server path even when an identical file exists locally. To get a consistent local load, place the start picture in the client GraCS and ensure no nested picture call re-opens a server-path file.

How is PDLCache enabled and what is the recommended size?

Open the server's WinCC Explorer, right-click Computer » Properties » Graphics, tick Use PDL Cache, and restart the WinCC Runtime. The default cache size is 100 MB; raise it to 500–2000 MB for plants with several hundred operator pictures. The cache folder lives under <Project>\PDLCache and is shared between all clients connected to that server.

Can a WinCC V7 client connect to a WinCC V7.5 server?

Mixed-version configurations are not officially supported. The .pdl compile target differs across service packs, producing 1401 Picture cannot be opened errors in the WinCC Sys log. Keep the WinCC version and update level identical on every server and client in the plant, or upgrade the entire plant to the target version before commissioning new operator stations.

Back to blog