C++ Based OPC UA Client/Server SDK
OPC UA Programs

Programs are complex functions in a server or an underlying system that can be invoked and managed by a client. Programs can represent any level of functionality within a system or process in which client control or intervention is required and progress monitoring is desired.

Programs are state full and transition through a prescribed sequence of states as they execute. Their behaviour is defined by a Program Finite State Machine (PFSM). The elements of the PFSM describe the phases of a Program’s execution in terms of valid transitions between a set of states, the stimuli or causes of those transitions, and the resultant effects of the transitions.

The ProgramStateMachineType describes four states and nine transitions:

State Description
Ready The Program is properly initialized and may be started.
Running The Program is executing making progress towards completion.
Suspended The Program has been stopped prior to reaching a terminal state but may be resumed.
Halted The Program is in a terminal or failed state, and it cannot be started or resumed without being reset.
No. Transition name Cause From state To state Effect
1 HaltedToReady Reset Method Halted Ready Report Transition 1 Event/Result
2 ReadyToRunning Start Method Ready Running Report Transition 2 Event/Result
3 RunningToHalted Halt Method or Internal (Error) Running Halted Report Transition 3 Event/Result
4 RunningToReady Internal Running Ready Report Transition 4 Event/Result
5 RunningToSuspended Suspend Method Running Suspended Report Transition 5 Event/Result
6 SuspendedToRunning Resume Method Suspended Running Report Transition 6 Event/Result
7 SuspendedToHalted Halt Method Suspended Halted Report Transition 7 Event/Result
8 SuspendedToReady Internal Suspended Ready Report Transition 8 Event/Result
9 ReadyToHalted Halt Method Ready Halted Report Transition 9 Event/Result