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 |
@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.
-
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. -
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
binfolder structure. -
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
hostnamefromcmd.exe). A mismatch is the most common cause when the project is moved to a new PC. -
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. -
Capture PMDiagnose output. From the WinCC installation, navigate to
<install>\WinCC\ut\binand runPMDiagnose.exe. Save the log to a network share; look for entries containingPDT,CRC,computer name, orlibrary. -
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. -
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.
- 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.
- 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. - 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.PDTand@MyPlant.sav. - 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.
- 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.
- Open the picture that previously produced the dialog. The "Failed to Open Document" dialog should no longer appear.
@-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.
- Close WinCC Explorer and the Graphics Designer as in Solution A step 1.
- Navigate to
<projectpath>\GraCS\and locate the target file. You should see three siblings:myscreen.PDL,myscreen.bak, andmyscreen.log. - Copy
myscreen.bakto a temporary working folder such as%TEMP%\wincc_repair\. Do not modify the original. - Rename the copy from
.bakto.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"
- Verify the renamed file is well-formed by opening it in Notepad. The header must begin with the magic sequence
P5Tfollowed by the picture identifier. If the file does not start withP5T, the .bak itself was corrupted; try the older backup in your version-control history. - Replace the broken picture by moving the recovered file into
<projectpath>\GraCS\. Confirm WinCC is closed before the move. - 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.
- Confirm WinCC Explorer and Runtime are both stopped.
- Open Run with
Win+Rand typereset_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). - Confirm the UAC prompt if the WinCC installation is on a protected path. The script requires administrative privileges to rewrite files under
Program Files. - Wait for the script to report completion. The dialog will show a list of services restarted and cache files rebuilt.
- Re-open the project in WinCC Explorer and verify the failing picture now opens.
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.
- From
cmd.exe, runhostnameand capture the exact Windows computer name (case-sensitive). - In WinCC Explorer, expand the project tree and click the Computer node. The Properties panel shows the project's stored computer name.
- 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).
- Verify the domain/workgroup state matches the original installation. If the original PC was joined to
PLANT.DOMand the new PC is inWORKGROUP, 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". - Restart WinCC Explorer and verify the picture opens.
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.
- 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.
- Run Start → Programs → Siemens Automation → WinCC → Tools → Project Migrator (or
CCMigWizard.exein<install>\WinCC\bin). - Point the wizard at the V6.x project folder; select the target V7 version explicitly (V7.0 SP3, V7.3, or V7.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.
- For each failed picture, open the V6.x
.PDLsource 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 |
- After re-linking libraries, force a regeneration of
@project.PDTby deleting the file as in Solution A. - Open the picture tree and confirm every picture opens without the dialog. If only some pictures fail, apply Solution B (
.bakrecovery) 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.
- Close WinCC Explorer and Runtime.
- Delete
@project.PDTand@project.savas in Solution A. - Re-open the project in WinCC Explorer.
- Right-click the project root → Rebuild All. This triggers a full picture tree rebuild and will regenerate every derived index in the project.
- 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, andPDLCompile*.logto.gitignoreor 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.
- 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.
- 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.
- Compiler consistency check: Right-click the project root → Compiler → Check Consistency. Resolve any flagged pictures using Solution B before proceeding.
- 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.
-
PMDiagnose clean-state check: Run
PMDiagnose.exeagain and confirm no entries with severity "Error" remain in the output log. -
Backup verification: Confirm that a new
.bakfile 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.