The power of LabVIEW lies in the hierarchical nature of the
VI. After you create a VI, you can use it on the block diagram
of another VI. There is no limit on the number of layers in the
hierarchy. Using modular programming helps you manage changes
and debug the block diagram quickly.
A VI within another VI is called a subVI. A subVI corresponds to
a subroutine in text-based programming languages. When you
double-click a subVI, a front panel and block diagram appear,
rather than a dialog box in which you can configure options. The
front panel includes controls and indicators that might look
familiar. The block diagram includes wires, front panel icons,
functions, possibly subVIs, and other LabVIEW objects that also
might look familiar.
The upper right corner of the front panel and block diagram
displays the icon for the VI. This icon is the same as the icon
that appears when you place the VI on the block diagram.
Icon and Connector Pane

After you build a
front panel and block diagram, build the icon and the
connector pane so you can use the VI as a subVI. Every VI
displays an icon, such as the one shown in
1, in the upper right corner of the front panel
and block diagram windows. An icon is a graphical
representation of a VI. It can contain text, images, or a
combination of both. If you use a VI as a subVI, the icon
identifies the subVI on the block diagram of the VI. You can
double-click the icon to customize or edit it.

You also need to build a connector pane, shown in
2, to use the VI as a subVI. The connector pane is
a set of terminals that correspond to the controls and
indicators of that VI, similar to the parameter list of a
function call in text-based programming languages. The
connector pane defines the inputs and outputs you can wire to
the VI so you can use it as a subVI. A connector pane receives
data at its input terminals and passes the data to the block
diagram code through the front panel controls and receives the
results at its output terminals from the front panel
indicators.
As you create VIs, you might find that you perform a certain
operation frequently. Consider using subVIs or loops to
perform that operation repetitively. For example, the block
diagram in
Figure 1 contains two identical
operations.
You can create a subVI that performs that operation and call
the subVI twice. The example in
Figure 2 calls
the
Temperature VI as a subVI twice on its block
diagram and functions the same as the previous block
diagram.You also can reuse the subVI in other VIs. Refer to
Repetition and Loops for more
information about using loops to combine common operations.
Refer to the
LabVIEW Basics II: Development Course
Manual for more information about application
development. The following pseudo-code and block diagrams
demonstrate the analogy between subVIs and subroutines.
| Function Code |
Calling Program Code |
main
{
average (point1, point2,
pointavg)
}
|
|
function average (in1,
in2, out)
{
out = (in1 + in2)/2.0;
}
|
|
| SubVI Block Diagram |
CallingVI Block Diagram |
|
|
"A full introductory course on programming with LabVIEW."