High-Speed Digitizers

cancel
Showing results for 
Search instead for 
Did you mean: 

Problems logging 6 channels simultaneously at 3MHz using NI-5105

Right, heres the set up I have.

 

NI-5105 Scope Card

6 channels max,  3MHz sample rate, 30V p-p range, continuous aquisition 

 

I am currently having problems using the fetch command when logging more then 1 channel, after a while the error "Unable to fetch, data overwritten" appears.  I have looked through the examples in Labview and cant really find anything to help.  

 

The fetch function outputs a 1D array of waveform and goes to a waveform graph that must constantly update in real-time, there is currently a vi that handles the waveform after the fetch function that keeps only 0.2 seconds in a buffer.

0 Kudos
Message 1 of 2
(6,001 Views)

Hi Craig,

 

At 3MHz x 2Bytes/Sample x 6 channels you must keep up with fetching the data at a rate of 36MB/s to prevent an overflow from occurring on your card.  The error you are receiving indicates that your application is not keeping up.  Both PCI and PXI (not sure which version of the card you are using) should easily provide sufficient bus bandwidth to make the data transfer.  Are you using your PCI or PXI bus to transfer any other data? For example using another PCI or PXI instrument in addition to your NI-5105?

 

Likely the cause is that a portion of your signal processing is too slow and is holding up the fetch cycle.  Try temporarily turning off your display of the signal(s) by disconnecting your waveform graph.  Do you still see the error?  In general, constantly updating the display is a very intensive operation that can greatly slow your acquisition speed.  If you still want to view your signal, one thing you could do is update the graph every second or so with a viewable amount of data (generally <1000 points).  Also fetching unscaled data (I16) is more efficient than fetching the data as a scaled waveform.

 

There are some streaming resources that you can navigate to through ni.com/streaming that may help.  The benchmark VIs that are part of the advanced example such as the "Stream to Memory Maximum Transfer Rate VI",  can be run to test and verify that you are getting sufficient throughput on the bus.  The Stream to Disk examples will also show you how to implement a Producer Consumer architecture.  This is an efficient architecture to use for your signal processing/display code.  Simply replace the code that is writing the data to disk with the code you wish to use.

 

Jennifer O.

0 Kudos
Message 2 of 2
(5,997 Views)