The Supervisory Control and Data Acquisition System sample project demonstrates how to implement a supervisory control and data acquisition (SCADA) system with scalable architecture for building systems with a large number of I/O points.
Developer Walkthrough
Get the developer walkthrough of the Supervisory Control and Data Acquisition System sample project.
Features
-
SCADA server — The SCADA server manages I/O points in the system, logs data and alarms in the historical database, and regularly archives data from the logging database to the archive database.
-
Administrator console — The administrator console allows the system administrator to configure and manage the SCADA server.
-
Client — The client allows the operators to monitor the system status and I/O points. The operator can view the values of the I/O points, alarms, and historical trends in different detailed views.
-
Simulated CompactRIO system and simulated PLC-based system — A simulated CompactRIO system and a simulated PLC-based system are included in this sample project. The systems demonstrate how to connect to third-party devices. You can replace the simulated systems with a real CompactRIO system and a real PLC-based system.
-
Scalability — You can use this sample project as a starting point to scale to a large system by adding a large number of I/O points or adding many subsystems in this sample project.
Basis
This sample project is based on the Queued Message Handler template and uses LabVIEW Datalogging and Supervisory Control Module features, such as HMI design, third-party connectivity, historical data logging, and alarm logging. Refer to the Queued Message Handler template and its documentation, available from the Create Project dialog box, for information about how the Queued Message Handler template works.
System Requirements
-
LabVIEW Base, Full, or Professional Development System (32-bit)
-
LabVIEW Datalogging and Supervisory Control Module
Overview
This sample project consists of two main parts: the server and the client. Both the server and the client are based on the Queued Message Handler template.
The server consists of the following components:
-
Server Main — Shows the server running log. Server Main is the main user interface of the SCADA server and is responsible for managing shared variables, data logging, and data archiving. Server Main includes the following loops running in parallel:
-
Event Handling Loop — Processes user interface events and sends messages to the UI Message Loop.
-
UI Message Loop — Handles UI messages from the server and transmits messages for message loops.
-
Shared Variable Management Loop — Manages shared variables.
-
Archive Management Loop — Handles archiving functionality.
-
Timer Loop — Acts as a timer to trigger archiving. This timer loop pauses when archiving is disabled.
-
Administrator Console — Sends configuration changes to the server. When the server receives the changes, the server applies the changes. Administrator Console includes the following loops running in parallel:
The client consists of the following components:
-
Client Main — Displays an overview of the SCADA system and lists valid subsystems. Client Main includes the following loops running in parallel:
-
Detailed View — Shows detailed information of a subsystem. Detailed View includes the following loops running in parallel:
The following illustration shows the structure of this sample project and the relationships between the user interface loops and the user interface VIs.
|
Note: A VI that is not a subVI of its caller VI is highlighted with a gray dotted line. For example, the Administrator Console VI is not a subVI of the Server Main VI. The Server Main VI uses the Administrator Console VI by starting an asynchronous call.
|