LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Use an Executable VI as a Sub-VI

I was given an executable VI built in LabVIEW 5.1.1, no code, just executable, and was asked to investigate it. It was a large application that controls devices. I can use a logic analyzer to monitor the communications between the devices while the executable VI is being manipulated. But it is very troublesome to this if there are thousands of uniques patterns to execute and monitor. Thus, I am trying to control the executable but it seems to me that there is no way. Can anyone help me?

I wish to make every front panel activity in this executable VI to be a trigger to my LabVIEW program which will investigate it. Then, a state machine will process the activity while it controls a monitoring hardware.

I have no problem with my monitoring hardware, but I have a very big problem on how to capture the front panel activities of this very old VI.

Can somebody help me???

Thanks
Message 1 of 4
(3,024 Views)
Hello,

Unfortunately, there is no way in LabVIEW to capture/monitor front panel activities of an executable (if you have the VIs themselves, the Wait for Front Panel Activity function might be helpful). You cannot use an executable as a SubVI either, if you need to call an exe from VI you need to use System Exec.vi.

Thanks and good luck!
Shakhina P.
Applications Engineer
National Instruments
0 Kudos
Message 2 of 4
(2,994 Views)
I have to side with Shakhina but for different reasons.

I do not believe LV 5.1.1 supported control references.

Lacking control reference support there is no method available (to the best of my knowledge).

If it was 6.0 or better (just on upgrade from 5.1.1) this would have been a doable task.

I can not help you Jack Me.

For 6.0 and above.

All VI's in memory have methods that let you find references to all of the VI's controls. These can be manipulated in a variety of manners.

I had a customer that had developed a manual interface that let him poke and peak at an interface. He asked me if I could just use his code as is and poke all of the buttons for him. After an afternoon of work he had the crude functionality rquired to allow in to script feed his widget. The whole time his interface was up and running so he could watch what was going on. I slowed it down to let him convince himself it was working.

So with 6.0 and up, it can be done. Below 6.0, I think no.

There is another aproach that may be possible. I have to go on memory here, forgive me if I'm wrong.

It was possible in LV 5.1 to call VI's dynamically. Theoretically using LV 5.1.1 development environment, use an invoke node run method to launch the top level VI inside the exe. Once loaded, you list all VI's in memory to get a list of all of the sub-VI's used in the top level VI. From this point you could attempt to show the FP of any VI the original devloper included in the built exe.

If you really can not get a 6.0 or higher version or the source, you are at best facing a lot of work. At worst, an exercise in futility.

Trying to help,

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 3 of 4
(2,980 Views)
Thank you Ben.

I guess it will lead to that, but hope is not yet gone.
0 Kudos
Message 4 of 4
(2,969 Views)