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:
- PLC data types copied into the project library of the active HMI device or the project.
- System data types (BOOL, INT, REAL, STRING, WSTRING, DTL, etc.).
- 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
.al13library 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?"
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
- Open the PLC station that owns the UDT (for example, the S7-1510 SP).
- In the project tree, expand PLC > PLC data types.
- Right-click PLC data types and choose Add new PLC data type.
- Define the structure with consistent naming (use PascalCase, avoid special characters that the HMI tag importer cannot map).
- Compile the PLC station (Right-click PLC > Compile > Software (rebuild all)).
Step 2: Drag the PLC Data Type into the Project Library
- Open the Libraries task card (right edge of the TIA Portal window).
- Switch the library pane to Project library.
- From the PLC project tree, drag the new PLC data type from PLC > PLC data types into the Project library > Types folder.
- Alternatively, right-click the PLC data type, choose Copy, navigate to the project library Types node, and choose Paste.
Step 3: Use the PLC Data Type Inside a DB
- In the PLC station, create or open a global DB (for example,
DB_Motor). - Add a static variable of the new PLC data type as its data type (for example,
stMotor : "Motor_UDT"). - 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
- Open the HMI station's HMI tags editor.
- Drag the DB variable from the PLC station's reachable connections into the HMI tag table.
- Confirm the tag is created with the structured data type
Motor_UDTand not flattened to a BOOL/INT pair.
Step 5: Assign the UDT to the Faceplate Property
- Open the faceplate in the faceplate editor.
- In the Properties tab of the interface, locate the property intended to receive the structured tag.
- Click the Data type column for the property.
- In the dropdown, locate the project library PLC data type (now listed under its project library name).
- Select it. The icon must render in full color. A greyed icon indicates the type still fails the compatibility filter.
- 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:
- Open the screen that contains the faceplate instance.
- Select the faceplate instance; the Properties > Interface tab lists each faceplate property.
- 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). - The interface editor displays the fully qualified path. Confirm the binding shows a solid link icon, not a broken-link icon.
- Compile the HMI station. The compiler emits a warning
HMI tag connection: structured type requires project library presenceif 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:
- Compile the HMI station. The output window must show zero errors and zero warnings referencing the faceplate or the UDT type.
- Start RT (WinCC Runtime Professional or Advanced simulator). Load the project to the simulator.
-
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.Speedchanges the faceplate RPM display). -
Open the HMI tag diagnostics (Tools > Tag diagnostics) and verify the structured tag carries quality code
GOOD(hex 0xC0), notBAD(hex 0x00) orUNCERTAIN(hex 0x40). -
Inspect the HMI logs for entries
Faceplate <name>: property <prop> bound to type <UDT>. If the log showsunknown 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
-
Authoring:
PLC station > PLC data types > [new PLC data type] -
Library promotion:
Libraries task card > Project library > Types > [paste PLC data type] -
DB instantiation:
PLC station > Program blocks > DB > [static variable of PLC data type] -
HMI tag generation:
HMI station > HMI tags > [drag DB variable from PLC connection] -
Faceplate binding:
HMI station > Faceplates > [faceplate] > Properties > Interface > [property] > Data type - 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.