LabVIEW 2018 Features and Changes

LabVIEW 2018 Help

Edition Date: March 2018
Part Number: 371361R-01
View Product Info

DOWNLOAD (Windows Only)

LabVIEW 2016 Help
LabVIEW 2017 Help
LabVIEW 2018 Help
LabVIEW 2019 Help
LabVIEW 2020 Help

The Idea Exchange icon denotes a new feature idea that originates from a product feedback suggestion on the NI Idea Exchange discussion forums at

Refer to the LabVIEW 2018 Upgrade Notes for a complete list of new features and changes, for information about upgrade and compatibility issues specific to different versions of LabVIEW, and for upgrading instructions.

Refer to the readme.html file in the labview directory for known issues, a partial list of bugs fixed, additional compatibility issues, and information about late-addition features in LabVIEW 2018.

Customizing a Malleable VI for Different Data Types

The Comparison palette includes the new Assert Type subpalette. Use the Assert Type VIs and function to force a malleable VI (.vim) to accept only data types that meet certain requirements. Use the Type Specialization structure to customize sections of code in a malleable VI for specific data types.

Refer to the labview\examples\Malleable VIs\Type Specialization Structure\Malleable VIs - Type Specialization Structure.lvproj for an example of using the Type Specialization structure to customize sections of code in a malleable VI.

Running Operations Using the Command Line Interface for LabVIEW

LabVIEW 2018 allows you to run operations in LabVIEW by executing commands using the command line interface (CLI) for LabVIEW. For example, use the CLI for LabVIEW to automate the build process of LabVIEW applications. The CLI for LabVIEW supports the following operations:

  • MassCompile—Mass compiles the files in the specified directory.
  • ExecuteBuildSpec—Builds an application, a library, or a bitfile using the settings in the specified build specification(s) and returns the path of the output files.
  • RunVI—Runs a VI with the predefined connector pane interface and returns the output or error information.
  • CloseLabVIEW—Closes LabVIEW without any prompts.
  • (VI Analyzer Toolkit) RunVIAnalyzer—Runs the specified VI analyzer task in the LabVIEW VI Analyzer Toolkit and saves the test report to the specified location.
  • (Unit Test Framework Toolkit) RunUnitTests—Runs tests on the specified files in the LabVIEW Unit Test Framework Toolkit and saves the JUnit file to the specified location.
    Note  To run this operation in LabVIEW, you must install the UTF Junit Report library using the JKI VI Package Manager (VIPM) software.

You can also create custom operations to run in LabVIEW.

Calling Python Code from LabVIEW

The Connectivity palette includes the new Python subpalette, which you can use to call Python code from LabVIEW code. The Python palette includes the following functions:

Note  You must install Python 2.7 or 3.6 to use the LabVIEW Python functions. Although unsupported versions might work with the LabVIEW Python functions, NI recommends using supported versions of Python only. Visit and enter the Info Code python to learn more about installing Python.

Application Builder Enhancements

LabVIEW 2018 includes the following enhancements to the LabVIEW Application Builder and build specifications.

Creating Packages on Windows and Linux Real-Time Targets

You can create packages in LabVIEW and deploy them to clients through NI Package Manager or SystemLink. You can use packages with Package Manager and SystemLink to distribute all types of files, including source distributions, packed project libraries, shared libraries, .NET assemblies, and executables.

(Windows 64-bit) Create NI packages (.nipkg) by right-clicking Build Specifications in the Project Explorer window and selecting New»Package. Your clients can use Package Manager or SystemLink to subscribe to a feed to find and install your packages.

(NI Linux Real-Time) You can also create opkg packages (.ipk) on NI Linux Real-Time targets if you install the LabVIEW Real-Time Module. Your clients can install packages through SystemLink or from the command line on the NI Linux Real-Time target. Package Manager does not support .ipk files.

Backward Compatibility Support for LabVIEW-Built .NET Assemblies

With support for backward compatibility, .NET interop assemblies can load either in the LabVIEW version that they are built with or in the latest version of the LabVIEW Run-Time Engine installed on the machine. For example, you can load and run .NET interop assemblies, which are built with LabVIEW 2018, in versions of the LabVIEW Run-Time Engine later than 2018 without recompiling.

To enable backward compatibility support for .NET assemblies, place a checkmark in the Allow future versions of LabVIEW to load this .NET assembly checkbox on the Advanced page of the .NET Interop Assembly Properties dialog box.

LabVIEW enables this option by default for build specifications you create in LabVIEW 2018 and later. You can disable this option to bind a build specification to a specific version of LabVIEW. Disabling this option prevents any changes to the performance profiles and helps you avoid unexpected problems resulting from compiler upgrades. For real-time applications, this option does not appear in the dialog box but the functionality is enabled by default.

Environment Enhancements

LabVIEW 2018 includes the following enhancements to the LabVIEW environment:

Improvements to Creating Type Definitions

  In LabVIEW 2018, you have more ways of creating a type definition, which links all the instances of a custom control or indicator to a saved custom control or indicator file. You can create a new type definition in one of the following ways:

  • Select File»New and select Type Definition under Other Files.
  • Right-click My Computer in the Project Explorer window and select New»Type Definition from the shortcut menu.

[Idea submitted by NI Discussion Forums member Mathis_B.]

Keyboard Shortcuts for Formatting Text

  Use the following keyboard shortcuts to format the font style when editing text in the LabVIEW environment:

  • <Ctrl-B>—Bolds text.
  • <Ctrl-I>—Italicizes text.
  • <Ctrl-U>—Underlines text.

[Idea submitted by NI Discussion Forums member vt92.]

Block Diagram Enhancements

LabVIEW 2018 includes the following enhancements to the block diagram and related functionality:

Improvements to Error Handling on Parallel For Loops

LabVIEW 2018 introduces error registers to simplify error handling on a For Loop with parallel iterations enabled. Error registers take the place of shift registers for error clusters on a parallel For Loop, as shown in the following block diagram.

Error registers automatically merge errors from parallel iterations. LabVIEW preserves the best practice of flowing errors through a shift register by automatically converting shift registers to error registers when you configure parallel iterations on a For Loop.

Error registers and shift registers differ in their run-time behavior. The left side terminal of the error register behaves like a non-indexing input tunnel and produces the same value on every iteration. The right side terminal of the error register merges the values of each iteration such that the error or warning value from the earliest iteration, by index, is the output value of the error register. If the For Loop iterates zero times, the value you wire into the left side tunnel carries forward to the output on the right side tunnel.

Improvements to Removing and Rewiring Objects

When you remove and rewire a selection of block diagram objects, LabVIEW also removes any decorations, including free labels, that are in the selection rectangle. Remove and rewire objects by dragging a selection rectangle around block diagram objects, right-clicking the selection, and selecting Remove and Rewire. You can also use the Quick Drop keyboard shortcuts <Ctrl-Space> and <Ctrl-R> keys after selecting objects to remove and rewire objects.

Front Panel Enhancements

NXG Style Controls and Indicators

The Controls palette includes the new NXG Style of front panel controls and indicators. Use the NXG style controls and indicators to create front panels with the same style as LabVIEW NXG. The appearance of these controls and indicators changes depending on the platform on which end users run the VI. Using these controls and indicators minimizes distortion of your front panels if you migrate the VIs to LabVIEW NXG.

New VIs and Functions

LabVIEW 2018 includes the following new VIs and functions:

New and Changed Properties and Methods

LabVIEW 2018 includes the following new and changed properties and methods:

  • The LeftShiftRegister class includes the new Is An Error Register property. Use this property to read whether a shift register is an error register. An error register is a special form of shift register that exists on a For Loop with parallel iterations enabled and when the data type of the shift register is an error cluster.
  • The VI class includes the new Configure Panel As Top-Level Hidden method. Use this method to hide the front panel of a VI and optionally to hide the VI from the taskbar when the VI runs as a top-level VI. For example, use this method to hide the front panel of startup VIs of stand-alone applications that you build in LabVIEW.
  • The DisableStructure class includes the new Disable Style property. Use this property to read whether the structure is a Diagram Disable structure, a Conditional Disable structure, or a Type Specialization structure.
  • The Disable Style parameter of the Change Disable Style (class: DisableStructure) method includes the new Type Specialization Style option. Use this option to change a Diagram Disable structure or a Conditional Disable structure to a Type Specialization structure.


Not Helpful