Configuring PLC Tags in WinCC Faceplates in TIA Portal

David Krause10 min read
SiemensTIA PortalTutorial / How-to
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

Faceplates in SIMATIC WinCC (TIA Portal) are reusable HMI screen objects built once and instantiated across multiple screens or process units. A faceplate is a self-contained visualization that exposes a fixed tag interface — the contract between the faceplate and the calling screen. To animate or evaluate faceplate internals (e.g., a button's Click event, a value display, or a visibility expression) you bind events to interface tags, not directly to PLC tags. PLC tags are then assigned to those interface tags per instance.

This indirection is the root of the most common faceplate question: why can I only see HMI tags in the events dialog, and not the PLC tags I want to control? The answer is the two-stage binding model:

  1. Inside the faceplate type, you create interface tags (also called properties or faceplate tags). These are declared in the editor under Interface > Properties_Faceplate (V13/V14) or Configuration > Interface (V15+ and RT Unified).
  2. At the faceplate instance on a screen, each interface tag is bound to an HMI tag or a PLC tag. The PLC tag flows into the faceplate only at this point.
The faceplate body never references PLC tags directly. Always go through the interface. This keeps the faceplate type reusable across any PLC, any tag name, and any controller family.

Prerequisites

Item Requirement
TIA Portal V13 SP1 or later (V14, V15.1, V16, V17, V18, V19, V20 supported). RT Unified faceplate editor from V16 onward.
HMI runtime WinCC RT Professional, WinCC RT Advanced, Comfort Panel, or Unified Comfort Panel
PLC connection HMI tag table must contain the PLC tags, or a direct PLC tag must be reachable from the HMI device's connection list
License WinCC RT Professional requires a valid license; RT Advanced and Unified Comfort Panels are licensed with the panel
Programming knowledge Familiarity with HMI tag tables, screen navigation, and the Properties pane in TIA Portal

Faceplate Tag Architecture

Every faceplate type maintains three scopes of tags. Mixing them is the source of most binding errors.

Scope Where defined Visible in faceplate body? Bindable to PLC tags at instance? Typical use
Interface tags (properties) Interface > Properties_Faceplate Yes Yes Inputs/outputs exchanged with the calling screen
Internal tags Tags tab of the faceplate Yes No (faceplate-local only) Auxiliary variables, scripts, animation logic
Local tags (screen) HMI tag table of the screen/HMI device N/A N/A Shared variables across screens

Per the Siemens Faceplates Instruction Manual (V14, PDF), the Tags tab contains tags available only inside the faceplate and connected directly to contained objects. They cannot be bound to PLC tags from the outside. The Interface section is the only place where the faceplate exposes a binding surface to the calling screen.

Creating Interface Tags (Properties_Faceplate)

  1. In the project tree, right-click Faceplates under your HMI device and choose Add new faceplate. Name it (e.g., FP_Valve).
  2. Open the faceplate type for editing (double-click).
  3. In the project tree under the faceplate, expand Interface > Properties_Faceplate. The default name varies by version: Properties_Faceplate in V13/V14, Faceplate_Properties from V15.1, or the configurable interface in V16+ Unified.
  4. Add a new property. Configure:
Field Example Notes
Name StartCommand Used inside the faceplate body and as the binding target outside
Data type Bool Match the PLC tag's data type exactly
PLC tag connection disabled at definition time Binding happens at instance level
Default value false Used if no PLC tag is bound

Repeat for each property the faceplate needs: StartCommand, StopCommand, Running, Fault, TagPrefix, etc. The number of properties is limited by the runtime; V14 supports up to 500, V17+ Unified supports 1000+.

Avoid embedding the PLC tag name in the property name. Keep names generic (StartCommand, not Motor1_StartCommand) so the faceplate stays reusable.

Wiring Interface Tags to Faceplate Objects and Events

Once properties are declared, they appear in the Properties pane of every object inside the faceplate, alongside HMI tags, internal tags, and constants.

  1. Open the faceplate body and draw four buttons. Name them btnStart, btnStop, btnAck, btnReset.
  2. Select btnStart. In Properties > Events > Click, choose Set bit as the function list entry.
  3. In the function list dialog, the tag picker shows three tabs: Constants, HMI tags, Faceplate tags. Expand Faceplate tags > Properties_Faceplate and select StartCommand.
  4. The function list now contains SetBit "Properties_Faceplate".StartCommand (V13/V14 syntax). In V16+ Unified the syntax uses the configured interface name: SetBit "Faceplate_Properties".StartCommand.
  5. Repeat for the other three buttons: StopCommand, AckCommand, ResetCommand.

Save the faceplate. At this point the faceplate has no knowledge of any PLC. It simply toggles its own interface properties.

Binding PLC Tags at the Faceplate Instance

  1. Open the screen where the faceplate will be used (e.g., Screen_Overview).
  2. Drag the faceplate from the library/task card onto the screen. The instance appears with a default name (e.g., FP_Valve_1).
  3. Select the instance. In Properties > Interface > Properties_Faceplate, every declared property is listed with an empty value field.
  4. For StartCommand, click the value field. The tag picker shows HMI tags. Browse to the PLC tag (e.g., HMI_TagTable.Motor1_Start) or to a raw PLC tag if the connection is direct.
  5. For an HMI tag that already points at %DB5.DBX0.0 (a S7-1500 BOOL data block bit), simply select that HMI tag — the runtime reads the bit from the PLC.

For V16+ Unified, the dialog is renamed Properties > Faceplate_Properties and the binding is configured under Configuration. See the Siemens TIA Portal V20 Faceplate Interface Documentation for the exact dialog tree.

Tag Type Mapping Between PLC and Faceplate

The data type of the property must be compatible with the data type of the bound PLC/HMI tag. Mismatches compile but raise warnings at runtime, or the value is silently truncated.

PLC tag type (S7-1500) Compatible faceplate property Notes
BOOL Bool One-to-one
INT Int 16-bit signed
DINT DInt 32-bit signed
REAL Real IEEE 754 single precision
STRING WString (V16+) or String Use WString for international character sets
WORD Word Bit access requires extra script logic
DWORD DWord —
TIME Time / LTime Display in faceplate with output format

Dynamic Tag Names (Multiplexing)

For pop-up faceplates that must work on any of 200 motors, use a tag prefix or multiplexing (V15+):

  1. Declare a property TagPrefix of type WString[32].
  2. Declare StartCommand as Bool.
  3. In the Interface editor (V15.1+), set StartCommand to Multiplex. Bind its source expression to TagPrefix + ".Start".
  4. At the instance, set TagPrefix = "DB_Motor[1]". The runtime resolves the tag at compile time or first display.
Multiplexing must resolve to a tag that exists in the HMI tag table or the compiler logs a warning. Always compile the HMI after binding multiplexed prefixes.

Version-Specific Notes

TIA Portal version Faceplate interface editor Multiplexing Container faceplates
V13 / V13 SP1 Interface > Properties_Faceplate, properties list view only Not supported Not supported
V14 / V14 SP1 Same as V13, with improved tag picker Not supported Not supported
V15.1 Properties editable in a grid; tag picker categorizes faceplate tags Introduced Limited
V16 / V17 Renamed Faceplate_Properties; full RT Unified editor Full Yes
V18 / V19 / V20 Unified faceplate editor with scripting, styles, and SVG support Full Yes, with faceplate-in-faceplate

If you are stuck on V13, you cannot use multiplexing. Instead, build one faceplate per instance, or use a script with the HMIRuntime.Tags object to resolve the tag at runtime.

Script-Based Binding (Advanced)

For dynamic PLC tag binding that is not known at compile time, use VB or C script inside the faceplate:

' VBScript example: read a tag whose name is built at runtime
Dim tagName, value
tagName = SmartTags("TagPrefix") & ".Running"
value = HMIRuntime.Tags(tagName).Read
SmartTags("Properties_Faceplate").Item("Running").Value = value

In RT Unified (V16+), the equivalent is JavaScript using the HMIRuntime object:

let prefix = Tags("TagPrefix").Read();
let value = Tags(prefix + ".Running").Read();
Tags("Faceplate_Properties").Item("Running").Write(value);

Verification Procedure

  1. Compile the HMI project (Compile > Software (rebuild all)). Address warnings about unresolved tags before continuing.
  2. Download to the HMI runtime (RT Professional, RT Advanced, or panel).
  3. Open the screen with the faceplate. Force the PLC tag from the PLC online view (TIA Monitor & Force). Confirm the faceplate property updates.
  4. Click the faceplate button. Confirm the corresponding PLC tag flips in the PLC online view. If it does not:
  • Check the connection status in the HMI diagnostics screen.
  • Verify the PLC tag is accessible (read/write, not write-protected by access level).
  • Confirm the security setting in the user administration is not blocking the write.
  1. From the HMI, force the PLC tag to TRUE. Confirm the indicator in the faceplate (e.g., running lamp) turns green.
  2. Stop the runtime. Recompile. Confirm no warnings appear in the output window.

Troubleshooting Matrix

Symptom Likely cause Fix
PLC tag not visible in event dialog Event is being configured inside the faceplate type, where only interface tags and internal tags are exposed Add the tag to Interface > Properties_Faceplate first, then bind the event to that interface tag
Faceplate instance shows no binding field Property not declared as exposed, or faceplate not regenerated after edit Right-click the faceplate in the library and Update instances
Button click does not change PLC tag PLC tag's access level is read-only at the HMI, or wrong PLC connection selected Verify the PLC tag's access rights and the HMI-to-PLC connection in Devices & Networks
Compilation warning: Tag not found Multiplex prefix does not resolve, or HMI tag is missing Add the HMI tag to the HMI tag table, or correct the prefix value
Wrong bit flips when button clicked Multiple faceplate instances bind to the same PLC tag, or a tag-prefix is shared Check each instance's interface binding individually
Faceplate property is grayed out Property is set to Read-only or Constant in the interface editor Edit the faceplate type and change the property's mode to Property
V13 project upgraded to V16: faceplate errors Interface renamed; old name Properties_Faceplate replaced by configurable name Open the faceplate and re-save; update scripts that reference the old interface name
Runtime shows Tag value invalid Data type mismatch (e.g., REAL bound to INT property) Change the property's data type or convert the value via script

Performance and Best Practices

  • Keep the number of properties per faceplate below 30. More than that inflates compile time and the runtime memory footprint.
  • Prefer Bool over Int for individual bits — the runtime cycles BOOL tags faster.
  • Reuse faceplate instances: instead of creating 100 separate faceplates, build one and multiplex the tag prefix.
  • Do not place scripts inside frequently triggered events (e.g., Value change on a 100 ms tag). Use On-demand triggers.
  • Compile the HMI project to a separate folder before each download. This lets you roll back if a binding change breaks runtime behavior.
  • Use the Cross-reference tool (Ctrl+Shift+F3) to verify every faceplate instance has all its properties bound. Unbound defaults are a common runtime surprise.

Frequently Asked Questions

Why can I only see HMI tags — and not my PLC tags — when I configure a button event inside a faceplate?

Inside the faceplate type, events bind only to interface tags, internal faceplate tags, and constants. PLC tags are bound at the faceplate instance on the calling screen, not inside the faceplate. Add the PLC variable as a property under Interface > Properties_Faceplate, wire the event to that property, then bind the property to a PLC tag at the instance.

Can I bind a faceplate button directly to a PLC tag without creating an interface property?

No. The faceplate body has no access to PLC tags. All bindings must pass through the faceplate interface. The only exception is using a script that resolves the PLC tag at runtime via HMIRuntime.Tags.

What is the difference between internal tags and interface tags in a faceplate?

Internal tags live in the faceplate's Tags tab and exist only inside that faceplate. They are invisible to the calling screen and cannot be bound to PLC tags from outside. Interface tags are declared under Properties_Faceplate and are the only way to exchange data with the calling screen or PLC.

Does TIA Portal V13 support multiplexing faceplate tags?

No. Multiplexing was introduced in V15.1. In V13/V14 you must create one faceplate per instance or use a VBScript that reads and writes the PLC tag by name at runtime.

How do I bind a faceplate to a S7-1500 data block bit?

Create an HMI tag whose PLC tag points to the DB bit (for example %DB5.DBX0.0), declare a Bool property in the faceplate interface, and select that HMI tag when configuring the property on the faceplate instance. The runtime reads and writes the bit on each cycle.

Back to blog