05-02-2006 02:52 PM
Greetings,
I am working on an application with a DO channel at 10Ms on a PCI-6115. The application works fine for a minute or so and then generates a -200016 memory underflow error.Platform: P4-1.7Ghz, Win XP, MSVC6, DAQ 7.4.1f4, DAQmx 8.0.1f0
Is there anything I can do to reduce the likelihood of the underflow error?
Thanks,
Brian
05-03-2006 06:56 PM
05-04-2006 10:53 AM
At 10MHz the 2k FIFO does need a LOT of attention. (Can I write to it explicitly?) The PC is not doing much and the app can run for a minute or so before throwing the error. The data is an information stream, regeneration is not an option. The large onboard memory looks very attractive and the text associated with the DAQmxSetDOUseOnlyOnBrdMem function hints that it may not be impossible to use it, but fresh data is required. Any ideas? Otherwise, I might be looking for another board.
Brian
05-04-2006 01:57 PM
05-04-2006 02:51 PM
Hi,
Thanks again for following up on this. To get the 10MHz clock, I built up from the example in: C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Synchronization\Multi-Function\ContAI-Read Dig Chan. The app is using DAQmxWriteDigitalU8, but with a many-MB buffer. Code behavior seems to indicate that large writes are occurring. My understanding was that these were going into a buffer in the DAQmx driver SW and transferred down to the 2k FIFO as needed. (Not true?) I tried constantly filling the buffer (instead of using the EveryNCallback). The bytes written indicated that the buffer was staying full, but the 200016 error still popped up with about the same frequency (100-1500M samples).
Is there anything I can do to isolate the issue?
05-08-2006 01:02 PM
05-08-2006 01:32 PM
Thaison,
The comment in NIDAQmx.h:
"#define DAQmx_DO_UseOnlyOnBrdMem 0x2265 // Specifies whether to write samples directly to the onboard memory of the device, bypassing the memory buffer. Generally, you cannot update onboard memory after you start the task. Onboard memory includes data FIFOs.”
discouraged me from taking that route, but I will give it a try.
Thanks,
Brian
05-08-2006 02:04 PM
Oh well,
Error Text:
Operation failed, because an attempt was made to use only the onboard memory for generation when regeneration of data was not allowed.
It looks like I'm going to have to try a 6534.
Thanks anyway,
Brian
06-09-2006 03:39 PM
It works!
Apparently my buffers were too large. Using a 4MS buffer and 100kS writes without the EveryNSample callback, 10Mhz is sustainable.
Thanks for the help
08-28-2006 02:24 PM - edited 08-28-2006 02:24 PM
Message Edited by Azazel on 08-28-2006 02:25 PM