Support Forums
Widget to display alarm count by area - path needed

I am going behind someone on an unfinished attempt to display alarm counts by area. Below is an alarm query tag calculation path for the influent pump station area:

\AlarmManager\GetAlarmStateStats(Scope(Self, "01_IntakePS"smile)\ActivePriorities["0002"] : Invalid

I am getting no value results. Does anyone have any insight on what may be wrong with this parameter or if there is another method in achieving this.

Any info is appreciated!

Thanks,
Ben

I am going behind someone on an unfinished attempt to display alarm counts by area. Below is an alarm query tag calculation path for the influent pump station area: \AlarmManager\GetAlarmStateStats(Scope(Self, "01_IntakePS"))\ActivePriorities["0002"] : Invalid I am getting no value results. Does anyone have any insight on what may be wrong with this parameter or if there is another method in achieving this. Any info is appreciated! Thanks, Ben

I think you just want to use the 'Alarm Status' tag for this. If you need an additional calculation then reference the alarm status tag in your calculations.

The tag itself should give you the result of what you have in your calc above.

I think you just want to use the 'Alarm Status' tag for this. If you need an additional calculation then reference the alarm status tag in your calculations. The tag itself should give you the result of what you have in your calc above.

Trihedral Engineering Ltd.

The tag hierarchy here is Alarm Status Tag type: 01_IPS_HI_ALM then a another I/O Calculations Tag type: 01_IPS_HI_ALM_COUNT.

This is the tag that has the calculation expression:

\AlarmManager\GetAlarmStateStats(Scope(Self, "01_IntakePS"smile)\ActivePriorities["0002"] : Invalid

Does this need to be nested as a child under the Alarm Status Tag? Would a counter tag be better to use here? Or a GetAlarmStat function? If so does anyone have an example of this?

Thanks,

The tag hierarchy here is Alarm Status Tag type: 01_IPS_HI_ALM then a another I/O Calculations Tag type: 01_IPS_HI_ALM_COUNT. This is the tag that has the calculation expression: \AlarmManager\GetAlarmStateStats(Scope(Self, "01_IntakePS"))\ActivePriorities["0002"] : Invalid Does this need to be nested as a child under the Alarm Status Tag? Would a counter tag be better to use here? Or a GetAlarmStat function? If so does anyone have an example of this? Thanks,

My initial thought was that the value from the 'Alalog Status' tag would have the value you were looking for but I feel like I'm missing something.

Are you are trying to get the current number of active alarms, or is it something completley different such as the number of alarms over a period of time? I think I might be missing something about what your calculation is looking to accomplish.

My initial thought was that the value from the 'Alalog Status' tag would have the value you were looking for but I feel like I'm missing something. Are you are trying to get the current number of active alarms, or is it something completley different such as the number of alarms over a period of time? I think I might be missing something about what your calculation is looking to accomplish.

Trihedral Engineering Ltd.

Thanks for the follow-up Dave. I'm just trying to get the number of active alarms with a filter by area.

I tried messing around with a test AlarmStatus tag as a child under parent for most tags, and never got any value higher than 1.

Ex:
PlantName
-TestAlarmStatus
-PLC1
-PLC2
-Etc....

TestAlarmStatus has area PlantName. I figured that would show all active alarms for all the tags configured with alarms from all the PLC's under PlantName.

Thanks,

Thanks for the follow-up Dave. I'm just trying to get the number of active alarms with a filter by area. I tried messing around with a test AlarmStatus tag as a child under parent for most tags, and never got any value higher than 1. Ex: PlantName -TestAlarmStatus -PLC1 -PLC2 -Etc.... TestAlarmStatus has area PlantName. I figured that would show all active alarms for all the tags configured with alarms from all the PLC's under PlantName. Thanks,

It seems you are correct about the Alarm Status tag having an discrete output. That's my mistake. I just tested your expression in a calculation tag and pointed it (ie: replaced "01_intakePS" with a one of my context tags and it returned the number of alarms within that context tag. In my case, the calculation tag was a child to the context tag.

IE With Two Active Alarms inside the context tag:


\AlarmManager\GetAlarmStateStats([MyContextTag]\Root)\ActivePriorities["0002"] :2


And with no active alarms inside the context tag:


\AlarmManager\GetAlarmStateStats([MyContextTag]\Root)\ActivePriorities["0002"] :0


Here is how that looks where my Context tag was named 'MQTT'
66cf88e70d1b7

It seems you are correct about the Alarm Status tag having an discrete output. That's my mistake. I just tested your expression in a calculation tag and pointed it (ie: replaced "01_intakePS" with a one of my context tags and it returned the number of alarms within that context tag. In my case, the calculation tag was a child to the context tag. IE With Two Active Alarms inside the context tag: **** \AlarmManager\GetAlarmStateStats([MyContextTag]\Root)\ActivePriorities["0002"] :2 **** And with no active alarms inside the context tag: **** \AlarmManager\GetAlarmStateStats([MyContextTag]\Root)\ActivePriorities["0002"] :0 **** Here is how that looks where my Context tag was named 'MQTT' ![66cf88e70d1b7](serve/attachment&path=66cf88e70d1b7)

Trihedral Engineering Ltd.

Dave,

My apologies for my lack of clarity here. Like I said, I'm picking up where someone left off. Below is a screenshot of my nesting
66d074b0e33d3

In this instance, 01_IPS_HIGH_2_Alarms is my alarmstatus tag. 01_IPS_High_2_Alarms_Count is my IO calculations tag with the expression you mentioned was successful.

Your MQTT context tag?, would my context tag then be 01_IPS_High_2_Alarms alarmstatus tag? I'm unsure of why my existing expression is different than yours. My newly tested expression:

\AlarmManager\GetAlarmStateStats([01_IPS_High_2_Alarms]\Root)\ActivePriorities["0002"]

This automatically reverts to the original just with the updated context tag:

\AlarmManager\GetAlarmStateStats(Scope(Self, "01_IntakePS"smile)\ActivePriorities["0002"]
66d0769da116c

Thanks!

Dave, My apologies for my lack of clarity here. Like I said, I'm picking up where someone left off. Below is a screenshot of my nesting ![66d074b0e33d3](serve/attachment&path=66d074b0e33d3) In this instance, 01_IPS_HIGH_2_Alarms is my alarmstatus tag. 01_IPS_High_2_Alarms_Count is my IO calculations tag with the expression you mentioned was successful. Your MQTT context tag?, would my context tag then be 01_IPS_High_2_Alarms alarmstatus tag? I'm unsure of why my existing expression is different than yours. My newly tested expression: \AlarmManager\GetAlarmStateStats([01_IPS_High_2_Alarms]\Root)\ActivePriorities["0002"] This automatically reverts to the original just with the updated context tag: \AlarmManager\GetAlarmStateStats(Scope(Self, "01_IntakePS"))\ActivePriorities["0002"] ![66d0769da116c](serve/attachment&path=66d0769da116c) Thanks!

I would check the ID tab of your Calculation to ensure that they data type is either analog or discrete and update your expression to the following:


\AlarmManager\GetAlarmStateStats([FAYHeader]\Root)\ActivePriorities["0002"]


I would check the ID tab of your Calculation to ensure that they data type is either analog or discrete and update your expression to the following: **** \AlarmManager\GetAlarmStateStats([FAYHeader]\Root)\ActivePriorities["0002"] ****

Trihedral Engineering Ltd.

edited Aug 29 at 5:55 pm

Dave
66d0bdb9f356b
66d0bdba05aa6
66d0bdba0216b
66d0bdba36a46
Dave,

Thanks for the insight thus far! I guess I'm getting lost with the "Area" designation and the Root Container specified in the expression.

In the one attachment you can see how my PLC's are nested under container "Noland". I seem to get different results when I swap around Noland in the area and/or in the expression.
66d0be5371240

Above is all the areas configured in the platform. It seems like the area is the lynchpin to getting alarm stats. How can I get to a more granular result that is useful to the operators?

It seems when I drill down I lose my results. It seems like it needs to be at either an administrator, all areas, or Noland area. What do to area filter and name filter accomplish? It seems like that just always returns no results.

I'm on the right track but need to get the query paths worked out a little more.

Any help when you have time is really appreciated.

Thanks.

Dave ![66d0bdb9f356b](serve/attachment&path=66d0bdb9f356b) ![66d0bdba05aa6](serve/attachment&path=66d0bdba05aa6) ![66d0bdba0216b](serve/attachment&path=66d0bdba0216b) ![66d0bdba36a46](serve/attachment&path=66d0bdba36a46) Dave, Thanks for the insight thus far! I guess I'm getting lost with the "Area" designation and the Root Container specified in the expression. In the one attachment you can see how my PLC's are nested under container "Noland". I seem to get different results when I swap around Noland in the area and/or in the expression. ![66d0be5371240](serve/attachment&path=66d0be5371240) Above is all the areas configured in the platform. It seems like the area is the lynchpin to getting alarm stats. How can I get to a more granular result that is useful to the operators? It seems when I drill down I lose my results. It seems like it needs to be at either an administrator, all areas, or Noland area. What do to area filter and name filter accomplish? It seems like that just always returns no results. I'm on the right track but need to get the query paths worked out a little more. Any help when you have time is really appreciated. Thanks.

The expression you are using is looking for a tag name and not an area inside the [] in the example expression. It is common for all tags in an area to be placed within a context tag. One of the nice features of a context tag is that the tag will show the alarms for the children of the tag (Like an area filter).

Also, if you are using the calculation to produce these results, you likely do not need the Alarm Status tag at all.

You can find a context tag by looking here in the tag browser:
66d0d17384ddd

The expression you are using is looking for a tag name and not an area inside the [] in the example expression. It is common for all tags in an area to be placed within a context tag. One of the nice features of a context tag is that the tag will show the alarms for the children of the tag (Like an area filter). Also, if you are using the calculation to produce these results, you likely do not need the Alarm Status tag at all. You can find a context tag by looking here in the tag browser: ![66d0d17384ddd](serve/attachment&path=66d0d17384ddd)

Trihedral Engineering Ltd.

edited Aug 29 at 8:53 pm

So a calculation tag with "Area" field selected as Administrator, with the following expression:

\AlarmManager.GetAlarmStateStats([01_Noland]\Root).ActivePriorities["0002"]

Returns a value of 2. I translate that as 2 "active" , "critical" alarms currently within the context tag of 01_Noland. Is that correct?

According to the active alarm banner, I have 0 "active", "critical" alarms in Noland Area.

So a calculation tag with "Area" field selected as Administrator, with the following expression: \AlarmManager.GetAlarmStateStats([01_Noland]\Root).ActivePriorities["0002"] Returns a value of 2. I translate that as 2 "active" , "critical" alarms currently within the context tag of 01_Noland. Is that correct? According to the active alarm banner, I have 0 "active", "critical" alarms in Noland Area.
93
11
2
live preview
enter atleast 10 characters
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
With selected deselect posts show selected posts
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft