The AlarmConditionTypeis an abstract type that extends the AcknowledgeableConditionTypeby introducing an ActiveState, SuppressedStateand ShelvingState. It also adds the ability to set a delay time, re-alarm time, Alarmgroups and audible Alarmsettings The Alarm model is illustrated in Figure 13. This illustration is not intended to be a complete definition. It is formally defined in Table 35.

image016.png

Figure 13– Alarm Model

Table 35– AlarmConditionType definition

Attribute

Value

BrowseName

AlarmConditionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

Subtype of the AcknowledgeableConditionType defined in clause 5.7.2

HasComponent

Variable

ActiveState

LocalizedText

TwoStateVariableType

Mandatory

HasProperty

Variable

InputNode

NodeId

PropertyType

Mandatory

HasComponent

Variable

SuppressedState

LocalizedText

TwoStateVariableType

Optional

HasComponent

Variable

OutOfServiceState

LocalizedText

TwoStateVariableType

Optional

HasComponent

Object

ShelvingState

ShelvedStateMachineType

Optional

HasProperty

Variable

SuppressedOrShelved

Boolean

PropertyType

Mandatory

HasProperty

Variable

MaxTimeShelved

Duration

PropertyType

Optional

HasProperty

Variable

AudibleEnabled

Boolean

PropertyType

Optional

HasProperty

Variable

AudibleSound

AudioDataType

AudioVariableType

Optional

HasComponent

Variable

SilenceState

LocalizedText

TwoStateVariableType

Optional

HasProperty

Variable

OnDelay

Duration

PropertyType

Optional

HasProperty

Variable

OffDelay

Duration

PropertyType

Optional

HasComponent

Variable

FirstInGroupFlag

Boolean

BaseDataVariableType

Optional

HasComponent

Object

FirstInGroup

AlarmGroupType

Optional

HasComponent

Variable

LatchedState

LocalizedText

TwoStateVariableType

Optional

HasAlarmSuppressionGroup

Object

<AlarmGroup>

AlarmGroupType

OptionalPlaceholder

HasProperty

Variable

ReAlarmTime

Duration

PropertyType

Optional

HasComponent

Variable

ReAlarmRepeatCount

Int16

BaseDataVariableType

Optional

HasComponent

Method

Silence

Defined in 5.8.5

Optional

HasComponent

Method

Suppress

Defined in 5.8.6

Optional

HasComponent

Method

Unsuppress

Defined in 5.8.7

Optional

HasComponent

Method

RemoveFromService

Defined in 5.8.8

Optional

HasComponent

Method

PlaceInService

Defined in 5.8.9

Optional

HasComponent

Method

Reset

Defined in 5.8.4

Optional

HasSubtype

ObjectType

DiscreteAlarmType

HasSubtype

ObjectType

LimitAlarmType

HasSubtype

ObjectType

DiscrepancyAlarmType

The AlarmConditionTypeinherits all Propertiesof the AcknowledgeableConditionType. The following states are sub-states of the True EnabledState.

ActiveState/Idwhen set to True indicates that the situation the Conditionis representing currently exists. When a Conditioninstance is in the inactive state (ActiveState/Idwhen set to False) it is representing a situation that has returned to a normal state. The transitions of Conditionsto the inactive and Activestates are triggered by Serverspecific actions. Subtypes of the AlarmConditionTypespecified later in this document will have sub-state models that further define the Activestate. Recommended state names are described in Annex A.

The InputNode Propertyprovides the NodeIdof the Variablethe Valueof which is used as primary input in the calculation of the Alarmstate. If this Variableis not in the AddressSpace, a NULL NodeIdshall be provided. In some systems, an Alarmmay be calculated based on multiple Variables Values; it is up to the system to determine which Variable’s NodeIdis used.

SuppressedState, OutOfServiceStateand ShelvingStatetogether allow the suppression of Alarmson display systems. These three suppressions are generally used by different personnel or systems at a plant, i.e. automatic systems, maintenance personnel and Operators.

SuppressedStateis used internally by a Serverto automatically suppress Alarmsdue to system specific reasons. For example, a system may be configured to suppress Alarmsthat are associated with machinery that is in a state such as shutdown. For example, a low level Alarmfor a tank that is currently not in use might be suppressed. Recommended state names are described in Annex A.

OutOfServiceStateis used by maintenance personnel to suppress Alarmsdue to a maintenance issue. For example, if an instrument is taken out of service for maintenance or is removed temporarily while it is being replaced or serviced the item would have the OutOfServiceState set. Recommended state names are described in Annex A.

ShelvingStatesuggests whether an Alarmshall (temporarily) be prevented from being displayed to the user. It is quite often used by Operatorsto block nuisance Alarms. The ShelvingStateis defined in 5.8.10.

When an Alarmhas any or all of the SuppressedState, OutOfServiceStateor ShelvingStateset to True, the SuppressedOrShelvedproperty shall be set True and this Alarmis then typically not displayed by the Client. State transitions associated with the Alarmdo occur, but they are not typically displayed by the Clients as long as the Alarmremains in any of the SuppressedState, OutOfServiceStateor Shelvedstate.

The optional Property MaxTimeShelvedis used to set the maximum time that an Alarm Conditionmay be shelved. The value is expressed as duration. Systems can use this Propertyto prevent permanent Shelvingof an Alarm.If this Propertyis present it will be an upper limit on the duration passed into a TimedShelve Methodcall. If a value that exceeds the value of this Propertyis passed to the TimedShelve Method, then a Bad_ShelvingTimeOutOfRangeerror code is returned on the call. If this Propertyis present it will also be enforced for the OneShotShelvedstate, in that an Alarm Condition will transition to the Unshelvedstate from the OneShotShelvedstate if the duration specified in this Propertyexpires following a OneShotShelveoperation without a change of any of the other items associated with the Condition.

The optional Property AudibleEnabledis a Boolean that indicates if the current state of this Alarmincludes an audible Alarm.

The optional Property AudibleSoundcontains the sound file that is to be played if an audible Alarmis to be generated. This file would be play/generated as long as the Alarmis active and unacknowledged, unless the silence StateMachineis included, in which case it may also be silenced by this StateMachine.

The SilenceStateis used to suppress the generation of audible Alarms. Typically, it is used when an Operatorsilences all Alarmson a screen, but needs to acknowledge the Alarmsindividually. Silencing an Alarmshall silence the Alarmon all systems (screens) that it is being reported on. Not all Clientswill make use of this StateMachine, but it allows multiple Clientsto synchronize audible Alarmstates. Acknowledging an Alarmshall automatically silence an Alarm.

The OnDelayand OffDelay Propertiescan be used to eliminate nuisance Alarms. The OnDelayis used to avoid unnecessary Alarms when a signal temporarily overshoots its setpoint, thus preventing the Alarmfrom being triggered until the signal remains in the Alarmstate continuously for a specified length of time (OnDelaytime). The OffDelayis used to reduce chattering Alarmsby locking the Alarmindication for a certain holding period after the condition has returned to normal. I.e. the Alarmshall stay active for the OffDelaytime and shall not regenerate if it returns to active in that period. If the Alarmremains in the inactive zone for OffDelayit will then become inactive.

The optional variable FirstInGroupFlagis used together with the FirstInGroup object. The FirstInGroup Object is an instance of an AlarmGroupType that groups a number of related Alarms. The FirstInGroupFlagis set on the Alarminstance that was the first Alarmto trigger in a FirstInGroup. If this variable is present, then the FirstInGroupshall also be present. These two nodes allow an alarming system to determine which Alarmin the list was the trigger. It is commonly used in situations where Alarms are interrelated and usually multiple Alarmsoccur. For example, vibration sensors in a turbine, usually all sensors trigger if any one triggers, but what is important for an Operatoris the first sensor that triggered.

The LatchedState Object, if present, indicates that this Alarmsupports being latched. The Alarmwill remain with a retain bit of True until it is no longer active, is acknowledge and is reset. The Reset Method,if called while active has no effect on the Alarmand is ignored and an error of Bad_InvalidState is return on the call. The Objectindicates the current state, latched or not latched. Recommended state names are described in Annex A. If this Objectis provided the Reset Methodmust also be provided.

An Alarminstance may contain HasAlarmSuppressionGroup reference(s) to instance(s) of AlarmGroupType. Each instance is an AlarmSuppressionGroup. When an AlarmSuppressionGroupgoes active, the Servershall set the SuppressedStateof the Alarmto True. When all of referenced AlarmSuppressionGroupsare no longer active, then the Server shall set SuppressedStateto False. A single AlarmSuppressionGroupcan be assigned to multiple Alarms. AlarmSuppressionGroups are used to control Alarmfloods and to help manage Alarms.

ReAlarmTimeif present sets a time that is used to bring an Alarmback to the top of an Alarmlist. If an Alarmhas not returned to normal within the provided time (from when it last was alarmed), the Serverwill generate a new Alarmfor it (as if it just went into alarm). If it has been silenced it shall return to an un-silenced state, if it has been acknowledged it shall return to unacknowledged. The Alarmactive time is set to the time of the re-alarm.

ReAlarmRepeatCountif present counts the number times an Alarmwas re-alarmed. Some smart alarming system would use this count to raise the priority or otherwise generate additional or different annunciations for the given Alarm. The count is reset when an Alarmreturns to normal.

Silence Methodcan be used to silence an instance of an Alarm. It is defined in 5.8.5.

Suppress Methodcan be used to suppress an instance of an Alarm. Most Alarmsuppression occurs via advanced alarming, but this method allows additional access to suppress a particular Alarminstance. Additional details are provided in the definition in 5.8.6.

Unsuppress Methodcan be used to remove an instance of an Alarmfrom SuppressedState. Additional details are provided in the definition in 5.8.7.

PlaceInService Methodcan be used to remove an instance of an Alarmfrom OutOfServiceState. It is defined in 5.8.9.

RemoveFromService Methodcan be used to place an instance of an Alarmin OutOfServiceState. It is defined in 5.8.8.

Reset Methodis used to clear a latched Alarm. It is defined in 5.8.4. If this Objectis provided the LatchedState Objectshall also be provided.

More details about the AlarmModel and the various states can be found in Sub clause 4.8. and in Annex E.