04-27-2017 05:46 AM
Hello, i am using intensity chart, and my x axis should be real time. I tried to make property node and the minimum i put 0 and maximum 86400, for 24 hour. Also i selected from properties to show x axis with relative time. But labview is giving me memory error when i am trying to create array with 86400 indexes and 6000 colums to fill intensity chart. Is there any possible way i can remake this chart using minutes not seconds as increment points. So i can make lower array without errors.
Solved! Go to Solution.
04-27-2017 06:22 AM - edited 04-27-2017 06:23 AM
Hi guy,
trying to create array with 86400 indexes and 6000 colums
Lets do some simple math: 86400*6000 = 518400000 = 518.4 million elements…
When each element needs 8 bytes (DBL value!) you will need 518.4e6*8 = 4147.2e6 bytes = 3955.1 MiB (or roughly 4GiB)! Using 32bit LabVIEW you cannot handle this much memory!
Using 64bit LabVIEW you could handle this memory reqirements - but is it really needed to put 500e6 data elements into an intensity chart displaying maybe 400*400 pixels???
04-27-2017 07:21 AM
Yes, i understand it's imposible to create , but then why is intensity chart designet that way , so you need milion element array to show 24 hour? Maybe there is an easier way to make that happen,
04-27-2017 07:30 AM - edited 04-27-2017 07:30 AM
Hi guy,
Yes, i understand it's imposible to create
Ok, fine.
why is intensity chart designet that way , so you need milion element array to show 24 hour?
Wrong…
You would need an array of this size to keep ALL data for the last day in memory - but nobody is forcing you to keep ALL THIS DATA in memory!
You could also input one column of data (6000 elements) per second, while setting the history size to reasonable size (like 3600 entries)…
Maybe there is an easier way to make that happen,
Yes, sure.
Decimate your data into reasonable array sizes. It doesn't make sense to plot 500million points in a chart only showing less than 1million pixels!
04-27-2017 08:22 AM - edited 04-27-2017 08:30 AM
And what about for example i reached 18:00 o clock, with seconds it's something like 50000 seconds. so i if i need to show data for 18:00 i should have array sized with 50000 indexes, or i understand wrong? I mean let's say you want to show data from 17:00 to 18:00 then for 17:00 it's represented as 40000 indexes, and 50000 for 18:00 . So you need those big arrays, anyways.
04-27-2017 11:07 AM
An intensity chart takes one column (1D array) with each update and the total memory is determined by the history size. So, just update 1/minute and adjust dx accordingly.
04-28-2017 01:40 AM
Would you please give me your example not just default examples with real time timings in it. I would be very grateful
04-28-2017 01:52 AM
04-28-2017 02:08 AM
Here is the vi i attached, can we make it work with real time data, wtihout full memory error.
04-28-2017 02:29 AM
Hi guy,
your VI runs just fine without any "memory full" message…
Again I recommend NOT to display 86400×6000 data elements in your 300×200 pixel wide chart. IT DOES NOT MAKE SENSE!
can we make it work with real time data, wtihout full memory error.
Yes, sure.
Again I repeat the suggestion given before: decimate the data to reasonable array sizes…