08-06-2014 08:59 AM - edited 08-06-2014 08:59 AM
I am currently designing a VI which reads data from a spreadsheet which is being updated from another source.
I currently have my VI reading the information and displaying it on waveform charts.
I have 13 sample points each of which has a chart of its own. I wish to plot the data and be able to review it whilst it is running which is not a problem as I have activated the scroll bar function within the chart.
Now the task I wish to achieve next is to only have a certain amount of history data to review eg 1 hour of data.
So if I have been running the VI for 8 hours there will still only be the previous 1 hours data to review.
Can anybody help with how to achieve this? Has anybody else needed to do anything like this?
Thanks in advance
08-06-2014 09:11 AM
08-06-2014 09:15 AM
Hi,
Would this not keep all of the data plotted stored in memory somewhere? I wish to use this to monitor a process constantly over years and so dont want to kill the computer which it is running on
thanks
Nathan
08-06-2014 09:18 AM
Hi n_,
Would this not keep all of the data plotted stored in memory somewhere?
That depends on how you created/control those buffers…
I wish to use this to monitor a process constantly over years
So you need to limit the history length of your charts or use your own buffers…
(When it needs to run for "years" you should NOT use a Windows PC and you should stay away from any BuildArray function.)
08-06-2014 09:32 AM
Im affraid I have to use a windows PC.
I dont know another way to produce the charts I want without arrays to collect the data from.
08-06-2014 01:17 PM
Use arrays, shift registers, and graphs (not charts). Initialize the arrays to the proper size and use "replace array subset" this will help avoid windows memory errors which can occur when the build array function is used for a long period of time.
To simplify the process of deleting the oldest data point and inserting the newest, use Rotate 1D array in conjunction with Replace Array Subset.