The ProductionJobStateMachineTypeshows the states a production job can be in and the possible transitions between those states.

The ProductionJobStateMachineTypeis formally defined in Table 39.

Table 39– ProductionJobStateMachineType Definition

Attribute

Value

BrowseName

ProductionJobStateMachineType

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:GeneratesEvent

ObjectType

InterruptionConditionType

0:HasComponent

Object

AbortedToInitializing

0:TransitionType

No ModellingRule

0:HasComponent

Object

EndedToInitializing

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToAborted

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToRunning

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToAborted

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToRunning

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToAborted

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToEnded

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToInterrupted

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToRunning

0:TransitionType

No ModellingRule

When a new interruption occurs in the production job, an event of InterruptionConditionTypecan be sent to clarify the reason for the interruption. This is an option in addition to the Interruptedstate of the ProductionStateMachineType. It is possible that other interruptions occur while the state machine is in the Interruptedstate, e.g. the first interruption being due to a missing part and while the part is still missing, a utility change becomes necessary. In such a case, Eventsof InterruptionConditionTypemay be sent for each subsequent interruption. The transition InterruptedToRunningmay only be used if no interruption is active. If the interrupted job is aborted (via InterruptedToAborted), the interruption may persist. If a job is then re-initialized via AbortedToInitializing, there are multiple possible cases. In one case the interruption is solved before the job enters the Initializingstate. In this case, the same job can transition to Initializing. Another option, when the ProductionPlanis used statically, the job node can be overwritten with the new job being in the Initializingstate. Depending on the production context, the interruption of the old job might persist. When the ProductionPlanis used dynamically, a new job node can be created. Whether the interruption can persist is again depending on the production context.

The ProductionJobStateMachineTypeallows to send Eventsof ProductionJobTransitionEventTypewith every transition, as indicated in Table 40. This makes it possible to send all relevant information of the ProductionJobTypethe state machine instance belongs to with the TransitionEvent.

The state Abortedindicates that the job has been irreversibly stopped before finishing. If the job enters this state, the state machines of any ProductionProgramTypeand ProductionPartTypeinstances associated with it shall not remain in the state Running.

Endedis reached when the job has finished all its runs, so the value of RunsCompletedis the same as the one for RunsPlanned.

Initializingis the state in which the job is being prepared. That implies the job being scheduled for production in the near future. In this state, actions like e.g. loading and configuring programs, inserting tools and utilities and mounting workpieces may be conducted.

InitializingToRunningis triggered when the job starts. This can only be triggered if all preconditions to start the job are met. A job is usually started by starting a related control routine. This does not result in changes to the components and properties (other than State) of the ProductionJobTypeinstance being started.

RunningToEndedis triggered when the last run of a job finishes. The value of RunsCompletedin the affected ProductionJobTypeinstance is increased by one (and equal to the value of RunsPlanned) due to this transition. In the ProductionJobTransitionEventType, this increased value is sent. This transition also implies that all parts and programs related to the job will no longer change, so e.g. the quality information for each part is finally set.

EndedToInitializingis triggered when initialization of a new job starts. This transition is only used if the nodes in the ProductionPlanare never added or deleted, but remain static in the address space. In this case, all values of the ProductionJobTypeinstance the state machine belongs to are changed to represent a different job. The values of this new job are sent with the ProductionJobTransitionEventType.

RunningToRunningis triggered when a new run of the job starts. The RunsCompletedof the affected ProductionJobTypeinstance increases by one. The ProductionJobTransitionEventTypeshall send this increased value.

RunningToInterruptedis triggered when the job is interrupted. The point in time the interruption starts shall be when the machine tool gets the command to interrupt the job process. To indicate the reason for the interruption, an InterruptionConditionEventTypewith the appropriate ConditionClassmay be sent. The components and properties (other than State) of the affected ProductionJobTypeinstance stay unchanged.

InterruptedToRunningis triggered when an interruption ends and production continues running. This transition requires that no interruption is active, regardless of what interruption initially led to the RunningToInterruptedtransition. The components and properties (other than State) of the affected ProductionJobTypeinstance stay unchanged.

InterruptedToAbortedis triggered when the job is aborted while in the Interruptedstate. This transition does not require the reason for the interruption to be solved. The components and properties (other than State) of the affected ProductionJobTypeinstance stay unchanged.

AbortedToInitializingis triggered if production is being re-initialized after an abort. This transition is only used if the nodes in the ProductionPlanare never added or deleted, but remain static in the address space. In this case, all values of the ProductionJobTypeinstance the state machine belongs to are changed to represent a different job. The values of this new job are sent with the ProductionJobTransitionEventType.

Table 40– ProductionJobStateMachineType Additional References

Source Path

ReferenceType

Is Forward

Target Path

AbortedToInitializing

0:FromState

True

ProductionStateMachineType

Aborted

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionJobTransitionEventType

EndedToInitializing

0:FromState

True

ProductionStateMachineType

Ended

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionJobTransitionEventType

InitializingToAborted

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionJobTransitionEventType

InitializingToRunning

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionJobTransitionEventType

InterruptedToAborted

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionJobTransitionEventType

InterruptedToRunning

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionJobTransitionEventType

RunningToAborted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionJobTransitionEventType

RunningToEnded

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Ended

0:HasEffect

True

ProductionJobTransitionEventType

RunningToInterrupted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Interrupted

0:HasEffect

True

ProductionJobTransitionEventType

RunningToRunning

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionJobTransitionEventType