Alternatives to Citadel and Shared Variable Alarming Using LabVIEW OPC UA Toolkit

Updated Oct 26, 2025

Reported In

Software

  • LabVIEW OPC UA Toolkit
  • LabVIEW Datalogging and Supervisory Control Module
  • LabVIEW Database Connectivity Toolkit
  • LabVIEW

Issue Details

I am working on migrating an application that uses the LabVIEW Datalogging and Supervisory Control (DSC) Module functionality to the LabVIEW OPC UA Toolkit. I have found that there are several functions within the LabVIEW OPC UA Toolkit that can be used as replacements for some of the LabVIEW DSC Module functions. However, I have not been able to determine potential replacements for Citadel (historical data logging) and Alarming. Are there any functions in the LabVIEW OPC UA Toolkit that can be used to implement this functionality?

Solution

The OPC UA Toolkit and LabVIEW provide functions that can be used to implement the Alarming and historical data logging functionalities similar to those found in the DSC Module. Details for each feature are outlined below. 

Historical Data Logging 

The OPC UA toolkit includes VIs that are known as Historical Access VIs. These VIs allow you to access and create historical data and events for OPC UA client and server applications.

For more information on how to use these VIs, you can refer to the OPC UA Demo.lvproj located in:

  •  labview\examples\Data Communication\OPCUA (LabVIEW 2021 and earlier).
  • C:\Program Files\NI\LVAddons\niopcua\1\examples\Data Communication\OPCUA (LabVIEW 2022 Q3 and later).

Although the OPC UA Toolkit does not directly offer access to Databases such as Citadel, you can use the LabVIEW Database Connectivity Toolkit to log data to external databases. This software is included with the LabVIEW Professional Edition and enables connectivity with popular databases such as Microsoft Access and SQL Server. For more information, please refer to the following article: How to Connect LabVIEW to a Database.

Alarming

The OPC UA Toolkit also provides functions that can be directly used to generate alarms for a specific Node ID. The Add Condition VI provides a way to create alarms for different data types. The Add Off-Normal Alarm polymorphic instance can be used to implement alarms on Boolean nodes, whereas the Add Exclusive Level Alarm polymorphic instance can be utilized for numeric nodes. Please refer to the OPC UA Demo.lvproj example mentioned above to explore the correct usage and implementation details.