Dynamic Signal Acquisition

cancel
Showing results for 
Search instead for 
Did you mean: 

DSA Input buffer overwritten error

Hi All,
 
i am using 5 PXI 4472 and one FPGA 7833R. I need to perform continuous acquisition on all 40 DSA and 8 FPGA channels at maximum of 51.2 KiloSamples/second and 102400 Samples/block
In my code i am having a while loop which will acquire dsa and FPGA data and write to file. When i consider 51.2 Kilo samples and 102400 Samples/block, the overall while loop delay is between 2000 to 2100 milli seconds. Meaning the file write and other calculations are getting compelted within 100 mseconds. i have assigned the buffer size of 1 Msamples/channels for DSA.
I believe that even if the PC RAM size is greater, DSA allows only 1Msamples/channel buffer to allocate.
I have also assigned 1.7 MB for FPGA DMA transfer host memory.
 
When i acquire data simultanelously from FPGA and DSA in a single while loop, the acquisition is happening fine some 15 minutes after which DSA is giving DAQ channels overwritten error.
 
But when i bypass FPGA acquisition, there is no daq error generated and acquisition is happening fine.
 
i am have upgraded LV to 8.0.1
 
Please share thoughts and experiences to get this solved.
 
Thanks,
Sudha
0 Kudos
Message 1 of 4
(7,305 Views)

The first thing I would try would be to update your RIO version to RIO 2.0.1.

http://digital.ni.com/softlib.nsf/websearch/12E9CA0820A192F08625714F005A8B0C?opendocument&node=13206...

Note this is an update to RIO 2.0 not a full RIO installation.  Also note that this is not RIO 2.0.2.  I do not think you need RIO 2.0.2.

Reasoning:  Reading data from the FPGA DMA channel is a blocking method when using RIO 2.0.  That means it will consume 100% of the CPU while trying to get the data.  This is obviously fast, but can starve other high priority operations like reading other DAQ channels.  RIO 2.0.1 allows the Read to sleep while rating for the data to arrive.

This may not entirely solve your problem, but it is a start and the update should definitely help a little.

Regards,

Joseph D.

National Instruments

0 Kudos
Message 2 of 4
(7,287 Views)
Joseph,
 
Thanks for your information of upgrading to RIO 2.0.1.
 
One more thing i observerved in DSA/FPGA data acqusiition was, i bypassed FPGA totally, and did a DSA acquisition for 40 channels at 51.2 KS/sec and Block size of 102400 samples. After acquiring the data, i build these data to a cluster and write to a binary file. The binary file write is taking approximately 600mseconds. The while loop time taken for single execution is showing approxiamtely 2200msec.
After the acquisition is happpening for few minutes i am getting "Error -200279, saying attempt to read samples no longer available."
I have assigned 1MSamples buffer size for each daq channel.
 
But when i bypass the file write, DSA acquisition is happening fine without error.
 
Please share your experience and thoughts to solve this.
 
Thanks,
Sudha
0 Kudos
Message 3 of 4
(7,278 Views)

Hi Joesph,

From the description you have provided, it looks like file write is causing the buffer to overflow and resulting in an error. In your DAQmx read, what option did you choose? Can you select analog >> Unscaled >> 2D I32. This should decrease the amount of data transfer to file. After reading the binary file, you scale the data. do you have a delay or wait (ms) inside the while loop. If so, how much?

You can refer to example from

C:\Program Files\National Instruments\LabVIEW 8.0\examples\DAQmx\Analog In\Measure Voltage.llb\Cont Acq&Graph Voltage-To File(Binary).vi

Can you please post a segment of code so that it can help us identify the problem better?

Kalyan

Applications Engineer
National Instruments
0 Kudos
Message 4 of 4
(7,260 Views)