labview局部变量使用问题

我写了一个程序如图,想用事件结构中的启动按钮来启动程序(这只是开头的一部分,主要是想用事件结构输出的数据流来控制后面程序的启动),我一开始用的是图一,但是发现要点两次启动按钮数据才能传出去。我改成图二点一次就可以了。我不太明白这是问什么?我觉得这两个程序应该是等效的,求给位前辈大神赐教,不胜感激!

图1

图2

很简单啊!为什么图一要两次,图二一次就可以,那是因为你的事件结构超时那一页没有赋值超时时间,就是事件结构左上角那。如果不赋值,时间结构每次循环都要等待事件发生才执行其他循环内的内容。图一已经是第二遍循环了,所以会等待下一次事件发生;图二的循环只执行一遍,事件已发生,所以一次就好!你加个2ms超时时间试试,效果就是一样的了!追问

你前面说的我都明白,不赋值的话默认为-1,超时结构会禁用,也就是说一直等待。为什么说这是图一已经是第二遍循环了?事件结构第一次循环不是应该一直等待启动按钮的值改变吗?不按的话第一次循环应该一直等待,不结束才对呀

追答

不是的,WHILE循环似乎是先判断一遍循环条件,然后再执行循环内容,图一里面事件结构与条件是分开的,于是当你按下按钮的时候,又执行了一遍条件语句,这时尽管条件是真,要终止循环,但还要执行一遍事件结构,可是又没赋超时时间,于是一直在等,按第一下的时候,正好触发事件,而上一次条件为真,于是就结束了!图二条件和判断是一体的,你可以理解为只有条件语句,没有其他的循环内容!因此不会再判断条件就结束了。建议你高亮运行,仔细看!

追问

追问字数有限,只能这样了

追答

什么书哦?我的试验证明可是先判断条件,再执行循环的!

温馨提示:内容为网友见解,仅供参考
无其他回答

labview插入局部变量的问题
LabVIEW中不需要这样做。用“移位寄存器”或“反馈节点”即可。二者各有各的方便之处,根据你自己的情况去选择用那种。如果只是想知道循环所在的次数,用i即可。for循环中,N为总循环次数。等价于for(i=0;i<N;i++)如图:附件为本vi,存为2012版的。那个按钮使用了“保持转换直到释放”的机械动作。...

labview 怎么在簇中使用局部变量?
这个的话,还真不能直接把局部变量放入到簇中,LabVIEW中没有这项操作。你可以用下述方法实现,用局部变量替换簇中的某个元素即可,如图。其实就是把簇中原有的数值1被 更改的数值 这个局部变量替换了,当然其他的变量都可以替换,在 按名称捆绑中点击选择相应的元素即可。按名称捆绑 位于:

labview中有程序引用、调用、属性节点、局部(全局)变量,它们有何异同...
局部和全局变量可以用来在LabVIEW的不同循环或CASE结构间传递数据。局部变量只能内置单一控件的值(比如字符显示控件内的字符串),全局变量则可以在一个变量内放置各种不同内容(比如数字、布尔、数组等)还有一个区别是局部变量只能在同一个VI内使用,全局变量不受这个限制。可以跨VI使用。需要注意的是全局...

labview局部变量占内存吗
labview局部变量占内存。局部变量就是其相应前面板对象的一个数据拷贝,要占用一定的内存。局部变量只能在同一个VI中使用,其生存期与它所在的VI模块密切相关,VI停止运行,在此VI内定义的局部变量自动消失,局部变量必须依附在一个前面板对象上,一个前面板对象可以建立多个局部变量,但一个局部变量只能有...

Labview局部变量传递数值为什么丢失?
队列或者(生产者消费者结构)等等,都是基于基础而来,换言之,如果你的程序在不加任何架构的情况下可以跑通,那么才是完全理解原理。 直接进入到现成架子中,很多东西会混淆。当入队和出队循环时间均为15ms时数据可无差错传输 -- 表示已经能正常工作。

在labview中,布尔触发动作与本地变量不兼容是什么意思
你使用了布尔控件并创建了该控件的局部变量,局部变量要求该控件为一个确定值,而你应该使用了默认的机械动作:释放时触发,导致点击按钮后控件会发生俩次状态转换,与局部变量用法不兼容,因此报错,你应该点击右键选择属性或者机械动作,将其改为单击时转换或其他只发生一次属性改变的机械动作 ...

labview同个控件的多个局部变量是什么关系,为什么多个局部变量的数值...
控件比做人,那么局部变量就是这个人的照片,局部变量的返回值是程序读到它时,它所对应的控件的值。所以说这样想就明白了,同一个人,不同时间拍的照片,当然是不一样的

簇里面数字怎么设局部变量 labview 比如簇里面有两个输入框 我想某一个...
簇里面的变量不能设为局部变量,如果要访问只能通过以下三种方式:1)把簇设为局部变量,这样可以通过解捆绑和捆绑来实现读写操作。2)直接通过鼠标右键创建簇里面变量的属性节点。3)通过鼠标右键创建簇里面变量的引用。

LABVIEW生产消费者循环结束问题!
做一个停止按钮。 将这个按钮鼠标右点击创建局部变量, 使用2个局部变量分别放到另2个循环中。在主界面上, 对停止按钮的图标鼠标右点击。 查找按钮类型\/方式 设定 --- 选择长按关闭 或者 释放关闭, 自己试。 --- 此点必须做,否则局部变量不会生效。

LabVIEW。现有3个while循环,如何通过单击一个STOP按钮则三个while循 ...
我不知道你是哪样的情形,但是这个并不是很难,方法有很多种,局部变量是可以用的,但是要改变按钮的机械动作,你肯定没改变机械动作,我图片里面用的是第一个,按下时改变值,但是这种机械动作有个缺点就是不会将按钮弹起,所以加个帧,给他的局部变量赋负值,让按钮弹起,至于第一帧不加也无所谓,...

相似回答