Programmatically Determining the Size of Onboard Buffer for DAQmx

Updated Jan 5, 2023

Issue Details

How can I determine the size of the FIFO (First In First Out) on my DAQmx device?

Solution

There is a property node in LabVIEW that will let you read the maximum available First In First Out (FIFO). This property node will let you verify the size of the FIFO listed in the specifications or data sheet. 

First create a task in MAX that will use the desired channel for which you would like to measure the FIFO (e.g. Analog Input, Analog Output, Digital Input or Digital Output). Then wire a task constant with this task selected into a DAQmx Buffer Property Node.

This property node can be found on the Functions Palette under Measurement I/O»DAQmx - Data Acquisition»DAQmx Advanced»DAQmx Constants & Properties»DAQmx Buffer Property Node.  Select the Onboard Buffer Size property through either the input or output categories. Finally, change the property to read and wire an indicator to it.

Additional Information

The FIFO is measured by the number of samples that it can hold. 

For Example:

The cDAQ-9178 has an input FIFO that can store 127 samples per slot. This means that an input task with four channels acquiring data at a rate of 512 S/s/ch would overrun the onboard FIFO in less than 63 milliseconds (512 S/s/ch * 4 ch * 0.0625 s = 128 samples). NI-DAQ™mx uses DMA to transfer data from the FIFO to the PC Buffer to avoid the overrun.