Configuring Static Text Values in WinCC Unified Faceplate

David Krause11 min read
SiemensTutorial / How-toWinCC
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

Problem Overview: Static Strings at Faceplate Interfaces

Engineers building modular HMI screens in TIA Portal V17, V18, V19, or V20 with WinCC Unified routinely hit a wall when designing faceplates for repeated equipment (pumps, valves, motors, conveyors). The equipment label is unique per instance, but the value is constant for the life of the screen, so creating a per-instance HMI tag for the name is wasteful and bloats the tag list.

In WinCC Professional (TIA V16 / V17 / Classic) the workaround was trivial: bind a Symbolic I/O field to a faceplate interface property and supply a static text constant at instance creation. In WinCC Unified the same workflow silently fails: the configured static value is ignored in Runtime and the field shows the last cached value or an empty string. This article documents the root cause, the supported TIA V17→V20 methods, and the verification procedure that confirms a correct binding.

Affected products: WinCC Unified V17 Update 4 through V20, MTP2200 Unified Comfort, MTP1500 Unified Comfort, TP2200 Comfort Unified, Unified PC Runtime, Unified Comfort Panel. The behavior described applies to faceplate type instances placed on screens, not to pop-up faceplates or to global screen objects.

Root Cause: Interface Data Type and Dynamization Scope

Faceplate interfaces in WinCC Unified are strongly typed. The dynamization rules for the three property types differ at the RT engine level:

Interface Property Type Static Constant Allowed HMI Tag Allowed Script Allowed Recommended Use
Boolean / Int / DInt / Real / LReal Yes (numeric only) Yes Yes Process values, setpoints, counts
WString / String (text) No — written but ignored at RT Yes (external or internal tag) Yes Avoid for instance labels
WString [Multilingual Text] Yes — evaluated at RT Yes Yes Instance names, units, descriptions
Resource List (Graphic / Text list) Index only Index only Yes Status icons, mode lists

The original poster's WString-typed property is the problem. The TIA Portal faceplate editor accepts a static value for any text-typed property at configuration time, but the Unified RT engine only respects static values for the Multilingual Text data type. A plain WString property always resolves to its default initialization, the empty string, or the value of a bound HMI tag — never the static constant configured in the Inspector window. The discrepancy is documented in the Siemens Unified manual at Dynamizing an object property using a tag parameter (RT Unified), which restricts tag-parameter dynamization to faceplate instance interfaces and explicitly excludes static text for legacy string types.

Prerequisites

  1. TIA Portal V17 Update 4, V18, V19, or V20 with WinCC Unified installed and licensed.
  2. Unified Runtime V17.4 / V18 / V19 / V20 on the target device (Unified PC, MTP2200, MTP1500, TP2200 Comfort Unified).
  3. An existing faceplate type (created via WinCC Unified > Faceplates in the project tree) with at least one interface property.
  4. One or more faceplate instances placed on a process screen.
  5. If you use the Script route, knowledge of JavaScript and access to the Global Definitions area under Scripts in the HMI device.

Solution 1 — Multilingual Text Property (Recommended)

This is the cleanest method and the one endorsed in the Siemens Knowledge Base and the TIA Unified help portal.

Step 1 — Modify the Faceplate Type

  1. In the project tree, expand HMI device > Faceplates and double-click the faceplate type you want to edit.
  2. In the faceplate editor, click an empty area to select the type, then open the Properties > Interfaces inspector pane.
  3. Add a new property. Name it EquipmentName (case sensitive).
  4. Set the data type to WString [Multilingual Text] — the [Multilingual Text] suffix is the critical selector. Plain WString will not work.
  5. Save the faceplate type.

Step 2 — Bind the Property to a Screen Object

  1. Inside the faceplate, drag a Text box (or Symbolic I/O field) onto the work area.
  2. Open the text box Properties > General > Text.
  3. Click the dynamization wand (lightning-bolt icon) next to the Text field and choose Faceplate property.
  4. Select the EquipmentName property from the dropdown. The text box now displays the multilingual-text property value.

Step 3 — Provide a Static Value at Each Instance

  1. Switch to the process screen containing the faceplate instance (e.g., Screen_Overview).
  2. Click the faceplate instance once to select it.
  3. In Properties > Interface > Properties, locate the EquipmentName row.
  4. Click the value cell. The cell shows a small flag icon and accepts text in the project's active editing language. Enter, for example, P-101A.
  5. To add translations, click the flag icon and add entries in every configured runtime language (English, German, Spanish, etc.).
  6. Compile the HMI and download to the target device.
Engineering-vs-Runtime caveat (V19 and earlier): In TIA Portal V19 the configured static text will not appear in the engineering view of the process screen; it is rendered only after download, in Runtime. This is a known limitation that also affects most other faceplate property values. TIA V20 changed this behavior for some property types — verify on a test project before relying on the engineering preview.

Solution 2 — Global Text List with a Numeric ID Property

When the same faceplate must display a name that is reused, localized, or already centralized, a Global Text List accessed by an Int property is more efficient than multilingual text and scales to thousands of equipment tags without inflating the project tree.

Step 1 — Create a Global Text List

  1. Right-click HMI device > Text and graphic lists > Text lists and choose Add new text list.
  2. Name it, for example, EquipmentNames.
  3. Configure the list entries. For each row set the Default value (1, 2, 3, …) and the text in each language.

Step 2 — Reference the Global List from the Faceplate

  1. In the faceplate, drop a Symbolic I/O field and set its Mode to Output (text list).
  2. Open Properties > General > Configuration. The Text list field offers a scope selector — pick Global text list and select EquipmentNames.
  3. Dynamize the Value property of the symbolic I/O field with a faceplate property of type Int named, for example, EquipmentID.

Step 3 — Supply the ID per Instance

  1. On the process screen, click each faceplate instance and assign its EquipmentID property the integer that matches the row in EquipmentNames.
  2. Runtime resolves the integer through the global list, so the same name appears in every language, governed by one central source of truth.
Update propagation: Editing the global text list at runtime (e.g., through a connected PLC tag driving a text list index) is supported via script in Unified V19+ and is the cleanest path when names need to follow asset changes. Refer to the official script reference at Creating a faceplate instance for binding options.

Solution 3 — Script-Assigned String

For dynamic names that originate from the PLC or a database (e.g., a recipe header or alarm descriptor), a script assigned to a faceplate property avoids creating a new internal tag.

Implementation Pattern

  1. Add a faceplate property of type WString named ScriptName.
  2. Bind a screen object's Loaded event to a JavaScript function:
// Global function or faceplate script
export function SetName(faceplate, plcbBuffer) {
  let s = Tags("PLC_DB_NameBuffer").Read();
  faceplate.Properties.ScriptName = s;
}
  1. Bind the text box Text property to ScriptName.
  2. Compile and download. The script writes the WString property at load, and the bound text field renders the value for the lifetime of the instance.

Comparison of Methods

Criterion Multilingual Text Property Global Text List + Int ID Script-Assigned WString
Static configuration per instance Yes (flag-icon dialog) Yes (integer index) No (runtime only)
Localization support Native per-language entries Native (list rows) Depends on script logic
HMI tags created 0 0 (just an Int, still no external tag) 0 or 1 (depending on read source)
Maintenance surface Each faceplate instance One central list Script + PLC tag
V17 compatibility Yes Yes Yes
V19 engineering preview Not shown until RT Not shown until RT Always hidden (runtime only)
V20 status Improved preview in V20 Improved preview in V20 Unchanged
Best for 10–200 unique equipment names >200 names, hot-edited centrally PLC-driven, dynamic names

Verification Procedure

After configuration, follow this sequence to confirm the static value actually renders in Runtime. A failed verification usually means the property type is still plain WString, or the screen object is not properly dynamized to the faceplate property.

  1. Compile check: In TIA Portal choose HMI device > Compile > Software (rebuild all). The build must complete without warnings flagged under Faceplates. Warnings of the form Property 'EquipmentName' has no valid value indicate the multilingual text entry is empty in the active language.
  2. Download and start Runtime on the Unified device. Switch the runtime language to verify each localized entry.
  3. Instance inspection: In Runtime, click the faceplate instance. The instance name and the configured EquipmentName should both appear in the Faceplate Instance dialog (opened with the chevron or the configured open-popup event).
  4. Tag monitor: Open HMI Tags > Diagnostics in the running RT (or use the WinCC Unified Tag Simulator in TIA) and confirm that no new HMI tag was generated for the static name.
  5. Cross-screen test: Place two instances of the faceplate on a second screen and assign them different EquipmentName values. Runtime must render them independently — a cross-over indicates a broken property type that is being globally initialized.

Troubleshooting Matrix

Symptom Likely Cause Corrective Action
Empty string in Runtime despite static value configured Property typed as plain WString Change to WString [Multilingual Text]
Static value visible in TIA engineering, empty in RT Property typed as plain String or WString Switch to multilingual-text type and re-enter value
Static value visible in RT but missing in engineering preview V19 RT/engineering mismatch Acceptable; verify in RT. Upgrade to V20 for full preview.
All faceplate instances show the same name Property bound to a global HMI tag instead of faceplate property Re-dynamize the text field to the faceplate property, not a tag
Text list IDs (1, 2, 3) shown instead of names Text list scope set to Local instead of Global Open the Symbolic I/O field, set Text list scope to Global
Name correct in one language, empty in another Empty entry in target language Open the faceplate instance, click the flag icon, fill the missing language
Compile error: Maximum number of interface properties exceeded More than 500 properties on one faceplate (V17 limit) Split faceplate or upgrade to V19+ (limit raised to 1000)
Script writes but text box does not update Property dynamization missing on the text field Add the lightning-bolt dynamization to the faceplate property

Performance and Tag-List Considerations

A typical pumping station with 80 valves, 40 pumps, 20 fans, and 60 motors contains 200 equipment tags. Using the old pattern of a per-instance HMI tag, that adds 200 WString entries to the project tag list — each one counting against the licensing threshold for WinCC Unified tags. Switching to the Multilingual Text faceplate property eliminates all 200 tags. For installations licensed by tag count, the savings are direct: 200 × the per-tag license cost is recovered by re-architecting the faceplate.

For high-density screens (more than 50 faceplate instances on a single screen), the Multilingual Text route outperforms the text-list route on initial paint because the string is pre-resolved at the screen load event, whereas the text list requires an indirection through the global list during the first cycle. On a Unified Comfort Panel with the MTP2200, this can amount to 80–120 ms of additional screen-load latency at 50 instances; on a Unified PC the difference is negligible.

Migration Notes for Existing V17 Projects

If a project was built with the legacy pattern (plain WString property + per-instance HMI tag), migrate in three passes:

  1. Type change: Open every faceplate type and convert text-typed properties used for static names to WString [Multilingual Text].
  2. Reference reroute: On every screen, remove the per-instance HMI tag and replace it with the static value configured in the property cell of the faceplate instance.
  3. Tag cleanup: After successful Runtime verification, delete the now-unused HMI tags in batch using the project tree. TIA Portal offers no rollback — back up the project before batch delete.

Best Practices Checklist

  • Reserve WString [Multilingual Text] for human-readable labels and descriptions only. Do not use it for process data, setpoints, or any value that the PLC needs to see.
  • Use a numeric Int faceplate property and a global text list whenever the same set of names must be referenced by more than one faceplate type.
  • Keep faceplate property names lowercase with camelCase suffix for unit (Pump101.pressureUnit) — Siemens' own example libraries follow this convention.
  • Document each faceplate type's interface in the project notes; a multilingual property with no fallback in the active language renders as blank without a warning.
  • Lock the faceplate type after commissioning to prevent accidental interface changes — a changed property type breaks every existing instance in the project without warning at the property-cell level.

FAQ

Why does my static WString value show in TIA Portal but disappear in Runtime?

Because plain WString properties in WinCC Unified accept static text at engineering time but the Runtime engine ignores it. Change the property data type to WString [Multilingual Text] and re-enter the value through the flag-icon dialog; Runtime will then render it.

Which TIA Portal version first supports static multilingual text on faceplate properties?

TIA V17 Update 4 introduces and ships the Multilingual Text faceplate property type. The behavior is unchanged through V19; V20 adds a partial engineering preview. Always confirm on the same Service Pack level as the target Runtime to avoid mismatch.

Can I pass a static value to a faceplate without creating a tag in TIA V17?

Yes, by configuring the faceplate property as WString [Multilingual Text] and entering the value in the Inspector window of each instance. No HMI tag is created and no license count is consumed for the label.

How do I reuse the same set of names across multiple faceplate types?

Define a global text list with one row per name and bind a faceplate property of type Int to the list index. Configure the Symbolic I/O field's text list scope as Global. Each instance supplies only the integer ID, and one central list update propagates to every faceplate.

Does the static value work for faceplate pop-ups triggered by events?

Yes. The same Multilingual Text property mechanism applies to pop-up faceplates. The only difference is that the value is set in the Open event of the pop-up faceplate container rather than in the static instance properties.

Back to blog