Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

Edge HMI

Format of the alarm history

  • Last UpdatedOct 29, 2026
  • 8 minute read

This topic describes the location and format of the alarm history that is saved during project run time, if one or more alarm worksheets have been configured.

By default, a project's alarm and event history is saved in Proprietary format. You can configure your project settings to save the alarm and event history in Database format. For more information, see Saving your alarm history / event log to an external database.

When your project is configured to save the history in Proprietary format (that is, when History Format is Proprietary), the alarm history is saved as sequentially numbered .alh files in your project folder. A new .alh file is created for each calendar day, and that file is named according to the following syntax:

ALYYMMDD.ALH

For example, the alarm history for 17 August 2018 is saved in your project folder at: <project name>\Alarm\AL180817.ALH

All of the alarm history for a given day is saved in the same file, regardless of whether the project is stopped and then restarted during that day. (In other words, restarting the project does not create an additional file for that day.) Each change in the alarm state — active, normalized, acknowledged — is appended to the file as a new line, and each line comprises pipe-separated values that describe the alarm. (The pipe character is also known as the vertical bar.) You can open the file with a text editor or spreadsheet program.

Tip: To change the location where your project saves its alarm and event history files, use the SetAppAlarmPath function.

When your project is configured to save the history in Database format (that is, when History Format is Database), the alarm history is saved in a table in the external database. All of the alarm history for the entire project is saved in a single table named ALARMHISTORY by default, although you can change that name in your project settings. Each change in the alarm state — active, normalized, acknowledged — is inserted into the table as a new row.

Note: In order to record alarm normalization events in the alarm history, it is necessary to enable the Display in Alarm Controls feature in the Alarm worksheet header.

The fields/columns of the alarm history are described below:

Proprietary

Database

Description

Field Number

Column Name

Data Type

P1

—

Integer (int)

Internal version number of the alarm history format.

This value is saved only when History Format is Proprietary. You can use this information to differentiate between .alh files that were created by previous and current versions of this software.

Note: If the user deletes (hides) the alarm, the internal version number is replaced with xxx. For more information, see "Al_Deleted" below.

P2

Al_Start_Time

Timestamp (datetime)

Timestamp that indicates when the alarm started (that is, when the alarm became active).

When History Format is Proprietary, the start time is saved in the local time zone (that is, in the time zone that is selected in the computer's settings) and in the following format:

DD/MM/YYYY|HH:MM:SS.mmm

The date information is saved in field P2, and the time information is saved in field P3. Please note the pipe character that separates the two fields.

When History Format is Database, the start time is saved in Coordinated Universal Time (UTC) by default and in the database's native datetime format. If the database does not support milliseconds in its datetime format, the milliseconds portion is saved in Al_Start_Time_ms.

P3

—

Al_Start_Time_ms

Integer (int)

The milliseconds portion of Al_Start_Time.

This value is saved only when History Format is Database and the database does not support milliseconds in its datetime format.

P4

Al_Tag

String (varchar)

Name of the project tag on which the alarm occurred.

P5

Al_Message

String (varchar)

Alarm message.

P6

Al_Ack

Boolean (int)

A numeric flag that indicates whether the alarm was acknowledged, where:

  • 0 = Alarm was acknowledged or does not require acknowledgment.

  • 1 = Alarm was not acknowledged.

P7

Al_Active

Boolean (int)

A numeric flag that indicates whether the alarm is still active, where:

  • 0 = Alarm is not active.

  • 1 = Alarm is active.

    This information is useful for that indicates when an alarm has been acknowledged but not normalized.

P8

Al_Tag_Value

Real (float)

Value of the project tag when the alarm state changed.

P9

Al_Group

Integer (int)

Group or worksheet number of the alarm.

P10

Al_Priority

Integer (int)

Priority number of the alarm.

P11

Al_Selection

String (varchar)

Alias for the alarm, by which the user can select and filter alarms in the Alarm/Event Control object.

P12

Al_Type

Integer (int)

Type of alarm, where:

  • 1 = HiHi

  • 2 = Hi

  • 4 = Lo

  • 8 = LoLo

  • 16 = Rate

  • 32 = DevP (also known as Deviation+)

  • 64 = DevM (also known as Deviation-)

P13

Al_Ack_Req

Boolean (int)

A numeric flag that indicates whether the alarm requires acknowledgment, where:

  • 0 = Alarm does not require acknowledgement.

  • 1 = Alarm requires acknowledgement.

P14

Al_Norm_Time

Timestamp (datetime)

Timestamp that indicates when the alarm was normalized.

When History Format is Proprietary, the norm time is saved in the local time zone (that is, in the time zone that is selected in the computer's settings) and in the following format:

DD/MM/YYYY|HH:MM:SS.mmm

The date information is saved in field P14, and the time information is saved in field P15. Please note the pipe character that separates the two fields.

When History Format is Database, the norm time is saved in Coordinated Universal Time (UTC) by default and in the database's native datetime format. If the database does not support milliseconds in its datetime format, the milliseconds portion is saved in Al_Norm_Time_ms.

P15

—

Al_Norm_Time_ms

Integer (int)

The milliseconds portion of Al_Norm_Time.

This value is saved only when History Format is Database and the database does not support milliseconds in its datetime format.

P16

Al_Ack_Time

Timestamp (datetime)

Timestamp that indicates when the alarm was acknowledged by the user.

When History Format is Proprietary, the ack time is saved in the local time zone (that is, in the time zone that is selected in the computer's settings) and in the following format:

DD/MM/YYYY|HH:MM:SS.mmm

The date information is saved in field P16, and the time information is saved in field P17. Please note the pipe character that separates the two fields.

When History Format is Database, the ack time is saved in Coordinated Universal Time (UTC) by default and in the database's native datetime format. If the database does not support milliseconds in its datetime format, the milliseconds portion is saved in Al_Ack_Time_ms.

P17

—

Al_Ack_Time_ms

Integer (int)

The milliseconds portion of Al_Norm_Time.

This value is saved only when History Format is Database and the database does not support milliseconds in its datetime format.

P18

Al_User

String (varchar)

User who was logged on to the station when and where the alarm occurred. (It is possible for different users to be logged on each time the alarm state changes.)

P19

Al_User_Comment

String (varchar)

Comment submitted by the user when they acknowledged the alarm.

P20

Al_User_Full

String (varchar)

Full name of the user who was logged on to the station when and where the alarm occurred. (It is possible for different users to be logged on each time the alarm state changes.)

P21

Al_Station

String (varchar)

Name of the computer where the alarm occurred.

P22

Al_Prev_Tag_Value

Real (float)

Value of the project tag immediately before the alarm state changed.

see description

Al_Deleted

Boolean (int)

A numeric flag that indicates whether the user "deleted" the on-screen alarm message. The alarm is not actually deleted from the alarm history, it is only hidden in the Alarm/Event Control object. The alarm history is updated to reflect this.

When History Format is Proprietary, the line in the history file is updated so that the internal version number in field P1 is replaced with xxx.

When History Format is Database, the row in the database table is updated so that Al_Deleted has one of the following values:

  • 0 = Alarm message was not deleted (hidden) by the user.

  • 1 = Alarm message was deleted (hidden) by the user.

see description

Al_Event_Time

Timestamp (datetime)

Timestamp that indicates when the most recent alarm state change occurred.

When History Format is Proprietary, this information is not actually saved in the alarm history. Instead, it is automatically derived from the other three alarm times (Start, Norm, Ack).

When History Format is Database, the event time is saved in Coordinated Universal Time (UTC) by default and in the database's native datetime format. If the database does not support milliseconds in its datetime format, the milliseconds portion is saved in Al_Event_Time_ms.

—

Al_Event_Time_ms

Integer (int)

The milliseconds portion of Al_Event_Time.

This value is saved only when History Format is Database and the database does not support milliseconds in its datetime format.

P23

Bias

Integer (int)

The difference (in minutes) between the local time zone and UTC, when the alarm is logged and the alarm times (Start, Norm, Ack) are saved.

When History Format is Proprietary, this information is always saved because the alarm times are always saved in the local time zone.

When History Format is Database, this value is saved only if the Local Time + Time Difference option (in your project settings) is also selected.

P24

—

Integer (int)

A numeric flag that indicates which project runtime task generated the alarm, where:

  • 0 = Background Task

  • 1 = OPC UA Client Runtime

  • 2 = Driver Runtime

    This value is saved only when History Format is Proprietary.

P25

—

String (varchar)

A multi-part code that describes the specific data element on which the alarm occurred. The format of the code varies depending on which project runtime task generated the alarm.

When the alarm is generated by the OPC UA Client Runtime task, the value saved in this field contains an additional pipe character that separates parts of the code. The value actually ends with a Start of Text control character (^B or â ‚). Keep this in mind when you try to read or parse the history file, because the additional pipe character effectively splits one field into two and increases the total number of fields in each line of the file.

This value is saved only when History Format is Proprietary.

P26

—

String (varchar)

The substate of the alarm (for example, Unacknowledged, Acknowledged, Unconfirmed, Confirmed).

This value is saved only when History Format is Proprietary and the alarm is generated by the OPC UA Client Runtime task.

P27

—

n/a

This field is an artifact created by how the custom fields are appended to the line in the Proprietary format. It contains no value.

P28 … P37

Al_Custom1 … Al_Custom10

String (varchar)

Up to 10 custom fields. For more information about custom fields, see Options tab.

—

Last_Update

Timestamp (datetime)

Timestamp that indicates when the database entry was created or last updated.

This value is saved only when History Format is Database. The update time is saved in Coordinated Universal Time (UTC) and in the database's native datetime format. If the database does not support milliseconds in its datetime format, the milliseconds portion is saved in Last_Update_ms.

This information is used to synchronize databases when the project is configured to use the Secondary Database in addition to the Primary Database.

—

Last_Update_ms

Integer (int)

The milliseconds portion of Last_Update.

This value is saved only when History Format is Database and the database does not support milliseconds in its datetime format.

Tip:

To customize the column names in the database table, manually edit your project file (<project name>.APP) as follows:

[Alarm]

<default column name>=<custom column name>

For example:

[Alarm]

Al_Message=Alarm_Message

Al_Ack=Acknowledgment

Related Links