05-14-2020 02:44 PM
@victor55 wrote:
Another question I have is - my goal is to not overflow the PC's RAM with data and I would like to display X amount of data points on the screen then remove them from the buffer once they're saved to TDMS. I will probably have 16 or more channels collecting data and displaying data at 100kS/s. Basically, I want to keep only 5-10 seconds worth of data per channel in the buffer to display on the GUI and the rest is saved then removed from buffer memory.
Charts do that already. You just set the chart history (right-click option on the chart). Since you are writing waveforms, the chart history is the number of waveforms you write to the chart. So if you are following my 100ms rule, to keep 5 seconds of data in the chart you need the history length to be 50, or 100 for 10 seconds.
05-14-2020 03:18 PM
I see. Thank you! I was successfully acquired 100 kS/s for all 8 channels with your suggestions.
There is still missing time component in the data file. How do I also print the time component of the data acquisition in TDMS? Do I have to separately calculate that and add another column separately?
This is what TDMS wrote to file.
05-14-2020 03:42 PM
What do you actually plan on using to view the data? You will very quickly reach the limits with Excel. If LabVIEW, you just read the data as waveforms. The timing information is part of the meta data (start time (T0) and sample time (dt)).
05-14-2020 03:45 PM
Your timing information is saved as t0 (wf_start_time) and delta-t (wf_increment) in the TDMS file. Using the Excel importer this will appear on the other tab in the Excel file. If you want to have a column of times then you will need to write the time column. There is a Waveform function to get the time array.
05-14-2020 05:59 PM
I plan on using python to post process TDMS data.
I'm trying to get something that looks like
time(s) AI1 AI2
0 0 0
0.001 2 2
0.002 2 2
.
.
.
0.100 2 2