Taking the sample StateMachine of Figure 16 its representation in the OPC UA AddressSpace is shown in Figure 17 as RobotStateMachineType. The Transition T2 between the ChoiceState and S2_Loaded has the Guard "Else" of ElseGuardVariableType and the Transition T3 between the ChoiceState and S3_Ready has the Guard "OnPathTrue" having an "Expression" Property (not shown in the figure). The ContentFilter of the Expression references to the ProgramLoaded Variable of the RobotStateMachineType. When the ChoiceState is entered on an instance of the RobotStateMachineType like MyStateMachine in Figure 17, the concrete Variable of the instance is used to evaluate the ContentFilter. The value of the Expression is in the sample an array with one entry, using the FilterOperator Equal_0 and the filterOperands are the SimpleOperand OnPath and the Literal value "True".

image019.png

Figure 17 – Example of a StateMachine using ChoiceState and Guards

__________