We are trying to set up our Dial-Out Alarms in a way that they can be enabled and disabled from buttons on the HMI screens, we still want the alarm to be active at all times but we want to decide whether it goes through the notification pipeline with the click of a button how could we go about only putting this value in the alarm pipeline when it is activated by the button
This type of logic typically needs to be placed on the Alarm Notification Pipelines itself.
Before the Notification block in the pipeline we would add either a Script or Expression block. For example, with an expression block we can utilize the tag() expression to read the value of a boolean tag when the alarm enters the pipeline. If the boolean tag is then setup to only be True when the users want notifications - we now have a toggle we can use to turn on and off notifications for that pipeline.
Got it.
Ideally we are looking to do this for individual alarms and not just enable/disable the Alarm Notification Pipeline altogether. Hopefully in a manner that would not involve setting up multiple pipelines.
Interesting. It is trickier for specific alarms. I have seen users overwrite the Alarm pipeline properties via scripting to set the alarms to empty pipelines when not desired and then reset them to the proper active pipeline when necessary.
A button with a script could manage most of this with the system.tag.configure() function. The “working with alarms” example on our documentation page would be a good starting point. The script would overwrite the pipeline properties on the alarm to swap the active pipeline name based on if it is enabled/disabled.
I have a script that is doing this, but whenever I write the pipeline path back into the property, it leaves the alarm as overridden, which is not desired.
Is there a way to return the alarm configuration to its non-overridden state?
This can be accomplished with a custom property on the Alarm that references a tag inside the UDT that links to the button. Using an expression or switch block would allow you to send the alarm to a dropout condition if your tag is a 0
This is a method that substitutes which alarm property is being modified via the script, but it doesn't solve the underlying issue of the alarm overrides being persistent.
I specifically need to use the ability to reconfigure a large block of alarms at once via a script for my use case. And then later undo those changes and allow the alarms to go back to the non-overridden state.