LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Understanding the Invoke Node

Solved!
Go to solution
Solution
Accepted by topic author wsender

If you use a strictly typed VI, you could probably get away with using the Asynchonous Call By Reference Nodes.  I think they were new in LabVIEW 2012.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 11 of 17
(2,429 Views)

Thanks, I think that might be it. What's the icon you have wired to the top terminal of Open Reference VI though, it's not familiar to me? I suspect it has something to do with the reference not being passed properly to the async open.

 

Edit: nevermind, figured out how to create that reference. I'm going to check it out real quick then mark it as solved if it work properly. 

0 Kudos
Message 12 of 17
(2,419 Views)

I'm so sorry. It has been a long day - I completely (somehow, don't ask) missed that you were talking about sub panel, not sub vi. You could use Property nodes to access the values of the sub vi. This method is not exactly efficient though.

 

 

controlaccses.png

 

Edit: You could use other criteria too.  Name, Class type, etc.  You can also write value to the control inside instead of read it.

0 Kudos
Message 13 of 17
(2,415 Views)

So that seems to be working correctly. However, I get this error...

 

"Error 1576 occurred at Start Asynchronous Call in Master.vi

 

Possible reason(s):

LabVIEW: (Hex 0x628) A Start Asynchronous Call node received a reference input that was not configured to allow asynchronous calls. To fix this error, include either the 0x80 option flag or the 0x100 option flag when you open the reference with the Open VI Reference function."

 

Wiring the 0x100 option to the call work. Not sure really how this changes anything, or how it can be avoided. 

0 Kudos
Message 14 of 17
(2,400 Views)

From the help file for Open VI Reference:

0x100 Prepare to call and collect—Use this option flag when you want to collect the results of an asynchronous call to a target VI with the Wait On Asynchronous Call node. If you use this option flag, you must include one Wait On Asynchronous Call node for every call that you begin with a Start Asynchronous Call node to ensure that LabVIEW does not retain any started calls in memory indefinitely. Do not use this option flag with 0x08 or 0x80. Refer to the AsynchronousCallAndCollect VIfor an example of using this option.
Note  LabVIEW returns error 1578 if you use this option with a reference to a remote VI.

GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 15 of 17
(2,386 Views)

Thanks again for all the help. This has definitely got me going in the right direction. 

 

Out of curiousity, what does "Remove VI" do. I've noticed that it doesn't remove the VI from the panel, which given its name, is what I imagined it would do. 

0 Kudos
Message 16 of 17
(2,380 Views)

wsender wrote:

Out of curiousity, what does "Remove VI" do. I've noticed that it doesn't remove the VI from the panel, which given its name, is what I imagined it would do. 


It is supposed to remove the VI from the subpanel.  Are you getting an error?  I don't know if an error would prevent the VI from being removed.  I'll have to check that out in the morning.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 17 of 17
(2,359 Views)