
Labview中的循环
结构有for和while两种,其中for结构的循环次数是预先给定或者是可以确定的,而while循环则需要通过判断内部的条件
节点来决定是否终止vi的运行. 出现死循环的情况一般都与使用这两种结构有关.这可以分为两种情况:一种是咐蠢vi停在某一次循环上无限等待,导致了死循环的出现另一种是vi循环无限进行下去,而不能衡升陪控制其停止下来,这主要在while结构中出现,因为程序的设计问题使控制while停止的按钮失效. 先来说说后一种情况(如上图).由于循环结构在进入循环后将不再理会循环框外数据的变化,因此如果 停止 按钮第一次不能使循环停止的话,就会导致循环无限运行下去,形成死循环.故产生循环终止条件的数据源一定要放在循环框内. 再看下面的例子,它说明了当对话框与while循环一起使用时应注意的问题.如右所示的vi运行后将处于不断地询问状态, 停止 按钮在这里失去作用(此时只能通过任务管理器强行退出labview).造成这种死循环的原因就在于笑卜程序没有对 询问 函数的值作出处理.要使vi处于受控状态,就必须把询问函数的值与循环的条件端子联系起来。
结合“事件结构”和“属性节点”就可以完成,如下:
前面板
注意,这里数组2属性节点的创建方法如下:
必须要是“值(信号)”,单单创建“值”属性是不行的。散和因为labview不会捕捉由程序产生的“值改变”事件。“值昌晌(信号)”属性节点是只读的,对它的写 *** 作和在前面板手动修改的结果是一样的。值得注意的是,只要是对其进行了写 *** 作,那么就会触发值改变事件。
上面这个例子中,左边的循环中不断的给“数值2”赋值,会触发右边的事件结构。每当数值2的值改变时,就会将新值赋给数值3.注意,就耐掘锋算每次给数值2赋一个相同的常量,也会触发事件结构。
labview中除非使用了顺序结构,否则程序本来默认就是并行运行的。
评论列表(0条)