LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Acquiring 40 channels at 200KS/s

I'm using a PXI chassis with 7 6070Es and an NI-8176 1.26 GHz controller. I need to acquire 40 channels at at least 200KS/s/ch for about 10 minutes. The acquired data(every acquisition) will be compared to a pre-defined threshold. If that threshold is exceeded then the data will be saved to disk. My question is two-fold. Is the system, as specified above, fast enough for this type of acquisition? If so, how do I acquire (pseudo-)simultaneously on all modules and stream data to disk?

Any programming suggestions/examples would be appreciated.
Thanks in advance for you response.
0 Kudos
Message 1 of 4
(2,742 Views)
The max. sampling rate for this card will be, in your case, 1.25M/40 = 31.25 kS/s/ch if you are acquiring at the same time. So this fast for 40 channels per card is not possible.

Please let me know if I can help you in any way.

Sincerely,
Sastry V.
Applications Engineer
National Instruments
0 Kudos
Message 2 of 4
(2,742 Views)
Thanks for the reply Sastry.
I am using six of the available sixteen channels on each of the seven 6070E modules, which gives me a total of 42 channels. Since only six are used on each module then the sampling rate is 1.25M/6 = 208.3kS/s/ch. I that correct?
What is the correct method of acquring and streaming to disk from multiple modules, seven in this case. Do I use seven while loops running simultaneously? I am concerned that labview will not be able to keep up with the data being gathered. I mentioned above that the data would not be saved unless a threshold is exceeded. It is conceivable that this condition would be met on all channels for the duration of the acquisition period of ten minutes. So I have to assume that I need to stream to disk all t
he data, provided I have enough disk space.
Thanks,
pascual
0 Kudos
Message 3 of 4
(2,742 Views)
Pascual,

I believe that your thinking is correct. I have used at least 3 6070E modules in exactly the same manner, saving 16 channels at 100Ks/sec.

With the PXI chassis, you should only need one while loop, because you can simultaneously start each of your 6070E's by using the built-in RTSI timing bus in the PXI backplane. This means you will be able to set up each of your acquisitions and set them to start on a trigger pulse, and trigger them all with the same start trigger.

Your limiting factors will be two: 1) does the PCI bus have enough bandwidth to get all of the data across the bus and into the computer memory; 2) can you write all the data fast enough to the disk to keep up.

On the latter, keep in mind that it is MUCH,
MUCH faster to save the raw A/D values than it is to use engineering units. If you try to use EU, you'll use up too much CPU time. If you use virtual channels in Measurement and Automation Explorer (MAX), it takes too long for it to calculate the EU and return them to LabVIEW (if you're using LabVIEW) at these speeds.

So, first I would try to scan these 40 channels and see what happens. Don't try to write them at first--just see if the PCI bus can handle it.

Then, try saving one of the boards' data to file. Then the next, then the next, etc. Don't try to read too much data or too little data every loop--I've had to play with it to see if maybe .5 seconds works best, or .25 seconds.

Hope this gave you some ideas. Let me know if you need more info.

Mark
0 Kudos
Message 4 of 4
(2,742 Views)