The types defined in this specification are illustrated in Figure 3. The MyFiniteStateMachineTypeis a minimal example which illustrates how these Typescan be used to describe a StateMachine. See OPC 10000-9and OPC 10000-10for additional examples of StateMachines.

image005.png

Figure 3– The StateMachine Information Model

The StateMachineTypeis the base ObjectType for all StateMachineTypes. It defines a single Variablewhich represents the current state of the machine. An instance of this ObjectTypeshall generate an Eventwhenever a significant state change occurs. The Serverdecides which state changes are significant. Serversshall use the GeneratesEvent ReferenceTypeto indicate which Event(s)could be produced by the StateMachine.

Subtypes may add Methodswhich affect the state of the machine. The Executable Attributeis used to indicate whether the Methodis valid given the current state of the machine. The generation of AuditEventsfor Methodsis defined in OPC 10000-4. A StateMachinemay not be active. In this case, the CurrentStateand LastTransition Variablesshall have a status equal to Bad_StateNotActive(see Table 17).

Subtypes may add components which are instances of StateMachineTypes. These components are considered to be sub-states of the StateMachine. SubStateMachinesare only active when the parent machine is in an appropriate state.

Eventsproduced by SubStateMachinesmay be suppressed by the parent machine. In some cases, the parent machine will produce a single Eventthat reflects changes in multiple SubStateMachines.

FiniteStateMachineTypeis a subtype of StateMachineTypethat provides a mechanism to explicitly define the states and transitions. A Servershould use this mechanism if it knows what the possible states are and the state machine is not trivial. The FiniteStateMachineType is defined in clause 4.4.5.

The StateMachineTypeis formally defined in Table 1.

Table 1– StateMachineType definition

Attribute

Value

BrowseName

StateMachineType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in OPC 10000-5

Note that a Referenceto this subtype is not shown in the definition of the BaseObjectType.

HasSubtype

ObjectType

FiniteStateMachineType

Defined in 4.4.5

HasComponent

Variable

CurrentState

LocalizedText

StateVariableType

Mandatory

HasComponent

Variable

LastTransition

LocalizedText

TransitionVariableType

Optional

Conformance Units

Base Info State Machine Instance

CurrentState stores the current state of an instance of the StateMachineType. CurrentStateprovides a human readable name for the current state which may not be suitable for use in application control logic. Applications should use the Id Propertyof CurrentState if they need a unique identifier for the state.

LastTransition stores the last transition which occurred in an instance of the StateMachineType. LastTransition provides a human readable name for the last transition which may not be suitable for use in application control logic. Applications should use the Id Propertyof LastTransition if they need a unique identifier for the transition.

The StateVariableTypeis the base VariableTypefor Variablesthat store the current state of a StateMachineas a human readable name.

The StateVariableTypeis formally defined in Table 2.

Table 2– StateVariableType definition

Attribute

Value

BrowseName

StateVariableType

DataType

LocalizedText

ValueRank

−1 (−1 = Scalar)

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseDataVariableTypedefined in OPC 10000-5

Note that a Referenceto this subtype is not shown in the definition of the BaseDataVariableType.

HasSubtype

VariableType

FiniteStateVariableType

Defined in 4.4.6

HasProperty

Variable

Id

BaseDataType

PropertyType

Mandatory

HasProperty

Variable

Name

QualifiedName

PropertyType

Optional

HasProperty

Variable

Number

UInt32

PropertyType

Optional

HasProperty

Variable

EffectiveDisplayName

LocalizedText

PropertyType

Optional

Conformance Units

Base Info State Machine Instance

Id is a name which uniquely identifies the current state within the StateMachineType. A subtype may restrict the DataType.

Nameis a QualifiedNamewhich uniquely identifies the current state within the StateMachineType.

Number is an integer which uniquely identifies the current state within the StateMachineType.

EffectiveDisplayName contains a human readable name for the current state of the state machine after taking the state of any SubStateMachinesin account. There is no rule specified for which state or sub-state should be used. It is up to the Serverand will depend on the semantics of the StateMachineType.

StateMachinesproduce Eventswhich may include the current state of a StateMachine. In that case Serversshall provide all the optional Propertiesof the StateVariableTypein the Event, even if they are not provided on the instances in the AddressSpace.

The TransitionVariableTypeis the base VariableTypefor Variablesthat store a Transitionthat occurred within a StateMachineas a human readable name.

The SourceTimestampfor the value specifies when the Transitionoccurred. This value may also be exposed with the TransitionTime Property.

The TransitionVariableTypeis formally defined in Table 3.

Table 3– TransitionVariableType definition

Attribute

Value

BrowseName

TransitionVariableType

DataType

LocalizedText

ValueRank

−1 (−1 = Scalar)

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseDataVariableTypedefined in OPC 10000-5

Note that a Referenceto this subtype is not shown in the definition of the BaseDataVariableType.

HasSubtype

VariableType

FiniteTransitionVariableType

Defined in 4.4.7

HasProperty

Variable

Id

BaseDataType

PropertyType

Mandatory

HasProperty

Variable

Name

QualifiedName

PropertyType

Optional

HasProperty

Variable

Number

UInt32

PropertyType

Optional

HasProperty

Variable

TransitionTime

UtcTime

PropertyType

Optional

HasProperty

Variable

EffectiveTransitionTime

UtcTime

PropertyType

Optional

Conformance Units

Base Info State Machine Instance

Id is a name which uniquely identifies a Transitionwithin the StateMachineType. A subtype may restrict the DataType.

Nameis a QualifiedNamewhich uniquely identifies a transition within the StateMachineType.

Number is an integer which uniquely identifies a transition within the StateMachineType.

TransitionTimespecifies when the transition occurred.

EffectiveTransitionTime specifies the time when the current state or one of its substates was entered. If, for example, a StateA is active and – while active – switches several times between its substates SubA and SubB, then the TransitionTimestays at the point in time where StateA became active whereas the EffectiveTransitionTimechanges with each change of a substate.

The FiniteStateMachineTypeis the base ObjectTypefor StateMachinesthat explicitly define the possible Statesand Transitions. Once the Statesand Transitionsare defined subtypes shall not add new States andTransitions(see 4.4.18). Subtypesmay add causes or effects.

The Statesof the machine are represented with instances of the StateType ObjectType.Each Stateshall have a BrowseNamewhich is unique within the StateMachineand shall have a StateNumberwhich shall also be unique across all Statesdefined in the StateMachine. Be aware that Statesin a SubStateMachinemay have the same StateNumberor BrowseNameas Statesin the parent machine. A concrete subtype of FiniteStateMachineType shall define at least one State.

A StateMachinemay define one Statewhich is an instance of the InitialStateType. This Stateis the Statethat the machine goes into when it is activated.

The Transitionsthat may occur are represented with instances of the TransitionType. Each Transitionshall have a BrowseNamewhich is unique within the StateMachineand may have a TransitionNumberwhich shall also be unique across all Transitionsdefined in the StateMachine.

The initial Statefor a Transitionis a StateType Objectwhich is the target of a FromState Reference. The final Statefor a Transitionis a StateType Objectwhich is the target of a ToState Reference. The FromStateand ToState Referencesshall always be specified.

A Transitionmay produce an Event. The Eventis indicated by a HasEffect Referenceto a subtype of BaseEventType. The StateMachineTypeshall have GeneratesEvent Referencesto the targets of a HasEffect Referencefor each of its Transitions.

A FiniteStateMachineTypemay define Methodsthat cause a transition to occur. These Methodsare targets of HasCause Referencesfor each of the Transitionsthat may be triggered by the Method. The Executable Attributefor a Methodis used to indicate whether the current Stateof the machine allows the Methodto be called.

A FiniteStateMachineTypemay have sub-state-machines which are represented as instances of StateMachineType ObjectTypes. Each Stateshall have a HasSubStateMachine Referenceto the StateMachineType Objectwhich represents the child States. The SubStateMachineis not active if the parent Stateis not active. In this case the CurrentStateand LastTransition Variablesof the SubStateMachineshall have a status equal to Bad_StateNotActive(see Table 17).

The FiniteStateMachineTypeis formally defined in Table 4.

Table 4– FiniteStateMachineType definition

Attribute

Value

BrowseName

FiniteStateMachineType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the StateMachineType defined in 4.4.2

HasComponent

Variable

CurrentState

LocalizedText

FiniteStateVariableType

Mandatory

HasComponent

Variable

LastTransition

LocalizedText

FiniteTransitionVariableType

Optional

HasComponent

Variable

AvailableStates

NodeId[]

BaseDataVariableType

Optional

HasComponent

Variable

AvailableTransitions

NodeId[]

BaseDataVariableType

Optional

Conformance Units

Base Info Finite State Machine Instance

Base Info Available States and Transitions

In some Serversan instance of a StateMachine may restrict the Statesand / or Transitionsthat are available. These restrictions may result from the internal design of the instance. For example, the StateMachinefor an instrument’s limit alarm which only supports Hi and HiHi and can not produce a Low or LowLow. An instance of a StateMachine may also dynamically change the available Statesand/or Transitionsbased on its operating mode. For example, when a piece of equipment is in a maintenance mode the available Statesmay be limited to some subset of the Statesavailable during normal operation.

The AvailableStates Variableprovides a NodeIdlist of the Statesthat are present in the StateMachine instance. The list may change during operation of the Server.

The AvailableTransitions Variableprovides a NodeIdlist of the Transitionsthat are present in the StateMachine instance. The list may change during operation of the Server.

An example of a FiniteStateMachine type is shown in Figure 4.

image006.png

Figure 4– Example of a FiniteStateMachine type

An example instance of the type is shown in Figure 5. In this example the States{7,8,9} and the Transitions{G,H,I,J} are not available in this instance.

image007.png

Figure 5– Example of a FiniteStateMachine instance

The FiniteStateVariableTypeis a subtype of StateVariableTypeand is used to store the current state of a FiniteStateMachineas a human readable name.

The FiniteStateVariableTypeis formally defined in Table 5.

Table 5– FiniteStateVariableType definition

Attribute

Value

BrowseName

FiniteStateVariableType

DataType

LocalizedText

ValueRank

−1 (−1 = Scalar)

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the StateVariableTypedefined 4.4.3

HasProperty

Variable

Id

NodeId

PropertyType

Mandatory

Conformance Units

Base Info Finite State Machine Instance

Id is inherited from the StateVariableTypeand overridden to reflect the required DataType. This value shall be the NodeIdof one of the State Objects of the FiniteStateMachineType. If the FiniteStateMachineis subtyped, it shall be the NodeIdof the Statedefined on the supertype, i.e., where the Stateis defined the first time in the type hierarchy.

The Name Property is inherited from StateVariableType.Its Valueshall be the BrowseNameof one of the State Objectsof the FiniteStateMachineType.

The Number Property isinherited from StateVariableType.Its Valueshall be the StateNumberfor one of the State Objectsof the FiniteStateMachineType.

The FiniteTransitionVariableTypeis a subtype of TransitionVariableTypeand is used to store a Transitionthat occurred within a FiniteStateMachineas a human readable name.

The FiniteTransitionVariableTypeis formally defined in Table 6.

Table 6– FiniteTransitionVariableType definition

Attribute

Value

BrowseName

FiniteTransitionVariableType

DataType

LocalizedText

ValueRank

−1 (−1 = Scalar)

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the TransitionVariableTypedefined in 4.4.4

Note that a Referenceto this subtype is not shown in the definition of the BaseDataVariableType.

HasProperty

Variable

Id

NodeId

PropertyType

Mandatory

Conformance Units

Base Info Finite State Machine Instance

Id is inherited from the TransitionVariableTypeand overridden to reflect the required DataType. This value shall be the NodeIdof one of the Transition Objectsof the FiniteStateMachineType.If the FiniteStateMachineis subtyped, it shall be the NodeIdof the Transitiondefined on the supertype, i.e., where the Transitionis defined the first time in the type hierarchy.

The Name Propertyis inherited from the TransitionVariableType. ItsValueshall be the BrowseNameof one of the Transition Objectsof the FiniteStateMachineType.

The Number Property isinherited from the TransitionVariableType. Its Valueshall be the TransitionNumberfor one of the Transition Objectsof the FiniteStateMachineType.

Statesof a FiniteStateMachineare represented as Objectsof the StateType.Each Objectof the StateTypeor one of its subtypes shall be referenced from the ObjectType FiniteStateMachineTypeor one of its subtypes using a HasComponent Referenceor a subtype of HasComponentand shall not have a ModellingRuleas they are not applied on the instances.

The StateTypeis formally defined in Table 7.

Table 7– StateType definition

Attribute

Value

BrowseName

StateType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in OPC 10000-5

Note that a Referenceto this subtype is not shown in the definition of the BaseObjectType.

HasProperty

Variable

StateNumber

UInt32

PropertyType

Mandatory

HasSubtype

ObjectType

InitialStateType

Defined in 4.4.9

HasSubtype

ObjectType

ChoiceStateType

Defined in 4.6.2

Conformance Units

Base Info Finite State Machine Instance

The InitialStateTypeis a subtype of the StateTypeand is formally defined in Table 8. An Objectof the InitialStateTyperepresents the Statethat a FiniteStateMachineenters when it is activated. Each FiniteStateMachinecan have at most one Stateof type InitialStateType, but a FiniteStateMachinedoes not have to have a Stateof this type.

A SubStateMachinegoes into its initial state whenever the parent state is entered. However, a state machine may define a transition that goes directly to a state of the SubStateMachine. In this case the SubStateMachinegoes into that Stateinstead of the initial State. The two scenarios are illustrated in Figure 6. The transition from "State5" to "State6" causes the SubStateMachineto go into the initial State("State7"), however, the transition from "State4" to "State8" causes the parent machine to go to "State6" and the SubStateMachinewill go to "State8".

image008.png

Figure 6– Example of an initial State in a sub-machine

If no initial state for a SubStateMachineexists and the Statehaving the SubStateMachineis entered directly, then the Stateof the SubStateMachineis server-specific.

Table 8– InitialStateType definition

Attribute

Value

BrowseName

InitialStateType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the StateTypedefined in 4.4.8

Conformance Units

Base Info Finite State Machine Instance

Transitionsof a FiniteStateMachineare represented as Objectsof the ObjectType TransitionTypeformally defined in Table 9. Each Objectof the TransitionTypeor one of its subtypes shall be referenced from the ObjectType FiniteStateMachineTypeor one of its subtypes using a HasComponent Referenceor a subtype of HasComponentand shall not have a ModellingRuleas they are not applied on the instances.

Each valid Transitionshall have exactly one FromState Referenceand exactly one ToState Reference, each pointing to an Objectof the ObjectType StateType.

Each Transitioncan have one or more HasCause Referencespointing to the cause that triggers the Transition.

Each Transitioncan have one or more HasEffect Referencespointing to the effects that occur when the Transitionwas triggered.

Table 9– TransitionType definition

Attribute

Value

BrowseName

TransitionType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in OPC 10000-5

Note that a Referenceto this subtype is not shown in the definition of the BaseObjectType.

HasProperty

Variable

TransitionNumber

UInt32

PropertyType

Mandatory

Conformance Units

Base Info Finite State Machine Instance

The FromState ReferenceTypeis a concrete ReferenceTypeand can be used directly. It is a subtype of NonHierarchicalReferences.

The semantic of this ReferenceTypeis to point from a Transitionto the starting Statethe Transitionconnects.

The SourceNodeof this ReferenceTypeshall be an Object of the ObjectType TransitionTypeor one of its subtypes. The TargetNodeof this ReferenceTypeshall be an Objectof the ObjectType StateTypeor one of its subtypes.

The representation of the FromState ReferenceTypein the AddressSpaceis specified in Table 10.

Table 10– FromState ReferenceType

Attributes

Value

BrowseName

FromState

InverseName

ToTransition

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Conformance Units

Base Info Finite State Machine Instance

The ToState ReferenceTypeis a concrete ReferenceTypeand can be used directly. It is a subtype of NonHierarchicalReferences.

The semantic of this ReferenceTypeis to point from a Transitionto the ending Statethe Transitionconnects.

The SourceNodeof this ReferenceTypeshall be an Object of the ObjectType TransitionTypeor one of its subtypes. The TargetNodeof this ReferenceTypeshall be an Objectof the ObjectType StateTypeor one of its subtypes.

Referencesof this ReferenceTypemay be only exposed uni-directional. Sometimes this is required, for example, if a Transitionpoints to a Stateof a sub-machine.

The representation of the ToState ReferenceTypein the AddressSpaceis specified in Table 11.

Table 11– ToState ReferenceType

Attributes

Value

BrowseName

ToState

InverseName

FromTransition

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Conformance Units

Base Info Finite State Machine Instance

The HasCause ReferenceTypeis a concrete ReferenceTypeand can be used directly. It is a subtype of NonHierarchicalReferences.

The semantic of this ReferenceTypeis to point from a Transitionto something that causes the Transition. In this specification we only define Methodsas Causes. However, the ReferenceTypeis not restricted to point to Methods. The referenced Methods can, but do not have to point to a Method of the StateMachineType. For example, it is allowed to point to a server-wide restart Method leading the state machine to go into its initial state.

The SourceNodeof this ReferenceTypeshall be an Object of the ObjectType TransitionTypeor one of its subtypes. The TargetNodecan be of any NodeClass.

The representation of the HasCause ReferenceTypein the AddressSpaceis specified in Table 12.

Table 12– HasCause ReferenceType

Attributes

Value

BrowseName

HasCause

InverseName

MayBeCausedBy

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Conformance Units

Base Info Finite State Machine Instance

The HasEffect ReferenceTypeis a concrete ReferenceTypeand can be used directly. It is a subtype of NonHierarchicalReferences.

The semantic of this ReferenceTypeis to point from a Transitionto something that will be effected when the Transitionis triggered. In this specification we only define EventTypesas Effects. However, the ReferenceTypeis not restricted to point to EventTypes.

The SourceNodeof this ReferenceTypeshall be an Object of the ObjectType TransitionTypeor one of its subtypes. The TargetNodecan be of any NodeClass.

If the TargetNodeis an EventType, each time the Transitionis triggered (either by a Clientor internally in the Server) an Eventof that EventTypeor a subtype shall be generated.

The representation of the HasEffect ReferenceTypein the AddressSpaceis specified in Table 13.

Table 13– HasEffect ReferenceType

Attributes

Value

BrowseName

HasEffect

InverseName

MayBeEffectedBy

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Conformance Units

Base Info Finite State Machine Instance

The HasSubStateMachine ReferenceTypeis a concrete ReferenceTypeand can be used directly. It is a subtype of NonHierarchicalReferences.

The semantic of this ReferenceTypeis to point from a Stateto an instance of a StateMachineTypewhich represents the sub-states for the State.

The SourceNodeof this ReferenceTypeshall be an Object of the ObjectType StateType. The TargetNodeshall be an Objectof the ObjectType StateMachineTypeor one of its subtypes. Each Objectcan be the TargetNodeof at most one HasSubStateMachine Reference.

The SourceNode(the state) and the TargetNode(the SubStateMachine) shall belong to the same StateMachine. Therefore, the SourceNodeshall be referenced from the ObjectType FiniteStateMachineTypeor one of its subtypes and the TargetNodeshall be referenced from the same ObjectType, both using a HasComponent Referenceor a subtype of HasComponent.

The representation of the HasSubStateMachine ReferenceTypein the AddressSpaceis specified in Table 14.

Table 14– HasSubStateMachine ReferenceType

Attributes

Value

BrowseName

HasSubStateMachine

InverseName

SubStateMachineOf

Symmetric

False

IsAbstract

False

References

NodeClass

BrowseName

Comment

Conformance Units

Base Info Finite State Machine Instance

TheTransitionEventTypeis a subtype of the BaseEventType. It can be used to generate an Eventidentifying that a Transitionof a StateMachinewas triggered. It is formally defined in Table 15.

Table 15– TransitionEventType

Attribute

Value

BrowseName

TransitionEventType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the base BaseEventTypedefined in OPC 10000-5

HasComponent

Variable

Transition

LocalizedText

TransitionVariableType

Mandatory

HasComponent

Variable

FromState

LocalizedText

StateVariableType

Mandatory

HasComponent

Variable

ToState

LocalizedText

StateVariableType

Mandatory

Conformance Units

Base Info Finite State Machine Instance

The TransitionEventTypeinherits the Propertiesof the BaseEventType.

The inherited Property SourceNodeshall be filled with the NodeIdof the StateMachineinstance where the Transitionoccurs. If the Transitionoccurs in a SubStateMachine, then the NodeIdof the SubStateMachinehas to be used. If the Transition occurs between a StateMachineand a SubStateMachine, then the NodeIdof theStateMachinehas to be used, independent of the direction of the Transition.

Transitionidentifies the Transitionthat triggered the Event.

FromStateidentifies the Statebefore the Transition.

ToStateidentifies the Stateafter the Transition.

TheAuditUpdateStateEventTypeis a subtype of the AuditUpdateMethodEventType. It can be used to generate an Eventidentifying that a Transitionof a StateMachinewas triggered. It is formally defined in Table 16.

Table 16– AuditUpdateStateEventType

Attribute

Value

BrowseName

AuditUpdateStateEventType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AuditUpdateMethodEventTypedefined in OPC 10000-5

HasProperty

Variable

OldStateId

BaseDataType

PropertyType

Mandatory

HasProperty

Variable

NewStateId

BaseDataType

PropertyType

Mandatory

Conformance Units

Auditing UpdateStates

The AuditUpdateStateEventTypeinherits the Propertiesof the AuditUpdateMethodEventType.

The inherited Property SourceNodeshall be filled with the NodeIdof the StateMachineinstance where the State changed. If the State changed in a SubStateMachine, then the NodeIdof the SubStateMachinehas to be used.

The SourceNamefor Eventsof this type should be the effect that generated the event (e.g. the name of a Method). If the effect was generated by a Methodcall, the SourceNameshould be the name of the Methodprefixed with "Method/".

OldStateIdreflects the Id of the state prior the change.

NewStateIdreflects the new Id of the state after the change.

In general, all rules on subtyping apply for StateMachinetypes as well. Some additional rules apply for StateMachinetypes.

Statesand Transitionsare not instantiated, this information is only provided on the ObjectType. They have no ModellingRule, and thus, also the inheritance of Statesand Transitionsis not defined. Therefore, the following rules apply for subtyping StateMachines. Each Stateand Transitiondefined on the supertype shall be available on the subtype as well. That is, for each Statedefined on the supertype another Nodeof the same ObjectTypehaving the same BrowseNameand the same StateNumbershall be defined on the subtype. For each Transitiondefined on the supertype another Nodeof the same ObjectTypehaving the same BrowseNameand the same TransitionNumbershall be defined on the subtype. All references defining the StateMachine(HasCause, HasEffect, FromState, ToState, HasSubStateMachine, HasGuard) shall be replicated in the subtype as well. If InstanceDeclarationsare referenced (e.g., Methodsused to trigger Transitions) either the InstanceDeclarationof the supertype is referenced or the InstanceDeclarationis overridden, and in the latter case the overridden InstanceDeclarationof the subtype shall be referenced.

If a StateMachine type is not abstract, subtypes of it shall not change the behaviour of it. That means, that in this case a subtype shall not add Statesand it shall not add Transitionsbetween its States. However, a subtype may add SubStateMachines, it may add Transitionsfrom the Statesto the Statesof the SubStateMachine, and it may add Causesand Effectsto a Transition. In addition, a subtype of a StateMachinetype shall not remove Statesor Transitions.

In Table 17specific StatusCodesused for StateMachinesare defined.

Table 17– Specific StatusCodes for StateMachines

Symbolic Id

Description

Bad_StateNotActive

The accessed state is not active.