10-27-2010 05:39 PM
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
10-28-2010 08:56 AM
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.
10-28-2010 09:06 AM
One question is that how you split the TDMS files? -2503 error always looks like the TDMS segment header is corrupted.
10-28-2010 10:41 AM
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."
10-28-2010 10:42 AM
Sorry, I didnt realize I was logged in on this computer under my old login. me = amswak = r_h_a
10-28-2010 04:46 PM
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.
10-28-2010 06:18 PM
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.
11-01-2010 01:56 PM
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
12-07-2010 11:10 AM
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
12-15-2010 06:54 AM
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