LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

software and hardware timed DAQ together

Hi,

 

I would like to ask for advice.

I have attached my example VI. I started from an example shipped with LabView 2012 (-Voltage -Continuous input).

 

My measurement need to do the following: I have a PCI-MIO-16E card to measure some voltage with 200 kHz rate. Beside, I need to monitor another voltage value in my experiment, where I use an USB-6009 device. For this monitoring, I do not need high rate, about 10Hz is enough. When the monitored voltage reaches a pre-defined value, I need to stop the high rate DAQ and the simultaneous writing it into binary file (we will need some post processing using ANSI-C code, therefore the little-endian format). I do not need a strict sync between the two measurement: about 0.1 sec precision is ok to stop the high speed DAQ and file writing.

 

Could you advice my code, if I need to improve something? I did not tested it yet (not in my lab now).

thanks very much!

0 Kudos
Message 1 of 5
(2,450 Views)

I almost forgot the most important question: between iterations of the while loop is it sure that I get all of the data from the PCI card? I mean, there are no gaps between the sampled 20k number blocks?

0 Kudos
Message 2 of 5
(2,447 Views)

Hello Blokk,

 

have you tested your VI in the lab now?

I will try to watch your VI this afternoon.

 

Best regards,

Tobi

0 Kudos
Message 3 of 5
(2,408 Views)

Hi,

 

Actually I just forgot about this post 🙂

I have found a working solution: I use two parallel while loops, the top one is the fast, with internal timing, the lower one is a slow, with software timing (10 msec actually). I monitor the mentioned voltage signal with the lower while loop, and in the case of reaching limit, I call a functional global variable. This FGV works as a switch, I can stop the fast loop with this. The top loop calls this FGV in every iteration, and checks wheather it needs to stop.

 

So far everything is working, and I write data in a binary file with the top loop.

 

A final question, maybe you know the answare:


in the case of the USB-6009, when I collect data on two AI channels, I understand that, it is multiplexed. Is it possible to use two different AD range for these two channels? If I create the two virtual channels (DAQmx palette) using one VI, I can only specify one range. What happens if I create these channels separately, with different ranges, and after that I call them multiplexed? If this possible, how can I do it?

 

thanks!

0 Kudos
Message 4 of 5
(2,405 Views)
0 Kudos
Message 5 of 5
(2,396 Views)