WinCC V7.0 SP3 Question Mark Text Fix: Language Reconfiguration
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
|
3. Symptoms and Observable Behavior
The following symptoms are characteristic of the locale mismatch condition:
- Graphics Designer PDL screen previews correctly when the picture is open.
- Upon activation of Runtime, button captions and static text fields change to
??????. - Dynamic text fields — those bound to tag values via the Textlibrary or via direct tag-name references — appear renamed (for example
S1-GLR-04becomesTESTorPARAMETER REPORT1). - Reverting the Windows Region setting to English (United States) does not resolve the issue.
- Re-installing WinCC V7.0 SP3 or applying subsequent updates does not resolve the issue.
- 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.
- Open WinCC Explorer and navigate to the project's Computer node.
-
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. - Verify project language: in WinCC Explorer select Project → right-click → Properties → User Interface and Design tab. Confirm the project language listed under Configured Languages.
- Cross-check Runtime language: open Computer → Properties → Parameters tab. Note the Runtime language default and the available language list.
- 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.
- 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
- Open the project in WinCC Explorer on the engineering station.
- Right-click the project root node and select Properties.
- Switch to the User Interface and Design tab.
- Click Configured Languages (under the Miscellaneous section).
- Remove the unsupported locale (e.g. English (India)) from the active configuration using the
<button. - Add English (United States) to the active configuration using the
>button. Confirm the language appears in the Active column. - Click OK to apply.
- 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
- In WinCC Explorer, open Text and Graphic Lists → Textlibrary.
- 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.
- 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.
- Save the Textlibrary (
Ctrl+S).
6.4 Update Runtime defaults
- Open Computer → Properties → Parameters tab.
- Set Runtime language default to English (United States).
- Confirm the Runtime language list no longer references
en-IN. - Click OK.
6.5 Re-link dynamic texts
For any text field bound to a Textlibrary entry that was previously tagged with English (India):
- Open the affected PDL in Graphics Designer.
- Open the Text property of the affected object.
- 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.
- Save the PDL.
7. Verification
Confirm the fix with the following checks before returning the project to production:
- Graphics Designer preview: open each modified PDL and confirm all text fields read correctly in design view.
-
Runtime activation test: start Runtime on the engineering station. Walk through each modified screen and confirm no
??????characters appear. - Language switch test: with Runtime active, switch the Runtime language between English (USA) and German (Deutschland). Confirm text renders correctly in both languages.
- Textlibrary integrity: in WinCC Explorer, regenerate the Textlibrary report and confirm no row contains a locale outside the supported set.
- 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.
-
Tag-name binding audit: in WinCC Explorer run Tools → Cross References for any tag previously rendered as
TESTorPARAMETER REPORT1and 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
- 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.
- 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.
- Audit the Textlibrary at every project handoff. Any locale column without text rows is a candidate for cleanup.
- 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.
-
Version-control the
*.mcpand snapshot the Textlibrary separately on every release so that a clean restore is always possible. - 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.
-
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-INreferences 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:
-
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. -
Corrupted Textlibrary XML: open
TextLibrary.xmldirectly and validate the XML. A corrupt node will block text resolution for the entire locale column. -
Duplicate locale codes: search the project directory for
en-IN. If found in any*.ldfor*.mdfSQL Server file, the database itself must be rebuilt. - 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.
- 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:
- SIMATIC WinCC V7.0 SP3 — System Manual
- SIMATIC WinCC V7.0 — Configuration Manual: Textlibrary and Multilingual Projects
- SIMATIC WinCC V7.0 SP3 — Release Notes and Hotfix Catalog
- SIMATIC WinCC — Migration Guide V7.0 to V7.4
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.