Resolving 'Command Fired' Event Failures on WinCC Unified Comfort Panels
Engineers commissioning WinCC Unified projects frequently encounter a situation where a script attached to the "Command fired" event of the Parameter Set Control executes correctly inside the TIA Portal simulation and the PC Runtime, but never fires once the project is downloaded to a physical Unified Comfort Panel. The script may also execute from a button event on the same screen but consistently skip the parameter set event on the target device. This article documents the failure mode, the diagnostic procedure using the TraceViewer, the root causes tied to property binding of Current PSTID / Current PSID, and the firmware-specific mitigations available from TIA Portal V18 through V21.
1. Problem Description
The Parameter Set Control (also referred to as RecipeControl or ParameterSetControl) is the unified screen object that manages parameter sets, recipes, and their transfer to/from the PLC. It exposes a JavaScript event named "Command fired" that fires whenever the operator selects a runtime command (for example, Read from PLC, Transfer to PLC, Save, Delete, New, Rename). In the failing scenario, the event handler executes:
- In TIA Portal V18 / V19 / V20 simulation with full trace output.
- In the RT Unified PC runtime when the project is loaded directly.
- From a button click on the same Unified Comfort Panel where the parameter set event fails.
The event handler does not execute on the physical Unified Comfort Panel after the project is downloaded. The handler's HMIRuntime.Trace messages are not emitted, and downstream tags or PLC writes do not occur.
2. Symptoms and Observed Trace Output
When TraceViewer is connected to the running panel (via the unified panel's trace logging facility), engineers observe the following diagnostic messages appearing immediately after the operator triggers a command:
virtual void HmiGfx::RHQt::ParameterControlReteProxy::afterPropertiesChange():
CHROM Property related to Current PSTID and Current PSID not available
This message is emitted from the Qt-based rendering layer (HmiGfx::RHQt) of the parameter set proxy. The keywords to recognize in trace logs are:
| Trace Keyword | Meaning |
|---|---|
ParameterControlReteProxy |
C++ proxy class bridging the HMI control to the runtime engine |
afterPropertiesChange() |
Callback invoked after dynamic properties of the control have been refreshed |
Current PSTID |
Parameter Set Type Identifier currently selected in the control |
Current PSID |
Parameter Set Identifier (the specific data record inside the type) |
CHROM Property ... not available |
The expected dynamic interface property cannot be resolved against the configured recipe structure |
The presence of this trace line is the strongest indicator that the runtime is unable to resolve the dynamic property bindings the Command fired event depends on. In this state the event handler is registered but is never invoked, because the runtime aborts the command path before the script is dispatched.
3. Affected Versions and Firmware Matrix
The failure was first reported on TIA Portal V18 with the matching Unified Comfort Panel firmware image. The behavior persists on intermediate versions and is resolved only on specific firmware image revisions. The mapping below is consolidated from Siemens support notes for the Unified Comfort Panel family (MTP700 Unified Comfort, MTP1000 Unified Comfort, MTP1200 Unified Comfort, MTP1500 Unified Comfort, MTP1900 Unified Comfort, MTP2200 Unified Comfort):
| TIA Portal Version | Recommended Panel Image | Command Fired Status | Notes |
|---|---|---|---|
| V18 (Update 1..5) | V18.x image | Failing on physical panel | PSTID/PSID property binding defect |
| V19 | V19.x image | Intermittent | Some parameter set types execute, custom structures fail |
| V20 | V20.x image | Improved, residual issue | Multi-user data records still affected |
| V20 Update 3+ | V20.x image (latest) | Mostly stable | Recommended minimum for production |
| V21 | V21.x image (required) | Resolved | Install V21 image per Siemens support advisory |
4. Root Cause Analysis
The "Command fired" event on the Parameter Set Control is dispatched by the runtime only after the property layer can resolve the current selection context. Two properties are required for the dispatch:
- Current PSTID — the active parameter set type identifier.
- Current PSID — the active parameter set identifier within that type.
These properties are normally bound automatically by the control to the recipe structure compiled from the project. When the binding fails, three root causes are typically responsible:
4.1 Mismatched Panel Image and Project Version
The most common cause is a version skew between the project compiled in TIA Portal and the runtime image installed on the panel. The control expects property names and runtime symbols that change between major versions. When the panel is running an older image than the project was compiled against, the proxy cannot resolve Current PSTID / Current PSID and the trace message is logged. Mitigation: align the panel image with the TIA Portal version used for the project compile.
4.2 Recipe Structure Without Synchronized PLC DB
If the parameter set type was edited after the PLC data block was generated, or if the data block layout was changed without recompiling the HMI project, the property mapping inside the compiled project becomes invalid. The runtime detects the mismatch during afterPropertiesChange() and silently fails to dispatch the event. Mitigation: regenerate the PLC data blocks from the unified recipe structure and recompile the HMI project before download.
4.3 Multi-Language or Multi-User Parameter Set Configuration
Parameter set types that contain language-dependent display names, user-specific filter lists, or custom data record views compiled under V18 may exhibit the same failure on V19/V20 images because the dynamic property catalog was extended. The trace message is identical; the underlying defect is in the property catalog.
5. Diagnostic Procedure Using TraceViewer
Because the Unified Comfort Panel does not provide a remote console object at runtime (unlike WinCC Professional), use TraceViewer to capture script-level and runtime-level trace messages. The recommended diagnostic procedure is:
Step 1 — Enable Tracing on the Panel
- Open the panel's web-based management interface (Settings > System > Logging / Trace).
- Enable Script Trace and Runtime Trace at the highest verbosity.
- Start the TraceViewer on the engineering station and connect to the panel IP on port
7000(default) or the configured trace port.
Step 2 — Instrument the Script
Place trace calls at the top of the event handler so the absence of the trace line confirms the event never fires:
export function ParameterSetControl1_OnCommandFired(item) {
HMIRuntime.Trace("Event: Command fired, commandId=" + item.CommandId);
try {
// original handler logic
var psName = Parameters("Recipe").Read("CurrentPSName");
HMIRuntime.Trace("Read PS name OK: " + psName);
} catch (e) {
HMIRuntime.Trace("Error reading PS name, code=" + e.message);
}
}
Step 3 — Filter for the Failure Indicator
In TraceViewer, filter on the substrings:
ParameterControlReteProxyCurrent PSTIDCurrent PSIDnot available
If the proxy message appears but no Event: Command fired, commandId=... message is emitted when the operator presses a control button, the event handler is registered but the runtime is not invoking it.
Step 4 — Capture Error Codes
When the handler contains a try/catch block as shown, capture the error message that follows Error reading PS name, code=. Common codes observed in the wild include:
| Error Code | Meaning | Recommended Action |
|---|---|---|
0x80040001 |
Property not bound | Recompile HMI project after regenerating PLC DBs |
0x80040005 |
Type mismatch between project and image | Upgrade panel image to match TIA version |
0x8004000C |
Recipe structure locked by another client | Verify no other Runtime instance holds the recipe lock |
0x80040015 |
PSID/PSTID combination not present | Verify parameter set exists for the current user |
6. Resolution Paths
The fix depends on the version combination in use. Apply the steps in the order listed.
6.1 Verify Panel Image and TIA Version Match
- On the panel, navigate to Control Panel > System > About and note the firmware / image version.
- On the engineering station, open TIA Portal and select Project > Properties > Device configuration. Confirm the panel device version matches the installed image.
- If mismatched, install the panel image that matches the TIA Portal version used for the project compile. Siemens publishes image updates via the Siemens Industry Online Support portal under the panel's article ID.
6.2 Regenerate PLC Data Blocks from the Recipe Structure
- In the TIA project tree, expand Recipes and open the parameter set type.
- Right-click the type and select Generate PLC data blocks.
- Compile the PLC station and download to the controller.
- Recompile the HMI station and download to the panel.
This step is required when the trace shows the CHROM Property ... not available message and the panel image is aligned with the project version.
6.3 Upgrade to V21 Image for Defect Resolution
For projects on TIA Portal V18, V19, or V20 where the underlying defect is catalogued in the Siemens support database, Siemens recommends installing the V21 image on the Unified Comfort Panel and recompiling the project under the matching TIA Portal V21 update. Confirm the image revision with the support advisory issued for the panel family in use. After the upgrade:
- Back up the panel project and configuration.
- Apply the V21 image via the SD card slot or via the panel's web-based firmware update.
- Recompile the HMI project under TIA V21 and download.
- Verify the "Command fired" event fires by repeating the TraceViewer diagnostic from Section 5.
6.4 Submit a Siemens Support Request
When the V21 image and regenerated PLC DBs do not resolve the failure, the remaining likelihood is a project-specific defect in the compiled property catalog. Submit a support request via the Siemens Industry Online Support portal with the following attachments:
- Export of the TIA project (compressed).
- TraceViewer capture showing the CHROM Property ... not available message.
- Panel image version (from Control Panel > System > About).
- TIA Portal version and installed updates.
- Description of the operator action and expected vs. observed behavior.
7. Temporary Workarounds
Where the root cause cannot be eliminated within the project schedule, the following workarounds restore functional behavior without requiring the "Command fired" event on the parameter set control.
7.1 Move the Logic to a Button Event
Create a hidden or visible button on the same screen and move the parameter set read/write logic into the button's Click event. The handler reads Parameters("Recipe").Read("CurrentPSName") directly. This bypasses the parameter set control's event dispatcher entirely and is the fastest path to a working production panel.
7.2 Use the System Function for Parameter Set Transfer
Instead of relying on the control's internal command buttons, configure system functions (e.g., ReadPLC, WritePLC, SaveDataRecord) on dedicated buttons. These functions are dispatched by the runtime command layer and do not depend on the "Command fired" event.
7.3 Use Tag Change Events on PLC Status Words
Mirror the parameter set state into a PLC tag (e.g., "HMI.PST_ActiveID") and trigger the handler from a tag change event on the PLC side. The handler subscribes to the tag and executes when the controller updates the ID, eliminating dependence on the HMI control event path.
8. Verification Procedure
After applying a resolution, verify the fix with the following checklist before declaring the panel ready for production:
- Connect TraceViewer to the panel and enable the script trace filter.
- Trigger each command available on the Parameter Set Control: New, Save, Rename, Delete, Read from PLC, Transfer to PLC.
- Confirm one Event: Command fired, commandId=... trace line per operator action.
- Confirm no CHROM Property ... not available trace lines are emitted.
- Verify PLC tag values reflect the expected parameter set state after each command.
- Power-cycle the panel and repeat steps 2-5 to confirm the fix survives a cold start.
- Test operator authentication flows: log out, log in with a different user, repeat steps 2-5.
9. Related Configuration Settings
The Parameter Set Control configuration that influences event dispatch is located under HMI Device > Screens > [Screen] > Controls > ParameterSetControl > Properties. Review the following properties when the trace points to property binding failures:
| Property | Recommended Setting | Effect on "Command Fired" Event |
|---|---|---|
| Recipe type assignment | Single type per control instance | Multiple types in one control frequently trigger the property resolution failure |
| Display name source | PLC DB symbol comment | Hard-coded display names are more resilient across firmware updates |
| Operator authorization | Enabled per command, not per control | Bulk authorization can mask command-level failures and prevent event dispatch |
| Data record cache size | Match active parameter set count | Oversized cache triggers 0x80040015 errors |
| Offline/Online toggle | Configured consistently across clients | Mismatch causes session-locked state and silent event suppression |
10. References to Official Documentation
The "Command fired" event is part of the WinCC Unified screen object control catalog. Engineers should consult the official Siemens documentation for the screen object model and the supported events:
- Configuring screens in RT Unified — Controls (TIA Portal V20 cloud documentation)
- Siemens Industry Online Support — support.industry.siemens.com (search by panel article ID for the latest firmware and advisories)
Why does my 'Command fired' script run in TIA simulation and RT Unified PC but not on the Unified Comfort Panel?
The most common cause is a version mismatch between the TIA Portal project (e.g., V18) and the firmware image installed on the panel. The runtime proxy cannot resolve the Current PSTID and Current PSID dynamic properties and aborts event dispatch, producing the trace line CHROM Property related to Current PSTID and Current PSID not available. Align the panel image with the TIA Portal version, or upgrade the panel to the V21 image for the catalogued defect resolution.
How do I confirm the 'Command fired' event is registered but never invoked on the panel?
Instrument the handler with HMIRuntime.Trace("Event: Command fired, commandId=" + item.CommandId) at the top, connect TraceViewer to the panel on the configured trace port, and trigger the command from the operator panel. If the trace line never appears while the same script fires from a button on the same screen, the runtime is not dispatching the parameter set control event. Cross-check with the proxy trace line ParameterControlReteProxy::afterPropertiesChange() to confirm a property binding failure.
What panel image version resolves the 'Command fired' defect?
Siemens support advisories for the Unified Comfort Panel family identify the V21 image as the recommended revision for resolving the property binding defect that suppresses the Command fired event. For projects on TIA Portal V18-V20, recompile the HMI station under TIA V21 and install the matching V21 image on the panel. Verify the fix with the TraceViewer procedure before returning the panel to production.
Can I use a workaround if I cannot upgrade the panel image immediately?
Yes. Move the script logic from the Parameter Set Control's Command fired event to a button Click event, or configure system functions such as ReadPLC and WritePLC on dedicated buttons. These paths do not depend on the parameter set control's internal event dispatcher and remain functional on older firmware images. Account for any one-scan latency when using a PLC tag change event as an alternative trigger.
What information should I attach when escalating to Siemens support?
Submit the compressed TIA project export, a TraceViewer capture showing the CHROM Property ... not available message, the panel image version from Control Panel > System > About, the TIA Portal version with installed updates, and a description of the operator action with expected versus observed behavior. Use the official Siemens Industry Online Support portal to open the request under the panel's article ID.