LabVIEW按照数据流的模式运行VI。程序框图上的节点只有在接收到所有必要输入端的数据后才开始执行。节点执行后产生输出端数据,并将该数据传递给数据流路径中的下一个节点。数据流在节点中流动的过程决定了程序框图上VI和函数的执行顺序。
Visual Basic、C++、Java以及绝大多数其他文本编程语言都遵循程序执行的控制流模式。控制流中,元素在程序中的先后顺序定了执行的顺序。
图1是一个数据流编程示例,程序框图中两个数字相加,然后从结果中减去50.00。该示例中,程序框图从左向右执行,这并非因为对象的放置顺序如此,而是因为“减”函数必须在“加”函数执行完并将数据传到“减”函数后才能执行。请记住仅当节点的全部输入端上的数据都准备就绪,节点才能开始执行。仅当节点执行结束后,才能将数据传递至输出接线端。
图1. 数据流编程示例
在图2中,请思考哪一部分代码将优先执行:加、随机数还是除函数?答案是不知道,因为“加”和“除”函数同时有数据输入,而“随机数”不用数据输入。如一段代码必须在另一段代码前执行,而两个函数间不存在数据依赖关系,可采用其他编程方法(例如顺序结构或错误簇)强制设定执行的顺序。
图2. 多段代码的数据流示例
连线返回页首通过连线可以在程序框图对象之间传输数据。在图1和2中,输入控件和显示控件接线端通过连线连接至“加”和“减”函数。每根连线都只有一个数据源,但可以与多个读取该数据的VI和函数连接。数据类型不同,连线的颜色、粗细和式样也不同。
断线显示为中间带有红色X的黑色虚线,如上图所示。产生断线的原因有很多,例如将数据类型不兼容的两个对象相连。
表1列出了最常见的连线类型。
表1. 常见的连线类型
LabVIEW中,连线连接VI中的多个接线端来传递数据。连线连接的输入端和输出端数据必须兼容。例如,不能将数组输出端连接到数值输入端。另外,连线的方向也必须正确。连线必须仅有一个输入和至少一个输出。举例来说,两个显示控件之间不能连线。决定连线兼容性的因素包括输入/显示控件的数据类型和接线端的数据类型。例如,一个绿色边框的开关可与Express VI上任意带绿色标签的输入端相连;一个橙色边框的旋钮可与任意带橙色标签的输入端相连。但是,一个橙色旋钮不能与带绿色标签的输入端相连。连线的颜色与接线端的颜色相同。
自动连接对象
在程序框图上,如将一个对象移至另一对象近旁,LabVIEW将显示临时连线,提示两者间有效的连线方式。放开鼠标将对象放置在程序框图上后,LabVIEW将自动连接两个对象。此外,用户还可对程序框图上已存在的对象执行自动连线。LabVIEW将对最匹配的接线端进行连线,对不匹配的接线端不予连线。
从函数模板选择一个对象,或通过按住键并拖动对象的方式来复制程序框图上的某个对象时,自动连线方式将默认启用。用定位工具移动程序框图上已存在的对象时,自动连线默认为禁用。
通过选择工具»选项,然后从类别列表中选择程序框图,可调整自动连线设置。
手动连接对象
连线工具移至接线端时,将出现一个带接线端名称的提示框。此外,即时帮助窗口和图标上的接线端将闪烁,帮助您确认正确的接线端。如要连接两个对象,首先将连线工具移至第一个接线端并单击,然后将光标移至第二个接线端并再次单击即可完成。连好后右键单击连线,从快捷菜单中选择整理连线,LabVIEW将自动整理连线路径。如要清除断线,请按删除程序框图中的所有断线。
(转载)