The MachineModuleProductionStateMachineType provides state information about the execution of a production order at a Machine Module.
The MachineModuleProductionStateMachineType is formally defined in the following table.
Table 113 – MachineModuleProductionStateMachineType Definition
Attribute |
Value |
|||||
BrowseName |
MachineModuleProductionStateMachineType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the FiniteStateMachineType defined in OPC 10000-5 Annex B, i.e. inheriting the Instance Declarations of that Node. |
||||||
0:HasComponent |
Object |
Aborted |
|
0:StateType |
|
|
0:HasComponent |
Object |
AbortedToComplete |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AbortedToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Aborting |
|
0:StateType |
|
|
0:HasComponent |
Object |
AbortingToAborted |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AbortingToAbortedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Assigned |
|
0:StateType |
|
|
0:HasComponent |
Object |
AssignedToComplete |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AssignedToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
AssignedToStarting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
AssignedToStartingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Complete |
|
0:InitialStateType |
|
|
0:HasComponent |
Object |
CompleteToAssigned |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
CompleteToAssignedGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Completing |
|
0:StateType |
|
|
0:HasComponent |
Object |
CompletingToAborting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
CompletingToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
CompletingToComplete |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
CompletingToCompleteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
Execute |
|
0:StateType |
|
|
0:HasComponent |
Object |
ExecuteToAborting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
ExecuteToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
ExecuteToCompleting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
ExecuteToCompletingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Variable |
LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
M, RO |
|
0:HasComponent |
Object |
Starting |
|
0:StateType |
|
|
0:HasComponent |
Object |
StartingToAborting |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
StartingToAbortingGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:HasComponent |
Object |
StartingToExecute |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
StartingToExecuteGuard |
0:LocalizedText |
BooleanGuardVariableType |
M, RO |
|
0:GeneratesEvent |
ObjectType |
ProductionOrderTransitionLogType |
|
|
|
|
Conformance Units |
||||||
TMC Single PO Production |
The components of the MachineModuleProductionStateMachineType are further described below.
BrowseName |
Description |
Assigned |
When the CurrentState of the StateMachine is Assigned, the information for at least one production order to be started is available.
When the CurrentState of the StateMachine is Assigned and there is a production order in execution, i.e. ProductionOrder is not null, the state transitions to Starting. The variable ProductionOrder is set in the following cases:
When the CurrentState of the StateMachine is Assigned and there are no assigned production orders, i.e. no elements in the array AssignedProductionOrders, the CurrentState of the MachineModuleProductionStateMachineType transitions to Complete. |
Starting |
When the CurrentState of the StateMachine is Starting, the underlying system performs the preparation to process product or parts according to the started production order. The machine module can receive input product(s) or parts from the loading points specified by the production order according to its machine specific sequence.
For example, while the CurrentState of the StateMachine is Starting, the machine may be pre-filled, warmed up or cooled down according to the requirements of the production order.
When the underlying system completes such machine specific sequence and starts processing product, the CurrentState of the StateMachine transitions to Execute.
When the CurrentState of the StateMachine is Starting and the AbortProductionOrder method is successfully executed, the ProductionState state machine transitions to Aborting.
The machine module shall not receive product from an upstream machine module processing a different production order. To this goal, the machine module underlying system will set UpstreamHold to True for the MaterialLoadingPoints connected to (1) non-active upstream machine modules and (2) active upstream machine modules with a different ProductionOrder. |
Execute |
When the CurrentState of the StateMachine is Execute, the production order is processed and input product(s) or parts are received. In order to further detail the processing phases, the StateMachine object within the object LiveStatus may be used. The states and transitions of the machine are defined according to the underlying system specifics.
The machine module shall not receive product from an upstream machine module processing a different production order. To this end, the machine module will set UpstreamHold to True of the MaterialLoadingPoints connected to (1) non-active upstream machine modules and (2) active upstream machine modules with a different ProductionOrder.
For machine modules with AutoComplete false, when the CurrentState of the StateMachine is Execute, the successful execution of the method CompleteProductionOrder causes the state transition to Completing. For machine modules with AutoComplete true, when the CurrentState of the StateMachine is Execute and the active upstream machine modules are in state Complete the CurrentState of the StateMachine transitions to Completing.
The described logic implements production order propagation in a standardized and transparent way. |
Completing |
When the CurrentState of the StateMachine is Completing, the underlying system performs the preparation to complete the production order which is complete in the active upstream machine modules.
When the underlying system completes such machine specific sequence, including checking that no more product(s) or parts are being received and that no more product(s) or parts that can be processed are in the machine module, and the active upstream machine modules’ state is Complete, the CurrentState of the StateMachine transitions to Complete and the ProductionOrder is nulled. Likewise, when the CurrentState of the StateMachine is Execute and the active upstream machine modules are in state Assigned or Execute for a different production order.
The machine module shall not receive product from an upstream machine module processing a different production order. To this end, the machine module will set UpstreamHold to True of the MaterialLoadingPoints connected to (1) non-active upstream machine modules and (2) active upstream machine modules with a different ProductionOrder. |
Aborting |
When the CurrentState of the StateMachine is Aborting, the machine module stops receiving additional product or parts from the active upstream machine modules in an orderly way. When the stopping sequence is complete the CurrentState of the StateMachine transitions to Aborted. |
Aborted |
When the CurrentState of the StateMachine is Aborted, the product(s) or parts present in the machine module are discharged from the machine, either through machine specific automatic sequences or manually by the operators.
When the CurrentState of the StateMachine is Aborted and the ClearProductionOrder method is successfully executed, the state transitions to Complete. |
Complete |
When the CurrentState of the StateMachine is Complete, the machine module does not accept any more input product(s) or parts, the ProductionOrder is nulled and the machine is ready to execute a new production order.
When the CurrentState of the StateMachine is Complete and there is at least one production order in the AssignedProductionOrders array, the CurrentState of the StateMachine transitions to Assigned. |
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 components of the MachineModuleProductionStateMachineType have additional references which are defined in the following table.
Table 114 – MachineModuleProductionStateMachineType Additional References
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
AbortedToComplete |
0:FromState |
True |
Aborted |
0:HasGuard |
True |
AbortedToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AbortingToAborted |
0:FromState |
True |
Aborting |
0:HasGuard |
True |
AbortingToAbortedGuard |
0:ToState |
True |
Aborted |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssignedToComplete |
0:FromState |
True |
Assigned |
0:HasGuard |
True |
AssignedToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
AssignedToStarting |
0:FromState |
True |
Assigned |
0:HasGuard |
True |
AssignedToStartingGuard |
0:ToState |
True |
Starting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompleteToAssigned |
0:FromState |
True |
Complete |
0:HasGuard |
True |
CompleteToAssignedGuard |
0:ToState |
True |
Assigned |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompletingToAborting |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
CompletingToComplete |
0:FromState |
True |
Completing |
0:HasGuard |
True |
CompletingToCompleteGuard |
0:ToState |
True |
Complete |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ExecuteToAborting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
ExecuteToCompleting |
0:FromState |
True |
Execute |
0:HasGuard |
True |
ExecuteToCompletingGuard |
0:ToState |
True |
Completing |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
StartingToAborting |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToAbortingGuard |
0:ToState |
True |
Aborting |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
StartingToExecute |
0:FromState |
True |
Starting |
0:HasGuard |
True |
StartingToExecuteGuard |
0:ToState |
True |
Execute |
0:HasEffect |
True |
ProductionOrderTransitionLogType |
The component Variables of the MachineModuleProductionStateMachineType have additional Attributes defined in the following table.
Table 115 – MachineModuleProductionStateMachineType Attribute values for child Nodes
BrowsePath |
Attribute Value |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
4 |
||
|
5 |
||
|
6 |
||
|
7 |