The TMCExecuteStateMachineType is modelled and inherits from the PackMLExecuteStateMachineType defined in OPC 30050 - UA for PackML (OMAC) v1.01, and provides additional transition information by means of guards implemented by the BooleanGuardVariableType.
The TMCExecuteStateMachineType is formally defined in the following table.
Table 123 – TMCExecuteStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
TMCExecuteStateMachineType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PackMLExecuteStateMachineType defined in OPC 30050, i.e. inheriting the Instance Declarations of that Node. |
|||||
0:HasComponent |
Object |
Complete |
|
0:StateType |
|
0:HasComponent |
Object |
CompleteSubstate |
|
StateMachineType |
O |
0:HasComponent |
Object |
CompleteToResetting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
CompleteToResettingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Completing |
|
0:StateType |
|
0:HasComponent |
Object |
CompletingToComplete |
|
0:TransitionType |
|
0:HasComponent |
Variable |
CompletingToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Execute |
|
0:StateType |
|
0:HasComponent |
Object |
ExecuteSubstate |
|
StateMachineType |
O |
0:HasComponent |
Object |
ExecuteToCompleting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToCompletingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
ExecuteToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
ExecuteToSuspending |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ExecuteToSuspendingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Held |
|
0:StateType |
|
0:HasComponent |
Object |
HeldToUnholding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
HeldToUnholdingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:Hold |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Holding |
|
0:StateType |
|
0:HasComponent |
Object |
HoldingToHeld |
|
0:TransitionType |
|
0:HasComponent |
Variable |
HoldingToHeldGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Idle |
|
0:StateType |
|
0:HasComponent |
Object |
IdleSubstate |
|
StateMachineType |
O |
0:HasComponent |
Object |
IdleToStarting |
|
0:TransitionType |
|
0:HasComponent |
Variable |
IdleToStartingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Variable |
LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
M, RO |
0:HasComponent |
Method |
3:Reset |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Resetting |
|
0:StateType |
|
0:HasComponent |
Object |
ResettingToIdle |
|
0:TransitionType |
|
0:HasComponent |
Variable |
ResettingToIdleGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Method |
3:Start |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Starting |
|
0:StateType |
|
0:HasComponent |
Object |
StartingToExecute |
|
0:TransitionType |
|
0:HasComponent |
Variable |
StartingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
0:HasComponent |
Object |
StartingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
StartingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:Suspend |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Suspended |
|
0:StateType |
|
0:HasComponent |
Object |
SuspendedToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendedToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
SuspendedToUnsuspending |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendedToUnsuspendingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
Suspending |
|
0:StateType |
|
0:HasComponent |
Object |
SuspendingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
SuspendingToSuspended |
|
0:TransitionType |
|
0:HasComponent |
Variable |
SuspendingToSuspendedGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:ToComplete |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Method |
3:Unhold |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Unholding |
|
0:StateType |
|
0:HasComponent |
Object |
UnholdingToExecute |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnholdingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
UnholdingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnholdingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Method |
3:Unsuspend |
See OPC 30050, PackMLExecuteStateMachineType. |
O |
|
0:HasComponent |
Object |
Unsuspending |
|
0:StateType |
|
0:HasComponent |
Object |
UnsuspendingToExecute |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnsuspendingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:HasComponent |
Object |
UnsuspendingToHolding |
|
0:TransitionType |
|
0:HasComponent |
Variable |
UnsuspendingToHoldingGuard |
0:LocalizedText |
BooleanGuardVariableType |
O, RO |
0:GeneratesEvent |
ObjectType |
TransitionEventType |
|
|
M |
Conformance Units |
|||||
TMC Advanced Equipment Module and Control Module Status |
The components of the TMCExecuteStateMachineType are described in OPC 30050 UA for PackML from which the PackMLExecuteStateMachineType is subtyped.
Each transition has a guard of type BooleanGuardVariableType which has one or more Condition components. Each Condition component is necessary to trigger the transition. When all the Condition components are True, the transition is triggered (sufficient).
The CompleteSubstate is a state machine that provides the states and transitions specific to the implementation and performed while the main state machine is in the Complete state. Similarly for Execute.
The component Variables of the TMCExecuteStateMachineType have additional Attributes defined in the following table.
Table 124 – TMCExecuteStateMachineType Attribute Values for Child Nodes
Source Path |
Value Attribute |
||
|
17 |
||
|
16 |
||
|
6 |
||
|
11 |
||
|
10 |
||
|
4 |
||
|
15 |
||
|
3 |
||
|
5 |
||
|
13 |
||
|
12 |
||
|
14 |
The components of the TMCExecuteStateMachineType have additional references which are defined in the following table.
Table 125 – TMCExecuteStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
Complete |
0:HasSubStateMachine |
True |
CompleteSubstate |
Execute |
0:HasSubStateMachine |
True |
ExecuteSubstate |
Idle |
0:HasSubStateMachine |
True |
IdleSubstate |
CompleteToResetting |
0:FromState |
True |
Complete |
0:HasGuard |
True |
CompleteToResettingGuard |
0:HasCause |
True |
3:Reset |
0:ToState |
True |
Resetting |
0:HasEffect |
True |
TransitionEventType |
CompletingToComplete |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
TransitionEventType |
ExecuteToCompleting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToCompletingGuard |
0:HasCause |
True |
3:ToComplete |
0:ToState |
True |
Completing |
0:HasEffect |
True |
TransitionEventType |
ExecuteToHolding |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
ExecuteToSuspending |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToSuspendingGuard |
0:HasCause |
True |
3:Suspend |
0:ToState |
True |
Suspending |
0:HasEffect |
True |
TransitionEventType |
HeldToUnholding |
0:FromState |
True |
Held |
0:HasGuard |
True |
HeldToUnholdingGuard |
0:HasCause |
True |
3:Unhold |
0:ToState |
True |
Unholding |
0:HasEffect |
True |
TransitionEventType |
HoldingToHeld |
0:FromState |
True |
Holding |
0:HasGuard |
True |
HoldingToHeldGuard |
0:ToState |
True |
Held |
0:HasEffect |
True |
TransitionEventType |
IdleToStarting |
0:FromState |
True |
Idle |
0:HasGuard |
True |
IdleToStartingGuard |
0:HasCause |
True |
3:Start |
0:ToState |
True |
Starting |
0:HasEffect |
True |
TransitionEventType |
ResettingToIdle |
0:FromState |
True |
Resetting |
0:HasGuard |
True |
ResettingToIdleGuard |
0:ToState |
True |
Idle |
0:HasEffect |
True |
TransitionEventType |
StartingToExecute |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
TransitionEventType |
StartingToHolding |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
SuspendedToHolding |
0:FromState |
True |
Suspended |
0:HasGuard |
True |
SuspendedToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
SuspendedToUnsuspending |
0:FromState |
True |
Suspended |
0:HasGuard |
True |
SuspendedToUnsuspendingGuard |
0:HasCause |
True |
3:Unsuspend |
0:ToState |
True |
Unsuspending |
0:HasEffect |
True |
TransitionEventType |
SuspendingToHolding |
0:FromState |
True |
Suspending |
0:HasGuard |
True |
SuspendingToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
SuspendingToSuspended |
0:FromState |
True |
Suspending |
0:HasGuard |
True |
SuspendingToSuspendedGuard |
0:ToState |
True |
Suspended |
0:HasEffect |
True |
TransitionEventType |
UnholdingToExecute |
0:FromState |
True |
Unholding |
0:HasGuard |
True |
UnholdingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
TransitionEventType |
UnholdingToHolding |
0:FromState |
True |
Unholding |
0:HasGuard |
True |
UnholdingToHoldingGuard |
0:HasCause |
True |
3:Hold |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |
UnsuspendingToExecute |
0:FromState |
True |
Unsuspending |
0:HasGuard |
True |
UnsuspendingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
TransitionEventType |
UnsuspendingToHolding |
0:FromState |
True |
Unsuspending |
0:HasGuard |
True |
UnsuspendingToHoldingGuard |
0:ToState |
True |
Holding |
0:HasEffect |
True |
TransitionEventType |