Sampling Rates for NI-DAQmx on CompactRIO

Updated Mar 22, 2024

Reported In

Hardware

  • cRIO-9040
  • cRIO-9046

Software

  • LabVIEW

Driver

  • NI-DAQmx

Issue Details

I am using a CompactRIO controller that supports NI-DAQmx (cRIO-904x and cRIO-905x). I want to acquire/generate data at a specified rate. How can I make sure my system (cRIO controller + C Series modules) is capable of achieving my desired sample rate?

Solution

The sampling rate limitations of a cRIO-based system are determined by the following characteristics:
  • Sample rate specification for your specific C Series Modules.
  • Maximum sample rate specification for your specific cRIO controller.
Therefore, kindly see the specifications pages of your C Series Modules. For the cRIO controller, you can check the "Real-Time (NI-DAQmx) Mode" section on your cRIO's specifications page.

Other than that, kindly see Timing Considerations for C Series Devices.

In your LabVIEW VI, you would use the DAQmx Timing VI to configure your sample rates. 

Data is streamed to the buffer on your cRIO's Real-Time Operating System and pulled off of the buffer with the DAQmx Read function. Consult this article for more information on timing and buffers.

Specifically for Hardware Timed Single Point acquisition (continuous streaming without a buffer), the update rate is 5 kHz, as noted in this white paper. So it is possible to acquire the data at 5kHz.

However by pulling more than 1 sample in per DAQmx read, you can increase the overall acquisition rate. For example, reading 10 samples per DAQmx read, at a rate of 5 kHz, gives an overall rate of 50 kHz. 

Additional Information

When using DAQmx with the cRIO, you need to configure the module's programming mode to Real-Time(DAQmx)