Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


HTML
<style>
.text-span-6 {
    background-image: linear-gradient(99deg, rgba(170, 163, 239, .5), rgba(125, 203, 207, .5));
    border-radius: 50px;
    padding-left: 15px;
    padding-right: 15px;
}

#title-text {
display: none;
}

.panelgradient {
    background-image: linear-gradient(180deg, #d5def0, whitesmoke);
    border-radius: 8px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 4rem;
    display: flex;
    position: relative;
}

</style>


<div class ="panelgradient">

<h1 style="text-align: center;">Alarms<br>(Audit Trail and Alerts)</h1>

</div>



Introduction to the Alarms Module

Image Added

The Alarms Module monitors and manages real-time alarm events, alerts, notifications, and Audit Trail information. It provides alerts for critical events and stores data for future analysis. Key functions include:

  • Real-time alarm states processing

  • Storage on any database provider

  • Hierarchical organization of alarms

  • System AuditTrail events and operator actions tracking

Image Added

On this page:

Table of Contents
maxLevel3
minLevel2
stylenone


Key Concepts and Terms

AlarmItem

A tag monitored by the Alarm Module, containing information such as tag name, alarm condition, AlarmGroup, Limit, Deadband, and Message.

AlarmGroup

Collection of AlarmItems sharing properties such as AckRequired and AutoAckTime.

AlarmArea

Hierarchical grouping of AlarmGroups for better organization.

Audit Trail

Logs changes and events when executing the solution, tracking who made changes and when. Useful for troubleshooting, analysis, and compliance.


Understanding the Alarms Module

Module Features

  • AlarmViewer Control and AlarmAreas Control for displays.
  • Real-time alarm processing
  • Hierarchical alarm management
  • Dynamic language localization for messages
  • High-precision timestamps
  • Custom notifications (e.g., SMS, email)
  • Store and Forward archiving
  • Automated replication in hot-standby scenarios

Monitoring Tags and Evaluating Conditions

When the Module Alarm is execution, all tags defined on AlarmItems are subscribed, so the alarm conditions are evaluated every time the tag as new value. 

If a condition is reached, the alarm is issued, according to the behavior defined by its AlarmGroup. Notifications are sent if enabled to that group.


Configuring the Alarms Module

Configuration Workflow

Alarms Module Configuration Workflow

Action

Where 

Comments

Create AlarmItems

Alarms / Items

Create an AlarmItem.  It will be associated with a tag by inserting the tag's name into the Tag Name column. Learn more at AlarmItems.

Define conditions

Alarms / Items

Define the alarm behavior, configuring the Condition to trigger the alarm and the Limit for the threshold value. Learn more at AlarmItems.

Create or edit AlarmGroups

Alarms / Groups

Define the AlarmItems that share common characteristics and use them to define several alarm attributes. Learn more at AlarmGroups.

Create or edit AlarmAreas

Alarms / Areas

Create a hierarchically structured group of Alarms. Learn more at AlarmAreas.

Define settings

Alarms / Global Settings

Configure database settings for logging alarm events, behavior upon system startup, and specific alarm handling parameters. Learn more at Global Settings.

Pre-Defined AlarmGroups

The Alarms module provides a predefined AlarmGroup to quickly configure alarms for common applications. These groups have pre-configured properties that make it easier to create and configure alarms for standard purposes.

To use a predefined AlarmGroup, you simply need to select it from the list of available groups and configure additional properties as needed. 

The pre-defined AlarmGroups are:

  • Critical: High Priority Alarms that requires acknowledgement and History logging.
  • Warning: Medium Priority Alarms and Low Priority Alarms, which don't require acknowledgment, but are logged.
  • Audit Trail: Alarms and Events that don't show on Operator Displays, but are records on the History log.

AlarmHistorian Database on Datasets

The Alarm Historian database is where the Alarms module stores all alarm events and audit trail information. The AlarmHistorian database can be defined using datasets, which allows for easy configuration and modification of the database properties. The datasets can define the database connection settings, the schema of the database tables, and the properties of the alarm events and audit trail entries.


Working with the Alarms Module

Once you have set up your AlarmGroup, AlarmArea, and AlarmItem, you can use the Alarms module to monitor your process and respond to any changes in conditions.

Runtime Execution

You can control the Alarms Module execution while running your solution. You can Run, Pause, or Stop the Alarms Module directly from the platform. 

Access Runtime / Runtime Diagnostics to find the tools you can use to control the module.

Image Added

Monitoring the Alarms Module Execution

The Alarms Monitor lets you see real-time information about the module when the solution is running. It showcases total, unacknowledged, active alarms, their priority, and the most recent alarm notification.

→ Read more about Alarms Monitor.

Visualizing Alarms on Displays

The Displays module can be used to create displays that visualize alarms in real-time. The alarms can be displayed in tables, custom graphics, objects and others with the ability to sort and filter based on various alarm properties. The displays can also include interactive components, such as acknowledging alarms and displaying alarm details, to allow operators to quickly respond to alarms.

→ Read more about the AlarmViewer Control and AlarmAreas Control.

Handling Notifications with Scripts

The Scripting module can be used to create custom scripts that handle alarm notifications. These scripts can define the behavior of the Notification Method property of the AlarmGroup, allowing for more customized notifications based on the type and severity of the alarm. The scripts can also define notification methods beyond the built-in options, such as sending emails or SMS messages. 

Read more about  Alarm Email Notifications.

Customizing Alarm Sounds

Sets the sound played when an alarm goes off.

Read more about at AlarmGroup Sounds.


Alarms Advanced Topics

Alarm Execution Process

Presents in the detail the processes when executing the Alarm Engine. 

→ Read more about Alarm Execution Process

Alarm Runtime Attributes

The Alarms Namespace exposes properties and methods from the .NET objects used by the Alarm Module execution.

→ Read more about Alarms Runtime Attributes


Anchor
BestPractices
BestPractices
Best Practices and Troubleshooting

Best Practices and Recommendations

To ensure the smooth operation of the Alarms module, follow these best practices:

  • Use clear and descriptive names for Alarm Group, Alarm Area, and Alarm Item.
  • Configure alarms with proper priority and severity levels.
  • Use deadbands and delays to prevent alarm flooding.
  • Regularly check and maintain the alarm configuration.
  • Configure notifications and acknowledge alarms in a timely manner.

Common Issues and Solutions

The Alarms module may encounter some issues in its operation. Here are some common issues and their solutions:

Alarm not firing

Check the tag name, condition, and alarm item configuration. Ensure the tag is valid and the condition is met.

Alarm not acknowledged

Check the alarm acknowledgement configuration. Ensure that the alarm acknowledges property is set and the acknowledgement timeout is not expired.

Database connection error

Check the database connection string and ensure that the database is reachable.

Alarm flooding

Check the alarm configuration and ensure that the deadband settings are properly configured.

Notification not received

Check the notification configuration and ensure that the notification method is properly set.


In this section:

Easy Heading Macro
headingIndent40
navigationTitleOn this page
selectorh2,h3
wrapNavigationTexttrue
navigationExpandOptiondisable-expand-collapse
This section presents information about alarms and audit-trail.

What is Alarm Module

The Alarm Module is a complete solution to manage real-time alarms, notification events and Audit-Trail information. 

It includes the following functionalities:

  • Real-time Alarm States Processing 

  • Agnostic storage on any Database provider
  • Store and Forward when archiving to remote databases.
  • Automated replication in hot-stand-by scenarios
  • Organize and manage alarms hierarchically 
  • Define System AuditTrail event and Track Operator actions
  • Send Notifications by SMS or e-mails.
  • Universal Time and Daylight Saving always considered for accurate time-stamp
  • Timestamps precision up to 0.1 ms
  • Dynamic Language localization of alarm messages

Key Concepts

AlarmGroup

Alarm groups allow you to configure common settings for a collection of alarms. For example, if the alarms in the groups require Acknowledgement.

Also, the query real-time informational automatically consolidating the alarm in the group. For example, the Total Active alarms in the group. <<<< please, review this information >>>>

AlarmArea

Adds more context information to the alarm, linking it to one Area in Tree structure.

The Hierarchical organization of the AlarmAreas allows to get information, filter or act, in all alarms of one area, or include its children alarms.

AlarmItem 

Any defined event that can create an alarm is an AlarmItem. For instance, if a Tag has the configuration to generate a HI alarm at 70, and a HiHi alarm at 90, we have two AlarmItems defined.

Each AlarmItem belongs to one AlarmGroup and one AlarmArea.

AuditTrail

Pre-defined AlarmGroup intended to track system events and Operations actions aiming to create records for auditing log. For information on its configuration, go to the AuditTrail page.

AlarmHistorian

The alarm events can be logged using the database connection defined at Edit → Datasets → Dos → AlarmHistorian.

Alarm Module Settings

Some settings affects the behavior all alarm and the execution of Alarm Module.

Those fields are located above the header on Edit → Alarms → Groups table.

Alarm Module Configuration Settings

Setting Field

Description

Initial disable time

Defined time for an alarm to be active after startup. This gives the system time to stabilize before any alarms can be triggered.

Life Time

Number of days that will define the useful life of the information in this alarm.

Log User Fullname

The user's entire name will be saved in an alarm historian.

Ignore Alarms During TimeDeadband

Used in conjunction with "InitialDisableTime". After the "InitialDisableTime" time, if "Ignore Alarms During Time Deadband" is "true", then the alarm states will not be checked.

Enable Limits by Shift

Used in conjunction with "CurrentShift". If "Enable Limits By Shift" is "true", then "CurrentShift" is used to check which of the limits of "AlarmItem:" should be used

  • CurrentShift = 0 ? AlarmItem.Limit

  • CurrentShift = 1 ? AlarmItem.Limit1

  • CurrentShift = 2 ? AlarmItem.Limit2

The Alarm Database

The alarm database stores the events from the AlarmGroups and Audit Trail.

By default, it is mapped to a SQLlite database with name <project name>.tAlarm , defined at Edit → Datasets → Dos → AlarmHistorian.

You can change the Alarm Database to use any other SQL connection, following this steps:

  • Go to Edit → Datasets → Dos.
  • Rename or delete the AlarmHistorian object.
  • Create a new DB connection with name AlarmHistorian connected to desired Database.

Configuring AlarmGroups

There are 3 pre-defined AlarmGroups:

  • Warning (Warning messages that do not require acknowledgment).
  • Critical (Critical Messages that require acknowledgment).
  • AuditTrail (System Events log).

To configure alarm groups, you can customize the existing groups or add new ones. 

  • Go to Edit → Alarms Groups.
  • Add new rows or edit the table, setting the desired values to the fields.

Alarm Group Configuration Properties

Column / Field

Description

Name

Enter a name for the alarm group. The system allows you to know if the name is not valid.

AckRequired

If required, the alarm stays in the alarm list until someone acknowledges the alarm by double-clicking it in the application.

ActiveTimeDeadband

Enter a time deadband that will create a delay after an alarm occurs. The alarm will trigger again only after the deadband.

AckTimeout

Defines a timeout for acknowledging the alarm. If the alarm is not acknowledged after the specified time, the alarm becomes active again.

AutoAckTime

If the alarm is not acknowledged after the specified time, the system acknowledges the alarm.

Sound

Select the sound that will play when the alarm occurs.

Show

Select the list for the alarm to display in the alarm window in the application.

LogEvents

Select when you want the alarm to be logged to the alarm historian:

  • None—Alarms are not logged.
  • Active—Log when alarm is active.
  • ActiveAck—Log when the alarm is active and acknowledged.
  • ActiveNorm—Log when the alarm returns to normal.
  • All—Log all of the above conditions.|

Colors

Select the colors you want to use for each state:

  • Active—Configured alarm is in the alarm state.
  • Normalized—Configured alarm was in the alarm state, but is no longer in the alarm state and still needs to be acknowledged.
  • Acknowledged—Configured alarm has been acknowledged, but it is still in the alarm state.|

NotificationMethodCalls a Script → Class method that triggers a code when the alarm happens. 

Description

Enter a description of the alarm group.

Configuring AlarmItems

The definition of an AlarmItem has 3 mandatory fields: TagName, Condition and AlarmGroup. 

That means, the Tag value that will be evaluated, the alarm condition to be verified, and if there is an alarm, which AlarmGroup will guide the tag processing behavior.

To create or modify AlarmItems:

  • Go to Edit → Alarms Items.
  • Add new rows or edit the datagrid fields.

Alarm Items Configuration Properties

Column / Field

Description

TagName

Enter a tag name or click "..." to select a tag.

Condition

Select the condition you want to use for this alarm event (see the table below).

Limit

Enter a value for the alarm limit to be used for the condition you selected.

Deadband

Sets the deadband value. E.g.: for a Hi alarm item with limit as 100 and deadband as 10, the limit value is now 110; for a Lo alarm item, setting the deadband as 10 means the limit value is 90. 

Setpoint

Set a value or a tag that you want to compare other values to to determine if there is a deviation. 

SetpointDeadband

Set the deadband for the setpoint when compared with the deviation. 

Group

Select the alarm group that should control what happens when this alarm occurs.

AreaOnce created on Alarms → Areas, the areas will be displayed here and will be able to be chosen.

Priority

Enter a priority value that controls where the alarm displays in the list. The higher the number, the higher the priority. You can use the same priority for more than one alarm event. Enter 0 (zero) for alarms to be at the end of the list.

Message

Enter the text that displays in the alarm list.

The conditions options are described in the following table:

Alarm Condition Configuration Options

Field

Description 

Hi

Tag >= limit

HiHi

Tag >= limit (when acknowledged, a Hi alarm is automatically acknowledged for the same Tag)

Lo

Tag <= limit

LoLo

Tag <= limit (when acknowledged, a Lo alarm is automatically acknowledged for the same Tag)

RateOfChange

Tag rate of change >= limit

DeviationMinor

Absolute value (tag - Setpoint) > limit

DeviationMajor

Absolute value (tag - Setpoint) > limit

Equal

Tag = limit

GreaterThan

Tag > limit

GreaterEqual

Tag >= limit

LessThan

Tag < limit

LessEqual

Tag <= limit

Changed

Tag value changed

ChangedUp

Tag value increased

ChangedDown

Tag value decreased

NotEqual

Tag different from limit

Note

The limit is a specific value on which the condition is based. The setpoint, if used, may be either a value or another tag.

If you need to dynamic change the alarm limit, just use the Limit property of the alarm conditions. E.g.: Tag.<tag name>.Hi.Limit modifies the HI Limit condition for the tag.

Notification Events 

In order to a apply custom action using .NET scripts, subscribe to notifications of alarms and events.

These notifications are typically used to send SMS or email warnings, execute custom calculations, add custom notification messages or audio alarms, text-to-speech audio alarms, and to perform any kind of action defined by custom programming.

To subscribe to alarm events, create a method in any Script Class of type Server, with the following prototype:

No Format
void Notification(AlarmEventInfo[] info)

Select the method in the Notification Method column on Edit → Alarms → Groups.

The name of the method can vary; The important is the expected parameters.

The AlarmEventInfo structure is defined in the namespace Alarm.

Acknowledging Alarms

There are several methods for acknowledging alarms:

  • Using the alarm visualization object in the displays.
  • Tag properties.
  • Alarm group or the alarm item's runtime properties.

Acknowledge All Alarms

You can use the <Alarm.AckAll> property that acknowledges all active alarms.

Acknowledge a Single Alarm or the Highest Priority Alarm 

The <Alarm.PriorityItem.UnAck> property allows the acknowledgment of the highest priority alarm configured in the "Priority" column on Edit → Alarms → Items if there is a pending ack alarm. 

Acknowledge a Specific Alarm 

To acknowledge a specific alarm, use the <Alarm.Items.IDxx.Unack> property. To check the contents of the IDxx alarm columns, go to the alarm item and add the ID column (right-click in the table and select "ID").

Alarm Visualization

To visualize alarms and events, you can use the built-in object in your displays or reports. See the Configuring an Alarm Window section for more information.

The Alarm Namespace

The Alarm namespace has the properties of the alarm server.

The Alarm.Group object has the list of all defined groups and their properties.

The Alarm.Item object has all alarm items and their properties.

The tag properties are connected with the alarm module. For example, tag.tagname.Hi: configuration and runtime status of the HI alarm. The naming of all tag properties follow this same method. 

See Namespaces API for the complete programming reference on runtime objects.

In this section...

Page Tree
root@self
spacesV10

...