TP 177 micro Language Switching in WinCC Flexible 2005: Fix Guide

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

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 SetLanguage event 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.
Compatibility note. A project created in WinCC flexible 2005 can be migrated to TIA Portal (WinCC Comfort/Advanced) using the "Migrate project" wizard, but the 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

  1. Open the project in WinCC flexible 2005.
  2. Navigate to Project → Languages → Project Languages.
  3. 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.
  4. In the Project languages grid, set the Active column to ✔ for every language that should appear in Runtime.
  5. 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).
  6. Click Apply and save the project.
Locale string format. WinCC flexible 2005 uses the VBScript 5 locale format (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)

  1. Open the project tree and select Device Settings (or Panel Settings in some builds).
  2. Navigate to Languages and Fonts.
  3. In the Runtime column, enable the checkbox for every language that should be selectable on the TP 177 micro at runtime.
  4. 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.
  5. 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).
  6. 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

  1. Open the screen containing the language-change button.
  2. Select the button. In the Properties pane, click Events → Press.
  3. From the function list, choose SetLanguage (under System Functions).
  4. 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. 1 for the second language in the list) or the locale string (e.g. "ru-RU").
  5. 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).
  6. 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.

  1. Power-cycle the panel and confirm that the configured Default language at startup is displayed.
  2. 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.
  3. 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.
  4. 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.
  5. Power-cycle the panel and confirm the default language is restored.
  6. 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

Language switch fails on TP 177 micro Is target language Active in Project Languages? Tick Active in Project Languages STOP Is target language enabled in Device Settings? Tick Runtime checkbox in Device Settings Does every text ID have a value in target language? Translate every missing text ID Recompile, full transfer, verify on panel

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:

  1. Open the migrated project in TIA Portal.
  2. Navigate to Project tree → Languages & Resources → Project languages. Confirm the active set matches the original.
  3. 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 SetLanguage calls use the correct index.
  4. 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.
  5. 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).
End-of-life note. The TP 177 micro is in the SIMATIC product phase "Phase-out" (announced 2017, end of service-life repair 2024). For new installations, use the SIMATIC KTP series (KTP400, KTP700, KTP900, KTP1200) with WinCC Comfort/Advanced in TIA Portal. The configuration procedure described in this article also applies to the KTP family.

Related SIMATIC Documentation

Refer to the following official Siemens documentation for further detail:

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.

Back to blog