From Wikipedia, the free encyclopedia
Jump to: navigation, search
NI CompactRIO Chassis.png
NI CompactRIO cRIO-9022 chassis (left) with 8 I/O modules connected (right).[1]
Company National Instruments
Availability In production

CompactRIO (or cRIO) is a real-time embedded industrial controller made by National Instruments for industrial control systems. The CompactRIO is a combination of a real-time controller, reconfigurable IO Modules (RIO), FPGA module and an Ethernet expansion chassis.[2]


The CompactRIO system is a combination of a real-time controller chassis, reconfigurable IO Modules (RIO), an FPGA module and an Ethernet expansion chassis.[2] Third-party modules are also available, and are generally compatible with NI-produced chassis controllers.

CompactRIO real-time controllers include a microprocessor for implementing control algorithms, and support a wide range of clock frequencies. Controllers are only compatible with National Instruments C Series I/O Modules. I/O modules are hot swappable (can be connected/disconnected while the unit is powered up).

The FPGA Module may be used to implement high-performance data processing on reconfigurable fabric. Such data processing may be performed on data streaming in from connected I/O Modules. The module is powered by a Xilinx Virtex high-performance FPGA. The FPGA can be programmed separately and is connected to the real-time controller using an internal PCI bus.

The Ethernet chassis includes an Ethernet port (8P8C), which can connect the CompactRIO controller to a PC. The chassis is available in 4 slot and 8 slot varieties.

Third-party modules are manufactured for additional features, such as LCD or VGA displays. Newer, high-performance CompactRIO controllers also have built-in VGA graphics which can be connected to a monitor for observing operation.


CompactRIO controllers can be programmed with LabVIEW, National Instruments' graphical programming language.[2] The controller can also be programmed with C or C++ or Java.[3] LabVIEW must be used to program the embedded FPGA.

The controller comes with RTOS VxWorks. The Xilinx FPGA used is programmed using Xilinx's toolchain. Programs created in LabVIEW are compiled into machine code[4] for VxWorks and hardware description language (HDL) for the Xilinx FPGA toolchain automatically during deployment of the code to the target.

The VxWorks running in the real-time controller supports a filesystem and hence minimal data logging is also available at the controller level. The Full Development System version of LabVIEW does not come with the modules needed to program the cRIO. The real-time Module and FPGA modules have to be purchased separately and installed with LabVIEW for programming the hardware. The programming is done on a Host PC running the Windows operating system and is deployed on the cRIO via Ethernet.


CompactRIO systems are often used as an industrial control unit, where a small form factor and ruggedness are important.

CompactRIO is commonly used as headless systems (without a user interface) which are designed to run in a confined space, under harsh conditions. CompactRIO systems can also be connected to a host PC which can be used for supervisory purposes and for displaying logged data.

The CompactRIO was used until 2015 as the primary control unit in the FIRST Robotics Competition. It has been replaced now by the National Instruments RoboRIO.

See also[edit]


  1. ^ Increase System Performance with New CompactRIO Offerings, National Instruments
  2. ^ a b c "What is CompactRIO?". NI. Retrieved 1 June 2011. 
  3. ^ "The Definitive Guide: Programming NI VxWorks Real-Time Controllers in C/C++". NI. Retrieved 10 September 2011. 
  4. ^ "NI LabVIEW Compiler: Under the Hood". NI. Retrieved 10 September 2011. 

External links[edit]