From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Which DAQ for my project? USB or PCIe ?

Solved!
Go to solution

Hi,

 

We would like to do measurements with >200 kS/s for around 5seconds at max. samplerate.

We are operating a DMD which sends at the beginning of the measurements a trigger signal to the DAQ.

Everything is done in C++, Windows7 64bit.

 

Therefore my questions:

Which DAQ should we buy:

  • NI-USB-6211
  • NI-USB-6281
  • NI-PCIe-6321

 

And if the FiFo memory of the DAQ is 4096samples what does that mean? What happens if the memory is full? Are all data transferred to the PC? Is there any lack in the measurements? Are we out of sync then?

0 Kudos
Message 1 of 4
(4,237 Views)
Solution
Accepted by ben3000

@ben3000 wrote:

Which DAQ should we buy


I would go with PCIe over USB any day of the week.  USB has many headaches when in a permanent situation.

 

 


@ben3000 wrote:

And if the FiFo memory of the DAQ is 4096samples what does that mean? What happens if the memory is full? Are all data transferred to the PC? Is there any lack in the measurements? Are we out of sync then?


The buffer on the card is only 4096 sampels.  If the memory gets full, you will get a buffer overflow error and data will be overwritten before you get to it.  The solution to this is to continuously read the data (DAQmx Read) and store that data somewhere in your program (an array variable).  For example, read all of the currently aquired data every 100ms.  This will help keep the buffer clear.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 2 of 4
(4,231 Views)

Thanks for the useful answer!

 

What happens when I do a read out, let's say every 100ms:

Do I have any noteable lack or delay in my synchronisation?

0 Kudos
Message 3 of 4
(4,209 Views)
Solution
Accepted by ben3000

The on-board FIFO is just an intermediate buffer that holds the data until it is streamed to memory on the PC.  The transfer of data from the device to the PC buffer is done automatically by the driver.  Regardless of the bus, the DAQmx devices you are considering can all stream analog data continuously at their max rate.  If you have no particular reason to go USB, I'd agree with crossrulz's recommendation to use PCIe (lower latency, more reliable connection to hardware).

 

The PC buffer is a configurable size, but by default it will be exactly large enough to fit all of the data (for finite tasks).  So you could read all 5 seconds back at once if you wanted to.  

If your are acquiring continuously or want to explicitly configure a smaller buffer, you would need to read repeatedly in a loop (and quickly enough so that the buffer does not overflow).  By default (this behavior is modifiable), each read call will resume where the last read call left off, so there would be no loss of data.

 

 

Best Regards,

John Passiak
Message 4 of 4
(4,202 Views)