LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

New TDMS writing issues in a previously working program

Alright, I am baffled here and need help.  I have a program aquiring data from three M-series cards at various sampling rates and writing it all to a single TDMS file.  The TDMS files can be quite large, so I made a file splitter to cut each test file into several smaller files.  This was all working perfectly fine several months ago, but we have been making hardware changes on the test stand and just started our test program again. Now, when I write a TDMS file larger than about 2GBs (about 6 minutes), I get this new error:

 

"Error -2503 occurred at TDMS Open in TDMS File Splitter newest.vi
Possible reason(s):
LabVIEW:  Specified file does not comply with TDMS file format standards."

I have tried using the original version of the program and even tried accessing a file that was made during the original test program from months ago and I still get the same error.  This error occurs with any LV 8.6.1 "Open TDMS File" VI.  When I open it with my other C++ format converting codes I made (which directly read the data using the .dlls provided by NI), the data is all there and it doesn't have any issues.  It is only when I try to access the files with LV, which is a pain because it is what my file splitter is coded in, so I am stuck with these large files.  I have also tried deleting the .index file thinking maybe it was the source of the error - no luck.

 

We are running Windows XP and have two WD hard drives in a RAID 1 configuration on an Adaptec RAID card.  The only significant change we have made recently is we put all of the computers all on a domain instead of the default Windows network WORKGROUP - not sure why that might affect anything...

 

Does anyone know of anything that might be causing this?  Maybe a Windows update that happened over the last few months that could be causing the TDMS files to not read properly?  Or could a RAID read/write issue cause this?

 

Thanks!

 

Hunter

0 Kudos
Message 1 of 15
(3,239 Views)

Here is the latest tdms.dll you can download from ni.com:

http://zone.ni.com/devzone/cda/tut/p/id/9995

Please try with it and see whether the problem is still there. You'd better backup your old tdms.dll in \Program Files\National Instruments\Shared\TDMS firstly.

0 Kudos
Message 2 of 15
(3,222 Views)

One question is that how you split the TDMS files? -2503 error always looks like the TDMS segment header is corrupted.

0 Kudos
Message 3 of 15
(3,219 Views)

I do not modify the original file.  Generally, with data like this that can not be replicated, I try to never modify a raw file.  Instead, I read the waveforms from the original file and write them to a new one using a while loop.  The new file starts with a -1 added to the end.  In each iteration the loop checks the new file size and when it gets larger than what I want to deal with (right now 1GB) it increments up the -# at the end file name. 

 

The problem isn't the cutting part of the code.  It can't even get there.  It hits an error on the first "TDMS Open."  It even gives me this error if I dont try cutting the file and instead use the simple "TDMS Viewer."

0 Kudos
Message 4 of 15
(3,209 Views)

Sorry, I didnt realize I was logged in on this computer under my old login.  me = amswak = r_h_a

0 Kudos
Message 5 of 15
(3,207 Views)

I couldn't understand very well how you add -1 in the end of the file. If you open the TDMS file in a HEX editor and then type -1 there, it will result in a corrupted file. 

0 Kudos
Message 6 of 15
(3,179 Views)

no no, the -1, -2,...,-n goes on the end of the new file name, not the data itself.  And again, this was running a few months back.  I will try the latest TDMS .dll tomorrow and see if that helps.

0 Kudos
Message 7 of 15
(3,173 Views)

apparently the TDMS 2.0 dlls are the problem!  I tried the VIs on a computer that has been untouched for almost a year and everything worked on it!  I am now in the process of trying to revert this computer back to 1.x dlls.  idk, I am guessing it got installed in a DataMX update?

 

-Hunter

0 Kudos
Message 8 of 15
(3,121 Views)

Hello Hunter,

 

Yes, certain driver updates could update the TDMS DLL.  The 2.0 DLL is designed to be backward-compatible, but it appears you may have found a bug.  I'm very sorry for the problems this has caused, and would be very interested (despite the delay in response from your last post) in finding more information from you about how to reproduce this problem.

 

One option would be if you could provide us with a TDMS file that shows this behavior, where it opens when using LabVIEW 8.6.1 on a machine with no driver or other updates, but does not open on a machine with updated drivers and such.  It sounds like your files are very large though, so if you would be able to provide a VI that creates such a file, that would also be very helpful.

 

Also, could you verify the exact file date, size, and version of the DLL located here:

 

C:\Program Files\National Instruments\Shared\TDMS

 

Thanks!

Jeff

0 Kudos
Message 9 of 15
(3,035 Views)

Hallo, same problem...

TDMS files created with LV 861 cannot be opened after installing LV2010 on the same machine, both with LV861 and  LV2010 and executables.

The "Open TDMS" vi returns an error.

Bye

0 Kudos
Message 10 of 15
(2,991 Views)