Alarm Associated Data
Associated data lets you attach additional context values to an alarm event. Every alarm in Ignition already carries built-in properties as it moves through Ignition, such as active time, clear time, who acknowledged it, acknowledgement time, priority, and display path. Associated data (also called custom properties) extends this list with values of your own.
Associated data values can be static or dynamic:
- Static values are fixed and work well for filtering alarms.
- Dynamic values are bound to a tag or expression and update accordingly.
Either way, the value is attached to the alarm event as it moves through Ignition and is available from Alarm Status, the Alarm Journal, and Alarm Notification.
Creating Associated Data​
You can add associated data to any existing alarm, or create a new alarm first. The steps below add one static property and one dynamic property to an alarm. This example uses the WriteableInteger1 OPC tag from the Sample_Tags provider and its built-in Lo alarm, but any alarm-capable tag will work. Ignition records associated data with each alarm event as it occurs, so add your properties before the events you want them to appear on; existing history is not updated retroactively.
-
Right-click your tag and select Edit Tag.
-
In the Tag Editor, scroll to Alarms and click the Edit
icon.
-
Select your alarm to open the alarm editor.

-
Click the Add
icon above the alarm properties. A new property named
New Datais added at the bottom of the list. -
Double-click the property name and rename it to
StaticData. -
Set its value to
Folsom Plantand press Enter.
-
Click the Add
icon again to add a second property.
-
Rename the new
New Dataproperty toDynamicData. -
Click the Binding
icon and bind the property to a tag. This example binds to the
Ramp0OPC tag. -
Click Commit to confirm the binding, then click OK to save the tag.

When the alarm goes active, Ignition stores the associated data values with the alarm event. To view them in the Alarm Status Table, select the alarm and click the gray arrow at the end of its row to open Alarm Details. The associated data appears under the On Active and On Clear sections, alongside the event properties.

Retrieving Associated Data in Scripts​
Associated data values are always stored as strings. When you retrieve a value for use in an expression or a script, typecast it to the data type you need:
- In expression bindings, use the type casting functions.
- In Python scripting, use the type casting functions.
To read an associated data value from an alarm event in a script, call alarmEvent.get("PropertyName"), then cast the returned string to the type you need.
Alarm Grouping​
Grouping alarms is an important design concept. Instead of viewing every alarm in a single list, you often want to see alarms for a specific plant area or set of equipment.
There are several ways to group alarms: organizing tags into a folder hierarchy, using the Display Path field in the alarm configuration, or using associated data. Associated data is the most flexible and recommended approach, and it is common practice to base alarm groupings on it.
Creating an Alarm Grouping​
This example reuses the WriteableInteger1 tag from the previous example and adds a Group property that can be used for filtering and notification.
-
Right-click your tag and select Edit Tag.
-
In the Tag Editor, scroll to Alarms, click the Edit
icon, and select your alarm.
-
Click the Add
icon above the alarm properties.
-
Rename the new
New Dataproperty toGroupand set a value that represents the group, such asProduction.
-
Click Commit to save your alarm edits, then click OK.
The alarm now always carries the Group designation, which you can use for filtering or in alarm pipeline notifications.
To filter the Alarm Journal on this new property, enable and edit the filterAlarm extension function:
-
Right-click the Alarm Journal component and select Configure Scripts....
-
Under Extension Functions, click filterAlarm and select the Enabled checkbox.
-
Edit the script to check your associated data property and value. For example:
filterAlarm scripting functiongroup = alarmEvent.get("Group")
if group == "Production":
return True
return False
-
Open the Alarm Journal Table component and filter on your associated data. The table now displays only the alarms associated with the
Productiongroup.
