What is LabVIEW?
LabVIEW, short for Laboratory Virtual Instrument Engineering Workbench, is a fully featured Integrated Development Environment (IDE) produced by National Instruments. The programming language is officially named "G" for being graphical even though many refer to the language as LabVIEW. The G language unique in the method by which code is constructed and saved. There is no text based code, but is diagrammatic view of how the data flows through the program. Thus LabVIEW is a much loved tool of the scientist and engineer who can often visualize data flow rather than how a text based conventional programming language must be built to achieve a task.
Originally released for the Apple Macintosh in 1986, LabVIEW is commonly used for data acquisition, instrument control, and industrial automation on a variety of operating systems (OSs), including Microsoft Windows, various versions of Unix, Linux, and macOS. Jeff Kodosky, (a.k.a. the "Father of LabVIEW"), during his keynote address during NIWeek 2017, attempted to create a one line description of LabVIEW, in which he stated:
LabVIEW is an engineering environment for building test, measurement, and control systems using a virtual-instrument based graphical programming language...
After feeling this lacked the emotion users felt while using LabVIEW, he went on to add the line:
...that inspires users to strive for and achieve more than they expected.
Virtual Instruments (VIs)
LabVIEW programs are called virtual instruments, or VIs, because their appearance and operation imitate physical instruments, such as oscilloscopes and multimeters. LabVIEW contains a comprehensive set of tools for acquiring, analyzing, displaying, and storing data, as well as tools to help you troubleshoot your code.
LabVIEW VIs contain three components:
In LabVIEW, you build a user interface on the Front Panel with controls and indicators. Controls are knobs, push buttons, dials, and other input devices. Indicators are graphs, LEDs, and other displays. After you build the user interface, you add code using VIs and structures to control the front panel objects.
In text based code, the code inside of a programming structure is enclosed by brackets making it difficult to differentiate what is in the structure and what is out. In LabVIEW this is not the case. Structures, like: While Loops, For Loops, and Case Structures graphically surrounds and encompasses the code that operates within it.
The Connector Pane defines the inputs and outputs of the VI by connecting Controls and Indicators from the front panel to terminals on the Icon. When the VI is dropped into the block diagram of another VI (becoming a SubVI) these terminals are then available to attach wires for inputs and outputs.
You can use LabVIEW to communicate with hardware such as data acquisition, vision, and motion control devices, and GPIB, PXI, VXI, RS-232, and RS-484 devices. LabVIEW also has built-in features for connecting your application to the Web using the LabVIEW Web Server and software standards such as TCP/IP networking and ActiveX.
LabVIEW is developed and sold by National Instruments. This is an American company with distribution via international offices and National Instruments Alliance members. For more details check out the National Instruments Web site
There are many versions of LabVIEW still in use, although the earlier versions are constrained to hard core dedicated enthusiasts. We have heard whispered mention of the use of Version 3 and there are many active Version 4's in circulation. More recent additions to the legacy software bin are versions 5.0, 5.1, LabVIEW 6i and 6.1, while the current version as of May 2018 is LabVIEW 2018. In addition there are demo versions available from National Instruments. Starting in 2017 National Instruments announced the creation of the next generation of LabVIEW, called LabVIEW NXG. Currently, LabVIEW NXG has had two releases in 2017 and 2018 which comprises LabVIEW NXG 1.0 and 2.0, respectively.
From version 6.0 onwards NI released the product formerly known as BridgeVIEW as a LabVIEW plugin module called the Data Supervisory and Control module (DSC) and with the advent of real time boards and the release of the Fieldpoint real-time network module, there is also a module that allows writing of code for embedded processors referred to as the Real Time module (RT). Lastly, there are version available for PDA module (for writing code for PocketPC and PalmOS) and the FPGA module for writing code for Field Programmable Gate Arrays (LabVIEW on a chip!). These modules now keep track with the current LabVIEW version.
See more on all of the LabVIEW Versions.
LabVIEW is supported and G source code development can be accomplished on Windows 9x/2000/NT/XP/Vista/7/8/10, Apple Macintosh (including X), PowerMax OS, Solaris, HP-Unix, Sun, Linux, the Pharlap RTOS, and VxWorks RTOS (Real-Time Operating Systems, found on National Instruments embedded controllers). Executables can be compiled under their respective development systems to run on these platforms. Code developed under one platform can be ported to any of the others, recompiled and run*. LabVIEW PDA can run on handheld devices, such as Microsoft Windows Mobile for Pocket PC devices.
*There are of course exceptions to every rule. In this case platform specific sections of the LabVIEW development system will not be transferable. For example, ActiveX or .NET integration which is Windows specific. Furthermore, certain third party device drivers or LabVIEW toolkits installed under one system may not necessarily be available, run, or be recompiled on a different operating system.
Since LabVIEW 2.0, G can compiled directly into executables. You can also create stand-alone shared libraries (DLLs), Packed Project Libraries (PPLs), and installers. LabVIEW has both 32-bit and 64-bit versions with applicable compiler for each. As stated above, except for the listed exceptions, executables can be compiled under their respective development systems to run on the various platforms and "bitnesses".
The Future of your LabVIEW Code
LabVIEW and LabVIEW NXG are both in active development with no set date, as yet, when LabVIEW will sunset and LabVIEW NXG will fully take its place.