劉 科,袁向陽,周曉林,李 玲,吳 華
(1.四川師范大學(xué),四川 成都 610066;2.中國民航飛行學(xué)院廣漢分院,四川 廣漢 618307)
Lab VIE W(laborator y virt ual instr u ment engineering workbench)實(shí)驗(yàn)室虛擬儀器開發(fā)平臺(tái)是一種用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語言[1-8]。Lab VIEW 提供了很多外觀與傳統(tǒng)儀器類似的控件以及用戶自定義控件,可以用來方便的創(chuàng)建用戶界面。在Lab VIEW中,用戶界面被稱為前面板,與前面板對(duì)應(yīng)的是程序框圖面板,前面板上的每一個(gè)控件都對(duì)應(yīng)于程序框圖中的一個(gè)對(duì)象(節(jié)點(diǎn)),在程序框圖中采用數(shù)據(jù)流編程方式,圖標(biāo)表示函數(shù),連線表示數(shù)據(jù)流方向。使用圖標(biāo)和連線,可以通過編程的方式對(duì)前面板上的對(duì)象進(jìn)行控制。
Lab VIE W程序被稱為 VI(virt ual instr ument),即虛擬儀器。Lab VIEW的核心概念就是“軟件即是儀器”,即虛擬儀器的概念。當(dāng)我們通過自定義個(gè)性化控件和修改前面板可以創(chuàng)造出美觀的各種仿真實(shí)驗(yàn)。
本實(shí)驗(yàn)系統(tǒng)在啟動(dòng)后將進(jìn)入登錄實(shí)驗(yàn)系統(tǒng)的畫面,要求用戶輸入正確的用戶名和密碼才能進(jìn)入實(shí)驗(yàn)系統(tǒng)界面,如圖1所示。當(dāng)用戶輸入的用戶名和密碼都正確無誤后,點(diǎn)擊登錄按鈕將進(jìn)入仿真實(shí)驗(yàn)系統(tǒng)界面,當(dāng)用戶名或密碼有誤時(shí),系統(tǒng)將彈出對(duì)話框提醒用戶;未注冊用戶可以單擊注冊新用戶按鈕注冊成為新用戶。如圖2所示。
圖1 登錄界面
圖2 注冊新用戶界面
在Lab VIEW中有個(gè)事件結(jié)構(gòu)可以用來響相應(yīng)用戶鼠標(biāo)點(diǎn)擊的事件,將各種用戶操作簡化為各種選擇按鈕,在事件結(jié)構(gòu)中分別定義各個(gè)事件按鈕處理的事件。仿真實(shí)驗(yàn)系統(tǒng)中通過點(diǎn)擊按鈕的方式打開相應(yīng)的實(shí)驗(yàn)內(nèi)容,事件結(jié)構(gòu)可以用來響相應(yīng)用戶操作的事件,同時(shí)可以通過控件引用、爾空間的label.text屬性獲得該控件的標(biāo)簽或標(biāo)題,如果用標(biāo)簽名命名需要打開的子vi的話,我們獲得的標(biāo)簽名稱,就是需要打開的子vi的名稱,再通過動(dòng)態(tài)調(diào)用子vi技術(shù)打開相應(yīng)的子vi,這樣不但可以避免一次將所有用到或用不到的vi全部裝載到內(nèi)存中從而占據(jù)內(nèi)存資源,還可以方便以后軟件的修改或更新。
筆者曾用Lab VIE W制作了“單臂電橋法電阻虛擬實(shí)驗(yàn)”,并在《大學(xué)物理實(shí)驗(yàn)》發(fā)表[9],在此基礎(chǔ)上,嘗試研制出了一系列的大學(xué)物理和中學(xué)物理虛擬仿真實(shí)驗(yàn),并建成物理仿真實(shí)驗(yàn)系統(tǒng)?!拔锢矸抡鎸?shí)驗(yàn)系統(tǒng)”界面如圖3所示。界面中有四個(gè)按鈕,其中兩個(gè)分別對(duì)應(yīng)“弦線駐波”或“李莎如圖實(shí)驗(yàn)”兩個(gè)實(shí)驗(yàn),當(dāng)用戶用鼠標(biāo)點(diǎn)擊相應(yīng)的按鈕時(shí),將打開對(duì)應(yīng)的實(shí)驗(yàn),另外兩個(gè)為“返回登陸界面”和“退出”按鈕。下面,我們以“李薩如圖實(shí)驗(yàn)”[10,11]仿真實(shí)驗(yàn)為例,詳細(xì)介紹仿真實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)過程。
圖3 仿真實(shí)驗(yàn)系統(tǒng)界面
本虛擬儀器通過單擊兩個(gè)獨(dú)立的波形選擇選項(xiàng)卡上的信號(hào)波名稱標(biāo)簽讓系統(tǒng)產(chǎn)生兩個(gè)相應(yīng)的獨(dú)立的模擬信號(hào)(x軸信號(hào)和y軸信號(hào)),并將產(chǎn)生的信號(hào)顯示在前面板的圖表控件中,并通過聲卡采集傳送到電腦揚(yáng)聲器產(chǎn)生聲音。產(chǎn)生的信號(hào)頻率可以分別通過粗調(diào)和細(xì)調(diào)頻率按鈕進(jìn)行調(diào)節(jié),并將信號(hào)頻率顯示在各自的前面板顯示控件上。該虛擬儀器的虛擬儀器面板上還y軸波形選擇按鈕組選擇y軸上可輸入的信號(hào)到另外一個(gè)圖標(biāo)顯示控件上。電源開關(guān)控制系統(tǒng)信號(hào)的產(chǎn)生與否以及兩個(gè)分別調(diào)節(jié)信號(hào)振幅的旋鈕,一個(gè)y軸信號(hào)頻率干擾強(qiáng)度滑動(dòng)桿。
1.4.1 聲音信號(hào)的產(chǎn)生
在Lab VIEW的編程-波形-模擬波形-波形生成目錄下有眾多的基本波形生成函數(shù)。在這里我們選擇的波形生成函數(shù)有正弦波形,方波波形,三角波形和鋸齒波形等四個(gè)函數(shù)。在函數(shù)選板中的編程/圖形與聲音/聲音/輸出下有配置聲音輸出函數(shù)和寫入聲音輸出函數(shù),利用這兩個(gè)函數(shù),并以聲卡作為數(shù)據(jù)采集卡便做成一個(gè)函數(shù)信號(hào)發(fā)生器。在開始播放聲音前應(yīng)先通過配置聲音輸出函數(shù)對(duì)聲卡進(jìn)行配置,配置聲卡后就可用寫入聲音輸出函數(shù)將波形數(shù)據(jù)通過聲卡播放出來,在這之前還可以通過設(shè)置聲音輸出音量來設(shè)置聲音的大小,當(dāng)播放完聲音后通過調(diào)用聲音輸出清零函數(shù)釋放內(nèi)存。
1.4.2 頻率的顯示
利用七段數(shù)碼顯示原理,以七個(gè)布爾控件組成的簇來顯示單個(gè)數(shù)字,見圖4。因?yàn)樵摯刂挥脕盹@示0到9的整數(shù),需要把數(shù)據(jù)輸入類型設(shè)為無符號(hào)整形,最大值設(shè)為9。通過條件結(jié)構(gòu)給其賦值,其代碼如圖5所示。
圖4 七段數(shù)碼顯示控件
圖5 七段數(shù)碼顯示控件條件結(jié)構(gòu)各分支代碼
單個(gè)數(shù)字的顯示已經(jīng)完成,把上面的任意一個(gè)條件結(jié)構(gòu)代碼封裝成一個(gè)子vi,命名為數(shù)字至簇轉(zhuǎn)換,以便在后面的頻率顯示程序編寫中使用。如圖6為頻率顯示程序代碼。
圖6 頻率顯示代碼
1.4.3 波形的選擇和調(diào)節(jié)
應(yīng)用選項(xiàng)卡控件創(chuàng)建四個(gè)子選項(xiàng)分別命名為“正弦波”、“三角波”、“鋸齒波”和“方波”,可通過條件結(jié)構(gòu)來響應(yīng)用戶的操作,當(dāng)用戶點(diǎn)擊相應(yīng)的波形按鈕便可生成相應(yīng)的信號(hào)類型。
信號(hào)波有頻率,振幅,相位等屬性,本試驗(yàn)涉及調(diào)節(jié)頻率和振幅,分別有三個(gè)自定義的數(shù)值輸入旋鈕,前兩個(gè)分別實(shí)現(xiàn)頻率的粗調(diào)和細(xì)調(diào),后一個(gè)為振幅的調(diào)節(jié)。
1.4.4 程序框圖的設(shè)計(jì)
程序框圖的最終代碼如圖7所示。
圖7 最終程序代碼
1.4.5 李薩如圖仿真實(shí)驗(yàn)的最終效果
至此,李薩如圖仿真實(shí)驗(yàn)的制作基本完成,運(yùn)行的結(jié)果如下。點(diǎn)擊前面板上的運(yùn)行按鈕時(shí),程序?qū)⒂删庉嫚顟B(tài)切換到運(yùn)行狀態(tài)。打開電源開關(guān),電源指示燈亮。當(dāng)調(diào)節(jié)頻率頻率和改變信號(hào)類型時(shí),右側(cè)會(huì)顯示出當(dāng)前信號(hào)的相應(yīng)的頻率和波形。圖8、9、10分別是李薩如圖形以及三角波和鋸齒波、三角波和鋸齒波疊加的結(jié)果。
圖8 李薩如圖形
圖9 三角波和鋸齒波
圖10 正弦波和鋸齒波
由Lab VIEW編寫出來的vi源文件只能在Lab VIEW的開發(fā)環(huán)境下被打開運(yùn)行,我們須把它生成在windows等平臺(tái)上能夠獨(dú)立運(yùn)行的可執(zhí)行文件。在Lab VIE W中有一個(gè)應(yīng)用程序生成工具:Lab VIEW application builder,該工具能夠生成獨(dú)立可執(zhí)行文件和安裝包。
將所有的vi與支持文件都添加到項(xiàng)目中并保存項(xiàng)目中的所有vi,確保項(xiàng)目中的所有vi都能正確執(zhí)行。完成好準(zhǔn)備工作后,在項(xiàng)目文件左側(cè)的樹目錄下的程序生成規(guī)范上右擊,選擇新建/應(yīng)用程序(exe),在彈出的對(duì)話框中輸入exe文件的各種信息,將所有的準(zhǔn)備做好后單擊生成按鈕,則可生成獨(dú)立的可執(zhí)行文件。
成功生成可執(zhí)行文件后,可以將可執(zhí)行文件和相關(guān)支持軟件(如Lab VIEW r un-ti me引擎或硬件驅(qū)動(dòng))打包在一起作為一個(gè)安裝程序發(fā)布。這樣可以避免讓用戶再單獨(dú)的安裝Lab VIEW r un-ti me引擎或硬件驅(qū)動(dòng)。因?yàn)?,Lab VIE W 中發(fā)布的可執(zhí)行文件只能在Lab VIEW r un-ti me引擎下運(yùn)行。
通過Lab VIEW中的自定義控件可以很方便地制作漂亮逼真的儀器外觀,還能夠根據(jù)用戶的愛好設(shè)置儀器界面,并將實(shí)驗(yàn)數(shù)據(jù)實(shí)時(shí)顯示在儀器上,省去了學(xué)生在課堂上進(jìn)行大量的實(shí)驗(yàn)數(shù)據(jù)處理步驟,提高了教學(xué)效率。經(jīng)過調(diào)試,程序運(yùn)行效果良好,可以確保系統(tǒng)滿足相關(guān)課程的實(shí)驗(yàn)要求。虛擬實(shí)驗(yàn)?zāi)転橹谱魑锢韺?shí)驗(yàn)課件提供巨大的方便,更重要的是,節(jié)省了購買硬件的成本。
[1]陳錫輝,張銀鴻.Lab VIEW8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007,7.
[2]楊振江,孫占彪,王曙梅,等.智能儀器與數(shù)據(jù)采集系統(tǒng)中的新器件及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2001,5.
[3]劉君華,賈惠芹,丁暉,等.虛擬儀器圖形化編程語言Lab VIEW教程[M].西安:西安電子科技大學(xué)出版社,2001,3:2-4.
[4]楊樂平,海濤,楊磊.Lab VIEW 程序設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2005.
[5]謝東波,高云,余成波.基于Lab VIEW的虛擬實(shí)驗(yàn)室研究[J].試驗(yàn)技術(shù)與試驗(yàn)機(jī),2007,3:40-43.
[6]張桐,陳國順,王正林.精通 Lab VIEW 程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008,12.
[7]阮奇楨.我和Lab VIEW[M].北京:北京航空航天大學(xué)出版社,2009,9.
[8]李斌,等.Lab VIEW在物理設(shè)計(jì)實(shí)驗(yàn)中應(yīng)用的探討[J].大學(xué)物理實(shí)驗(yàn),2012,13(3):84-87.
[9]劉科,周曉林,萬德志,等.基于Lab VIEW的大學(xué)物理虛擬實(shí)驗(yàn)設(shè)計(jì)[J].大學(xué)物理實(shí)驗(yàn),2011(6):81-81.
[10]潘學(xué)軍.大學(xué)物理實(shí)驗(yàn)[M].北京:電子工業(yè)出版社,2009,9.
[11]蘭明乾,李莎如.圖形軌跡變化的規(guī)律[J].四川文理學(xué)院學(xué)報(bào),2008(3):21-23.