8.39 MachineModuleProductionStateMachineType Object Type

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
BrowseNameMachineModuleProductionStateMachineType
IsAbstractFalse
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:HasComponentObjectAborted0:StateType
0:HasComponentObjectAbortedToComplete0:TransitionType
0:HasComponentVariableAbortedToCompleteGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectAborting0:StateType
0:HasComponentObjectAbortingToAborted0:TransitionType
0:HasComponentVariableAbortingToAbortedGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectAssigned0:StateType
0:HasComponentObjectAssignedToComplete0:TransitionType
0:HasComponentVariableAssignedToCompleteGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectAssignedToStarting0:TransitionType
0:HasComponentVariableAssignedToStartingGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectComplete0:InitialStateType
0:HasComponentObjectCompleteToAssigned0:TransitionType
0:HasComponentVariableCompleteToAssignedGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectCompleting0:StateType
0:HasComponentObjectCompletingToAborting0:TransitionType
0:HasComponentVariableCompletingToAbortingGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectCompletingToComplete0:TransitionType
0:HasComponentVariableCompletingToCompleteGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectExecute0:StateType
0:HasComponentObjectExecuteToAborting0:TransitionType
0:HasComponentVariableExecuteToAbortingGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectExecuteToCompleting0:TransitionType
0:HasComponentVariableExecuteToCompletingGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentVariableLastTransition0:LocalizedText0:FiniteTransitionVariableTypeM, RO
0:HasComponentObjectStarting0:StateType
0:HasComponentObjectStartingToAborting0:TransitionType
0:HasComponentVariableStartingToAbortingGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:HasComponentObjectStartingToExecute0:TransitionType
0:HasComponentVariableStartingToExecuteGuard0:LocalizedTextBooleanGuardVariableTypeM, RO
0:GeneratesEventObjectTypeProductionOrderTransitionLogType
Conformance Units
TMC Single PO Production
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:

For infeed machine modules: the method StartProductionOrder method is executed successfully.

For non-infeed machine modules with more than one assigned production order: when AssignedProductionOrders[] contains more than one production order, the method StartProductionOrder method is executed successfully.

For non-infeed machine modules configured to start automatically: when the AssignedProductionOrders array contains one production order and the state of the upstream machine modules is Execute or Starting for the same production order.

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.

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
AbortedToComplete0:FromStateTrueAborted
0:HasGuardTrueAbortedToCompleteGuard
0:ToStateTrueComplete
0:HasEffectTrueProductionOrderTransitionLogType
AbortingToAborted0:FromStateTrueAborting
0:HasGuardTrueAbortingToAbortedGuard
0:ToStateTrueAborted
0:HasEffectTrueProductionOrderTransitionLogType
AssignedToComplete0:FromStateTrueAssigned
0:HasGuardTrueAssignedToCompleteGuard
0:ToStateTrueComplete
0:HasEffectTrueProductionOrderTransitionLogType
AssignedToStarting0:FromStateTrueAssigned
0:HasGuardTrueAssignedToStartingGuard
0:ToStateTrueStarting
0:HasEffectTrueProductionOrderTransitionLogType
CompleteToAssigned0:FromStateTrueComplete
0:HasGuardTrueCompleteToAssignedGuard
0:ToStateTrueAssigned
0:HasEffectTrueProductionOrderTransitionLogType
CompletingToAborting0:FromStateTrueCompleting
0:HasGuardTrueCompletingToAbortingGuard
0:ToStateTrueAborting
0:HasEffectTrueProductionOrderTransitionLogType
CompletingToComplete0:FromStateTrueCompleting
0:HasGuardTrueCompletingToCompleteGuard
0:ToStateTrueComplete
0:HasEffectTrueProductionOrderTransitionLogType
ExecuteToAborting0:FromStateTrueExecute
0:HasGuardTrueExecuteToAbortingGuard
0:ToStateTrueAborting
0:HasEffectTrueProductionOrderTransitionLogType
ExecuteToCompleting0:FromStateTrueExecute
0:HasGuardTrueExecuteToCompletingGuard
0:ToStateTrueCompleting
0:HasEffectTrueProductionOrderTransitionLogType
StartingToAborting0:FromStateTrueStarting
0:HasGuardTrueStartingToAbortingGuard
0:ToStateTrueAborting
0:HasEffectTrueProductionOrderTransitionLogType
StartingToExecute0:FromStateTrueStarting
0:HasGuardTrueStartingToExecuteGuard
0:ToStateTrueExecute
0:HasEffectTrueProductionOrderTransitionLogType

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