Resolving WinCC Alarm View Column Order Not Updating at Runtime

David Krause21 min read
HMI / SCADASiemensTroubleshooting
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 Statement: Alarm View Column Order Does Not Persist at Runtime

When you reorder columns inside an Alarm View in the TIA Portal engineering environment, the project view reflects the new order immediately, but the runtime — whether that is the HMI Runtime Simulation (RT Simulation) on the engineering PC or the actual operator panel — continues to display the original column order. This disconnect between design time and runtime is one of the most common configuration issues in WinCC Comfort, WinCC Advanced, and WinCC Unified projects and is frequently mistaken for a software defect rather than a missing step in the engineering workflow.

The condition is not platform-specific. The same observation appears in legacy WinCC Flexible 2008, current WinCC Comfort/Advanced V18/V19/V20, and the newer WinCC Unified V17/V18/V19/V20. It also appears in third-party HMI/SCADA platforms that use a similar design-time/runtime split (AVEVA InTouch, Schneider Geo SCADA, Ignition Perspective). The remediation steps differ by platform, but the underlying cause is almost always a missing recompile, a stale runtime file on the target, or a runtime property that overrides the design-time configuration.

This reference walks through the diagnosis and resolution of the column-order-not-updating problem, beginning with a symptom matrix that maps common observations to likely root causes, then provides platform-specific remediation paths, a verification procedure, and a list of field-proven caveats. The article is structured for an automation engineer who is already familiar with the basics of TIA Portal and WinCC and is now troubleshooting a column-order issue that survives a Rebuild All and a project transfer.

Affected Products and Versions

The following configurations are confirmed to exhibit the column-order-not-updating behavior when the documented remediation steps are not followed:

  • TIA Portal V15.1 + WinCC Comfort V15.1 (HMI RT on Comfort Panels KP400 through TP1500)
  • TIA Portal V16 + WinCC Advanced V16 (HMI RT on RT Professional, Panels, and WinCC Runtime Advanced)
  • TIA Portal V17 + WinCC Advanced V17 and WinCC Unified V17
  • TIA Portal V18 + WinCC Comfort V18, WinCC Advanced V18, WinCC Unified V18
  • TIA Portal V19 + WinCC Unified V19 (alarm control properties under "Properties > Alarm control > Columns")
  • TIA Portal V20 + WinCC Unified V20 (alarm control under Properties > Alarm control > Columns, per the official V20 documentation at Configuring columns and sorting (RT Unified))

If you are running a version outside this list (for example, TIA Portal V13 SP1 / WinCC Comfort V13 SP1 or TIA Portal V14 / WinCC Comfort V14), the same root cause applies, but the menu paths and the names of the configuration dialogs may differ. Legacy WinCC Flexible 2008 SP5 users should look for "Alarm View Editor" under the "Alarms" node of the project tree; the principle — recompile + retransmit — is identical.

Symptom Matrix: Mapping the Observation to the Likely Cause

Observation Most Likely Root Cause Priority
Column order in project tree editor is correct, but RT Simulation still shows the old order Project was not rebuilt with "Rebuild All" after the Alarm View column change, or RT Simulation is loading a cached compiled image High
Column order in project tree editor is correct, RT Simulation updates after a Rebuild All, but the actual panel still shows the old order The recompiled HMI image was not retransferred to the panel, or the transfer was incomplete (only delta transfer, not full transfer) High
Column order is correct in project tree, RT Simulation is correct after Rebuild All, panel was fully retransferred, but the panel still shows the old order after restart Persistent HMI runtime file is corrupted or the panel is loading a backup runtime file from the backup/restore directory Medium
Column order is correct in project tree, RT Simulation is correct, panel is correct after a full retransmit, but the order reverts to default on the next power cycle The runtime is writing its column configuration to a non-retentive storage area; or the panel's operating-mode switch is set to "Transfer" instead of "Online" Medium
Column order is correct everywhere except when the alarm view is invoked from a screen that uses an indirect screen number (for example, via a pointer to a tag) Multiple Alarm View instances exist on different screens with different column configurations; the runtime is loading the wrong instance Medium
Column order is correct in WinCC Comfort/Advanced but is being overridden by a script or by an active screen change at runtime A VBScript or C-script attached to the alarm control is calling ColumnOrder or setting column properties at runtime Low
Column order is correct in TIA Portal, RT Simulation is correct, panel is correct after a full retransmit, but a JavaScript call on a Unified screen changes the order on the next screen change A Unified script is using the alarm control's setColumns() runtime API to override the design-time configuration Low

Root Cause Analysis

The HMI engineering environment in TIA Portal and WinCC is split into two distinct compilation passes: the PLC project and the HMI project. The HMI project itself is further split into the design-time configuration (the Alarm View editor, the screen editor, the tag table) and the runtime image (the compiled binary that runs on the HMI Runtime Simulation or on the panel).

When you change the column order in the Alarm View editor, you are modifying the design-time configuration only. The runtime image is not regenerated automatically when you save the project; it is regenerated only when you trigger a compile operation. In TIA Portal, this can be:

  • "Compile > Software (rebuild all)" — rebuilds every PLC and every HMI in the project
  • Right-click on the HMI device node > "Compile > HMI" — rebuilds only the selected HMI
  • Right-click on the HMI device node > "Compile > HMI > Rebuild all" — equivalent to a full rebuild of the HMI only

If you do not trigger one of these, the changes you made to the Alarm View editor are stored in the project database (so the project tree shows the new order) but the runtime image on disk is the previous one. The HMI Runtime Simulation loads the runtime image from the local engineering PC; the actual panel loads the runtime image from its internal flash memory or from an SD card.

Three classes of root cause account for virtually every column-order-not-updating observation:

  1. Missing compile. The Alarm View configuration was edited but the HMI was not recompiled. The project tree shows the new order; the runtime image is the old one.
  2. Missing transfer. The HMI was recompiled, but the new runtime image was not transferred to the panel, or only a partial (delta) transfer was performed that did not include the Alarm View file. The RT Simulation on the engineering PC now shows the new order; the panel still shows the old one.
  3. Runtime override. A VBScript, a C-script, or a screen-level configuration in the project is setting the column order at runtime, overriding the design-time configuration. The compile and transfer are correct, but the runtime is enforcing a different order from a script.

A fourth, less common root cause is a corrupted runtime image on the panel's internal flash memory. This is observed when the panel has been powered off during a transfer, or when the operating system on the panel is out of date relative to the TIA Portal version. The remediation for this case is a full operating-system update followed by a full transfer, or in extreme cases a ProSave reset of the panel.

A fifth root cause, specific to WinCC Unified, is the use of the alarm control's runtime API to set column properties at runtime. The official Siemens V20 documentation for "Configuring columns and sorting (RT Unified)" describes column configuration under "Properties > Alarm control > Columns" — this is the design-time configuration. If a script or a screen event subsequently sets the columns property at runtime, the design-time order is overwritten. This is by design (it allows runtime customization) but it surprises engineers who expect the design-time order to win.

Diagnostic Procedure

Before applying any remediation, run the following diagnostic sequence to confirm which root cause applies. Do not skip any step; the order is important.

  1. In the TIA Portal project tree, open the Alarm View editor. Verify that the column order shown here matches the order you expect. If it does not, the editor itself is the problem — re-edit the Alarm View, save, and re-check.
  2. Right-click on the HMI device node in the project tree. Select "Compile > HMI". Watch the output window for any warnings or errors. If a warning or error refers to the Alarm View, address that issue first.
  3. Close the TIA Portal project. Open the local directory on the engineering PC where TIA Portal stores the compiled HMI runtime image. The default locations are:
    • WinCC Comfort / Advanced: C:\Program Files\Siemens\Automation\WinCC RT Advanced\Bin\
    • WinCC Unified: C:\Program Files\Siemens\Automation\WinCC Unified\Bin\ (or the project's UserFiles directory)
  4. Compare the timestamp of the Alarm View file in this directory with the timestamp of your most recent edit in TIA Portal. If the timestamp is older than the edit, the compile did not pick up the change.
  5. Launch the HMI Runtime Simulation on the engineering PC. Confirm the column order. If the simulation shows the new order but the panel does not, the issue is the panel transfer.
  6. From TIA Portal, select the HMI device node and choose "Online > Extended download to device". When prompted, choose "Overwrite all" (not "Firmware update" and not "Consistent download") to force a full image transfer. Restart the panel after the transfer.
  7. If the panel still shows the old order after a full transfer and a restart, the issue is most likely a corrupted runtime image on the panel. Proceed to the ProSave reset path described in the Verification section.

Solution Path A: TIA Portal with WinCC Comfort and WinCC Advanced

For Comfort Panels (KP400, KTP400, KTP700, KTP900, KTP1200, TP1500) and for WinCC Runtime Advanced (RT Advanced on a PC, or panels in the Advanced class), follow this procedure.

Step A1 — Recompile the HMI in TIA Portal

  1. Open the TIA Portal project.
  2. In the project tree, right-click on the HMI device (for example, "HMI_1 [TP1200 Comfort]").
  3. Select "Compile > HMI > Rebuild all" (not just "Compile" — use "Rebuild all" to force a full recompile, not an incremental one).
  4. Watch the output window for the line "Compile finished successfully" or "Compile finished with warnings".
  5. If the compile produced warnings, double-click each warning. Warnings about the Alarm View are usually an indication that a referenced tag is missing or that an alarm class is not assigned. Resolve each warning before proceeding.

Step A2 — Verify the local compiled image

  1. Navigate to the HMI runtime image directory on the engineering PC. For a Comfort Panel, the default is: C:\Program Files\Siemens\Automation\WinCC RT Advanced\Bin\HMI_1\ (The exact subfolder name matches the HMI device name in TIA Portal.)
  2. Sort the directory by "Date modified" and look for the Alarm View file. The file extension is .rtf for the HMI runtime image, and the file with the Alarm View content is typically named with the screen number and the word "Alarm".
  3. Confirm the timestamp matches the time you ran the rebuild.

Step A3 — Transfer the HMI image to the panel

  1. Connect the engineering PC to the panel using Ethernet (PROFINET), USB, or MPI/PROFIBUS, depending on the panel model.
  2. In the TIA Portal project tree, expand the HMI device node and select "Online & Diagnostics".
  3. In the right pane, click "Extended download to device".
  4. Select the PG/PC interface, the panel's connection, and click "Load".
  5. When the "Load preview" dialog appears, click "Continue" and select "Overwrite all" in the next dialog. This forces a complete overwrite of the runtime image on the panel, not a partial delta.
  6. Wait for the transfer to complete. The panel will restart automatically.

Step A4 — Verify the column order on the panel

  1. On the panel, navigate to the screen that contains the Alarm View.
  2. Trigger an alarm (for example, by forcing a bit in the PLC that activates an alarm tag) and confirm that the column order matches the design-time configuration.

If the column order is still incorrect after Step A4, proceed to the "Persistent Runtime File Reset" path described in the Verification section.

Solution Path B: WinCC Unified V17 / V18 / V19 / V20

WinCC Unified uses a different mechanism for alarm control configuration. The Alarm View (or the alarm control, in Unified terminology) is configured under the screen editor's properties, not under a separate "Alarm View" node in the project tree. The official Siemens documentation for WinCC Unified V20 describes the column configuration under "Properties > Alarm control > Columns".

Step B1 — Open the alarm control properties

  1. In the TIA Portal project tree, open the screen that contains the alarm control.
  2. Click on the alarm control to select it.
  3. In the Properties pane (right side of TIA Portal), navigate to "Properties > Alarm control > Columns".
  4. Verify that the column list reflects the order you want. If it does not, re-arrange the columns using the up/down arrows in the column list, or by dragging the column header.
  5. Open each column by clicking the expand arrow on the left of the column name. Set the "DisplayName", the "Width", the "SortMode", and the "SortIndex" as required.

Step B2 — Configure the initial sort

The same Siemens documentation describes how to configure the initial sort under the column properties. To set the initial sort:

  1. In the "Columns" list, open the column you want to sort by (for example, "Priority").
  2. Set "SortMode" to "Ascending" or "Descending".
  3. Set "SortIndex" to 0 (or to the priority order you want — 0 sorts first, 1 sorts second, and so on).

The design-time column order is independent of the sort order. The order in the "Columns" list is the visual order of the columns from left to right; the sort is the order in which alarms are sorted within those columns.

Step B3 — Compile and transfer the Unified PC or HMI

  1. Right-click on the Unified PC or the Unified Panel in the project tree.
  2. Select "Compile > Software (rebuild all)" or "Compile > HMI > Rebuild all".
  3. After the compile completes, click "Online > Extended download to device" and transfer the runtime image.
  4. Restart the Unified runtime (for a Unified PC, restart the WinCC Unified Runtime service; for a Unified Panel, cycle the power).

Step B4 — Check for runtime overrides

Unlike WinCC Comfort/Advanced, WinCC Unified exposes the alarm control properties at runtime via a JavaScript-like scripting interface. If your project uses scripts that modify the alarm control at runtime (for example, a screen event that sets this.getProperty('columns', ...) or that calls the alarm control's setColumns() method), the design-time column order can be overwritten.

To verify whether a runtime override is the cause:

  1. In the TIA Portal project, open the Scripts editor under the screen that contains the alarm control.
  2. Search for the string "columns", "setColumns", or the alarm control's instance name.
  3. If a script modifies the columns property, either remove the script (temporarily, for diagnosis) or modify the script to match your design-time order.

Solution Path C: Cross-Platform Reference (AVEVA, Schneider, Ignition)

Although the original question is specific to a Siemens TIA Portal / WinCC HMI environment, the same symptom matrix applies to other HMI/SCADA platforms. For engineers who maintain multi-vendor systems, the following cross-platform references are useful.

For AVEVA (formerly Wonderware) InTouch and System Platform, the alarm control column order is configured in the Alarm DB Editor or in the "Column Details" page of the alarm control animation. The official AVEVA documentation describes the procedure: double-click the Alarm Control on the canvas to open the "Edit Animations" dialog, then click "Column Details" to set the order, the width, and the sort properties of each column. Changes take effect after a full re-load of the runtime database.

For Schneider Electric Geo SCADA (formerly ClearSCADA), the alarm columns on an Alarms List or Alarm Banner are configured via the "Alarm Columns" window on the ViewX or Virtual ViewX client. The official Schneider Electric help describes how to change the order, and the configuration is stored on the server, not on the client. After changing the order, refresh the client to pick up the new configuration. The reference is at Schneider Electric Geo SCADA help.

For Inductive Automation Ignition (Perspective module), the alarm status table column order is configured under the component's properties, and the order is stored in the props.columns.columnName.order property of each column. The same column can be ordered at runtime, which is useful for user-driven customization but can also override the design-time configuration if a script sets the order on every screen change.

These cross-platform references are not a direct solution to the original question, but they confirm that the column-order issue is a class of problem common to all HMI/SCADA platforms, and the remediation pattern (design-time configuration + compile + transfer + runtime verification) is the same across vendors.

Verification Procedure

After applying any of the solution paths above, run the following verification sequence to confirm the column order is now correct at runtime.

  1. In TIA Portal, open the Alarm View editor. Confirm the column order visually. Close the editor.
  2. Right-click on the HMI device > "Compile > HMI > Rebuild all". Confirm the compile completes with no errors.
  3. Transfer the runtime image to the panel using "Extended download to device" with "Overwrite all".
  4. Restart the panel (cycle the power for a Comfort Panel; restart the WinCC Unified Runtime service for a Unified PC).
  5. On the panel, navigate to the screen with the Alarm View.
  6. Trigger a minimum of three alarms of different priorities and different event times.
  7. Confirm that:
    • The columns appear in the order you configured.
    • The initial sort is correct (for example, most recent alarm at the top, or highest priority at the top, per your design).
    • Acknowledging an alarm updates the "Acknowledgement time" column without reordering the other columns.
  8. If the column order is correct, navigate away from the screen and back. Confirm the column order is retained.
  9. If the column order is correct, restart the panel again (cold start). Confirm the column order is retained across the restart.

If the column order passes all nine checks, the issue is resolved. If the column order fails any check, return to the Symptom Matrix in section 3 to identify the next most likely root cause.

For cases where the column order passes Steps 1 through 7 but fails Step 9 (cold-start persistence), the runtime is writing the column configuration to a non-retentive storage location. On Comfort Panels, the retentive storage is under "System > Files > System CF Card" or under the SD card. To force a retentive save, navigate to the Alarm View, make a small change (for example, temporarily change a column width), and confirm the change is retained across a restart. If the temporary change is not retained, the panel's retentive storage is full or corrupted. Use ProSave (the Siemens service tool) to back up the panel, reset it to factory state, and re-transfer the runtime image.

Common Pitfalls and Field-Proven Caveats

The following pitfalls account for the majority of unresolved column-order issues in field deployments.

Pitfall 1: Incremental compile does not pick up Alarm View changes. TIA Portal's incremental compile (the default behavior when you press F7 or click "Compile") does not always re-emit the Alarm View file, especially if the only change is the column order. Use "Compile > HMI > Rebuild all" to force a full recompile of the HMI.

Pitfall 2: Delta transfer on the panel does not overwrite the Alarm View file. When you transfer the runtime image with "Load to device > Software", TIA Portal may use a delta transfer that only updates files that have changed at the block level. If the Alarm View file is structurally the same as the previous version but the column order is different, the delta transfer may not overwrite it. Use "Extended download to device" with "Overwrite all" to force a full transfer.

Pitfall 3: HMI Runtime Simulation is caching a compiled image. The HMI RT on the engineering PC caches the compiled image in the user's local AppData directory. If the cache is stale, the simulation will show the old column order even after a Rebuild All. To clear the cache, close the HMI RT, delete the contents of C:\Users\<username>\AppData\Local\Siemens\WinCC RT Advanced\ or the equivalent Unified directory, and restart the simulation.

Pitfall 4: The Alarm View is invoked from a screen, but the actual Alarm View instance is on a different screen. In WinCC Comfort/Advanced, a single Alarm View can be placed on multiple screens via a screen-in-screen reference. The column order is configured on the original Alarm View, but the runtime may load a different Alarm View instance if the screen reference is incorrect. Verify the screen reference under the Alarm View's "Properties > General > Screen".

Pitfall 5: A VBScript or C-script is setting the column order at runtime. In TIA Portal, search the Scripts editor for any function that calls HMIRuntime.Screens("Screen_1").ScreenItems("AlarmView_1").ColumnOrder or the equivalent Unified JavaScript. If a script is present, the design-time order is overwritten at runtime.

Pitfall 6: The panel is in "Transfer" mode, not "Online" mode. On Comfort Panels, the operating-mode switch on the back of the panel must be in the "Online" position for the runtime to load the project from internal memory. If the switch is in "Transfer" mode, the panel will load the project from the engineering PC on every restart, but the column order will revert to the default if the engineering PC is not connected.

Pitfall 7: The HMI operating system is older than the TIA Portal version. If the panel's operating system is V13 and the TIA Portal project is V18, the HMI will reject the runtime image and load the backup. The panel's operating system must be at least the same version as the TIA Portal project, and ideally the latest service pack. Use ProSave to update the operating system before transferring the runtime image.

Pitfall 8: The alarm control's runtime API is used in WinCC Unified. The Unified alarm control exposes a setColumns() JavaScript method. If your screen's event scripts call this method on a screen change, the design-time column order is overridden at runtime. Either remove the script or align the script's column order with the design-time configuration.

Pitfall 9: Multiple alarm controls on the same screen. If a screen has more than one alarm control (for example, one for active alarms and one for historical alarms), the column order is configured separately for each control. Verify that you are editing the correct alarm control by clicking on it in the screen editor and checking the "Name" property in the Properties pane.

Pitfall 10: The project is in "Simulation" mode but the actual panel is the target. In TIA Portal, you can run a project in RT Simulation on the engineering PC while the panel is still running the old runtime image. Transfer to the panel separately; the RT Simulation does not propagate to the panel.

Safety notice: When working with the panel while a PLC is connected, the HMI may write back to the PLC during alarm acknowledgement or operator input. Verify the PLC is in a safe state (for example, "Stop" or "Run" with all operator inputs disabled) before triggering alarms for verification. Failure to do so may result in unintended machine motion.

FAQ

Why do Alarm View column changes not appear at runtime in TIA Portal?

The most common reason is a missing or incremental compile. TIA Portal does not automatically recompile the HMI runtime image when you save a change to the Alarm View editor; you must trigger "Compile > HMI > Rebuild all" explicitly. If the compile is incremental (F7 or the default "Compile" button), the Alarm View file may not be re-emitted, and the runtime will continue to use the previous image.

Do I need to do a Rebuild All or just a Compile after changing the Alarm View column order?

Use "Compile > HMI > Rebuild all". A standard "Compile" is incremental and may not pick up the column-order change if the Alarm View's structural fingerprint is unchanged. Rebuild All forces a full re-emission of every HMI file, which guarantees the new column order is in the runtime image.

How do I configure column order in WinCC Unified V20?

In TIA Portal, open the screen that contains the alarm control, click on the control, and navigate to "Properties > Alarm control > Columns" in the Properties pane. Use the up/down arrows or drag-and-drop to reorder the columns. Compile with "Rebuild all" and transfer to the Unified PC or Unified Panel. The procedure is documented in the official Siemens V20 documentation at Configuring columns and sorting (RT Unified).

Why does the panel show the new column order but the RT Simulation shows the old order?

The RT Simulation on the engineering PC uses a separate cache of the compiled HMI image. Close the RT, delete the contents of the local cache directory (typically under the user's AppData/Local/Siemens folder), and restart the simulation. The panel's runtime image is stored on the panel itself and is not affected by the PC's cache.

Can a VBScript or C-script override the Alarm View column order at runtime in WinCC Comfort/Advanced?

Yes. A script attached to the screen or to the Alarm View can call HMIRuntime.Screens("Screen_1").ScreenItems("AlarmView_1").ColumnOrder to set the column order at runtime. The script's value overrides the design-time configuration. To confirm whether a script is the cause, open the Scripts editor and search for "ColumnOrder" or the Alarm View's name. If a script is present, either remove it (temporarily) or align it with the design-time order.

Back to blog