This guide walks you through configuring the Alarms module to monitor process conditions and notify operators of abnormal situations. You'll create alarm items, configure groups, set up notifications, and display alarms in runtime.
Prerequisites:
- Tags created in UNS
- Understanding of process limits
- Display screens for alarm visualization
Configuration Workflow
- Create or Edit AlarmGroups - Define shared alarm behaviors
- Create AlarmItems - Configure tag conditions to monitor
- Configure Global Settings - Set up database and handling
- Add Alarm Displays - Visualize alarms in runtime
- Test Alarms - Verify triggering and acknowledgment
Step 1: Configure AlarmGroups
AlarmGroups define shared behaviors for related alarms (acknowledgment, sounds, colors, logging).
Using Pre-defined Groups
The platform provides three default groups:
Group | Priority | Ack Required | Logging | Use Case |
---|---|---|---|---|
Critical | High | Yes | Yes | Urgent conditions requiring immediate action |
Warning | Medium | No | Yes | Potential issues needing attention |
AuditTrail | Low | No | Yes | System events for compliance tracking |
Creating Custom Groups
- Navigate to Alarms → Groups
- Click Plus icon
- Configure properties:
- Name: Group identifier
- AckRequired: Force acknowledgment
- Sound: Alert sound file
- LogEvents: Enable historian logging
- Colors: Visual identification
- Click OK
Group Properties
Property | Description | Example |
---|---|---|
AckRequired | Alarm stays active until acknowledged | True for Critical |
AckTimeout | Auto-acknowledge time | 3600 seconds |
Sound | Audio alert file | Critical.wav |
Show | Display in alarm viewers | True |
LogEvents | Record to historian | True |
NotificationMethod | Script for email/SMS | SendEmail |
Step 2: Create AlarmItems
AlarmItems monitor specific tag conditions.
Basic Configuration
- Go to Alarms → Items
- In first row, enter:
- TagName: Tag to monitor (or select from list)
- Condition: Trigger type
- Limit: Threshold value
- Group: Select AlarmGroup
- Press Enter to save
Example Configurations
Tag | Condition | Limit | Group | Description |
---|---|---|---|---|
Tank.Level | HiHi | 95 | Critical | Tank overflow |
Tank.Level | Hi | 85 | Warning | Tank high level |
Pump.Current | GreaterThan | 50 | Warning | Motor overload |
Reactor.Temp | RateOfChange | 5 | Critical | Rapid temperature rise |
Condition Types
Condition | Triggers When | Use Case |
---|---|---|
Hi | Tag ≥ Limit | High level warning |
HiHi | Tag ≥ Limit (cascades Hi) | Critical high level |
Lo | Tag ≤ Limit | Low level warning |
LoLo | Tag ≤ Limit (cascades Lo) | Critical low level |
RateOfChange | Change rate ≥ Limit | Rapid changes |
DeviationMinor | Tag - Setpoint | |
Equal | Tag = Limit | Specific state detection |
Changed | Any value change | Event logging |
Advanced Properties
- Deadband: Hysteresis to prevent chattering
- Setpoint: Reference for deviation alarms
- Priority: Sorting in alarm displays (0-999)
- Message: Custom alarm text
- Area: Hierarchical grouping
Step 3: Configure Global Settings
Database Configuration
- Navigate to Alarms → Global Settings
- Configure Alarm Logging Database:
- Database: SQLite (default) or external
- Connection: Database connection string
- LifeTime: Days to retain (e.g., 90)
Alarm Handling
Configure system-wide behaviors:
- Initial Disable Time: Startup suppression (seconds)
- Ignore During Deadband: Prevent alarm flooding
- LogUserFullName: Record operator names
Enable Audit Trail
Check events to track:
- User Login/Logout
- Tag Value Changes
- Alarm Acknowledgments
- System Configuration Changes
Step 4: Add Alarm Displays
Using AlarmViewer Control
- Go to Displays → Draw
- From component panel, navigate to Modules
- Drag AlarmViewer to display
- Configure properties:
- Group: Filter by AlarmGroup
- Area: Filter by AlarmArea
- ShowAckButton: Enable acknowledgment
Pre-built Alarm Page
- In Displays → Pages
- Select New Page → AlarmPage template
- Page includes:
- AlarmViewer with filters
- Acknowledgment controls
- Historical query
Step 5: Test Alarms
Testing Procedure
- Start Runtime:
- Press F5 or click Run Test
- Open display with AlarmViewer
- Trigger Alarm:
- Modify tag value to exceed limit
- Verify alarm appears in viewer
- Check sound plays (if configured)
- Test Acknowledgment:
- Click alarm row
- Press Acknowledge button
- Verify alarm state changes
- Monitor Status:
- Go to Alarms → Monitor
- Check group counters
- Verify logging to database
Runtime Properties
Access alarm status in scripts/displays:
@Alarm.Group.Critical.UnAckCount // Unacknowledged count
@Alarm.Group.Warning.PriorityItem // Highest priority alarm
@Alarm.TotalCount // Total active alarms
Common Issues
Alarm Not Triggering
- Verify tag name is correct
- Check condition logic
- Ensure alarm is not disabled
- Confirm tag value updates
Alarm Flooding
- Increase deadband value
- Add time delay (ActiveTimeDeadband)
- Group related alarms
- Use rate-of-change limits
No Sound
- Check sound file exists
- Verify audio settings
- Test with different file format
- Check group Show property
Acknowledgment Not Working
- Verify AckRequired is enabled
- Check user permissions
- Confirm runtime is connected
- Test AckTimeout setting
Best Practices
? Use appropriate groups - Critical for safety, Warning for information ? Set deadbands - Prevent chattering on analog alarms ? Configure priorities - Help operators focus on important alarms ? Write clear messages - Include equipment ID and condition ? Test all conditions - Verify both activation and normalization ? Document alarm philosophy - Define response procedures ? Regular maintenance - Review and tune alarm limits
Advanced Features
- [Alarm Notifications →] Email and SMS alerts
- [Limits by Shift →] Different thresholds per shift
- [Custom Sounds →] Unique alerts per group
- [Alarm Areas →] Hierarchical organization
- [Audit Trail →] Compliance tracking
Next Steps
- [Historian Module →] Log alarm events long-term
- [Scripts Module →] Custom notification methods
- [Reports Module →] Alarm performance metrics