The ProductionProgramStateMachineType shows the states a program can be in and the possible transitions between those states. Their representation in the OPC UA address space is given in Table 51. The name of each transition consists of the names of the states it connects: [FromState]To[ToState].

The ProductionProgramStateMachineType is formally defined in. Table 49.

Table 49 – ProductionProgramStateMachineType Definition

Attribute

Value

BrowseName

ProductionProgramStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ProductionStateMachineType defined in 8.4.8 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

Aborted

0:StateType

None

0:HasComponent

Object

AbortedToInitializing

0:TransitionType

None

0:HasComponent

Object

Ended

0:StateType

None

0:HasComponent

Object

EndedToInitializing

0:TransitionType

None

0:HasComponent

Object

Initializing

0:InitialStateType

None

0:HasComponent

Object

InitializingToAborted

0:TransitionType

None

0:HasComponent

Object

InitializingToRunning

0:TransitionType

None

0:HasComponent

Object

Interrupted

0:StateType

None

0:HasComponent

Object

InterruptedToAborted

0:TransitionType

None

0:HasComponent

Object

InterruptedToRunning

0:TransitionType

None

0:HasComponent

Object

Running

0:StateType

None

0:HasComponent

Object

RunningToAborted

0:TransitionType

None

0:HasComponent

Object

RunningToEnded

0:TransitionType

None

0:HasComponent

Object

RunningToInterrupted

0:TransitionType

None

0:HasComponent

Object

RunningToRunning

0:TransitionType

None

Conformance Units

MachineTool Production ProductionProgramStateMachineType

The ProductionProgramStateMachineType allows to send Events of ProductionProgramTransitionEventType with every transition, as indicated in Table 51. This makes it possible to send all relevant information of the ProductionProgramType the state machine instance belongs to with the TransitionEvent.

Initializing is the state in which the program is not yet started.

Interrupted indicates that the execution of the program has been paused and can be continued. This might be due to waiting for the execution of a subprogram or until a certain condition is met, e.g. the doors of the machine are closed.

EndedToInitializing is only used if the nodes in the ProductionPlan are never added or deleted, but remain static in the address space. The Transition is triggered when a new program is loaded. In this case, all values of the ProductionProgramType instance the state machine belongs to are changed to represent a different program. The values of this new job are sent with the ProductionProgramTransitionEventType.

The states and transitions shall have the numbers indicated in Table 50. The Number property of CurrentState and LastTransition shall use those same numbers for the respective state/transition.

Table 50 - ProductionProgramStateMachineType Attribute values for child Nodes

BrowsePath

Value Attribute

Initializing

0:StateNumber

0

Running

0:StateNumber

1

Ended

0:StateNumber

2

Interrupted

0:StateNumber

3

Aborted

0:StateNumber

4

InitializingToRunning

0:TransitionNumber

0

RunningToEnded

0:TransitionNumber

1

EndedToInitializing

0:TransitionNumber

2

RunningToRunning

0:TransitionNumber

3

RunningToInterrupted

0:TransitionNumber

4

InterruptedToRunning

0:TransitionNumber

5

RunningToAborted

0:TransitionNumber

6

InterruptedToAborted

0:TransitionNumber

7

AbortedToInitializing

0:TransitionNumber

8

InitializingToAborted

0:TransitionNumber

9

Fields may be empty which means this Attribute is not defined.

Table 51 – ProductionProgramStateMachineType Additional References

SourceBrowsePath

ReferenceType

Is Forward

TargetBrowsePath

AbortedToInitializing

0:FromState

True

Aborted

0:ToState

True

Initializing

0:HasEffect

True

ProductionProgramTransitionEventType

EndedToInitializing

0:FromState

True

Ended

0:ToState

True

Initializing

0:HasEffect

True

ProductionProgramTransitionEventType

InitializingToAborted

0:FromState

True

Initializing

0:ToState

True

Aborted

0:HasEffect

True

ProductionProgramTransitionEventType

InitializingToRunning

0:FromState

True

Initializing

0:ToState

True

Running

0:HasEffect

True

ProductionProgramTransitionEventType

InterruptedToAborted

0:FromState

True

Interrupted

0:ToState

True

Aborted

0:HasEffect

True

ProductionProgramTransitionEventType

InterruptedToRunning

0:FromState

True

Interrupted

0:ToState

True

Running

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToAborted

0:FromState

True

Running

0:ToState

True

Aborted

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToEnded

0:FromState

True

Running

0:ToState

True

Ended

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToInterrupted

0:FromState

True

Running

0:ToState

True

Interrupted

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToRunning

0:FromState

True

Running

0:ToState

True

Running

0:HasEffect

True

ProductionProgramTransitionEventType