NI DAQ analog output regeneration

Using an NI USB 6366 DAQ to generate a continuous output analog waveform, I keep getting underflow errors "Output underflow event: Last valid output was scan number 199977121". The output sample frequency is 2 MHz, and I have tried all sorts of different buffer sizes. In Labview, I can change the "allow regeneration" mode for analog outputs to allow the DAQ to just loop the onboard FIFO without requiring fresh data from the host computer. How do I do this in matlab? The waveform needs to be continously output for hours at a time, so this instability is really a problem.

 Accepted Answer

Hunter Davis
Hunter Davis on 10 Oct 2020
In case someone else stumbles on this, there is a low-level function daq.ni.NIDAQmx.DAQmxSetWriteRegenMode that allows you to directly modify this setting in the DAQ.

1 Comment

Hi Hunter,
I'm pretty green when it comes to programming and my labview/NI knowledge is extremey limited. I'm getting an 'Output underflow error' and I'm hoping this will help. I'm embarrassed to say that I have no idea how to implement it in matlab. I looked at the doc but can't firgure it out
(daq.ni.NIDAQmx.DAQmxSetWriteRegenMode is a function.
[status] = DAQmxSetWriteRegenMode(taskHandle, data)
Can you tell me what I need to call for 'taskhandle'and 'data' to get this thing to allow regeneration? (I'm assuming it's automatically in non-regeneration mode based on what I read here: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019P1kSAE&l=en-GB).

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!