The PackMLMachineStateMachineType defines the machine level state machine. It is illustrated in Figure 17.

The TR-88 specification does not define an initial State for this StateMachine, but typically the state machine uses Stopped State as an initial State. Annex B provides recommended display names for the various states.

image021.png

Figure 17 - PackMLMachineStateMachineType illustration

Table 8 defines the PackMLMachineStateMachineType. StateTypes and TransitionTypes only exist in the type system, thus they do not have a modelling rule.

Table 8 – PackMLMachineStateMachineType Definition

Attribute

Value

BrowseName

PackMLMachineStateMachineType

IsAbstract

False

Reference

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the FiniteStateMachineType from OPC 10000-5.

HasComponent

Variable

0:AvailableTransitions

NodeId[]

BaseDataVariableType

Mandatory

HasComponent

Variable

0:AvailableStates

NodeId[]

BaseDataVariableType

Mandatory

HasComponent

Object

Stopped

StateType

HasComponent

Object

Stopping

StateType

HasComponent

Object

Clearing

StateType

HasComponent

Object

Running

StateType

HasComponent

Object

ExecuteState

PackMLExecuteStateMachineType

Mandatory

HasComponent

Object

StoppingToStopped

TransitionType

HasComponent

Object

ClearingToStopped

TransitionType

HasComponent

Object

StoppedToRunning

TransitionType

HasComponent

Object

RunningToStopping

TransitionType

HasComponent

Method

Stop

Defined in 6.7.7

Optional

HasComponent

Method

Reset

Defined in 6.7.8

Optional

The AvailableTransitions and AvailableStates are optional variables in the FiniteStateMachine, but they are overridden in the PackMLMachineStateMachineType and are made Mandatory. The PackMLMachineStateMachineType does include a sub-state machine that provides sub-states for the Run State.

Stopped - The machine is powered and stationary after completing the STOPPING state. All communications with other systems are functioning (if applicable). The value of this StateType is 2

Stopping - This state executes the logic which brings the machine to a controlled stop as reflected by the STOPPED state. The value of this StateType is 7.

Clearing - Initiated by a state command to clear faults that may have occurred when ABORTING, and are present in the ABORTED state. The value of this StateType is 1.

Running – the State that allows the ExecuteState machine to become active, enabling sub-states provided by this StateMachine. The value of this StateType is 18.

ExecuteStateStateMachine that provides additional sub states.

Stop – A Method to trigger a change of state to Stopping. This will affect all sub-states in Run state. Defined in 6.7.7

Reset – A Method to trigger a change of state to Running, enabling all of the sub-states of Running and the respective Methods that they expose. Defined in 6.7.8

The transitions are defined in Table 9.

Table 9 – PackMLMachineStateMachineType Additional References

Source Path

Reference Type

Is Forward

Target Path

StoppedToRunning

FromState

True

Stopped

ToState

True

Running

HasCause

True

Reset

StoppingToStopped

FromState

True

Stopping

ToState

True

Stopped

ClearingToStopped

FromState

True

Clearing

ToState

True

Stopped

RunningToStopping

FromState

True

Running

ToState

True

Stopping

HasCause

True

Stop