Introduction to Alarms module
The Alarms module is a powerful tool designed to monitor and manage alarm events within your projects, providing alerts for critical events, and storing data for future analysis.
The documentation provides an overview of the Alarms module's purpose and key concepts, how it works, and the steps required to configure and work with the module. Additionally, the documentation includes troubleshooting information and best practices to ensure optimal performance of your alarm management system.
On this page:
Purpose and Key Concepts
The Alarms module is designed to provide real-time monitoring and notification of events or conditions that require immediate attention. This is done by evaluating tags values in real-time to generate alarms when the monitored value reaches a defined limit or condition. The module evaluates the conditions of AlarmItems and compares their current value with the set limit to determine whether an alarm should be triggered or not. The module can evaluate conditions such as exceeding a limit, falling below a limit, or entering/exiting a range.
The configuration of the Alarms module is performed on the sections: AlarmGroup, AlarmArea, AlarmItem, and AuditTrail.
AlarmGroup
An AlarmGroup is a collection of AlarmItems that share common properties and characteristics. Each AlarmGroup can have its own configuration properties, such as AckRequired, AutoAckTime, and Sound, that apply to all of its AlarmItems. The configuration of AlarmGroup is on the Project Explorer, at Alarms → AlarmGroup.
AlarmArea
An AlarmArea is a hierarchical grouping of AlarmGroup that allows for a more organized and structured approach to managing alarms. An AlarmArea can have child AlarmArea, allowing for a hierarchical structure of AlarmGroup and AlarmItems. The configuration of AlarmArea is on the Project Explorer, at Alarms → Area.
AlarmItem
An AlarmItem is a tag or expression that is monitored by the Alarms module. It contains information such as the tag name, the alarm condition (what triggers the alarm), and the associated AlarmGroup. Each AlarmItem can have its own configuration properties, such as Limit, Deadband, and Message, that define the alarm behavior and characteristics. The configuration of AlarmItems is on the Project Explorer, at Alarms → Items.
AuditTrail
The AuditTrail is a feature of the Alarms module that logs all changes made to the AlarmGroup and AlarmItems, including creation, modification, and deletion events. It is a way to track and record the history of changes made to the alarm configuration, providing a clear audit trail of who made what changes and when. The configuration of the AuditTrail is on the Project Explorer, at Alarms → Global Settings → AuditTrail.
Items (Basic configuration)
An Item is essentially an alarm, it needs to be bonded to a numerical tag to monitoring the variation range.
Interface
When opening the Alarm environment, the Items tab will load, by default only some column will appear, these are to the basic Item configuration, but right clicking on header table you can see and check the remain columns to edit, like the follow image.
TagName
The tag used on alarm can be internal to FrameworkX or an external tag.
Condition
The conditions options are described in the following table:
Alarm Condition 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 |
Limit
There are 3 Limits to config, they are called Limit, Limit1 and Limit2, as this is a brief description, we will only deal with the Limit, without indexes.
Message
Global Settings
In this display there is some options to customize the solution, these options will be addressed one by one.
alarm Logging Database
Previously called as AlarmHstorian, these options allow to select the Database where the data will be logged, as well as lifetime to the data log.
To setup the Database, left click on the engine icon.
Alarm Handling
In a manufacturing environment, it is frequently imperative to establish alarm configurations that initiate monitoring only once the system is fully operational. This is particularly relevant for machines that require a certain amount of time to power up and attain operational parameters, as is the case with furnaces and motors. These machines might take minutes to achieve the desired speed or temperature within the process. In such a scenario, the operational deployment of the Alarm Module could potentially result in the inadvertent triggering of multiple alarms.
To align with this context, certain adjustments become essential to prevent such undesired occurrences.
Index | Description |
---|---|
1 | During the module initialization, it`s possible setup an interval time to wait the monitoring. |
2 |
|
3 | An AlarmItem can have up to three different thresholds, one for each shift of the day, to use it this option need to be checked. |
4 |
|
Enable Audit Trail
It`s possible to customize the data that will be logged on audit trail.
Understanding the Alarms module
Such as other modules, the alarm module run in a separate process from TServer.exe, it means that the alarm operations occur at the same time that other events in the solution bringing reliability to process monitoring.
The AlarmGroup can be used to group similar alarms together and define their behavior, such as whether they require acknowledgment, their sound and color settings, and their notification settings. The AlarmArea allows organizing the alarms into a hierarchical structure to reflect the plant's physical layout. The AuditTrail feature logs all alarm and acknowledgment events and allows for tracking changes made to the alarm configuration.
The AlarmHistorian feature allows the Alarms module to save alarms and their state changes in a separate database, allowing for efficient storage and retrieval of alarms data. The Alarms module can be configured to store alarms data on a target database of your choice.
When an alarm is triggered, it can be acknowledged by any client logged in with a user with matching access level through the AlarmWindow, this also can be done through other ways like: Tag properties, Alarm Group or Alarm Item's runtime properties.
The Alarms module can be integrated with other modules such as the Historian Module to allow for storing alarms data alongside process data. Overall, the Alarms module provides an efficient and comprehensive solution for monitoring and managing alarms in real-time.
Features Highlights
The Alarms module offers the following key features:
The AlarmHistorian allows the Alarms module to save alarms and their state changes in a separate database (it is different from AuditTrail that only saves when editing the settings).
- The Alarm Window object used to displaying active alarms and their state changes on displays
- Real-time alarm processing to quickly identify and respond to critical events
Agnostic storage on any database provider, making it flexible and easy to useHierarchy organization and management of alarms for greater flexibility and control
Notification events via SMS or email to keep users informed of critical eventsUniversal time and daylight saving considered for accurate timestamps
Dynamic language localization of alarm messages for easy understanding
High-precision timestamps up to 0.1ms for accurate and reliable data
Monitoring Tags and Evaluating Conditions
The Alarms functionality allows users evaluate if tag values satisfy certain conditions in real-time. With that the FrameworkX can send notifications to users or take actions based on specific conditions.
When monitoring tags, users can set up one or more conditions to evaluate. For example, a user might set up a condition to trigger an alarm if the value of a tag exceeds a certain threshold. Also, it's possible to bind any alarm trigger with a Script Task through the property "Alarm.Item.<AlarmID>.State", chaining an automatic process.
Conditions can be based on a variety of factors, such as tag values, tag quality, or any object property. or the state of other alarms. Users can also define complex conditions by combining multiple factors using logical operators.
In addition to monitoring tags, the Alarms module allows users to evaluate conditions based on the state of other alarms. This enables users to create more complex alarm scenarios, such as triggering an alarm only if two or more conditions are met simultaneously.
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 abnormal conditions.
Runtime Execution
Once the AlarmGroup and items have been configured, the Alarms module can be executed to start monitoring the specified tags and conditions. During runtime, the Alarms module continuously evaluates the conditions of the AlarmItem and generates alarms when the conditions are met. The alarms are then added to the alarm database and can be visualized and acknowledged by the operators. The runtime behavior of the Alarms module can be controlled through runtime attributes such as alarm logging level, acknowledge timeout, and alarm retention time.
Integration with Other Modules
The Alarms module can be integrated with other FactoryStudio modules to enhance its functionality. For example, the Display module can be used to display alarms on a graphical screen, and the Reporting module can be used to generate reports that include alarms and their details. Additionally, the Scripting module can be used to handle alarm notifications, as well as to create custom alarms and modify the runtime behavior of the Alarms module.
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.
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. For Email information, go to the Alarm Email Notifications page
AlarmHistorian Database definition on Datasets
The AlarmHistorian database is where the Alarms module stores all alarm events and audit trail information. The AlarmHistorian database can be defined using datasets in FactoryStudio, 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.
Advanced Features and Options
The Alarms module also includes several advanced features and options to further customize its functionality. These include the ability to create custom alarm states, the ability to filter alarms based on specific conditions, the ability to configure alarms to only be active during certain time periods, and the ability to define custom properties for alarm events and audit trail entries. These advanced features provide additional flexibility and control over the Alarms module's behavior.
Troubleshooting and Best Practices
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.
Best Practices and Recommendations
To ensure the smooth operation of the Alarms module, follow these best practices:
- Use clear and descriptive names for AlarmGroup, areas, and items.
- 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.
Configuring Alarms (Advanced Configguration)
The Alarms module can be customized to meet specific requirements. This section will cover the various configuration options available in the Alarms module.
The following are some of the settings that can be customized:
Alarm Notification: This setting allows the user to specify how alarms are notified to users.
Sound: This setting allows the user to specify the sound that should be played when an alarm is raised.
For information on sound configuration, go to the AlarmGroup Sounds page.
Display: This setting allows the user to specify the display options for the alarms.
Audit-Trail: This setting allows the user to specify whether or not to log alarms and events.
Database: This setting allows the user to specify the database where alarm information is stored.
Security: This setting allows the user to specify the security settings for the Alarms module.
In addition to the global settings, the Alarms module can be customized further by creating AlarmGroup, AlarmArea, and AlarmItem. These can be used to group and organize alarms based on specific criteria.
The next sections will cover how to create and manage AlarmGroup, AlarmArea, and AlarmItem.
Creating and Managing AlarmGroup
AlarmGroup are a way to group together alarms that share common characteristics, such as the same priority, area, or notification method. In FrameworkX, AlarmGroup are created and managed using the "Group" tab.
To create a new Alarm Group, follow these steps:
Open the Alarm in the Designer.
Click on the "AlarmGroup" tab.
Click the "New item..." button.
Give the group a name, description, and choose the desired settings for that group, such as the priority level, notification method, etc.
Click "Ok" to create the new group.
Once an Alarm Group has been created, it can be edited, disabled, or deleted. To edit an existing Alarm Group, follow these steps:
Open the Alarm in the Designer.
Click on the "AlarmGroup" tab.
Select the group you want to edit from the list of groups.
- In the selected row, edit the desired properties.
Make the desired changes to the group settings.
Click "Save" to save the changes.
To disable an Alarm Group, follow these steps:
Open the Alarm in the Designer.
Click on the "AlarmGroup" tab.
Select the group you want to disable from the list of groups.
Click the "Disable" button.
Confirm that you want to disable the group.
To delete an Alarm Group, follow these steps:
Open the Alarm in the Designer.
Click on the "AlarmGroup" tab.
Select the group you want to delete from the list of groups.
Click the "Delete Selected Item" button.
Confirm that you want to delete the group.
Note that deleting an Alarm Group will also delete all of the alarms associated with that group.
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:
|
Colors | Select the colors you want to use for each state:
|
NotificationMethod | Calls a Script → Class method that triggers a code when the alarm happens. |
Category | Select or not the Indicator option |
LockState | Bultin |
LockOwner | ---------------- |
DateModified | Date the group is was Modified. |
DateCreated | Date the group is was created. |
Description | Enter a description of the alarm group. |
Using Pre-Defined Groups
The Alarms module provides pre-defined AlarmGroup that you can use to quickly configure alarms for common applications. These pre-defined groups have pre-configured properties that make it easier to create and configure alarms for specific purposes.
To use a pre-defined Alarm Group, you simply need to select it from the list of available groups and configure any additional properties as needed. The available pre-defined groups may vary depending on the version of the Alarms module that you are using and the features that have been installed.
Some common AlarmGroup that may be available, include:
High Priority Alarms
This group is used to track critical alarms that require immediate attention. The alarms in this group will typically have a high priority and may be configured to generate notifications or take other actions automatically.Medium Priority Alarms
This group is used to track alarms that are important, but not as critical as high priority alarms. The alarms in this group may have a lower priority than those in the high priority group, and may not require immediate attention.Low Priority Alarms
This group is used to track alarms that are less critical than medium priority alarms. The alarms in this group may have a lower priority than those in the medium priority group and may not require immediate attention.Equipment Alarms
This group is used to track alarms related to specific pieces of equipment or systems. The alarms in this group may be configured to generate notifications or take other actions specific to the equipment being monitored.Production Alarms
This group is used to track alarms related to production processes or activities. The alarms in this group may be configured to generate notifications or take other actions related to the production process being monitored.
Using pre-defined AlarmGroup can save time and effort in configuring the Alarms module, as the properties of the alarms in the group are already pre-configured. However, you can still customize these pre-defined groups or create new ones as needed to fit your specific requirements.
Defining and Organizing AlarmArea Hierarchy
The AlarmArea Hierarchy allows you to organize your alarms based on location, equipment, or process hierarchy. This enables you to easily identify and prioritize alarms and alerts based on their importance.
To define and organize alarms areas hierarchy, follow these steps:
In the Alarm Configuration window, select the AlarmArea tab.
Click the 'New Level...' button to create a new Alarm Area.
Enter a unique name and description for the Alarm Area.
Optionally, set the priority for the Alarm Area. The priority determines the order in which the AlarmArea appear in the Alarm Group tree.
Repeat steps 2-4 to add additional AlarmArea.
To create a hierarchy, drag and drop AlarmArea onto each other to create parent-child relationships.
To edit an Alarm Area, select it in the Alarm Group tree and click the Edit button.
To delete an Alarm Area, select it in the Alarm Group tree and click the Delete button.
Organizing your alarms into an AlarmArea Hierarchy can greatly simplify alarm management, allowing you to quickly identify the source of an alarm and take appropriate action. It also allows you to easily customize alarm priorities and notifications based on your specific needs.
Adding and Editing AlarmItem
The AlarmItem is the core object of the Alarms module, which represents a condition that triggers an alarm event when a certain criterion is met. Here we will discuss how to add new AlarmItem or modify the existing ones.
To add a new alarm item, follow these steps:
Open the AlarmItem configuration page by selecting Alarms > AlarmItem in the Project Browser.
Click the 'New Level...' button at the bottom of the AlarmItem list.
In 'Alarms > Items', enter the required fields, which include Tag Name, Condition, and Alarm Group.
You can also configure optional fields such as Limit, Deadband, Setpoint, Setpoint Deadband, Group, Area, Priority, Message, and Priority Order.
Click OK to save the new Alarm Item.
To modify an existing Alarm Item, follow these steps:
Open the 'Alarms > Items' configuration page by selecting Alarms > AlarmItem in the Project Browser.
Select the Alarm Item you want to modify from the list.
Modify the fields as required.
Click OK to save the changes.
It is important to note that any changes made to the AlarmItem will take effect immediately, and the new or modified AlarmItem will be evaluated against the tag values in real-time.
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. |
Disable | Check the disable option to disable the item. |
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. |
Area | Once 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. |
AuxValue | Enter a Tag property. |
TemplateID | -------------------- |
Comment | Comments about the alarm item. |
Message | Enter the text that displays in the alarm list. |
Alarms Runtime Attributes
The T.Modules.Alarm 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 AlarmItem and their properties.The tag properties are connected with the Alarms module.
Example | |
---|---|
| Configuration and runtime status of the HI Limit condition for the tag. The naming of all tag properties follow this same method. |
See the T.Modules.Alarm Namespace for the complete programming reference!
In this section: