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