OPC UA Alarms and Conditions support (AlarmConditionType)
Description
Add support for OPC UA Alarms & Conditions (AlarmConditionType).
Server facets:
- A & C Enable Server Facet
- A & C Enable : Supports Enable and Disable Methods.
- A & C Instances : Support exposing of A&C Condition instances in the AddressSpace.
- A & C Base Condition Server Facet
- A & C Basic : Supports Alarm & Condition model ConditionType.
- A & C Refresh : Supports ConditionRefresh Method and the concept of a refresh.
- A & C Refresh2 : Supports ConditionRefresh2 Method and the concept of a monitored item based refresh.
- A & C Acknowledgeable Alarm Server Facet:
- A & C Acknowledge : Supports the Acknowledge concept, Acknowledge Method, and AcknowledgeableConditionType.
- A & C Confirm (optional) : Supports the concept of Confirm and the Confirm Method
- A & C Alarm Server Facet:
- A & C Alarm : Supports the mandatory features of the AlarmCondition Type.
- A & C Discrete : Supports Discrete Alarm types (only parent type supported). Profile note : This facet requires that discrete AlarmTypes be supported, it also allows for optional support of shelving and other discrete AlarmTypes such as Trip or Off-Normal.
- A & C Comment : Supports the concept of Comments and the AddComment Method.
Client facets:
- A & C Base Condition Client Facet :
- A & C Basic Client
- A & C Refresh Client
- A & C ConditionClasses Client (non géré par la bibliothèque : à gérer par applicatif)
- A & C Alarm Client Facet
- A & C Acknowledge Client
- A & C Alarm Client
- A & C Discrete Client
Detailed description
The S2OPC library integrates two Alarms & Conditions model management front-ends: a server module and a client module.
The server front-end allows to configure a set of alarms present in the address space and manage their lifecycle and state transitions based on internal criteria or external actions from OPC UA clients.
The client front-end allows you to subscribe to and receive alarm event notifications, as well as manage their lifecycle based on internal criteria in order to generate method calls to the server to trigger state transitions for these alarms.
Code version identification
Security impact
No possible impact on security identified.
Implementation
A server front-end is added in src/ClientServer/frontend/server_wrapper/alarm_conditions with the following principles:
- A&C instances are expected to be present in address space as nodes
- This module stores the values of associated variables into
SOPC_Eventprovided instance at creation and manage its consistency with matching address space nodes content. - A&C instances states might be changed using this module API or A&C instances method call (e.g. AddCom., Ack., Conf., etc.)
- A&C instances external states changes (through method calls) lead to API asynchronous callback call (after method call execution)
A client front-end is added in src/ClientServer/frontend/client_wrapper/alarm_conditions and provides functionality to monitor alarms (object derived from ConditionType events) from a given notifier node using an OPC UA subscription. Alarms are organized into "monitored alarm groups", each corresponding to a single MonitoredItem within the subscription. Events received for each alarm are forwarded to a user-defined callback.
Known limitations
See implemented facets in description section.