09-06-2011 07:56 AM
Hi i am currently using two NI 6070e PCI daq cards (16 analog inputs on one) which are syncronised in the software. In the producer loop I aquire data from 32 channels and do my processing on the data in the consumer loop. Each signal is displayed on a waveform graph. I sample at 32 kHz at my problem is that my software runs fine but it lags in the time it take sto update the graphs. The longer I run the software the greater the lag becomes. For instance the data showed on the waveform plot is displayed two to 5 minutes after the event accured. Even if I use a lower sampling rate (3 kHz) the software still lags. The number of samples I read out is always one second of data. How do I make this software run close to real time with out such a big lag. I need to run my software on a windows OS. I know you wont get hard real time on running labview on windows OS, what can I do to improve the speed of my program.
1. Another question on the datasheet of the NI 6070e PCI daq card says the FIFO buffer size is 512 S. Why can I in labview set myh buffer size to a value greater than 512 samples. For example when I sample at 1000 Hz and read 1000 Hz out of buffer i exceed the FIFO buffer isze of the daq card, but my program still runs.
Regards (Sorry for spelling mistake typed this very quickly)
the main VI is DP_software
09-06-2011 11:01 AM
09-07-2011 11:15 AM
Hi Mcready,
Thank you for bringing this issue to the forums. When you say, "my program still runs," do you mean that you do not get an error and you continue to get data and its valid data? Does LabVIEW tell you that you have exceeded the FIFO buffer size?
Also, regarding the FIFO buffer of 512 samples, when you set your buffer size to a value greater than 512 samples are you physically wiring up a porperty node that allows you to change to FIFO buffer size greater than 512 samples? Or, are you just refering to you calculation of 1000 Hz sample rate and 1000 Hz read rate? Also, there is difference between sample rate, samples per channel and number of samples per channel in the Timing.vi and Read.vi. All of these topics are addressed in this knowledge base: http://digital.ni.com/public.nsf/allkb/3E3D74E26B8A5B83862575CA0053E4B5?OpenDocument
Pretty much, you are filling up the FIFO with samples, but you are most probably emptying samples from the FIFO onto you computer memory faster than the FIFO is filling up. Hence, you are not exceding the FIFO buffer size.
Thank you,
Vimal Fernandez