Jump to content


Photo
- - - - -

generic file I/O (error 6) on LabVIEW RT 9.0


  • Please log in to reply
2 replies to this topic

#1 totomalino

totomalino

    2 more posts to go.

  • Members
  • 8 posts
  • Location:switzerland
  • Version:LabVIEW 2009
  • Since:2003

Posted 26 October 2010 - 09:59 AM

Hello,

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

Best regards

Antoine

#2 Mellroth

Mellroth

    The 500 club

  • Members
  • PipPipPipPipPip
  • 535 posts
  • Version:LabVIEW 2011
  • Since:1995

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...

Hi,

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
/J

#3 totomalino

totomalino

    2 more posts to go.

  • Members
  • 8 posts
  • Location:switzerland
  • Version:LabVIEW 2009
  • Since:2003

Posted 27 October 2010 - 09:17 AM

hi

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

Cheers

Antoine