Tools/LabVIEW

(Difference between revisions)
Jump to: navigation, search
(LabVIEW in the GridLab)
Line 1: Line 1:
 
{{public}}
 
{{public}}
 
{{TOC right}}
 
{{TOC right}}
= Description =
+
== Description ==
 
LabVIEW is a programming system from National Instruments. LabVIEW is mainly used for data acquisition, instrument control and industrial automation.
 
LabVIEW is a programming system from National Instruments. LabVIEW is mainly used for data acquisition, instrument control and industrial automation.
  
= Programming language =  
+
== Programming language ==  
 
The programming language of LabVIEW is named "G" and is mainly visual. The language is proprietary of National Instruments and is therefore not managed or specified by any standards. G is a data flow programming language which means that the execution of the program is determined by the structure of the graphical block diagram.
 
The programming language of LabVIEW is named "G" and is mainly visual. The language is proprietary of National Instruments and is therefore not managed or specified by any standards. G is a data flow programming language which means that the execution of the program is determined by the structure of the graphical block diagram.
  
= Benefits =  
+
== Benefits ==  
=== Interfacing ===
+
'''Interfacing'''
 +
 
 
One of the main benefits of LabVIEW is the interfacing with instruments. Drivers and abstraction layers for many different types of instruments and buses exists already and are available with the standard licence.
 
One of the main benefits of LabVIEW is the interfacing with instruments. Drivers and abstraction layers for many different types of instruments and buses exists already and are available with the standard licence.
=== Code compilation and execution ===
+
 
 +
'''Code compilation and execution'''
 +
 
 
LabVIEW includes a compiler that produces native code for the CPU platform on which it is running. The graphical code is translated into executable native machine code. The execution of LabVIEW code may be sometimes slower than equivalent C code but the difference may be made up often by optimizing the code.
 
LabVIEW includes a compiler that produces native code for the CPU platform on which it is running. The graphical code is translated into executable native machine code. The execution of LabVIEW code may be sometimes slower than equivalent C code but the difference may be made up often by optimizing the code.
=== Libraries ===
+
 
 +
'''Libraries'''
 +
 
 
Many libraries are provided by National Instruments. Those libraries contain functions for data acquisition, signal processing, mathematics, statistics, etc. Manufacturers of instrument and devices such as Agilent Technologies are producing their own LabVIEW libraries to use their equipments within LabVIEW.
 
Many libraries are provided by National Instruments. Those libraries contain functions for data acquisition, signal processing, mathematics, statistics, etc. Manufacturers of instrument and devices such as Agilent Technologies are producing their own LabVIEW libraries to use their equipments within LabVIEW.
=== Code re-usability and interchangeability ===
+
 
 +
'''Code re-usability and interchangeability'''
 +
 
 
LabVIEW is fully modular. Therefore once created functions or blocks may be reused in other programs at any time. Because of that modularity blocks may be replaced by pin-compatible blocks too.
 
LabVIEW is fully modular. Therefore once created functions or blocks may be reused in other programs at any time. Because of that modularity blocks may be replaced by pin-compatible blocks too.
=== Parallel programming ===
+
 
 +
'''Parallel programming'''
 +
 
 
LabVIEW offers very convenient ways to create multiple tasks in programs. This is a benefit for test system automation where tasks like interfacing equipment, data processing etc. are often executed in parallel.
 
LabVIEW offers very convenient ways to create multiple tasks in programs. This is a benefit for test system automation where tasks like interfacing equipment, data processing etc. are often executed in parallel.
=== Community ===
+
 
 +
'''Community'''
 +
 
 
A huge user community works regularly with LabVIEW and develops and distributes, free or paid, their created LabVIEW content. The community together with National Instruments and the equipment manufacturers creates a huge ecosystem around LabVIEW.
 
A huge user community works regularly with LabVIEW and develops and distributes, free or paid, their created LabVIEW content. The community together with National Instruments and the equipment manufacturers creates a huge ecosystem around LabVIEW.
  
= Drawbacks =
+
== Drawbacks ==
=== Standardisation ===
+
'''Standardisation'''
 +
 
 
LabVIEW is a proprietary product of National Instruments. This means that there is no third-party committee which defines a proper open standard for the programming language, which is the case for other common programming languages like C.
 
LabVIEW is a proprietary product of National Instruments. This means that there is no third-party committee which defines a proper open standard for the programming language, which is the case for other common programming languages like C.
  
=== Distribution of Programs ===
+
'''Distribution of Programs'''
 +
 
 
Programs created with LabVIEW may only be distributed to machines with the runtime library installed. If a machine does not have the runtime library of LabVIEW installed the program can not be executed. Common programming languages, as C or C++, are already supported by all major operating system because they contain a standard runtime library for those languages.
 
Programs created with LabVIEW may only be distributed to machines with the runtime library installed. If a machine does not have the runtime library of LabVIEW installed the program can not be executed. Common programming languages, as C or C++, are already supported by all major operating system because they contain a standard runtime library for those languages.
  
=== Licensing and Copyright ===
+
'''Licensing and Copyright'''
 +
 
 
The National Instruments license agreement requires the inclusion of a copyright notice in developed applications, which passes the copyright of the developed application to National Instruments. This copyright notice has to be present in a possible documentation of such an application too. This fact may be problematic for some clients.
 
The National Instruments license agreement requires the inclusion of a copyright notice in developed applications, which passes the copyright of the developed application to National Instruments. This copyright notice has to be present in a possible documentation of such an application too. This fact may be problematic for some clients.
  
=== Backwards Compability ===
+
'''Backwards Compability'''
 +
 
 
The LabVIEW environment receives regular updates at least some times a year. This fact may create problems with the compatibility of the user created functions and blocks.  
 
The LabVIEW environment receives regular updates at least some times a year. This fact may create problems with the compatibility of the user created functions and blocks.  
  
= LabVIEW in the GridLab =
+
== LabVIEW in the GridLab ==
 
LabVIEW was used to implement the control system of the [[Low Voltage GridLab|Low Voltage GridLab]]. A lot of [[Tools/LabVIEW_Instrument_Drivers|Instrument Drivers]] and automation and simulation functions and blocks where created in LabVIEW for that purpose.
 
LabVIEW was used to implement the control system of the [[Low Voltage GridLab|Low Voltage GridLab]]. A lot of [[Tools/LabVIEW_Instrument_Drivers|Instrument Drivers]] and automation and simulation functions and blocks where created in LabVIEW for that purpose.
  
= Sources =  
+
== Sources ==
 +
=== General ===
 
[http://www.ni.com/labview National Instruments LabVIEW Homepage]<br/>
 
[http://www.ni.com/labview National Instruments LabVIEW Homepage]<br/>
 
[http://en.wikipedia.org/wiki/Labview LabVIEW on Wikipedia]
 
[http://en.wikipedia.org/wiki/Labview LabVIEW on Wikipedia]
 +
=== Training ===
 +
[http://www.ni.com/getting-started/labview-basics/ LabVIEW programming basics - Intro into graphical programming]<br/>
 +
[http://www.ni.com/getting-started/set-up-hardware/ LabVIEW hardware basics - Connect and set up hardware]<br/>
 +
[http://www.ni.com/academic/students/learn-labview/ Learn LabVIEW - Self-paced video learning]<br/>
 +
[http://www.ni.com/academic/students/learn-rio/ Learn RIO - Self-paced video learning]<br/>
 +
[http://www.ni.com/white-paper/7117/en/ Software Engineering with LabVIEW]<br/>

Revision as of 07:49, 26 September 2014

Contents

Description

LabVIEW is a programming system from National Instruments. LabVIEW is mainly used for data acquisition, instrument control and industrial automation.

Programming language

The programming language of LabVIEW is named "G" and is mainly visual. The language is proprietary of National Instruments and is therefore not managed or specified by any standards. G is a data flow programming language which means that the execution of the program is determined by the structure of the graphical block diagram.

Benefits

Interfacing

One of the main benefits of LabVIEW is the interfacing with instruments. Drivers and abstraction layers for many different types of instruments and buses exists already and are available with the standard licence.

Code compilation and execution

LabVIEW includes a compiler that produces native code for the CPU platform on which it is running. The graphical code is translated into executable native machine code. The execution of LabVIEW code may be sometimes slower than equivalent C code but the difference may be made up often by optimizing the code.

Libraries

Many libraries are provided by National Instruments. Those libraries contain functions for data acquisition, signal processing, mathematics, statistics, etc. Manufacturers of instrument and devices such as Agilent Technologies are producing their own LabVIEW libraries to use their equipments within LabVIEW.

Code re-usability and interchangeability

LabVIEW is fully modular. Therefore once created functions or blocks may be reused in other programs at any time. Because of that modularity blocks may be replaced by pin-compatible blocks too.

Parallel programming

LabVIEW offers very convenient ways to create multiple tasks in programs. This is a benefit for test system automation where tasks like interfacing equipment, data processing etc. are often executed in parallel.

Community

A huge user community works regularly with LabVIEW and develops and distributes, free or paid, their created LabVIEW content. The community together with National Instruments and the equipment manufacturers creates a huge ecosystem around LabVIEW.

Drawbacks

Standardisation

LabVIEW is a proprietary product of National Instruments. This means that there is no third-party committee which defines a proper open standard for the programming language, which is the case for other common programming languages like C.

Distribution of Programs

Programs created with LabVIEW may only be distributed to machines with the runtime library installed. If a machine does not have the runtime library of LabVIEW installed the program can not be executed. Common programming languages, as C or C++, are already supported by all major operating system because they contain a standard runtime library for those languages.

Licensing and Copyright

The National Instruments license agreement requires the inclusion of a copyright notice in developed applications, which passes the copyright of the developed application to National Instruments. This copyright notice has to be present in a possible documentation of such an application too. This fact may be problematic for some clients.

Backwards Compability

The LabVIEW environment receives regular updates at least some times a year. This fact may create problems with the compatibility of the user created functions and blocks.

LabVIEW in the GridLab

LabVIEW was used to implement the control system of the Low Voltage GridLab. A lot of Instrument Drivers and automation and simulation functions and blocks where created in LabVIEW for that purpose.

Sources

General

National Instruments LabVIEW Homepage
LabVIEW on Wikipedia

Training

LabVIEW programming basics - Intro into graphical programming
LabVIEW hardware basics - Connect and set up hardware
Learn LabVIEW - Self-paced video learning
Learn RIO - Self-paced video learning
Software Engineering with LabVIEW

Personal tools
Namespaces
Variants
Actions
Navigation
Browse
Toolbox