Integrated Software for CompactRIO: The Ultimate Multipurpose Controller


This white paper is part of a series describing the capabilities of the CompactRIO platform. Read additional papers in this series to learn how you can use CompactRIO to simplify the design of advanced control systems.

Embedded software tools today are fragmented. This forces developers to waste time stitching together IDEs, compilers, debuggers, trace tools, profilers, and other disparate pieces in their toolboxes. Then they have to make these pieces cooperate with each other. Furthermore, these same developers must spend months building, testing, and debugging all the dependencies of an OS, middleware, a board support package, and drivers just to get basic, contextual functionality running before even starting application development. With a complete and validated software stack out of the box, development tools, and engineering libraries, the CompactRIO platform gives you a head start so you can focus on the added value: the core software logic.


Development Tools for Embedded Control and Monitoring Applications

The CompactRIO platform is an open and flexible heterogeneous architecture that offers a variety of programming languages, tools, and design patterns you can choose from to implement your system and make the best use of your IP and expertise.


Figure 1. The CompactRIO platform is an open and flexible heterogeneous architecture that offers a variety of programming languages, tools, and design patterns.


Programming for Real-Time OSs

Applications that must respond to an input stimulus within a finite and specified period, such as closed-loop control, need a level of determinism that regular OSs don’t provide. Because of this, NI created NI Linux Real-Time, a new Linux distribution based on standard OpenEmbedded technologies that offers built-in, industrial-grade, real-time capabilities through the PREEMPT_RT patch set. Intended for embedded systems, this OS delivers real-time performance with the approachability and usability of a desktop OS. Through years of R&D development, the work of the open-source community, and partner contributions, NI Linux Real-Time was designed specifically for reliable and deterministic operation in long-term deployments while offering security improvements and increased resiliency to application crashes.

Learn more about Linux technology


LabVIEW is the ultimate system design software to efficiently design, prototype, and deploy embedded control and monitoring applications. It combines hundreds of prewritten libraries, tight integration with off-the-shelf hardware, and a variety of programming approaches including graphical development, .m file scripts, and connectivity to existing ANSI. Certain CompactRIO controllers can also be programmed with the NI-DAQmx API, allowing users to easily build measurement and control applications with optimized analysis functions and data types without the need to manually wrap individual functions. LabVIEW provides the freedom to quickly respond to changing system requirements with one toolchain and programming paradigm that spans between OSs, hardware technologies, and I/O types. 

Learn more about LabVIEW for designing embedded control and monitoring systems.


In addition to LabVIEW, you can program the Intel or ARM processor on CompactRIO with C/C++ or textual math and reuse code from past projects to save development time. You can integrate LabVIEW and C in the same application and call existing C/C++ libraries from within a LabVIEW Real-Time application to simplify tasks like real-time thread scheduling, or you can develop processor applications written entirely in C or C++ using Eclipse or another preferred IDE.

Learn more about C/C++ development options.



Figure 2. Program the CompactRIO processor in your choice of LabVIEW or C/C++ using Eclipse to take advantage of the reliable and deterministic NI Linux Real-Time OS.


Hardware Acceleration With FPGAs

Some applications have very demanding requirements that range from high-speed signal or image processing to custom timing and ultraprecise control. To implement the most critical and technically demanding functionality, you can take advantage of dedicated, deterministic FPGA hardware to reach nanosecond response times and loop rates up to 200 MHz. As an alternative to low-level HDL, the LabVIEW FPGA Module provides a graphical language and environment for programming, simulating, and debugging FPGA hardware, and uses the Xilinx compiler to build optimized FPGA programs. With hundreds of IP blocks, built-in constructs to manage clocks/timing, memory, I/O, and data transfer, you can implement critical logic in hardware without knowledge of VHDL or Verilog.

Learn more about LabVIEW FPGA.


Figure 3. The user-programmable FPGA adds the performance and reliability needed for industrial embedded systems with high-speed control, inline data processing, or complex timing and triggering.



Deployment-Ready Software Stack

NI software eliminates the risks and overhead of building and maintaining I/O drivers, OSs, and other middleware by providing a fully tested software stack to build on. Unlike hardware platforms that offer limited deployment-ready software, CompactRIO integrates a complete, validated, and proven board support package, which includes device drivers, the NI Linux Real-Time distribution, and thousands of person-years of investment. With the hardware-software co-verification already completed, you get a head start on developing the core value of your application.



Figure 4. The CompactRIO platform provides a complete, validated, and proven board support package that includes device drivers like NI-DAQmx, the NI Linux Real-Time distribution, and thousands of person-years of investment.


Next Steps

Improve the integration and performance of your next embedded control or monitoring application with CompactRIO:  The Ultimate Multipurpose Controller.  Learn more about the CompactRIO platform or read additional papers in this series.


The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a worldwide basis. Permission to use and/or modify the penguin image is granted by Larry Ewing.