Alarm Pipeline Only Triggering on First Out Fault

Vision 8.014

I plan to use the alarm pipeline to send a text message to alert someone of an alarm but I only want one instance of the alarm pipeline to run at a given time.

I’m following a First Out Fault methodology and only want to alert someone of the first fault that needs their attention. Once that fault is cleared if another one is triggered I would send a new text message to alert them.

I’m trying to avoid the situation of sending out multiple messages at the same time since many of our alarms are interconnected and one fault condition could end up trigger multiple alarms.

From my testing it seems that each alarm tied to an alarm pipeline will trigger an instance of the pipeline to run.

I’m considering creating a flag bit that the first pipeline turns on and will drop out all other pipeline instances if on and then only clearing this once all alarms are cleared but I feel like there has to be a better way.

Have you looked at using consolidation on your alarm pipeline notification block? In there you can set a delay that it would wait for new alarms then it would use the consolidated message from your notification tab. If you set a delay that allowed faults triggered by another ,to be triggered, then you would still only get one notification about the fault instead of multiple. If a new fault happened after that delay though you would still get the notification though.

The only other way I could see doing it would be to an expression or script in your pipeline that checks for any active alarms before doing the notification.

Right now the customer only wants to be notified about one alarm when the line is down if it changes I will look into consolidation.

These are simple cells so once an alarm has triggered and stopped the cell the only new alarm would be someone opening a door and at that point we wouldn’t need to notify. Most of the time these cells don’t have operators and its really just for a maintenance guy to know he needs to walk over to the cell.

I don’t see it being straight forward to set up what I think your looking for. But here are some options.

  • The easiest way to get just one alarm would be to combine them into an expression tag then trigger your notification based on this tag. You can use expression bindings to determine which alarm triggered it assuming you don’t have multiple alarms that come in at one time. If you have multiple show up on one scan though, you would have to set up how to handle it in your binding.

  • You can write a script in your notification pipeline that looks for active alarms. This can get complicated because you would need to use one of the values thats fed in by the alarm to create an alarm query. You can then use system.alarm.queryStatus() to see if there are other active alarms. The issue here again is if multiple alarms come in at once, you would need to be able to handle it.

Personally with what your describing I would do the first option and create an expression tag that combines the alarms and use that tag to trigger your notification. Any way you go you will need to do through testing to make sure it functions the way you want and you need to try to account for if multiple alarms come in at one time. If you do get multiple alarms at one time and need to know the first one that came in, you may need to do it from the PLC and return a status bit that tells you which alarm triggered it.