Yaauldgoat,
I took a look at your VI, and have made some modifications. As altenbach mentioned, opening, writing, and closing a file all is very inefficient, and probably not a great idea in a control loop. I have also modified the DAQ code to speed it up. The DAQmx API maintains a lot of state information. When you use the write VI by itself, every time it is run, it must transition the task through all of it's states, write, and transition the task all the back to its idle state. I have added code with will move the task to a running state before the control loop starts. I then write in the loop, but the task is left in a started state. When the loop ends, the I then stop and clear the tasks. This should be considerable amount faster than the prior implementation. However this may be a non-factor because of the file access. The one final thing I noticed is that you have the output of the Write VI wired to a loop tunnel. As the loop executes, I believe LabVIEW is going to be building an array to store data in at that tunnel. The longer you run the VI, the more data will acquire, and the more memory LabVIEW will need to allocate for this. As arrays get big, this can be a time-consuming operation. Especially given the fact that the terminal is unwired, I would probably remove it. I'll attach my modified VI.
I hope this helps,
Dan