LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Data to disk in LabVIEW RT...

How much time is required to read and write data to a HDD? Are the access and seek times of the HDD a factor for reading and/or writing?

Is it possible to upgrade the HDD with a better performing unit?...higher speed, lower seek and access times?

Can we set up a SCSI HDD? Can we use RAID Stripping? How about an AT Serial HDD via the serial bus?
0 Kudos
Message 1 of 3
(3,106 Views)
The time required to read and write data to a HDD is very dependent on the program that is running. The amount of time that the time critical loop requires the processor dictates how much time the processor has available for streaming data to disk. It should be possible to upgrade to a better performing unit although I have not done that so maybe someone else that has could comment on how much performance gain was acheived. Currently there are not drivers to add other types of hard drive systems to an RT system however, you could stream the data over TCP and stream it to disk on another system which could accomadate a SCSI or RAID system.

Regards,

JR A.
Application Engineer
National Instruments
0 Kudos
Message 2 of 3
(3,106 Views)
Hi Troy,

You hav been asking alot of questions that are similar to what we managed to handle in a demanding app that I memntioned in a post to one of your prior questions.

I would like thow out some ideas that I used in that app because one of tem may help in your project.

I had to monitor very high channel count at high speed while running five PID loops, one of which used a serial port to drive an electronic device controller.

Tips
1) I used a windows based app to steam all of my data to disk while maintaining a round robin buffer in hte background.
This shifted my data storage requirements off of the RT app. THe user could select a sub-set of the data for viewing "pseudo-realtime". The inputs and outputs of everything involved in the real-time app where duplicated on the windiws side. My sample rate on the windows was then independent of the RT system.

2)I also monitored some of the internal values of my RT process model by routing those signals to extra out lines on the RT platform. This allowed quick evaluation of our process model and permitted quick resolution of design flaws.

3)The analog PID read-process-write code was set as time critiacal and hardware timed.
This loop used a global to pass the vaues used by the serial output code. All inputs were over sampled. Look-up tables were used to allow user modification of the process model and quick evaluation of same.

4)The serial WRITE was a high priority thread that read th global and wrote both of the serial port. THis loop depended on the determinism of the RT-OS and did only the transmit tasks.

5)The serial READ operations were done on the WINDOWS platform.
The two streams of information were then syncronized (due to Windows issues) and then posted to a similar buffer as was used in the analog acquisition.

6)Control of the RT app was accomplished by accessing a functional global that was served by the RT platform to the Windows app.
By makingthis VI a sub-routine, I was able to use t "skip if busy" option on the call to the functional global in me Time Critical and High Priority loops. This let me change the operating parameters of my five PID loops "on the fly" from the windows side.

The over all strategy was to have the RT platform do as little as possible.

No file I/O.
No serial Reads.

I hope that some of these ideas help you or others in developing solid RT apps.

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 3 of 3
(3,106 Views)