Configure a complete alarm system: groups for severity, areas for organization, items for individual tag monitoring with limit and digital alarm types.
[alarm, alarms, alert, notification, group, area, limit, digital, pipeline, monitoring]
Set up a complete alarm system from scratch. Alarms watch tag values and trigger notifications when conditions are met. The pipeline is: Groups (severity/behavior) → Areas (organization) → Items (individual monitors).
AlarmsGroups (severity, colors, sounds)
??? AlarmsAreas (plant hierarchy — optional)
??? AlarmsItems (one per tag condition)
??? Watches UnsTags values at runtime
Use this skill when:
Do NOT use this skill when:
skill-edge-ml-pipeline)designer_action('navigate', 'AlarmsMonitor'))Tools: get_table_schema, write_objects, get_objects Tables: AlarmsGroups, AlarmsAreas, AlarmsItems
Groups define severity levels and shared behavior. Create at least Critical, Warning, and Info.
get_table_schema('AlarmsGroups')
{
"table_type": "AlarmsGroups",
"data": [
{
"Name": "Critical",
"Description": "Immediate action required — safety or equipment risk"
},
{
"Name": "Warning",
"Description": "Attention needed — process approaching limits"
},
{
"Name": "Info",
"Description": "Informational — logged but no immediate action"
}
]
}
Key decisions:
Areas organize alarms by plant location or process unit. They can be nested. Skip this step for simple solutions.
get_table_schema('AlarmsAreas')
{
"table_type": "AlarmsAreas",
"data": [
{
"Name": "Plant",
"Description": "Entire plant"
},
{
"Name": "Plant/Reactor1",
"Description": "Reactor 1 process area"
},
{
"Name": "Plant/Utilities",
"Description": "Utility systems"
}
]
}
Key decision: Area paths mirror the tag folder structure for consistency. Plant/Reactor1 area contains alarms for Plant/Reactor1/* tags.
Each item monitors one tag for one condition. The two main types are Limit (analog thresholds) and Digital (boolean state).
get_table_schema('AlarmsItems')
Limit alarms — trigger when a value exceeds a threshold:
{
"table_type": "AlarmsItems",
"data": [
{
"Name": "Reactor1_TempHigh",
"Group": "Critical",
"TagName": "Plant/Reactor1/Temperature",
"Type": "HighLimit",
"Limit": 90.0,
"Description": "Reactor 1 temperature exceeded 90°C"
},
{
"Name": "Reactor1_TempWarn",
"Group": "Warning",
"TagName": "Plant/Reactor1/Temperature",
"Type": "HighLimit",
"Limit": 75.0,
"Description": "Reactor 1 temperature approaching limit (75°C)"
},
{
"Name": "Reactor1_PressureHigh",
"Group": "Critical",
"TagName": "Plant/Reactor1/Pressure",
"Type": "HighLimit",
"Limit": 4.5,
"Description": "Reactor 1 pressure exceeded 4.5 bar"
},
{
"Name": "Reactor1_LevelLow",
"Group": "Warning",
"TagName": "Plant/Reactor1/Level",
"Type": "LowLimit",
"Limit": 10.0,
"Description": "Reactor 1 level below 10%"
}
]
}
Digital alarms — trigger on a boolean tag:
{
"table_type": "AlarmsItems",
"data": [
{
"Name": "Reactor1_AnomalyDetected",
"Group": "Warning",
"TagName": "Plant/Reactor1/ML/IsAnomaly",
"Type": "Digital",
"Description": "ML model detected anomaly on Reactor 1"
}
]
}
Key decisions:
Type values: HighLimit, LowLimit, HighHighLimit, LowLowLimit, Digital. Always verify with get_table_schema.Limit is required for limit-type alarms, ignored for digital alarms.Name should be descriptive and unique across all alarm items.get_objects('AlarmsGroups')
get_objects('AlarmsItems')
Then start or hot-reload runtime:
designer_action('hot_reload')
get_objects('AlarmsGroups') — confirm groups exist (Critical, Warning, Info)get_objects('AlarmsItems') — confirm all alarm items are configuredget_designer_state() — no errorsAlarmsMonitor → verify alarms trigger when thresholds are crossedbrowse_namespace('Alarm.Group.Critical') — check alarm counts at runtimeget_table_schema('AlarmsItems'). Common values are HighLimit, LowLimit, Digital — don't guess, always check the schema.Limit on a Digital type alarm is ignored. Digital alarms trigger when the boolean tag becomes true.skill-getting-started — Create tags and simulator (prerequisite)skill-edge-ml-pipeline — Add ML-based anomaly detection that feeds into alarmsskill-historian-configuration — Log alarm history for analysis