isAlarmActiveFiltered to check any Unacknowledge alarm inside a UDT

Hi,
I have a UDT with tags with alarm enabled inside a folder called sts.
I created an expression tag inside the udt to check if any alarm is unacknowledge, to do so I tried using this expression:

isAlarmActiveFiltered("[.]sts/*", "*", "*", 0, 4, 1, 0, 0)

I’m testing it and have some tags with active and cleared alarms on it that are unacknowledge but the expression tag is set to 0 instead of 1.

The Execution Mode is set to Event Driven, could that be the problem? I tried with a Fixed Rate of 1 second and it works now. I have 90 UDTs, could 90 tag with a fixed rate of 1 seconds create any slowdown in the system?

Event driven expressions look for changes in whatever parameters you’re using (e.g. tag value changes). My understanding is that your expression would never have reason to execute after the initial scan. Fixed or tag group execution mode would be best.

As for slowdowns, one of my projects is running a far greater number of system.alarm.queryStatus calls for my UDTs. Similar concept to isAlarmActiveFiltered, but via scripting and with a different output. On top of that I’m doing some dataset manipulation and sorting. With hundreds+ of these executing per second, there’s no noticeable impact on gateway CPU usage. All that to say, you shouldn’t see any slowdowns with 90 UDTs running this.

Tag expressions work to your advantage since they’re gateway scoped. If you were doing this in the client, you might find the experience a bit more rough.

1 Like

Thanks a lot for sharing, your message is very helpful