LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

A LabVIEW version of a .zip?

I know .lvlib exists.  But from what I can tell, you cannot distribute a lvlib around without the VIs going with it or the VIs being in a network location.  Is there a LabVIEW version of a zip where you distribute a single file and when loading that singular file into your LabVIEW project, it includes VIs and controls and in a folder structure?  I could have sworn there is something.  I just don't remember.

0 Kudos
Message 1 of 8
(2,173 Views)

I think what you are looking for is an LLB.

Message 2 of 8
(2,167 Views)

@DailyDose wrote:

 Is there a LabVIEW version of a zip where you distribute a single file and when loading that singular file into your LabVIEW project, it includes VIs and controls and in a folder structure? 

indeed, a .llb is slighty compressd according to this:

https://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/savingvis/#Advantages_of_Saving_VIs_a...

 

 

also see this discussion:

https://forums.ni.com/t5/LabVIEW/llb-versus-lvlib/td-p/1911595

The llb was created back in the old days when file names were limited to the 8.3 format. They really don't serve much of a purpose anymore. They are not safer than an lvlib[...]. A single corrupt VI in an llb will make the whole llb unreadable. Since you can zip up a lvlib, the single file arguement is not understandable either. An lvlib also integrates with source code control and this is something you had better be using.

Message 3 of 8
(2,165 Views)

There is also the option of compiling into PPLs, if you don't mind not being able to edit the code in the new project.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 4 of 8
(2,146 Views)

Hi Dose,

 


@DailyDose wrote:

I know .lvlib exists.  But from what I can tell, you cannot distribute a lvlib around without the VIs going with it or the VIs being in a network location.  Is there a LabVIEW version of a zip where you distribute a single file and when loading that singular file into your LabVIEW project, it includes VIs and controls and in a folder structure?  I could have sworn there is something.  I just don't remember.


You can create a distribution file, which basically is a ZIP…

(See the options when creating a BuildSpec.)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 5 of 8
(2,140 Views)

Kind of sounds like llb is frowned upon for the most part.  I only asked all this because I made a lvlib for a colleague, zipped up the entire thing and sent it to him and was thinking... what was the point of the lvlib in that scenario?  Oh well.

0 Kudos
Message 6 of 8
(2,130 Views)

Yeah, generally the only thing I use llbs for is something like sending a quick drop shortcut to someone if I'm to lazy to make a vip.

 

I would say in your situation of sending a zipped up lvlib to a colleague, the lvlib is still important because it allows them to see how you have organized the VIs - eg: which ones are public and they will want to use, which ones are private and they don't need to worry about as much.

0 Kudos
Message 7 of 8
(2,124 Views)

@DailyDose wrote:

 what was the point of the lvlib in that scenario?  Oh well.


Using lvlibs isn't really helpful for simple distribution. You can just use a regular .zip file for that. Lvlibs provide other useful features. Think of them like a folder with extra options. They're generally used when you have a bunch of VI's that need to work together. Some examples of when they're useful:

-Namespacing: Say you have a library to open connections to external instruments. If you have a VI called "Open connection" then you can only have one of those in a project. If you put all of your library functions in an lvlib called "Multimeter Interface" then you don't have to worry about name collisions, and each library in your project can have its own Open Connection.

-Access scoping- If your group of files you're distributing is a toolkit for someone else to use, you may have some VI's that are intended for the end user to have access to, and some that you would rather them NOT have access to. In an lvlib, you can scope the first set of VI's to be "Public" and the second set as "Private". Anyone trying to call a Private VI from outside of the library will be unable to, as it'll generate an error. (Yes of course they could edit the scoping; it's more of a "keep out" sign than a security guard).

-Project-like viewing capability: If you have a folder full of files it can be hard to know which specific files belong to a specific group of functions. If you have an lvlib in there, you can open up the lvlib file and see a list of all of the vi's, folders, etc that are intended to be used in that library.

 

If you don't see the use for them right now, then you probably don't need one 🙂 I personally have found them most useful with LVOOP and Actor projects to keep all of my Actors separated.

Message 8 of 8
(2,100 Views)