generic file I/O (error 6) on LabVIEW RT 9.0
Posted 26 October 2010 - 09:59 AM
I have a question regarding file I/O : I have a PXI target, with 8110 Controller, LabVIEW RT 9.0 inside. I handle a big amount of data coming from RT FIFO shared Var. I would like to store them on the HDD of the controller, and try to use fastest I/O file operations by using Windows buffering disable. But if I set (true) input "disable buffering" in Create/Open/Replace File vi, I get error 6. If I reset it (false ) I have no problem...if I set it under my host computer, not on the target, that works....Does it mean I can't disable buffering I/O transfert with LabVIEW RT 9.0? it's curious, because in some knowledgebase papers, it seems we can...
Thanks for your help
Posted 26 October 2010 - 02:42 PM
... But if I set (true) input "disable buffering" in Create/Open/Replace File vi, I get error 6...
If you want to stream data to disk as fast as possible, you must know the block size of the harddrive, and write data in chunks with size that is a multiple of this block size.
The reason is that RT does not use buffering (probably the cause of error 6), and it must therefore read the old block before writing a partial block to disk. So, writing partial blocks to disk results in unwanted disk access as well as decrease in performance.
Hope this helps
Posted 27 October 2010 - 09:17 AM
Thanks for your answer. Ok, so disable buffering on RT target is not a way to follow. Actually, I have a "spinning" buffer with 150000*4 bytes of data, which is equivalent to 30s of measurement. If I save it on the HDD of the target via binary file , i can reach less than 2 seconds to process, it's the best that I can do for the moment.
thanks again, your answer helped me