LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

why acquisiton of waveform is slow when record lenght is high

Hi,
I'm acquiring waveforms of very high record lenght upto 2000000 samples. Hence my application is too slow in response/to acquire the waveform from scope. what might be reason for this & plz provide me with a possible solution to make the acquisition faster.
Thanks in advance
sayaf.
0 Kudos
Message 1 of 7
(3,149 Views)
Hi sayaf


The description you have give is very insuffieicent to come to any conclusion. but i think folllowing consideration might help you

1. your data acquisition and data processing should be in separate loops so that DAQ loop dont have to wait untill the data gets processed.
2. make sure your Queues dont get huge backlog.
3. If you are transfering data through TCP then make sure it supports the bandwidth.
4. try to write the code in such a way that Data acquisition loop will have high priority over processing loop.
5 Dont use AI Read only once to read whole data in one shot, but read number of small packets so process loop can get time to process data while your card is still acquiring data.

I hope i can help you in better way if you can tell me about your problem more specifically, or if you can share your code then i can suggest some modifications for improved performance

Regards,
Tushar

Tushar Jambhekar
tushar@jambhekar.com

Jambhekar Automation Solutions
LabVIEW Consultancy, LabVIEW Training
Rent a LabVIEW Developer, My Blog

0 Kudos
Message 2 of 7
(3,144 Views)
hi there,

first of all: Tushar is right!

If you then still got a performance problem try to use the "Numeric Array" type of your VI instead the "Waveform" type.

best regards
chris
Best regards
chris

CL(A)Dly bending G-Force with LabVIEW

famous last words: "oh my god, it is full of stars!"
0 Kudos
Message 3 of 7
(3,139 Views)
Thanks Tushar,
Actually the problem is i'm acquiring reference stored waveform from scope & also i cannot change any of the other parameters of the waveform.when i reduce the record length i'm able to acquire waveform data fast but i'm loosing large amount of waveform data.since it is reference waveform i cannot use a loop to acquire.Plz help me to find a solution.
Thanks once again
sayaf
0 Kudos
Message 4 of 7
(3,123 Views)
With a 2 million point double precision waveform, you could very easily be running into memory problems. See this tutorial (Managing Large Data Sets in LabVIEW) for some tips and tricks that should help take care of your problem.
0 Kudos
Message 5 of 7
(3,117 Views)
Thanks for the guidance but the gigalvread&display.vi example works with simulated waveform but my problem involves acquiring live waveform.PLz suggest me the modifications involved.
Thanks
0 Kudos
Message 6 of 7
(3,093 Views)
Replace the generation VI with your acquisition VI. This will require fetching your data from the scope in chunks, but I have rarely found a scope API which did not support this. Both IVI and SCPI based APIs should do what you need. NI-SCOPE certainly does (it is IVI based), that's how the soft front panel supports 100 million point acquisitions

Note that if you are acquiring over GPIB, 2 million data points will be relatively slow compared to a PCI or PXI scope. Before you beat yourself up trying to get a certain response, make sure your hardware is capable of it.

Good luck. Dealing with large data is never trivial, but it is certainly doable.
0 Kudos
Message 7 of 7
(3,087 Views)