Company Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI

LabVIEW 8.5 Features and Changes

LabVIEW 8.5 Help
August 2007

NI Part Number:
371361D-01

»View Product Info

Refer to the LabVIEW 8.5 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 in the labview directory for known issues, a partial list of bugs fixed, additional compatibility issues, and information about late addition features in LabVIEW 8.5.

Installing LabVIEW

LabVIEW 8.5 offers the following installation options on Windows.

  • DVD—Includes LabVIEW, the device drivers, and LabVIEW SignalExpress.
  • CD—Includes LabVIEW only. If you install LabVIEW using the CD, you install the device drivers and LabVIEW SignalExpress using the National Instruments Device Drivers CD.

The Measurement & Automation Explorer (MAX) no longer appears in the tree during installation if you install using the installation CD. The components of MAX that LabVIEW requires are installed automatically. You can install MAX from the National Instruments Device Drivers CD.

LabVIEW Documentation

LabVIEW 8.5 includes the following documentation enhancements:

  • The readme.html includes a partial list of user-reported bugs fixed in the current version of LabVIEW. Refer to the Bug Fixes section of the readme.html in the labview directory to review the list of bugs.
  • Reference topics in the LabVIEW Help include LabVIEW module-specific information if the module is installed and if any module-specific information exists for the VI, function, and so on exists.

New Example VIs

Refer to the New Examples for LabVIEW 8.x folder on the Browse tab of the NI Example Finder to view descriptions for and launch example VIs added to LabVIEW 8.x.

Block Diagram Enhancements

LabVIEW 8.5 includes the following enhancements to the block diagram and related functionality.

Creating Shared Reentrant VIs

When you configure a reentrant VI in LabVIEW 8.2.x and earlier, LabVIEW preallocates a clone of the reentrant VI in memory for each call to the reentrant VI. In LabVIEW 8.5, you can configure a reentrant VI to share the clone VI among callers without preallocating a clone VI in memory for each call to the reentrant VI. Sharing clone VIs reduces memory usage because LabVIEW does not preallocate a clone for each call to the reentrant VI.

To configure a VI to share the clone VI among callers, select File»VI Properties and select Execution from the Category pull-down menu to display the Execution Properties page of the VI Properties dialog box. Place a checkmark in the Reentrant execution checkbox and select the Share clones between instances option to share the clone VIs.

However, sharing clone VIs can reduce VI execution speed. Do not select the Share clones between instances option if you want to preserve state information across calls to a clone VI, such as uninitialized shift registers. To preserve state information across calls to a clone VI, select the Preallocate clone for each instance option on the Execution Properties page.

Conditional and Diagram Disable Structure Enhancements

When LabVIEW loads a VI with user-defined objects, such as subVIs and type definitions, in the disabled subdiagram of a Diagram Disable structure or in the inactive subdiagrams of a Conditional Disable structure, LabVIEW does not load these objects into memory. However, when you display the block diagram of the VI, if LabVIEW cannot find the objects, the missing objects appear with a question mark icon. The VI does not break because LabVIEW does not include the code when compiling and executing the VI.

Front Panel Enhancements

LabVIEW 8.5 includes the following enhancements to the front panel and related functionality.

Digital Waveform Graph Enhancements

The default view for the plot legend of the digital waveform graph is the tree view, located to the left of the plot area of the graph. The tree view displays both digital lines and buses by default. You can expand and contract digital buses in the tree view of the plot legend by clicking the expand/contract symbol to the left of the digital bus. You can use the standard view of the plot legend to achieve the appearance of the plot legend in LabVIEW 8.2 and earlier.

By default, the digital waveform graph displays both digital lines and buses in the plot area. Customize the plot area of the digital waveform graph to display only the data you want to view.

Export Simplified Image Enhancements

The Export Simplified Image on the shortcut menu of graphs, charts, tables, picture controls, digital data, and digital waveform controls moved from the Data Operations shortcut menu to the top-level shortcut menu.

You also can right-click a graph, chart, table, picture control, digital data, or digital waveform control or indicator contained within an XControl and select Export Simplified Image from the shortcut menu to export an image to the clipboard or to save an image to disk.

Front panel images exported using the Export Simplified Image menu item no longer export with a border enclosing the image.

Plot Legend Enhancements

Customize how a plot appears in the plot area of a graph or chart by clicking the glyph that corresponds to that plot in the plot legend and select from the shortcut menu options.

You can add a vertical or horizontal scroll bar to the plot legend of graphs and charts. Use a scroll bar to view plots in a plot legend without exposing all the plots at any one time.

To add a scroll bar to a plot legend, right-click the plot legend and select Visible Items»Horizontal Scrollbar or Visible Items»Vertical Scrollbar from the shortcut menu.

Using a Mixed Checkbox

Use a mixed checkbox, located on the System palette, to display a TRUE, FALSE, or MIXED value. For example, use a mixed checkbox if you want to display a set of Boolean values in a single indicator, where that set of Boolean values are either all TRUE, all FALSE, or a combination of TRUE and FALSE, called MIXED. Use the mixed checkbox control to simultaneously change a set of Boolean values to either a TRUE or FALSE value.

Although the mixed checkbox is an enumerated type control, you can configure the control similarly to a Boolean control.

To disable the ability to set the MIXED value of a mixed checkbox interactively, right-click the control and select Allow Mixed from the shortcut menu to remove the checkmark next to the menu item. When you disable Allow Mixed, LabVIEW can assign the value of the mixed checkbox as MIXED, but you cannot operate to MIXED at run time by clicking on it.

Miscellaneous Front Panel Enhancements

You can configure a front panel control to scale automatically while the pane resizes. Right-click a splitter bar and select Pane Sizing»Scale Objects While Resizing from the shortcut menu.

Environment Enhancements

LabVIEW 8.5 introduces the following enhancements to the LabVIEW environment.

Automatic Saving for Recovery Enhancements

In the event of an irregular shutdown or system failure, LabVIEW 8.5 now backs up modified project (.lvproj), project library (.lvlib), XControl (.xctl), and LabVIEW class (.lvclass) files open at the time of the shutdown or failure to a temporary location. These file types appear with any recovered VI (.vi), VI template (.vit), control (.ctl), and control template(.ctt) files in the Select Files to Recover window the next time you launch LabVIEW. To enable the Compare Backup with Original button in the Select Files to Recover window for project, project library, XControl, and LabVIEW class files, you manually must configure text comparison for file recovery.

Saving for Multiple Previous Versions of LabVIEW

You can save VIs, projects, and project libraries for a previous version of LabVIEW to make upgrading LabVIEW convenient and to help you maintain files in more than one version of LabVIEW when necessary. Select File»Save for Previous Version to open the Save for Previous Version dialog box. Choose 8.5, 8.2, or 8.0 from the LabVIEW Version pull-down menu to save for a previous version of LabVIEW.

Dialog Box Enhancements

LabVIEW 8.5 includes the following dialog box enhancements.

Add Targets and Devices Dialog Box Enhancements

If you add a target to a LabVIEW project that conflicts with another existing target, the Add Targets and Devices dialog box displays the Options column next to the Targets and Devices list. Click the down arrow next to the conflict resolution in the Options column and select from the available options to resolve the conflict. You cannot add a target until you resolve all conflicts in the Options column for the selected target.

Call Library Function Dialog Box Enhancements

Right-click a Call Library Function Node on the block diagram and select Configure from the shortcut menu to display the Call Library Function dialog box. The Error Checking page provides several options for integrated error checking with the Call Library Function Node.

  • The Maximum and Default controls on the Error Checking page allow LabVIEW to recover from unhandled exceptions that occur in the configuration of the Call Library Function Node or during a call to a shared library or DLL.
  • The Disabled control on the Error Checking page disables error checking but improves the execution speed of the Call Library Function Node. However, certain errors can cause an irregular shutdown of LabVIEW. Before disabling error checking, be sure that the function the Call Library Function Node references does not raise any unhandled exceptions.

The Call Library Function dialog box also includes the following miscellaneous enhancements:

  • On the Parameters page, the Minimum size control displays <None> by default. The Minimum size control is visible when you select String from the Type pull-down menu and then select C String Pointer from the String format pull-down menu or when you select Array from the Type pull-down menu and then select Array Data Pointer from the Array format pull-down menu.
  • On the Function page, the Reentrant control is renamed Run in any thread.

Options Dialog Box Enhancements and Changes

LabVIEW 8.5 includes the following Options dialog box enhancements:

  • On the Block Diagram page, the Use transparent name labels is enabled by default.
  • On the Environment page, the Enable Windows Explorer for LLB files option no longer exists.
  • On the Front Panel page, the components are in order based on items that apply to edit time behavior and items that apply to run-time behavior.
  • On the Front Panel page, put a checkmark in the Connector pane terminals default to Required checkbox to set new connector pane terminals to required.
  • The New and Changed for LabVIEW 8.x page contains the following link which opens the LabVIEW Help: View the complete list of New and Changed for LabVIEW 8.x. The Complete List of New and Changed for LabVIEW 8.x Options topic includes new and changed features from LabVIEW 7.1 to 8.5. The New and Changed for LabVIEW 8.x page now includes only the components added or changed since the previous release of LabVIEW.
  • On the Printing page, the default for MacIntel platform is standard printing. With the exception of Margins, all other printing options for the MacIntel no longer exist.

Properties Dialog Box Enhancements and Changes

LabVIEW 8.5 includes a new Numeric Node Properties dialog box. Use this dialog box to configure output settings for Numeric functions, such as the data type of the output value. If the data type of the output value is fixed-point, you also can configure how the function handles overflow and quantization conditions.

LabVIEW 8.5 includes the following enhancements to the pages of the Properties dialog boxes for controls, indicators, and constants:

  • The Display Format page replaces the Format & Precision page.
  • The Data Entry and Data Type pages replace the Data Range page.
  • The Representation section on the Data Type page includes the FXP (Fixed-point) option.
  • The Data Type page includes Fixed-Point Configuration options.
  • The Use Default Limits checkbox replaces the Use Default Range checkbox on the Data Entry page.
  • The Size section on the Appearance page includes the height and width, in pixels, of controls and indicators.

Miscellaneous Dialog Box Enhancements

LabVIEW 8.5 includes the following miscellaneous dialog box changes:

  • On the second page of the Import Web Service wizard, you can input the web service authentication or proxy server information.
  • The Input the project library and destination directory page replaces the Input project library information and destination directory page of the Import Web Service wizard.
  • On the General Settings page of the Project Library Properties, Class Properties, and XControl Properties dialog boxes, you can click the Enter Password button to unlock a password-protected library.
  • The Authentication dialog box includes two options to skip prompts for passwords you do not know when you attempt to access multiple password-protected VIs in a single operation. Click the Skip button to skip a password prompt for a single VI, or place a checkmark in the Skip remaining password prompts for this operation checkbox and click the Skip button to skip all password-protected VIs without cancelling the operation.
  • On the Window Size page of the VI Properties dialog box, the Set to Current Window Size button changed to Set to Current Panel Size.
  • On the Plots page of the Waveform Graph Properties dialog box, the Do not use waveform names for plot names checkbox is now the Ignore waveform or dynamic attributes, including plot names checkbox. This checkbox is available only for graphs and charts with dynamic or waveform data.

Palette Enhancements

LabVIEW 8.5 includes the following palette enhancements:

  • You can make palette categories visible or hidden in all palette view formats: Category (Standard), Category (Icons and Text), Icons, Icons and Text, Text, and Tree. On a pinned palette, click the View button on the palette toolbar and select Change Visible Categories from the shortcut menu to display all categories on the Controls or Functions palette.
  • The Application Control VIs and Functions palette includes the Memory Control palette.

Miscellaneous Environment Enhancements

Any time you print in LabVIEW, the printer you use becomes the default printer in LabVIEW. LabVIEW does not recognize changes to the system default printer until you restart LabVIEW.

LabVIEW Project Enhancements

LabVIEW 8.5 includes the following enhancements to the LabVIEW project and related functionality.

Shared Variable and NI-PSP Enhancements

LabVIEW 8.5 includes the following shared variable and NI-PSP enhancements.

Absolute and Target-Relative Shared Variable Nodes

You can set a Shared Variable node as absolute or target-relative depending on how you want the node to connect to the variable. When you create a shared variable from a target in a LabVIEW project, any Shared Variable nodes you create from the shared variable are absolute by default.

Note  You can create, configure, and host shared variables on Windows systems only. You can use the DataSocket VIs and functions to read or write shared variables from other platforms. If you have a VI with a Shared Variable node that was configured on a Windows system, you also can move that VI to another platform.

An absolute Shared Variable node connects to the shared variable on the target on which you created the variable. A target-relative Shared Variable node connects to the shared variable on the target on which you run the VI that contains the node. If you move a VI that contains a target-relative Shared Variable node to a new target, you also must move the shared variable to the new target. Use target-relative Shared Variable nodes when you expect to move VIs and variables to other targets.

To change an absolute Shared Variable node to target-relative, right-click the Shared Variable node on the block diagram and select Change to Target Relative from the shortcut menu. To change a target-relative Shared Variable node to absolute, right-click the Shared Variable node and select Change to Absolute from the shortcut menu.

TCP Implementation of NI-PSP (Windows, LabVIEW Real-Time)

You must open TCP ports in addition to UDP ports to configure firewalls and Network Address Translating (NAT) routers to transmit network-published shared variables. Starting at TCP port 59110, open one TCP port for each application you run. By default, the NI-PSP protocol begins looking for available TCP ports at port 59110 and increments upward until it finds an available port for each running application. You manually can configure the range of TCP ports the NI-PSP protocol uses by creating and editing a LogosXT.ini file. For LabVIEW Real-Time targets, you can configure the range of TCP ports in the ni-rt.ini configuration file.

Resolving Project Conflicts

The LabVIEW project contains conflicts when two or more items with the same qualified name from different paths exist in the project. LabVIEW automatically tracks the hierarchy of every item you include in the project by scanning the VI hierarchy. A yellow warning triangle appears on any conflicting items. The Project Explorer window provides several options for resolving conflicts.

  • Click the Resolve Conflicts button in the Project Explorer window to display the Resolve Project Conflicts dialog box. Use this dialog box to resolve conflicts by renaming or redirecting the conflicting items to call dependent items from the correct path. If the project does not contain any conflicts, LabVIEW disables the Resolve Conflicts button.
  • From the Project Explorer window, select Project»Show Item Paths to display the Paths column in the Project Explorer window and view the file paths that correspond to the project items. You also can right-click the project root and select View»Full Paths from the shortcut menu to display the Paths column.
  • The Project Explorer window includes two pages. The Items page displays the contents of the project. The Files page displays the project items that have a corresponding file on disk. You can organize filenames and folders on the Files page and perform disk operations such as rename, reorganize, and remove. For example, if you rename a file on the Files page, LabVIEW renames that file on disk. You can switch from one page to the other by right-clicking a folder or item under a target and selecting Show in Items View or Show in Files View from the shortcut menu. The Show in Items View and Show in Files View shortcut menu items only appear if the item exists in the other view. For example, project items that you have not saved do not have a corresponding file on disk so LabVIEW cannot show the item in the file view.
  • When you open a VI from a project, LabVIEW adds all members of the VI hierarchy that are not already in the project to Dependencies. LabVIEW organizes Dependencies in three folders: vi.lib, user.lib, and Items in Memory. When you open a VI that is not currently in the project, LabVIEW adds the VI to Items in Memory. These items remain in the project as long as the VI they reference is in memory. Dependencies updates every time you add, remove, or save an item in the project.

Using Folders in the LabVIEW Project

You can add two types of folders to a LabVIEW project, virtual folders and auto-populating folders. Virtual folders organize project items in the Project Explorer window and have no corresponding value on disk. On the Items page, right-click a target and select Add»Folder (Snapshot) from the shortcut menu to add a virtual folder to the project. Auto-populating folders automatically populate and update to reflect the contents of a folder on disk. On the Items page, right-click a target or folder and select Add»Folder (Auto-populating) from the shortcut menu to add an auto-populating folder to the project. Contents of auto-populating folders do not always match disk contents exactly in the case of project libraries. The project displays project library (.lvlib) contents by library hierarchy and not by disk organization. For example, if a VI is a member of the project library, the VI appears in the project under the library file. The VI does not appear under the auto-populating folder.

New Project Dialog Boxes

LabVIEW 8.5 includes the following new LabVIEW project dialog boxes:

  • The Resolve Load Conflict dialog box appears when LabVIEW loads a file whose dependencies conflict with other items in the project and LabVIEW cannot determine which dependent item to load. Use this dialog box to choose which dependent file to load. You must resolve any conflicts before the file loads.
  • The Hierarchy Conflicts with Project dialog box appears if you attempt to open a file that conflicts with items already in the LabVIEW project. LabVIEW cannot open the file because items in the VI hierarchy have the same qualified name as items in the project or Dependencies. Use this dialog box to resolve conflicting items between two VI hierarchies in the project.
  • The Add to Project and Update Dependencies dialog box appears when you open the block diagram of a VI in the LabVIEW project and add a new subVI to the block diagram from disk that has the same qualified name as an item already in the project. Use this dialog box to add a new subVI to the project and update caller items to refer to the correct path. You can add an item to the project even if the item has conflicts with other items in the project. You must resolve the conflicts before opening the item.
  • The Project Dependency Conflicts Detected dialog box appears when you attempt to add a file to the project that may cause conflicts within the project. Use this dialog box to view new dependencies with conflicts that LabVIEW adds to the project. LabVIEW adds all members of the VI hierarchy that are not already in the project to Dependencies. You must resolve the conflicts before opening the item.
  • The Undo File Rename dialog box appears when you attempt to rename a file on disk that exists in an auto-populating folder in the LabVIEW project. LabVIEW detects the rename on disk and cannot rename the item and redirect dependent items. You must revert the rename on disk or accept the file as a new file in the project and resolve conflicts that might occur. This dialog appears only if the file you attempt to rename is already open in LabVIEW or if the file has callers in the project. Use this dialog box to revert the rename.
  • The Find Callers dialog box appears when you right-click an item in the Project Explorer window and select Find»Callers from the shortcut menu. Use this dialog box to find all callers of a specific item in the project. If the item only has one caller, LabVIEW highlights the caller in the Project Explorer window.
  • The Find SubVIs dialog box appears when you right-click an item in the Project Explorer window and select Find»SubVIs from the shortcut menu. Use this dialog box to find all subVIs of a specific item in the project. If the item only has one subVI, LabVIEW highlights the subVI in the Project Explorer window.
  • The Find Items with No Callers dialog box appears when you right-click the project root in the Project Explorer window and select Find Items with No Callers from the shortcut menu. Use this dialog box to find all top-level project items with no callers.
  • The Find Conflicts dialog box appears when you right-click a conflicting item in the Project Explorer window and select Find»Conflicts from the shortcut menu. Use this dialog box to find all items in the project that conflict with the item you select. If the item only has one conflict, LabVIEW highlights the conflict in the Project Explorer window.

Miscellaneous Project Enhancements

LabVIEW 8.5 includes the following miscellaneous project enhancements:

  • .lvlps files store project settings that are specific to the local machine. You should not check .lvlps files into source control because .lvlps files contain settings specific to the computer you use. For example, .lvlps files contain the local source code control configuration. LabVIEW saves the .lvlps file when you save a project, and correctly renames the file when you rename a project. You can remove or delete .lvlps files without affecting the performance or behavior of a project because .lvlps files only contain project settings specific to the local machine. If you build an application, LabVIEW does not copy the .lvlps file into the built application.
  • Search for items in a LabVIEW project using the Find Project Items dialog box. Use this dialog box to find targets, VIs, subVIs, libraries, classes and so on. Select Edit»Find Project Items from the Project Explorer window to access the Find Project Items dialog box. Right-click a folder, project library, LabVIEW class, or XControl in a LabVIEW project and select Find Project Items from the shortcut menu to search for items within a specific project item. You also can access the Find Project Items dialog box from a stand-alone project library window or class window.
  • Use the Project Explorer window to add a hyperlink as an item in the LabVIEW project. Right-click a target, or a folder or library under the target, and select Add»Hyperlink from the shortcut menu to display the Hyperlink Properties dialog box. You can use hyperlinks to link to files or directories that are not on the local computer but are accessible on the Internet or your local network. The hyperlinks can correspond to network, local, HTTP, FTP, mailto addresses and so on.
  • Rename a LabVIEW project library, XControl, or LabVIEW class by right-clicking the project library, XControl, or LabVIEW class and selecting Rename from the shortcut menu to enter the new name.
  • The Save All button on the toolbar of the Project Explorer window changed to the Save All (this Project) button. Use the Save All (this Project) button to save all files in the current open project.
  • Select File»Save As on a previously saved LabVIEW project to display the new Save As dialog box.

New and Changed VI, Function, and Node Enhancements

LabVIEW 8.5 includes the following new and changed VIs and functions. Refer to the VI and Function Reference book on the Contents tab of the LabVIEW Help for more information about VIs, functions, and nodes.

New VIs and Functions

LabVIEW 8.5 includes the following new VIs and functions.

Cluster, Class, & Variant VI and Functions

The Cluster, Class, & Variant palette includes the following new VI and constant.

Geometries VIs

The Geometries palette includes the Create Text VI in the LabVIEW Full and Professional Development Systems.

Mathematics VIs

The Mathematics palette includes the following new VIs in the LabVIEW Full and Professional Development Systems:

The new Basic Linear Algebra Subroutines palette includes the following new VIs in the Full and Professional Development Systems:

VISA 64-bit Primitive Functions

The Register Access palette includes the following new functions:

The Low Level Register Access palette includes the following new functions:

Improving Memory Allocation and VI Efficiency with the In Place Element Structure

Many common operations, such as operating on an element of an array and placing the resulting value back into the same array index, require LabVIEW to copy data values and maintain those values in memory, which increases memory usage.

Use the In Place Element structure to perform common LabVIEW operations in the same memory location and without LabVIEW making multiple copies of the data values in memory. The In Place Element structure includes a set of border nodes, or nodes that are attached to the border of the In Place Element structure, to perform operations on data within the same memory location. Right-click the border of the In Place Element structure and select the appropriate border node for the data.

Changed VIs, Functions, and Nodes

The following VIs, functions, and nodes changed in LabVIEW 8.5.

File I/O VIs and Functions

The File I/O palette includes the following changed VIs:

  • Close Config Data—Includes a file path output that returns the path to the configuration file.
  • Close Data Storage—Includes a file path output that returns corresponding path to the storage refnum input.

Mathematics VIs

The Mathematics palette includes the following changed VIs:

  • Add Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Add Rational Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Back Transform Eigenvectors—The job input is now recommended rather than required.
  • Derivative x(t)—Includes a method input that specifies the differentiation method.
  • Divide Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Divide Rational Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Elliptic Integral of the 1st kind—Is a polymorphic VI with the following instances: Complete Elliptic Integral K and Incomplete Elliptic Integral F.
  • Elliptic Integral of the 2nd kind—Is a polymorphic VI with the following instances: Complete Elliptic Integral E and Incomplete Elliptic Integral E.
  • General Polynomial Fit—This VI now accepts polynomial order less than or equal to 25. If polynomial order is greater than 25, the VI sets the coefficients in Polynomial Coefficients to zero whose orders are greater than 25 and returns a warning.
  • (Incomplete) Beta Function—Is a polymorphic VI with the following instances: Beta Function and Incomplete Beta Function.
  • (Incomplete) Gamma Function—Is a polymorphic VI with the following instances: Gamma Function and Incomplete Gamma Function.
  • Lyapunov Equations—Both instances include an equation type input that specifies the type of Lyapunov equation.
  • Multiply Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Multiply Rational Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Polynomials Composition—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Quadrature—Is a polymorphic VI with the following instances: 1D Quadrature (VI) and 1D Quadrature (Formula).
  • Remove Zero Coefficients—Both instances include a threshold type input that specifies how the VI removes the trailing elements.
  • RMS—Is a polymorphic VI with the following instances: RMS (DBL) and RMS (CDB).
  • Subtract Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.
  • Subtract Rational Polynomials—Both instances include a threshold input that specifies the level at which the VI removes the trailing elements and a threshold type input that specifies how the VI removes the trailing elements.

Pipes VIs

(Linux) The Pipes palette includes the following changed VIs:

  • Close Pipe—The file descriptor input changed from recommended to required.
  • Open Pipe—The path to named pipe input changed from recommended to required.
  • Open System Command Pipe—The command line input changed from recommended to required.
  • Read From Pipe—The file descriptor input changed from recommended to required.
  • Write To Pipe—The file descriptor input and the data input changed from recommended to required.

Protocol VIs and Functions (Windows and Linux)

The Protocols palette includes the following changed VI and functions:

  • TCP Open Connection—Includes a remote port or service name input. You can provide a service name and LabVIEW queries the NI Service Locator for the port number associated with that service name.
  • TCP Create Listener—Includes a service name input that registers the service name and the provided port number with the NI Service Locator.
  • TCP Listen—includes a service name input that registers the service name and the provided port number with the NI Service Locator.
  • UDP Open—Includes a service name input that registers the service name and the provided port number with the NI Service Locator.
  • UDP Write—Includes a port or service name input. You can provide a service name and LabVIEW queries the NI Service Locator for the port number associated with that service name.

Signal Processing VIs

The Signal Processing palette includes the following changed VIs:

  • Ramp Pattern—Includes a type input that specifies the type of Ramp Pattern to generate.
  • Transition Measurements—Both instances include the following changes:
    • The slew rate output changed to slope.
    • The duration output changed to transition duration.
    • The preshoot output changed to pre-transition. This output includes an undershoot element that measures the height of the local minimum preceding a rising (falling) transition as a percentage of the histogram-based amplitude of the signal. The pre-transition output also includes an overshoot element that measures the height of the local maximum preceding a rising (falling) transition as a percentage of the histogram-based amplitude of the signal.
    • The overshoot output changed to post-transition. This output includes an undershoot element that measures the height of the local minimum following a rising (falling) transition as a percentage of the histogram-based amplitude of the signal. The post-transition output also includes an overshoot element that measures the height of the local maximum following a rising (falling) transition as a percentage of the histogram-based amplitude of the signal.
  • Unwrap Phase—Includes a phase unit input that specifies the units for Phase and Unwrapped Phase.
  • Window Properties—Is a polymorphic VI with the following instances: Window Properties by Coef and Window Properties by Name. The Window Properties by Name instance of this polymorphic VI includes the inputs size, window, and window parameter.

Waveform VIs and Functions

The Waveform Monitoring palette includes the following changed VIs.

On the Basic Level Trigger Detection VI, the mode input is renamed location mode.

Cluster, Class & Variant VI and Functions Palette

The Cluster & Variant Functions palette is renamed to Cluster, Class, & Variant VI and Functions palette. The subpalette Variant Attributes Functions is renamed Variant Functions. Several objects on each palette have moved.

The Cluster, Class, & Variant VI and Functions palette includes the following VI and functions:

The Variant Functions subpalette includes the following functions:

Adding a Conditional Terminal to a For Loop

You can add a conditional terminal to configure a For Loop to stop early when a Boolean condition or error occurs. A For Loop with a conditional terminal executes until a Boolean condition or an error occurs or until all iterations complete, whichever happens first. To add a conditional terminal to a For Loop, right-click the loop border and select Conditional Terminal from the shortcut menu.

Using Feedback Nodes to Store Data

Use a Feedback Node anywhere on the block diagram to store data from a previous VI or loop execution. When you place a Feedback Node on the block diagram, LabVIEW automatically attaches an initializer terminal to it.

If you place a Feedback Node in a loop, you can move the initializer terminal to the left edge of the loop by clicking and dragging the terminal or by right-clicking the Feedback Node and selecting Move Initializer One Loop Out. When the initializer terminal is on the left edge of a loop, you can select Move Initializer One Loop In or Globally Initialize from the shortcut menu to move it back to the node. If you move the initializer terminal to the left edge of a loop, the Feedback Node initializes before the loop with the initializer terminal begins the first iteration of each execution. If you select Globally Initialize and wire an input value to the initializer terminal, the Feedback Node initializes on the first call of the VI in an execution. The initializer terminal remains attached to the node and the Feedback Node globally initializes by default.

If you choose to save a VI for a previous version of LabVIEW, LabVIEW replaces Feedback Nodes within loops with shift registers and replaces Feedback Nodes outside of loops with labels.

Miscellaneous VI, Function, and Node Changes

LabVIEW 8.5 includes the following miscellaneous VI, function, and node changes:

  • The Unzip VI unzips the contents of a zip file that is not password protected to the directory you specify.
  • The Sound File Write VI includes the following instance: DBL Single. For monophonic sound data, you can wire a single waveform data type to the data input of this instance.
  • (Windows and Linux) The port number input of the Open Application Reference function changed to port number or service name. You can provide a service name and LabVIEW queries the NI Service Locator for the port number associated with that service name.
  • Performance of VIs on the Probability & Statistics, Windows, Transforms, and Signal Generation palettes is improved.
  • The reference input and the reference out output of the Call Library Function Node changed to path in and path out, respectively.
  • The Preview Queue Element function icon changed.
  • You can use NI_UpdateGroupName and NI_UpdateChannelName properties in the TDMS Set Properties function to rename groups and channels in .tdms files.
  • Icons for VIs on the Input Device Control palette are updated.
  • The Spectral Measurements Express VI accepts the waveform array of waveforms data types as an input.
  • The Formula Express VI accepts the numeric scalar, 1D array of numerics, 2D array of numerics, waveform, and array of waveforms data types as an input.
  • (Mac OS and Linux) The Copy and Move functions no longer overwrite read-only files or folders in the target path, even if you set overwrite to TRUE.
  • There are new names and values for certain Math & Scientific Constants and Express Math & Scientific Constants. The values for Planck's Constant, Elementary Charge, Gravitational Constant, Avogadro Constant, and Rydberg Constant are updated to match values provided by CODATA 2002.
  • The VISA Wait on Event function and the Wait for RQS VI no longer lock out other GPIB operations while they are executing.
  • The Number to Boolean Array function now accepts 64-bit integers and the fixed-point data type as inputs.
  • The LabVIEW Class:Create method of the Application class includes a name parameter you can use to specify the name of the LabVIEW class.
  • The Mass Compile and MassCompile methods of the Application class and Application (ActiveX) classes, respectively, include the User Stopped parameter that indicates whether the user stopped the mass compile operation.
  • Because LabVIEW may generate multiple Pane Size events when you resize a pane, LabVIEW now generates a final event at the end of the resizing operation in which the OldBnds and NewBnds parameters return the same value. You can use the values to identify in the code when the sizing operation finishes.
  • The Request Deallocation function is now located on the Memory Control palette.
  • The Close Reference function now accepts the 1D array of refnum data type as an input.
  • When using arrays of numbers as inputs for the Formula Express VI, the length of the output array is now the same length as the shortest input array.
  • The Type Cast function accepts 64-bit integers and double-precision floating point numbers.

New Classes, Properties, Methods, and Events

LabVIEW 8.5 includes new VI Server classes, properties and methods and events. Refer to the LabVIEW 8.5 Features and Changes»New VI Server Objects topic on the Contents tab of the LabVIEW Help for a list of new class, properties, methods, and events.

Application Builder Enhancements

LabVIEW 8.5 includes the following enhancements to the Application Builder.

In LabVIEW 8.5, the Source Distribution Properties dialog box contains most of the same pages as the Application and Shared Library Properties dialog boxes. The Application Properties, Shared Library Properties, and Source Distribution Properties dialog boxes have many of the same changes. The changes below apply to all three dialog boxes unless otherwise noted.

Information Page

LabVIEW 8.5 includes the following changes to the Information page:

  • The Application destination directory, Shared Library destination directory, and Distribution destination directory text boxes changed to Destination directory.
  • Use the Build specification description text box to specify a description for the build specification.
  • (Source Distribution) The Directory and Preserve hierarchy options on the Destinations page replace the Packaging Option functionality.

Source Files

LabVIEW 8.5 includes the following changes to the Source Files page:

  • The Dynamic VIs and Support Files listbox changed to Always Included.
  • (Source Distribution) Use the Always Excluded listbox to designate files that should be excluded from the build.
  • The Source Distribution Properties dialog box includes the Source Files page. You must indicate which files you want to include in a source distribution. LabVIEW no longer automatically includes all files in the LabVIEW project.
  • You can right-click and select multiple files in the Project Files tree to add several files at one time to the other listboxes.
  • The Destination View list includes the following new locations:
    • [CommonAppDataFolder]—Files you include in this folder install to the Application Data folder.
    • [CommonFilesFolder]—Files you include in this folder install to the Common Files folder.

Destinations Page

LabVIEW 8.5 includes the following changes to the Destinations page:

  • Destination is LLB changed to LLB in the Destination type section.
  • Use the Directory and Preserve hierarchy options to indicate that the build destination is a directory and whether you want to preserve the directory hierarchy. You can use these options with custom destinations. Additionally, these options replace the Packaging Option on the former Distribution Settings page of the Source Distribution Properties dialog box.
  • Use the Add files to new project library option to add files to a new project library created during the build process. Designate the project library name in the Library name textbox.
  • The Source Distribution Properties dialog box includes the Destinations page.

Source Files Settings Page

LabVIEW 8.5 includes the following changes to the Source Files Settings page:

  • The Inclusion type section is an indicator and reflects the value you selected on the Source Files page. To change the value, return to the Source Files page and move the selected item to a different listbox.
  • The Destination indicator is a pull-down menu. You can select a different destination directory from the pull-down menu.
  • The VI Settings section moved to the VI Properties dialog box. You can access this dialog box by clicking the Customize VI Properties button. The options in the VI Properties dialog box correspond with the options in the VI Properties dialog box that you access from the File menu. If you make changes to the VI properties in this dialog box, those changes override any changes you made in the VI Properties dialog box menu from the File menu.
  • Use the options in the Use default save settings section to remove the block diagram or front panel of the selected item.
  • Use the No password change, Remove password, and Apply new password options to configure the password settings for the file selected in the Project Files tree.
  • Use the Rename this file in the build option to rename the file selected in the Project Files tree during the build process. If you choose to rename a folder in the build, LabVIEW adds a prefix to the items in the selected folder.
  • If you select a folder in the Project Files tree, you can choose to apply many of the options on the Source Files Settings page to all items in the folder.

Icon Page (Windows, Mac OS)

(Application) Use the Icon Image pull-down menu to display the resolution and color options for an icon image. The image preview displays the resolution and color options the image supports, up to 256 x 256 and 32-bit color.

Advanced Page

LabVIEW 8.5 includes the following changes to the Advanced page:

  • The Enable Mathscript support checkbox no longer exists. LabVIEW automatically detects Mathscript calls to user-defined functions, or .m files.
  • Several options have changed location on this page to improve ease of use.

Additional Exclusions Page

LabVIEW 8.5 includes the following changes to the Additional Exclusions page:

  • Disconnect type definitions—Disconnects type definitions from the build.
  • Remove unused polymorphic VI instances—Removes all unused polymorphic VI instances from the build.
  • Remove unused members of project libraries—Removes unused members of project libraries from the build.
    • Modify project library file after removing unused members—Modifies the library file so the library file does not reference the removed members.

The following table displays the LabVIEW 8.5 options, noted previously, that you can select to achieve the same exclusions as LabVIEW 8.2.

LabVIEW 8.2 Option LabVIEW 8.5 Option
Remove as much as possible Select all three new options.
Remove unreferenced project library members Select Remove unused members of project libraries. You also can select Modify project library file after removing unused members so the library file does not reference the removed members.
Do not disconnect type definitions or remove unreferenced members Do not select any option.

Version Information Page (Windows, Mac OS)

The version information on the Application and Shared Library Properties dialog box pages now appears on the Version Information page. The build specification name populates the Description by default. Users can view this information by right-clicking the built application and selecting Properties from the shortcut menu.

Run-Time Languages

You can select the supported languages in the Supported Languages listbox by enabling checkboxes next to each language.

Miscellaneous Application Builder Enhancements

  • In the Define VI Prototype dialog box, the C Calling Conventions radio button is enabled by default.
  • Right-click Build Specifications in the Project Explorer window and select Build All to build all specifications under Build Specifications.
  • If you convert a build script from a previous version of LabVIEW to a build specification, LabVIEW places the items for the build specification in three folders in the Project Explorer window rather than creating a hierarchy.
  • The Build Executable dialog box no longer exists. Build an application by right-clicking Build Specifications in the Project Explorer window.
  • The Zip File Properties dialog box includes the Zip File Structure page. Use this page to specify the file structure to use for the zip file build and, optionally, to rename the base directory to which the files unzip.
  • You can include outputs of other build specifications, such as source distributions, shared libraries, or applications, in a zip file you build using the Zip File Properties dialog box. On the Source Files page, select the build specification in the Project Files tree and use the right arrow button to add it to the Included Items tree.

    Outputs of zip or installer build specifications do not appear in the Project Files tree. To include another zip file or installer in the zip file, add the zip file or installer you want to include to the LabVIEW project under the target from which you are building the zip file.

    Note   Including outputs of other build specifications in a zip file can slow down preview generation on the Preview page.

LabVIEW MathScript Enhancements (Windows, Not in Base Package)

LabVIEW 8.5 introduces the following enhancements and changes to MathScript.

Note  Select Tools»MathScript Window to display the LabVIEW MathScript Window.

New MathScript Functions

LabVIEW 8.5 includes the following new MathScript functions. You can use these functions in the LabVIEW MathScript Window or the MathScript Node.

  • advanced class: bessel
  • approximation class: interpft
  • audio class: soundsc and wavrecord
  • basic class: cumtrapz, feval, ipermute, and permute
  • dsp class: cohere, csd, firpmord, psd, and tfe
  • geometry class: cylinder, ellipsoid, inpolygon, rectint, sphere, and voronoi
  • integration class: dblquad, quad8, quadl, and triplequad
  • linalgebra class: eigs, funm, gsvd, and linsolve
  • membership class: isscalar
  • plots class: axes, colormap, datetick, gca, get, ginput, gtext, image, pareto, rgbplot, set, surfnorm, and view
  • polynomials class: pchip and polyder
  • statistics class: halton and richtmeyer
  • string class: evalc, regexp, regexpi, regexprep, regexptranslate, strread, and strtrim
  • support class: delete, dos, feof, fgetl, fgets, frewind, fseek, getfileproperty, imread, imwrite, lookfor, setfileproperty, system, and textread
  • vector class: del2 and divergence
  • zerofinder class: fsolve and fzero

Enhanced Error Reporting for the MathScript Node

LabVIEW 8.5 includes enhanced error reporting for the MathScript Node. For example, if you call a user-defined function, or .m file, from a MathScript Node, LabVIEW returns edit-time errors in the user-defined function at edit time instead of at run time. If you make changes to the user-defined function, LabVIEW updates the Error list window as soon as you save the .m file. However, if you call a function from a MathScript Node that might change the MathScript search path list or might introduce new variables at run time, LabVIEW operates with reduced error checking and slower run-time performance for the MathScript Node.

A warning glyph appears on the MathScript Node frame to indicate the reduced error checking and slower run-time performance. The following functions cause the warning glyph to appear: addpath, cd, clear, eval, evalc, load, path, rmpath, and uiload. The cd function and the path function cause the warning glyph to appear only if you call these functions with one or more inputs. The warning glyph also appears if you call a user-defined function that calls any of these functions, if you call a user-defined script, or if you call a user-defined function that calls a user-defined script. To remove the warning glyph from the MathScript Node and improve run-time performance, complete the following steps.

  1. Remove these functions from scripts and user-defined functions.
  2. Remove calls to user-defined scripts. Instead, copy the contents of the user-defined script into the MathScript Node or the user-defined function that calls the script.
  3. Do not change the MathScript search path list at run time. Instead, use the MathScript: Search Paths Options page to configure the default search path list.
Note  If a script in a MathScript Node calls a user-defined function, LabVIEW uses the default search path list to link the function call to the specified .m file. After you configure the default search path list and save the VI that contains the MathScript Node, you do not need to reconfigure the MathScript search path list when you open the VI on a different computer because LabVIEW looks for the .m file in the directory where the .m file was located when you last saved the VI. However, you must maintain the same relative path between the VI and the .m file.

Calling User-Defined Functions from LabVIEW MathScript

When you call a user-defined function from the LabVIEW MathScript Window, LabVIEW searches the MathScript search path list from top to bottom for a .m file with the specified name. When you call a user-defined function from a MathScript Node, LabVIEW looks in the following three places, in order, for a .m file with the specified name:

  • First, LabVIEW looks to see if a .m file with the specified name is currently in memory.
  • Second, LabVIEW looks in the directory where the .m file was located when you last saved the VI that contains the MathScript Node. Because LabVIEW looks in the directory where the .m file was last located, you do not need to reconfigure the MathScript search path list when you open the VI on a different computer. However, you must maintain the same relative path between the VI and the .m file.
  • Third, LabVIEW searches the MathScript search path list from top to bottom. If you open the VI on a different computer, the search path list might change because LabVIEW searches the MathScript search path list configured on that computer, not the search path list configured when you last saved the VI.
Note  If a warning glyph appears on the MathScript Node frame, LabVIEW does not look in memory or in the directory where the .m file was last located. Instead, LabVIEW searches only the MathScript search path list for a .m file with the specified name.

Configuring the MathScript Search Path

Use the MathScript: Search Paths Options page to configure the default search path list and to specify the working directory for LabVIEW MathScript. Display this page from one of the following locations, depending on the environment for which you want to configure the search path list:

  • To configure the search path list for the LabVIEW MathScript Window, display this page from the LabVIEW MathScript Properties dialog box.
  • To configure the search path list for MathScript Nodes in the main application instance, display this page from the Options dialog box.
  • To configure the search path list for MathScript Nodes in a target on a LabVIEW project, display this page from the Properties dialog box for the target.

Using the LabVIEW MathScript Probe

Use the LabVIEW MathScript probe to view the data in a script in a MathScript Node as a VI runs. Right-click a MathScript Node and select Probe from the shortcut menu to use the MathScript probe.

The MathScript probe displays a list of all variables you define in the script and previews variables you select. The MathScript probe also displays the output that MathScript generates from the script. Unlike with supplied probes, you cannot configure the MathScript probe to respond to the data. For example, you cannot specify that you want to set a conditional breakpoint.

Note  You cannot use execution highlighting, single-stepping, and breakpoints within a script in a MathScript Node.

Setting Plot Attributes in LabVIEW MathScript

You can get and set plot attributes for the following types of objects in LabVIEW MathScript plots: line objects, plot area objects, plot window objects, and text objects.

To create and return a new line object, use the following MathScript functions: line, loglog, plot, semilogx, or semilogy. To create a new plot area object or to return an object for the current plot area, use the following MathScript functions: axes, gca, or subplot. To create a new plot window object or to return an object for the current plot window, use the following MathScript functions: clf, gcf, or figure. To create and return a new text object, use the following MathScript functions: text, title, xlabel, or ylabel.

Dialog Box Enhancements

LabVIEW 8.5 includes the following MathScript dialog box enhancements.

New MathScript Dialog Box

LabVIEW 8.5 includes the LabVIEW MathScript Properties dialog box. In the LabVIEW MathScript Window, select File»LabVIEW MathScript Properties to display this dialog box. Use this dialog box to configure settings for the LabVIEW MathScript Window and the MathScript engine. This dialog box includes the following pages:

  • MathScript: Window Options—Use this page to configure settings, such as the font style and the display format of numbers, for the LabVIEW MathScript Window.
  • MathScript: Search Paths Options—Use this page to configure the default search path list and to specify the working directory for LabVIEW MathScript.

Miscellaneous Dialog Box Enhancements

LabVIEW 8.5 includes the following miscellaneous enhancements to MathScript dialog boxes:

Menu Item Enhancements

In LabVIEW 8.5, the menus in the LabVIEW MathScript Window align more closely with the menus in LabVIEW. The menus in the LabVIEW MathScript Window include the following enhancements:

  • The File menu includes the following changes:
    • The Save Script item changed to Save.
    • The Save Script As item changed to Save As.
    • The Save & Compile Script As item no longer exists.
  • In the Edit menu, the Delete item no longer exists.
  • The View menu includes the following changes:
    • The Workspace item no longer exists. You cannot hide the LabVIEW MathScript Window workspace.
    • The Output Wrapped item no longer exists. Place a checkmark in the Output wrapped checkbox on the MathScript: Window Options page of the LabVIEW MathScript Properties dialog box to enable word wrapping in the Output Window.
  • The Operate menu includes a Run Script item that executes all commands in the Script Editor.
  • The Load Data, Save Data, and Load Script items moved from the File menu to the Operate menu.

Miscellaneous MathScript Enhancements and Changes

LabVIEW 8.5 includes the following miscellaneous changes to MathScript:

  • LabVIEW MathScripts that contain matrix indexing operations execute faster at run time due to performance optimizations.
  • If you call a user-defined function from a MathScript Node that does not include a warning glyph, LabVIEW executes faster at run time due to performance optimizations to the MathScript Node.
  • When you reference a .m file from a VI that is part of a LabVIEW project, LabVIEW adds the .m file to the dependencies for the target.
  • The MathScript Node shows line numbers by default. You can show and hide line numbers in the MathScript Node, the Formula Node, the MATLAB script node, and the Xmath script node. To show or hide line numbers, right-click inside the node and select Visible Items»Line Numbers from the shortcut menu.
  • You can resize individual sections of the LabVIEW MathScript Window, such as the Command Window and the Output Window. To resize a section, move the splitter bar located between the two sections you want to resize.
  • The following functions include an obj output that returns the reference to the line object, the plot area object, the plot window object, or the text object: clf, figure, gcf, line, loglog, plot, semilogx, semilogy, subplot, text, title, xlabel, and ylabel.
  • The following functions include a name input that specifies the attribute name and a value input that specifies the attribute value: figure, line, loglog, plot, semilogx, semilogy, text, title, xlabel, and ylabel.
  • The waitforbuttonpress function waits for a key up event or a mouse up event before continuing execution. In a plot window, the mouse up event must occur in the plot area or outside of the plot window. If you click the scroll bar, the menu bar, the title bar, or the toolbar, this function does not continue execution.
  • The legend function includes a location input that specifies where to add the legend to the plot. You also can use the legend off syntax to hide the legend.
  • The rand and randn functions include an s input that specifies the seed of the pseudorandom number generator to use for the next call to the function. These functions also include a d output that returns the seed of the pseudorandom number generator.
  • The butter, cheby1, cheby2, and ellip functions include an 's' input that directs LabVIEW to design an analog filter.
  • The fs input of the remezord function changed from required to optional. The default is 2.
  • The b input of the zplane function changed from required to optional. If a is a row vector and you do not specify b, the pole is (0, 0). If a is a column vector or a matrix and you do not specify b, LabVIEW does not plot poles.
  • The help command supports the help browser syntax that provides an overview of the LabVIEW MathScript Window.
  • You can include the following functions in a stand-alone application or shared library: fopen, fclose, fread, and fwrite.

LabVIEW Object-Oriented Programming

LabVIEW 8.5 introduces the following enhancements and changes to LabVIEW object-oriented programming.

Accessing LabVIEW Class Data

You can quickly create member VIs that can access the LabVIEW class data using the Create Accessor dialog box. You can create static or dynamic accessor VIs to read from or to write to class data. The read accessor VI unbundles LabVIEW class data so you can access the data in a calling VI. The write accessor VI bundles new values for class data that you pass from the calling VI.

To save a significant amount of development time, you can select multiple elements of the class data to create several accessor VIs at one time. You can save additional development time by creating both read and write accessor VIs at one time. Consider using accessor VIs as a starting point to creating more complex VIs.

You must save the LabVIEW class before using this dialog box to create accessor VIs.

You can launch the Create Accessor dialog box from the Project Explorer window in the following ways:

  • Right-click the LabVIEW class and select New»VI for Data Member Access from the shortcut menu.
  • Right-click a data member in the private data control of the LabVIEW class and select Create Accessor from the shortcut menu.
Note  You must save a new LabVIEW class before using either of these options. LabVIEW dims the VI for Data Member Access and Create Accessor options if you have not saved the new class.

Opening Implementations of Dynamic Dispatch SubVIs

Dynamic dispatch subVIs can call any one of a set of VIs in a LabVIEW class hierarchy. LabVIEW determines which implementation of the subVI to call at run time, depending on the class data type flowing into the dynamic dispatch terminal.

Double-click a dynamic dispatch subVI to display the Choose Implementation dialog box. You can use this dialog box to view all implementations of a dynamic dispatch subVI that are currently in memory and then open one or more implementations of the subVI.

Shortcut Menu Changes

LabVIEW 8.5 includes the following shortcut menu changes for LabVIEW object-oriented programming features:

  • The New»Dynamic VI shortcut menu option changed to New»VI from Dynamic Dispatch Template. Access this option by right-clicking a LabVIEW class.
  • The New»Override VI shortcut menu option changed to New»VI for Override. Access this option by right-clicking a LabVIEW class.
  • Right-click a class constant, control, or indicator on the front panel or block diagram and select Show Class Library from the shortcut menu to highlight the class in the Project Explorer window. If the class you are working with is not in a LabVIEW project, LabVIEW opens a class window to display the class.

Miscellaneous LabVIEW Object-Oriented Programming Enhancements

LabVIEW 8.5 includes the following miscellaneous LabVIEW object-oriented programming enhancements:

  • Use dynamic dispatch member VIs in a LabVIEW class to take advantage of recursion. Recursive VIs can call themselves on their own block diagram including on the block diagram of any subVIs. Recursion is useful if you want to operate many times on the output of the same process. You can configure a member VI to allow recursion by using the Share clones between instances option on the Execution Properties page of the VI Properties dialog box.
  • You can create a member VI from a static dispatch template by right-clicking the LabVIEW class and selecting New»VI from Static Dispatch Template. LabVIEW populates the new member VI with error in and error out clusters, a Case structure for error handling, the input LabVIEW class, and the output LabVIEW class. Contrary to creating a dynamic dispatch VI, LabVIEW does not set the input and output terminals as dynamic on the connector pane of the static dispatch VI.
  • If you create a new LabVIEW class, LabVIEW prompts you to name the class when you create it.

Refer to the Fundamentals»LabVIEW Object-Oriented Programming book on the Contents tab in the LabVIEW Help for more information about object-oriented programming in LabVIEW.

Project Library and LabVIEW Class Icon Changes

The default icon for a project libraries and LabVIEW classes you create in LabVIEW 8.5 does not contain a number on the icon mask and includes different mask colors that are more compatible with black and white icons. To accommodate the new mask design and to avoid the library or class mask obscuring any part of the VI icon, use an image no larger than 32 pixels wide by 19 pixels high.

You also can edit the library or class icon to use a different mask on the General Settings page of the Project Library Properties dialog box or Class Properties dialog box, respectively.

You can more easily create VI icons for dynamic dispatch VIs you create using the New»VI for Override shortcut menu option. The resulting VI retains the ancestor VI icon and overlays the icon of the child class.

Enhancing Virtual Memory Usage

(Windows) LabVIEW 8.5 is large address aware. On a 64-bit operating system, LabVIEW can access up to 4 GB of virtual memory by default. On a 32-bit OS, LabVIEW can access up to 2 GB of virtual memory by default. You can enable LabVIEW to access up to 4 GB of virtual memory on a 32-bit OS by modifying the Windows boot configuration settings. Enabling LabVIEW to access more virtual memory decreases the likelihood of experiencing general LabVIEW errors related to memory allocation when you work with large sets of data.

  • (Windows Vista x64 Edition) LabVIEW can access up to 4 GB of virtual memory by default.
  • (Windows Vista) To enable LabVIEW to access up to 3 or 4 GB of virtual memory, open the command line window as an administrator and use bcdedit commands to add an entry in the Boot Configuration Data (BCD) store. To open the command line window as an administrator, navigate to the window in the Windows Start menu, right-click the program name, and select Run as administrator from the shortcut menu.
  • (Windows XP/2000) To enable LabVIEW to access up to 3 GB of virtual memory, you can add the /3GB tag to the Windows boot.ini file on the line that specifies the Windows version to boot. If you have more than 4 GB of physical RAM, you can use the /PAE tag in place of the /3GB tag to enable LabVIEW to access up to 4 GB of virtual memory.

Merging VIs

LabVIEW provides a merge application that you can use to merge differences between an original VI and two revisions of the VI. Use the Merge VIs dialog box to merge changes between VIs.

Select Tools»Merge VIs from the front panel or block diagram to display the Merge VIs dialog box. Specify the original VI in the Base VI field. Specify the two VIs to merge in the Their VI and Your VI fields. Click the Merge button to merge the selected VIs.

You also can configure a third-party source control provider to use LVMerge.exe as the default merge application. LVMerge.exe is the programmatic equivalent to the Merge VIs dialog box.

Import Shared Library Wizard Enhancements

Use the Import Shared Library wizard to create or update a LabVIEW project library of wrapper VIs based on functions in a Windows .dll file, a Linux .so file, or a Macintosh .framework file. The Import Shared Library wizard includes the following miscellaneous enhancements:

  • Support for pointers—You can import functions that contain structures with pointer elements. You also can specify whether to allocate memory for the pointer data before LabVIEW calls the function.
  • Automatic generation of custom controls—For functions that contain structures, the Import Shared Library wizard creates custom controls for elements of the structure, including pointers, automatically.
  • Total project management—If you select the Update VIs for a shared library option on the Specify Create or Update Mode page, the wizard retains the most recent settings for each individual function in the shared library. For example, if you have a shared library that contains three functions, you might update only the second function. The next time you run the wizard on that shared library file, it retains the original settings for functions one and three and the new settings for function two.
  • Support for the enhanced Call Library Function Node—The wrapper VIs utilize Call Library Function Node enhancements from LabVIEW 8.2. The enhancements include support for the array data pointer and array minimum size, and improved error reporting functionality.
  • Function details—You can select a function on the Select Functions to Convert page to view detailed information about that function. The wizard also adds information about the function to the context help of the wrapper VI.
  • Enhanced error reporting—If the wizard encounters errors or warnings while trying to parse the header file, the warnings and possible solutions appear when you select the function on the Select Functions to Convert page. This functionality replaces the Warnings page from LabVIEW 8.2.
  • Indicator generation for return values—You can select whether to create an indicator for return values in a wrapper VI.
  • Cached header parser results—If you run the wizard on the same shared library multiple times and do not modify the header file, the wizard caches the results of the header file parsing to improve performance.
  • Configure Include Paths and Preprocessor Definitions Page—The Configure Include Paths and Predefined Symbols page is renamed the Configure Include Paths and Preprocessor Definitions page.

3D Picture Control Enhancements

You can add text objects to a 3D scene. The text appears when you generate the 3D scene. Use the Create Object VI and the Create Text VI to add a text object to a 3D scene. You also can use the SceneText properties and methods to configure attributes of the text object, such as color or character size, and to access fonts not installed on the local system.

The Set Drawable method replaces the Set Geometry method for applying a geometry or text to a 3D object. The Set Geometry method is supported in LabVIEW 8.5 for VIs last saved in LabVIEW 8.2, but you cannot wire a text object to this method.

Using Timed Structures for Multi-Core Programming

Multi-core programming refers to two or more processors in one computer, each of which can simultaneously run a separate thread. A multithreaded application can have multiple separate threads executing simultaneously on multiple processors. LabVIEW 5.0 was the first version of LabVIEW to include multi-core programming. LabVIEW 5.0 separated the user interface thread from the execution threads. Block diagrams executed in one, or possibly more than one, thread, and front panels updated in another thread. The operating system preemptively multitasked between threads by granting processor time to the execution thread, then to the user interface thread, and so on.

The Timed Loop and Timed Sequence structures include a Processor input that allows you to manually assign available processors to handle the execution of the structures. You can configure the processor assignment by wiring an input to the Processor input of the Input Node for the structure or for frames of the structure. (Windows) You also can configure processors to handle timed structures in the Processor Assignment section of the Configure Timed Loop, Configure Timed Loop with Frames, Configure Next Frame Timing, and Configure Next Iteration dialog boxes.

If you load a VI with a timed structure from a previous version of LabVIEW, the Processor input sets to 0 by default, where 0 represents the first available processor in the system, because all timed structures automatically run on processor 0 in previous versions of LabVIEW.

Fixed-Point Data Type

The fixed-point data type is a numeric data type that represents a set of rational numbers using binary digits, or bits. Unlike the floating-point data type, which allows the total number of bits LabVIEW uses to represent numbers to vary, you can configure fixed-point numbers to always use a specific number of bits. Hardware and targets that only can store and process data with a limited or fixed number of bits then can store and process the numbers. You can specify the range and precision of fixed-point numbers.

Use fixed-point representation when you do not need the dynamic functionality of floating-point representation or when you want to work with a target that does not support floating-point arithmetic, such as an FPGA target.

To set a number to fixed-point representation, right-click the numeric object and select Representation from the shortcut menu to change the data type of the object. You also can configure the encoding, word length, integer word length, range, and desired delta for fixed-point numbers and specify how Numeric functions handle overflow and quantization conditions for fixed-point numbers. To configure a fixed-point number, right-click a constant, control, indicator, or Numeric function and select Properties from the shortcut menu to display the Numeric Properties, Numeric Constant Properties, or Numeric Node Properties dialog box.

Source Control Enhancements

Refer to the Fundamentals»Organizing and Managing a Project book on the Contents tab in the LabVIEW Help for more information about source control in LabVIEW.

After you configure LabVIEW to use source control, you can configure source control settings on individual LabVIEW projects. Configuring source control settings on an individual LabVIEW project is useful if you want to use a different source control project than the one you specify for the LabVIEW environment, or if you do not want to use source control with a particular LabVIEW project.

LabVIEW projects use the source control configuration you specify for the LabVIEW environment by default. You cannot change the source control provider for a LabVIEW project. Source control settings for LabVIEW projects must match the provider you specify for the LabVIEW environment. You can use only one source control provider at a time.

Configure source control for a LabVIEW project from the Source Control Properties page. From the Project Explorer window, select Project»Properties or right-click the project root and select Properties from the shortcut menu to display the Project Properties dialog box. Select Source Control from the Category list to display the Source Control page.


Resources


 

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
Add Comments 1 2 3 4 5 submit