The ProgramStateMachineType includes references to the Causes of specific Program state transitions. These causes refer to Method instances. Programs that do not support a Program Control Method will omit the Causes reference to that Method from the ProgramStateMachineType references. If a Method’s Causes reference is omitted from the ProgramStateMachineType then a Client cannot cause the associated state transition. The Method instances referenced by the ProgramStateMachineType identify the InputArguments and OutputArguments required for the Method calls to Program Invocations of that ProgramStateMachineType. Table 8 specifies the Methods defined as Causes for ProgramStateMachineTypes. Figure 6 illustrates the References associating the components and Properties of Methods and Events with Program transitions.

Table 8 – ProgramStateMachineType causes

BrowseName

References

Target BrowseName

Value

Target TypeDefinition

NOTES

Causes

Start

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Suspend

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Resume

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Halt

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

Reset

HasProperty

InputArguments

PropertyType

Optional

HasProperty

OutputArguments

PropertyType

Optional

The Start Method causes the ReadyToRunning Program transition.

The Suspend Method causes the RunningToSuspended Program transition.

The Resume Method causes the SuspendedToRunning Program transition.

The Halt Method causes the RunningToHalted, SuspendedToHalted, or ReadyToHalted Program transition depending on the current state of the Program.

The Reset Method causes the HaltedToReady Program transition.

The Executable Method attribute indicates if a method can currently be executed. For Program Control Methods, this means that the owning Program has a current state that supports the transition caused by the Method.

Methods can reference a set of InputArguments. For each ProgramStateMachineType, a set of InputArguments may be defined for the supported Program Control Methods. The data passed in the arguments supplements the information required by the Program to perform its Function. All calls to a Program Control Method for each Program Invocation of that ProgramStateMachineType shall pass the specified arguments.

Methods can reference a set of OutputArguments. For each ProgramStateMachineType, a set of OutputArguments is defined for the supported Program Control Methods. All calls to a Program Control Method for each Program Invocation of that ProgramStateMachineType shall pass the specified arguments.