Showing results for 
Search instead for 
Did you mean: 

advice on datalog method


hi all, i'm seeking some advice on how to datalog (timestamp + ~70 values) every 30sec or 1min. Those readings come from a modbus device (power analyzer - electrical parameters) i have already established connection.

With those readings i would like to be able to:

  • store them in a different file per day (2880 items for 30sec period - 1440 for 1min)
  • view them live in a table/multicolumnlistbox as they are measured
  • be able to plot each value (y) timestamp (x) a) live as they come up b) selecting a timestamp range and plot the stored ones

which method of datalog youre suggesting me? tdms, binary, worksheet, database etc and why.

im short of sql knowledge to set up a database, willing to learn, but im pretty short of time to finish my project (1 month).


thanks in advance. Smiley Happy

0 Kudos
Message 1 of 2

This is what I usually do:

  1. Obviously TDMS files!
  2. Just use a table, and show the actual values...
  3. In my application I keep for example 1 day of data in memory beside the TDMS file logging, so it is easy to plot the required intervals/plots in a XY Graph.
    • For this, you need to do some programming, like create a storage place using a FGV
    • limit the max number of data values to avoid memory leak
    • setup some kind of decimation protocol, it does not make sense to force LV to plot more data points on the XYGraph than the number of pixels in horizontal. So if you ask your code to plot an interval which results in data number smaller or equal as the pixel size of your Graph: just plot the raw data. If you have more values, you can decimate with your preferencial method: decimation, average, etc...
  4. If you have a previously recorded TDMS file, you can use the above algorithm to plot the desired intervals/plots in a proper manner, after reading the file into memory...
0 Kudos
Message 2 of 2