Contents
Cirrus Link Resources
Cirrus Link Website
Contact Us (Sales/Support)
Forum
Cirrus Link Modules Docs for Ignition 7.9.x
Inductive Resources
Ignition User Manual
Knowledge Base Articles
Inductive University
Forum
In MQTT Transmission and MQTT Engine support was added to transmit alarm events from the Edge (MQTT Transmission) to the Central Gateway (MQTT Engine) . They also now support acknowledgements from the Central Gateway (MQTT Engine) back to the Edge (MQTT Transmission).
To configure alarm event propagation from Transmission to Engine, follow these steps:
Add a line similar to the following to the data/ignition.conf file on each Ignition instance replacing the 'XX' with the proper index per the wrapper.java.additional statements.
wrapper.java.additional.XX=--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
Set up a tag on the Transmission side with an alarm.
The Ack Mode must be set to Manual or Auto
The alarm properties that are currently propagated are: Name, Priority and Notes
Below is an example that will generate an event if the value of the tag goes above 100:
At this point, we can acknowledge the alarm at either the Edge or the MQTT Engine side via the Alarm Status Table by clicking the 'Acknowledge' button as shown below. Once acknowledged, it will be reflected as so on both the Edge and the MQTT Engine sides.
In order for the alarm acknowledgement or clearing at the Edge to be published to MQTT Engine, the Edge must be in an active Sparkplug session with MQTT Engine or have determined that the connection is unavailable such that the event changes are stored to the Disk Backed History Store for publication on reconnect.
MQTT Transmission can take upto 1.5 times the configured keep alive time to determine that there is a connection failure and any alarm acknowledgements or clearings can be lost during this time leaving alarms 'stranded' at MQTT Engine. How to remove stranded alarms from the MQTT Engine Alarm Status Table.
The recommended approach to mitigate this issue is to configure a Rolling History Buffer for the Disk Backed History Store which will cover data loss during a keep alive timeout scenario
While testing the alarm acknowledgements whilst the Edge is disconnected, you can confirm that the connection status via the MQTT Transmission Servers view in the UI or through the MQTT Client Online tag
In order for the alarm to be acknowledged from MQTT Engine, the Edge must be in an active Sparkplug session with MQTT Engine
If the Edge node is offline, the following will be displayed in the Alarm Status Table and Ignition logs at MQTT Engine:
Once the Edge node comes online, any new alarm acknowledgement will be successful from MQTT Engine.
After doing so, you can see the acknowledged alarm on the Central Gateway (MQTT Engine side) :
and the Edge (MQTT Transmission side) :
If alarms have been 'stranded' in the MQTT Engine Alarm Status Table, they can be cleared using the MQTT Engine Python Scripting API with the readAlarms and clearAlarms calls.
In MQTT Transmission and MQTT Engine v4.0.16 support was added to propagate triggered alarm events from the Edge to a Central Ignition Gateway. This can be used to insert alarm events into Ignition's alarm journal on the MQTT Engine side. Currently, these alarm events on the MQTT Engine side can not be currently be used in alarm pipelines, and they can not be remotely acknowledged from MQTT Engine back to MQTT Transmission.
To configure alarm event propagation from Transmission to Engine to insert them into the Engine side alarm journal, follow these steps.
Add a line similar to the following to the data/ignition.conf file but replace the 'XX' with the proper index per the wrapper.java.additional statements. This must be done on both the MQTT Transmission side as well as the MQTT Engine side.
wrapper.java.additional.XX=--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
Additional Resources