Clients manage a Program by calling Methods. The Methods impact a Program’s behaviour by causing specified state transitions. The state transitions dictate the actions performed by the Program. This standard defines a set of standard Program Control Methods. These Methods provide sufficient means for a Client to run a Program.
Table 4 lists the set of defined Program Control Methods. Each Method causes transitions from specified states and shall be called when the Program is in one of those states.
Individual Programs can optionally support any subset of the Program Control Methods. For example, some Programs may not be permitted to suspend and so would not provide the Suspend and Resume Methods.
Programs can support additional user defined Methods. User defined Methods shall not change the behaviour of the base Program Finite State Machine.
Table 4 – Program Control Methods
|Start||Causes the Program to transition from the Ready state to the Running state.|
|Suspend||Causes the Program to transition from the Running state to the Suspended state.|
|Resume||Causes the Program to transition from the Suspended state to the Running state.|
|Halt||Causes the Program to transition from the Ready, Running or Suspended state to the Halted state.|
|Reset||Causes the Program to transition from the Halted state to the Ready state.|
All Program Control Methods are defined with their BrowseName on the ProgramStateMachineType with the OptionalPlaceholder ModellingRule. As defined in OPC 10000-3, this rule allows the inclusion of Arguments to these Methods on sub-types or on instances. For example, a Start Method may include an options argument that specifies dynamic options used to determine some program behaviour. The Method Call service specified in OPC 10000-4 defines a return status. This return status indicates the success of the Program Control Method or a reason for its failure.