NI LabVIEW中的数据流编程基础
本帖最后由 秋水伊人 于 2014-4-15 15:37 编辑LabVIEW按照数据流(dataflow)模式运行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自动选择连线路径。 按可删除在程序框图中的所有断线。 支持石鑫华视觉http://shixinhua.com,支持机器视觉论坛http://labviewvision.com。 不错,学习了谢谢
页:
[1]