The ShelvedStateMachineType defines a sub-state machine that represents an advanced Alarm filtering model. This model is illustrated in Figure 17.

The state model supports two types of Shelving: OneShotShelving and TimedShelving. They are illustrated in Figure 16. The illustration includes the allowed transitions between the various sub-states. Shelving is an Operator initiated activity.

In OneShotShelving, a user requests that an Alarm be Shelved for its current Active state or if not Active its next Active state. This type of Shelving is typically used when an Alarm is continually occurring on a boundary (i.e. a Condition is jumping between High Alarm and HighHigh Alarm, always in the Active state). The OneShotShelving will automatically clear when an Alarm returns to an inactive state. Another use for this type of Shelving is for a plant area that is shutdown i.e. a long running Alarm such as a low level Alarm for a tank that is not in use. When the tank starts operation again the Shelving state will automatically clear.

In TimedShelving, a user specifies that an Alarm be shelved for a fixed time period. This type of Shelving is quite often used to block nuisance Alarms. For example, an Alarm that occurs more than 10 times in a minute may get shelved for a few minutes. The Alarm is shelved for the time period, no matter how many transitions the Alarm has between Active state and Inactive state.

In all states, the Unshelve can be called to cause a transition to the Unshelve state; this includes Un-shelving an Alarm that is in the TimedShelve state before the time has expired and the OneShotShelve state without a transition to an inactive state. In the event of a restart of an AlarmManager, the AlarmManager should recover the ShelvedStateMachine. If the system cannot determine if the state of the ShelvedStateMachine for a given alarm instance, the ShelvedStateMachine shall be set to Unshelved.

All but two transitions are caused by Method calls as illustrated in Figure 16. The “Time Expired” transition is simply a system generated transition that occurs when the time value defined as part of the “Timed Shelved Call” has expired. The “Any Transition Occurs” transition is also a system generated transition; this transition is generated when the Condition goes to an inactive state.

image019.png

Figure 16 – Shelve state transitions

The ShelvedStateMachineType includes a hierarchy of sub-states. It supports all transitions between Unshelved, OneShotShelved and TimedShelved.

The state machine is illustrated in Figure 17 and formally defined in Table 73.

image020.png

Figure 17 – ShelvedStateMachineType model

Table 73 – ShelvedStateMachineType definition

Attribute

Value

BrowseName

ShelvedStateMachineType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the FiniteStateMachineType defined in 10000-16

HasProperty

Variable

UnshelveTime

Duration

PropertyType

Mandatory

HasComponent

Object

Unshelved

StateType

HasComponent

Object

TimedShelved

StateType

HasComponent

Object

OneShotShelved

StateType

HasComponent

Object

UnshelvedToTimedShelved

TransitionType

HasComponent

Object

TimedShelvedToUnshelved

TransitionType

HasComponent

Object

TimedShelvedToOneShotShelved

TransitionType

HasComponent

Object

UnshelvedToOneShotShelved

TransitionType

HasComponent

Object

OneShotShelvedToUnshelved

TransitionType

HasComponent

Object

OneShotShelvedToTimedShelved

TransitionType

HasComponent

Method

TimedShelve

Defined in Clause 5.8.17.4

Mandatory

HasComponent

Method

OneShotShelve

Defined in Clause 5.8.17.6

Mandatory

HasComponent

Method

Unshelve

Defined in Clause 5.8.17.2

Mandatory

HasComponent

Method

TimedShelve2

Defined in Clause 5.8.17.5

Optional

HasComponent

Method

OneShotShelve2

Defined in Clause 5.8.17.7

Optional

HasComponent

Method

Unshelve2

Defined in Clause 5.8.17.3

Optional

ConformanceUnits

A & C Shelving

UnshelveTime specifies the remaining time in milliseconds until the Alarm automatically transitions into the Un-shelved state. For the TimedShelved state this time is initialised with the ShelvingTime argument of the TimedShelve Method call. For the OneShotShelved state the UnshelveTime will be initialized to the Value of MaxTimeShelved Property if it is present otherwise it is initialized to the maximum Duration.

This FiniteStateMachine supports three Active states; Unshelved, TimedShelved and OneShotShelved. It also supports six transitions. The states and transitions are described in Table 74. This FiniteStateMachine also supports three Methods; TimedShelve, OneShotShelve and Unshelve.

Table 74 – ShelvedStateMachineType Additional References

SourceBrowsePath

References

IsForward

TargetBrowsePath

UnshelvedToTimedShelved

FromState

True

Unshelved

ToState

True

TimedShelved

HasEffect

True

AlarmConditionType

HasCause

True

TimedShelve

HasCause

True

TimedShelve2

UnshelvedToOneShotShelved

FromState

True

Unshelved

ToState

True

OneShotShelved

HasEffect

True

AlarmConditionType

HasCause

True

OneShotShelve

HasCause

True

OneShotShelve2

TimedShelvedToUnshelved

FromState

True

TimedShelved

ToState

True

Unshelved

HasEffect

True

AlarmConditionType

TimedShelvedToOneShotShelved

FromState

True

TimedShelved

ToState

True

OneShotShelved

HasEffect

True

AlarmConditionType

HasCause

True

OneShotShelve

HasCause

True

OneShotShelve2

OneShotShelvedToUnshelved

FromState

True

OneShotShelved

ToState

True

Unshelved

HasEffect

True

AlarmConditionType

OneShotShelvedToTimedShelved

FromState

True

OneShotShelved

ToState

True

TimedShelved

HasEffect

True

AlarmConditionType

HasCause

True

TimedShelve

HasCause

True

TimedShelve2

The component Variables of the ShelvedStateMachineType have additional Attributes defined in Table 75.

Table 75 ShelvedStateMachineType Attribute values for child Nodes

BrowsePath

Value Attribute

Unshelved

0:StateNumber

1

TimedShelved

0:StateNumber

2

OneShotShelved

0:StateNumber

3

UnshelvedToTimedShelved

0:TransitionNumber

12

TimedShelvedToUnshelved

0:TransitionNumber

21

TimedShelvedToOneShotShelved

0:TransitionNumber

23

UnshelvedToOneShotShelved

0:TransitionNumber

13

OneShotShelvedToUnshelved

0:TransitionNumber

31

OneShotShelvedToTimedShelved

0:TransitionNumber

32