Problem Overview: Alarm Out Time Not Visible in Alarm Control
When configuring a WinCC Professional Alarm Control in TIA Portal, operators expect to see four timestamps for each message: Time Raised (incoming), Time Acknowledged, Time Reset, and Time Cleared (outgoing). The Alarm Control toolbar exposes a default column set that hides the outgoing timestamp by default. In WinCC Professional V15.1, the alarm view Properties panel under General > Display > Type offers several list modes; switching the view from the default alarm list to the History Alarm List exposes the Alarm Out Time column.
This reference documents the configuration path for WinCC Professional V15.1, the runtime dialog workflow, and the archive-view fallback. It also documents the equivalent procedure for WinCC Unified RT (V18 / V20) when a project is being modernized, and covers the PLC-side configuration that determines whether the outgoing event is even generated.
Prerequisites
- TIA Portal V15.1 with WinCC Professional V15.1 installed. A valid license key for WinCC Professional RT is required for runtime testing.
- Configured HMI device (Comfort Panel TP700..TP2200, RT Advanced on a PC, or PC RT Professional) with at least one alarm class wired to a PLC tag or internal tag.
- An S7-1500 / S7-1200 PLC project (or third-party PLC with a tag interface) connected via PROFINET or OPC UA.
- A compiled and downloaded project, or an RT simulation started from TIA Portal via Start Runtime.
- For archive fallback: a configured alarm logging database. RT Professional uses the WinCC Alarm Logging service which writes to Microsoft SQL Server (default for multi-user) or SQLite (single-user). Comfort Panels use an internal flash buffer plus CSV export.
- For WinCC Unified RT: TIA Portal V18 or V20 with WinCC Unified Comfort Panel (MTP/MTP1500..MTP2200) or Unified PC RT, and a valid Unified Runtime license.
- Read access to the engineering project plus write access to the runtime database folder (typically
C:\ProgramData\SCADAProjects\AlarmLoggingfor RT Professional).
Alarm Event States in WinCC
Each alarm in WinCC goes through a defined state machine. The states drive which timestamp columns the Alarm Control renders. Understanding the state machine is essential because the Alarm Out Time is recorded only when the alarm reaches the Went Out state.
| State | Trigger | Timestamp Field (DB column) | Default Column in Alarm Control V15.1 |
|---|---|---|---|
| Came In (Raised) | Alarm bit transitions 0 -> 1 |
TimeIn (datetime) |
Visible |
| Acknowledged | Operator selects the row and presses ACK, or auto-ACK configured |
TimeAck (datetime, nullable) |
Visible (if ACK required by class) |
| Went Out (Cleared) | Alarm bit transitions 1 -> 0 |
TimeOut (datetime, nullable) |
Hidden by default in V15.1 |
| Cleared from list | Operator removes the row, or buffer overflow | (removed from active buffer) | (removed) |
To display TimeOut, the Alarm Control must render the historical entry of the alarm, not the live "Current Alarm List". The historical entry records both the incoming and outgoing transitions in a single row, exposing the alarm out time as a separate column. The History Alarm List view reads from the same in-memory circular buffer that the live list reads, but it does not auto-clear rows when the alarm goes out; it persists them for display until they age out or are explicitly filtered.
How the Trigger Bit Drives the State Machine
The alarm state machine is driven by a single boolean trigger tag. WinCC polls the trigger tag at the configured acquisition cycle (default 1 second for S7-1500). The cycle can be tuned in HMI Tags > [tag] > Acquisition cycle.
- 0 -> 1 transition: raises the alarm.
TimeInis stamped with the HMI clock. - 1 -> 0 transition: clears the alarm.
TimeOutis stamped with the HMI clock. - If the trigger tag remains 1 across an HMI restart, the alarm is re-raised but
TimeInuses the new arrival time, not the original PLC time.
Step-by-Step: Configure the Alarm Control as History Alarm List
This is the primary path that exposes the Alarm Out Time column in WinCC Professional V15.1.
- In the TIA Portal project tree, expand the HMI device and double-click the screen that hosts the Alarm Control. The screen opens in the engineering view.
- Click the Alarm Control on the canvas to select it. Confirm selection by the green resize handles around the control boundary and the appearance of the AlarmControl Properties tab in the inspector window.
- Open the Properties pane (right-click → Properties, or press Alt+Enter).
- Navigate to General > Display > Type.
- From the dropdown, change the value from Alarm List (the live view) to History Alarm List. The dropdown is populated with: Alarm List, History Alarm List, Short-Term Archive List, Long-Term Archive List, Lock List, and Statistics List.
- Optionally, expand General > Columns to verify which columns are visible. The Alarm Out Time column appears as soon as the list type is changed.
- Compile the project. Press Ctrl+B with the HMI device selected in the project tree, or use the menu Compile > Software (rebuild all).
- Start the runtime via HMI device > Start Runtime, or download to a physical panel.
After this change, the Alarm Control renders a history table that includes the outgoing timestamp. The data source remains the same alarm logging buffer; the only change is the list mode of the control. The Alarm Control retains the same column ordering by default; reorder columns under Properties > General > Columns.
Engineering vs Runtime Configuration
Configuration made in TIA Portal is the canonical configuration. Runtime changes via the Configuration Dialog are operator-level toggles. To lock the engineering configuration against operator override, set Properties > Security > Operator authorization for column changes to a non-zero level.
Step-by-Step: Use the Runtime Configuration Dialog
The runtime configuration dialog lets an operator toggle list mode and column visibility without recompiling the project. It is the fastest way to verify that the column is available.
- In Runtime, click the Alarm Control to give it focus. A blue focus rectangle appears around the control.
- Click the toolbar button that opens the Configuration Dialog. By default it is the rightmost gear icon; the icon may be hidden if the toolbar is collapsed via Properties > Toolbar > Visible elements.
- In the Configuration Dialog, switch the list mode to History Alarm List. The dropdown is the same as the engineering view.
- Open the column editor and enable the Alarm Out Time column. Drag it to the desired position (typically immediately after the Time In column).
- Click OK to close the dialog. The Alarm Control immediately re-renders with the outgoing timestamp visible.
Toolbar Buttons Affected by List Mode
Switching to History Alarm List also exposes additional toolbar buttons: First record, Previous record, Next record, Last record, and Print. Operators can use these to navigate the buffer. Confirm the buttons are enabled under Properties > Toolbar > Button assignment.
Displaying Outgoing Events via Short-Term and Long-Term Archives
If the History Alarm List does not surface the outgoing event with sufficient detail, or if the operator requires audited records beyond the runtime session, inspect the alarm logging archives directly.
- In the Alarm Control properties, change Type to Short-Term Archive List or Long-Term Archive List.
- Under General > Selection, choose the alarm classes and areas to display. The selection filters are inherited from the underlying archive query.
- Compile and start Runtime.
- Each row in the archive list shows the full event chain:
TimeIn,TimeAck,TimeOut, and the user who acknowledged the alarm. Additional columns includeDuration(computed asTimeOut - TimeInin seconds) andComment. - Use the filter row to limit rows to a specific alarm class, area, or tag. The filter expression follows the WinCC Alarm Control filter syntax documented in the TIA Portal Help.
The archive database schema differs by runtime target:
| Runtime Target | Short-Term Buffer | Long-Term Storage | Default Buffer Size |
|---|---|---|---|
| Comfort Panel | Internal flash (circular buffer) | SD card CSV export | 1024 records (flash), unlimited on SD |
| RT Advanced | Local SQLite | SQLite / CSV export | 5000 records |
| RT Professional | WinCC Alarm Logging service (SQL Server or SQLite) | Microsoft SQL Server database | 10000 records per segment, configurable |
Direct Database Query (RT Professional)
For advanced operators or engineering analysis, query the SQL Server database directly. The relevant table is typically named ALG_VIEW or similar, depending on the configured alarm logging schema. A representative query:
SELECT MsgNo, TimeIn, TimeAck, TimeOut, DurationSec
FROM dbo.ALG_Archive
WHERE Area = 'PlantA'
AND TimeOut IS NOT NULL
AND TimeOut >= DATEADD(DAY, -7, GETDATE())
ORDER BY TimeOut DESC;
Filter Syntax Reference
The Alarm Control filter row accepts a constrained SQL-style expression. The supported operators and example expressions follow.
| Filter Field | Operator | Example Expression |
|---|---|---|
| Alarm class ID |
=, IN
|
ClassID = 1 |
| Alarm priority |
>=, <=
|
Priority >= 10 |
| Trigger tag name | LIKE |
TagName LIKE 'Motor_*' |
| Time range | BETWEEN |
TimeIn BETWEEN '2024-01-01' AND '2024-01-31' |
| State | = |
State = 'CameIn' or State = 'WentOut'
|
Filters persist for the session and can be exported via the toolbar's Export filter button. To apply a filter globally, configure the Alarm Control Properties > General > Selection in the engineering view.
PLC-Side Configuration That Drives the Outgoing Event
The Alarm Out Time is generated only when the trigger bit on the PLC transitions back to 0. The PLC tag must therefore be a single boolean that the PLC program toggles deterministically. Common patterns in S7-1500:
- Latched fault: A fault bit is set in the PLC code on detection and cleared only by operator reset. The WinCC trigger tag maps to this bit directly. The outgoing event is recorded when the operator resets the fault.
- Transient fault: The PLC code sets a bit on detection and clears it automatically when the underlying condition normalises. The WinCC trigger tag maps to the bit; the outgoing event is recorded automatically.
- Pulsed fault: The PLC code sets a bit for one scan only (single-cycle pulse). WinCC may miss the transition if the acquisition cycle is longer than the pulse. Configure the trigger tag with an Acquisition cycle of 100 ms or use edge detection in the PLC to latch the bit.
WinCC Unified RT Alternative (V18 / V20)
Projects being migrated to WinCC Unified RT can use the equivalent settings documented in the official WinCC Unified manual.
The Unified Alarm Control exposes the State machine column natively. Each row displays the current state (Active, Acknowledged, Cleared) along with the corresponding timestamps. Operators do not need to switch to a History view because the live view already includes the outgoing timestamp once the ShowClearedAlarms property is set to true.
Refer to the official configuration manual at Configuring the alarm control (RT Unified) - WinCC Unified for the canonical V20 property list.
| Property | WinCC Professional V15.1 | WinCC Unified V18 / V20 |
|---|---|---|
| List Type dropdown | Yes (Alarm List / History Alarm List / Short-Term Archive List / Long-Term Archive List) | Implicit; live view shows all states |
| Alarm Out Time column | Hidden by default; visible only in History view | Always visible when ShowClearedAlarms = true
|
| Runtime Configuration Dialog | Yes | Yes (gear icon) |
| Filter syntax | SQL-style WHERE clause in Alarm Control properties | Scripted filter on the Alarm Control binding |
| State machine column | Not present | Present by default |
| Authorization model | User groups + numeric levels | UMC (User Management Component) with role-based assignment |
Migration Considerations (V15.1 to V18 / V20)
- Backup the V15.1 project before opening it in V18 or V20. TIA Portal performs an automatic upgrade which cannot be reverted without the backup.
- The Alarm List / History Alarm List concept is removed in Unified. The live view replaces both.
- Alarm class configuration is migrated automatically, but the Unified alarm class editor uses different trigger syntax (boolean trigger + edge detection instead of plain bit).
- Scripts written in VBScript for V15.1 must be translated to JavaScript for Unified RT. The Alarm Control does not expose the same automation object model.
Verification Procedure
After applying the configuration, perform the following checks in Runtime.
- Trigger an alarm by setting the trigger tag to 1 in the PLC (using a watch table) or in the HMI tag simulation (HMI Tags > Simulation).
- Confirm the alarm appears with a valid TimeIn value in the Alarm Control.
- Acknowledge the alarm and confirm the TimeAck column populates.
- Reset the trigger tag to 0.
- Switch the Alarm Control to History Alarm List and confirm the row now displays a populated Alarm Out Time column.
- Cross-reference the timestamp with the WinCC Alarm Logging database (SQL Server Management Studio for RT Professional, or the exported CSV on the SD card for Comfort Panels) to confirm the row exists in the long-term archive.
- Repeat the cycle five times to verify that no rows are silently dropped due to buffer overflow.
If any timestamp remains empty after a state transition, the trigger tag is not transitioning as expected; verify the bit in the PLC with a watch table, and confirm the tag's Acquisition mode in the HMI tag table is set to Cyclic continuous rather than On demand.
Troubleshooting Matrix
| Symptom | Likely Cause | Corrective Action |
|---|---|---|
| Alarm Out Time column is missing entirely from the Alarm Control | Alarm Control is configured as Alarm List (live view) | Change Type to History Alarm List as documented above |
| Column header shows but cells are empty | Trigger tag is not transitioning back to 0; alarm is still active | Reset the trigger tag and reload the PLC; verify with watch table |
| Runtime Configuration Dialog gear icon is greyed out | Operator authorization is below the required level | Assign the Operator authorization level or higher on the Alarm Control properties → Security |
| History list shows incoming row but no outgoing row | Database segment is full and the row was overwritten | Increase the segment size under Alarm Logging > Segment Size; check archive backup settings |
| WinCC Professional V15.1 properties pane does not show a Type dropdown | An older service pack replaced the Alarm Control with a legacy ActiveX control | Delete the control, insert a fresh WinCC AlarmControl from the toolbox |
| Outgoing timestamps are off by one hour | Daylight saving time transition on the HMI clock | Enable NTP synchronisation and disable manual DST handling on the panel |
| Archive CSV file on SD card is empty after restart | SD card write is suspended due to read-only lock | Unlock the SD card physical switch; check Alarm Logging > Export > Storage location |
| Multiple operators see different Alarm Out Time values for the same row | Each RT client has its own Alarm Logging service connection | Configure a central SQL Server alarm logging instance; point all RT clients to it |
| Alarm Control shows the row indefinitely after clearing | List Type is Alarm List and the row filter is set to a specific class only | Switch to History Alarm List or adjust the filter to include the cleared class |
| SQL Server archive database is locked during write | Backup process is holding an exclusive lock | Schedule backups outside shift hours; switch to differential backups |
Outgoing event recorded but Duration column shows negative value |
PLC and HMI clocks are out of sync; PLC time stamp > HMI stamp | Force NTP sync on both PLC and HMI; verify Time zone settings match |
Best Practices for Alarm Out Time Visibility
- Default new Alarm Controls to History Alarm List if operator workflow depends on outgoing timestamps. Use the engineering view, not the runtime dialog, to make this the project standard.
- Enable the Long-Term Archive for any alarm class that must be auditable after the runtime session ends. Configure a daily segment rotation to keep individual segment files manageable.
- Train operators to use the Runtime Configuration Dialog for ad-hoc column toggles, but document the canonical configuration in the engineering project.
- If migrating to WinCC Unified RT, replace the live-list-plus-history workflow with the
ShowClearedAlarms = trueproperty; the column becomes implicit and the workflow simplifies. - For multi-user PC RT Professional systems, configure the Alarm Logging service to point to a central SQL Server instance rather than local SQLite; this avoids fragmented archive data and ensures all clients see the same outgoing timestamps.
- Synchronise all HMI and server clocks to a common NTP source. Even a one-second drift corrupts the calculated
Durationcolumn. - Document the chosen list type in the HMI tag or screen comment so that maintenance engineers do not inadvertently switch the control back to Alarm List during a screen redesign.
- For audits, use the SQL Server archive rather than the in-memory buffer; the buffer is lost on HMI restart, the archive is not.
FAQ
Why is the Alarm Out Time column missing in WinCC Professional V15.1?
The default Alarm Control view is the live Alarm List, which does not expose the outgoing timestamp. Switch the control to History Alarm List via Properties > General > Display > Type to reveal the column.
Can I enable Alarm Out Time without recompiling the project?
Yes. In Runtime, open the Configuration Dialog from the Alarm Control toolbar, change the list mode to History Alarm List, and enable the Alarm Out Time column. The change applies immediately but is session-only unless the engineering project is also updated.
Where is the short-term archive located on a Comfort Panel?
On Comfort Panels, the short-term alarm archive is stored in the panel's internal flash as a circular buffer. The long-term archive is exported to an SD card inserted in the panel as CSV; the default path is /alm/log/.
How does WinCC Unified RT handle alarm out time?
WinCC Unified RT displays the cleared state and its timestamp in the live view once the Alarm Control property ShowClearedAlarms is set to true. Operators do not need to switch to a separate history view. See the WinCC Unified alarm control manual for the full property list.
Why is my alarm out time empty even after the trigger bit resets?
An empty outgoing timestamp means the alarm logging buffer did not record the 1 -> 0 transition. Verify that the trigger tag is actually resetting, that the alarm class is configured to log outgoing events, that the acquisition cycle is short enough to catch the transition, and that the database segment is not full.