Before commanding robot actions, a control source may need to acknowledge certain conditions first. The information model provides two possibilities for a Client to acknowledge conditions of the system, either with Instances of specific Events in the Address space or with the standard OPC UA Eventing mechanism. The MultiAcknowledgeableConditionType may be used to simplify the handling of multiple conditions, which need to be acknowledged by a Client to use the SystemOperationStateMachine or IdleSubstateMachine. Its representation in the AddressSpace is formally defined in Table 131.

image047.png

Table 113 – MultiAcknowledgeableConditionType Definition

Attribute

Value

BrowseName

MultiAcknowledgeableConditionType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

Subtype of the AcknowledgeableConditionType defined in OPC 10000-9, it inherits the InstanceDeclarations of that Node.

0:HasProperty

Variable

ConditionDescriptions

0:LocalizedText[]

0:PropertyType

M

Conformance Units

Rob RobAckCondInstance

The MultiAcknowledgeableConditionType inherits all Properties of the AcknowledgeableConditionType.

The Variable ConditionDescriptions provides in an Array of descriptions of all conditions, which need acknowledgement.

When a Client calls the Acknowledge Method, the system tries to acknowledge all conditions described in the ConditionDescriptions array at once. If a condition cannot be acknowledged (e.g. cable is broken) and the condition is still active, the instance of the MultiAcknowledgeableConditionType stays in AckedState False and the ConditionDescriptions are updated with all pending conditions.

There is a race condition here with respect to keeping the ConditionDescriptions array up to date, however it is assumed that the logic behind starting the system will never be solely dependent on this variable, but there will be internal checks to make sure that the system can safely start.

Confirmation of the MultiAcknowledgeableConditionType instances (using the optional Confirm method, inherited from the AcknowledgeableConditionType) is undefined and out of scope.