11-22-2019 04:53 AM - edited 11-22-2019 05:15 AM
Hi all,
Over the years we have used lots of NI multifunction DAQ boards, mostly of the (rather old, but reliable and powerful) PCI 611x/613x brand, for our (moderately) high-speed data acquisition needs. These boards had rather large (for their time) on-board memories for sampled data. Scrolling through the current DAQ board offerings I noticed that only a few boards (namely PCI 6115/6120/6123 as well as UCB 6356/6366) do still have larger on-board memories (of 32 or 64 MS size). All the others have FIFO sizes of "only" 8000 samples or so.
I now wonder about the application limits of DAQ boards with small FIFO sizes vs. such (few remaining) boards that still have the larger FIFOs. Maybe the newer DAQmx driver versions have made the large on-boards memories obsolete somehow?
If anybody has some real experience with this topic I would be glad to hear about it.
EDIT:
I have found that the presence of large on-board sample data memory seems to correlate with presence of the feature "simultaneous sampling of AI channels." Does anybody know whether (and why) this assumption is correct?
Solved! Go to Solution.
11-22-2019 08:31 AM
As bus architectures have progressed in capability and performance (ISA-->PCI-->PCIe) and as DAQ devices have been built with more distinct channels of DMA access to system RAM, a much smaller portion of data acquisition apps really need a big onboard FIFO.
The need is reduced for output tasks too, but probably not quite as much.
I don't think there's an inherent link between a large onboard FIFO and support for simultaneous sampling. It's possible that today's product line shows some significant correlation there, but you shouldn't assume that one necessarily implies the other.
What kind of sample rates, channel counts, and durations do you have to support?
-Kevin P
11-22-2019
09:11 AM
- last edited on
03-27-2025
02:01 PM
by
Content Cleaner
I entirely ignore the buffer size specifications for NI DAQ cards these days, for exactly the reasons that Kevin has highlighted.
Every single DAQ card can achieve the sampling rates in their specifications continuously, these are waveform based devies, and are designed and tested for those speeds.
Since data is transferred to/from them via DMA to a much larger buffer in system memory the buffer size on the card doesn't really matter. You can trust that it's big enough to sustain continuous sampling, and that the DMA transfers will keep the card's onboard buffer from overflowing/underflowing 🙂
Of course, your code still has to manage the host buffer properly, keeping it full enough when doing an output task, and reading from it often enough for input tasks to avoid underflow/overflow of those buffers, but those buffers are a lot bigger.
Sometimes, you have to use some tricks with DAQmx property nodes, such as with the PXIe-4480 when running all channels at 20MS/s as discussed in it's manual under Data Compression: https://www.ni.com/docs/en-US/bundle/pxie-4480-4481-features/resource/376368a.pdf. This though, is mostly a function of total data throughput, since 20MS/s/ch across 6 channels at 24-bits per sample can be a lot of data. Unpacked the math looks like:
There can be other considerations in terms of PXIe lanes per slot, the chassis in question, and the PXIe controller, but these very rarely matter when it comes to a simple DAQ cards!
11-22-2019 09:17 AM
Some of our applications consist of AI sampling on 8 (differential) channels with ~ 2 MS/s for two minutes or so.
11-22-2019
09:31 AM
- last edited on
03-27-2025
02:03 PM
by
Content Cleaner
Yea, that's no problem, you're probably using the PXIe-6366 or PXIe-6368. If you need 2MS/s/ch simultaneous sampling is required, since you can't MUX multiple channels that fast.
8 Channel simultaneous at 2MS/s/ch the math comes out to:
There's other faster simultaneous cards, such as the PXIe-6376 or PXIe-6378 (3.57MS/s/ch) or even the PXIe-6386 or PXIe-6396 (14MS/s/ch), and the math still comes out alright:
You can see some similar throughput math in this document, specific to the 6386/96: https://www.ni.com/en/support/documentation/supplemental/19/ni-pxie-6386-and-ni-pxie-6396-supplement...
11-23-2019 10:09 PM
@CKO42 wrote:
Some of our applications consist of AI sampling on 8 (differential) channels with ~ 2 MS/s for two minutes or so.
The key when doing high speed sampling is the buffer size on the host. Do the following:
ensure the number of samples (per channel) to read is divisible by the sector size of the disk.
manually set the buffer size, choose an even multiple of the sector size of the disk with a value between 4 - 8x the sampling rate.
mcduff