Versions Compared

Key

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

Overview

Links to

Image AddedAlarms Module

tutorials, concepts, and how-to guides

(Reference) provides comprehensive alarm management capabilities for monitoring, notification, and compliance in FrameworX solutions.

  • Real-time monitoring of process conditions
  • Hierarchical alarm organization
  • Flexible acknowledgment workflows
  • Comprehensive audit trail logging
  • Multi-channel notifications
  • FDA 21 CFR Part 11 compliance

In

On

this page:

Table of Contents
maxLevel2
minLevel2
indent10px
exclude

Overview

 Module Configuration

Image RemovedConfiguration UI

→ Solution / Alarms / Items - tags and conditions to generate alarm. Include AlarmGroup for Ack/Log settings and AlarmArea for hierarchy.

→ Solution / Alarms / Groups - Collection of AlarmItems sharing properties such as AckRequired and LogEvents.

→ Solution / Alarms / Areas - Hierarchical grouping of AlarmGroups for better organization.

→ Solution / Alarms / Audit Trail - Logs changes and events when executing the solution, tracking who made changes and when. Useful for troubleshooting, analysis, and compliance.

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.

Steps
stylenone

Module Components

Configuration Workflow and Designer UI

SectionDesigner UI PathPurpose
ItemsAlarms → ItemsDefine monitored conditions and limits
GroupsAlarms → GroupsConfigure shared alarm behaviors
AreasAlarms → AreasCreate hierarchical organization
Global SettingsAlarms → Global SettingsSystem-wide configuration

Configuration Workflow

StepActionPurpose
1. Create AlarmItemsDefine tag conditionsSet what to monitor
2. Configure GroupsSet behaviorsDefine how alarms act
3. Build AreasCreate hierarchyOrganize by location/function
4. Global SettingsConfigure systemSet database and audit trail

Runtime Architecture

Alarm Lifecycle

  • Normal - No alarm condition
  • Active - Condition triggered
  • Acknowledged - Operator confirmed
  • Normalized - Condition cleared, awaiting ack
  • Return - Back to normal state

Execution Control

  • Run/Pause/Stop alarm evaluation
  • Monitor active alarm counts
  • View performance metrics

Alarm Namespace

Access alarm objects at runtime:

csharp

// Alarm Items
bool isActive = @Alarm.Item.HighTemp.Active;
DateTime activeTime = @Alarm.Item.HighTemp.ActiveTime;

// Alarm Groups  
int criticalCount = @Alarm.Group.Critical.ActiveCount;
bool ackRequired = @Alarm.Group.Critical.AckRequired;

// Alarm Areas
@Alarm.Area.Production.AckAll();
int areaCount = @Alarm.Area.Production.AlarmCount;

// Global Settings
@Alarm.GlobalSettings.AuditTrail.AddCustomMessage("Event logged");
bool auditEnabled = @Alarm.GlobalSettings.AuditTrail.IsEnabled;

Key Concepts

AlarmItem

Individual monitored condition with:

  • Tag reference
  • Trigger condition (Hi, Lo, RateOfChange, etc.)
  • Limit values
  • Associated group and area

AlarmGroup

Collection sharing common properties:

  • Acknowledgment requirements
  • Notification methods
  • Sounds and colors
  • Logging preferences

AlarmArea

Hierarchical organization structure:

  • Plant/process area grouping
  • Filtering and navigation
  • Area-based operations

Global Settings

System-wide configuration:

  • Database connection
  • Startup behavior
  • Audit trail
  • Shift-based limits

Display Integration

AlarmViewer Control

  • Real-time alarm display
  • Sorting and filtering
  • Acknowledgment interface
  • Historical view

AlarmArea Control

  • Hierarchical navigation tree
  • Area-based filtering
  • Visual alarm indicators

Configuration example:

xml

<AlarmViewer>
  <List>OnlineAlarms</List>
  <AreaFilter>Production.Line1</AreaFilter>
  <ShowAcknowledged>false</ShowAcknowledged>
</AlarmViewer>

Notification Methods

Built-in Notifications

  • Visual alerts in displays
  • Sound alerts (configurable per group)
  • Database logging

Custom Notifications

Via Script Classes:

csharp

public void SendAlarmNotification(AlarmEventArgs args)
{
    // Email notification
    EmailService.Send(args);
    
    // SMS alert
    SMSService.Alert(args);
    
    // External system
    SCADA.LogAlarm(args);
}

Audit Trail

Configuration

  1. Enable in Global Settings
  2. Select events to log
  3. Configure retention period

Custom Messages

csharp

@Alarm.GlobalSettings.AuditTrail.AddCustomMessage(
    message: "Batch started",
    areaName: "Production",
    objectName: "Reactor1",
    value: "Batch#123"
);

Compliance Features

  • User logon/logoff tracking
  • Operator action logging
  • Tag change recording
  • System event capture

Database Configuration

Supported Databases

  • SQLite (default)
  • SQL Server
  • PostgreSQL
  • MySQL
  • Oracle

Schema

  • AlarmEvents - Active alarm records
  • AlarmHistory - Historical alarm data
  • AuditTrail - Audit log entries

Maintenance

  • Set retention period (Life Time)
  • Regular archival recommended
  • Index optimization for performance

Best Practices

Design

  1. Group strategically - Use groups for common behaviors
  2. Build logical hierarchy - Areas match plant structure
  3. Set appropriate limits - Avoid nuisance alarms
  4. Use deadbands - Prevent alarm flooding
  5. Configure priorities - Critical alarms stand out

Operations

  1. Test notifications - Verify all alert methods
  2. Train operators - Clear acknowledgment procedures
  3. Regular review - Analyze alarm performance
  4. Maintain database - Archive historical data
  5. Document settings - For compliance audits

Performance

  1. Optimize conditions - Simple expressions perform better
  2. Batch operations - Group related alarms
  3. Manage retention - Balance history vs storage
  4. Monitor metrics - Track evaluation performance

Troubleshooting

Common Issues

Alarms not triggering:

  • Verify tag values
  • Check enable conditions
  • Confirm group active
  • Review deadband settings

Database issues:

  • Check connection string
  • Verify permissions
  • Monitor disk space
  • Review retention settings

Performance problems:

  • Reduce evaluation frequency
  • Optimize complex conditions
  • Increase deadbands
  • Archive old data

Notification failures:

  • Verify script methods
  • Check sound file paths
  • Review email configuration
  • Test network connectivity

Advanced Topics

For deep technical understanding: → See [Alarms Engine (Reference)]

For monitoring runtime performance: → See [Alarms Monitor (Reference)]

For custom sound configuration: → See [Alarm Groups Sounds]

For email notifications: → See [Alarm Email Notifications]




In this section...

Page Tree
root@parent
spaces93DRAF

Runtime Execution

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 Removed

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.

Alarm Namespace

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

→ Read more about Alarm Namespace (Reference)

Panel
titleAdvanced Topic

Alarm Engine Process

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

→ Read more about Alarm Engine Process (Reference)

AnchorBestPracticesBestPracticesTroubleshooting

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:

Page Tree
rootV10:@self
spacesV10