How Do I Access the I/O on my CompactRIO in VeriStand?

Updated Nov 7, 2024

Issue Details

I want to use a CompactRIO as the controller for my VeriStand project and access the data using the C Series modules in my cRIO chassis. How do I configure my VeriStand System Definition so I can access those I/O modules?

Solution

The method to access CompactRIO I/O modules will depend on the type of CompactRIO:

CompactRIO controllers that support NI-DAQmx (cRIO-904x and cRIO-905x):

While cRIO-904x and 905x controllers are supported controllers for use in VeriStand VeriStand, accessing I/O modules using DAQmx mode is not supported. If you try to add a C Series module as a DAQ device in VeriStand, the data acquisition/generation will be software-timed, which could impact the determinism and performance of the VeriStand system.

The recommended way to access I/O channels in your cRIO chassis depends on whether you want to access the data in single-point or waveforms:

  • Single-point channels

To access the data as single-point channels, use the Scan Engine and EtherCAT custom device. This custom device allows you to add your cRIO as a local chassis and access C Series modules using Real-Time Scan (IO Variables) mode. To use modules in this mode, you will need to change the Program Mode for the module to Real-Time Scan (IO Variables) in NI MAX

  • Waveform channels

To access the data as waveform channels, you can add the C Series module as a DAQ device (Targets»Controller»Hardware»Chassis»DAQ). When you add a channel to the device, select Waveform as the Sample Mode instead of Single-Point. You will also need to define a Waveform Task to use for that device. Refer to Adding Waveform Task Channels for more information. 

Note: Waveform mode is only supported for Analog Input channels

Other CompactRIO Linux Real-Time controllers (cRIO-903x):

cRIO-903x controllers can be used as the Real-Time controller in a VeriStand project, but DAQmx is not supported on these controllers at all. To access I/O Modules as single-point data, use the Scan Engine and EtherCAT custom device as explained above. To access I/O module channels as waveforms, you must create a LabVIEW FPGA VI to read the channel data and make it available in VeriStand. Refer to the next section for more information.

Using CompactRIOs in FPGA mode:

It is also possible to access cRIO I/O modules by writing a LabVIEW FPGA VI that reads data from your modules and makes it available to VeriStand. For more information on using FPGA devices in VeriStand, refer to Getting Started With NI FPGA Devices in NI VeriStand.

Additional Information

VeriStand 2021 and later only supports Linux x64 cRIOs. PharLap, VxWorks, and Linux ARM-based cRIOs are not supported.