LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

include vi.lib

Good Morning,
    I'm having a little problem, need to find out if there is a simple solution. I've built a program that is supposed to simulate an earthquake, ultimately running a shake table, both locally and with web access. To avoid the end user having to download a 32Mb+ LabVIEW Run-time engine I have gone the "G Web Server/CGI script" route, and have it running ok, in the LV development mode. I then made an executable of the web server and encapsulate my program in an llb, and moved everything to a different directory (initially, when building stuff for the G Web Server it ends up being in the ..LabVIEWxxx\www directories) to allow installation on my target computer. But when it runs there my front panel opens broken (this is still on my development machine with the full LabVIEW dev system). It does apparently run using the run-time as my vi has not diagram available. When I click on the broken arrow I get a window (attached) that mentions several vi's that are missing. These all appear to be all vi.lib files. I tried to build my llb with the "exclude vi.lib" checkbox unchecked, but it apparently includes ALL of vi.lib, and also copies all the .mnu files to my directory, resulting in a llb size of 52MB rather than the "non-vi.lib" version's size of 4MB. I didn't try running it with this Mongo-llb to see if that solves the problem, really would like something a little more compact if possible. I did try downloading the LabVIEW 8.2.1 runtime engine, but when I attempt to install it I am told that I have a newer version of everything already. I really want to send this off, don't want to email a 52MB+ file though.

Thanks, as always!

P


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 11
(6,865 Views)
    Short of manually copying all the "offending" vi's to my directories to be included in the llb is there anyone that knows a trick to include vi's from the vi.lib, without including, apparently, all of vi.lib?
Putnam
Certified LabVIEW Developer

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


LabVIEW Champion



0 Kudos
Message 2 of 11
(6,831 Views)

Hi Putnam,

No great solutions immediately come to mind. If I came across this issue I would either manually pick-out the VIs that were needed or, copy vi.lib to another location and delete everything I was sure wouldn’t be used in the application. Using that copy of vi.lib could reduce everything by 10 or 20 MB. I would be curious if any other developers have tricks that they use for this.

Charlie M. CLD
0 Kudos
Message 3 of 11
(6,810 Views)

Well I never tried this but I'll share the idea anyway.

When you create a "Source Distribution" in your project and configure it, on the "Additional Exclusions" page there is a box for Vi.lib that is by default always checked.

If you un-checked that and did the source distribution, you may be able to just pull the vi.lib stuff you need.

The one thing that bothers me about that approach is that I believe I read somewhere that LV want the whole library even if you only use one part. I do not rememeber where I read it. It may have been in the context of liblraries within projects.

That's the only I dea I have!

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 4 of 11
(6,806 Views)
  Thanks guys, but when I tried the "uncheck vi.lib" it includes EVERYTHING in vi.lib. When I do that the program launches ok, but it creates an llb of 52MB vs without of 3.3MB! The checkbox mentioned says exclude files from vi.lib, which implies that unchecking it will allow _some_ files (like the ones needed) to be included, not everything, including the .mnu files which are copied to the directory where the .llb file is going. This sucks.
   I also tried copying the missing files from the MONGO.llb to the smaller one that had a limited number of MIA vi's and lvlib. Then when I ran it I got an equally large list, mostly the sub-vi's, typedefs, ctls, etc. of the first. Unfortunately there was a least one .lvlib that didn't get included in the MONGO.llb. What bothers me is that it is being run on the develoment computer. It works when run in development mode, but apparently fails when in the run-time engine environment. This leads me to believe that something is lacking in the run-time installed, but when I downloaded the 8.2.1 from NI Mothership and tried to install it told me that I had a newer version already. I thought that the reason vi.lib, etc., didn't get built into an exe (a special form of llb, at least in the old days) was that it came with the run-time engine.

   Argh, this is behind schedule, I'm trying get it done, and another as well, and am having some health issues that are not helping.


Putnam
Certified LabVIEW Developer

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


LabVIEW Champion



0 Kudos
Message 5 of 11
(6,799 Views)

HI Putnam,

I have a "VI Cloner" VI that will look at a VI hierarchy and clone it from bottom to top.

It explicitly skip VI's from VI.lib but that functionality can be shut down easy enough.

Would that be of any help?

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 6 of 11
(6,795 Views)
To add to the mystery, I'm not seeing LabVIEW 8.2.x run-time engine in the "Add or Remove Programs" either on it's own or under National Instruments
Putnam
Certified LabVIEW Developer

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


LabVIEW Champion



0 Kudos
Message 7 of 11
(6,793 Views)
Ben, it might help, at least automating the process of trying to grab the required vi's. What bothers me is why it doesn't see the appropriate vi's in the first place as I thought they were supposed to be carried along with the Run Time engine.
Putnam
Certified LabVIEW Developer

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


LabVIEW Champion



0 Kudos
Message 8 of 11
(6,792 Views)
I realize this may be a stupid question, but is there a dynamic Vi you forgot to include?  I also see from the list there is more than just vi.llb files missing, as it appears some of your Quake VIs and typedefs are missing as well.
0 Kudos
Message 9 of 11
(6,787 Views)
Nothing being loaded dynamically. The first list of missing items are all from LabVIEW's side of the aisle. The names of my vi's are listed as where the vi.lib ones are missing from. I really don't understand what is going on here, as it works if I include vi.lib in the build of the .llb, but it includes ALL of the approximately 49MB vi.lib, not just to ones that are called/connected by my program. I thought that the vi.lib stuff would be resident in the LabVIEW Run-time environment, but apparently not. It is frustrating, I've managed to put the "G_Web_Server", a vi to launch it, and my CGI related vi's into an executable, that when passed the appropriate CGI script from a web page, launches my main.vi from within the .llb, but it comes up with a broken arrow, that when clicked lists all those missing components, unless I have included the entire vi.lib. Without it the .llb is ~3.4Mb, a manageable size (emailable), but with vi.lib it bloats out to closer to 53Mb, not emailable. And this is just to demo/simulation version. Ultimately, and the ultimate is supposed to be soon, it is supposed to have the original shake table control vi reinstalled. I had done this simulation to allow the web designer to get his part working without having to have the table HW, etc., installed, but this has taken so long to resolve these seemingly trivial problems.... I thought in the past that one could make llb's that contained only the relevant stuff, don't understand why the builder would include everything. Guess I'm not looking at llb's in the way that they are viewed by others. Got a couple of other things to try, one being the brute force copying of everything missing from th MONGO.llb into the petite.llb



Putnam
Certified LabVIEW Developer

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


LabVIEW Champion



0 Kudos
Message 10 of 11
(6,752 Views)