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

Complete

0:StateNumber

17

Completing

0:StateNumber

16

Execute

0:StateNumber

6

Held

0:StateNumber

11

Holding

0:StateNumber

10

Idle

0:StateNumber

4

Resetting

0:StateNumber

15

Starting

0:StateNumber

3

Suspended

0:StateNumber

5

Suspending

0:StateNumber

13

Unholding

0:StateNumber

12

Unsuspending

0:StateNumber

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