For the reader’s convenience, some aspects of the OPC UA Safety Information Model are explained in this clause. For normative aspects, please refer to OPC 10000-15.
OPC UA Safety defines how to exchange safety data between AutomationComponents using either Client Server or PubSub as the underlying OPC UA communication model. Client Server support for logical connections will be specified in a future version of this document. The usage of PubSub is assumed for the following text.
As defined in OPC 10000-15, the SafetyProvider (representing the source for safety data, such as an emergency stop button) exposes:
- a structured input Variable of DataType RequestSPDUDataType containing safety protocol elements (monitoring number, SafetyConsumer ID, etc.).
- a structured output Variable of a DataType derived from the ResponseSPDUDataType, containing as a structured sub-element the safety application data (e.g., button pressed/released), safety protocol elements (monitoring number, CRC, etc.), and optionally additional non-safety related data.
The corresponding SafetyConsumer (representing the sink for safety data) mirrors input and output variables, e.g., the safety application data is contained in its input Variable. It exposes:
- a structured input Variable of a DataType derived from the ResponseSPDUDataType. Note that SafetyProvider and SafetyConsumer have identical definitions of this DataType.
- a structured output Variable of DataType RequestSPDUDataType.
Refer to OPC 10000-15 for the ResponseSPDUDataType definition and on how to calculate the value of OutCRC. Figure C.1 illustrates an Information Model for a SafetyProvider and its corresponding SafetyConsumer. Safety Variables are represented as dashed yellow boxes.
Figure C.1 – SafetyProvider and SafetyConsumer Information Model