LabVIEW開發的一大優勢就是做界面十分方便,而在開發的過程中我們一定會使用前面板控件,其中布爾控件中有一類按鈕控件,我們可以通過按下控鈕來設計實現不同的程序功能,但是在使用和開發的過程中大家是否注意到按鈕控件有不同的動作方式?
其實LabVIEW對按鈕控件提供了六種不同動作方式,這就是控件的機械動作。它們可以通過右鍵選中控件然后選擇機械動作來進行設置,這六種不同的機械動作導致按鈕輸出值的行為是不同的,下面讓我們來一起學習這六種機械動作吧!
一、機械動作的分類
布爾控件的機械動作用于模仿與真實儀器(如示波器、信號發生器、萬用表等)相類似的前面板按鈕行為。機械動作一共分為兩類:一類是切換動作,另一類是觸發動作。切換和觸發動作的相同之處是他們都改變了布爾控件的值,不同之處是他們如何恢復控件的原值。
轉換動作是控件從原值轉換為新值并且保持一定的轉換時間;而觸發和轉換不同,觸發是按鈕輸出新值只一次,然后立刻恢復為原值,它輸出新值時不會保持一定時間。
切換動作:適用于只能由用戶將控件值恢復到原值時使用該類機械動作
觸發動作:適用于由讀取控件的VI將控件值恢復到前一個值時使用該類機械動作。這時用戶也可以將控件值恢復成原值,但必須在VI讀取控件之前進行。
動作 | 描述 | 應用場景 |
---|---|---|
單擊時轉換 | 單擊時立即改變控件當前值,且保留新值直至下一次單擊控件。 | 照明燈開關—按下開關后燈立即點亮,并一直保持點亮到再次按下開關為止。 |
釋放時轉換 | 釋放鼠標按鈕時改變控件當前值,且保留新值直至下一次單擊控件。 | 復選框—只在釋放鼠標按鈕后才改變復選框的值,單擊后如將鼠標移至復選框外再釋放則復選框值不改變,因而有更多考慮空間。 |
保持轉換直到釋放 | 只在單擊鼠標并保持鼠標按鈕按下期間改變當前值并保持新值,釋放鼠標后將恢復原值。 | 門鈴—按下按鈕后門鈴立即響起并保持響聲直至釋放按鈕。 |
單擊時觸發 | 單擊時立即改變控件當前值,且在VI讀取該控件新值后恢復原值。 | 緊急停止按鈕—按下按鈕后系統立即停止運行,且按鈕在系統讀取值改變后立即重置,從而允許被再次按下。 |
釋放時觸發 | 釋放鼠標時改變控件當前值,且在VI讀取該控件新值后恢復原值。 | 關閉按鈕—只在釋放鼠標按鈕且應用程序讀取了值改變后才關閉程序,單擊后如將鼠標移至按鈕外再釋放則不關閉,因而有更多考慮空間。 |
保持觸發直到釋放 | 只在單擊鼠標并保持鼠標按鈕按下期間改變當前值并保持新值。釋放鼠標按鈕且VI讀取控件值后將恢復原值。 | 機器人移動控制器—按下控制器后控制器通知機器人系統移動機器人。釋放控制器按鈕后,機器人系統讀取控件值,機器人恢復不動的狀態。 |
二、 機械動作介紹
1、單擊時轉換
鼠標按下時,按鈕輸出的值會轉換。例如,如果按鈕的值設為假,當按鈕被按下,值就轉換為真。并且新值會一直保持下去,直到按鈕再次被按下。該類控件常用于控制LED燈的開和關。
2、釋放時轉換
鼠標按下時不改變狀態,只有當鼠標在控件上釋放時才改變狀態,如果鼠標未釋放或在控件范圍外釋放則不改變狀態,生效后可以一直保持新值狀態。該類控件類似于Windows的確定按鈕,用戶按下按鈕后又經過考慮還是不確定了,可以將鼠標移到按鈕外釋放,這樣就可以放棄此次轉換。
?
3、保持轉換直到釋放
鼠標按下時狀態改變,并且新值只持續到鼠標釋放;鼠標釋放時控件恢復成原值狀態;控件保持轉換的時間取決于鼠標按下和釋放之間的時間間隔。該類控件類似于門鈴按鈕,按下按鈕后鈴聲開始響起,松開按鈕后鈴聲停止。
4、單擊時觸發
鼠標按下時狀態轉變為新值,不論鼠標是否釋放,按鈕立即恢復為原值。該類控件類似于儀器儀表上的功能按鈕,按一下后執行控件功能,并且控件會自動復位到初始狀態,等待下一次觸發。
5、釋放時觸發
鼠標按下時不會觸發,當鼠標在按鈕上釋放時才會觸發一次值改變,觸發完成后控件會立刻恢復到初始狀態;當鼠標在按鈕外的地方釋放時按鈕不會動作。和“單擊時觸發”相比,“釋放時觸發”會給用戶一些考慮時間,防止用戶的一些誤操作導致程序出現某些不可預期的錯誤。圖示效果請參考“單擊時觸發”。
6、保持觸發直到釋放
按鈕當按下并保持時改變值,并且在按鈕被釋放后保持這個改變的值被讀到一次。之后,它將返回到它的原值。比如值設為假的按鈕當被按下和保持時將變為真。在釋放之后,它將多輸出真一次,然后返回為假。
?
三、開發小Tipes
1、觸發動作不兼容局部變量
觸發動作與局部變量不兼容,當控件設置為按下時觸發、釋放時觸發和保持轉換直到觸發這三種機械動作時如果創建該控件的機械動作會導致VI斷線并報錯,將控件更改為轉換動作后才能使用局部變量。
?
2、觸發動作自動恢復初始值
觸發動作理論上都會自動恢復為初始值,但在開發的過程中需要將控件置于循環內部(一般置于該控件的值改變事件結構中)才能實現控件自動恢復為初始值。下面以一個單擊時觸發的控件為例給大家展示這個小技巧:
按鈕在循環外,未自動恢復初始值:
按鈕在循環內,自動恢復初始值:
3、機械動作與“值改變”事件
不同機械動作控件使用事件結構中的“值改變”事件時事件結構捕獲并響應的次數是不同的,其中“保持轉換直到釋放”和“保持觸發直到釋放”按鈕在完成一次操作時可以觸發兩次“值改變”事件,而其余四種機械動作只會讓事件結構捕獲并響應一次“值改變”事件。下面我們以一個簡單的程序實例來看看不同機械動作的控件,事件結構是如何去響應該控件的“值改變”事件的:
單擊時轉換: 釋放時轉換: 保持轉換直到釋放: 單擊時觸發:
釋放時觸發:
保持觸發直到釋放:
4、恢復按鈕至默認值
在實際開發過程中,我們往往需要在點擊控件后讓控件能恢復到默認狀態,觸發動作的三種類型控件可以將控件至于循環內部來實現恢復為默認狀態,那轉換動作的控件應該如何去恢復至默認值呢?其實使用調用節點來實現這個功能可以恢復任意控件的默認值,程序框圖如下:
5、機械動作范例
在LabVIEW的范例查找器中搜索“機械動作”,或者在范例查找器中的創建用戶界面>>常規中找到機械動作范例,可以學習和熟悉六種機械動作的使用。
以上就是有關LabVIEW中按鈕控件機械動作的全部內容啦,本文的示例代碼都比較簡單,感興趣的小伙伴可以參考文中的圖片和視頻自行編寫使用!
審核編輯:劉清
-
示波器
+關注
關注
113文章
6268瀏覽量
185389 -
LabVIEW
+關注
關注
1974文章
3656瀏覽量
324403 -
移動機器人
+關注
關注
2文章
764瀏覽量
33589 -
信號發生器
+關注
關注
28文章
1478瀏覽量
108841 -
按鈕
+關注
關注
0文章
134瀏覽量
12815 -
華穗科技
+關注
關注
1文章
12瀏覽量
117
原文標題:知識分享 | LabVIEW中按鈕控件的機械動作
文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論