Resolving WinCC V7.3 PDL Text Showing ???? After Project Copy

David Krause10 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

Problem Overview

Siemens WinCC V7.3 is the SCADA/HMI layer of the SIMATIC PCS 7 and legacy STEP 7 V5.5 toolchain. Projects created as AS-OS combined archives pair a STEP 7 (S7) automation station project with a WinCC operator station project, and a typical archive contains thousands of .PDL picture description language files, supporting .PAS action scripts, and the TextLibrary / Textbib multilingual text definitions stored under the WinCC project database.

When a maintenance engineer copies the WinCC subproject of an AS-OS archive into a new (or rebuilt) project, it is common to encounter one of the following anomalies in the Graphics Designer:

  • Static text fields and button labels render as ???? (four question marks) instead of the original string.
  • IO field labels, group box titles, and status bar elements show a placeholder literal such as Temp or <temp>.
  • Several unrelated text objects collapse to an identical string even though the original PDL had distinct labels per field.

The anomaly is not a binary file corruption: the PDL opens, the layout is preserved, the dynamic connections (tag bindings, C scripts, VB scripts, animations) still resolve. Only the human-readable string content is lost. Because the text appears in the source window as well as at runtime, the fault is at compile time, not at runtime.

The WinCC V7.3 SP3 graphics runtime, the WinCC V7.4 SP1 upgrade, and the WinCC V7.4 ASIA release (used with STEP 7 V5.5 + S7-300/400) are all affected. The root cause is the same in every reported case: a mismatch between the language that the Textbib was created in and the language(s) currently installed in the destination project's Graphics Designer.

Root Cause Analysis

WinCC stores each user-defined text in the project database as a record with one or more language columns, indexed by the Windows LCID (locale identifier) of the editor in which the text was originally typed. The WinCC V7.3 System Manual (entry ID 109756799) describes this language model under the section "Text Library / Project Languages." When the Graphics Designer renders a static text object, it queries the project's active language list and falls back to the placeholder string when no matching language column exists.

1. Mismatched project language list

The destination project does not have English (United States) enabled under Project Properties → Language → Project Languages. If the original archive was created on a host whose default WinCC editing language was en-US (LCID 1033) and the destination project only has de-DE (LCID 1031) and en-GB (2057), every en-US-tagged text is unresolvable. The renderer substitutes the configured fallback placeholder, which by default is ????.

2. Text referenced from a missing Textbib

PDL text fields can be configured to source their content from the central text library (Textbib.mdb) by ID, not by literal. When the library file is not copied, or the IDs were re-numbered, the Graphics Designer cannot resolve the reference and again shows the fallback placeholder.

3. Computer name binding in the runtime environment

Some text objects and status displays use a @-prefixed system tag or a C-script call such as GetHostName() or DMGetRuntimeProject(). If the original project was bound to a host named HMI-STN-01 and the new PC is ENGINEERING-PC, certain faceplate elements (especially PCS 7 APL style status displays) display Temp as a stand-in until a complete re-compile is performed.

4. Windows regional format mismatches

Even when the project language list is correct, the underlying Windows locale (Control Panel → Region → Formats → Format:) governs how the WinCC string editor reads/writes multi-byte characters. A non-Unicode application such as WinCC Explorer 7.3 uses the system locale's code page. If the source PC used English (United States) and the destination PC is set to a different regional format, the string table values can be reinterpreted as ???? when the project is opened.

Affected Components and Versions

Component Version Range Behavior
SIMATIC WinCC V7.3 V7.3 + Upd3 through V7.3 SP3 Upd4 Texts show ???? on open
SIMATIC WinCC V7.4 V7.4 SP1 / V7.4 SP1 Upd10 Texts show Temp or ???? after copy
SIMATIC PCS 7 V8.0 SP1 / V8.1 With WinCC V7.3 OS Faceplate status texts show Temp
STEP 7 V5.5 + SP4 / SP5 AS-OS combined archive PDL, PAS, Textbib in archive
Graphics Designer runtime GfxRtm.dll < 7.3.3.18 Fallback placeholder < 4 chars

Step-by-Step Resolution

Step 1 - Verify and align the WinCC project language list

  1. Open the destination project in WinCC Explorer.
  2. Right-click the project root and select Properties.
  3. Switch to the Language tab.
  4. Confirm that English (United States) is listed with the checkbox enabled. If the original archive used additional languages (German, French, Chinese, Korean, etc.), enable those as well.
  5. Click Set as default runtime language for the language that should appear on the operator panel.
  6. Click OK and allow the database schema to update.
The WinCC project language list is stored in <ProjectPath>\<ComputerName>\<ProjectName>.pwl and the Textbib.mdb file under \GraCS\. Editing the MDB by hand is not supported; always use the project's Properties dialog.

Step 2 - Match Windows regional and language settings

  1. Open Control Panel → Region (Windows 7) or Settings → Time & Language → Region → Additional date, time, & regional settings (Windows 10).
  2. On the Formats tab, set Format: to English (United States).
  3. On the Administrative → Change system locale... dialog, set Current system locale: to English (United States). This requires a reboot.
  4. Open Control Panel → Language and verify that English (United States) is the Windows display language and the input method is the US keyboard layout.
  5. Reboot the engineering station before opening WinCC Explorer.

Step 3 - Reconcile the computer / host name

  1. Press Win + Pause to view the current computer name.
  2. Compare it to the value that the original project was created on. If they differ, either rename the new PC to match, or rebuild the project on the new host by opening it on the new machine, which causes WinCC to update internal references in the .pwl, GraCS\Textbib.mdb, and the ComputerName folder under the project root.
  3. Open the project, accept the prompt to update the host name, then close WinCC Explorer and reopen the project.

Step 4 - Recompile the text library

  1. In the WinCC Explorer, expand Graphics Designer and double-click Text Library.
  2. Verify that the original text IDs are present. If the Textbib table is empty, copy the file from the backup:
copy "\\backup-host\WinCC_Project\<ProjectName>\<OldHost>\GraCS\Textbib.mdb" "C:\WinCC\<ProjectName>\<NewHost>\GraCS\Textbib.mdb"
  1. Run Tools → Compile → Compile All in the Graphics Designer to regenerate the internal references between PDL text objects and the text library.

Step 5 - Repair residual ???? and Temp fields manually

After applying the previous steps, any text that was originally entered in a language that is no longer installed must be re-typed. Use the find-and-replace dialog in the Graphics Designer to expedite the process:

  1. Open the affected PDL in the Graphics Designer.
  2. Press Ctrl + F and search for ???? or Temp.
  3. Use the Replace tab to enter the original string per occurrence.
  4. Save the PDL, then perform a delta download to the runtime OS via the Server Explorer → Project Duplicator or WinCC OS Project Editor if this is a PCS 7 AS-OS environment.

Step 6 - Restore from a clean AS-OS archive

If the project is a STEP 7 + WinCC AS-OS combined archive, the cleanest recovery path is to re-extract the entire archive rather than to copy .PDL files piecemeal:

  1. On the engineering station, start SIMATIC Manager (STEP 7 V5.5).
  2. Open the backup file (typically <Project>.zip or the S7 backup .arc file).
  3. Choose File → Retrieve → AS-OS Combined and select a fresh target directory.
  4. Wait for STEP 7 to extract the WinCC subproject automatically. The OS project is restored to C:\WinCC\<ProjectName>\<NewHost>\ with all GraCS\*.PDL, *.PAS, and the Textbib.mdb in place.
  5. Open the OS project, allow the host name update, recompile, and test.

Verification

To confirm the repair:

  1. Open the Graphics Designer on a representative set of PDLs (process pictures, faceplate templates, alarm views, trend views).
  2. Verify that no ???? or Temp placeholders remain in static text, button labels, or IO field descriptions.
  3. Switch the runtime language from English (United States) to German (Germany) and back via the WinCC language switch button. All texts must remain intact in both languages.
  4. Activate the project (File → Activate in WinCC Explorer).
  5. Trigger a tag change in the AS and confirm that the corresponding dynamic text object (e.g., a valve status display) updates correctly.
  6. If the project is part of a redundant OS pair, perform an OS server switch and confirm the texts are identical on the standby server.

Preventive Measures

  • Standardize the engineering PC image. Use a base image with English (United States) as the system locale and the default WinCC editing language, and clone that image for every new engineering station.
  • Document the host name. The PC name is part of the project identity; changing it requires a project recompile. Lock the name at deployment time.
  • Use WinCC's Project Duplicator tool for OS server pairings instead of manually copying files.
  • After every engineering change, run Image → Create image of OS to capture a binary-level backup, or use File → Retrieve in the WinCC Explorer to make a project archive.
  • Always back up the entire C:\WinCC\<ProjectName>\ tree, including the <HostName>\GraCS\Textbib.mdb, the GraCS\PAS folder, and the Library folder.
  • Run a periodic Consistency Check via the PCS 7 OS Project Editor (under Options → OS Project Editor) before each FAT/SAT.

Project Migration Cheat Sheet

Source PC Setting Destination PC Required Match Failure Symptom
Computer name Same computer name or full re-compile Faceplates show Temp
Windows system locale English (United States) Texts show ????
WinCC project language list en-US enabled, default runtime Fallback to ????
Textbib.mdb present Copied intact Reference IDs unresolvable
Regional format Same date/number format IO field limits display 0,0 instead of 0.0
Keyboard layout (non-Unicode) US keyboard installed Special characters shown as ??

Troubleshooting Matrix

Symptom Likely Root Cause Fix
All static text shows ???? WinCC project language list missing the source language Add language under Project Properties → Language
Only IO field labels show ???? Text library reference broken Copy Textbib.mdb and recompile
Faceplates show Temp Computer name mismatch or partial compile Rename PC, reopen, recompile
Non-English project shows ???? in Korean / Chinese strings Windows non-Unicode locale not set to that language Change system locale to match, reboot
Texts correct in editor, wrong on runtime Runtime language set differently from editing language Set default runtime language in Project Properties
Texts are correct but date / time fields show ?? Regional format mismatch Align Regional Formats across all OS stations

Related Siemens Documentation

Why do my WinCC V7.3 PDL text fields show ???? after copying the project?

The destination project's language list (Project Properties → Language) is missing the source language in which the texts were originally entered. Add English (United States), set it as the default editing language, recompile, and the strings will reappear. This applies to PDL files copied between AS-OS combined projects in STEP 7 V5.5.

How do I prevent faceplates from showing Temp after a host name change?

Open the project on the new host, accept the prompt to update the computer name, then run a full recompile (Tools → Compile → Compile All) in the Graphics Designer. The Temp placeholder is generated for any faceplate whose internal host reference is not yet bound to the new computer name.

What Windows locale should I set for a WinCC V7.3 English engineering PC?

Set the system locale and the regional format to English (United States) and set the input language to English (United States) - US keyboard. This matches the WinCC non-Unicode code page and prevents non-ASCII characters from being reinterpreted as ???? when the Textbib.mdb is loaded.

Can I copy a single PDL file from one WinCC project to another?

It is technically possible but not recommended. The PDL contains tag references, action scripts, and text library IDs that are project-scoped. Always use the AS-OS combined Retrieve in STEP 7 V5.5 to migrate an entire project, or use the WinCC Project Duplicator for OS-only moves.

What is the difference between ???? and Temp in a WinCC PDL?

???? is the fallback placeholder used when a static text object has no matching language column in the project's Textbib.mdb. Temp is the placeholder used by WinCC faceplates and dynamic text objects whose internal host reference has not yet been resolved after a host name change or partial compile.

Back to blog