Overview
Links toAlarms Module
- Building Solutions / Process Modules / Alarms Configuration (How-to Guide)
- Alarms Examples (How-To Guide)
(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
this page:
Table of Contents maxLevel 2 minLevel 2 indent 10px exclude
Module Configuration
Configuration 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 style none
Module Components
Configuration Workflow and Designer UI
Section | Designer UI Path | Purpose |
---|---|---|
Items | Alarms → Items | Define monitored conditions and limits |
Groups | Alarms → Groups | Configure shared alarm behaviors |
Areas | Alarms → Areas | Create hierarchical organization |
Global Settings | Alarms → Global Settings | System-wide configuration |
Configuration Workflow
Step | Action | Purpose |
---|---|---|
1. Create AlarmItems | Define tag conditions | Set what to monitor |
2. Configure Groups | Set behaviors | Define how alarms act |
3. Build Areas | Create hierarchy | Organize by location/function |
4. Global Settings | Configure system | Set 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
- Enable in Global Settings
- Select events to log
- 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
- Group strategically - Use groups for common behaviors
- Build logical hierarchy - Areas match plant structure
- Set appropriate limits - Avoid nuisance alarms
- Use deadbands - Prevent alarm flooding
- Configure priorities - Critical alarms stand out
Operations
- Test notifications - Verify all alert methods
- Train operators - Clear acknowledgment procedures
- Regular review - Analyze alarm performance
- Maintain database - Archive historical data
- Document settings - For compliance audits
Performance
- Optimize conditions - Simple expressions perform better
- Batch operations - Group related alarms
- Manage retention - Balance history vs storage
- 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 | ||||
---|---|---|---|---|
|
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.
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 | ||
---|---|---|
| ||
Alarm Engine ProcessPresents in the detail the processes when executing the Alarm Engine. → Read more about Alarm Engine Process (Reference) |
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 | ||||
---|---|---|---|---|
|