|
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.5, released in August of 2007. Image File history File links The logo of National Instruments LabVIEW software. ...
Software development is the translation of a user need or marketing goal into a software product. ...
The National Instruments Campus in Austin, Texas National Instruments, or NI (NASDAQ: NATI), is a producer of automated test equipment and virtual instrumentation software. ...
A software release is the distribution, whether public or private, of an initial or new and upgraded version of a computer software product. ...
// An operating system (OS) is the software that manages the sharing of the resources of a computer. ...
A cross-platform (or platform independent) programming language, software application or hardware device works on more than one system platform (e. ...
Computer software can be organized into categories based on common function, type, or field of use. ...
Data acquisition is the sampling of the real world to generate data that can be manipulated by a computer. ...
Instrument control consists of connecting a desktop instrument to a computer and taking measurements. ...
Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. ...
Signal processing is the processing, amplification and interpretation of signals, and deals with the analysis and manipulation of signals. ...
Industrial control system (ICS) is a general term that encompasses several types of control systems, including supervisory control and data acquisition (SCADA) systems, distributed control systems (DCS), and other smaller control system configurations such as skid-mounted Programmable Logic Controllers (PLC) often found in the industrial sectors and critical infrastructures. ...
In mathematics, see embedding. ...
A software license is a legal agreement which may take the form of a proprietary or gratuitous license as well as a memorandum of contract between a producer and a user of computer software. ...
It has been suggested that closed source be merged into this article or section. ...
A website (alternatively, Web site or web site) is a collection of Web pages, images, videos and other digital assets that is hosted on one or several Web server(s), usually accessible via the Internet, cell phone or a LAN. A Web page is a document, typically written in HTML...
Visual Programming in Mindscript A Visual programming language (VPL) is any programming language that lets users specify programs by manipulating program elements graphically rather than by specifying them textually. ...
The National Instruments Campus in Austin, Texas National Instruments, or NI (NASDAQ: NATI), is a producer of automated test equipment and virtual instrumentation software. ...
The first Macintosh computer, introduced in 1984, upgraded to a 512K Fat Mac. The Macintosh or Mac, is a line of personal computers designed, developed, manufactured, and marketed by Apple Computer. ...
Year 1986 (MCMLXXXVI) was a common year starting on Wednesday (link displays 1986 Gregorian calendar). ...
Data acquisition is the sampling of the real world to generate data that can be manipulated by a computer. ...
Instrument control consists of connecting a desktop instrument to a computer and taking measurements. ...
This article does not cite any references or sources. ...
Windows redirects here. ...
Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ...
This article is about operating systems that use the Linux kernel. ...
This article or section does not adequately cite its references or sources. ...
Dataflow programming The programming language used in LabVIEW, called "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. In computer programming, dataflow programming implements dataflow principles and architecture, and models a program, conceptually if not physically, as a directed graph of the data flowing between operations. ...
Multiprocessing is traditionally known as the use of multiple concurrent processes in a system as opposed to a single process at any one instant. ...
Many programming languages, operating systems, and other software development environments support what are called threads of execution. ...
In telecommunications, multiplexing (also muxing or MUXing) is the combining of two or more information channels onto a common transmission medium using hardware called a multiplexer or (MUX). ...
// An operating system (OS) is the software that manages the sharing of the resources of a computer. ...
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.[citation needed] 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.[citation needed] 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. To meet Wikipedias quality standards, this article or section may require cleanup. ...
C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...
This article is about the Visual Basic language shipping with Microsoft Visual Studio 6. ...
Python is a high-level programming language first released by Guido van Rossum in 1991. ...
In computer science, polymorphism means allowing a single definition to be used with different types of data (specifically, different classes of objects). ...
Screenshot of a simple LabVIEW program that generates, synthesizes, analyzes and displays waveforms, showing the block diagram and front panel. Each symbol on the block diagram represents a LabVIEW subroutine (subVI) which can be another LabVIEW program or a LV library function. Image File history File links Download high resolution version (1024x866, 330 KB) Summary Screenshot of a simple LabVIEW program that generates, synthesizes, analyzes and displays waveforms, showing the Block Diagram and Front Panel. ...
Image File history File links Download high resolution version (1024x866, 330 KB) Summary Screenshot of a simple LabVIEW program that generates, synthesizes, analyzes and displays waveforms, showing the Block Diagram and Front Panel. ...
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 latter may represent the VI as a subVI in block diagrams of 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 by simply dragging and dropping virtual representations of the lab equipment with which they are already familiar. The LabVIEW programming environment, with the included examples and the documentation, makes it simpler 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 possess 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 thus is easier to implement due to the inherently parallel nature of G-code.
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, MacOSX 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. A diagram of the operation of a typical multi-language, multi-target compiler. ...
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 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 exchangeable. 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, MacOSX 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. Phar Lap was a software company specializing in software development tools for the MS-DOS/PC-DOS operating systems. ...
A field-programmable gate array or FPGA is a gate array that can be reprogrammed after it is manufactured, rather than having its programming fixed during the manufacturing — a programmable logic device. ...
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. It has been suggested that closed source be merged into this article or section. ...
The National Instruments Campus in Austin, Texas National Instruments, or NI (NASDAQ: NATI), is a producer of automated test equipment and virtual instrumentation software. ...
Wikibooks has a book on the topic of C Programming The C programming language (often, just C) is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ...
Fortran (previously FORTRAN[1]) is a general-purpose[2], procedural,[3] imperative programming language that is especially suited to numeric computation and scientific computing. ...
The American National Standards Institute or ANSI (pronounced an-see) is a nonprofit organization that oversees the development of standards for products, services, processes and systems in the United States. ...
In addition, as of version 8, all LabVIEW installs require customers to contact National Instruments by Internet or phone to "activate" the product.[1] The increasing dependence on the vendor suggests possible privacy and data security concerns. 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. Image File history File links LabVIEW_8dot20_Splash_Screen. ...
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.[2] 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.[3] 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. The need for a separately-installed LabVIEW run-time engine makes the development and distribution of truly portable applications using LabVIEW difficult. A USB drive, shown with a 24 mm US quarter coin for scale. ...
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.[4] 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. While directly employing recursion is not available in LabVIEW, it is certainly possible to implement recursion in LabVIEW using queueing and a "state machine" design simply by having a particular "state" of a state machine send a queue command to call itself which the next iteration of the state machine (usually implemented as either a "while" or "for" loop) will process. Stack operations of "pushing" and "popping" often used to implement recursive operations in other languages which do not support recursion can also be implemented using queues for which LabVIEW has had native support since version 5.x. More modern code design in LabVIEW has trended in the last few years towards use of dynamic VI launching utilizing thread-safe queue based communications between dynamically launched VI's. Multiple instances of a particular process can even be processed through the use of dynamically launched VIT's or VI templates which create numbered instances of the original VIT when launched in a manner analogous to thread launching in C++. These innovations in code design by developers have allowed them to overcome some of the original limitations of the traditional flow based architecture and exchange that paradigm for hybrid that bridges small islands of "flow based" code with a transactional "messaging" based architecture that is much more modular and object oriented. Very large monolithic static VI hierarchies have been replaced in large scale code by a series of smaller VI "objects" that perform a coherent set of functionality and communicate to other "objects" through queue based messaging. This allows individual "objects" to be much smaller in size, much less complex in design, and to follow a much simpler and better understood code flow internally using "state machine" design and at the same time allows much larger scale more complex multi-threaded projects to be developed with much less effort and debugging than in the earlier days of LabVIEW prior to the existence of queueing and dynamic VI launching. LabVIEW is also relatively expensive compared to other development suites. LabVIEW starts at $1199 (2007 pricing) for the base version and runs up to $4299 for the NI Developer Suite. The professional edition, which is the cheapest package that bundles the application builder, costs $4099.[5] This compares to Visual Studio which starts at $299 (2007 pricing) for the standard edition.[6] LabVIEW is also available in a full featured student edition version which includes a text book for $100.[7]
Related software National Instruments also offers a product called 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. Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ...
Microsoft Visual Studio is a series of IDEs by Microsoft. ...
It has been suggested that Com interop be merged into this article or section. ...
National Instruments also offers LabWindows/CVI as an alternative for ANSI C programmers.
See also Data acquisition is the sampling of the real world to generate data that can be manipulated by a computer. ...
Visual programming language (VPL) is any programming language that lets users specify programs in a two-(or more)-dimensional way. ...
The National Instruments Campus in Austin, Texas National Instruments, or NI (NASDAQ: NATI), is a producer of automated test equipment and virtual instrumentation software. ...
Virtual Instrumentation is the use of customizable software and modular measurement hardware to create user-defined measurement systems, called virtual instruments. ...
References Further reading Articles about specific applications of LabVIEW - Desnica V, Schreiner M (Oct 2006). "A LabVIEW-controlled portable x-ray fluorescence spectrometer for the analysis of art objects". X-Ray Spectrometry 35 (5): 280-286. DOI:10.1002/xrs.906.
- Keleshis C, Ionita C, Rudin S (Jun 2006). "Labview graphical user interface for micro angio-fluoroscopic high resolution detector". Medical Physics 33 (6): 2007. DOI:10.1118/1.2240285.
- Fedak W, Bord D, Smith C, Gawrych D, Lindeman K (May 2003). "Automation of the Franck-Hertz experiment and the Tel-X-Ometer x-ray machine using LABVIEW". American Journal of Physics 71 (5): 501-506. DOI:10.1119/1.1527949.
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
Articles about using LabVIEW in education - Moriarty PJ, Gallagher BL, Mellor CJ, Baines RR (Oct 2003). "Graphical computing in the undergraduate laboratory: Teaching and interfacing with LabVIEW". American Journal of Physics 71 (10): 1062-1074. DOI:10.1119/1.1582189.
- Lauterburg, Urs (June 2001). "LabVIEW in Physics Education". A white paper about using LabVIEW in physics demonstration and laboratory experiments and simulations..
A digital object identifier (or DOI) is a standard for persistently identifying a piece of intellectual property on a digital network and associating it with related data, the metadata, in a structured extensible way. ...
External links |