wangyi31 发表于 2016-12-21 14:15
首先谢谢您的回答,还有些疑问,比如:1:我按下停止按钮后,触发了事件,此时labview检测到了停止按钮数值的变化,处理了“加1”事件,此时labview是还没有读取控件的值是吗。2:我注意到,停止按钮按下一次后,他又自动弹回了,应该是labview已经读取控件的值了,此时值为1啊,为什么没有停止,就是要按第二次始终不明 ...
你的stop按钮应选择如图所示的 switch until released,就可以实现按一下就停止程序
krize 发表于 2016-12-21 11:21
执行过程如下:
1.第一次进入循环,按下按钮之前程序就已经读取了按钮的值,为假。
2.第一次按下按钮之后,触发事件结构,执行完事件结构以后,本次循环就结束了,第1步时已经说了,这时候读到的按钮值是假,所以循环并不会停止,而是会开始第二次循环。
本帖最后由 隔壁老wang 于 2016-12-21 15:34 编辑
这个值得深究
krize 发表于 2016-12-21 14:53
1.不是,此时labview已经读取过一次控件的值了,确切的说在你还没按按钮的时候就已经读取过控件值了,读到的值是“假”。
2.自动弹回是这个按钮的机械动作,并不代表labview已经读取了控件值。按钮按下去再自动弹回的时候labview会把值“真”锁存起来了,以保证下次程序里读取按钮值的时候能读到真值,但这跟你的程序有没 ...
wangyi31 发表于 2016-12-21 14:15
首先谢谢您的回答,还有些疑问,比如:1:我按下停止按钮后,触发了事件,此时labview检测到了停止按钮数值的变化,处理了“加1”事件,此时labview是还没有读取控件的值是吗。2:我注意到,停止按钮按下一次后,他又自动弹回了,应该是labview已经读取控件的值了,此时值为1啊,为什么没有停止,就是要按第二次始终不明 ...
wangyi31 发表于 2016-12-21 14:15
首先谢谢您的回答,还有些疑问,比如:1:我按下停止按钮后,触发了事件,此时labview检测到了停止按钮数值的变化,处理了“加1”事件,此时labview是还没有读取控件的值是吗。2:我注意到,停止按钮按下一次后,他又自动弹回了,应该是labview已经读取控件的值了,此时值为1啊,为什么没有停止,就是要按第二次始终不明 ...
静夜style 发表于 2016-12-21 16:54
其实labview有个强大的功能就是看数据流动,你把程序框图上的小灯泡打开,运行,就可以直观的看到数据流动以及执行的先后顺序了,另,沙发说的很明白
静夜style 发表于 2016-12-21 16:54
其实labview有个强大的功能就是看数据流动,你把程序框图上的小灯泡打开,运行,就可以直观的看到数据流动以及执行的先后顺序了,另,沙发说的很明白
wangyi31 发表于 2016-12-21 17:58
谢谢您的耐心回到,我按照您的说法做了一下,我按下第一次的时候,看了一下,过程是这样的:首先事件结构由于按键的值改变,触发了事件, 显示值加1 ,labview读取了按键的值,为“T”,我的疑问既然读取的值为“T“了,为什么循环还要进行下去,是要将本次循环进行完毕算结束吗? ...
wangyi31 发表于 2016-12-21 17:58
谢谢您的耐心回到,我按照您的说法做了一下,我按下第一次的时候,看了一下,过程是这样的:首先事件结构由于按键的值改变,触发了事件, 显示值加1 ,labview读取了按键的值,为“T”,我的疑问既然读取的值为“T“了,为什么循环还要进行下去,是要将本次循环进行完毕算结束吗? ...
有个好玩的地方在于如果你把按钮的值初始设置成T,那么你按下按钮之后程序不会像你所想的一样进入第二次循环,而是会直接结束,这样一来你应该就懂了吧
静夜style 发表于 2016-12-22 16:13
有个好玩的地方在于如果你把按钮的值初始设置成T,那么你按下按钮之后程序不会像你所想的一样进入第二次循环,而是会直接结束,这样一来你应该就懂了吧