Advantages and Disadvantages of LabVIEW
The single biggest advantage of LabVIEW lies in its ability to quickly facilitate taking measurements. The biggest disadvantage of LabVIEW is that it’s a proprietary language.
Here’s a list of the main advantages and disadvantages (pros and cons) of LabVIEW as of early 2019, put together by a company that’s been utilizing LabVIEW as a tool to create solutions since 1993.
Advantages of LabVIEW
Ease of first acquisition for DAQ
You can automate the capture and validate signals and take measurements with less effort than traditional programming environments. Of course you can capture signals and make measurements with various lab equipment (scopes, analyzers, multimeters), but if you have a need to take a wide range of types of measurements, like environmental temperatures along with a fast pressure signal, and/or you’re looking for a consistent way of programming to take those measurements, LabVIEW is your friend.
The NI ecosystem
The NI ecosystem is great when you have to interface to sensors and actuators.
- You’ve got hardware options (controllers, measurement modules, control modules, communication modules). See here for details.
- Real-time applications and desktop applications are developed in the same environment.
- A series of add-ons and plug-ins to help get the job done faster. See here for details.
You can roll your own for any of this and make your own custom thing. It’s just a matter of how much effort you want to put into building from scratch. Do you want to add a team of electrical engineers, software engineers, and mechanical engineers?
The dataflow nature of LabVIEW enables parallel processing naturally as part of the language. If you want your application to be doing multiple tasks at once, e.g., monitoring for a over-temperature safety condition while acquiring fast pressure data, LabVIEW programs this easily by dropping multiple parallel loops onto the block diagram.
Lowered barrier to entry for FPGA-based programming
If you need serious determinism, parallel processing, or number crunching, an FPGA can be your best friend. However, if you don’t know VHDL (or Verilog), that can be a barrier. LabVIEW FPGA abstracts a lot of the details away so you can focus on your algorithm and not the support structure. Note that this requires you to utilize NI hardware that supports LabVIEW FPGA.
Measurement data visualization. Graphs are super straightforward.
Let’s say you want to display a measured waveform or an FFT of a signal. With LabVIEW, this is as simple as placing a chart or graph front panel object and wiring the data to visualize to the indicator. 2D visualization (e.g., 2D surfaces and images) isn’t too bad either using the API provided by NI.
Ease of interfacing with instrumentation
Do you need to interface with lab instruments (e.g. analyzers, power supplies, DMMs, scopes, etc)? LabVIEW makes this easy. Vendors have standardized on LabVIEW and provide an extensive library of instrument drivers for download directly in LabVIEW.
Ease of interfacing over different communication links
Communicating over Ethernet, RS-232, USB, EtherCAT, CAN, RS-485, RS-422, LIN, 1553, ARINC, GPIB, and others. LabVIEW makes this easier than many other languages by providing APIs for these in the shipping product.
Disadvantages of LabVIEW
You can do things like basic SQL calls, but it’s work to take a data structure from LabVIEW and get it into a database. It does not do binding. It does fine inserting data into a database, but using the data, or manipulating it, is challenging (LabVIEW handles the “C” in CRUD, but that’s about it).
Implementing a remote client
Let’s say you want to check how an application is running, or monitor long term testing, but you’re in a different room.
There’s nothing really good available out of the box. Your most likely options are covered in this article on 6 ways to do remote monitoring with LabVIEW. You can roll your own for a lot of stuff that’s industry standard from a framework or base tools or easily implementable library.
Modern GUI development
UX is becoming increasingly important. Creating a modern UI that meets the expectations of smartphone app users can be challenging in LabVIEW, mainly due to:
- Lack of auto re-sizing based on screen resolution
- Limitations on customization of theme of UI or components
- Visualization elements (e.g. charts) are limited and non-trivial to customize
- Moving between different operating systems is not as clean as some other development environments
Not the most extensive user community out there
With this, there’s less opportunity to utilize open source libraries. You might have to pay for a library that might be free in a different language. There is a community though of course (check out the NI discussion forums and LAVA Forums).
Web-based application development
LabVIEW has not caught up with recent innovations to create RESTful applications. While it is possible to create a REST API in LabVIEW, the process is not nearly as streamlined as some of the frameworks available for C#.NET, Node.js, or Python (to name a few). The API that is available is also very resource intensive and not ideal for the limited processing power available in most embedded applications.
Mobile device / smartphone application development
LabVIEW is not portable to Android and iOS platforms and is not ideal for Single Page Application (SPA) development (see above).
Code version portability
Updating to a new version of LabVIEW and then going backward can be problematic because the LabVIEW development environment is so tightly linked to the G code. As NI adds features to either the code or the UI, moving that version back several iterations will break the older LabVIEW environment. NI updates LabVIEW much more frequently than text-based languages.
Presumably you’re in learning mode. If so, check these out:
- LabVIEW Test Automation – Custom Automated Test System Buyers Guide
- Which NI Platform is Right for Your Automated Test Needs? cRIO, PXI, cDAQ, sbRIO?
- Test Automation Best Practices
- Making Good Measurements for Automated Test
- 9 Considerations Before you Outsource your Custom Test Equipment Development
- Product Testing Methods
- LabVIEW Uses – What is LabVIEW used for? 4 Purposes
- 5 Considerations Before Selecting a LabVIEW Consultant
- How to Diagnose Failing Custom Test Equipment
- How to improve a manual testing process
- LabVIEW FAQ
If there’s a LabVIEW-related topic that’s not covered that you’d like to learn about, let us know here.
If you work for a US-based manufacturer and just got some LabVIEW dropped in your lap and you want someone to take it off your plate, you can reach out here for a LabVIEW consultation.