LabVIEW


LabVIEW

Infobox_Software
name = LabVIEW



caption =
developer = National Instruments
latest_release_version = 8.6
latest_release_date = August 4, 2008
operating_system = Cross-platform: [http://ni.com/labview/requirements Windows, Mac OS X, Linux]
genre = Data Acquisition, Instrument Control, Test Automation, Analysis and Signal Processing, Industrial Control, Embedded Design
license = Proprietary
website = [http://www.ni.com/labview/ ni.com/labview]

LabVIEW (short for Laboratory Virtual Instrumentation Engineering Workbench) is a platform and development environment for a visual programming language from National Instruments. The graphical language is named "G". Originally released for the Apple Macintosh in 1986, LabVIEW is commonly used for data acquisition, instrument control, and industrial automation on a variety of platforms including Microsoft Windows, various flavors of UNIX, Linux, and Mac OS. The latest version of LabVIEW is version 8.6, released in August of 2008.

Dataflow programming

The programming language used in LabVIEW, also referred to as G, is a dataflow programming language. Execution is determined by the structure of a graphical block diagram (the LV-source code) on which the programmer connects different function-nodes by drawing wires. These wires propagate variables and any node can execute as soon as all its input data become available. Since this might be the case for multiple nodes simultaneously, G is inherently capable of parallel execution. Multi-processing and multi-threading hardware is automatically exploited by the built-in scheduler, which multiplexes multiple OS threads over the nodes ready for execution.

Programmers with a background in conventional programming often show a certain reluctance to adopt the LabVIEW dataflow scheme, claiming that LabVIEW is prone to race conditions. In reality, this stems from a misunderstanding of the data-flow paradigm.Fact|date=October 2007 The aforementioned data-flow (which can be forced, typically by linking inputs and outputs of nodes) completely defines the execution sequence, and that can be fully controlled by the programmer. Thus, the execution sequence of the LabVIEW graphical syntax is as well-defined as with any textually coded language such as C, Visual BASIC, Python etc.Fact|date=October 2007 Furthermore, LabVIEW does not require type definition of the variables; the wire type is defined by the data-supplying node. LabVIEW supports polymorphism in that wires automatically adjust to various types of data.

Graphical programming

LabVIEW ties the creation of user interfaces (called front panels) into the development cycle. LabVIEW programs/subroutines are called virtual instruments (VIs). Each VI has three components: a block diagram, a front panel, and a connector pane. The last is used to represent the VI in the block diagrams of other, calling VIs. Controls and indicators on the front panel allow an operator to input data into or extract data from a running virtual instrument. However, the front panel can also serve as a programmatic interface. Thus a virtual instrument can either be run as a program, with the front panel serving as a user interface, or, when dropped as a node onto the block diagram, the front panel defines the inputs and outputs for the given node through the connector pane. This implies each VI can be easily tested before being embedded as a subroutine into a larger program.

The graphical approach also allows non-programmers to build programs simply by dragging and dropping virtual representations of lab equipment with which they are already familiar. The LabVIEW programming environment, with the included examples and the documentation, makes it simple to create small applications. This is a benefit on one side, but there is also a certain danger of underestimating the expertise needed for good quality "G" programming. For complex algorithms or large-scale code, it is important that the programmer possesses an extensive knowledge of the special LabVIEW syntax and the topology of its memory management. The most advanced LabVIEW development systems offer the possibility of building stand-alone applications. Furthermore, it is possible to create distributed applications, which communicate by a client/server scheme, and are therefore easier to implement due to the inherently parallel nature of "G"-code.

To maintain clean and legible VI user interfaces keep these tips in mind: keep panels simple and clean, maintain a consistent style, clean up wires where ever possible, and use proper terminology when labeling controls and indicators.

Using LabVIEW with Excel

Comma delimited files can be saved from LabVIEW and read by Excel. They should be saved with the .csv file extension when operating in the Windows environment.

A better solution is to use Excel to call the LabVIEW VI using VBA code and pass data back and forth between LabVIEW and Excel. An example of how to do this can be found in Lab View’s help file.

Benefits

One benefit of LabVIEW over other development environments is the extensive support for accessing instrumentation hardware. Drivers and abstraction layers for many different types of instruments and buses are included or are available for inclusion. These present themselves as graphical nodes. The abstraction layers offer standard software interfaces to communicate with hardware devices. The provided driver interfaces save program development time. The sales pitch of National Instruments is, therefore, that even people with limited coding experience can write programs and deploy test solutions in a reduced time frame when compared to more conventional or competing systems. A new hardware driver topology (DAQmxBase), which consists mainly of G-coded components with only a few register calls through NI Measurement Hardware DDK (Driver Development Kit) functions, provides platform independent hardware access to numerous data acquisition and instrumentation devices. The DAQmxBase driver is available for LabVIEW on Windows, Mac OS X and Linux platforms.

In terms of performance, LabVIEW includes a compiler that produces native code for the CPU platform. The graphical code is translated into executable machine code by interpreting the syntax and by compilation. The LabVIEW syntax is strictly enforced during the editing process and compiled into the executable machine code when requested to run or upon saving. In the latter case, the executable and the source code are merged into a single file. The executable runs with the help of the LabVIEW run-time engine, which contains some precompiled code to perform common tasks that are defined by the G language. The run-time engine reduces compile time and also provides a consistent interface to various operating systems, graphic systems, hardware components, etc. The run-time environment makes the code portable across platforms. Generally, LV code can be slower than equivalent compiled C code, although the differences often lie more with program optimization than inherent execution speed.

Many libraries with a large number of functions for data acquisition, signal generation, mathematics, statistics, signal conditioning, analysis, etc., along with numerous graphical interface elements are provided in several LabVIEW package options. The number of advanced mathematic blocks for functions such as integration, filters, and other specialized capabilities usually associated with data capture from hardware sensors is immense. In addition, LabVIEW includes a text-based programming component called MathScript with additional functionality for signal processing, analysis and mathematics. MathScript can be integrated with graphical programming using "script nodes" and uses .m file script syntax that is generally compatible with Matlab.

The fully object-oriented character of LabVIEW code allows code reuse without modifications: as long as the data types of input and output are consistent, two sub VIs are interchangeable.

The LabVIEW Professional Development System allows creating stand-alone executables and the resultant executable can be distributed an unlimited number of times. The run-time engine and its libraries can be provided freely along with the executable.

A benefit of the LabVIEW environment is the platform independent nature of the G code, which is (with the exception of a few platform-specific functions) portable between the different LabVIEW systems for different operating systems (Windows, Mac OS X and Linux). National Instruments is increasingly focusing on the capability of deploying LabVIEW code onto an increasing number of targets including devices like Phar Lap OS based LabVIEW real-time controllers, PocketPCs, PDAs, FieldPoint modules and into FPGAs on special boards.

There is a low cost LabVIEW Student Edition aimed at educational institutions for learning purposes. There is also an active community of LabVIEW users who communicate through several e-mail groups and Internet forums.

Criticism

LabVIEW is a proprietary product of National Instruments. Unlike common programming languages such as C or FORTRAN, LabVIEW is not managed or specified by a third party standards committee such as ANSI.

In addition, as of version 8, all LabVIEW installations require customers to contact National Instruments by Internet or phone to "activate" the product.cite news |url=http://www.ni.com/support/licensing/licensefaq.htm
publisher=National Instruments |title=Product Activation FAQ
] The increasing dependence on the vendor suggests a possible threat to privacy and data security. For example, although National Instruments claims the process is "secure and anonymous" the immediate implication is that a legal but privately installed instance of LabVIEW seems no longer possible.

Building a stand-alone application with LabVIEW requires the Application Builder component which is included with the Professional Development System but requires a separate purchase if using the Base Package or Full Development System.cite news |url= http://zone.ni.com/reference/en-XX/help/371361B-01/lvhowto/building_a_stand_alone_app/ | publisher=National Instruments |title= Building a Stand-Alone Application ] Compiled executables produced by the Application Builder are not truly standalone in that they also require that the LabVIEW run-time engine be installed on any target computer on which users run the application.cite news |url= http://zone.ni.com/reference/en-XX/help/371361B-01/lvhowto/using_the_lv_run_time_eng/ | publisher=National Instruments |title= Using the LabVIEW Run-Time Engine ] The use of standard controls requires a runtime library for any language and all major operating system suppliers supply the required libraries for common languages such as 'C'. However, the runtime required for LabVIEW is not supplied with any operating system and is required to be specifically installed by the administrator or user. This requirement can cause problems if an application is distributed to a user who may be prepared to run the application but does not have the inclination or permission to install additional files on the host system prior to running the executable.

There is some debate as to whether LabVIEW is really a general purpose programming language (or in some cases whether it is really a programming language at all) as opposed to an application-specific development environment for measurement and automation. [ [http://zone.ni.com/devzone/cda/tut/p/id/5313 Is LabVIEW a general purpose programming language?] ] Critics point to a lack of features, common in most other programming languages, such as native recursion and, until version 8.20, object oriented features.

Related software

National Instruments also offers a product called [http://www.ni.com/mstudio/ Measurement Studio] , which offers many of the test, measurement and control capabilities of LabVIEW, as a set of classes for use with Microsoft Visual Studio. This allows developers to harness some of LabVIEW's strengths within the text-based .NET framework. National Instruments also offers [http://www.ni.com/lwcvi/ LabWindows/CVI] as an alternative for ANSI C programmers.

The TRIL Centre Ireland offers the [http://biomobius.org/ BioMobius platform] as an alternate to LabView which is free for research purposes.

See also

* Dataflow programming
* Graphical programming
* Virtual instrumentation
* Comparison of numerical analysis software
* Fourth-generation programming language

References

Further reading

* Peter A. Blume: "The LabVIEW Style Book", February 27 2007, Prentice Hall. Part of the National Instruments Virtual Instrumentation Series series. ISBN 0-13-145835-3
* Jeffrey Travis, Jim Kring: "LabVIEW for Everyone: Graphical Programming Made Easy and Fun, 3rd Edition", July 27 2006, Prentice Hall. Part of the National Instruments Virtual Instrumentation Series series. ISBN 0-13-185672-3

Articles about specific applications of LabVIEW

*cite journal
last = Desnica V, Schreiner M
first =
authorlink =
coauthors =
title = A LabVIEW-controlled portable x-ray fluorescence spectrometer for the analysis of art objects
journal = X-Ray Spectrometry
volume = 35
issue = 5
pages = 280–286
publisher =
month = October | year = 2006
url = http://www3.interscience.wiley.com/cgi-bin/abstract/112748693/ABSTRACT
doi = 10.1002/xrs.906
id =
accessdate =

*cite journal
last = Keleshis C, Ionita C, Rudin S
first =
authorlink =
coauthors =
title = Labview graphical user interface for micro angio-fluoroscopic high resolution detector
journal = Medical Physics
volume = 33
issue = 6
pages = 2007
publisher =
month = June | year = 2006
url = http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=MPHYA6000033000006002007000001&idtype=cvips&gifs=Yes
doi = 10.1118/1.2240285
id =
accessdate =

*cite journal
last = Fedak W, Bord D, Smith C, Gawrych D, Lindeman K
first =
authorlink =
coauthors =
title = Automation of the Franck-Hertz experiment and the Tel-X-Ometer x-ray machine using LABVIEW
journal = American Journal of Physics
volume = 71
issue = 5
pages = 501–506
publisher = AAPT
month = May | year = 2003
url = http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=AJPIAS000071000005000501000001&idtype=cvips&gifs=Yes
doi = 10.1119/1.1527949
id =
accessdate =

Articles about using LabVIEW in education

*cite journal
last = Belletti A, Borromei R, Ingletto G
first =
authorlink =
coauthors =
title = Teaching physical chemistry experiments with a computer simulation by LabVIEW
journal = Journal of Chemical Education
volume = 83
issue = 9
pages = 1353–1355
publisher = ACS
month = September | year = 2006
url = http://jchemed.chem.wisc.edu/Journal/Issues/2006/Sep/abs1353.html
doi =
id =
accessdate =

*cite journal
last = Moriarty PJ, Gallagher BL, Mellor CJ, Baines RR
first =
authorlink =
coauthors =
title = Graphical computing in the undergraduate laboratory: Teaching and interfacing with LabVIEW
journal = American Journal of Physics
volume = 71
issue = 10
pages = 1062–1074
publisher = AAPT
month = October | year = 2003
url = http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=AJPIAS000071000010001062000001&idtype=cvips&gifs=Yes
doi = 10.1119/1.1582189
id =
accessdate =

*cite journal
last = Lauterburg
first = Urs
authorlink =
coauthors =
title = LabVIEW in Physics Education
journal = A white paper about using LabVIEW in physics demonstration and laboratory experiments and simulations.
volume =
issue =
pages =
publisher =
month = June | year = 2001
url = http://www.clab.unibe.ch/labview/whitepaper/LV-PhysicsWPScreen.pdf
doi =
id =
accessdate = |format=PDF

*cite journal
last = Drew SM
first =
authorlink =
coauthors =
title = Integration of national instruments' LabVIEW software into the chemistry curriculum
journal = Journal of Chemical Education
volume = 73
issue = 12
pages = 1107–1111
publisher = ACS
month = December | year = 1996
url = http://jchemed.chem.wisc.edu/Journal/Issues/1996/Dec/abs1107.html
doi =
id =
accessdate =

*cite journal
last = Muyskens MA, Glass SV, Wietsma TW, Gray TM
first =
authorlink =
coauthors =
title = Data acquisition in the chemistry laboratory using LabVIEW software
journal = Journal of Chemical Education
volume = 73
issue = 12
pages = 1112–1114
publisher = ACS
month = December | year = 1996
url = http://jchemed.chem.wisc.edu/Journal/Issues/1996/Dec/abs1112.html
doi =
id =
accessdate =

*cite journal
last = Ogren PJ, Jones TP
first =
authorlink =
coauthors =
title = Laboratory interfacing using the LabVIEW software package
journal = Journal of Chemical Education
volume = 73
issue = 12
pages = 1115–1116
publisher = ACS
month = December | year = 1996
url = http://jchemed.chem.wisc.edu/Journal/Issues/1996/Dec/abs1115.html
doi =
id =
accessdate =

*cite journal
last = Trevelyan
first = J.P.
authorlink =
coauthors =
title = 10 Years Experience with Remote Laboratories
journal = International Conference on Engineering Education Research
volume =
issue =
pages =
publisher = ACS
month = June | year = 2004
url = http://telerobot.mech.uwa.edu.au/Information/Trevelyan-INEER-2004.pdf
doi =
id =
accessdate =

External links

* [http://www.ni.com/labview/ Official Home Page] - The National Instruments web site for the LabVIEW product line.
** [http://zone.ni.com/reference/en-XX/help/371361B-01/ LabVIEW Help] - NI's entire set of online help documentation for LabVIEW 8.20.
** [http://www.ni.com/labviewzone Official LabVIEW Community Home Page] - NI's "LabVIEW Zone" web site.
* [http://www.lavag.org/ LAVA (LabVIEW Advanced Virtual Architects)] - Independent community, with discussion forums and a code repository.
* [http://www.info-labview.org Info-LabVIEW] - A LabVIEW electronic mailing list
* [http://openg.org/ OpenG] - Open-source LabVIEW utilities.
* [http://wiki.lavag.org/ The LabVIEW Wiki] - A user editable LabVIEW knowledge base powered by MediaWiki.
* [http://cnx.org/content/col10241/latest/ Free, online LabVIEW programming course] - This course was authored by NI, and is hosted by Connexions.


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Labview — Développeur National Instruments Dernière vers …   Wikipédia en Français

  • LabVIEW — Développeur National Instruments Dernière version 2010 ( …   Wikipédia en Français

  • LabVIEW — Entwickler National Instruments Aktuelle Version 2011 Betriebssystem …   Deutsch Wikipedia

  • LabVIEW — Тип Technical computing Разработчик National Instruments …   Википедия

  • LabView — Entwickler: National Instruments Aktuelle Version: 8.6 Betriebssystem: Mac OS X, Windows, Linux Kategorie …   Deutsch Wikipedia

  • Labview — Entwickler: National Instruments Aktuelle Version: 8.6 Betriebssystem: Mac OS X, Windows, Linux Kategorie …   Deutsch Wikipedia

  • LabVIEW — es una herramienta gráfica de test, control y diseño mediante la programación. El lenguaje que usa se llama lenguaje G. Este programa fue creado por National Instruments (1976) para funcionar sobre máquinas MAC, salió al mercado por primera vez… …   Enciclopedia Universal

  • LabVIEW — NI LabVIEW Desarrollador National Instruments http://www.ni.com/ Información general Última versión estable 2011 ( …   Wikipedia Español

  • Instrumentation virtuelle — LabVIEW LabVIEW Développeur National Instruments Dernière vers …   Wikipédia en Français

  • Langage G — LabVIEW LabVIEW Développeur National Instruments Dernière vers …   Wikipédia en Français


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.