Table 6 specifies the ProgramStateMachineType’s state Objects. These Objects are instances of the StateType defined in OPC 10000-5, Annex B. Each state is assigned a unique StateNumber value. Subtypes of the ProgramStateMachineType can add references from any state to a subordinate or nested StateMachine Object to extend the FiniteStateMachine.

Table 6 – Program states

BrowseName

References

Target BrowseName

Value

Target TypeDefinition

NOTES

States

Halted

HasProperty

StateNumber

11

PropertyType

ToTransition

HaltedToReady

TransitionType

FromTransition

RunningToHalted

TransitionType

FromTransition

SuspendedToHalted

TransitionType

FromTransition

ReadyToHalted

TransitionType

Ready

HasProperty

StateNumber

12

PropertyType

FromTransition

HaltedToReady

TransitionType

ToTransition

ReadyToRunning

TransitionType

FromTransition

RunningToReady

TransitionType

ToTransition

ReadyToHalted

TransitionType

Running

HasProperty

StateNumber

13

PropertyType

ToTransition

RunningToHalted

TransitionType

ToTransition

RunningToReady

TransitionType

ToTransition

RunningToSuspended

TransitionType

FromTransition

ReadyToRunning

TransitionType

FromTransition

SuspendedToRunning

TransitionType

Suspended

HasProperty

StateNumber

14

PropertyType

ToTransition

SuspendedToRunning

TransitionType

ToTransition

SuspendedToHalted

TransitionType

ToTransition

SuspendedToReady

TransitionType

FromTransition

RunningToSuspended

TransitionType

The Halted state is the idle state for a Program. It can be an initial state or a terminal state. As an initial state, the Program Invocation cannot begin execution due to conditions at the Server. As a terminal state, Halted can indicate either a failed or completed Program. A subordinate state or result can be used to distinguish the nature of the termination. The Halted state references four Transition Objects, which identify the allowed state transitions to the Ready state and from the Ready, Running, and Suspended states.

The Ready state indicates that the Program is prepared to begin execution. Programs that are ready to begin upon their creation may transition immediately to the Ready state. The Ready state references four Transition Objects, which identify the allowed state transitions to the Running and Halted states and from the Halted and Ready states.

The Running state indicates that the Program is actively performing its Function. The Running state references five Transition Objects, which identify the allowed state transitions to the Halted, Ready, and Suspended states and from the Ready and Suspended states.

The Suspended state indicates that the Program has stopped performing its Function, but retains the ability to resume the Function at the point at which it was executing when suspended. The Suspended state references four Transition Objects, which identify the allowed state transitions to the Ready, Running, and Halted state and from the Ready state.