The ProgramStateMachineTypeincludes component references to the Effects of each of the Program’sstate transitions. These EffectsareEvents. EachTransitionshall have a HasEffect Referenceto a ProgramTransitionEventType and can have anAuditProgramTransitionEventType. When the transition occurs, Eventnotifications of the referenced type are generated for subscribed Clients.The Program Invocationmay serve as the EventNotifierfor these Eventsor an owning Objector the Server Object may provide the notifications.

ProgramTransitionEventTypes provide the means for delivering result data and confirming state transitions for subscribed Clientson each definedProgram State Transition.The AuditProgramTransitionEventTypeallows the auditing of changes to the Program’s state in conjunction with Client Method Calls.

TheProgramTransitionEventTypeis a subtype of the TransitionEventType. It is used with Programsto acquire intermediate or final results or other data associated with a state transition. A Programcan have a unique ProgramTransitionEventTypedefinition for any transition. Each ProgramTransitionEventTypespecifies the IntermediateResultdata specific to the designated state transition on that ProgramStateMachineType. Each transition can yield different intermediate result data. Table 9specifies the ProgramTransitionEventType.

Table 9identifies the ProgramTransitionEventTypesthat are specified for ProgramStateMachineTypes.

Table 9– ProgramTransitionEventType

Attribute

Value

BrowseName

ProgramTransitionEventType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the base TransitionEventTypedefined in OPC 10000-16.

HasComponent

Variable

IntermediateResult

BaseDataType

BaseDataVariableType

Mandatory

Conformance Units

Program Basic

TransitionNumberidentifies the Programtransition that triggered the Event.

FromStateNumberidentifies the state before the Programtransition.

ToStateNumberidentifies the state after the Programtransition.

The IntermediateResultis an Objectthat aggregates a set of Variableswhose values are relevant for the Programat the instant of the associated transition. The ObjectTypefor the IntermediateResultspecifies the collection of Variablesusing a set of HasComponent References.