The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib...
Transcript of The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib...
![Page 1: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/1.jpg)
ni.com
The Essentials of File Management with LabVIEW
Courtney Lessard
LabVIEW Product Manager
Presented by Alexandra Valiton, NI Field Engineer, Long Island
![Page 2: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/2.jpg)
ni.com
How many files in your biggest application?
• .lvproj
• .vi
• .ctl
• .lvlib
• .dll
• Dependencies
• Source files
• Readme
![Page 3: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/3.jpg)
ni.com
Avionics Applications Space Exploration Large Physics Applications
High-Volume Production Test Structural Health Monitoring Medical Devices
Large System Development Powered by LabVIEW
![Page 4: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/4.jpg)
ni.com
Session Goals
This session focuses on best practices for:
Organizing and Managing LabVIEW Applications
Managing a Code Base with Source Code Control
Building and Distributing Reuse Libraries
![Page 5: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/5.jpg)
ni.com
Sample Project
Automated Test Project
1. Initialize Equipment
2. Load Test Parameters
3. Perform Tests
4. Log Results
5. Create Report
6. Shutdown Equipment
File Types: Main VI, subVIs, test docs, readmes, custom controls, variables
Development Teams: Architect, test experts, DUT experts
Reusable Code: Instr libraries, Database connectivity, logging practics
![Page 6: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/6.jpg)
ni.com
Organizing and Managing LabVIEW Applications
![Page 7: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/7.jpg)
ni.com
Defining a LabVIEW Application
Source Code
Type Definitions
Configuration and
Data Files
Shared Libraries and
Additional Code
Documentation
![Page 8: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/8.jpg)
ni.com
Recommendations for Organizing Files
Single Root
Directory
Separated
Top-Level VI
Group
related files
using folders
Clear
Documentation
Logical
names
![Page 9: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/9.jpg)
ni.com
The Project Explorer
A tool to improve developer
efficiency by providing:
• Easy file navigation
• Smart linking when moving files
• Integration with Application Builder
• Deploy code to LabVIEW targets
• Access to source code control
However, the project explorer
does not duplicate files. LabVIEW
Best Practice
![Page 10: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/10.jpg)
ni.com
Improved File Management
Items View Files View
If you move a file using the Files View, LabVIEW will be
aware of the change and will update callers and preserve
links automatically.
![Page 11: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/11.jpg)
ni.com
Managing Project Files
Virtual Folders
Update to reflect the
contents of folders on
disk
Customize how and
where files are
displayed
Auto-populating Folders
![Page 12: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/12.jpg)
ni.com
Project Dependencies
LabVIEW automatically
identifies the files required
by each item in a project.
• Ensure you’re using the
correct version of a subVI
• Understand which files
should be added to the
project
![Page 13: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/13.jpg)
ni.com
LabVIEW Directory Structure
vi.lib Contains libraries of built-in VIs, which LabVIEW displays
in related groups on the functions palette.
user.lib Directory in which you can save controls and VIs you
create. LabVIEW displays controls on User Controls
palettes and VIs on User Libraries palettes.
instr.lib Contains any installed instrument drivers. These drivers
will appear on the Instrument I/O palette.
![Page 14: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/14.jpg)
ni.com
DEMO
Files on Disk and the LabVIEW Project
![Page 15: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/15.jpg)
ni.com
Dynamically Loaded Files
Dynamically loaded VIs
are not in memory until
they are loaded by the
caller VI.
• Reduce load time of
large caller VIs
• Optimize memory use
Will not be listed in
Project Dependencies
Dyn Lib A
Dynamic
VI Calls
Startup VI
Application-Specific,
Statically Linked Code
SubVIs SubVIs SubVIs SubVIs SubVIs
![Page 16: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/16.jpg)
ni.com
Tracking Dynamically Loaded Files
Dynamically loaded files are not statically linked by any
callers in the project. Any action that changes the path to a
dynamically loaded file can prevent the project from
loading the file.
To ensure that dynamically loaded files are in the
correct location:
• Group the files in a separate folder.
• Refer to the files using relative paths.
• If you need to move a project or distribute an application,
remember to include the folder in which you grouped dynamic
dependencies.
![Page 17: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/17.jpg)
ni.com
LabVIEW Search Order
You cannot load two VIs with the same name in memory
Multiple VIs with the same name can exist on disk.
• What happens when you load a VI from disk
• What about when a calling VI loads a subVI?
![Page 18: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/18.jpg)
ni.com
Load
“analysis.vi”
from disk
VI with the
same name
open in
memory?
Load
“analysis.vi”
from disk
Use copy of “analysis.vi”
in memory
Load a VI From Disk
no yes
click replace
click view
![Page 19: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/19.jpg)
ni.com
Calling VI
attempts to
load subVI
VI with the
same name
open in
memory?
Use copy in
memory
Load a SubVI
no yes
Look for
subVI at
location
on disk
Use subVI at
specified
location Search for subVI in**:
1. vi.lib
2. user.lib
3. instr.lib
4. \Labview2012\Resource
find missing
**default
configuration
![Page 20: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/20.jpg)
ni.com
Cross-Linking Defined
Calculator.vi
Analysis.vi Simple
Display.vi
Scientific Calculator.vi
Analysis.vi Enlarged Display.vi
??? Analysis.vi not
found at
expected location
![Page 21: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/21.jpg)
ni.com
When Can Cross-Linking Occur?
If you back-up working directories by creating multiple
copies, you will end up with many copies of a given VI on
your machine.
![Page 22: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/22.jpg)
ni.com
Cross-Linking Notification
![Page 23: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/23.jpg)
ni.com
Preventing Cross-Linking
Add all files to a LabVIEW project
Be aware of dependencies
Avoid duplicating code to create multiple back-ups
Share code between projects via reuse library
Ensure unique VI names
![Page 24: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/24.jpg)
ni.com
Summary
The project explorer is a valuable tool to organize
applications and prevent common development pitfalls.
• Use Auto-populating and Virtual folders to customize
organization
• Preserve linking by moving files with File View
• Group dynamically linked resources together
• Be aware of dependencies
![Page 25: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/25.jpg)
ni.com
Managing a Code Base with Source Code Control
![Page 26: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/26.jpg)
ni.com
Introducing Source Code Control
Source Code Control is a tool used to track, store,
and manage all files related to an application
during development.
Central
Code
Repository
code
checked in
code
checked in
code
checked out
code
checked out
dev
1
dev
3
dev
2
dev
4
![Page 27: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/27.jpg)
ni.com
Why Use Source Code Control?
Increase productivity by allowing multiple developers to
contribute in a controlled environment
• Avoid code loss from overwriting
Manage files throughout the development cycle
• Code revision history let’s developers track bugs quickly &
document changes
Speed development with merge and diff tools
Source Code Control is a best practice for
any modern software development project,
regardless of complexity or team size.
LabVIEW
Best Practice
![Page 28: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/28.jpg)
ni.com
What Tools Are Available?
Recommended
Perforce
Subversion
Additional Options
Microsoft Visual Source Safe
Microsoft Team Foundation Server Rational ClearCase
PCVS (Serena) Version Manager
MKS Source Integrity
Seapine Surround SCM
Borland StarTeam
Telelogic Synergy
![Page 29: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/29.jpg)
ni.com
What Files Should I Put Under SCC?
VIs
Documentation o Track revisions to a Requirements Document with SCC
Configuration Files
Type Definitions
What about the *.lvproj file itself?
![Page 30: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/30.jpg)
ni.com
Should I Put My *.lvproj File Under SCC Too?
A LabVIEW *.lvproj file is an XML file that contains:
• Links to files contained in the project
• Settings for the project
• “Virtual items” such as build specifications
It’s critical that all developers have the most recent version
of the *.lvproj file to ensure they have all of the latest
dependencies and resources
![Page 31: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/31.jpg)
ni.com
Should I Put My *.lvproj File Under SCC Too?
.lvlib files are represented in the Project File by library name only. As
long as the name of the library remains the same, the contents of the
library can change without modifying the .lvproj file.
Individual VIs are also represented by name in a project. This means
that anytime a new VI is added or removed from the project, the
.lvproj file is modified.
Anytime a file in the project is renamed or added, the
*.lvproj file is altered and must be checked out of source
code control, impacting all developers using the project
![Page 32: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/32.jpg)
ni.com
Best Practices for Managing Project Files with SCC
Determine your application framework before development
begins. • Create placeholders for all future code to avoid altering the project file
• Use .lvlib files to avoid modifying the project file
If a change needs to be made, have a single developer
check out the project file and make the change • Ensure that all other developers begin using the new version of the
project file immediately
![Page 33: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/33.jpg)
ni.com
Considerations When Storing VIs Under SCC
When you edit a VI, LabVIEW recompiles the VI code.
LabVIEW may also recompile the callers of that VI to
optimize code.
Front Panel Block
Diagram
Connector
Pane Icon
Compiled
Code
Inplacenes
s Info
Contents of a VI
Graphical
Source Code
Compiled
Code
![Page 34: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/34.jpg)
ni.com
Considerations When Storing VIs Under SCC
When you edit a VI, LabVIEW recompiles the VI code.
LabVIEW may also recompile the callers of that VI to
optimize code.
Calling VIs that have not
been modified by a
programmer may indicate
that they have been modified,
and therefore require
resubmitting to SCC. *
*
modified by
developer
NOT modified
by developer,
but code was
recompiled
Calling VI
SubVIs
![Page 35: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/35.jpg)
ni.com
Considerations When Storing VIs Under SCC
Eliminate the need to re-save and re-submit files to
source code control unless the graphical source code has
been changed by the developer
Front Panel Block
Diagram
Connector
Pane Icon
Contents of a VI
Limited to graphical source code
Contains compiled code
Compiled
Code
Inplacenes
s Info
Separate .viobj file
![Page 36: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/36.jpg)
ni.com
Deciding When to Separate Compiled Code from
VIs
Consider separating compiled code to:
• Simplify source code control
• Prepare VIs under SCC to be upgraded to a new version of LabVIEW
• Improve load time of VIs
Do not separate compiled code:
• If you intend to run the VI using the LabVIEW Run-Time Engine. In
this case, consider building a source distribution instead
![Page 37: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/37.jpg)
ni.com
Graphical Diff and Merge Utilities
Since the source code for a VI is binary, specific
comparison and merge utilities must be used.
Diff and Merge Utilities
LVCompare.exe
LVMerge.exe
Must configure for
command-line
integration
Call directly from SCC
utility
SCC provider must
support Microsoft API
Call directly from
LabVIEW Development
Environment
![Page 38: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/38.jpg)
ni.com
Graphical Differencing
![Page 39: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/39.jpg)
ni.com
Graphical Merge
Simplify your development cycle by using Graphical
Merge to automate code recombination.
Use this tool when modifications to a base VI are made by
multiple individuals and saved separately.
![Page 40: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/40.jpg)
ni.com
Group Development Recommendations
• Use Source Code Control
• Document changes at each submission
• Use VI Compare to assess changes
• Use VI Merge to reconcile code contributions
![Page 41: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/41.jpg)
ni.com
Building and Distributing Reuse Libraries
![Page 42: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/42.jpg)
ni.com
Challenge
How can I leverage common code among independent
projects that all use different development cycles?
• What if the code I want to reuse is still being developed? How
can I manage multiple revisions of reuse code?
• Copying common code is cumbersome and can lead to cross-
linking
Solution: Build a reuse library
![Page 43: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/43.jpg)
ni.com
Managing Reuse Libraries
Reuse libraries are designed to be used across multiple
projects. They may have a different development cadence
than the projects they serve.
Reuse Libraries should be:
• De-coupled from the projects they are used in
• Easily upgraded or downgraded when maintaining multiple
versions of an application
Application 1
Src
1
Src
2
Application 2
Src
1
Src
2
Reuse
Library
![Page 44: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/44.jpg)
ni.com
Source Distributions
A collection of files that you can package and send to
users.
• Contains VI files, which allows you to move multiple VIs between
developers as a single file
Create a directory or a zip file containing VIs
Configure which VIs are included, can choose to exclude
vi.lib, user.lib, and instr.lib
![Page 45: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/45.jpg)
ni.com
The Project Library
A collection of VIs, typedefs,
shared variables, palette
files, and other files.
.lvlib file is an xml file that includes
references to files that the library
owns as well as library properties
A .lvlib file does not contain the
actual files it owns
![Page 46: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/46.jpg)
ni.com
When Should I Use a Project Library?
Use a Project Library to:
• Encapsulate large sections of an application
• Organize a virtual hierarchy of items
• Qualify names of VIs to prevent cross-linking
• Modify contents without modifying the Project (*.lvproj) file
• Limit access to certain types of files by configuring the library to be
public or private
Good choice when distributing an API
![Page 47: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/47.jpg)
ni.com
Packed Project Library Files *.lvlibp
A Packed Project Library is a precompiled .lvlib file that
allows users to access public VIs in the library, but does
not allow them to modify the code.
Why should I use a *.lvlibp file?
• Reduce build time for stand-alone applications
• Deploy fewer files by packaging multiple VIs into a single
.lvlibp file
• Distribute an API of public VIs that cannot be modified
![Page 48: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/48.jpg)
ni.com
DEMO
Using the Project Library
![Page 49: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/49.jpg)
ni.com
Session Summary
Organizing and Managing LabVIEW Applications
Efficient Group Development Practices
Managing Reuse Libraries
![Page 50: The Essentials of File Management with LabVIEW · 2015-08-23 · LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on](https://reader033.fdocuments.us/reader033/viewer/2022050211/5f5d71085298eb120156afd3/html5/thumbnails/50.jpg)
ni.com
Software Engineering Best-Practices
ni.com/largeapps
Software Engineering Tools
Development Practices
LargeApp Community