Significant Signal Output Lag Between DAQ Output and Program Output Using DAQmx Function

Updated Jun 20, 2023

Reported In

Driver

  • NI-DAQmx

Issue Details

I made a VI that generates and then outputs a customized signal continuously. The signal is output as an analog signal.
But when I use this program, the output signal on my DAQ device does not change immediately after I change the signal properties on the VI. The delay is around 8 seconds, and it doesn’t change between runs.
 
I am using a while loop around the DAQmx write function which keeps the DAQ device loaded with signals.
 
Why is this happening, and how can I reduce this output lag?
 

Solution

There are several possible reasons a DAQ device output can be delayed, but one possibility is the delay
caused by the buffer on the DAQ device combined with low sampling rate.

The buffer contains the signal to be output on a FIFO basis, this needs to be output at the specified sampling rate before the new signal can be output.
To elaborate, if the output buffer was 8192 samples, and the signal was written at 1000 S/s, there will be a
 8 second delay before the new signal is finally output.
 
One solution to reduce this lag is to increase the sampling rate (such as 100kHz) so that the data stored in the buffer does not take time to be output.

Additional Information

If you are having issues choosing the device's appropriate sample rate and the number of samples to generate, look at the LabVIEW Example codes under the LabVIEW Help, "Find Examples" sections.
image.png