LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

labview llb exe file structure

Good Morning All,
    I built a test system concept around a little quirk in LabVIEW that has been around for several generations, that if you changed the extension from .exe to .llb on a LabVIEW built application that you could see the vi's in that executable. The reason that I chose this path was that my customer is building a test system, that essential can test one of four possible different products. As there are four test "centers", which are loaded with the appropriate part and then signalled over tcp/ip what type of part they are testing, they wanted a way to launch the appropriate test program. Each of these programs is large, running to 350+ sub-vi's. I suggested that we use a trick that I had seen before, of building each of the test programs into a .exe, with modifications to make them all have matching connector panes, changing the extension to .llb, then calling the respective "main" vi within that ".llb". The reason for this is that it will then "bundle" everything for that specific test program into one bunch, and if they change any of their four programs they don't have to requalify the others. It also means that in the runtime environment everything that program needs to run is present. They were working in LabVIEW 7.1 and it worked within that environment in my experiements.  We did a lot of development (in 7.1.1), then I traveled to where they were having the Test Center built to get the TCP/IP part working with the machine builders control program. Part of the overall package is a rack with 4 PXI systems in it, and lo and behold, they are all perloaded with LabVIEW 8.2.1. Well, great, wanted to get this customer to upgrade, and they agreed that there wasn't a good reason to have me wipe the installs and spend hours (days, no CD drives on the PXI boxes) reinstalling 7.1.1 (which I had brought along). Unfortunately, it wasn't until a month later (yesterday) with the test system in their plant and the first of four test programs mostly wrung out, that I got a chance to build it into an .exe, change the extension, etc. It doesn't work! Apparently LabVIEW 8.x (I haven't checked before v 8.2.1) app builder no longer leaves access to the sub-vi's. If you change the extension to .llb and then open with Windows Explorer (with the LabVIEW extension) you get a blank "directory".
    I'm at a loss to how I am going to proceed, luckily (?) have a long weekend to ponder the error of using "quirks", but really liked having each of the programs a seperate, complete, entity.  It has been a week!
Putnam
Certified LabVIEW Developer

Senior Test Engineer North Shore Technology, Inc.
Currently using LV 2012-LabVIEW 2018, RT8.5


LabVIEW Champion



0 Kudos
Message 1 of 4
(5,801 Views)
The original functionality was a fluke from our side as well. It was never intended as a feature. The change in 8.2 was to allow LabVIEW built apps to be able to be signed for Vista. It also allows easier modification of apps after they are built to change the Vista manifest.
 
You should be able to accomplish the same thing with a source distribution for each set of VIs. This can be configured to include all subVIs and create a single LLB output.

Message Edited by GregR on 05-25-2007 10:18 AM

Message 2 of 4
(5,790 Views)
Hi,


First of all, I think you don't need to change the extension of the exe. LabVIEW can get a VI from an exe: "c:\test.exe\test.vi". However, this doesn't work in 8.2.1...


Also, you don't need to build an exe, you can also build a development library. I'm not sure how this is done exactly in 8.2.1, but I'm sure it's. Only difference is that you still have all the diagrams. You can remove them with automatically. Simply list all files in the llb, and open references to them. Then save each instrument without diagram with "Save Instrument Method". Removing the front panel is not possible, so the llb's will be a bit larger.


In 7.1 you can build an executable with one main.exe and an external library with all sub VI's. In 8.2.1, you can add a destination, and make it an llb. You can then (in "Source File Settings") put all sub VI's in the new llb. I'm not sure where all the support vi's go. Probably in the main exe, but if they end up in the llb, you're done!


I used to solve this problem by simply making a vi that recursivelly gets all sub vi's. Each sub vi that is not in my development path, is copied into a support llb. (There is one error handling VI that NI uses that has a ; as first letter. That one caused me some headakes. Since it was in a llb it was no problem to copy it to another llb, but I started out by copying the vi's to a directory)


You can probably combine some of these methods, and get it working.


Regards,


Wiebe.
Message 3 of 4
(5,778 Views)
Thank you Both!
   I tell all my LabVIEW using customers and associates to come to this forum when they run into problems, and you two have once again proven it true. I probably would have remembered the distribution method, but part of my "it has been a week" is discovering that last weekend I encountered poison ivy, so my thought processes on LabVIEW are having to time share with the "don't scratch" thread.
   Thanks a bunch, you have saved this weekend from me being under a dark cloud! In fact this method may simplify another aspect as well! Have a wonderful weekend, which you probably won't read until afterwards!


Message Edited by LV_Pro on 05-26-2007 08:02 AM

Message Edited by LV_Pro on 05-26-2007 08:04 AM

Message Edited by LV_Pro on 05-26-2007 08:05 AM

Putnam
Certified LabVIEW Developer

Senior Test Engineer North Shore Technology, Inc.
Currently using LV 2012-LabVIEW 2018, RT8.5


LabVIEW Champion



0 Kudos
Message 4 of 4
(5,756 Views)