LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

recording 1 hour of waveform chart with 64 inputs?

I am using 64 inputs at 100Hz each and I'd like to visualise each of these inputs for at least 1hour.
I use 8 charts of 8 inputs each. I made several tests :
I put a big history lenght on the waveform chart--> the ram disk (512Mo) is not abble to store all the information.
When the chart history length is more than 10000 long, it doesn't work well.
When we put a small chart history lenght 1024,  waves are deleted when we resize the window. The waveformchart can only record 1min of datas. 
 
Is there a way to visualise one hour or more of acquisition at 100Hz with 64 inputs? 
 
Thank you very much for your help
 
Ludovic Charpentier
 
PS : I use a P4
0 Kudos
Message 1 of 5
(2,808 Views)
Hi,
 
Each time you acquire a new point, you put it in a waveform chart. That means that, each time, you make an array bigger and LV will give it a new memory allocation ... This will give a very slow process if you manipulate millions of points (this the case 3600*100*64 = around 23 040 000 of points).
What I can suggest you is to save all datas in a file and you plot only a part of the acquisition (5000 points for example). This will allow you to see a part of the acquisition graph in "real time" and if you want to have all acquired points in only one graph, you will be able to do that at the end of the acquisition.
 
Remember that memory allocation is easy in Labview because you do not have to care about anything. But behind, in the hidden part, big arrays are allocated at each loop iteration and this effectively slowes down your process.
 
Hope it will help you,
Regards
 
David D. - Application Engineer - NI France
 
 
0 Kudos
Message 2 of 5
(2,791 Views)

23 Million DBLs are about 180 MB which, as far as I know, have to be continuous, because of the way LV allocates memory.

What you can try to is simulate this yourself, by initializing arrays to the full size and then replacing elements within them and using Array Subset to extract the information you need into XY graphs (not charts). You can use a slide and property nodes to simulate the scroll bar. My computer (an olf P3 laptop with 512MB) started getting slow at a single array with 10 million elements. Yours, with multiple arrays, should probably fare better.

I used this VI to test this (I modified it a bit by adding an Array Subset so I wouldn't plot all the data).


___________________
Try to take over the world!
0 Kudos
Message 3 of 5
(2,780 Views)
Another approach is to consider that the chart can only display a few hundred to a few thousand points at most for a reasonably smooth curve. Any more than that will result in multiple points per pixel of display. So it may make more sense to save all the data to a file and display a processed subset on the chart. The processing could be to decimate (plot only the first sample from each 1000 samples = 1 point every 10 seconds) or to average a series of samples and plot the average. More complicated processing is also possible but probably not necessary for your needs.

Lynn
0 Kudos
Message 4 of 5
(2,779 Views)

Check out the tutorial for dealing with large data sets in LabVIEW (Managing Large Data Sets in LabVIEW). It includes some tips you need to know, as well as a decimation routine that will probably solve your display problem.

0 Kudos
Message 5 of 5
(2,757 Views)