WinCC V7.3 'Failed to Open Document' PDL Error: Repair Guide

David Krause17 min read
HMI / SCADASiemensTroubleshooting
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

1. Problem Overview

Operators and engineering staff working on Siemens WinCC V7.0 through V7.4 SCADA stations periodically report a modal dialog box titled "Graphics Designer: Failed to Open Document" when they attempt to open a Process Data Library picture file (.PDL) from the project tree or by double-clicking the file in Windows Explorer. The dialog is dismissable but the picture never loads; the Graphics Designer canvas remains empty and the project navigation tree shows the file as an unresolvable node until the editor is restarted. The fault is non-fatal to runtime — RT will continue to display the previously cached picture — but it blocks engineering change management, picture-tree rebuilds, and runtime re-compilation.

This document is the consolidated repair reference for the error, covering the four documented root-cause paths (corrupt @project.PDT, corrupt @project.sav, mismatched computer name, and V6.x migration artifacts), the manual and automated recovery procedures, the diagnostic log fields that confirm each root cause, and the prevention policy that should be in place before the next engineering change cycle.

2. Affected Versions and Components

Component Versions Verified Symptom Behavior
WinCC V7.0 / V7.0 SP1 / SP2 / SP3 7.0.0.0 – 7.0.3.x Dialog appears; @project.PDT regeneration required after SP3 HF13
WinCC V7.2 7.2.0.0 – 7.2.1.x Same dialog; reset_wincc.vbs path differs (WinCC bin path updated in V7.2)
WinCC V7.3 / V7.3 SP1 / SP2 / SP3 7.3.0.0 – 7.3.3.x Most-reported version; PDL fails to bind to library index; rename PC after project copy is the dominant trigger
WinCC V7.4 / V7.4 SP1 7.4.0.0 – 7.4.1.x Dialog wording changed to "The picture could not be opened"; root cause identical
WinCC Migration Tool V6.0 / V6.2 → V7.x Source PDL files from pre-V7 projects do not include the V7 @project.PDT header; require full regeneration
Graphics Designer (GfxRtm.exe) All V7.x Source of the dialog; logs to GfxRtm.log
WinCC Explorer / Runtime All V7.x Picture remains in RT cache; only design-time is impacted

3. Root Cause Hierarchy

The "Failed to Open Document" dialog is a single surface symptom with four underlying causes. Diagnose in the order shown because the lowest-cost recovery (regenerate @project.PDT) resolves the most common cases and avoids unnecessary reset or migration repair.

Rank Cause Indicator Resolution Cost
1 Corrupt @project.PDT index file GfxRtm.log entries "PDT not loadable", "PDT CRC mismatch" Low — delete file, restart
2 Corrupt @project.sav global variable file Cannot resolve tags, "sav CRC" entries Low — delete file, restart
3 Mismatch between project computer name and Windows computer name PMDiagnose entries "Computer name mismatch", RT will not start cleanly Medium — rename PC or update project properties
4 V6.x → V7.x migration artifact (legacy PDL header, missing library link) All PDLs fail, not just one; picture tree rebuild required High — re-migrate or re-link libraries
Field note: Causes 1 and 2 frequently co-occur because the Graphics Designer writes the same handle to both files in a single transactional commit. If the Windows process hosting the Graphics Designer was terminated by power loss or by a forced taskkill during a save, both files will usually be invalid. Always delete both @project.PDT and @project.sav on the first repair pass even if the diagnostic only mentioned one.

4. File Inventory — What Is @project.PDT?

The @project.PDT file is the Picture Descriptor Table, an internal binary index that the Graphics Designer maintains to map each .PDL filename in the project to its on-disk location, its owning library, and its compiled display list. It is regenerated automatically by the Graphics Designer on first open of any picture if the file is missing. It is not part of the source-controlled picture set; engineers should treat it as a transient cache and exclude it from version-control check-ins.

The companion file @project.sav is the Global Variable Save Table — a serialized snapshot of the tag namespace used for offline tag resolution inside the Graphics Designer (it does not replace the tag database that WinCC reads at runtime). Like the PDT, it is regenerated automatically and should be excluded from version control.

File Location Function Regenerated By Source-Controlled?
@<projectname>.PDT <projectpath>\GraCS\ Picture descriptor index Graphics Designer first open No
@<projectname>.sav <projectpath>\GraCS\ Tag namespace snapshot for offline design Graphics Designer first open No
<name>.PDL <projectpath>\GraCS\ Picture source file (XML-like proprietary format) Engineer via Graphics Designer Yes
<name>.bak <projectpath>\GraCS\ Auto-backup of last healthy PDL Graphics Designer pre-save Yes
<name>.log <projectpath>\GraCS\ Per-picture edit history Graphics Designer on save Optional

5. Pre-Repair Diagnostic Checklist

Run the following checks before touching any files. Skipping them is the most common reason a "simple" PDT delete does not resolve the symptom.

  1. Confirm the project path. From WinCC Explorer: right-click the project node → Properties → Project Path. Note the absolute path; it must match the path returned by Get-ChildItem 'HKLM:\SOFTWARE\Wow6432Node\Siemens\Automation\WinCC\Projects' in PowerShell.
  2. Verify the WinCC version. From Help → About in WinCC Explorer. The procedure differs slightly between V7.0 SP3 and V7.4; confirm before following steps that depend on the bin folder structure.
  3. Compare the Windows computer name to the project's computer name. In WinCC Explorer: right-click Computer node → Properties. The Computer Name field must equal the Windows hostname (check hostname from cmd.exe). A mismatch is the most common cause when the project is moved to a new PC.
  4. Check the domain/workgroup status. From sysdm.cpl → Computer Name. WinCC V7.x must be installed on the same domain/workgroup state as the original installation. Switching from domain to workgroup after project migration will silently corrupt the project handle even if every other check passes.
  5. Capture PMDiagnose output. From the WinCC installation, navigate to <install>\WinCC\ut\bin and run PMDiagnose.exe. Save the log to a network share; look for entries containing PDT, CRC, computer name, or library.
  6. Verify NTFS permissions on the project folder. The Windows user that runs WinCC Explorer and the Graphics Designer must have Modify rights on <projectpath>\GraCS\ and <projectpath>\library\. Read-only NTFS rights will silently produce the same dialog because the Graphics Designer cannot write the regenerated PDT.
  7. Capture GfxRtm.log. The most recent log is in <install>\WinCC\Diagnostics\. Open it and search for the timestamp of the failed open; the entry directly above the dialog pop will reference the specific file or index that failed.

6. Solution Path A — Manual @project.PDT and @project.sav Recovery

This is the canonical fix for the dominant cause (corrupt PDT). Both files are regenerable and safe to delete. Total recovery time: under two minutes for a single-station project.

  1. Close all WinCC components: WinCC Explorer, Graphics Designer, and WinCC Runtime. Use Start → Programs → Siemens Automation → WinCC → Stop WinCC Runtime or the equivalent stop script in your project. Do not skip this step; deleting a PDT that is held open by the runtime will produce a "sharing violation" and leave the project in an inconsistent state.
  2. Open the project picture folder in Windows Explorer: %ProgramFiles(x86)%\Siemens\Automation\WinCC\WinCCProjects\<projectname>\GraCS\ for default installations, or your project's custom path as captured in step 1 of the diagnostic checklist.
  3. Verify the presence of the two files. The prefix @ is intentional — it places them at the top of an alphabetical sort and signals internal index status. Typical names: @MyPlant.PDT and @MyPlant.sav.
  4. Delete both files. Move them to a recycle bin first if your site policy requires audit traceability; a Windows Shift+Del is acceptable only when the project is under a backed-up version-control system.
  5. Re-launch the Graphics Designer from WinCC Explorer. On first open, the designer will detect the missing index and regenerate both files. This takes 5–30 seconds depending on project size; a 5,000-picture project will regenerate the PDT in under 60 seconds on a modern workstation.
  6. Open the picture that previously produced the dialog. The "Failed to Open Document" dialog should no longer appear.
Warning: Never delete any other @-prefixed file in GraCS\. Files such as @Default.PDL are user-maintained startup pictures and are not regenerable.

7. Solution Path B — PDL Backup Recovery from .bak

If Solution A clears the dialog but the specific picture that prompted the report still fails to open, the PDL itself is corrupt. The Graphics Designer writes a .bak snapshot of each picture immediately before it saves the new version, so the previous healthy state is always available. Use the .bak as the source of truth and re-introduce the in-flight edits manually.

  1. Close WinCC Explorer and the Graphics Designer as in Solution A step 1.
  2. Navigate to <projectpath>\GraCS\ and locate the target file. You should see three siblings: myscreen.PDL, myscreen.bak, and myscreen.log.
  3. Copy myscreen.bak to a temporary working folder such as %TEMP%\wincc_repair\. Do not modify the original.
  4. Rename the copy from .bak to .pdl. PowerShell example:
Copy-Item "C:\WinCC\MyPlant\GraCS\myscreen.bak" "$env:TEMP\wincc_repair\myscreen.PDL"
Get-ChildItem "$env:TEMP\wincc_repair\myscreen.PDL" | Rename-Item -NewName "$_.bak" -PassThru
Rename-Item "$env:TEMP\wincc_repair\myscreen.PDL.bak" "$env:TEMP\wincc_repair\myscreen.PDL"
  1. Verify the renamed file is well-formed by opening it in Notepad. The header must begin with the magic sequence P5T followed by the picture identifier. If the file does not start with P5T, the .bak itself was corrupted; try the older backup in your version-control history.
  2. Replace the broken picture by moving the recovered file into <projectpath>\GraCS\. Confirm WinCC is closed before the move.
  3. Open the picture in the Graphics Designer, re-apply the most recent change set from the engineer's notes, and save.

8. Solution Path C — reset_wincc.vbs Standard Reset

The reset_wincc.vbs script is shipped with every WinCC V7.x installation and performs a clean regeneration of every runtime cache, including the PDT and SAV files. Use it when Solution A does not resolve the dialog or when multiple symptoms appear simultaneously.

  1. Confirm WinCC Explorer and Runtime are both stopped.
  2. Open Run with Win+R and type reset_wincc.vbs. The script is on the system PATH because the WinCC installer registers it; if Windows cannot find it, invoke it directly with the full path: "C:\Program Files (x86)\Siemens\Automation\WinCC\bin\reset_wincc.vbs" (V7.0 / V7.2) or "C:\Program Files\Siemens\Automation\WinCC\bin\reset_wincc.vbs" (V7.3 / V7.4 with 64-bit installer).
  3. Confirm the UAC prompt if the WinCC installation is on a protected path. The script requires administrative privileges to rewrite files under Program Files.
  4. Wait for the script to report completion. The dialog will show a list of services restarted and cache files rebuilt.
  5. Re-open the project in WinCC Explorer and verify the failing picture now opens.
Limitation: reset_wincc.vbs resets project-local caches only; it does not re-import libraries, does not touch PDL backups, and does not repair the picture tree. For library-level damage, follow Solution Path D.

9. Solution Path D — Computer Name and Domain Reconciliation

When a project is copied to a new PC or recovered from a backup onto a different workstation, the WinCC project retains the Computer Name of the original installation. The Graphics Designer validates this name against the Windows hostname at picture-open time; a mismatch produces the same "Failed to Open Document" dialog even when the PDT is healthy.

  1. From cmd.exe, run hostname and capture the exact Windows computer name (case-sensitive).
  2. In WinCC Explorer, expand the project tree and click the Computer node. The Properties panel shows the project's stored computer name.
  3. If the two values differ, choose one of two paths:
  • Path D.1 — Rename the PC: From sysdm.cpl → Computer Name → Change, set the hostname to match the project's stored value. Reboot. This is the preferred path when the project will remain on this hardware long-term.
  • Path D.2 — Update the project: In WinCC Explorer, right-click Computer → Properties, and change the computer name to match the current Windows hostname. This is the preferred path when the project is being moved frequently (development laptops, virtualization hosts).
  1. Verify the domain/workgroup state matches the original installation. If the original PC was joined to PLANT.DOM and the new PC is in WORKGROUP, rejoin the domain or update the WinCC configuration to expect the workgroup. A difference here will surface in PMDiagnose as "Domain controller unreachable" or "User authentication failed".
  2. Restart WinCC Explorer and verify the picture opens.
Domain gotcha: When copying a project between a domain-joined PC and a workgroup PC, the NTFS owner of the project folder inherits from the source user. After the copy, take ownership as the local user that will run WinCC, otherwise the Graphics Designer may still fail with a generic "cannot open" dialog even when permissions appear correct in Explorer.

10. Migration-Specific Repair: V6.0 / V6.2 → V7.0 SP3 / V7.3

Projects originally authored in WinCC V6.0 or V6.2 use a different PDL on-disk format and lack the V7 @project.PDT index. The WinCC Migration Tool (included on the V7 installation media) handles the conversion, but failures during migration leave the project in a half-migrated state where every picture fails to open with the same dialog. Use this procedure to complete the migration manually.

  1. Confirm the source project was opened at least once in V6.2 SP2 or later. Earlier versions (V6.0 SP4 and below) cannot be migrated and must be re-authored.
  2. Run Start → Programs → Siemens Automation → WinCC → Tools → Project Migrator (or CCMigWizard.exe in <install>\WinCC\bin).
  3. Point the wizard at the V6.x project folder; select the target V7 version explicitly (V7.0 SP3, V7.3, or V7.4).
  4. Watch the migration log for any picture that fails to convert. Pictures flagged as failed will produce the V7 "Failed to Open Document" dialog even after the migration completes.
  5. For each failed picture, open the V6.x .PDL source in a text editor and check for embedded VBA macros or ActiveX controls that V7 no longer supports. Replace legacy controls with their V7 equivalents:
V6.x Control V7 Replacement Notes
Siemens HMI Symbol Library 1.0 Siemens HMI Symbol Library 2.0 Re-link from <install>\WinCC\library\
WinCC Alarm OCX 6.x WinCC Alarm Control 7.x Re-add via toolbox
WinCC Trend 6.x WinCC Trend Control 7.x Archive bindings preserved
Custom V6 VBA macros VBScript via Global Script Requires manual rewrite
  1. After re-linking libraries, force a regeneration of @project.PDT by deleting the file as in Solution A.
  2. Open the picture tree and confirm every picture opens without the dialog. If only some pictures fail, apply Solution B (.bak recovery) to each one.

11. PDC and Picture-Tree Rebuild

When the picture tree itself shows missing or duplicate nodes, the underlying Picture Document Cache (PDC) is out of sync. The PDC is stored inside the project database and is rebuilt automatically when you issue a full compile. Use this when the dialog appears on multiple pictures but Solution A still leaves intermittent failures.

  1. Close WinCC Explorer and Runtime.
  2. Delete @project.PDT and @project.sav as in Solution A.
  3. Re-open the project in WinCC Explorer.
  4. Right-click the project root → Rebuild All. This triggers a full picture tree rebuild and will regenerate every derived index in the project.
  5. Verify with a compile check: right-click the project root → Compiler → Check Consistency. The compiler must report zero errors before any picture is considered safe to open in the Graphics Designer.

12. Diagnostic Log Reference

Match the dialog symptom to the log entry to confirm the root cause before applying any of the above solutions.

Log File Location Typical Entry Implies
GfxRtm.log <install>\WinCC\Diagnostics\ PDT::Load failed: CRC mismatch @MyPlant.PDT offset 0x4A20 Solution A
GfxRtm.log <install>\WinCC\Diagnostics\ SAV::Load failed: tag namespace truncated Solution A
PMDiagnose.log <install>\WinCC\Diagnostics\ Computer name mismatch: project='PC-OFFLINE-01', actual='PC-LINE-12' Solution D
PMDiagnose.log <install>\WinCC\Diagnostics\ Domain controller unreachable for project principal Solution D, domain rejoin
GfxRtm.log <install>\WinCC\Diagnostics\ PDL header magic mismatch: expected P5T, got P5V Migration repair (Section 10)
WinCC_Sys.log <install>\WinCC\Diagnostics\ Library index stale: 'HMI Symbol Library 2.0' not bound Library re-link

13. Prevention and Engineering Best Practices

  • Exclude transient caches from version control. Add @*.PDT, @*.sav, *.tmp, and PDLCompile*.log to .gitignore or the equivalent ignore list in your source-control system. Committing them produces a "works on my machine" pattern where the regenerated cache from a different engineer breaks the build on the next PC.
  • Snapshot before and after every engineering change. WinCC provides Project Duplicator (CCProjectDuplicator.exe) on the installation media. Schedule a daily duplicate of the project to a backup share. This is the fastest way back to a known-good state when a corruption is detected hours after it occurred.
  • Centralize library deployment. Host the WinCC library folder (<install>\WinCC\library\) on a read-only file share and point all engineering stations to it via UNC. This eliminates "works on one PC, fails on another" caused by library version drift between workstations.
  • Validate computer name at boot. Add a login script that compares the Windows hostname to a project-level expected value stored in <project>\ComputerName.txt. If the values differ, the script logs a warning to the Windows event log before the engineer can open the project.
  • Use the WinCC Station Configurator for backup PCs. When you must move a project to a new PC, use the Configurator (Start → Siemens Automation → WinCC → Station Configurator) to register the project against the new installation. This avoids the manual computer-name and domain mismatches that produce the dialog.
  • Document migration chains. When you migrate from V6.x to V7.x, save a copy of the original V6.x project folder before running the migrator. A future rollback path must always exist.

14. Verification and Post-Repair Validation

After any of the four solution paths, perform the following checks before declaring the station healthy.

  1. Picture open test: Open the originally failing picture from the Graphics Designer tree. No dialog should appear and the canvas should populate within 5 seconds.
  2. Bulk open test: Select all pictures in the project tree (Ctrl+A) and open them in a batch by holding Ctrl and double-clicking. The Graphics Designer will open up to eight pictures concurrently; each must open without error.
  3. Compiler consistency check: Right-click the project root → Compiler → Check Consistency. Resolve any flagged pictures using Solution B before proceeding.
  4. Runtime warm-start test: Start the WinCC Runtime. Confirm that every picture that previously opened in the Graphics Designer also opens at runtime within 3 seconds of being called. A runtime-only failure indicates that the cached display list is stale and requires an RT Reset from the project properties.
  5. PMDiagnose clean-state check: Run PMDiagnose.exe again and confirm no entries with severity "Error" remain in the output log.
  6. Backup verification: Confirm that a new .bak file is generated when an engineer saves a deliberate test edit to a picture. This confirms the backup pipeline is still functional for future incidents.

15. Common Mistakes to Avoid

  • Deleting the .PDL instead of the .PDT. The two file extensions differ by only one letter; deleting the picture source will require restoration from backup and is a recoverable but expensive mistake. Always double-check the extension before pressing Delete.
  • Running reset_wincc.vbs while Runtime is active. The script will refuse to proceed, but if forced, will leave the project in an inconsistent state. Always stop Runtime first.
  • Re-importing a library without stopping Graphics Designer. The Graphics Designer holds a file handle to the library for the duration of the session. Library changes will not propagate until the designer is restarted, and the dialog will reappear even after a successful re-link.
  • Assuming the dialog is a permissions issue. Permissions failures produce a different dialog ("Access denied") with a Windows error code. The "Failed to Open Document" dialog is internal to the Graphics Designer and is not a Windows ACL message.
  • Skipping the PMDiagnose capture before the repair. Without the baseline log, you cannot confirm after the repair that the new state is healthier than the old one. Always capture before and after.

16. When to Escalate to Siemens Support

If all four solution paths have been applied, the project was created on the same PC where it is currently installed, and the PMDiagnose log still shows repeated "PDT regeneration failed" or "Library not bound" entries, escalate via the official Siemens Industry Online Support portal. Open a support request with the SR number referencing the WinCC V7.x version, attach the PMDiagnose output, the GfxRtm.log, and the <project>\GraCS\ folder listing (excluding the @*.PDT and @*.sav files). Do not include the full PDL set in the first contact; Siemens support will request specific pictures by name based on the log analysis.

What causes the WinCC V7.3 'Failed to Open Document' error when opening a PDL?

The most common cause is a corrupted @<project>.PDT (Picture Descriptor Table) or @<project>.sav (tag namespace snapshot) file inside <projectpath>\GraCS\. Less commonly, a Windows computer-name or domain mismatch between the project and the host, or a V6.x to V7.x migration artifact, produces the same dialog.

Is it safe to delete @project.PDT and @project.sav?

Yes. Both files are transient caches regenerated automatically by the Graphics Designer on the next open. Stop WinCC Explorer and Runtime first, delete both files from <projectpath>\GraCS\, then relaunch the designer; regeneration typically completes in 5 to 60 seconds.

How do I run reset_wincc.vbs on WinCC V7.3?

Stop Runtime and the Graphics Designer, press Win+R, type reset_wincc.vbs, and confirm the UAC prompt. On a 64-bit V7.3 install the full path is C:\Program Files\Siemens\Automation\WinCCin eset_wincc.vbs. The script rebuilds project-local caches including the PDT and SAV files.

Can I recover a corrupted PDL from the .bak backup?

Yes. Close WinCC, copy <name>.bak out of <projectpath>\GraCS\ to a temp folder, rename the extension to .pdl, and replace the broken picture. Verify the file starts with the P5T header magic in a text editor before using it.

Does copying a WinCC project to a new PC cause this error?

Frequently. The project stores the original computer name and expects the same value at runtime. Rename the new PC to match the project's computer name (via sysdm.cpl) or update the project's stored computer name in WinCC Explorer under the Computer node properties. Also verify the domain or workgroup state matches the original installation.

Where is the PMDiagnose tool located in WinCC V7.3?

PMDiagnose.exe is located at <install>\WinCC\utin\PMDiagnose.exe (typically C:\Program Files\Siemens\Automation\WinCC\utin\ on a 64-bit V7.3 install). Run it before any repair to capture a baseline; entries containing PDT, CRC, computer name, or library will identify the root cause.

Back to blog