From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
03-03-2014 02:14 PM - edited 03-03-2014 02:15 PM
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.
03-03-2014 02:24 PM - edited 03-03-2014 02:28 PM
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.
03-03-2014 02:29 PM - edited 03-03-2014 02:30 PM
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.
Edit: You could use other criteria too. Name, Class type, etc. You can also write value to the control inside instead of read it.
03-03-2014 02:40 PM
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.
03-03-2014 03:06 PM
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.
|
03-03-2014 03:12 PM
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.
03-03-2014 07:42 PM
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.