程序框图包含LabVIEW程序的图形化源代码。程序框图的概念是以逻辑和简单的方式将图形化源代码与用户界面分开。前面板上的对象在程序框图中显示为接线端。程序框图上的接线端反映了对其相应前面板对象所做的更改,反之亦然。
创建或打开新VI时,前面板会自动打开。要显示程序框图,请从菜单栏中选择窗口(Window)»显示程序框图(Show Block Diagram)。此外,您可以按<Ctrl+E>,在程序框图和前面板之间切换。
程序框图对象包含接线端、子VI、函数、常量、结构和连线,用于在其他程序框图对象之间传输数据。您可以使用LabVIEW工具来创建、修改和调试VI。工具是鼠标光标的特殊操作模式,因此鼠标的操作模式对应于所选工具的图标。LabVIEW根据当前鼠标的位置选择工具。您可以在工具(Tools)选板内手动选择所需的工具,方法是在菜单栏中选择查看(View)»工具选板(Tools Palette)。现在您可选择所需的工具,在从工具(Tools)选板中选择其他工具之前,该工具将保持选中状态。
要将对象放置在程序框图上,只需从函数(Functions)选板中拖放它们即可。在程序框图工作区的任意位置单击鼠标右键,函数(Functions)选板将自动显示。其中包含函数、常量、结构和一些子VI。
请注意函数(Functions)选板顶部的两个按钮。
图钉可将函数(Functions)选板固定在程序框图上。
搜索(Search)按钮可打开搜索对话框,用于按名称搜索函数。
单击搜索(Search)按钮即可启动函数搜索引擎。启动需要一些时间。
如果找不到函数,则可以使用此工具按名称搜索函数。
所需函数出现后,双击该函数,LabVIEW就会跳转到函数(Functions)选板中的相应位置,您可在这里找到该函数。
注意:完成以下步骤,即可更改函数(Functions)选板中可见的子选板:
1. 使用图钉将函数(Functions)选板固定到程序框图上。
2. 请注意,当您将函数(Functions)选板固定到程序框图时,会出现查看(View)按钮。
3. 选择查看(View),然后从快捷菜单中选择更改可见类别(Change Visible Categories)。
4. 在更改可见类别(Change Visible Categories)对话框中,您可以选择最常用的选板,或单击全选(Select All)以选择所有选板。
要更改程序框图的外观,请从菜单栏中选择工具(Tools)»选项(Options)。在选项(Options)对话框中,选择程序框图(Block Diagram)类别。您可以在此处自定义程序框图的外观。为了节省程序框图上的空间,取消选择以图标形式放置前面板接线端(Place front panel terminals as icons)。
接线端可确定前面板上程序框图对象的外观。此外,接线端还是前面板和程序框图之间交换信息的输入输出端口。类似于文本编程语言中的参数和常量,接线端有两种类型:输入控件或显示控件接线端以及节点接线端。输入控件和显示控件接线端属于前面板上的输入控件和显示控件。
在上例中,您在前面板输入控件a和b中输入的数据通过其各自的输入控件接线端a和b进入程序框图。然后进行数据的加减运算。加减运算结束后,生成新的数据值。数据值进入显示控件接线端,与此同时更新前面板上显示控件a+b和a-b的值。
输入控件、显示控件和常量用作程序框图算法的输入和输出。输入控件从前面板接收其值,并将数据传递给其他程序框图对象。显示控件从程序框图逻辑接收其值,并将数据从程序框图传递到前面板。常量将数据传递给它们所连接的对象。可以设想计算三角形面积的算法。可能有以下前面板和相应的程序框图。
除非用作算法的解释说明,否则常量三角形系数(Triangular Multiplier)无需出现在前面板窗口中。它只是将0.5的值传递给“乘”函数。请注意,程序框图中底(cm)和高(cm)接线端的外观和面积(cm^2)接线端的外观不一样。在程序框图中,输入控件和显示控件有两个区别特征。第一个区别特征在于表示数据流方向的接线端箭头。输入控件的箭头方向显示出数据是流出接线端的,而显示控件的箭头方向显示出数据是流入接线端的。第二个区别特征在于接线端的边框。输入控件的边框较粗,显示控件的边框较细。
您可以在程序框图或前面板中创建输入控件和显示控件。本教程的后面部分提供了相应的教程。
节点是程序框图上的对象,具有输入和/或输出端,在VI运行时进行运算。节点相当于文本编程语言中的语句、运算符、函数和子程序。节点可以是函数、子VI或结构。结构是过程控制元素,比如条件结构、For循环或While循环,后面的教程将介绍这些内容。下图显示了程序框图节点的一些范例。
函数是LabVIEW中最基本的操作元素。函数没有前面板窗口或程序框图窗口,但它们具有输入和输出接线端,用于像输入控件和显示控件一样传输输入和输出数据。您可以通过图标上的淡黄色背景来判断程序框图对象是否为函数。函数(Functions)选板中的函数根据所执行的函数类型分组排列。在数值(Numeric)子选板中查找执行数值运算的函数。
函数有许多不同类型。请记住,函数具有浅黄色背景,如下所示。
子VI是用户创建的、可用于其他VI内的VI,或可在函数选板中访问的VI。所有VI均可用作子VI。双击程序框图上的子VI时,会显示其前面板窗口,您可以访问相应的程序框图。函数(Functions)选板中有一些子VI范例,如下所示。
For循环、条件结构和While循环等结构用于过程控制。我们将在后面的教程中介绍相关内容。可通过编程(Programming)下的函数(Functions)选板,打开结构(Structures)子选板。
以下是不同的结构示例及其在程序框图上的显示方式。
现在按照以下步骤创建如下所示的程序框图:
1. 从工具栏打开一个空白VI。选择文件(File)»新建VI(New VI)。
2. 将“乘”函数从编程(Programming)下的数值(Numeric)子选板拖到程序框图上,即可将其放置在程序框图上。重复上述步骤,在程序框图上放置第二个乘函数。
提示:要复制程序框图上的对象,请按住<Ctrl>并单击和拖动对象。
3. 将鼠标悬停在最左侧的“乘”函数上,即刻显示输入和输出接线端。如果将鼠标悬停在其中一个接线端上,则线轴会与鼠标悬停位置的接线端名称一同显示。
要为y接线端创建输入控件,只需将鼠标悬停在该接线端上并单击鼠标右键即可。
对最左侧乘函数的x接线端执行相同操作,让每个输入接线端都有相应的输入控件。
4. 将鼠标悬停在输出接线端上,以将左侧“乘”函数的输出接线端连接到右侧“乘”函数的x输入端。变成线轴后,单击并按住鼠标,同时将线拖动到所需输入端。
5. 右键单击最右侧“乘”函数的y输入接线端并选择创建(Create)»常量(Constant),创建三角形系数常量0.5。您可以双击常量以突出显示文本并输入新值,更改常量的值。输入0.5并按<Enter>。
6. 接下来,右键单击右侧“乘”函数的输出端,并选择创建(Create)»显示控件(Indicator),以创建显示控件,从而将程序框图逻辑的值传输到前面板。
提示:双击程序框图并在自动创建的文本框中输入您的注释,即可对程序框图或前面板进行注释。
双击标签并输入所需名称,即可更改显示控件、输入控件和常量的名称。如果没有显示标签,请右键单击所需对象并选择显示项(Visible Items)»标签(Label)。
7. 接下来,按<Ctrl+E>或选择窗口(Window)»显示前面板(Show Front Panel),查看根据您的程序框图操作所生成的前面板。请注意,两个输入控件底(cm)[Base(cm)]和高(cm)[Height(cm)]以及显示控件面积(cm^2)[Area(cm^2)]均自动生成并放置在前面板上。了解工具栏图标后,即可运行该程序。
运行VI时,程序框图上会出现以下工具栏。您可以使用程序框图工具栏上的某些按钮来调试VI。这些按钮将在后面的教程中均有介绍。
单击运行(Run)按钮运行VI。您不需要自行编译代码;LabVIEW会自动编译。运行(Run)按钮为白色实心箭头时表示VI可以运行,如左图所示。
如正在创建或编辑的VI出现错误,则运行(Run)按钮会显示为断开。如程序框图完成连线后,运行按钮仍显示为断开,则说明VI断开,无法运行。单击该按钮,显示错误列表(Error List)窗口,该窗口列出了所有的错误和警告。
单击连续运行(Run Continuously),连续运行VI直至中止或暂停操作。此外,再次单击该按钮可以停止连续运行。
VI运行时,将出现中止执行(Abort Execution)按钮。当没有其他方法停止VI时,可以单击该按钮立即停止VI。多个运行中的顶层VI使用当前VI时,按钮显示为灰色。
警告:中止执行(Abort Execution)按钮可在VI完成当前循环前立即停止VI运行。中止使用外部资源(例如,外部硬件)的VI,可能会导致未正确复位或释放这些资源,使这些资源处于未知状态。因此,应为VI设计停止按钮,以防此类问题的发生。
单击暂停(Pause)即可暂停正在运行的VI。单击暂停(Pause)按钮时,LabVIEW会在程序框图中高亮显示执行暂停的位置,并且暂停(Pause)按钮显示为红色。再次单击暂停(Pause)按钮,继续运行VI。
选择文本设置(Text Settings)下拉菜单可改变所选VI部分的字体设置,包括大小、样式和颜色。
单击对齐对象(Align Objects)下拉菜单,沿轴(包括垂直边缘、上边缘、左边缘等)对齐对象。
单击分布对象(Distribute Objects)下拉菜单,可将多个前面板对象设置为相同大小。
有多个对象相互重叠时,单击重新排序(Reorder)下拉菜单,将某个对象置前或置后。使用定位工具选择其中一个对象,然后选择向前移动(Move Forward)、向后移动(Move Backward)、移至前面(Move To Front)或移至后面(Move To Back)。
单击显示即时帮助窗口(Show Context Help Window)按钮,可切换即时帮助窗口的显示。
输入文本(Enter Text)用于提醒用户用新的值去替换旧的值。无论是单击输入文本(Enter Text)按钮,还是按<Enter>键,亦或是单击前面板或程序框图工作区,按钮都会消失。
最后,单击刚刚创建的VI上的连续运行(Run Continuously)按钮,并更改前面板上的值。观察更改输入控件值a和b如何更新显示控件值a*b。
输入到前面板输入控件中的值会传输到程序框图,而程序框图逻辑计算得出的结果会传输回前面板显示控件。
单击中止执行(Abort Execution)按钮,即可停止VI。从菜单栏中选择文件(File)»保存(Save),然后单击前面板窗口右上角的关闭(Close)按钮,即可保存并关闭VI。
程序框图是所有虚拟仪器最基本的层面。它控制着从数据流到将数据传入和传出前面板的所有过程。 对于LabVIEW程序员来说,清晰而深刻地了解程序框图的工作原理至关重要。