Ad-Hoc Alarming

I’m looking for the best way to generate alarms directly from python scripts.

We’ve got quite a bit of back end software that we’re trying to migrate over to ignition and part of that more or less requires alarms that can be generated directly from python scripts.

I’ve been looking at a few ways to do it, but none have really got us there.

The most promising seems to be setting up a string memory tag with an alarm set up for any change with the label bound back to the tags value. Then writing an alarm string to the tag generates an alarm of said string. The downside i’m seeing here is that I can’t get more than 5 alarms at a time to stay in the alarm status table. When the 5th alarm triggers, it purges out the oldest one on the log. They show up in the journal, but that’s really not what we’re looking for.

Here’s an image where you can see I’m only getting 5 entries per alarm - it didn’t matter if the label was bound or not.
image

So maybe that’s really what the question on this post is - can you adjust the alarm status table to show more than 5 entries for a single repeat alarm at a time?

Are you looking to have the notification email/SMS message be a dynamic message, or the strings shown in the table view online, or both?

I suspect your 5 alarm limit might be because you’re using the “Alarm Status” table and you have your “Live Event Limit” in the system-wide alarm config set to 5 (the default). The alarm status table only shows “current” alarm events which includes: active alarms, up to 5 (by default) cleared-but-not-acknowledged alarms, and 1 cleared-and-acknowledged alarm if nothing else is “current” for that alarm.

We’re just wanting the strings in the table view online to be dynamic.

Looks like the live event limit was what I needed. I should be able to bump it up to a number that will let this work the way we want it to.

It’s a shame that isn’t a per-alarm configuration.

Keep in mind that if someone acknowledges an alarm it will no longer be considered “current” by the alarm status table and will not be shown if there are other alarms on that tag.

Have you thought about create UDT tags that have multiple boolean memory tags in them?
You could configure them with alarms already set on them and just toggle them true/false for alarms.
You could have parameters for the UDT to set the string values for each tag, priority, custom properties, etc.