条件结构

条件标签还可以是一段值,在两个值之间用两个点连接就表示这两个数值之间的一段值。条件结构的可读性比较差,但它又是程序必不可少的一种结构。不过,在某些情况下,可以用选择函数(位于”编程→比较→选择”)代替条件结构。
使用选择函数最明显的优点是,所有候选数据都直接展现在程序框图上, 用户一眼便可了解整个程序的逻辑,程序可读性大大提高。

For循环结构
编写一个程序,程序列出某一路径下的所有VI ,再把这些VI 的文件名在程序前面板上一一显示出来.同时前面板上有一个进皮条,可以表明已显示了总数的多少。
image.png

事件结构:

程序如需处理布尔控件的值改变事件,则必须把这个布尔控件的接线端放置在事件结构的某一处理分支内s,否则,程序可能出错。

动态事件(跨VI控制控件):

需要注册某一事件时,首先要为产生这个事件的控件生成一个引用节点,将引用节点与”注册事件”节点下方标志了”事件”字样的事件源相连;单击事件源,在弹出的菜单中选择所需的事件。然后,把注册事件节点生成的”注册事件引用句柄”传递给事件结构的”动态事件接线端”即可完成事件的注册。
在LabVIEW 中,”引用”是一个4 字节的数据,程序可以通过它得到其指向的复杂数据对象。
唯一的麻烦是,在LabVIEW 的控件选板中,无法找到针对某一特定对象的引用控件. 因为某个控件的”引用”只与这个特定控件相关联,所以不可能在控件选板中列出无数个控件引用来。需要使用这种”引用”控件时,最简单的办法是从”引用”直接创建出同数据类型的控件.分别在图3.67 所示的程序框图中的3 个”引用”上右击,选择”创建→输入控件”,即可产生与这3 个引用数据类型相对应的”引用”控件,再把产生的控件复制至子 VI 主面板中即可。
在子VI 中处理主VI 控件的事件,首先要注册需要处理的事件。
需要注意的是,动态事件是指引用控件所指向的内容(另一个控件)的事件,千万不要把它与引用控件本身的事件混淆。
image.pngimage.png
从控件直接创建出来的控件属性节点只能在控件所在的 VI 上使用。如果需要读/写其他 VI 上的控件的属性,则必须通过控件的引用完成。把某控件的引用传递给”编程→应用程序控制→属性节点”的”引用”输入端,即可在属性节点下方的属性数据接线端选择该对象的属性了.它与从控件直接创建出来的属性节点的功能是完全相同的。

用户自定义的事件

LabVIEW 自产的事件主要是指那些自用户对界面对象进行操作的事件,比如在某处单击、改变某个控件的值以及程序自身状态变化〈如”超时”的事件。如果需要在程序中满足其他某种条件时也产生一个事件,就只能使用用户自定义事件了。
image.png

image.png
自定义用户事件可以作为一种规范的格式,用在VI的初始化、终止等场合。处理VI被调用或开始运行时首先需要处理的事情以及VI终止前必须处理的事情。

定时结构

等待”、“等待下一个整数倍毫秒”或”时间延迟”函数,这3 个函数的用法是完全相同的.它们可以分辨的最小等待或延时时间也是相同的: 2 ms。等待”与”时间延迟”的精度是相同的,它们每执行一次的误差可达数个毫秒”等待下一个整数倍毫秒”的精度要高一些。利用事件结构的超时事件来定时,其精度与”等待”函数相当。定时循环结构的精度远离于前面几种定时方式。使用”等待”函数定时运行1 h 后, 时间误差长达几分钟,改用”等待下一个整数倍毫秒”函数,则误差缩至1 min 之内;最后改用定时结构,误差缩短到了几秒钟。