LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Error 1003: VI not executable

I have an invoke node spawning a VI open. When I run the main program as a VI, it works fine. When I run the main program's executable and it calls the spawn vi and the invoke node I get the above error message. The VI in question isn't in the llb file but neither are a few of the other VIs that get called properly. Any reasoning for it working as a VI but not as an executable? Nothing has been moved or changed.
 
Would placing it in the llb help or would I still run into this problem? Also, running the same program under LV6.1 (using 7.1 now) does not result in this same problem.
0 Kudos
Message 1 of 6
(3,434 Views)
How are you opening the reference to the vi?  Are you searching just with the vi's name?  Could you post your example.  It sounds like a path issue or how you are opening up the reference.  If you are stripping a path and using the "Current Vi's Path" function you must do a double string to get the base path in an exe where as in the development system you only need one strip.  Hope this helps.
 
 
BJD1613

Lead Test Tools Development Engineer

Philips Respironics

Certified LV Architect / Instructor
0 Kudos
Message 2 of 6
(3,425 Views)

The times I have seen this is was the result of a DLL not being found when the executable launched the plugin.

Mike...


Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 3 of 6
(3,417 Views)

Gary,

Because the VI is being launched from the executable and not the development environment, it may not know where one or more of its subVIs are. For the external dynamically launched VI, you should do a Save With Options and save it to an Application Distribution llb file. This will save it and all of it's subVIs into the llb. By launching it from within the app-dist llb, it will be able to find all of its subVIs and you should not have the problem anymore.

Regards,

Aaron

LabVIEW Champion, CLA, CPI
0 Kudos
Message 4 of 6
(3,408 Views)


@Aaron G wrote:

Gary,

Because the VI is being launched from the executable and not the development environment, it may not know where one or more of its subVIs are. For the external dynamically launched VI, you should do a Save With Options and save it to an Application Distribution llb file. This will save it and all of it's subVIs into the llb. By launching it from within the app-dist llb, it will be able to find all of its subVIs and you should not have the problem anymore.

Regards,

Aaron



I'll try this. We alreayd save some VIs to the llb but this one wasn't ever included in the previous two versions of the system (LV5.1 and 6.1). It would seem strange if suddenly the VI needed to be included in the llb but I'll try it. Thankls for the help.

Gary

0 Kudos
Message 5 of 6
(3,397 Views)


@Aaron G wrote:

Gary,

Because the VI is being launched from the executable and not the development environment, it may not know where one or more of its subVIs are. For the external dynamically launched VI, you should do a Save With Options and save it to an Application Distribution llb file. This will save it and all of it's subVIs into the llb. By launching it from within the app-dist llb, it will be able to find all of its subVIs and you should not have the problem anymore.

Regards,

Aaron




I tried adding the necessary VI to the llb through the save as application distribution but there's no option to add more files. It just seems to use the ones that are already in the llb. Perhaps this has something to do with the way the program is setup. Let me try to explain a bit clearer. My main program is running. When I select options from our menu it calls a sub-VI called spawn node. Inside spawn node it opens a VI reference and calls the VI. In this case, when I run the main program as a VI, everything works properly... the spawn sub-vi opens and properly runs the invoke node with no problems. When I run the main executable the spawn sub-VI works for some of the things it gets called for but one on particular VI I get the stated error.

If I understand the way LV runs then the executable is the only thing compiled and at run-time if other VIs are needed the run-time grabs them from their location on disk (as a VI) and runs them. If that's the case then why would the VI run when the main program is executed as a VI but not as an executable?

0 Kudos
Message 6 of 6
(3,389 Views)