View Issue Details

IDProjectCategoryView StatusLast Update
000567510000-009: Alarms and ConditionsSpecpublic2022-04-26 16:54
ReporterJeff Harding Assigned ToPaul Hunkar  
PriorityhighSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version1.05.02 RC1 
Summary0005675: Usability of Alarm Suppress and Disable in a distributed system
Description

The suppression and disable functionality defined in part 9 described in clause 7 leaves a lot of questions as to how it should work across vendor servers.

My use case is an IO Application represented by one UA Server providing flow and pressure measurements and a separate UA Server representing a Function Block Execution Engine providing a Pump Object. When the pump is stopped I want to suppress the low flow and low pressure alarms in the IO Server.

If I try to apply the original Alarm Group approach to suppression I can see how this can be implemented. In this case the HasAlarmSuppressionGroup References target a remote AlarmGroup in the Execution Engine which allows the IO Application to subscribe to the state of the Alarm Group Members (PumpStoppedAlarm in this case) allowing the IO Application to manage its own state. (See Figure 1 in the attached pdf).

Now If I try to apply the state based approach to suppression it seems like the Suppress and UnSuppress Methods would need to be used since the references are from the StateMachine toward the Alarms to be suppressed. With the references flowing from the Pump the IO would have no way to know they are expected to participate in the suppression logic. I am assuming the 2 UA server are from different vendors so no vendor magic possibility. (See Figure 2 in the attached PDF).
The spec doesn’t describe how the suppression is expected to occur but it would seem the method calls is the only way this could be implemented.

Is this what was intended by the design?
If so I’m not sure this is a good idea. For example on startup or restart of the IO Application it will have no way to determine what its state should be. This would leave it entirely up to the Pump Object to monitor the current state of each target alarm and if it wasn’t in the expected suppression state reissue the method calls. There are also a lot of failure conditions that would result in unwanted behavior.

TagsNo tags attached.
Attached Files
Commit Version
Fix Due Date

Activities

Paul Hunkar

2020-06-16 06:09

developer   ~0012324

From UA meeting - after longer discussion - need to explain how suppression works (internal in application), We have an Alarm group for suppressing alarms based on a group of alarms (an alarm can suppress a group of alarms) - which can be used, but only if an alarm - need to add the ability to suppress an alarm not by an Alarm but by a boolean (or some state of a variable) - so Alarm groups should be extended to allow additional items not just an Alarm to trigger - then when a distribute state happens it can be monitored (not just via a call) - i..e when a boolean goes to a value - it suppress the alarm. (could be as simple as the active state is really just a boolean - could be any other boolean)

Paul Hunkar

2022-04-26 05:23

developer   ~0016625

Extended the definition of AlarmGroup for AlarmSuppressionGroup to allow BaseDataVariables with a datatype of Boolean

Jim Luth

2022-04-26 16:54

administrator   ~0016643

Agreed to changes edited in telecon.

Issue History

Date Modified Username Field Change
2020-05-29 11:50 Jeff Harding New Issue
2020-05-29 11:50 Jeff Harding Status new => assigned
2020-05-29 11:50 Jeff Harding Assigned To => Paul Hunkar
2020-05-29 11:50 Jeff Harding File Added: AlarmSuppressionExamples.pdf
2020-06-02 00:35 Jeff Harding Project 10000-005: Information Model => 10000-009: Alarms and Conditions
2020-06-16 06:09 Paul Hunkar Note Added: 0012324
2022-04-26 05:23 Paul Hunkar Status assigned => resolved
2022-04-26 05:23 Paul Hunkar Resolution open => fixed
2022-04-26 05:23 Paul Hunkar Fixed in Version => 1.05.02
2022-04-26 05:23 Paul Hunkar Note Added: 0016625
2022-04-26 16:54 Jim Luth Status resolved => closed
2022-04-26 16:54 Jim Luth Fixed in Version 1.05.02 => 1.05.02 RC1
2022-04-26 16:54 Jim Luth Note Added: 0016643