10-22-2013 04:36 PM
I am using a PXI-4461 to generate an aquire a singal. When i generate the signal i get error -200621( onboard device memory underflow) onDAQmx Stop VI. I donot understand what the error means.
Signal Information
Signal Type=Sine Wave
Frequency=3K
amplitude=0.3V
Sampling Rate=48K
Number of samples sent=48000 or 1sec
I have tried reducing my sample rate to 20000 but that didnot help much. How do i get rid of this error
I have attached an picture of my vi below
Thanks. Any help whould be much appreciated.
Solved! Go to Solution.
10-23-2013 10:58 AM
Welcome and thank you for using the Discussion Forums! This error is most likely due to the non-regeneration property you have set. What's happening is that LabVIEW generates your two sine waves continuously, but slower than the update rate of the DAQ card, so the buffer gets empty before it can write enough samples to the buffer so that the 4461 can keep generating the voltage values on the channel.
What you could do is simply set the Regeneration mode to "Allow Regeneration". I tried the non-regeneration and regeneration property on the "Voltage - Continuous Output.vi" and it works with regeneration enabled.
10-24-2013 10:04 AM
I changed the property to allow regenration and that got rid of the error. Thank you
12-12-2015 06:20 PM
Hi,
I am using PCI-4461 to do simultaneous I/O.
I digitize data, downshift it to a lower freq, then output to DA -
same number of samples in and out at the same clock rate.
I am getting the memory under flow problem as well.
Can I use 'allow regeneration' for my purpose?
Seems like that's only for outputing the same data in the buffer repeatedly..
Thanks.
12-14-2015 10:36 AM
Hi tim_wen,
Yes you are correct. Regeneration is used for outputting the same data in a buffer repeatedly. That does not sound like what you are looking for. Are you getting the under flow error with your input or your output task?
Best,
hfar2
12-14-2015 01:25 PM
Hi, hfar2,
thanks for your interest in my problem. what I found is that other process(es) steal the CPU time causing
a delay in my AD/DA read/write loop which in turn causes the memory underflow problem because data were not
written to the DA buffer fast enough (both AD & DA are in 'continuous' mode). Is there a solution to this?
BTW, I am using a PCI-4461.
Thanks.
12-14-2015 03:26 PM
Are you reading and writing in the same loop? What I would recommend is to read and write in seperate loops and use a queue to pass the data from the read loop to the write loop. Where your data processing should go depends slightly on how fast you are sampling and how much processing you are doing. You could process the data within the read loop and then put the already processed data into the queue for the write loop, however if this data processing takes too long it could cause your read loop to run too slow causing buffer overflow errors with your read task.
Best,
hfar2
12-14-2015 07:15 PM
Hi, hfar2,
Thanks for your suggestion. I could give it a try running 2 separate loops for read & write
But wouldn't the problem still exist if another process steals CPU time from the DA loop?
12-15-2015 08:11 AM
Yes you could potentiallly still have an issue but by putting them in seperate loops you enable labview to run the two paralle loops in multiple CPU threads. This better distributes your CPU resources and should hopefully allow both tasks to run at the necessary rate and prevent any underflow or overflow.
12-15-2015 03:41 PM
Hi, hfar2,
thanks. I'll give it a shot..