Alarm Groups (Reference) define shared characteristics and behaviors for collections of related alarm items in your FrameworX solution. Alarm Groups enable:
The platform provides pre-defined groups (Critical, Warning, AuditTrail) for common use cases, plus support for custom groups.
Property | Description | Default |
---|---|---|
Name | Group identifier | Required |
AckRequired | Requires operator acknowledgment | False |
ActiveTimeDeadband | Time period to ignore active alarms | 0 |
AckTimeout | Timeout period for acknowledgment | 0 |
AutoAckTime | Auto-acknowledge after this time | 0 |
Sound | Audio file for alarm notification | None |
Show | Display alarms from this group | True |
LogEvents | Log events to historian | False |
Colors | Visual identification colors | Default |
NotificationMethod | Script method for notifications | None |
Category | Category designation | None |
Description | Group purpose and details | None |
Group | Purpose | Default Settings |
---|---|---|
Critical | High-priority alarms requiring immediate action | AckRequired=True, LogEvents=True, High Priority |
Warning | Medium/low-priority informational alarms | AckRequired=False, LogEvents=True, Medium Priority |
AuditTrail | Hidden alarms for audit logging only | Show=False, LogEvents=True, No Display |
<ac:structured-macro ac:name="warning"> ac:rich-text-body Before deleting: Ensure no AlarmItems are linked to the group. Check via Alarms → Items and use Track Changes → Cross Reference. </ac:rich-text-body> </ac:structured-macro>
Property | Behavior |
---|---|
AckRequired | Alarm stays active until acknowledged, even if condition clears |
AckTimeout | Maximum time allowed for acknowledgment |
AutoAckTime | Automatically acknowledge after specified time |
Example flow:
Alarm Triggered → Wait for Ack → AutoAckTime expires → Auto-acknowledged
↓
Manual Ack → Acknowledged
NotificationMethod calls Script Class methods:
csharp
// In Script Class
public void SendCriticalAlert(AlarmEventArgs args)
{
// Send email
EmailService.Send(args.Message, args.Priority);
// Send SMS
SMSService.Alert(args.TagName, args.Value);
// Log to external system
ExternalLogger.LogAlarm(args);
}
Configure: NotificationMethod = "Script.Class.ServerMain.SendCriticalAlert"
Prevents alarm flooding during startup or known conditions:
AckTimeout = 300 // Must acknowledge within 5 minutes
AutoAckTime = 600 // Auto-acknowledge after 10 minutes if not handled
Access group properties at runtime:
csharp
// Check if acknowledgment required
bool needsAck = @Alarm.Group.Critical.AckRequired;
// Get active alarm count for group
int criticalCount = @Alarm.Group.Critical.ActiveCount;
// Enable/disable group
@Alarm.Group.Warning.Enabled = false;
Name: ProcessCritical
AckRequired: True
Sound: Critical.wav
LogEvents: True
AutoAckTime: 0 (never)
Colors: Red
NotificationMethod: Script.Class.Notifications.SendCritical
Name: InfoLog
AckRequired: False
Show: False
LogEvents: True
Category: Audit
Name: Maintenance
AckRequired: True
AutoAckTime: 3600 (1 hour)
LogEvents: True
NotificationMethod: Script.Class.Maintenance.ScheduleWork
Alarms not showing:
No sound playing:
Notifications not sent:
Auto-acknowledge not working: