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,那么你按下按鈕之后程序不會像你所想的一樣進入第二次循環,而是會直接結束,這樣一來你應該就懂了吧