I've been working on a project to implement feedback control at 5kHz and my DAQmx Read VIs have started inconsistently throwing Error -200714 in a simplified "test program" I put together:
"Acquisition has stopped because the driver could not transfer the data from the device to the computer memory fast enough. This was caused by computer system limitations.
Reduce your sample clock rate, the number of channels in the task, or the number of programs your computer is executing concurrently."
I'm really confused about why I'm getting this error since the "full" version, with implemented control, should be very nearly identical and doesn't present this error. In fact, the non-simplified version appears to be doing everything correctly. (I made the test program to try and identify what was background jitter and what was induced by other stuff we're doing.)
I've noticed that the error first starts to manifest at frequencies above about 1990Hz, and it seems to occur more frequently when I try to use the "Control Loop from task" VI to generate a timing signal for my timed loop as opposed to "Signal from Task," set to use the sample clock, but otherwise I haven't noticed a pattern.
I followed the clue in the error message (sample clock issues) and got nowhere with that, but if it helps, here's what I'm doing:
I have a PXIe-6356 generating a continuous 5kHz square wave with a counter, which is then routed to a trigger line.
My DAQmx Reads (and my DAQms Writes) are set to "Hardware Timed Single Point," with their timing set to expect a max of a 5kHz signal from the appropriate trigger line.
One of my DAQmx Reads (a digital multiline input) has the "Signal from Task" VI on it, which is wired as the timing source for the timed loop.
This is all running (with a front panel) on PharLap 13.1 on a PXIe-8135 with a 6356, a 6733, and a couple of 6612's for I/O.
Right up until it stops working, all my DAQmx Reads and Writes have execution times under about ten microseconds (after the warm-up loops) and then they just don't finish anymore. At 5kHz, the loop should have 200 microseconds to execute so I'm not sure why the DAQmx I/O functions would be pressed for time anyway.
Thanks in advance,