Resolving PLC UDT Unavailable in TIA Portal V13 Faceplates

David Krause12 min read
HMI ProgrammingSiemensTroubleshooting
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 Description: PLC UDT Greyed Out in Faceplate Properties

When configuring a faceplate in WinCC Professional or WinCC Advanced V13 SP1, engineers expect to assign a PLC User-Defined Type (UDT, also called a PLC data type in S7-1500 terminology) as the data type of a faceplate property. In many configurations, the expected PLC UDT does not appear in the property type dropdown, or it appears with a greyed-out icon that cannot be selected. The symptom is most often reported when:

  • The UDT was created inside a PLC station and used in a Data Block (DB), but never explicitly promoted to the project library.
  • Multiple PLCs exist in the project (for example, an S7-315 and an S7-1510 SP) and UDTs were authored in different stations.
  • The faceplate property expects a structured data type but only elementary types or library types appear in the selection list.
  • The icon color of one UDT differs from the others in the project tree, signaling that the type is not a project-level library type.

The visible behavior is that the faceplate compiles, but the property cannot be bound to any DB instance of the affected UDT, and runtime shows a quality code of DB conversion error or a permanently undefined tag value. This article documents the engineering fix for TIA Portal V13 SP1 through V13 SP1 Upd9 and the upstream Siemens FAQ that formalizes the procedure.

Root Cause Analysis

The TIA Portal faceplate editor resolves property types from three specific sources, in this priority order:

  1. PLC data types copied into the project library of the active HMI device or the project.
  2. System data types (BOOL, INT, REAL, STRING, WSTRING, DTL, etc.).
  3. HMI-side user data types declared inside the HMI tags editor.

A UDT that exists only inside a PLC station's program blocks (for example inside an S7-300/400 CPU's Program blocks > PLC data types node) is not exposed to the HMI faceplate editor. The faceplate editor queries the project library of the HMI station, not the PLC station's type catalog. When the UDT is referenced inside a DB on the PLC, the DB is recognized as an HMI tag, but the structured type behind it is invisible to the faceplate property selector.

A second, frequently missed cause is PLC generation mismatch. UDTs created inside an S7-300/400 station (STEP 7 V13 SP1 classic PLC) are not fully compatible with the S7-1500 PLC data type model that WinCC Professional V13 expects. Even when the UDT is moved to the project library, it may fail to bind to a faceplate property if the HMI target is paired with an S7-1500 CPU and the UDT was authored under an S7-300/400 station. The result is a greyed-out icon in the type selector.

The greyed-out icon color itself is a deliberate UI signal: it indicates that the type exists in the library catalog but its version stamp does not match the active HMI's PLC reference. The browser filters it out to prevent an invalid binding at compile time.

Environment and Prerequisites

The behavior and fix described here apply to the following configurations:

  • Engineering framework: TIA Portal V13 SP1 (Update 5 minimum recommended, Update 9 validated)
  • HMI runtime: WinCC Professional V13 SP1 or WinCC Advanced V13 SP1
  • PLC families: SIMATIC S7-300/400 (STEP 7 inside TIA) and SIMATIC S7-1200/S7-1500 (STEP 7 V13 SP1)
  • Faceplate scope: Faceplates created in the HMI project under HMI > Faceplates
  • Library mechanism: TIA project library (the per-project .al13 library pane, not the global library)
  • Reference document: Siemens Industry Online Support FAQ entry ID 68014632, "How do you use a PLC data type in a WinCC faceplate?"
Important: The fix applies to the project library, not the global library. Placing the UDT into the global library does not expose it to the faceplate editor of the HMI station unless it is also explicitly added to the project library of the active project.

Step-by-Step Resolution

Use the following sequence to make a PLC UDT selectable as a faceplate property data type in TIA Portal V13 SP1.

Step 1: Author the PLC Data Type in the PLC Station

  1. Open the PLC station that owns the UDT (for example, the S7-1510 SP).
  2. In the project tree, expand PLC > PLC data types.
  3. Right-click PLC data types and choose Add new PLC data type.
  4. Define the structure with consistent naming (use PascalCase, avoid special characters that the HMI tag importer cannot map).
  5. Compile the PLC station (Right-click PLC > Compile > Software (rebuild all)).

Step 2: Drag the PLC Data Type into the Project Library

  1. Open the Libraries task card (right edge of the TIA Portal window).
  2. Switch the library pane to Project library.
  3. From the PLC project tree, drag the new PLC data type from PLC > PLC data types into the Project library > Types folder.
  4. Alternatively, right-click the PLC data type, choose Copy, navigate to the project library Types node, and choose Paste.
Library versioning: Each paste increments the version stamp. Confirm that the pasted node icon shows a solid colored symbol (not a greyed outline) in the project library pane. A greyed icon means the paste failed or the type is incompatible with the active HMI's PLC reference.

Step 3: Use the PLC Data Type Inside a DB

  1. In the PLC station, create or open a global DB (for example, DB_Motor).
  2. Add a static variable of the new PLC data type as its data type (for example, stMotor : "Motor_UDT").
  3. Compile the PLC station again. The HMI tag importer picks up the DB and the contained UDT structure.

Step 4: Bind the HMI Tag to the DB Instance

  1. Open the HMI station's HMI tags editor.
  2. Drag the DB variable from the PLC station's reachable connections into the HMI tag table.
  3. Confirm the tag is created with the structured data type Motor_UDT and not flattened to a BOOL/INT pair.

Step 5: Assign the UDT to the Faceplate Property

  1. Open the faceplate in the faceplate editor.
  2. In the Properties tab of the interface, locate the property intended to receive the structured tag.
  3. Click the Data type column for the property.
  4. In the dropdown, locate the project library PLC data type (now listed under its project library name).
  5. Select it. The icon must render in full color. A greyed icon indicates the type still fails the compatibility filter.
  6. Compile the faceplate and the HMI station.

PLC Compatibility Matrix for Faceplate UDT Usage

PLC Authoring Station HMI Runtime UDT Usable in Faceplate? Required Action
S7-1510 SP (S7-1500 family) WinCC Professional V13 SP1 Yes, after project library copy Drag UDT from PLC to project library, then bind in faceplate
S7-1510 SP (S7-1500 family) WinCC Advanced V13 SP1 Yes, after project library copy Drag UDT from PLC to project library, then bind in faceplate
S7-315-2 (S7-300 family) WinCC Professional V13 SP1 Limited, UDT may be greyed out Re-author UDT under the S7-1500 station or replicate it in the project library
S7-315-2 (S7-300 family) WinCC Advanced V13 SP1 (TP Comfort 1200) No, UDT cannot be bound Mirror the UDT structure as an HMI data type and bind to flattened tags
S7-1200 WinCC Professional V13 SP1 Yes, after project library copy Drag UDT from PLC to project library, then bind in faceplate
S7-1200 WinCC Advanced V13 SP1 Yes, after project library copy Drag UDT from PLC to project library, then bind in faceplate

Library Type Comparison: Project Library vs Global Library

Feature Project Library Global Library
Scope Single TIA project only Reusable across multiple TIA projects
Faceplate editor visibility Yes, UDTs are listed in property type dropdown No, unless also added to the project library
Versioning Local to project; tracked in .al13 Central; tracked in .al* archive
Update propagation Manual; must re-drag to update Sync via Update library command
Use case Working session, single project Standardized corporate type catalog

For faceplate property binding, only the project library is consulted. A common error is to maintain the UDT in the global library and expect the faceplate editor to see it. The fix is to drag the UDT from the global library into the project library as a local copy, then bind from there.

Connecting UDT-Based DB Tags to Faceplates

Once the UDT exists in the project library and is referenced in a DB, the HMI tag importer creates a structured HMI tag whose data type mirrors the project library type. The binding workflow is:

  1. Open the screen that contains the faceplate instance.
  2. Select the faceplate instance; the Properties > Interface tab lists each faceplate property.
  3. For the property whose data type matches the project library UDT, click the value cell and select the HMI tag (for example, HMI_Tag_1.Motor_UDT).
  4. The interface editor displays the fully qualified path. Confirm the binding shows a solid link icon, not a broken-link icon.
  5. Compile the HMI station. The compiler emits a warning HMI tag connection: structured type requires project library presence if the library type is missing.

For multi-PLC projects, the HMI station is normally paired with a single primary PLC. If the faceplate must bind to a UDT originating in a different PLC station, an HMI proxy data type must be created with an identical structure, and the DB instance from the second PLC must be mapped to that proxy. Direct cross-PLC binding of UDTs without a project library copy is not supported.

Verification Procedure

After applying the fix, validate that the faceplate correctly consumes the UDT with the following checks:

  1. Compile the HMI station. The output window must show zero errors and zero warnings referencing the faceplate or the UDT type.
  2. Start RT (WinCC Runtime Professional or Advanced simulator). Load the project to the simulator.
  3. Force a value in the DB on the PLC side using the watch table. Confirm the faceplate instance updates the relevant property value (for example, stMotor.Speed changes the faceplate RPM display).
  4. Open the HMI tag diagnostics (Tools > Tag diagnostics) and verify the structured tag carries quality code GOOD (hex 0xC0), not BAD (hex 0x00) or UNCERTAIN (hex 0x40).
  5. Inspect the HMI logs for entries Faceplate <name>: property <prop> bound to type <UDT>. If the log shows unknown type, the project library copy was not promoted to the version that matches the HMI target.

Troubleshooting Matrix

Symptom Likely Cause Resolution
UDT not visible in faceplate property type list UDT never copied to project library Drag UDT from PLC > PLC data types into Project library > Types
UDT visible but greyed out UDT version incompatible with HMI's PLC reference Re-author UDT under the paired PLC station or update HMI pairing
UDT icon color differs from other UDTs Mixed library origins (PLC station vs project library) Ensure all faceplate-bound UDTs originate from the project library
Compile warning: structured type not found Project library type deleted after faceplate binding Restore the type in the project library, recompile
Runtime: faceplate shows 0 for all structured members DB not linked correctly, or HMI tag lacks substructure Re-drag DB variable into HMI tag table, confirm structured type is preserved
Runtime quality code BAD on structured tag PLC connection lost or UDT definition changed after compile Recompile PLC, refresh HMI tag connection, restart RT
S7-300 UDT not bindable on S7-1500 paired HMI Cross-generation UDT incompatibility Create mirror UDT in S7-1500 station, replicate structure, use as binding type
Update from V13 SP1 Upd3 to Upd9 does not restore visibility Project library copy predates update Delete project library type, re-drag from PLC station, recompile

Known Constraints and Workarounds

  • S7-300/400 UDT limitation: UDTs authored in an S7-300/400 station under STEP 7 V13 SP1 cannot always be bound to a faceplate property when the HMI is paired with an S7-1500 station. The workaround is to create a parallel PLC data type under the S7-1500 station with identical structure and use that for the faceplate binding. The DB instances in the S7-300/400 station must then be exposed via proxy tags or by re-instantiating the mirrored UDT.
  • Global library types do not bind directly: A type residing only in the global library is not selectable from the faceplate editor. Always also place a copy in the project library.
  • Nested UDT references: If UDT_A contains a member of UDT_B, both must be present in the project library for the faceplate to bind. Verify by expanding Project library > Types and confirming both types are listed.
  • Array of UDT: Faceplate properties of type ARRAY[0..n] of "UDT" are supported only when the array bound element count matches the faceplate property declaration. Mismatches produce the greyed-out type icon.
  • Version drift after TIA updates: Applying a TIA Portal update (for example, V13 SP1 Upd5 to Upd9) can invalidate the project library version stamp. Symptoms return after an update even when the fix was previously applied. The remedy is to delete and re-add the project library type.
  • Multiple HMI devices: When the project contains multiple HMI stations (for example, a Comfort panel and an RT Professional station), each HMI must have its own copy of the UDT in its project library pane, or the shared library pane must be promoted at the project level (not HMI level).

Reference Path Summary

  1. Authoring: PLC station > PLC data types > [new PLC data type]
  2. Library promotion: Libraries task card > Project library > Types > [paste PLC data type]
  3. DB instantiation: PLC station > Program blocks > DB > [static variable of PLC data type]
  4. HMI tag generation: HMI station > HMI tags > [drag DB variable from PLC connection]
  5. Faceplate binding: HMI station > Faceplates > [faceplate] > Properties > Interface > [property] > Data type
  6. Official Siemens reference: Siemens FAQ 68014632 - How do you use a PLC data type in a WinCC faceplate?

Frequently Asked Questions

Why does my PLC UDT appear greyed out in the TIA Portal V13 SP1 faceplate property dropdown?

The greyed-out icon signals a library version mismatch. The UDT exists in the catalog, but the version stamp does not match the active HMI's PLC reference. Delete the type from the project library, re-drag it from the source PLC station, recompile, and the type will render in full color and become selectable.

Can I use a UDT authored in an S7-300 station inside a faceplate paired with an S7-1500 PLC?

Not directly. S7-300 UDTs authored under STEP 7 V13 SP1 are not fully compatible with the S7-1500 data type model that WinCC Professional V13 expects. Create a mirror PLC data type under the S7-1500 station with an identical structure, promote it to the project library, and use that as the faceplate property data type.

Do I need to copy the UDT to the global library or the project library?

The project library. The faceplate editor queries only the project library of the active project. Placing the type only in the global library leaves it invisible to the faceplate property dropdown. Drag a copy from the global library into the project library under Types to make it bindable.

Does the fix still apply after upgrading from TIA Portal V13 SP1 Upd3 to Upd9?

Yes, but the project library copy may need to be refreshed. Apply the update, delete the existing project library UDT, re-drag it from the source PLC station, recompile the PLC and HMI stations, and re-bind the faceplate property.

What happens if the faceplate property type is bound but the project library UDT is deleted afterward?

The HMI compile emits the warning "structured type not found" and the runtime quality code on the bound tag falls to BAD (hex 0x00). Restore the UDT in the project library with the same name and structure, recompile the HMI, and the binding recovers without needing to rebind the faceplate manually.

Back to blog