Showing results for 
Search instead for 
Did you mean: 

Correct Way to Pass Data from Main VI to Sub VI

@Freelance LV wrote:

@Griffon2-6 wrote:

I've figured that out too - set the "Option" input on the "Open VI Reference" block to 0x8.  



Thats the way to go. Keep digging around and you will find solutions in the LabVIEW Help or on the forums for most of the things.


When you set the open VI reference option to 0x08, you can obtain reference to different instances of the same VI, so that you can pass different data and let them run separately.


@Griffon2-6 wrote:

However, now I've discovered that the inputs from the main VI are not being passed to the subVI instances as the program is running. Does passing control values via invoke nodes allow for real-time data transfer?


I have one question. You said you are calling this sub VI in a sub panel? How many subpanels do you have and why are you calling the reentrant vi in differnet sub panels?


Could you post your code?


(If a post helped you sove the problem, mark it as solution. That will help us identify and track the solutions for different issues.)

Thanks for the reply. I have ten subpanels, each one with its own instance of the subVI. Each one controls a set (or "zone") of lamps and each one needs to have identical functionality. I've attached my code, but you'll probably need the DSC and Report Generation Toolkit modules to run it.


I'll mark the solution posts once this is resolved.



0 Kudos
Message 11 of 13



I am looking at your code. I shall get back to you on this.


Its quite a big block diagram. you can optimize it better

0 Kudos
Message 12 of 13



The concept as such works fine. I tested with a sample code and the logic is correct. You can find the attached vi which i made for testing.


However, in your code, i could not yet identify the actual cause of error. The sub panels where you are using invoke nodes is getting the data. however, it is not passing to the subpanel vi.


Suggest you to optimize your code, redo the wiring to be more clear, remove redundant code and use subvis for common functions.


As i do not have LV 2011 at my place of work, i will be able to continue with your code only in the evening.




0 Kudos
Message 13 of 13