LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Parallel Loops with Vision

I have another question regarding the general architecture of my main program with parallel while loops. I have 3 instruments that I am collecting data from:

- The Prosilica camera at 10 hz (or 30 if I can get it right!) over gige
- An IMU at 100 hz over serial
- A Birger lens controller updated randomly based on user (~1 data point per minute) over serial

 

My idea was to have two separate loops in the same vi: one for the vision express vi and the other for the two serial instruments streaming the IMU data and polling for an updated change based on the user. These work as independent vi's ran simultaneously but I wanted to combine them. With Labview's multithread capabilities I thought I could just dump the two while loops next to each other on the block diagram but I am having problems and it appears as though the two loops are having an effect on one another. When I toggle the wait(ms) constant in the serial instrument loop I get different results - none of which are what I want. Is there a way to assign a loop to a specific core on the computer? I am using an Intel Core 2 Quad Q6700 2.66Ghz, 3.25 GB of RAM. The Prosilica takes the brunt of the load at 40 mb/sec at 10 fps, the IMU is at about 10kb/sec and the lens controller is almost nothing. Note the attached example runs fine with the serial instruments when the vision express vi is removed.


Thanks,
Nick

0 Kudos
Message 1 of 2
(2,248 Views)

You can use Timed Loops for processor assignment. Just replace your while loops with timed loops via right-clicking them and then open the left outer node of the loop to get the processor assignment connector.

 

Hope this helps

0 Kudos
Message 2 of 2
(2,226 Views)