LabVIEW Programming Introduction and Resources
LabVIEW is a graphical programming language designed for interfacing with measurement and control devices. Using simple, visual code, scientist and engineers can easily collect measurements, analyze data, and share their results using custom-built applications.
Using only the graphical environment, users can program fully-functioning, complex applications without knowing a single line of code. Using the built-in compiler, the graphical code is translated directly into executable machine code and can be ported to multiple platforms.
LabVIEW is a dataflow language, meaning programs are constructed from a set of routines (represented by graphical images), which are strung together by a series of wires and arrows. Unlike text-based languages that pass data from function to function using variables, data in a LabVIEW program flows in the direction of the wires, and routines function directly in response to input. Rather than executing in a pre-defined order, routines execute once they receive all required input.
Benefits of LabVIEW
The most obvious benefit of LabVIEW is, of course, the easy-to-use graphical interface, which makes LabVIEW ideal for the non-programming community. But the language offers many other benefits for both new and experienced programmers, including:
- Device Interaction: LabVIEW includes built-in support for a number of hardware platforms, and thousands of other devices can be managed using libraries and third-party add-ons.
- Function Libraries: LabVIEW libraries are available for most common functions, such as data acquisition, mathematics, signal generation, and data analysis, as well as a large collections of GUI elements that can be easily incorporating into programs.
- Concurrency: LabVIEW allows for easy multithreading, in order to perform multiple tasks in parallel.
- Third-Party Add-ons: with over 20 years of development, LabVIEW has amassed a strong community of users and programmers, and they have created a large number of custom add-ons designed to handle both general and highly-specialized tasks, so no matter how novel your research, chances are there’s a solution already available that can help you collect and interpret the data.
LabVIEW was originally released in 1986 for Apple Macintosh. Using the graphical language "G," LabVIEW was designed to interact with virtual instruments in order to take measurements and create automation. LabVIEW remained a Mac-only product until 1992, when National Instrument released versions for SunOS and Windows.
LabVIEW remains propriety software, owned and maintained by National Instruments. As such, it is not required to meet any third-party standards, such as ANSI or ISO, as more common languages are, sparking some complaints about performance and licensing; however, LabVIEW remains a popular language for programming and automating the Internet of Things. National Instruments maintains a regular release cycle, publishing a new major version every August.
National Instruments also develops an enormous inventory of hardware devices which can be programmed and controlled using LabVIEW, including data acquisition tools such as counters, timers, sensors, and signal analyzers; test instruments; monitoring hardware; and instrument control devices.
There are plenty of online resources available for new and experienced LabVIEW programmers. Some of the best places to start include:
- Introduction to LabVIEW: this online tutorial serves both as a technical manual and training guide for the software environment. It provides an overview of the application and general principles of graphical programming, as well as a guide to fundamental LabVIEW functions.
- NI Discussion Forums: maintained by National Instruments, this is the official discussion forum for LabVIEW. It hosts discussions on software-related topics, hardware questions, advanced programming, and even recent job postings for LabVIEW professionals.
- Macomb Academy's LabVIEW Tutorial: designed as an introduction for incoming high school students, this free tutorial provides a visual guide to the LabVIEW environment and some simple programming concepts. If you're just starting out, it's a great resource for getting comfortable with the new language.
There are dozens of books out there either specifically dealing with LabVIEW or using LabVIEW as a tool for solving problems. Unlike many languages, because LabVIEW is designed for researchers rather than programmers, most of the books you will find on LabVIEW are written specifically for beginners, though often with an emphasis toward scientist and engineers.
- Hands-On Introduction to LabVIEW for Scientists and Engineers by John Essick: this book assumes no prior knowledge of LabVIEW or any other type of programming language. It begins with an introduction to the LabVIEW environment and starts each chapter with a basic overview of the fundamental operations to be discussed. Each chapter is filled with real-world programming examples that can later be incorporated into your own coding projects.
- LabVIEW for Everyone: Graphical Programming Made Easy and Fun by Travis and Kring: as the name implies, this book is designed for anyone to use, whether experienced programmers or beginners. It breaks the language down to simple concepts, and explains those with easy-to-replicate examples with plenty of reusable code. For experienced LabVIEW developers, it also includes objectives for certification exams.
- LabVIEW Graphical Programming Cookbook: 69 Recipes to help you build, debug, and deploy modular applications using LabVIEW by Yik Yang: this book is designed specifically for developers, scientists, and engineers who already have experience with C or C++ programming. It takes their existing knowledge and applies it to advanced application development techniques such as multi-thread programming, data acquisition, error handling, animation, and working with external code and applications.
- LabVIEW Student Edition by Robert H Bishop: this book walks students through the creation of graphical programming solutions to solve classroom and laboratory problems. While intended primarily for science and engineering students, its approach is easily accessible to any beginning programmer.
- Programming Arduino with LabVIEW by Marco Schwartz: this book is designed for programmers with some knowledge of LabVIEW who want to improve their understanding and apply that knowledge directly to real-world applications, using an Arduino kit. The book teaches you how to set up LabVIEW and Arduino, control motor and power switches, build a simple weather station, and even wirelessly control an Arduino-based robot.
LabVIEW provides an easy-to use tool for scientist and engineers who want to design custom data collection and automated tools for research or industrial applications. While there are plenty of graphical languages available, LabVIEW has the advantage of two decades' worth of development and wide-spread adoption, meaning code is already available for most devices and nearly any function you may want to run. As a programmer, all you have to do is determine how you want to interact with the device, and what you want to do with any collected data.
LabVIEW remains a proprietary tool, so in order to use it you will need to obtain a license. Many add-ons, as well, are only available through participation with National Instruments' app network, potentially adding to the cost of your LabVIEW projects. However, proprietary solutions also include better support than most open-source alternatives, which will come in handy for all those non-programmers using it.