LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

I need to change the acquisition frequency on the fly.

I work with a PCI-6033E board with 32 analog differential inputs.
I want 3 channels at 1000 samples/s & 5 channels at 1 sample/10s. That means 1 slow data every 1000 fast data.
How can I do that ?
0 Kudos
Message 1 of 4
(2,884 Views)
I can think of two ways. One is to acquire all your channels at 1000 S/s, then average every 100 points of data for the slow channels. Another approach is to acquire all your channels at 1000 S/s, then pull out every hundredth point for the 10 S/s channels.

Regards,

Doug
Message 2 of 4
(2,884 Views)
Thanks for your answer, but the problem comes from the buffered acquisition, 1000 S/s is the minimum speed required, and it makes rapidly a big buffer to manage.
I would like to play with the clock properties of my card, but I don't understand how to proceed to realise a frequency change on the fly.
However I am gonna try your idea and hope that the dynamic memory will hold out.
Thank you.
Vincent Gigot (France)
0 Kudos
Message 3 of 4
(2,884 Views)
Vince:

Doug's answer is exactly what we recommend here at NI.
Currently our drivers do not support different scan rates for the various channels in the same acquisition operation. This will be a feature we will likely see in the future.

Having a second board will help you acquire a set of signals at a different scan rate from within the same application.

I can give you some tips on how to manage the array in your application.

- Using a larger buffer and acquiring bigger blocks at a time will help you overcome any speed issues within the acquisition loop and free time for any data processing you may want to do on the fly. This will help us create time for my next recommendation.

- Creating separate arrays for the data to be scanned at faster rates
and for the signals that will have samples discarded from them. I recommend you discard the data you don't need while inside the acquisition loop.

Once you discard the data from these arrays, by using the Delete From Array function or by simply indexing the sample you select, you will be able carry a smaller array from that point on and therefore save on memory usage on future stages of the application.

With this last step we will avoid building a big array inside the acquisition loop, which makes more sense since the data was probably going to be discarded in the post-acquisition step anyway.

I hope this helps.

Alejandro Asenjo
Applications Engineer
National Instruments
Message 4 of 4
(2,884 Views)