6.3.7 PackMLMachineStateMachineType
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.

Table 8 defines the PackMLMachineStateMachineType. StateTypes and TransitionTypes only exist in the type system, thus they do not have a modelling rule.
| 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.
ExecuteState – StateMachine 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.
| 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 |