Errata exists for this version of the document.
This clause describes the state machine and the base Alarm Type behaviour for Alarm ConditionTypes with multiple mutually exclusive limits.
The ExclusiveLimitStateMachineType defines the state machine used by AlarmConditionTypes that handle multiple mutually exclusive limits. It is illustrated in Figure 17.
Figure 17 – ExclusiveLimitStateMachineType
It is created by extending the FiniteStateMachineType. It is formally defined in Table 61 and the state transitions are described in Table 62.
Table 61 – ExclusiveLimitStateMachineType definition
Attribute |
Value |
||||
BrowseName |
ExclusiveLimitStateMachineType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the FiniteStateMachineType |
|||||
HasComponent |
Object |
HighHigh |
|
StateType |
|
HasComponent |
Object |
High |
|
StateType |
|
HasComponent |
Object |
Low |
|
StateType |
|
HasComponent |
Object |
LowLow |
|
StateType |
|
HasComponent |
Object |
LowToLowLow |
|
TransitionType |
|
HasComponent |
Object |
LowLowToLow |
|
TransitionType |
|
HasComponent |
Object |
HighToHighHigh |
|
TransitionType |
|
HasComponent |
Object |
HighHighToHigh |
|
TransitionType |
|
Table 62 – ExclusiveLimitStateMachineType transitions
BrowseName |
References |
BrowseName |
TypeDefinition |
|
|||
Transitions |
|||
HighHighToHigh |
FromState |
HighHigh |
StateType |
|
ToState |
High |
StateType |
|
HasEffect |
AlarmConditionType |
|
HighToHighHigh |
FromState |
High |
StateType |
|
ToState |
HighHigh |
StateType |
|
HasEffect |
AlarmConditionType |
|
LowLowToLow |
FromState |
LowLow |
StateType |
|
ToState |
Low |
StateType |
|
HasEffect |
AlarmConditionType |
|
LowToLowLow |
FromState |
Low |
StateType |
|
ToState |
LowLow |
StateType |
|
HasEffect |
AlarmConditionType |
|
The ExclusiveLimitStateMachineType defines the sub state machine that represents the actual level of a multilevel Alarm when it is in the Active state. The sub state machine defined here includes High, Low, HighHigh and LowLow states. This model also includes in its transition state a series of transition to and from a parent state, the inactive state. This state machine as it is defined shall be used as a sub state machine for a state machine which has an Active state. This Active state could be part of a “level” Alarm or “deviation” Alarm or any other Alarm state machine.
The LowLow, Low, High, HighHigh are typical for many industries. Vendors can introduce sub-state models that include additional limits; they may also omit limits in an instance. If a model omits states or transitions in the StateMachine, it is recommended that they provide the optional Property AvailableStates and/or AvailableTransitions (see OPC 10000-5).
The ExclusiveLimitAlarmType is used to specify the common behaviour for Alarm Types with multiple mutually exclusive limits. The ExclusiveLimitAlarmType is illustrated in Figure 18.
Figure 18 – ExclusiveLimitAlarmType
The ExclusiveLimitAlarmType is formally defined in Table 63.
Table 63 – ExclusiveLimitAlarmType definition
Attribute |
Value |
||||
BrowseName |
ExclusiveLimitAlarmType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Subtype of the LimitAlarmType defined in clause 5.8.11. |
|||||
HasSubtype |
ObjectType |
ExclusiveLevelAlarmType |
Defined in Clause 5.8.14.3 |
||
HasSubtype |
ObjectType |
ExclusiveDeviationAlarmType |
Defined in Clause 5.8.15.3 |
||
HasSubtype |
ObjectType |
ExclusiveRateOfChangeAlarmType |
Defined in Clause 5.8.16.3 |
||
HasComponent |
Object |
LimitState |
|
Mandatory |
The LimitState is a sub state of the ActiveState and has an IsTrueSubStateOf reference to the ActiveState. The LimitState represents the actual limit that is violated in an instance of ExclusiveLimitAlarmType. When the ActiveState of the AlarmConditionType is inactive the LimitState shall not be available and shall return NULL on read. Any Events that subscribe for fields from the LimitState when the ActiveState is inactive shall return a NULL for these unavailable fields.