Pipeline - Escalation
It is possible to set up escalation procedures in alarm notification pipelines in Ignition. The following example will create a pipeline that notifies operators three times. If a user does not acknowledge the alarm after the third time, the alarm escalates to the Production Supervisor’s on-call roster.
The following example requires that two separate on-call rosters have been configured ("Production Supervisors" and "Operators"), as well as an email notification profile.
Pipeline - Escalation
Watch the videoSet Up Escalation Procedures
In the Project Browser under the Alarm Notification Pipelines, create a New Alarm Pipeline called Escalate.
In order to keep track of how many times the operators get notified, create a counter using the Set Property block inside your pipeline. Drag the Set Property block to the Pipeline workspace and connect the START block to the IN of the Set Property block.
In the Pipeline Block Editor, set the Property Name to numCalls and initialize the Property Value to "0".
Drag the Notification block to the Pipeline Workspace and connect the OUT from the Set Property block to the IN of the Notification block.
In the Pipeline Block Editor, set the Notification to use Email Notifications and set the Contacts to use the Operators on-call roster.
A Delay block will be added so the operators have some time to respond to the alarm before another notification is immediately sent out. Drag in the Delay block and connect the OUT from the Notification block to the IN of the Delay block.
In the Pipeline Block Editor, set the Delay property for 300 seconds. It will give the operators 5 minutes to respond to the alarm before going to the next block.
If the alarm is still active and not acknowledged, the counter will increment by 1. In order to increment the counter, drag in another Set Property block and connect the OUT of the Notification block to the IN of the Set Property block. You can right click on the Set Property block to reverse the orientation.
The Set Property Block's Property Value uses Ignition's Expression language. More information on the Expression language can be found on the Expression Language and Syntax page.
In the Pipeline Block Editor, set the Property Name to numCalls. In the Property Value Expression enter "{numCalls} + 1". In this expression, use the curly braces to refer to that variable so the counter gets incremented by 1.
The Expression block will check to see if numCalls is < 3. Drag in an Expression Block to your pipeline workspace and right click on the Expression block to reverse the orientation.
Connect the OUT of the Set Property block to the IN of the Expression block. Since the value of numCalls is less than 3, the alarm event will follow the True path. Connect the True output to the Operator Notification block.
If the numCalls is > 3, the alarm event will follow the False path and it will escalate to the Managers.
Drag in another Notification block and reverse the block orientation. In the Pipeline Block Editor, set the Notification to use Email Notifications, and set the Contacts to use the Managers on-call roster.
Connect the False pin to the IN of the Production Supervisors Notification block.
As you can see, when the Escalate Pipeline sets the numCalls variable to a value of "0", it’s going to notify the Operators on-call roster through email that the alarm is active. It will wait 5 minutes, and if the alarm is still active, it will increment the counter by 1. This will repeat until the numCalls is > 3. After the third time, if the alarm is still active and in the pipeline, then the Production Supervisors will be notified. Keep in mind, that if the alarm at any point meets the dropout conditions, it will not go to the next block of the pipeline.
You can also use the Jump Block as your escalation instead of a second Notification block. This will allow you to jump into another complete pipeline when nobody answers.