From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to avoid one single large TDMS file?

That was strange. I have several 6 and 7 GB files on my XP 32 bit computer. I am not sure why you have this trouble. But I think this is a OS problem. Not a Labview problem  



Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)
0 Kudos
Message 11 of 15
(1,278 Views)

Hi Guosong,

 

Are you using the TDMS logging feature that is built into NI-DAQmx? If so, you should take a look at DAQmx Logging New Features - Split files, non-buffered logging, and pause/resume.

 

Brad

---
Brad Keryan
NI R&D
0 Kudos
Message 12 of 15
(1,260 Views)

If your filesize is more than 4Gigabyte you cannot transfere it between systems with Fat32. Even though the file was created on a system with ntfs, you still cannot transfere it to a system that uses Fat32. I would recommend that you convert your Fat32 systems to NTFS, since Fat32 belong to the previous millenium.

Regards,
Even
_________________________________
Certified LabVIEW Associate Developer

Automated Test Developer
Topro AS
Norway
0 Kudos
Message 13 of 15
(1,247 Views)

The system is already NTFS!!

0 Kudos
Message 14 of 15
(1,240 Views)

Hi Guosong,

 

This is a fairly common issue whenever you're streaming data to disk a relatively high speeds - wanting to limit the size of a given file.

 

How about a simple flush/close and create/open new file periodically?

 

More specifically, if you're reading a known number of samples on each iteration, you can actually pre-compute the number of loop iterations between new file creations pretty easily.

 

Also, not sure what architecture you have going, but if you're streaming at a fairly high rate, it might be helpful to separate the DAQ read and TDMS write loops.  In the DAQ read loop you can read and enqueue the data to a queue, and in the TDMS write loop you can dequeue the data and then write it to TDMS.  You'd of course be doing your periodic flush/close, create/open in the TDMS loop.

 

In the end, you'll produce a series of TDMS files which are size limited to whatever you need.

 

Hope this helps!

 

Best,
JLS
Sixclear
0 Kudos
Message 15 of 15
(1,239 Views)