The ProductionStateMachineType describes a fundamental statemachine for processing jobs from glass machines and is formally defined in Table 38. An implementation of this statemachine is mandatory. Furthermore, it can be extended by further substatemachines (e.g. for a detailed description of the Running state). The name of each transition consists of the names of the states it connects: [FromState]To[ToState]. Their References are specified in Table 37.

On the first level, the state machine consists of the states Initialized (there is a sub-state-machine with Idle, Queued, Released), Running, Interrupted, Aborted and Ended. The state transitions can be initiated by HLS or by the machine itself. Figure 15 shows the state machine and the state transitions graphically.

Table 35 – ProductionStateMachineType Definition

Attribute

Value

BrowseName

ProductionStateMachineType

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the FiniteStateMachineType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

Aborted

0:StateType

0:HasComponent

Object

AbortedToInitializing

0:TransitionType

0:HasComponent

Variable

0:CurrentState

0:LocalizedText

0:FiniteStateVariableType

0:Mandatory

0:HasComponent

Object

Ended

0:StateType

0:HasComponent

Object

EndedToInitializing

0:TransitionType

0:HasComponent

Object

Initializing

0:InitialStateType

0:HasComponent

Object

InitializingToAborted

0:TransitionType

0:HasComponent

Object

InitializingToRunning

0:TransitionType

0:HasComponent

Object

Interrupted

0:StateType

0:HasComponent

Object

InterruptedToAborted

0:TransitionType

0:HasComponent

Object

InterruptedToRunning

0:TransitionType

0:HasComponent

Object

Running

0:StateType

0:HasComponent

Object

RunningToAborted

0:TransitionType

0:HasComponent

Object

RunningToEnded

0:TransitionType

0:HasComponent

Object

RunningToInterrupted

0:TransitionType

0:HasComponent

Object

RunningToRunning

0:TransitionType

0:HasComponent

Object

InitializingState

InitializingSubStateMachineType

0:Mandatory

image021.png

Figure 15 – JobStateMachine

The states shall have the numbers indicated in Table 36; the transitions shall have the numbers indicated in Table 36.

Initializing is the state in which the element in production is being prepared. During this state, the machine and the job doesn’t have to be ready for production, although it has to be as soon as the transition InitializingToRunning is used. The production is not yet started. This state contains a sub-statemachine of the Type InitializingSubStateMachineType. Depending on the implementation, a glass machine starts to process the jobs which have been released for production either by itself or by an operator. The machine sets the status of the next released job in the queue to Running and processes it.

Running indicates that the operation of a job in production has been started or re-started and is currently running. There can be sub-statemachines in future versions of this standard or vendor-specific sub-statemachines.

Interrupted indicates that the execution of a job in production has been reversibly halted. This is usually due to an error or an intervention by the operating personnel. It is possible to restart operation of or on the element in production after it was in the interrupted state. From Interrupted you can switch back to the Running state by Continue or, if the processing is to be aborted with Abort to the State Aborted (both transitions are machine internal). Furthermore, an interrupted job can be brought back to the Queued state with the SuspendMethod called by an HLS.

The state Aborted indicates, that the operation of a job in production has been irreversibly stopped before finishing. In addition, an already scheduled job can be moved directly to the Aborted state with the Abort-Method from HLS if the job is not to be produced.

Ended is reached when the operation of a job in production has been finished. Jobs can only be removed in the states Ended and Initializing (only in sub-states Idle and Queued).

Table 36 – ProductionStateMachineType Attribute values for child Nodes

Source Path

Value Attribute

Description Attribute

State Numbers

Initializing

0:StateNumber

0

Running

0:StateNumber

1

Ended

0:StateNumber

2

Interrupted

0:StateNumber

3

Aborted

0:StateNumber

4

Transition Numbers

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.

InitializingToRunning is triggered when the operation of a job in production starts.

RunningToEnded is triggered when the operation of a job in production finishes.

EndedToInitializing is triggered when re-initialization of the operation of a job in production starts.

RunningToRunning is triggered when another consecutive run of the operation of a job in production in direct succession starts.

RunningToInterrupted is triggered when the operation of a job in production is interrupted.

InterruptedToRunning is triggered when an interruption ends and the operation of a job in production continues running.

RunningToAborted is triggered when the operation of a job in production is aborted while in the Running state.

InterruptedToAborted is triggered when the operation of a job in production is aborted while in the Interrupted state. AbortedToInitializing is triggered if the operation of a job in production is being re-initialized after an abort.

InitializingToAborted is triggered when the operation of a job in production is aborted while in the Initializing state.

Table 37 – ProductionStateMachineType Additional References

Source Path

ReferenceType

Is Forward

Target Path

AbortedToInitializing

0:FromState

True

Aborted

0:ToState

True

Initializing

EndedToInitializing

0:FromState

True

Ended

0:ToState

True

Initializing

InitializingToAborted

0:FromState

True

Initializing

0:ToState

True

Aborted

InitializingToRunning

0:FromState

True

Initializing

0:ToState

True

Running

InterruptedToAborted

0:FromState

True

Interrupted

0:ToState

True

Aborted

InterruptedToRunning

0:FromState

True

Interrupted

0:ToState

True

Running

RunningToAborted

0:FromState

True

Running

0:ToState

True

Aborted

RunningToEnded

0:FromState

True

Running

0:ToState

True

Ended

RunningToInterrupted

0:FromState

True

Running

0:ToState

True

Interrupted

RunningToRunning

0:FromState

True

Running

0:ToState

True

Running