National Instruments LabVIEW is a programming language which is commonly used within science and engineering for building test, measurement and automation applications. The distingishing feature when compared to other programming languages is that it uses graphics instead of text listings for its source code. LabVIEW is popular with scientists and engineers without a background in software programming, due to this graphical coding and straightforward integration with a wide range of measurement instruments and control equipment. As LabVIEW is often used to replace real physical instruments, the programs are called virtual instruments, or VIs for short.
Integrated Development Environment
The LabVIEW development environment is an application program available for the Microsoft Windows, Mac and Linux operating systems. It allows users to build source code, construct graphical users interfaces, compile and run their programs. LabVIEW includes libraries for communicating with a wide variety of instrumentation, performing advanced analysis and displaying data in graphical form, making it much more capable for scientific and engineering applications compared to general purpose programming languages.
Block Diagram – Graphical Source Code
LabVIEW replaces text source code with a graphical block diagram where nodes replace function calls and wires between the nodes represent the transfer of data. Unlike text based programming where functions execute sequentially, in the graphical programming it is the data flow between block diagram nodes which controls execution order. The visual nature of LabVIEW makes it straightforward for programming novices to create applications, particularly when using features such as express VIs, which replace coding tasks with dialogue box configuration. Although the initial learning curve is not steep, when users begin tackling large scale applications programming pitfalls similar to those found in text based languages can easily be encountered. Data management issues, race conditions, poor code readability and lack of scalability can easily be encountered by programmers not familiar with advanced LabVIEW graphical techniques.
Front Panel – Graphical User Interface
In common with other development languages, LabVIEW provides the ability to build graphical user interfaces, which it calls front panels to provide an analogy with physical instruments. As LabVIEW is focused on science and engineering, in addition to standard user interface objects such as text entry boxes or OK buttons, there are items specifically aimed at these areas. Engineering specific items include a range of graph display objects, control knobs, switches, meters, LEDs and slides.
Multiple Execution Targets
As well as traditional execution targets such as PCs, or PXI controllers running Windows, LabVIEW can also be used to develop software to run on more exotic hardware. National Instruments produce a real-time operating system which can run on PXI controllers, PC hardware and cRIO controllers. Using the LabVIEW real-time module, code can be built to run on these targets, achieving determinism and up-time not possible under standard operating systems. There are also programmable FPGA targets from National Instruments, in the form of PCI/PXI cards and cRIO backplanes, that allow reconfiguration at the logic circuit level. Through the LabVIEW FPGA module, code for these devices can be developed and deployed, producing a solution with the tight timing and low processing overhead of a pure hardware system, but with the easy reconfiguration of a software one.