Errata exists for this version of the document.
The ShelvedStateMachineType defines a sub-state machine that represents an advanced Alarm filtering model. This model is illustrated in Figure 15.
The state model supports two types of Shelving: OneShotShelving and TimedShelving. They are illustrated in Figure 14. 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. 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 One Shot Shelving 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.
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.
All but two transitions are caused by Method calls as illustrated in Figure 14. 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.
Figure 14 – 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 15 and formally defined in Table 51.
Figure 15 – ShelvedStateMachineType model
Table 51 –ShelvedStateMachineType definition
Attribute |
Value |
|||||
BrowseName |
ShelvedStateMachineType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the FiniteStateMachineType defined in OPC 10000-5 |
|
|||||
|
|
|
|
|
|
|
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.10.3 |
Mandatory |
||
HasComponent |
Method |
OneShotShelve |
Defined in Clause 5.8.10.4 |
Mandatory |
||
HasComponent |
Method |
Unshelve |
Defined in Clause 5.8.10.2 |
Mandatory |
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 a constant set to the maximum Duration except if a MaxTimeShelved Property is provided.
This FiniteStateMachine supports three Active states; Unshelved, TimedShelved and OneShotShelved. It also supports six transitions. The states and transitions are described in Table 52. This FiniteStateMachine also supports three Methods; TimedShelve, OneShotShelve and Unshelve.
Table 52 – ShelvedStateMachineType transitions
BrowseName |
References |
BrowseName |
TypeDefinition |
|
|||
Transitions |
|||
UnshelvedToTimedShelved |
FromState |
Unshelved |
StateType |
|
ToState |
TimedShelved |
StateType |
|
HasEffect |
AlarmConditionType |
|
|
HasCause |
TimedShelve |
|
UnshelvedToOneShotShelved |
FromState |
Unshelved |
StateType |
|
ToState |
OneShotShelved |
StateType |
|
HasEffect |
AlarmConditionType |
|
|
HasCause |
OneShotShelve |
|
TimedShelvedToUnshelved |
FromState |
TimedShelved |
StateType |
|
ToState |
Unshelved |
StateType |
|
HasEffect |
AlarmConditionType |
|
TimedShelvedToOneShotShelved |
FromState |
TimedShelved |
StateType |
|
ToState |
OneShotShelved |
StateType |
|
HasEffect |
AlarmConditionType |
|
|
HasCause |
OneShotShelving |
|
OneShotShelvedToUnshelved |
FromState |
OneShotShelved |
StateType |
|
ToState |
Unshelved |
StateType |
|
HasEffect |
AlarmConditionType |
|
OneShotShelvedToTimedShelved |
FromState |
OneShotShelved |
StateType |
|
ToState |
TimedShelved |
StateType |
|
HasEffect |
AlarmConditionType |
|
|
HasCause |
TimedShelve |