03-04-2009 10:14 AM
I am using a NI-USB-6009 with a wusb dongle.
It worck but after some minutes I get the following erro. -200361 Error: Measurements: Onboard device memory overflow.
How can I reset (skipping the lost datas) and contine acquisition?
Thanks
Andrea
Acquiring samples continuously. Press Enter to interrupt Acquired 100 samples. Total 512400
DAQmx Error: Measurements: Onboard device memo ry overflow. Because of system and/or bus-bandwidth limitations, the driver coul d not read data from the device fast enough to keep up with the device throughpu t. Reduce the sample rate, or reduce the number of programs your computer is execut ing concurrently. Task Name: _unnamedTask<0> Status Code: -200361
03-05-2009 07:59 AM
Hi Andrea,
Good afternoon and I hope your well today. Thanks for your post.
After you recieve an error like this you would need to stop the DAQmx task. The perform another DAQmx Create Task and then continue. However, I would really try to avoid this situation happening.
Please take a look at the following knowledgebase article,
USB-6008/6009 Error -200361: Buffer Overflow Error
http://digital.ni.com/public.nsf/allkb/611475F9BE62881E86256FDC0062B1BB
So one option to prevent this error would be to get a different device which has a large FIFO - however lets assume you dont have the cost/other hardware.
Do you need 1000 samples at the rate you've set? Like the error says, you can reduce the rate or number to help the PC keep up with the Device. I would also take a look at your code design, to help prevent this error you need efficent code - which allows you to read from the buffer as quickly as you can (or require). For example, 1000 samples at 1kHz means you'll have a 1000 samples every second. You should read aim to read about 10% of the samples at a time, hence you need to read from the buffer (DAQmx Read) 10 times a second. If your loop is slower than this you will get an overflow error. Consider using the two loop design pattern - producer/consumer. Where you can acquire at a constant rate and not lose data and also queue the data to process it at a slower rate - but still acquiring at the requested rate.
They also recommend reducing what your requesting your pc to perform - such as large anylsis. for example Read the data in as raw instead of double precision.
Another aspect to consider is do you need to perform a continuous acquistion or would a finite acquisitionbe good enough?
I hope my suggestions make sense, and please let me know if you have any questions. Also feel free to post some example code which causes the error - I'd be more than happy to take a look at it - but remember to tell me what version of LabVIEW your using.
I hope this helps,