LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Error code -2500 while streaming to TDMS file

In my application, I am attempting to stream live data to a TDMS file. In short runs, there is no problem. However, if I run it for too long (10-15 minutes), I get error code -2500 at the TDMS Write function, with "Storage VI's internal error" listed as a possible reason.

 

I've attached screenshot of the section of code where the error is occurring. If anybody has seen this error code before or has an idea of what might be causing it, please let me know.

 

Thanks,

Brandon

0 Kudos
Message 1 of 6
(3,125 Views)

Its pretty hard to tell exactly what the hidden code is doing but, in general I would change your approach somewhat.  But it looks like for Each Group, you choose weather or not to write data for each channel and write the channels one at a time

 

Try collecting the Data, and Channel Names in arrays then in the inner loop and write all selected channels data PER Group to the TDMS file.

 

In fact, it looks like your "Stress Data" has an "Interleaved" data layout so you could probably "Get Array subsets" and use conditional tunnels to select enabled channels and data.

 

If you save some "Default Data" and post the actual vi,and a small section of an example TDMS we can probably get that vi down to the size of a postage stamp.


"Should be" isn't "Is" -Jay
0 Kudos
Message 2 of 6
(3,108 Views)

I found this which *may* be related to your issue:

 

http://digital.ni.com/public.nsf/allkb/8E57CA5AEB3D88B5862575B60063BA2A

http://zone.ni.com/reference/en-XX/help/371361L-01/lvconcepts/fileio_tdms_file_buffering/

 

If possible, uploading your code may make debugging slightly easier. It's a little hard to tell 100% what is going on from the screenshot.

CH
Applications Engineering
National Instruments
http://www.ni.com/en-us/support.html
0 Kudos
Message 3 of 6
(3,041 Views)

Here is a slightly modified version of the code. The screenshot I posted before was of a sub VI that is placed inside of a loop in the main block diagram, which runs at up to 1000 Hz. The input data is an array where the first 70 elements come from rosette strain gauges and the last 10 come from single strain gauges.

 

I also attached an example of what the file might end up looking like.

Download All
0 Kudos
Message 4 of 6
(3,035 Views)

You may want to consider wiring the error cluster through your program and out to a simple error handler to better isolate the issue as a first step. I will try to look into this further.

CH
Applications Engineering
National Instruments
http://www.ni.com/en-us/support.html
0 Kudos
Message 5 of 6
(3,013 Views)

I just tested the previously posted section of code having added a section to manually set the NI_MinumumBufferSize property for each channel. Doing so allowed the program to run for over an hour (4 times longer than before) before crashing. I also observed that the size of the TDMS and index files was significantly reduced.

 

Do you have a recommendation for how big to set the buffer for each channel? In this case I used 1000.

0 Kudos
Message 6 of 6
(2,995 Views)