Front panel controls and indicators can appear in silver, modern, classic, or system style.
Select File»VI Properties and select Editor Options from the Category pull-down menu to change the style of the control or indicator LabVIEW creates when you right-click a terminal and select Create»Control or Create»Indicator from the shortcut menu. Select Tools»Options and select Front Panel from the Category list to change the style of the control or indicator LabVIEW creates in new, blank VIs when you right-click a terminal and select Create»Control or Create»Indicator from the shortcut menu.
You can find similar controls and indicators on different palettes in LabVIEW. For example, the Cancel button located on the Boolean subpalette of the System palette is similar to the Cancel button located on the Boolean subpalette of the Silver palette.
Many front panel objects have a high-color appearance. Set the monitor to display at least 16-bit color for optimal appearance of the objects.
The controls and indicators located on the Silver and Modern palette also have corresponding low-color objects. Use the controls and indicators located on the Classic palette to create VIs for low-color monitor settings.
Use the system controls and indicators on the System palette in dialog boxes you create. The system controls and indicators are designed specifically for use in dialog boxes. These controls differ from those that appear on the front panel only in terms of appearance. These controls appear in the colors you have set up for the system.
The system controls change appearance depending on which platform you run the VI. When you run the VI on a different platform, the system controls adapt their color and appearance to match the standard dialog box controls for that platform.
|Note You are limited in the ways you can customize the appearance of the system controls and indicators because they use platform-specific drawing functions that do not support customization.|
Use the numeric objects located on the Numeric and Classic Numeric palettes to enter and display numeric data.
Numeric controls and indicators are the simplest way to enter and display numeric data. You can resize these front panel objects horizontally to accommodate more digits.
When you type a new value into a numeric control or indicator, the Enter button appears on the toolbar to remind you that the new value replaces the old value only when you press the <Enter> key, click outside the digital display window, or click the Enter button. While the VI is running, LabVIEW waits until you perform one of these actions to interpret the new values. For example, while changing a value in the digital display to 135, you do not want the VI to receive the values 1 and 13 before 135.
|Note If the numeric control or indicator has a format of engineering or SI notation and does not have a complex representation, LabVIEW adds any necessary prefixes to the unit string to retain the floating-point representation.|
By default, LabVIEW displays and stores numbers like a calculator. A numeric control or indicator displays up to six digits before automatically switching to exponential notation. You can configure the number of digits LabVIEW displays before switching to exponential notation by right-clicking the numeric object and selecting Display Format from the shortcut menu to display the Display Format page of the Numeric Properties dialog box.
The precision you select affects only the display of the value. The internal accuracy still depends on the representation.
Slide and rotary controls and indicators are numeric objects with a scale. The slide controls and indicators include vertical and horizontal slides, a tank, and a thermometer. Rotary controls and indicators include knobs, dials, gauges, and meters. Change the value of a slide or rotary control using any of the following ways:
As you change the value, LabVIEW displays the value of the control in a tip strip. If you drag or scroll the slider to a new position and the VI is running during the change, the control passes intermediate values to the VI, depending on how often the VI reads the control.
Scroll bar controls, similar to slide controls, are numeric objects you can use to scroll data. The scroll bar controls include vertical and horizontal scroll bars. You can change the value of a scrollbar by dragging the square scroll box, scrolling the mouse wheel, clicking the increment and decrement arrows, or clicking empty space in the scrollbar.
Use the time stamp control and indicator to send and retrieve a time and date value to or from the block diagram. You can configure the time and date of the time stamp control.
A color box displays a color that corresponds to a specified value. For example, you can use color boxes to indicate different conditions, such as out-of-range values. The color value is expressed as a hexadecimal number with the form RRGGBB. The first two digits control the red color value. The second two digits control the green color value. The last two digits control the blue color value.
Set the color of the color box by clicking it with the Operating or Coloring tool to display the color picker.
A color ramp uses color to display its numeric value. You configure a color ramp that consists of at least two arbitrary markers, each with a numeric value and a corresponding display color. As the input value changes, the color displays changes to the color that corresponds to that value. Color ramps are useful for visually indicating data ranges, such as a warning range for when a gauge reaches dangerous values. For example, you can use a color ramp to set the color scale for intensity graphs and charts.
You also can add a color ramp to any knob, dial, or gauge on the front panel. Meters have a visible color ramp by default.
Use the graph controls and indicators on the Graph and Classic Graph palettes to plot numeric data in graph or chart form.
Use the 2D picture control to create, modify, and view graphics in LabVIEW.
|Tip You can export data and images from graphs and charts to locations such as Microsoft Excel. Right-click a graph or chart and select Export from the shortcut menu to view available export options.|
Use the Boolean controls and indicators located on the Boolean and Classic Boolean palettes to create buttons, switches, and lights. Use Boolean controls and indicators to enter and display Boolean (TRUE/FALSE) values. For example, if you are monitoring the temperature of an experiment, you can place a Boolean warning light on the front panel to indicate when the temperature exceeds a certain level.
Boolean controls have six types of mechanical actions that allow you to customize Boolean objects to create front panels that more closely resemble the behavior of physical instruments.
Boolean controls and indicators have Boolean text labels in addition to their owned labels.
Use the radio buttons control to give users a list of items from which they can select only one item at a time. If you want to give users the option to select none or one item, right-click the control and select Allow No Selection from the shortcut menu.
You cannot right-click Boolean controls in the radio buttons control to perform data operations, such as setting the default value.
Refer to the following VIs for examples of using a radio buttons control:
Use a mixed checkbox 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 as a control to simultaneously change a set of Boolean values to either a TRUE or FALSE value.
Use the string and path controls and indicators on the String & Path and Classic String & Path palettes to create text entry boxes and labels and to enter or return the location of a file or directory.
Use the Operating or Labeling tool to enter or edit text in a string control on the front panel. By default, new or changed text does not pass to the block diagram until you terminate the edit session. At run time, terminate the edit session by clicking elsewhere on the panel, clicking the Enter button on the toolbar, or pressing the <Enter> key on the numeric keypad. Pressing the <Enter> key on the keyboard enters a carriage return. You also can update the string value as you enter characters.
Right-click a string control or indicator to select a display type for the text in the control or indicator, such as password display or hex display.
Use the combo box control to create a list of strings you can cycle through on the front panel. A combo box control is similar to a text or menu ring control. However, the value and data type of a combo box control are strings instead of numbers as with ring controls.
As you type a string in a combo box control at run time, LabVIEW selects the first, shortest string in the control that begins with the letters you type. If no strings match the letters you type and the control does not allow undefined string values, LabVIEW does not accept or display the letters you type in the control.
When you configure the list of strings for a combo box control, you can specify a custom value for each string, which is useful if you want the string that appears in the combo box control on the front panel to be different than the string value the combo box terminal on the block diagram returns.
Use path controls and indicators to enter or return the location of a file or directory. You also can drag a path, folder, or file from (Windows) Windows Explorer or (Mac OS X) Finder and place it in a path control if dropping is enabled during run time.
Path controls and indicators work similarly to string controls and indicators, but LabVIEW formats the path using the standard syntax for the platform you are using.
If a function that returns a path fails, the function returns an invalid path value, <Not A Path>, in the indicator. Use the <Not A Path> value as the default value for a path control to detect when the user fails to provide a path and display a file dialog box with options for selecting a path. Use the File Dialog Express VI to display a file dialog box.
An empty path in a path control appears as an empty string on Windows and Mac OS X and as a slash (/) on Linux. Use empty paths to prompt the user to specify a path. (Windows) When you wire an empty path to a file input/output (I/O) function, the empty path refers to the list of drives mapped to the computer. (Mac OS X) The empty path refers to the mounted volumes. (Linux) The empty path refers to the root directory.
A relative path describes the location of a file or directory relative to an arbitrary location in the file system. An absolute path describes the location of a file or directory starting from the top level of the file system. Use relative paths, instead of absolute paths, in VIs to avoid having to rework the paths if you build an application or run the VI on a different computer.
|Tip If you must use an absolute path, ensure that you include code to test that the path exists and to create the path if it does not exist.|
Use the array, matrix, and cluster controls and indicators located on the Array, Matrix & Cluster and Classic Array, Matrix & Cluster palettes to create arrays, matrices, and clusters of other controls and indicators. Arrays group data elements of the same type. Clusters group data elements of mixed types. Matrices group rows or columns of real or complex scalar data for some math operations, such as linear algebra operations.
|Note (FPGA Module) The LabVIEW FPGA Module supports clusters of FPGA name controls, occurrence refnums, and other data types. However, you cannot include such a cluster on the front panel of the top-level FPGA VI. LabVIEW returns an error when you attempt to compile the FPGA VI.|
Use the listbox, tree control, and table controls and indicators located on the List, Table & Tree and Classic List, Table & Tree palettes to give users a list of items from which to select.
You can configure listboxes to accept single or multiple selections. Use the multicolumn listbox to display more information about each item, such as the size of the item and the date it was created.
When you type characters in a listbox at run time, LabVIEW selects the first item in the listbox that begins with the characters you type. Use the left and right arrow keys to go to the previous or next items that match the characters you type. Right-click a listbox and select Selection Mode»Highlight Entire Row from the shortcut menu to highlight the entire row when you select an item.
You can use a Property Node to modify list items and to gather information about list items, such as to detect the currently selected items or to set the handling of upper and lowercase characters when you type characters in a listbox at run time.
Refer to the following VIs for examples of using a listbox:
Use the tree control to give users a hierarchical list of items from which to select. You organize the items you enter in the tree control into groups of items, or nodes. Click the expand symbol next to a node to expand it and display all the items in that node.
When you type characters in a tree control at run time, LabVIEW selects the first item in the tree control that begins with the characters you type. You can change the hierarchy of items in the tree control by selecting an item and pressing the period (.) key to indent the current item or the comma (,) key to move the current item to the left. Right-click a tree control and select Selection Mode»Highlight Entire Row from the shortcut menu to highlight the entire row when you select an item.
You configure items in a tree control the same way you configure them in a listbox. You also can change the type of symbol that appears next to each node, and you can configure whether the user can drag and drop items within the tree control.
You can use an Invoke Node to modify items in the tree control and to gather information about items, such as to detect which items, if any, the user double-clicked. When you add an item in the tree control, LabVIEW creates a unique tag for the item. You use this tag to modify items or to gather information about items programmatically. Right-click the tree control and select Edit Items from the shortcut menu to modify the tags that LabVIEW creates for each item.
Use the table control to create a table on the front panel.
Use the ring and enumerated type controls and indicators located on the Ring & Enum and Classic Ring & Enum palettes to create a list of strings you can cycle through.
Ring controls are numeric objects that associate numeric values with strings or pictures. Ring controls appear as pull-down menus that users can cycle through to make selections.
Ring controls are useful for selecting mutually exclusive items, such as trigger modes. For example, use a ring control for users to select from continuous, single, and external triggering.
Right-click a ring control and select Edit Items from the shortcut menu to add items to the ring control list in the control. The order of the items in the Edit Items page of the Ring Properties dialog box determines the order of the items in the control. You also can configure the ring control so users can enter numeric values not already associated with any entries in the list of items defined for the control.
To enter an undefined value in the ring control at run time, click the control, select <Other> from the shortcut menu, enter a numeric value in the digital display that appears, and press the <Enter> key. The undefined value appears in the ring control in angle brackets. LabVIEW does not add the undefined value to the ring control list.
When you configure the list of items for a ring control, you can assign a specific numeric value to each item. If you do not assign specific numeric values to the items, LabVIEW assigns sequential values that correspond to the order of the items in the list, starting with a value of 0 for the first item.
Use enumerated type controls to give users a list of items from which to select. An enumerated type control, or enum, is similar to a text or menu ring control in that both contain lists of strings through which you can cycle. However, enumerated type controls differ from ring controls in the following ways:
All arithmetic functions except Increment and Decrement treat the enumerated type control the same as an unsigned integer. Increment changes the last enumerated value to the first value, and Decrement changes the first enumerated value to the last value. When coercing a signed integer to an enumerated type, negative numbers change to equal the first enumerated value, and out-of-range positive numbers change to equal the last enumerated value. Out-of-range unsigned integers always change to equal the last enumerated value.
If you wire a floating-point value to an enumerated type indicator, LabVIEW coerces the floating-point value to the closest numeric value in the enumerated type indicator. LabVIEW handles out-of-range numbers as previously described. If you wire an enumerated control to any numeric value, LabVIEW coerces the enumerated type value to a numeric value. To wire an enumerated type control to an enumerated type indicator, the items in the indicator must match the items in the control. However, the indicator can have more items than the control.
|Tip When using enumerated type controls, always make a type definition of the control. Creating type definitions prevents you from needing to rewrite the code each time you add or remove an item from an enumerated type control.|
Use the container controls located on the Containers and Classic Containers palettes to group controls and indicators or to display the front panel of another VI on the front panel of the current VI. (Windows) You also can use container controls to display .NET and ActiveX objects on the front panel.
Use tab controls to overlap front panel controls and indicators in a smaller area. A tab control consists of pages and tabs. Place front panel objects on each page of a tab control and use the tab as the selector for displaying different pages.
Tab controls are useful when you have several front panel objects that are used together or during a specific phase of operation. For example, you might have a VI that requires the user to first configure several settings before a test can start, then allows the user to modify aspects of the test as it progresses, and finally allows the user to display and store only pertinent data.
On the block diagram, the tab control is an enumerated type control. Terminals for controls and indicators placed on the tab control appear as any other block diagram terminal.
Use the subpanel control to display the front panel of another VI on the front panel of the current VI. For example, you can use a subpanel control to design a user interface that behaves like a wizard. Place the Back and Next buttons on the front panel of the top-level VI and use a subpanel control to load different front panels for each step of the wizard.
When you place a subpanel control on the front panel, LabVIEW does not create a terminal for the control on the block diagram. Instead, LabVIEW creates an Invoke Node on the block diagram with the Insert VI method selected. To load a VI in the subpanel control, wire a reference to that VI to the Invoke Node.
|Note Because the subpanel control does not have a terminal, you cannot create an array of subpanel controls, and you cannot create a type definition of a subpanel control. You can place a subpanel control in a cluster to group the subpanel control with other controls, but the cluster cannot contain only a subpanel control or controls.|
If the front panel of the VI you want to load is open or if you loaded the front panel in another subpanel control on the same front panel, LabVIEW returns an error, and you cannot load the front panel in the subpanel control unless the front panel is reentrant. You also cannot load the front panel of a VI in a remote application instance, and you cannot load front panels recursively.
If you load a VI that is not running, the VI in the subpanel control loads in edit mode.
LabVIEW displays only the visible area of the front panel of the VI you load in the subpanel control. After you stop running the VI that contains the subpanel control, LabVIEW clears the front panel in the subpanel control. You also can use the Remove VI method to unload the VI in the subpanel control.
Refer to the labview\examples\Controls and Indicators\Containers\Containers.lvproj for examples of using subpanel controls.
Use the variant control and indicator and class controls and indicators on the Variant & Class palette to interact with variant and class data.
The LabVIEW FPGA Module supports FPGA I/O, memory, FIFO, and clock controls.
Use the I/O name controls and indicators on the I/O and Classic I/O palettes to pass DAQ channel names, VISA resource names, and IVI logical names you configure to I/O VIs to communicate with an instrument or a DAQ device.
I/O name constants are on the Functions palette. A constant is a terminal on the block diagram that supplies fixed data values to the block diagram.
|Note All I/O name controls or constants are available on all platforms, which allows you to develop I/O VIs on any platform that can communicate with devices that are platform specific. However, if you try to run a VI with a platform-specific I/O control on a platform that does not support that device, you receive an error.|
(Windows) Use Measurement & Automation Explorer (MAX), available from the Tools menu, to configure DAQ channel names, VISA resource names, and IVI logical names.
|Note The Measurement & Automation Explorer option is available only if you install MAX.|
(Mac OS X and Linux) Use the configuration utilities for the instrument to configure VISA resource names and IVI logical names. Refer to the documentation for the instrument for more information about the configuration utilities.
The IMAQ session control is a unique identifier that represents the connection to the hardware.
Use the waveform control to manipulate individual data elements of a waveform. The waveform control carries the data, start time, and delta t of a waveform.
Use the digital waveform control to manipulate the individual elements of a digital waveform. Use the digital waveform control to specify start time, delta t, the data, and the attributes of a digital waveform.
The digital waveform control in the following illustration displays digital data with five samples that each contain eight signals, a start time of 6:00 PM on 1/31/2007, and delta t of 1.
|1 Start Time||3 Digital Data||5 Data|
|2 Delta t||4 Signals||6 Samples|
The digital data control displays digital data arranged in rows and columns as a digital table. Use the digital data control to build digital waveforms or to display digital data extracted from a digital waveform. Wire the digital waveform data control to a digital data indicator to view the samples and signals of a digital waveform.
The digital data control in the following illustration displays five samples that each contain eight signals.
|1 Signals||3 Vertical scroll bar||5 Horizontal scroll bar|
|2 Data||4 Samples|
You can display the data in the digital data control in binary, hexadecimal, octal, and decimal formats. The digital states L, H, Z, X, T, and V, which are states some measurement devices use, appear as question marks in the control if you choose to display the values in hexadecimal, octal, or decimal format. Right-click the control, select Data Format from the shortcut menu, and select a data format for the control.
The digital data control and digital waveform control contain data in digital tables. A digital table can represent data in eight digital data states. The following table describes the digital data states.
|Value||Digital Data State||Description|
|0||0 (Drive Low)||Forces logic low. Drives to the low voltage level (VOL).|
|1||1 (Drive High)||Forces logic high. Drives to the high voltage level (VOH).|
|2||Z (Force Off)||Forces logic high impedance. Turns the driver off.|
|3||L (Compare Low)||Compares logic low (edge). Compares a voltage level lower than the low voltage threshold.|
|4||H (Compare High)||Compares logic high (edge). Compares a voltage level higher than the high voltage threshold.|
|5||X (Compare Unknown)||Compares logic unknown. Does not compare.|
|6||T (Compare Off)||Compares logic high impedance (edge). Compares a voltage level between the low voltage threshold (VOL) and the high voltage threshold (VOH).|
|7||V (Compare Valid)||Compares logic valid level (edge). Compares a voltage level either lower than the low voltage threshold (VOL) or higher than the high voltage threshold (VOH).|
|Note You can use the Build Digital Data function to build a digital table.|
You can compress the data in a digital table. Compress digital data when you want to display two or more serial digital signals with the same bit sets on the same row to better visualize the data. For example, if you acquire 10 digital waveform samples and nine waveforms are identical but the tenth waveform differs, compressing the digital data helps you easily find which waveform is different. Compressing digital data also conserves memory resources.
The following illustration shows two digital data tables, each displaying the same data. The first table shows uncompressed digital data. The second table shows the same digital data after compression.
You can use the Digital Waveform VIs and functions to compress, uncompress, and otherwise manipulate digital data and digital waveforms.
Use the reference number controls located on the Refnum and Classic Refnum palettes to work with files, directories, devices, and network connections. Use the control refnum to pass front panel object information to subVIs.
A reference number, or refnum, is a unique identifier for an object, such as a file, device, or network connection. When you open a file, device, or network connection, LabVIEW creates a refnum associated with that file, device, or network connection. All operations you perform on open files, devices, or network connections use the refnums to identify each object. Use a refnum control to pass a refnum into or out of a VI. For example, use a refnum control to modify the contents of the file that a refnum is referencing without closing and reopening the file.
Because a refnum is a temporary pointer to an open object, it is valid only for the period during which the object is open. If you close the object, LabVIEW disassociates the refnum from the object, and the refnum becomes obsolete. If you open the object again, LabVIEW creates a new refnum that is different from the first refnum. LabVIEW allocates memory for an object that is associated with a refnum. Close the refnum to release the object from memory.
LabVIEW remembers information associated with each refnum, such as the current location for reading from or writing to the object and the degree of user access, so you can perform concurrent but independent operations on a single object. If a VI opens an object multiple times, each open operation returns a different refnum. LabVIEW automatically closes refnums for you when a VI finishes running, but it is a good programming practice to close refnums as soon as you are finished with them to most efficiently use memory and other resources. Close refnums in the opposite order that you opened them. For example, if you obtain a refnum to object A and invoke a method on object A to obtain a refnum to object B, close the refnum to object B first and then close the refnum to object A.
If you open a refnum inside a For Loop or While Loop, close that refnum for each iteration of the loop because LabVIEW repeatedly allocates memory for the refnum and does not free the memory until the VI finishes running.
Use the .NET and ActiveX controls located on the .NET & ActiveX palette to manipulate common .NET or ActiveX controls, such as rich text boxes, picture boxes, and calendars. You can add additional .NET or ActiveX controls to this palette for later use. Select Tools»Import».NET Controls to Palette or ActiveX Controls to Palette to convert a set of .NET or ActiveX controls, respectively, to custom controls and add them to the .NET & ActiveX palette.
|Note Creating and communicating with .NET objects requires the .NET Framework 4.0.
National Instruments strongly recommends that you use .NET objects only in LabVIEW projects.