Duplicate of http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Charts-with-quot-non-evenly-spaced-quot-timestamp-per-...
Always a pain with charts and time stamped x axis.
How about a new chart type (or an a new option in properties) for an automatic x axis time stamp. Either absolute or relative!
That can currently be done by setting the Display Format of the axis.
No. I'm talking about variable dt.
Can you please clarify? What you say about variable dt is nowhere hinted at in the original message.
What I am asking for is a solution for a situation where you essentially want a chart but have inconsistent / not guaranteed acquisition sample rate. Especially sampling over long period of time (several weeks) where small 'glitches' etc accumulate to a large time stamp error on the chart.
At the moment a solution that I know of and use is to replace chart with XY graph, wire time stamps manually in the code, handle circular buffer etc myself. I'm sure if this was done within the chart LabVIEW code, it would be more efficient (and user friendly).
You mean like this: Sporatic Waveform Chart
Also note that in the Front Panel palettes, there is an Express XY Graph. When you drop it, it also gives you and Express VI on the block diagram called Build XY Graph which takes X and Y data and does the buffering for you.
Thanks for the suggestions. It is not exactly what I had in mind but the Sporatic Waveform comes close - will check it memory and cpu load with large data/long runs. The express XY graph does not do the buffering I'm after I don't think. It only builds the X, Y arrays. It will not remove old data like chart does.
(BTW I'm not fan of express VIs - they hide what the program is ment to do.)
Ideally - and I have done this few times with coding - the graph/chart would keep certain number of latest data with auto-time stamps and then prune older data - eg decimate. I've done this for few applications where the user collects data for days and weeks. It is useful to see data over that period of time on the graph but only need to see detailed data over lets say 60 hours (to cover the weekend).
This keeps the CPU/memory at bay. All data is still logged into a file of course.
That is true. The express graph does not clear out older data like a chart. I'm not a fan of Express VI's either, but I'll use them occasionally. Especially if I need to get something going quickly, and later replace them with something else if they aren't quite doing what I want. I think they are also a nice starting point, and when you right click Open Front Panel, you can see the inner workings of what it is doing once it gets turned into a regular subVI, then I'll modify it from there.
One option I have actually just used for the first time is to store the data in a queue, that way I don't have to worry about memory thrashing on large arrays. A size limited queue can discard the oldest data once it fills up. When you need the data in the queue, use Preview Queue with the Show Elements boolean input set for True and it will give you an array of all the data in the queue. You can flush queue to wipe it clean.
Doing something like selectively pruning older data is a bit more complicated. One possibility for that is to maintain two queues, one that stores all the data for the last 60 hours, another where you simultaenously store the data, but lets say only 1 out of every 10 values gets stored tol hold the longer term data.
Definitely good idea! Kudoos.
But already suggested here and (my own idea ) here.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.