10-03-2009 06:19 PM
Sorry for the double post. I messed this up.
I have 5 subvi that I launch from a main vi as setup screens for the various functions of the main vi. All works well except for one of the subvi takes a very long time to load and a message box pops up with the deployment messages in it. The subvi in question is the only one that accesses I/O points on a FPGA. I'm running LV 8.6.1. Can someone help me with this and tell me what I'm doing wrong?
10-03-2009 06:22 PM
Blog for (mostly LabVIEW) programmers: Tips And Tricks
10-03-2009 06:35 PM
Sorry, I'm not connected to the FPGA at the moment so I can't give the exact messages. Its the standard message box that I see any time I deploy a VI. I was hoping it wouldn't pop up every time I launch the subvi. I'm also hoping I'm just missing a step.
Thanks
10-03-2009 07:55 PM
Is there something particularly large about this subVI?
What is its size on disk? If you do File / VI properties then Memory Usage, what do those numbers look like?
10-03-2009 08:39 PM
There is nothing special about the VI except that it is accessing I/O points on the FPGA. Here it is. Front Panel Objects: 12.8K, Block Diagram Objects: 7.4K, Code: 3.5K, Data: 3.2K, Total 26.8K, 8.8K Size on Disk.
I can't show the calling VI as it has proprietary info in it. The VI is called from an event structure with a VI reference, then FP.open Invoke node (Activate, Standard) and then a Run Invoke Node (Wait till done - True).
Perhaps I should be opening this VI with the main and then activating/deactivating when I need it? I'm asking, I don't know.
10-03-2009 09:14 PM
10-03-2009 09:49 PM - edited 10-03-2009 09:51 PM
I don't have an answer as to why your Maintenance VI takes so long to load.
But I do have a few things you can do to simplify the two subVI's.
First, with the Replace Array Subset function, you don't need to wire up all the indices. Each index is always +1 more than the previous index. You don't have to wire up the initial index as 0. If it is left unwired it is assumed to be zero.
But actually, you don't need either the Replace Array subset, or even the case structure in either subVI. Just Or the All Brakes/Drag boolean input with your Brakes/Drag Array. If the boolean is true, then all elements of the Array will become true. If the boolean is False, all elements of the array will remain their current value. That is exactly what you are doing in your current subVI's but does it with a fraction of the code.

Note: The wire is broken because I don't have the shared variable that defines that section of code.
10-03-2009 10:09 PM