Distributed Control & Automation Framework (DCAF)

cancel
Showing results for 
Search instead for 
Did you mean: 

Archived: Introduction to the Distributed Control and Automation Framework

This document has been archived and is no longer updated by National Instruments. You can find the replacement page for this information here.

 

The Distributed Control and Automation Framework (DCAF) is an application framework designed to help developers by simplifying and accelerating the development of reliable and robust industrial and embedded control applications in LabVIEW and LabVIEW Real-Time. Control applications range from embedded control system in industrial machines to automation of distributed motors, valves, pumps and other devices in large work sites.

 

While the primary deployment platform for applications developed using the DCAF is CompactRIO, the same code modules and applications can be deployed to any LabVIEW and LabVIEW Real-Time target including PXI, CompactDAQ and SingleBoard RIO. In addition DCAF modules can interface with applications written in other programming languages and communicate to industrial devices using common industrial protocols such as Modbus and EthernetIP.

 

We created DCAF to enable developers to create new control systems in less time by combining out-of-box functionality, a configuration-based workflow, and clear points for extension. Using the open source framework, developers have full access to all of the code and are able to modify, customize and extend the functionality of the framework and of the plugin modules for their specific application needs.

 

Overview

 

The Distributed Contol and Automation Framework is built around a core data engine that automates and manages handling data between sensors, actuators, network protocols, and data processing modules. Each of these modules is developed as a plugin component of the data engine; the framework package includes a variety of prebuilt modules including Modbus, UDP, Scan Engine, TDMS, PID, Alarming, Scaling, and CVT (Current Value Table), and this list will expand as the community creates additional modules. Developers can modify existing plugins or create new plugins for the framework in LabVIEW. Using provided templates developers can also implement core logic for the framwork in other programming languages.

 

DataEngine and Plugins.png

 

All engine and plugin module functionality is exposed both programmatically and through a provided configuration editor. The editor enables developers to configure the engine, its modules, their data exchange, and appropriate error handling. The editor also allows developers to modify the parameters of deployed solutions without requiring code to be recompiled, greatly enhancing the flexibility of applications built with the framework. Custom-built modules can be configured in the same editor by developing the necessary configuration VIs as part of the module code.

 

Data Engine and Configuration Editor.png

 

In the Configuration Editor each target system and the list of modules used in each system are shown and each module can be indepedently configured. The editor maintain the

overall list of tags and channels used in the system and provides tools for automapping as well as displaying a summary of your system configuration. The configuration is stored in a single file which is deployed to each of the target systems and used at runtime to instantiate and configure all of the modules.

 

DCAF Configuration Editor Scan Engine Plugin.png

 

Open Source Software

 

DCAF is provided free of charge under an open source code license (Apache 2.0). It is a community driven and community supported project. We encourage developers and users to participate in the development of DCAF modules and the core code base through the DCAF GitHub repository. Please share framework issues and improvements with the user community by posting your modifications at https://github.com/LabVIEW-DCAF. Questions and comments about DCAF can also be posted in the community group.

 

The design and architecture of DCAF provides many significant benefits to the application devleoper compared to build an application from scratch in LabVIEW or using other programming environments.

 

Scalable and extensible plugin architecture

Using a standard plugin architecture, developers can easily reuse existing modules and create new modules to meet their application needs. The framework has well defined extension points to enable seemless integration between existing and new modules.

 

Develop with plugin templates

 

Communication and data processing module tempates provided with the framework enable developers to quickly create new modules that can be used in the framework. Basic modules can be created by LabVIEW developers with a basic proficicency level and do not required advanced programming skills.

 

Reuse existing plugins


Reuse is the key benefit of most frameworks and architectures, greatly reducing the amount of new code that needs to be implemented for an application. As the library of available framework modules grows, the cost of developing new applications decreases.

 

Single point I/O, processing, and data services


DCAF is primarily designed to address the needs of applications containing many single-point data channels and tags, and to automate the communication and processing of such data across multiple system targets. Acquisition, communication and processing of other data, inlcuding high speed waveforms and vision (image acquisition), can be implemented in parallel to the framework, and external code modules can easily communicate with the framework using defined interfaces.

 

Rules for correct-by-construction software


DCAF manages the sequencing and execution of the various code modules on a target and thereby eliminates certain race conditions and significantly reduces the number of other common design and programming mistakes. Following the rules and design guidelines of DCAF, developers create more rubist and reliable code in less time.

 

Optimized for real-time execution


The framework code and module templates have been optimized to run in LabVIEW Real-Time, following the best practices recommended by National Instruments to reduce execution jitter and improve reliablity and performance.

 

Together these benefits can help users build higher quality embedded software in a fraction of the time when compared to other approaches. Visit Getting Started with DCAF for instructions on installing the framework packages. To learn more visit Understanding the Distributed Control and Automation Framework.

 

References

 

authored by
Christian L, CLA
Systems Engineering Manager - Automotive and Transportation
NI - Austin, TX


  
Message 1 of 1
(9,808 Views)