LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Does the cRIO flash file system have a file size limitation?

Hello,

 

I am using a cRIO-9024 in an application where it receives a trigger and then collects samples for 5 to 60 seconds.  The data is collected real-time into an array and then saved to the flash file system after the acquisition is complete.  After several acquisitions, the PC FTPs the data and deletes the files.  The data collects at about 0.25 MB/sec so on a 30 second run I get a 7MB file.  For data sets < ~4MB everything works fine.  At ~7MB it works most of the time but occasionally crashes on the call to save.   When it crashes, there is a 0 Byte file created, and the cRIO completely hangs, I have to power cycle or reset button to recover.  The crash frequency goes up as the file size gets larger until at 16MB it crashes every time.  I have a check box to save/not save the data and all of my porcessing and other functions work perfectly no matter how big the data set is.  It is only the save to flash that crashes with the larger data sets.

 

So my question is:  is there a limit to how big a single file can be?

 

If so, I can subdivide my data into smaller chunks.  If not, any suggestions as to why I would be crashing?

 

I use the "Write To Binary File" vi with the entire data array as the input.

 

Labview 9.0 Professional Development System

Ni-RIO 3.2.1 with scan engine support August 2009

 

Thanks,

Nathan

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

Nathan West,

 

There is not a limit to the file size that I know of (other than the amount of free space you have on the hard disc).

 

You can monitor the memory usage of your controller in the Distributed System Manager from your host computer. If you did this, it would be interesting to see how much ram you are using before you write to the file. Though it is unlikely that you are using all 512MB of Ram in your controller, it is still a possibility.

 

Also, it could be possible that you are getting an error in your RT code, are you passing your errors through the error wires? You could also check the error log to see if you got any errors.

 

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ben Sisney
FlexRIO V&V Engineer
National Instruments
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 Kudos
Message 2 of 6
(3,024 Views)

Thanks for the reply...

 

I am running the vi on the cRIO with the front panel on a PC so my diagnostic capability is limited.  I can monitor the memory and it never goes above 100MB (out of 512).  I do have error nodes wired through the vis, but when it crashes it immediately looses connection to the remote host so I cannot get any info from it.

 

It does not crash every time, or even consistently.  Sometimes it will crash the first time, sometimes it will run 15 times before crashing.

 

I even tried breaking the data into smaller pieces and saving it in several smaller files.  Still randomly crashes.

 

Nathan

0 Kudos
Message 3 of 6
(3,009 Views)

Nathan West,

 

Is it possible to replicate this problem with a really simple RT application that writes random data to a file? What file I/O functions are you using?

 

You could try upgrading to RIO 3.3.0 on your PC and cRIO to see if this issue still happens.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ben Sisney
FlexRIO V&V Engineer
National Instruments
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 Kudos
Message 4 of 6
(2,988 Views)

Thanks for the input

 

I thought I had it figured out, but I still see an occasional crash.  I put my save to flash function in a vi of its own and it runs fine.  I use the standard "write to binary file.vi"  The problem seems to be when other loops are running in parallel.  If my diagram has any timed loop structures, then it crashes.  So I removed all of my timed loops and slowed down/simplified all of the other loops.  This helped a lot.  While it used to crash about every 5th time now it will run about 50 on average but still crashes about once a day.  I am rewriting my vis to run sequentially in a single loop so that they arbitrate with each other manually (so much for real-time)  I will see if that works, but in the meantime..

 

I can try the upgrade to 3.3.0 if you think that will help, but do I also have to upgrade anything else in my design environment (ie can I leave the rest of labview alone and just update the cRIO)?  If the upgrade has trouble I need to be able to revert back to where I am now.  I can't afford to begin a large upgrade which will take me down for a while.  I had a lot of trouble installing all of the Labview environment the first time, so I don't want to start something that I will regret.

 

Nathan

0 Kudos
Message 5 of 6
(2,918 Views)

Nathan,

 

Installing a newer RIO shouldn't take very long, and after installing it all you have to do is update the software on the cRIO through MAX. To revert to an older version of RIO you can just uninstall the newer version and reinstall the older version.

 

If you have any code that you could post to simply illustrate the issue, it would give me a better chance to replicate the issue. Would this be possible?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ben Sisney
FlexRIO V&V Engineer
National Instruments
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 Kudos
Message 6 of 6
(2,903 Views)