Overview
The Siemens TP 177 micro is a 6-inch touch panel from the SIMATIC TP 170 / TP 177 micro family, designed for small-machine HMI applications. Like every SIMATIC panel, it supports multilingual Runtime, but the language-switching feature must be configured at three distinct layers in the engineering software before the panel will respond to the SetLanguage function or to a button wired to Change Language.
Field failures on the TP 177 micro almost always fall into one of these categories:
- Only one language (typically the editor default, e.g. Spanish) appears in Runtime, even though Change Language is pressed.
- The button text becomes blank instead of switching to the second language. The label reappears after the next compile/download cycle or never returns.
- The language toggles through two entries but ignores a third (e.g. English and Russian are skipped, only Spanish loops).
- The
SetLanguageevent is fired, but the panel never re-renders text in the new locale.
This guide walks through the correct configuration of all three layers (Project Languages, Device Languages, and the Set Language function on the button) and documents the root causes of the most common Runtime symptoms, including the "blank text" failure that occurs when a language is enabled in the project editor but the text library is empty.
Prerequisites
Before troubleshooting, confirm that the engineering environment and target firmware meet the minimum requirements for multi-language Runtime on the TP 177 micro.
| Item | Requirement | Notes |
|---|---|---|
| Engineering software | SIMATIC WinCC flexible 2005 (SP1 / SP2 / SP3) or WinCC flexible 2007/2008 | The 2005 SPx line is the original tool for TP 177 micro; later SPs fix minor translation-table bugs. |
| TP 177 micro firmware | Image version ≥ V1.1.0 (typical: V1.1.4, V1.2.0) | Check via Panel → Transfer → OS Update or on the panel under Start Center → Settings → Device. |
| Transfer mode | Serial (MPI/PROFIBUS) or Ethernet (where fitted) | TP 177 micro has no PROFINET on the basic device; PN variant = 6AV6 640-0BA11-0AX0. |
| Project languages (editable) | WinCC flexible 2005 supports up to 32 project languages per panel; TP 177 micro Runtime is limited to 5 simultaneous Runtime languages | Configured under Project → Languages → Project Languages. |
| Available text memory | At least 256 KB free on the panel | Each additional language consumes roughly 20-40 % of the text-table footprint of the base language. |
SetLanguage tag behavior and the order of the language-switch list can shift between the two editors. Re-verify all three configuration layers after migration.Root Cause Analysis: Why Language Switching Fails
The TP 177 micro does not fail to switch languages arbitrarily. The Runtime engine on the panel reads its active locale from a fixed sequence of configuration sources, and any broken link in the chain silently falls back to the editor's default language. The four most common root causes, in order of frequency observed in the field, are listed below.
RC-1: Project Language Not Activated in the Editor
The translator has entered Spanish, English, and Russian text in the Project Languages editor, but only Spanish is checked as Active. The TP 177 micro Runtime only enumerates the languages flagged active in the compiled image, so the SetLanguage function only has one valid target. Result: pressing Change Language is a no-op and the panel stays in Spanish.
RC-2: Device Languages Not Enabled for Runtime
Languages may be active in the project but not selected under Device Settings → Languages and Fonts. The TP 177 micro carries a Runtime language list separate from the project language list; the latter is the source list, the former is the deployment list. If the checkbox for English or Russian is not set under Device Settings → Languages and Fonts, those locales are compiled out of the Runtime image even though the texts exist in the project.
RC-3: Empty Text Library for a Non-Default Language (Blank-Text Failure)
The button label is bound to a text ID, and that text ID has a Spanish value but no English or Russian value. When SetLanguage requests English, the Runtime looks up the text ID, finds an empty string, and renders an empty label — the button appears blank. This is the failure described in the field report: "all my button texts go blank rather than just changing language". The fix is to program the other language(s) in the text library, not to change the SetLanguage call.
RC-4: Wrong Argument to SetLanguage
The SetLanguage function accepts three argument formats:
- -1 (hmiToggle) — cycles to the next language in the order defined under Project Languages → Order for language switching.
- Integer index — the order number from Order for language switching, 0-based or 1-based depending on the editor version (WinCC flexible 2005: 0-based; WinCC flexible 2008 SP2+: 0-based by default, 1-based optional).
-
Locale string — e.g.
"en-US","de-DE","ru-RU". Must match the locale string registered in Project Languages exactly, including case.
If the locale string does not match — for example, "en-UK" instead of "en-US" — the Runtime silently keeps the previous language.
Configuration Procedure: Three-Layer Setup
Follow the three configuration layers in the order shown. Each layer builds on the previous one; skipping a layer is the most common cause of failure.
Layer 1 — Project Languages
- Open the project in WinCC flexible 2005.
- Navigate to Project → Languages → Project Languages.
- Click Add and select Spanish (es-ES), English (en-US), and Russian (ru-RU). Each language must be added before its texts can be entered.
- In the Project languages grid, set the Active column to ✔ for every language that should appear in Runtime.
- Open the Order for language switching column and assign explicit order numbers (1, 2, 3). The order determines the sequence used by
SetLanguage(-1)(hmiToggle). - Click Apply and save the project.
xx-YZ), e.g. de-DE, en-US, es-ES, ru-RU, fr-FR, it-IT, zh-CN. Use the exact locale string when calling SetLanguage with a string argument.Layer 2 — Device Settings (Languages and Fonts)
- Open the project tree and select Device Settings (or Panel Settings in some builds).
- Navigate to Languages and Fonts.
- In the Runtime column, enable the checkbox for every language that should be selectable on the TP 177 micro at runtime.
- Assign the correct font for each language. For Cyrillic (Russian), use a font that contains the Cyrillic glyph range, such as Arial or Siemens Sans with the Cyrillic subset. The default Western font will display Russian as blank squares.
- Confirm that the Default language at startup dropdown is set to the correct editor default (typically the language that was active when the project was created — Spanish in this case).
- Compile the project (Project → Compiler → All) and check the Output window for warnings such as "Text ID 0x0123 has no entry in language 'en-US'". Resolve every warning before transferring.
Layer 3 — Configure the Change-Language Button
- Open the screen containing the language-change button.
- Select the button. In the Properties pane, click Events → Press.
- From the function list, choose SetLanguage (under System Functions).
- Set the argument:
- For a toggle: enter-1(the hmiToggle constant).
- For a fixed target language: enter either the order number from Layer 1 (e.g.1for the second language in the list) or the locale string (e.g."ru-RU"). - Set the button's own Label text to a text ID, not a literal string. Provide a translation for the label in every active language; otherwise the label will go blank when the user switches to the missing language (see RC-3).
- Save, recompile, and transfer the project to the TP 177 micro.
SetLanguage Function Reference
The SetLanguage system function is documented in the WinCC flexible 2005 help under System Functions → Language and Font Functions. The relevant signatures are reproduced below for field reference.
| Argument type | Argument value | Behavior |
|---|---|---|
| Integer constant | -1 (hmiToggle) | Cycles to the next language in the sequence defined under Project Languages → Order for language switching. After the last language, the cycle wraps to the first. |
| Integer index | 0, 1, 2, ... | Switches to the language at the given 0-based order. 0 = first language in the order list. |
| String (locale ID) | "en-US", "de-DE", "es-ES", "ru-RU", "zh-CN" | Switches to the language matching the VBScript 5 locale string. The string is case-sensitive and must exist in the project. |
For scripts, the VBScript call is:
SmartTags("LanguageID") = "en-US"
SetLanguage SmartTags("LanguageID")
Or, for a direct toggle:
SetLanguage -1
Verification Procedure
After the project is compiled and transferred to the TP 177 micro, perform the following validation sequence before signing off the commissioning step.
- Power-cycle the panel and confirm that the configured Default language at startup is displayed.
- Press the Change Language button once. Verify that the screen text and the button label both change to the next language in the order list.
- Cycle through every enabled language (es-ES → en-US → ru-RU → es-ES). For each transition, confirm: (a) all static text fields update, (b) the button label updates, (c) no field is blank.
- Cycle to the language with the most special characters (Russian Cyrillic, Spanish accented characters). Verify that the chosen font renders every glyph correctly. If squares or question marks appear, the font selected under Device Settings → Languages and Fonts does not contain the required subset.
- Power-cycle the panel and confirm the default language is restored.
- Trigger a re-transfer to confirm the transfer image and the on-panel image are identical.
Troubleshooting Matrix
| Symptom | Likely root cause | Diagnostic step | Fix |
|---|---|---|---|
| Button press has no effect; panel stays in Spanish | RC-1: language not active in Project Languages | Open Project → Languages → Project Languages; inspect Active column | Tick Active for English and Russian |
| Button press has no effect; one language visible | RC-2: language not enabled under Device Settings | Open Device Settings → Languages and Fonts; inspect Runtime column | Enable the Runtime checkbox for each language |
| Some buttons go blank after switching | RC-3: text ID has no entry in target language | Compile the project and read the Output window for missing-text warnings | Translate every text ID; the label should reference a text ID, not a literal |
| Language change flashes once and reverts | RC-4: wrong locale string passed to SetLanguage | Check the Press event; inspect the argument value | Use -1 for toggle or the exact locale string (e.g. "en-US") |
| Russian text displays as squares | Font does not contain Cyrillic subset | Open Device Settings → Languages and Fonts; inspect font assignment | Assign a font that includes Cyrillic (Arial, Tahoma, Siemens Sans with Cyrillic subset) |
| Cyrillic text displays correctly on the editor but not on the panel | Compiled Runtime image used a Western font | Re-compile the project after the font fix; do a full transfer (not delta) | Recompile and re-transfer the full project |
| Languages switch but tags / values stay in the previous language | Multilingual text list not bound to the I/O field | Open the I/O field's Properties → Text; verify the text list is configured, not the static label | Use a Text list with one entry per language, linked to the I/O field's process value |
| Compilation warning: "Language 'X' not available on target device" | More than 5 Runtime languages enabled for TP 177 micro | Count active Runtime languages in Device Settings | TP 177 micro supports a maximum of 5 Runtime languages; disable the rest |
Common Pitfalls and Field-Notes
Several edge cases recur in TP 177 micro commissioning work. They are listed below with the recommended handling.
Pitfall 1 — Labels Bound to Literals Instead of Text IDs
If the button label is a literal string (e.g. "Change Language" entered directly in the Label property), there is no text ID to translate. When the user switches languages, the label stays in the original literal — or, if the literal is replaced on switch, the field becomes empty. Always create a text ID in the Text Library and bind the label to that ID, providing a translation for every active language.
Pitfall 2 — I/O Fields Without a Text List
An I/O field that displays a value such as a fault code must be paired with a Text list (multilingual) in WinCC flexible. The text list has one entry per language per value. If only the Spanish text list is populated, switching to English shows the raw value, not the translated text. Open Project → Text Lists, add an entry for every value, and provide a translation in every active language.
Pitfall 3 — Limit of 5 Runtime Languages on TP 177 micro
The TP 177 micro hardware supports a maximum of 5 Runtime languages concurrently, even though the project editor allows 32. If the deployment list exceeds 5, WinCC flexible will raise a compiler warning and the lowest-priority languages will be dropped from the Runtime image. Choose the 5 most important languages and disable the rest under Device Settings → Languages and Fonts.
Pitfall 4 — Transfer Mode Loses Custom Bitmaps
If the project uses language-specific bitmaps, the TP 177 micro must receive a full transfer (not a delta) after enabling a new language. A delta transfer can leave stale bitmaps on the panel and the new locale will display mixed assets. Use Panel → Transfer → All rather than Delta after any language change.
Pitfall 5 — Project Language Editor vs. Device Runtime List
Many engineers confuse Project Languages (the source list) with Device Settings → Languages and Fonts → Runtime (the deployment list). Both must be configured; one is not a substitute for the other. A common symptom is that the editor's language dropdown switches correctly, but the panel only ever shows Spanish — exactly the symptom described in the field report.
Diagnostic Flow
Migration to TIA Portal (WinCC Comfort/Advanced)
Projects authored in WinCC flexible 2005 can be migrated to TIA Portal V13 SP1 or later using the "Migrate project" wizard. After migration, re-validate the language configuration:
- Open the migrated project in TIA Portal.
- Navigate to Project tree → Languages & Resources → Project languages. Confirm the active set matches the original.
- Open the HMI device configuration. Under Runtime settings → Languages & fonts, confirm the Runtime list still contains the same locales. TIA Portal defaults to 0-based indexing; confirm the
SetLanguagecalls use the correct index. - For Cyrillic or Asian languages, re-check the font selection. TIA Portal uses a separate font table; the WinCC flexible 2005 font name may not exist in TIA Portal.
- Recompile and transfer to the TP 177 micro (TP 177 micro is supported by TIA Portal up to V15.1 for new compilations; later TIA Portal versions support the panel only for read-only / HMI Tag simulation).
Related SIMATIC Documentation
Refer to the following official Siemens documentation for further detail:
- SIMATIC HMI TP 177 micro Operating Instructions (compact) — section 6.4 "Configuring multilingual projects".
- WinCC flexible 2005 SP3 System Manual — chapter 8 "Languages and fonts in Runtime".
- WinCC flexible Migration to TIA Portal — application note for converting TP 177 micro projects.
- SIMATIC TP 177 micro product support page — firmware downloads, FAQs, manuals.
- Function manual: SetLanguage / ChangeLanguage — argument format and runtime behavior.
FAQ
Why does the TP 177 micro only display Spanish even though I have English and Russian text in the project?
The most common cause is that English and Russian are present in the Project Languages editor but not ticked in the Active column, or they are not enabled under Device Settings → Languages and Fonts → Runtime. The Runtime image is built only from the active, Runtime-enabled set. Tick the Active flag in Project Languages and the Runtime checkbox in Device Settings, then recompile and re-transfer the project.
Why do my button labels go blank after pressing Change Language?
This happens when the label is bound to a text ID that has no entry for the target language. The Runtime looks up the text ID, finds an empty string, and renders an empty button. Open the project's Text Library, find the text ID used by the button, and provide a translation for every active Runtime language. Recompile and re-transfer the project.
How do I configure SetLanguage to cycle through three languages on a single button?
Wire the button's Press event to the SetLanguage system function with the constant argument -1 (hmiToggle). The cycle order is taken from the Order for language switching column in Project Languages. Assign 1, 2, 3 to Spanish, English, Russian respectively so the toggle visits them in the desired sequence, then wraps from 3 back to 1.
Russian text shows as squares or question marks on the panel. How do I fix it?
The font assigned to Russian under Device Settings → Languages and Fonts does not include the Cyrillic subset. Assign a font that contains Cyrillic glyphs, such as Arial, Tahoma, Verdana, or Siemens Sans with Cyrillic enabled. Recompile the project and perform a full transfer (not delta) so the new font is written to the panel.
What is the maximum number of Runtime languages on the TP 177 micro?
The TP 177 micro supports a maximum of 5 Runtime languages simultaneously, even though the WinCC flexible 2005 project editor allows up to 32 project languages. If you enable more than 5, the compiler issues a warning and the lowest-priority languages are dropped from the Runtime image. Select the 5 most important languages and disable the rest under Device Settings → Languages and Fonts.