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.


There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
Message 11 of 17
(1,083 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
(1,073 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
(1,069 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
(1,054 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.

There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
Message 15 of 17
(1,040 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
(1,034 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.


There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
0 Kudos
Message 17 of 17
(1,013 Views)