Resolving TIA Portal HMI Runtime Language Mismatch Warning
Downloading a TIA Portal project that contains a SIMATIC HMI and a connected PLC triggers a compile/download warning when the HMI's project languages do not exactly match the languages activated on the PLC's Multilingual Support table. The warning text reads:
The configured runtime language for the HMI device does not match the language configuration of connected PLC "PLC_1".
This is a TIA Portal consistency check, not a fatal compilation error. The project will still build and download, but the warning indicates that the HMI's text libraries, PLC text lists, and any language-switched alarms/tags will not have a 1:1 language correspondence at runtime. Misalignment can cause missing translations, greyed-out text fields, or empty alarm text on the panel. The fix is performed entirely inside TIA Portal without touching the PLC firmware or panel image.
This reference documents the root cause, the exact navigation path to the mismatched dialog, and the step-by-step correction for both classic WinCC Comfort/Advanced and WinCC Unified panels. It also covers the correct configuration of the PLC's Multilingual Support table and the HMI's Language & resources editor so that future compilations stay clean.
1. Problem Symptoms and Warning Text
The mismatch warning appears in the Info > Compile pane immediately after a project tree rebuild, a device rebuild, or a HMI Compile & download action. Typical conditions that trigger it include:
- A new language is added to the PLC (e.g., enabling Dutch on a previously English-only project) but is not added to the HMI.
- A language is removed from the HMI's Languages & resources but remains in the PLC's Multilingual Support table.
- An HMI is replaced (Comfort Panel → Unified Comfort Panel) and the new device's default language list does not include one of the PLC's enabled languages.
- A copied/inherited HMI device retains a language set from a different region project (e.g., German de-DE while the active project is en-US).
At runtime, the symptoms are visible: the language toggle on the panel shows a language but the PLC text references return blank, or the alarm line shows the raw tag name instead of the translated alarm text. A second, related warning may also appear:
The PLC contains project languages that are not available in the HMI.
TIA Portal performs this check in the compiler backend. The rule it enforces is straightforward: the set of languages enabled on the HMI runtime settings must be a superset of (or equal to) the languages enabled on the connected PLC's multilingual support table. Any extra language on the PLC side without a matching HMI entry raises the warning.
2. Root Cause: HMI Project Languages vs. PLC Multilingual Support
Two completely separate language tables exist in a TIA Portal project, and they must be synchronized manually:
| Table | Location in TIA Portal | Device scope | What it controls |
|---|---|---|---|
| HMI project languages | HMI device → Languages & resources → Project languages tab | Per HMI device | Which language IDs the HMI runtime can render and switch to |
| PLC multilingual support | PLC → Device configuration → Properties → Multilingual support | Per PLC | Which language IDs are compiled into the PLC project for text lists, alarm texts, and recipe descriptions referenced by the HMI |
The compiler compares these two sets and emits the warning whenever a language exists in the PLC table that is not present in the HMI table. Note that the order of languages in either table is irrelevant to the check — only the set membership matters. However, the order does matter for which translation is the default on a fresh panel boot.
For WinCC Unified, the relevant dialog is the HMI Runtime settings → Language & Font editor. According to the official TIA Portal V20 documentation, you enable a runtime language by double-clicking Runtime settings in the project tree, opening Language & Font, and ticking the checkbox next to the language. The same rule applies: every PLC multilingual language must be present here.
3. Reading the PLC Multilingual Support Table
Open the connected PLC in the project tree, then in the device view open Properties → General → Multilingual support. The table lists every language code the PLC project compiles, with a column for the active runtime language and a per-row text column where translations are entered for the project-specific text lists, alarm texts, and recipe/user texts. Typical entries look like the following on a default V20 project:
| Language | Language code (locale) | Active runtime | Use case |
|---|---|---|---|
| English (United States) | en-US | Default (1st) | Fallback for all texts |
| German (Germany) | de-DE | Optional | European deployment |
| Dutch (Netherlands) | nl-NL | Optional | Benelux deployment |
| French (France) | fr-FR | Optional | Optional |
Each row must have a non-empty Translation column (the greyed text references the default English text until you type a translation in that row). The PLC compiler will not fail if a translation is empty, but the HMI will display the default language's text when that language is selected at runtime.
4. Step-by-Step Resolution (Comfort / Advanced Panels)
Use the following procedure to clear the mismatch warning for WinCC Comfort, WinCC Advanced, or any classic SIMATIC panel that pairs with an S7-300/400/1200/1500 PLC.
4.1 Prerequisites
- TIA Portal V18 or later (V20 recommended for current firmware targets).
- Open the project that contains both the HMI and the connected PLC in offline edit mode.
- Note the exact list of language codes enabled in the PLC's Multilingual support table (write them down or screenshot).
4.2 Enable the Missing Language on the HMI
- In the TIA Portal project tree, select the HMI device (e.g., HMI_1 [TP1200 Comfort]).
- Open Languages & resources → Project languages.
- Compare the list of Active project languages with the PLC's Multilingual Support table. Identify the missing locale(s).
- Tick the checkbox for each missing language in the Available project languages list on the right. Click the arrow to move it to the Active column.
- Open Runtime settings → Language & Font. Confirm that the newly added language is also present and enabled here. (On Comfort Panels this is the same dialog reached via Runtime settings in the project tree, not via the device configuration.)
- Right-click the HMI in the project tree and select Compile → Software (rebuild all).
- Open the Info > Compile pane. The mismatch warning should be gone.
4.3 If the HMI Already Lists the Language
Sometimes the language is present in Project languages but the warning still fires. The cause is usually one of the following:
- The language is active at the workspace level but is not yet enabled in the HMI's runtime settings. Tick the Use checkbox in Runtime settings → Language & Font.
- The locale variant differs. English (United States)
en-USis not the same as English (United Kingdom)en-GBfor the purposes of the consistency check. Add the exact locale that the PLC uses. - The HMI firmware does not support the requested font for that locale. Add a font to the language entry in the HMI's Language & Font editor (default font Arial is usually fine; CJK and Cyrillic need their default font packs).
5. Step-by-Step Resolution (WinCC Unified Panels)
WinCC Unified Runtime (RT Unified) stores its language list in a different dialog than the classic panels. According to the official TIA Portal V20 documentation for Configuring in multiple languages (RT Unified) → Languages and fonts in Runtime (RT Unified):
- In the project tree of the Unified HMI device, double-click Runtime settings.
- Click Language & Font in the left-hand navigator.
- In the language table, tick the checkbox for each language that you want to be available on the device. The list contains every locale that has been activated in the HMI's Project languages editor.
- Confirm the default runtime language (the first active row).
- For each enabled language, verify that a font supporting the script is selected in the Font column. The default Arial covers Western European languages; for Asian or Cyrillic locales, choose the appropriate script font (e.g., SimSun for Simplified Chinese).
- Compile the HMI: right-click the device → Compile → Software (rebuild all).
- Confirm in the Info > Compile pane that no language mismatch warning remains.
6. Why "Adding Dutch to the German Slot" Works as a Quick Fix
A common field workaround that resolves the warning is to move the missing locale (e.g., Dutch (Netherlands)) into the slot that was occupied by a related Western European language (e.g., German (Germany)) on the HMI side. The reason this works is that the HMI's Language & Font table is order-sensitive for the active runtime language determination, but membership-sensitive for the compiler warning. As long as the locale code nl-NL is now present in the HMI's active list and the PLC's Multilingual Support table, the consistency check passes. The order swap is purely cosmetic on the panel's language toggle.
This is a tactical fix, not a clean configuration. The recommended approach is to:
- Reset the HMI's language list to the canonical order (English first, then the regional fallbacks).
- Add every PLC-enabled locale in its own dedicated row, with a per-language font.
- Re-compile and confirm a clean build.
7. Adding New Languages to the Project Workspace
If a needed locale (e.g., Portuguese (Brazil)) does not appear in the HMI's Available project languages list, you must first add it at the workspace level:
- In the project tree, open Languages & resources → Project languages.
- Click the dropdown at the top of the Available project languages column to filter by region or to type the locale directly.
- Tick the checkbox next to the locale. The locale moves into the Active project languages column.
- The locale is now available to be enabled on any HMI device's runtime settings and on any PLC's Multilingual Support table.
Per the official Siemens support FAQ 109759021, the HMI runtime and the PLC must share the same set of project languages; otherwise, text references that point from the HMI into the PLC's text lists will resolve to the default (first) language on a language mismatch.
8. PLC-Specific Text Lists and Language Synchronization
On the PLC side, the Multilingual support table governs the project-level text lists under PLC → Texts. Each text list has a row per language enabled in the Multilingual Support table. When you add a new locale there, every text list gains a new column. The HMI's alarms and screen texts that reference the PLC text list by symbolic name will pick up the new translation automatically once the HMI is recompiled with the matching locale enabled.
For S7-1200/S7-1500 PLCs, the locale list is stored in the project file. The PLC firmware itself does not store language data — it receives the language index from the HMI at runtime through the standard area pointer Job mailbox or the HMI tag @CurrentLanguage. The PLC only needs the locale list at compile time to produce the text-list Web2PLC XML that the HMI consumes.
9. Verification Procedure
After applying the fix, validate the configuration with the following checks:
- Compile clean: Right-click the HMI in the project tree → Compile → Software (rebuild all). Open the Info > Compile pane. No language-related warnings should appear.
- Cross-check language tables: Open the PLC's Multilingual support and the HMI's Runtime settings → Language & Font side by side. The set of locales must match exactly.
- Download to panel: Transfer the HMI runtime to the panel. The download should proceed without a "language mismatch" prompt.
- Runtime toggle test: On the panel, open a screen that uses PLC text list references. Use the language toggle button to switch to each enabled locale. Every text should be rendered in the selected language with no fallback to the default language.
- Alarm text test: Trigger a configured alarm and confirm the alarm line is fully translated in the active language.
10. Troubleshooting Matrix
| Observed warning | Likely cause | Resolution |
|---|---|---|
| "The configured runtime language for the HMI device does not match the language configuration of connected PLC" | PLC has a language not enabled in the HMI runtime | Add the missing locale to HMI's Runtime settings → Language & Font |
| "The PLC contains project languages that are not available in the HMI" | Same root cause, alternate wording on older TIA versions | Same fix; upgrade TIA to V18+ for consistent warning text |
| Warning persists after adding the language | Locale variant mismatch (en-US vs en-GB) | Add the exact locale code that the PLC uses |
| Compile passes; runtime shows English text when Dutch is selected | Translation cell in PLC Multilingual Support is empty | Type a translation in the Translation column for that locale |
| Unified HMI shows squares or boxes in place of characters | No font assigned that supports the script | Assign a Unicode font (e.g., SimSun for zh-CN, MS Gothic for ja-JP) |
| Warning fires only after HMI device replacement | New device default language list is smaller than old device's | Re-enable all locales on the new device's runtime settings |
| Warning fires after library update | Master copies of HMI in library added a language | Update the project instance to match the library master |
11. Common Pitfalls and Field-Proven Caveats
-
Locales vs. languages: TIA Portal distinguishes
en-US,en-GB,en-AU, and so on. The HMI/PLC consistency check is strict about the locale code, not the human-readable label. Always verify the underlying locale string, not just the display name. - Project languages vs. project library languages: Adding a language to the global Languages & resources folder does not auto-enable it on every HMI. You must still tick it in each device's Runtime settings → Language & Font dialog.
- Inherited devices: When you copy an HMI in the project tree, the new instance starts with the source's enabled languages. If the new device is assigned to a PLC with a different language set, the warning reappears. Treat the HMI language list as a property to re-verify after any copy/rename operation.
- WinCC Professional vs. Unified: WinCC Professional (PC Runtime) stores the language list under PC station → Runtime settings → Language & Font. The procedure is identical to Unified, but the dialog title differs.
-
Openness / script-driven changes: If the project is generated from a script using the TIA Openness API, the script must call
AddLanguageon the HMI'sLanguageFontconfiguration for every language that the PLC's Multilingual Support table contains, or the warning will be raised on every compile. - Multiuser editing: In a TIA Portal multiuser server setup, the workspace-level Languages & resources is shared, but the device-level Runtime settings → Language & Font lives in the local check-out. Two engineers editing the same HMI in parallel can each add a different language and cause a merge conflict that silently reverts one of the additions.
12. Related Standards and References
The HMI/PLC language configuration is a project-level TIA Portal concern and does not map to a specific IEC 61131-3 or IEC 62443 requirement. However, the underlying locale identifiers follow ISO 639-1 (two-letter language code) and ISO 3166-1 (two-letter country code), which the TIA Portal editor presents in the canonical xx-YY form. Font support for non-Latin scripts relies on the Unicode coverage of the runtime image, which is documented in the panel's firmware release notes.
FAQ
Why does TIA Portal warn "The configured runtime language for the HMI device does not match the language configuration of connected PLC" when downloading to a SIMATIC HMI?
The warning fires when the set of locales enabled on the PLC's Device configuration → Properties → Multilingual support table is not a subset of the locales enabled on the HMI's Runtime settings → Language & Font dialog. Add every PLC locale to the HMI's runtime language list to clear the warning.
Where do I enable the runtime language on a WinCC Unified panel in TIA Portal V20?
Double-click Runtime settings in the Unified HMI's project tree, select Language & Font in the left pane, and tick the checkbox next to each locale you want available on the device. Assign a script-appropriate font for non-Latin languages, then recompile.
Is the order of languages in the HMI's Language & Font table important?
The first active language is the HMI's default runtime language, which is shown after a power cycle or a project reset. The order does not affect the compiler consistency check — only the membership of the language set matters. For clean configuration, put the default language (usually en-US) first and add regional fallbacks below.
I added the missing language but the warning is still there. What should I check?
Verify that the locale code matches exactly (for example en-US vs. en-GB), that the language is enabled in the HMI's Runtime settings → Language & Font and not only in the workspace Languages & resources folder, and that the panel's firmware supports the locale (check the release notes for the specific Comfort or Unified image version).
Does the PLC firmware store language data for the HMI?
No. The PLC stores only the project text lists at compile time. At runtime, the HMI sends the active locale index to the PLC via the standard area pointer or the system tag @CurrentLanguage. The PLC's Multilingual Support table exists solely to define which text-list translations the HMI project can reference.