The ShelvedStateMachineTypedefines 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: OneShotShelvingand TimedShelving. They are illustrated in Figure 14. The illustration includes the allowed transitions between the various sub-states. Shelvingis an Operatorinitiated activity.
In OneShotShelving, a user requests that an Alarmbe Shelved for its current Activestate. This type of Shelvingis typically used when an Alarmis continually occurring on a boundary (i.e. a Conditionis jumping between High Alarmand HighHigh Alarm, always in the Activestate). The One Shot Shelvingwill automatically clear when an Alarmreturns to an inactive state. Another use for this type of Shelvingis for a plant area that is shutdown i.e. a long running Alarmsuch as a low level Alarmfor a tank that is not in use. When the tank starts operation again the Shelvingstate will automatically clear.
In TimedShelving, a user specifies that an Alarmbe shelved for a fixed time period. This type of Shelvingis quite often used to block nuisance Alarms. For example, an Alarmthat occurs more than 10 times in a minute may get shelved for a few minutes.
In all states, the Unshelvecan be called to cause a transition to the Unshelve state; this includes Un-shelvinganAlarmthat is in the TimedShelvestate before the time has expired and the OneShotShelvestate without a transition to an inactive state.
All but two transitions are caused by Methodcalls 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 Conditiongoes to an inactive state.
Figure 14– Shelve state transitions
The ShelvedStateMachineTypeincludes a hierarchy of sub-states. It supports all transitions between Unshelved, OneShotShelvedand TimedShelved.
The state machine is illustrated in Figure 15and 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 |
UnshelveTimespecifies the remaining time in milliseconds until the Alarmautomatically transitions into the Un-shelvedstate. For the TimedShelvedstate this time is initialised with the ShelvingTimeargument of the TimedShelve Methodcall. For the OneShotShelvedstate the UnshelveTimewill be a constant set to the maximum Duration except if a MaxTimeShelvedProperty is provided.
This FiniteStateMachinesupports three Activestates; Unshelved, TimedShelvedand OneShotShelved. It also supports six transitions. The states and transitions are described in Table 52. This FiniteStateMachinealso supports three Methods; TimedShelve, OneShotShelveand 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 |
TheUnshelve Methodsets the instance of AlarmConditionTypeto the Unshelvedstate. Normally, the MethodIdfound in the Shelvingchild of the Conditioninstance and the NodeIdof the Shelvingobject as the ObjectIdare passed to the Call Service. However, some Serversdo not expose Conditioninstances in the AddressSpace. Therefore, all Serversshall also allow Clientsto call the Unshelve Methodby specifying ConditionIdas the ObjectId.The Methodcannot be called with an ObjectIdof the ShelvedStateMachineType Node.
Signature
Unshelve( );
Method Result Codes in Table 53(defined in Call Service)
Table 53– Unshelve result codes
Result Code |
Description |
Bad_ConditionNotShelved |
See Table 103for the description of this result code. |
Table 54specifies the AddressSpacerepresentation for the Unshelve Method.
Table 54– Unshelve Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
Unshelve |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
TheTimedShelve Methodsets the instance of AlarmConditionTypeto the TimedShelvedstate (parameters are defined in Table 55and result codes are described in Table 56). Normally, the MethodIdfound in the Shelvingchild of the Conditioninstance and the NodeIdof the Shelvingobject as the ObjectIdare passed to the Call Service. However, some Serversdo not expose Conditioninstances in the AddressSpace. Therefore, all Serversshall also allow Clientsto call the TimedShelve Methodby specifying ConditionIdas the ObjectId.The Methodcannot be called with an ObjectIdof the ShelvedStateMachineType Node.
Signature
TimedShelve(
[in] Duration ShelvingTime
);
Table 55– TimedShelve parameters
Argument |
Description |
ShelvingTime |
Specifies a fixed time for which the Alarmis to be shelved. The Servermay refuse the provided duration. If a MaxTimeShelved Property exist on the Alarmthan the Shelvingtime shall be less than or equal to the value of this Property. |
Method Result Codes (defined in Call Service)
Table 56– TimedShelve result codes
Result Code |
Description |
Bad_ConditionAlreadyShelved |
See Table 103for the description of this result code. The Alarmis already in TimedShelvedstate and the system does not allow a reset of the shelved timer. |
Bad_ShelvingTimeOutOfRange |
See Table 103for the description of this result code. |
Comments
Shelvingfor some time is quite often used to block nuisance Alarms. For example, an Alarmthat occurs more than 10 times in a minute may get shelved for a few minutes.
In some systems the length of time covered by this duration may be limited and the Servermay generate an error refusing the provided duration. This limit may be exposed as the MaxTimeShelved Property.
Table 57specifies the AddressSpacerepresentation for the TimedShelve Method.
Table 57– TimedShelve Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
TimedShelve |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
TheOneShotShelve Methodsets the instance of AlarmConditionTypeto the OneShotShelvedstate. Normally, the MethodIdfound in the Shelvingchild of the Conditioninstance and the NodeIdof the Shelvingobject as the ObjectIdare passed to the Call Service. However, some Serversdo not expose Conditioninstances in the AddressSpace. Therefore, all Serversshall also allow Clientsto call the OneShotShelve Methodby specifying ConditionIdas the ObjectId.The Methodcannot be called with an ObjectIdof the ShelvedStateMachineType Node.
Signature
OneShotShelve( );
Method Result Codes are defined in Table 58(status code field is defined in CallService)
Table 58– OneShotShelve result codes
Result Code |
Description |
Bad_ConditionAlreadyShelved |
See Table 103for the description of this result code. The Alarmis already in OneShotShelvedstate. |
Table 59specifies the AddressSpacerepresentation for the OneShotShelve Method.
Table 59– OneShotShelve Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
OneShotShelve |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |