LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

measuring analog voltage output over 6 hours

Hi,

I am currently trying to ascertain if i have voltage drift in readings from a force balance when it is under an applied load.
The output signal from the balance is +/- 5V and i am using a PCI-6035 DAQ card on my PC. I have tried setting up a program to record and plot the output voltage on 3 channels (axial F, normal F and moment) over a period of 6 hours using DAQmx. I can get the program to scan and plot at a high frequency over a period of up to say 5 seconds. But any longer time than that and i get an error message about a "read timeout". Does anyone know of any specific examples in Labview 7 which i can use to perform this task? I am new to Labview so am kind of feeling my way through this at the moment and would appreciate any advice.

Simon
0 Kudos
Message 1 of 2
(2,072 Views)
Simon,

I do not know of any specific examples which will do what you want, but that is the power of LV: You can easily make your own.

Several issues become factors when doing long term data acquisition: Total amount of data collected, buffer overflows, etc. Since you are reading a balance, it is likely that you do not need a high sampling rate. If you sample 3 channels at 100 Hz and format the data as single precision floats, you will have about 26 MB of data after 6 hours. If you sample at 100 Hz for one second every minute, average the 100 samples and save just the averages, you have 1440 bytes for 6 hours. For drift tests the latter approach should be quite adequate.

Use a state machine structure (see examples). A state machine is a while loop containing a case structure. The work of the program is done in the various cases. For your situation I would have three loops running in parallel. One would handle the DAQ only. Another would be for the user interface. The third would do any data processing, such as averaging, the file saving, and would pass data and commands to/between the other loops. Each loop needs to have a delay so that they will share CPU recources nicely. Use queues or functional globals to pass data between the loops.

Lynn
0 Kudos
Message 2 of 2
(2,061 Views)