<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="id10731032">
  <name>Create a SubVI in LabVIEW</name>
  <metadata>
  <md:version>1.3</md:version>
  <md:created>2007/06/14 13:30:36 GMT-5</md:created>
  <md:revised>2008/03/17 21:34:11.834 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="doering">
      <md:firstname>Ed</md:firstname>
      
      <md:surname>Doering</md:surname>
      <md:email>doering@rose-hulman.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="doering">
      <md:firstname>Ed</md:firstname>
      
      <md:surname>Doering</md:surname>
      <md:email>doering@rose-hulman.edu</md:email>
    </md:maintainer>
    <md:maintainer id="eluther">
      <md:firstname>Erik</md:firstname>
      <md:othername>B</md:othername>
      <md:surname>Luther</md:surname>
      <md:email>erik.luther@ni.com</md:email>
    </md:maintainer>
    <md:maintainer id="SShearman">
      <md:firstname>Sam</md:firstname>
      <md:othername>D.</md:othername>
      <md:surname>Shearman</md:surname>
      <md:email>sam.shearman@ni.com</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>connector pane</md:keyword>
    <md:keyword>icon editor</md:keyword>
    <md:keyword>LabVIEW</md:keyword>
    <md:keyword>subVI</md:keyword>
    <md:keyword>terminals</md:keyword>
  </md:keywordlist>

  <md:abstract>A "subVI" is equivalent to a function, subroutine, or method in other
programming languages, and useful for encapsulating code that will be reused
multiple time. A subVI is also used to develop hierarchical programs.</md:abstract>
</metadata>
  <content>
    <para id="id11791947">A <term>subVI</term> is the LabVIEW equivalent to “functions,” “subroutines,” and “methods” in other programming languages. You can easily create a subVI that can be used reused many times in other VIs; editing the subVI one time updates its behavior for all VIs that use the subVI, which simplifies program design and maintenance. Moreover, the subVI forms the basic method by which you can create a hierarchical program.</para>
    <para id="id9227503">The screencast video below details the necessary steps to convert a conventional block diagram into a subVI by adding a <term>connector pane</term> and an <term>icon</term>. These two elements enable the block diagram to appear as an element on another block diagram with a connection pattern specific to the requirements of the task performed by the subVI. In addition, you can set the <term>VI Description</term> (part of the <term>VI Properties</term>) of your subVI so that hovering your cursor over your subVI reveals a helpful description of its behavior.</para>
    <figure id="id11580665"><media type="image/png" src="lvt_subvi.html">
          <param name="thumbnail" value="lvt_subvi.png"/>
        </media>
<caption>
   [video] LabVIEW Techniques: Create a subVI from a block diagram
</caption>
</figure>
  </content>
</document>
