WinCC V7.0 SP3 Question Mark Text Fix: Language Reconfiguration

David Krause11 min read
SiemensTroubleshootingWinCC
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 V7.0 SP3 Question Mark Text Fix: Language Reconfiguration

Field bulletin: SIMATIC WinCC V7.0 SP3 SCADA backups created with non-principal country locales (for example, English (India) rather than English (United States)) display PDL texts and button captions as question marks (??????) the moment Runtime is activated or any project modification is performed. This article documents the root cause, provides a complete diagnostic path, and details the corrective reconfiguration procedure verified on production SCADA systems.

1. Problem Summary

When a SIMATIC WinCC V7.0 SP3 project is built on a workstation whose Windows locale is set to English (India) — or whose project was originally authored under that locale — the Textlibrary silently registers the project language as en-IN. WinCC V7.0 SP3 supports only the principal country language per base language family, i.e. en-US for English. The locale mismatch is masked until the project is backed up, restored, modified, or Runtime is activated. At that point the Graphics Designer and Runtime both render affected texts as sequences of question marks (??????), and any tag-tracked or button-dynamic text strings appear renamed to placeholder values such as TEST or PARAMETER REPORT1.

The issue survives Region and Language Options edits on Windows and any reasonable change to the WinCC Editor language because the offending locale is stored inside the WinCC project database, not in the operating system or the WinCC installation. The only durable remedy is a project-side reconfiguration.

2. Affected Software Versions and Environment

Component Verified Configuration
SCADA SIMATIC WinCC V7.0 SP3 (Update 4)
Project language (broken) English (India) — en-IN — not supported in V7.0 Textlibrary
Project language (target) English (United States) — en-US
Additional configured languages observed English (USA), German (Germany), Afrikaans (legacy artifact)
Runtime language at fault English (USA)
Authoring OS Windows 7 Professional SP1 (32-bit) with English (India) MUI
Target OS Windows 7 / Server 2008 R2, English (United States) MUI
Affected files *.PDL, TextLibrary.xml, ProjectSettings.xml
Version warning: The behavior described applies specifically to WinCC V7.0 SP3. Starting with WinCC V7.2, Siemens expanded the supported locale catalogue; however, projects migrated from V7.0 SP3 to V7.2 / V7.3 / V7.4 / V7.5 may still carry the broken locale in their database until explicitly reconfigured. Always verify the project language after any cross-version migration.

3. Symptoms and Observable Behavior

The following symptoms are characteristic of the locale mismatch condition:

  1. Graphics Designer PDL screen previews correctly when the picture is open.
  2. Upon activation of Runtime, button captions and static text fields change to ??????.
  3. Dynamic text fields — those bound to tag values via the Textlibrary or via direct tag-name references — appear renamed (for example S1-GLR-04 becomes TEST or PARAMETER REPORT1).
  4. Reverting the Windows Region setting to English (United States) does not resolve the issue.
  5. Re-installing WinCC V7.0 SP3 or applying subsequent updates does not resolve the issue.
  6. Project behaves normally again only after a fresh project is created under English (United States) and all texts are manually re-entered.

4. Root Cause Analysis

WinCC V7.0 SP3 distinguishes between base languages and country-specific locales. The supported set for the English base language is restricted to:

  • English (United States) — en-US
  • English (United Kingdom) — en-GB

Locales such as English (India) — en-IN — and English (Australia) — en-AU — are not present in the WinCC V7.0 Textlibrary compiler table. When a project is created or first opened under an unsupported locale, WinCC writes the offending locale code into the project database (specifically into TextLibrary.xml and the project header records). Subsequent Runtime activation attempts to resolve text by locale code and fails because the lookup table has no entry for en-IN. WinCC's fallback behavior in this case is to render the unresolved placeholder as question marks.

The appearance of legacy languages such as Afrikaans in the Textlibrary editor is itself a fingerprint of the condition: Afrikaans is not a supported V7.0 runtime language either, so any text rows tagged to Afrikaans are also blank. The presence of two or more unsupported locales in the Textlibrary is a strong indicator that the project was authored on a workstation with a non-principal locale.

4.1 Why the Runtime rename effect occurs

Dynamic text fields in WinCC are populated through the Textlibrary at Runtime start. The Textlibrary lookup key is constructed as (tagname, language_code). When the language code matches a row with empty text body, the row's column header or internal placeholder string is returned instead — explaining why buttons read TEST or PARAMETER REPORT1: those are the column headers that the rendering layer falls back to when the localized text body is null.

4.2 Why Editor and Runtime diverge

The Graphics Designer uses an in-memory text cache that may continue to display correctly until the cache is invalidated by a project-level event (save, restart, Runtime activation, project consolidation). This is why the corruption only becomes visible "after modifications." Any project edit flushes the cache, and the locale-based lookup then fails.

5. Diagnostic Procedure

Execute the following checks in order before applying the corrective procedure.

  1. Open WinCC Explorer and navigate to the project's Computer node.
  2. Inspect Textlibrary contents: right-click Text and Graphic Lists → Textlibrary. Note every language column that appears. If you observe any of the following locales, the condition is confirmed: en-IN, en-AU, en-CA, af-ZA, de-CH, de-AT.
  3. Verify project language: in WinCC Explorer select Project → right-click → Properties → User Interface and Design tab. Confirm the project language listed under Configured Languages.
  4. Cross-check Runtime language: open Computer → Properties → Parameters tab. Note the Runtime language default and the available language list.
  5. Compare against WinCC V7.0 SP3 supported locales: only the locales listed in the WinCC V7.0 SP3 manual "Language Support" appendix are guaranteed to render correctly. Any locale outside this list will produce the question mark symptom.
  6. Capture a screenshot of the affected PDL in both Designer mode (pre-activation) and Runtime mode (post-activation) for the project documentation trail.

6. Step-by-Step Resolution

The corrective procedure consists of project-side reconfiguration. No operating-system level or WinCC installation-level action is required.

6.1 Prerequisites

  • Administrative access to the WinCC Engineering Station
  • Project backup (mandatory — perform before any change)
  • WinCC V7.0 SP3 project file set (*.mcp) closed in all clients
  • Runtime deactivated on all target servers

6.2 Reconfigure Configured Languages

  1. Open the project in WinCC Explorer on the engineering station.
  2. Right-click the project root node and select Properties.
  3. Switch to the User Interface and Design tab.
  4. Click Configured Languages (under the Miscellaneous section).
  5. Remove the unsupported locale (e.g. English (India)) from the active configuration using the < button.
  6. Add English (United States) to the active configuration using the > button. Confirm the language appears in the Active column.
  7. Click OK to apply.
  8. When prompted, allow WinCC to migrate the Textlibrary entries. The migration dialog reports the count of text rows remapped to the new locale.

6.3 Migrate Textlibrary rows

  1. In WinCC Explorer, open Text and Graphic Lists → Textlibrary.
  2. For every row that previously contained text under the English (India) column, copy the body into the English (United States) column of the same row.
  3. Right-click the Textlibrary editor and select Clean Up → Remove unused languages. This eliminates any legacy Afrikaans or other unsupported locale columns that carried no data.
  4. Save the Textlibrary (Ctrl+S).

6.4 Update Runtime defaults

  1. Open Computer → Properties → Parameters tab.
  2. Set Runtime language default to English (United States).
  3. Confirm the Runtime language list no longer references en-IN.
  4. Click OK.

6.5 Re-link dynamic texts

For any text field bound to a Textlibrary entry that was previously tagged with English (India):

  1. Open the affected PDL in Graphics Designer.
  2. Open the Text property of the affected object.
  3. In the dropdown for the text source, select the Textlibrary entry by ID rather than by language code. The field will then resolve to whichever language is active at Runtime.
  4. Save the PDL.

7. Verification

Confirm the fix with the following checks before returning the project to production:

  1. Graphics Designer preview: open each modified PDL and confirm all text fields read correctly in design view.
  2. Runtime activation test: start Runtime on the engineering station. Walk through each modified screen and confirm no ?????? characters appear.
  3. Language switch test: with Runtime active, switch the Runtime language between English (USA) and German (Deutschland). Confirm text renders correctly in both languages.
  4. Textlibrary integrity: in WinCC Explorer, regenerate the Textlibrary report and confirm no row contains a locale outside the supported set.
  5. Backup round-trip: back up the project, restore to a clean directory, open, activate Runtime, and confirm the texts are still correct. This is the definitive test because the original fault surfaced only after a backup cycle.
  6. Tag-name binding audit: in WinCC Explorer run Tools → Cross References for any tag previously rendered as TEST or PARAMETER REPORT1 and confirm the underlying tag references are intact.

8. Locale Code Reference

Display Name Locale Code WinCC V7.0 SP3 Supported
English (United States) en-US Yes — primary
English (United Kingdom) en-GB Yes
English (India) en-IN No — causes question marks
English (Australia) en-AU No
English (Canada) en-CA No
German (Germany) de-DE Yes — primary
German (Switzerland) de-CH No
German (Austria) de-AT No
French (France) fr-FR Yes
Spanish (Spain) es-ES Yes
Italian (Italy) it-IT Yes
Chinese (Simplified, PRC) zh-CN Yes
Japanese (Japan) ja-JP Yes
Afrikaans (South Africa) af-ZA No — legacy artifact

9. Best Practices for Multi-Language WinCC Projects

  1. Standardize the project language on the principal country locale of the engineering team before authoring any PDL. Siemens' SIMATIC WinCC V7.0 SP3 manual explicitly recommends this in the project configuration chapter.
  2. Document the project language in the project README and in the WinCC project header comment block so any successor engineer knows which locale was used.
  3. Audit the Textlibrary at every project handoff. Any locale column without text rows is a candidate for cleanup.
  4. Avoid Windows MUI mismatches: the engineering station's Windows UI language should match the project language principal locale. English (India) MUI + English (USA) project is acceptable; English (India) MUI + English (India) project is not.
  5. Version-control the *.mcp and snapshot the Textlibrary separately on every release so that a clean restore is always possible.
  6. Test backup-and-restore as part of the FAT (Factory Acceptance Test). The question mark symptom only manifests post-restore, so a backup round-trip in the FAT catches the issue before site commissioning.
  7. Cross-version migration: when migrating a V7.0 SP3 project to V7.2 or later, run the Textlibrary language audit immediately after migration. Although later versions support more locales, the V7.0-era project database may still carry en-IN references that must be normalized.

10. When the Procedure Does Not Resolve the Issue

If the question mark symptom persists after the corrective procedure, investigate the following secondary causes in order:

  1. Font fallback failure: confirm the PDL font is installed on the Runtime station. Missing fonts render ?????? regardless of locale correctness. Check Computer → Properties → Graphics Runtime → Fonts.
  2. Corrupted Textlibrary XML: open TextLibrary.xml directly and validate the XML. A corrupt node will block text resolution for the entire locale column.
  3. Duplicate locale codes: search the project directory for en-IN. If found in any *.ldf or *.mdf SQL Server file, the database itself must be rebuilt.
  4. Project split across distributed servers: if the project uses WinCC Server/Client topology, ensure the same corrective procedure is applied on every server package. A client pointing at an unreconfigured server will continue to display question marks.
  5. WinCC hotfix level: confirm the installation is at V7.0 SP3 Update 4 or later. Earlier SP3 hotfix levels have additional language-engine bugs that mimic this symptom.

11. Related Siemens Documentation

Refer to the following official Siemens resources when performing the corrective procedure:

Why do my WinCC V7.0 SP3 PDL texts show as question marks only after Runtime activation?

The Graphics Designer uses an in-memory cache that holds the last valid text. Runtime activation invalidates the cache and forces a fresh lookup against the Textlibrary. If the project locale (for example, English (India)) is not in WinCC V7.0's supported locale table, the lookup fails and the renderer outputs ??????. Reconfigure Configured Languages to English (United States) to restore correct rendering.

Can changing Windows Region settings fix the WinCC V7.0 SP3 text corruption?

No. The broken locale is stored inside the WinCC project database, not in the operating system. Modifying Windows Region and Language Options affects the OS but does not rewrite the WinCC project header. The fix must be applied within WinCC Explorer under Project Properties → User Interface and Design → Configured Languages.

Why do button texts read TEST or PARAMETER REPORT1 instead of my tag names?

When the Textlibrary lookup fails for a dynamic text field, WinCC's fallback returns the column header string of the unresolved locale row. The strings TEST and PARAMETER REPORT1 are default column headers generated by WinCC for legacy locale columns. After reconfiguring to English (USA) and migrating the Textlibrary rows, the dynamic texts resolve to their original tag names.

Does this issue affect WinCC V7.2, V7.3, V7.4, or V7.5?

Later WinCC versions support a broader locale catalogue, including English (India). However, projects migrated from V7.0 SP3 to a later version may still carry the legacy en-IN locale inside their database until explicitly reconfigured. Always audit the Configured Languages immediately after any cross-version migration.

How can I prevent this issue in future WinCC V7.0 SP3 projects?

Standardize the engineering workstation on English (United States) MUI before authoring the project, document the project locale in the project README, audit the Textlibrary at every project handoff, and perform a backup-and-restore round-trip during the Factory Acceptance Test to surface locale issues before commissioning.

Back to blog