The ProductionProgramStateMachineTypeshows 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 ProductionProgramStateMachineTypeis 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 ProductionStateMachineTypedefined in 8.4.8i.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 ProductionProgramStateMachineTypeallows to send Eventsof ProductionProgramTransitionEventTypewith every transition, as indicated in Table 51. This makes it possible to send all relevant information of the ProductionProgramTypethe state machine instance belongs to with the TransitionEvent.
Initializingis the state in which the program is not yet started.
Interruptedindicates 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.
EndedToInitializingis only used if the nodes in the ProductionPlanare never added or deleted, but remain static in the address space. The Transitionis triggered when a new program is loaded. In this case, all values of the ProductionProgramTypeinstance 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 Numberproperty of CurrentStateand LastTransitionshall use those same numbers for the respective state/transition.
Table 50- ProductionProgramStateMachineType Attribute values for child Nodes
BrowsePath |
Value Attribute |
||
|
0 |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
4 |
||
|
0 |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
4 |
||
|
5 |
||
|
6 |
||
|
7 |
||
|
8 |
||
|
9 |
Fields may be empty which means this Attributeis 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 |