The ConfirmationStateMachineType is used to prove a valid Client – Server connection after a restart of the OPC UA Server. This supports the confirmation option of 8.3.4.9.
If several instances of this state machine are provided on a device (due to several instances of the SoftwareUpdateType), all instances should behave as if it is only a single instance. In particular it is sufficient to call one of the confirm methods after reboot.
The ConfirmationStateMachineType is illustrated in Figure 53 and Figure 54 and formally defined in Table 104. The transitions are formally defined in Table 106.
Figure 53 – Confirmation state machine
Figure 54 – ConfirmationStateMachineType
Table 104 – ConfirmationStateMachineType
|
Attribute |
Value |
||||
|
BrowseName |
1:ConfirmationStateMachineType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the 0:FiniteStateMachineType defined in OPC 10000-5. |
|||||
|
0:HasComponent |
Method |
1:Confirm |
|
|
M |
|
0:HasComponent |
Variable |
1:ConfirmationTimeout |
0:Duration |
0:BaseDataVariableType |
M |
|
0:HasComponent |
Object |
1:NotWaitingForConfirm |
|
0:InitialStateType |
|
|
0:HasComponent |
Object |
1:WaitingForConfirm |
|
0:StateType |
|
|
0:HasComponent |
Object |
1:NotWaitingForConfirmToWaitingForConfirm |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
1:WaitingForConfirmToNotWaitingForConfirm |
|
0:TransitionType |
|
|
Conformance Units |
|||||
|
DI SU Update Confirmation |
|||||
The component Variables of the ConfirmationStateMachineType have additional Attributes defined in Table 105.
Table 105 – 1:ConfirmationStateMachineType Attribute values for child Nodes
|
BrowsePath |
Value Attribute |
||
|
1 |
||
|
2 |
||
|
12 |
||
|
21 |
Table 106 – 1:ConfirmationStateMachineType Additional References
|
SourceBrowsePath |
Reference Type |
Is Forward |
TargetBrowsePath |
|
|
|
||||
|
Transitions |
||||
|
1:NotWaitingForConfirmToWaitingForConfirm |
0:FromState |
True |
1:NotWaitingForConfirm |
|
|
|
0:ToState |
True |
1:WaitingForConfirm |
|
|
|
0:HasEffect |
True |
0:TransitionEventType |
|
|
1:WaitingForConfirmToNotWaitingForConfirm |
0:FromState |
True |
1:WaitingForConfirm |
|
|
|
0:ToState |
True |
1:NotWaitingForConfirm |
|
|
|
0:HasCause |
True |
1:Confirm |
|
|
|
0:HasEffect |
True |
0:TransitionEventType |
|
The ConfirmationTimeout can be set by a Client to a value other then 0 to enable the confirmation feature. If the value is not 0 and the Client – Server connection is lost, the ConfirmationTimeout represents the maximum time that the Client is required to reconnect and call the Confirm Method. The Server shall automatically reset the value to 0 when the installation is complete.
After a reboot and with a ConfirmationTimeout other than 0 a Client shall call this Method to inform the Server that it has successfully reconnected. If this Method is not called after a lost connection the Server shall regard the update as unsuccessful and shall revert it. A Client is required to react within the time specified in the ConfirmationTimeout Variable.
Signature
Confirm();