2.3添加用戶子VI設計
LabVIEW中的子VI類似于編程語言中的子程序,通過構建和使用子VI能方便的實現(xiàn)LabVIEW的層次化和模塊化編程,把復雜的編程問題劃分成為多個簡單的任務,使程序結構變得更加清晰、層次更加分明、程序更加易讀、調試更加方便。一個子VI相當于一個程序,而子VI節(jié)點相當于子程序的調用語句,而不是子VI本身。子VI的控件和函數(shù)從調用該VI的程序框圖中接收數(shù)據(jù),并將數(shù)據(jù)返回至程序。用LabVIEW 語言開發(fā)程序時,可以和C語言一樣采用從頂向下的設計方法,用戶每創(chuàng)建一個VI程序,都可以將其作為上一級VI的子VI節(jié)點來調用,實現(xiàn)模塊化編程。[5]
在前面板添加一個“添加用戶”布爾按鈕,在后面板添加一個事件結構控制“添加用戶”的開始與停止。添加用戶程序中首先在桌面上創(chuàng)建一個空文本文件,前面板上添加用戶名和密碼輸入控件,使用創(chuàng)建數(shù)組函數(shù)將輸入的字符串改成數(shù)組。將數(shù)組連接到“寫入文本文件函數(shù)”文件接線端。再將其輸入創(chuàng)建的文本文件中。這里使用“打開/創(chuàng)建/替換文件函數(shù)”和“設置文件位置”函數(shù),在打開文件函數(shù)右端的文件路徑接線端創(chuàng)建常量,將創(chuàng)建的文本文件全路徑輸入進去;將操作創(chuàng)建成“create”常量;將權限創(chuàng)建成“write”常量。通過事件結構和while循環(huán)控制“添加用戶”的開始與停止。
將“添加用戶”設置為子VI時點開前面板右上角的圖表編輯器,刪除原有圖標并通過文本編輯輸入漢字“添加用戶”。接著就是設置連接器端口,連接器作為一個編程接口,為子VI定義輸入、輸出端口數(shù)和這些端口的接線端類型。這些輸入輸出端口相當于編程語言中的形式參數(shù)和結果返回語句。當調用VI節(jié)點是,子VI輸入端子接收從外部控件或其他對象傳輸?shù)礁鱾端子的數(shù)據(jù),經子VI內部處理后又從子VI輸出端子輸出結果,傳送給子VI 外部賢淑空間,或作為輸入數(shù)據(jù)傳送給后面的程序。一般情況下,VI只有設置了連接器端口才能做為子VI使用,如果不對其進行設置,則調用的只是一個獨立的VI程序,不能改變其輸入參數(shù)也不能顯示或傳輸其運行結果。如果需要對子VI節(jié)點進行輸入輸出,那么就需要在連接器面板中有相應的連線端子。[8]可以通過選擇VI的端子數(shù)并為每個端子指定對應的前面板控件或指示器以定義連接器。連接器的設置分兩個步驟:一是要創(chuàng)建連接器端口,包括定義端口的數(shù)目和排列形式;二是要定義連接器端口和控件及指示器的關聯(lián)關系,包括建立連接和定義接線端類型。這里我需要兩個輸入端口,選擇正確的模式,然后通過查看—工具選板,點擊“正在連線”選項,鼠標轉化為連線狀態(tài)。左鍵單擊選中的控件,控件周圍會出現(xiàn)虛線框,表示控件已被選中。把鼠標移至連接器圖標,左鍵單擊其中一個端口,此時端口由白色變?yōu)槌壬,表示連接器端口與控件已建立起連接。如果白色端口變?yōu)楹谏驔]變色則表示連接器與控件關聯(lián)失敗,需要再次進行關聯(lián)。[6]程序框圖前面板如下圖2-9所示。
1.040.jpg (16.24 KB, 下載次數(shù): 222)
下載附件
2017-8-12 19:50 上傳
圖2-9 “添加用戶”前面板
設置文件位置函數(shù)用于指定數(shù)據(jù)寫入的位置。自端子指定文件標記,即數(shù)據(jù)開始存放的位置。當自端子創(chuàng)建常量時,顯示的是一個枚舉常量,當選擇start項表示在文件起始處設置文件標記,當選擇end項時表示在文件末尾處設置文件標記,當選擇current項表示在當前文件標記處設置文件標記。偏移量用于指定文件標記的位置與自指定位置的距離。VI多次運行后在進行數(shù)據(jù)存儲時,通常會把上一次運行時的數(shù)據(jù)覆蓋,為防止數(shù)據(jù)丟失,需要把每次運行VI時產生的數(shù)據(jù)資料添加到原數(shù)據(jù)資料上去,這就要使用設置文件位置函數(shù)。[4]這里的自端子創(chuàng)建為start,程序框圖后面板如下圖2-10所示。
1.041.jpg (35.26 KB, 下載次數(shù): 200)
下載附件
2017-8-12 20:03 上傳
圖2-10 “添加用戶”后面板
2.4 讀取用戶程序設計
這里是為了讀取存入文本文件中的新用戶名與新密碼,將其與輸入的用戶名和密碼進行核對。這里首先選擇“打開創(chuàng)建替換文件函數(shù)”,在文件路徑接線端創(chuàng)建路徑常量輸入創(chuàng)建得文本文件的全路徑;將操作接線端常量創(chuàng)建為“open”;將權限接線端常量創(chuàng)建為“read-only”。將其與“讀取文本文件函數(shù)”連接用來讀取文件,計數(shù)端子可以指定函數(shù)讀取的字符串或行數(shù)的最大值。[10]如計數(shù)端子輸入小于1,讀取文本文件函數(shù)將讀取整個文件。很多函數(shù)節(jié)點都有錯誤輸出和錯誤輸入功能,其數(shù)據(jù)類型為簇,它有三個作用:(1)用于檢查錯誤信息,如果一個節(jié)點發(fā)生錯誤,該節(jié)點的錯誤輸出就會返回一個錯誤信息。這個錯誤信息傳遞到下一個節(jié)點那個節(jié)點就不運行,只是將錯誤信息繼續(xù)傳遞下去。 (2)通過將一個節(jié)點的錯誤輸出與另一個節(jié)點的錯誤輸入連接可以指定程序執(zhí)行順序。起到一個數(shù)據(jù)流的作用。(3)錯誤輸出端輸出的簇信息可以作為其他事件的觸發(fā)事件。[1]這里運行時是整列整列讀取的,我們這里要按行讀取,要右擊“讀取文本文件函數(shù)”,選中“讀取行”選項。同時,連接上“關閉文件”函數(shù),用來關閉讀取文件。然后,將輸出的文本創(chuàng)建成數(shù)組,這里采用“創(chuàng)建數(shù)組”函數(shù),然后將輸出端通過“索引數(shù)組”來分離創(chuàng)建的數(shù)組的用戶名和密碼。這里的程序設計如下圖2-11所示。
1.042.jpg (20.24 KB, 下載次數(shù): 192)
下載附件
2017-8-12 20:03 上傳
圖2-11 讀取文件程序設計框圖
程序設計最后我添加了一個數(shù)值顯示控件用于顯示登錄次數(shù),用戶每登錄一次顯示控件中的數(shù)值就會加1,這里采用加1函數(shù)用于給初始次數(shù)加1,否則會從0開始,程序設計如下圖2-12所示。
1.043.jpg (8.78 KB, 下載次數(shù): 190)
下載附件
2017-8-12 19:50 上傳
1.044.jpg (8.99 KB, 下載次數(shù): 198)
下載附件
2017-8-12 19:50 上傳
a) 登錄次數(shù)前面板 b)登錄次數(shù)后面板設計
圖2-12 登錄次數(shù)程序設計
2.5 修改密碼子VI程序設計
當用戶遺忘了登錄密碼時,這里設計的VI主要是對添加的新用戶進行密碼更改。兩次輸入密碼,首先核對兩次輸入的密碼是否相同,若是不同則輸出“兩次密碼輸入不一致,請重新輸入”,接入單按鈕對話框,跳出顯示。若是輸入相同則通過讀取文本程序將文本文件中的用戶數(shù)據(jù)提取出來創(chuàng)建成數(shù)組,同時新輸入的用戶名和密碼創(chuàng)建成數(shù)組,接著運用“替換數(shù)組子集”將新輸入的數(shù)據(jù)替換文本文件中的數(shù)據(jù)。輸出的數(shù)組運用“索引數(shù)組”函數(shù)索引成子數(shù)組,接著通過“寫入文本文件函數(shù)”、“設置文件位置”將修改的密碼存儲到文本文件中。完成后將字符串常量“密碼修改成功,請確認”輸入到單按鈕對話框中。這里同樣用while循環(huán)結構和事件結構來控制程序的開始與退出,程序框圖設計如下圖2-13和圖2-14所示。
1.045.jpg (49.57 KB, 下載次數(shù): 209)
下載附件
2017-8-12 19:50 上傳
圖2-13 修改密碼程序設計后面板
1.046.jpg (9.97 KB, 下載次數(shù): 184)
下載附件
2017-8-12 19:50 上傳
圖2-14 修改密碼程序設計前面板
第3章 課題研究運行結果的分析
3.1 課題研究的可行性
3.1.1 各部分程序的連接
這里是將各部分程序連接起來,首先將讀取文件程序與用戶名和密碼核對程序連接,將用戶名輸入控件和讀取文件中的用戶名對比,對比函數(shù)接入條件函數(shù)的分支選擇器:1、如果不同則進入“假”分支,然后將輸入的用戶名與設定的用戶名進行核對,如果不同則輸入“用戶名輸入錯誤,請重新輸入”;相同則對密碼進行核對,如果錯誤則輸出密碼輸入錯誤提示,正確則輸出登錄成功提示。2、如果相同則進入密碼核對程序,將輸入的密碼與在文本文件中讀取出來的密碼對比,若相同則顯示登錄成功的提示,如果不同則輸出密碼輸入錯誤提示。其次添加事件分支,在新事件分支中將子VI“添加用戶”加入進去,這里通過函數(shù)選板上“選擇VI”來添加,將添加用戶按鈕加入進去用來控制子VI的運行。
該畢業(yè)設計運行程序時首先進入循環(huán)結構開始對系統(tǒng)循環(huán)進行計數(shù);然后開始執(zhí)行事件結構“0”,即登錄事件。先對輸入的用戶名進行核對,如果輸入錯誤則在登錄結果的字符串顯示控件中顯示“用戶名輸入錯誤,請重新輸入”;輸入正確即進行密碼核對,輸入錯誤則在登錄結果中顯示“密碼輸入錯誤,請重新輸入”,同時圓形指示燈不亮。若輸入正確則在登錄結果中顯示“登陸成功!”“歡迎進入!”兩個字符串。密碼登錄系統(tǒng)設計總體框圖前面板和后面板如下圖3-1、圖3-2和圖3-3所示。
1.047.jpg (39.27 KB, 下載次數(shù): 228)
下載附件
2017-8-12 19:50 上傳
圖3-1 系統(tǒng)總體程序事件“0”
圖3-2 系統(tǒng)總體程序事件“1”
1.049.jpg (23.93 KB, 下載次數(shù): 191)
下載附件
2017-8-12 19:50 上傳
圖3-3 登錄系統(tǒng)前面板
3.2 課題研究運行分析
當用戶名輸入錯誤時,系統(tǒng)程序運行輸出用戶名輸入錯誤的提示,這里的流程框圖如下圖3-4所示。
圖3-4 用戶名輸出錯誤流程圖
用戶名輸入錯誤前面板如下圖,如圖顯示,用戶名輸入為一個漢字,占用字節(jié)長度為2,圓形指示燈顯示為“滅”提示輸入錯誤,登錄結果也輸出錯誤提示如圖3-5所示。
1.057.jpg (12.15 KB, 下載次數(shù): 199)
下載附件
2017-8-12 19:50 上傳
圖3-5 用戶名輸入錯誤程序前面板
當密碼輸入錯誤時,系統(tǒng)程序運行輸出密碼輸入錯誤的提示,這里的流程框圖如下圖3-6所示。
圖3-6 密碼輸入錯誤流程圖
密碼輸入錯誤前面板如下圖a),密碼輸入4個字符,占用長度顯示為4,圓形指示燈顯示為“滅”來提醒用戶,登錄結果中輸出密碼輸入錯誤提示。當用戶名和密碼都核對正確后,前面板如下圖b),登錄結果中顯示登錄正確的提示,同時圓形指示燈變亮提示登陸成功,如圖3-7所示。
1.065.jpg (7.86 KB, 下載次數(shù): 189)
下載附件
2017-8-12 19:50 上傳
1.066.jpg (8.27 KB, 下載次數(shù): 197)
下載附件
2017-8-12 19:50 上傳
a) 密碼錯誤 b)登錄成功
圖3-7 密碼輸入錯誤和登陸成功前面板
下面我們進行添加用戶操作,首先點擊“添加用戶”按鈕,然后會彈出子VI的前面板,我們輸入用戶名“許文華”和密碼“123456@xwh”,點擊確定就會將用戶名和密碼寫入文本文件中,接著點擊取消退出子VI系統(tǒng)。然后在登錄界面輸入用戶名和密碼就能登錄成功,前面板如下圖3-8所示。
1.067.jpg (10.61 KB, 下載次數(shù): 161)
下載附件
2017-8-12 19:50 上傳
圖3-8 添加用戶后登錄界面
結論與展望
通過本次畢業(yè)設計,我對LabVIEW 的軟件設計有了更深的了解。由于平時上課大家都是學習理論,沒有實際設計系統(tǒng)的經驗,雖然上課的時候老師說過許多關于LabVIEW 的應用,也有過LabVIEW 的實驗課程,但除此之外我們課后幾乎沒有實際接觸過、應用過這個軟件,對它完全不熟悉,剛開始拿到畢業(yè)設計題目時并不知道該怎么做。但是通過對LabVIEW 課本的詳細瀏覽以及對有關LabVIEW 的參考文獻的查閱,我終于把畢業(yè)設計做出來了,我發(fā)現(xiàn)LabVIEW 軟件非常的簡便實用。通過這次畢業(yè)設計我學會了虛擬儀器設計的基本步驟和基本方法,提高了自己的動手能力,對此我非常高興,總之這次畢業(yè)設計中我受益匪淺。
但是想要更好的使用LabVIEW ,我還需要更加熟悉與練習LabVIEW 的高級編程,例如對數(shù)據(jù)采集的配置,數(shù)據(jù)庫的創(chuàng)建及連接,LabVIEW 的網絡通信以及數(shù)據(jù)庫的管理等等。LabVIEW 在數(shù)據(jù)采集方面做得尤為成功,而采集到的大量信息需要進行保存與讀取,所以一定要對LabVIEW 熟練操作,以及網絡讀取,未來社會是互聯(lián)網時代,數(shù)據(jù)采集與網絡傳輸為遠程測控提供重要手段,要想在未來測控界有所發(fā)展,掌握好LabVIEW 是必不可少的。
通過最近一段時間對登錄系統(tǒng)整個程序的研究和分析,自己已經獲得了相當大的收獲,程序中大量運用事件結構,屬性節(jié)點和數(shù)組函數(shù),結果使得實現(xiàn)的功能很強大,結構設計得也很美觀,給人很大興趣和激勵。看完這個大程序,自己也認識到以后在設計龐大的程序時,要先設計好框架,清楚各個程序之間的邏輯關系,再添加具體的功能,我也看到自己在使用數(shù)組函數(shù)的時候很生疏,以后要多練習。
看到自己能夠設計出和平時用的一樣的登錄系統(tǒng),心里甚是興奮,如果自己能夠完全掌握屬性節(jié)點,調用節(jié)點,數(shù)據(jù)庫的使用,隊列和狀態(tài)圖,那么我將能設計出更強功能的應用程序,自己將對LabVIEW 語言產生更濃厚的興趣。加油,爭取下一次干的更漂亮。
本次設計的不足主要是未創(chuàng)建關于數(shù)據(jù)庫的設計,數(shù)據(jù)庫的建立是通過Microsoft sql server來創(chuàng)建,由于Microsoft sql server安裝失敗無法應用,課題的完善方向主要是數(shù)據(jù)庫方向。密碼登錄系統(tǒng)設計完成可以嵌入其他各種軟件中應用十分廣泛。
密碼登錄系統(tǒng)的進一步設計將會使其用戶數(shù)據(jù)的存儲,用戶數(shù)據(jù)的改變和添加用戶數(shù)據(jù)以及數(shù)據(jù)庫的管理上更加實用方便。系統(tǒng)設計完善后嵌入其他應用程序中可以對其他程序實行密碼登錄,防止用戶信息數(shù)據(jù)的泄露,保護用戶安全使用程序。
致謝
畢業(yè)設計的過程中,我遇到了不少的難題,但最終我還是戰(zhàn)勝難題,取得了成功這很大一部分都要歸功于指導老師馬曉瑜和同學們。要是沒有老師的指導和同學之間的相互交流與學習,我的畢業(yè)設計不會做到這種程度。在此,我向我的指導老師和同學們致以感謝,同時也感謝學校給我們提供了這樣良好的實驗平臺和實踐機會。
作者:許鳴
2017年6月8
參考文獻
[1]李洪剛,張素萍.基于單片機和LabVIEW 的多路數(shù)據(jù)采集系統(tǒng)設計[J].國外電子測量技術,2014,33(4):62-67
[2]王英紅,秦化渤,閆芳,康偉.LabVIEW 虛擬儀器開發(fā)平臺及其應用分析[J].遼寧:遼寧工學院學報,2004,24(5):16-18
[3]周鵬,許鋼,馬曉瑜,汪石農,張明艷編著.精通LabVIEW 信號處理[M].北京:清華大學出版社,2013.
[4]孫秋野,柳昂,王云爽編著.LabVIEW 8.5快速入門與提高[M].西安:西安交通大學出版社,2009.
[5]楊樂平.LabVIEW 程序設計應用[M].北京:電子工業(yè)出版社,2001.
[6]李冰.虛擬儀器技術的研究[D].大慶:大慶石油學院,2005.
[7]張毅剛.虛擬儀器技術介紹[J].國外電子測量技術,2006,25(6):1-6
[8]李巍.LabVIEW 實現(xiàn)的小波變換及其在濾波中的應用[J].前沿技術,2010,29(3)
[9]阮奇楨.我和LabVIEW (第二版)[M].北京:北京航空航天大學出版社,2012.
[10]陳國順,張桐,郭陽寬等.精通LabVIEW 程序設計第二版[M].北京:電子工業(yè)出版社,2012.
[11]周求湛,錢求鴻.虛擬儀器與LabVIEW 7 Express程序設計[M].北京:北京航空航天大學出版社,2004.
[12]鄭對元.精通LabVIEW 虛擬儀器程序設計[M].北京:清華大學出版社,2012.
[13]Gary Johnson,Richard jennings.LabVIEW graphical programming[M].McGraw-Hill Professional Publishing,2006.
[14]Jeffrey Travis.LabVIEW for everyone[M].Prentice Hall PTR,2006.
[15]Rick Bitter,Taqi Mohiuddin,Matt Nawrock.LabVIEW advanced programming techniques[M].CRC press,2004.
附 錄
附錄A外文文獻及譯文:
LabVIEW graphical programming
National Instruments LabVIEW:A Lab Automation and Measurement Programming Environment, National Instruments' LabVIEW is a graphical programming language that is rooted in automated control and data collection.Its graphical representation, similar to the process flow diagram,provides scientists and engineers with an intuitive programming environment that has become a common programming environment in the past 20 years of maturity.LabVIEW has several key features that make it a good choice in an automated environment, including turnkey implementations of simple network communications, general purpose communication protocols (RS232, GPIB, etc.), powerful tools for process control and data fitting Set, fast and easy user interface building and efficient code execution environment. [13]We discuss the advantages of the language and provide an in-house sample application suite for integrating and controlling the automation platform.
NI LabVIEW Background: LabVIEW,which represents a laboratory virtual instrument engineering workbench, was the first graphical programming language published by National Instruments (Austin, TX) in 1986. LabVIEW implements a data flow paradigm in which the code is not written, but rather a program that draws or represents a program that is similar to the flow chart to execute the connector lines that connect the following nodes together. Each function or program is stored as a virtual instrument (VI) with three main components: the front panel is essentially a form containing input and controls,and can be displayed at run time,and its code is graphically edited and represented by a block diagram,And the connector pane, when the VI is embedded as a child VI, it acts as a VI interface.
NI LabVIEW as a platform for automation and instrumentation:Our experience in creating desktop and integrated automation systems has proven that our choice of LabVIEW is an appropriate tool.LabVIEW can quickly develop feature-rich applications for desktop applications and larger integrated systems.On many occasions,we have found that project requirements are misinterpreted or changed with new measurement methods or new detection methods. [14]It has several special features that make the language a useful automated environment in creating application controls,instrumentation integration,management processes, and data acquisition,etc.:
Turnkey engineering measurement and control functions:LabVIEW was originally developed for senior scientists and engineers.This language includes a full set of rich process control and data analysis capabilities, as well as COM, NET and shared DLL support.In addition,turnkey solutions can be provided for various communication protocols including RS232, GPIB and TCP / IP.The control structure, such as the timing while loop,allows synchronization and timing data acquisition from various hardware interfaces such as PCI, USB and PXI. The following are the same as the "
DataSocket technology and VI servers:Deploying integrated systems using multiple control computers requires automated control applications to communicate remotely with instrument drivers that exist on remote computers,seamlessly by enabling technologies such as VI servers and DSTP (Data Socket Mobility Protocol) Network communication, LabVIEW supports distributed architecture.DSTP is an application layer protocol similar to Transmission Control Protocol / Internet Association (TCP / IP) HTTP.Data sockets allow basic read and write functions between remote computers and simple transfer of data.With the VI server technology,you can make the virtual instrument stored on the remote computer as if it were stored on the local computer as a function call.You can configure Datasockets and VI servers to control access.
Simple user interface (UI) implementation:In addition to the common interface controls (such as text boxes, menu loops and checkboxes),LabVIEW also provides a rich set of UI controls (switches, LEDs, meters, array control Etc.) related to laboratory equipment.These originate from LabVIEW S's laboratory roots,helping to develop interfaces that allow scientists to clearly understand the state of a system. LabVIEW supports the concept of user interfaces, including sub-panels (similar to multi-document interfaces),split bars,and XControls (similar to OCX controls).
Multithreaded programming environment:LabVIEW 's inherent parallel environment is extremely useful in controlling lab equipment.Functions can be performed by multiple continuous While loops,one of which is to quickly acquire data and the other to process at a slower rate data.Implementing such a paradigm in other languages requires triggering a separate thread function for each process and developing logic to manage the synchronization. By timing the while loop,multiple independent while loops can be easily synchronized in an ideal period and stage of the process.LabVIEW allows multiple instances of the same function to be called,each of which retains its own data space.For example,we can drag and drop many instances of the Mean VI onto the block diagram,and they will run in parallel with each other.In order to synchronize or execute the control flow in a data flow environment, LabVIEW also provides functions such as queues, semaphores,and notification functions.
The emergence of reconfigurable logic virtual instruments based on virtual instrumentation is a revolution in the history of instrument development.It takes full advantage of the latest computer technology to implement and expand the functions of the instrument,with a computer screen can simply simulate the adjustment of most of the instrument control panel,in a variety of needs to express and output test results.[15] with the computer software to achieve most of the signal analysis and processing, to complete most of the control and detection functions.Users through the application of the general general-purpose computer and functional module hardware together, through a friendly interface to operate the computer,as in the operation of their own definition of their own design of a single instrument can be completed on the measurement of the collection, analysis,Control, display, data storage and so on.Virtual instruments are more traditional than traditional instruments:
(1) integration of the computer's powerful hardware resources,breaking the traditional instruments in the data processing,display,storage and other restrictions,greatly enhanced the traditional instrument function.
(2) the use of computer-rich software resources,to achieve part of the instrument hardware software,saving material resources, increased system flexibility.Through the software technology and the corresponding numerical algorithm, real-time,directly to the test data for a variety of analysis and processing,through the graphical user interface technology, truly friendly interface,human-computer interaction.
(3) virtual instrument hardware and software are open,modular,reusable and interchangeable and so on.Therefore,the user according to their own needs,the choice of different manufacturers of products, the instrument system development more flexible, more efficient,shorten the system set up time.The traditional instrument is based on fixed hardware and software resources based on the specific system,which makes the system functions and applications defined by the manufacturer.These instruments are complex systems,so they become expensive and difficult to operate and manage.The widespread use of personal computers in many fields of science and technology makes it an ideal hardware and software platform for the execution of measuring instruments.By adding a simple data acquisition system,the personal computer can simulate any instrument.Because they do not have possession and access to hardware and software resources alone,the instruments produced in this way are called virtual instruments.Different instruments can be programmed in the same hardware as long as the software is reprogrammed. Virtual instrumentation presents a number of advantages, the most important of which is due to the reusability of hardware and software resources to reduce costs.These features and the continuous development of virtual instruments and personal computer price cuts make virtual instruments a valuable alternative to traditional instruments.However,there are two main factors that limit the application of virtual instruments.On the one hand, the reduction in data capture will slow down,because the general-purpose computer commonly used operating system is not for real-time applications. On the other hand,the data acquisition system is not an application-oriented system but a common system.Therefore, the focus is on the use of general-purpose hardware replacement reconfigurable data acquisition system to enhance the virtual instrument.
美國國家儀器公司的LabVIEW :一種實驗室自動化和測量的編程環(huán)境,美國國家儀器公司的LabVIEW 是一種圖形化編程語言,它的根源在于自動化控制和數(shù)據(jù)采集。其圖形化的代表性,類似于過程流程圖,它為科學家和工程師提供一個直觀的編程環(huán)境,在過去20年中成熟歷程中,這個語言已經成為一個通用的編程環(huán)境。 LabVIEW 具有幾個關鍵功能,使其成為自動化環(huán)境中的不錯選擇,這些包括簡單的網絡通信,通用通信協(xié)議(RS232,GPIB等)的交鑰匙實現(xiàn),用于過程控制和數(shù)據(jù)擬合的強大的工具集,快速簡便的用戶界面構建和高效的代碼執(zhí)行環(huán)境。[13]我們討論語言的優(yōu)點,并提供一個內部編寫的示例應用程序套件,用于集成和控制自動化平臺。
NI LabVIEW 背景:LabVIEW ,其代表實驗室虛擬儀器工程工作臺是1986年由National Instruments(Austin,TX)首次發(fā)布的圖形編程語言。LabVIEW 中實現(xiàn)了一個數(shù)據(jù)流范式,其中的代碼不是寫入,而是繪制或表示與流程圖圖形相似的程序執(zhí)行將下面節(jié)點連接在一起的連接器線。每個功能或程序都存儲為具有三個主要組件的虛擬儀器(VI):前面板本質上是一個包含輸入和控件的表單,并且可以在運行時顯示,其代碼以圖形方式編輯和表示的框圖,以及連接器窗格,當VI嵌入作為子VI時,其作為VI的接口。
NI LabVIEW 作為自動化和儀器儀表的一個平臺:我們創(chuàng)造臺式儀表和綜合自動化系統(tǒng)的經驗已驗證了我們選擇的LabVIEW 是一種適當?shù)墓ぞ摺abVIEW 可以快速開發(fā)適用于臺式應用和較大集成系統(tǒng)的功能豐富的應用。在很多場合,我們發(fā)現(xiàn)項目要求會被錯誤的定義或者隨著新的測量方法或新的檢測方法的發(fā)展而改變。[14]它有幾個特別的特點使該語言成為一個有用的自動化的環(huán)境在創(chuàng)建應用控制,儀器儀表整合,管理流程,和數(shù)據(jù)采集等方面:
交鑰匙工程的測量和控制功能:LabVIEW 最初是為高級科學家和工程師開發(fā)的。這種語言包括一整套豐富的過程控制和數(shù)據(jù)分析功能,以及COM,NET和共享DLL的支持。除此之外,可為包括RS232,GPIB和TCP / IP在內的各種通信協(xié)議提供交鑰匙解決方案?刂平Y構如定時While循環(huán),允許從各種硬件接口(如PCI,USB和PXI)進行同步和定時數(shù)據(jù)采集。
DataSocket技術及VI服務器:使用多個控制計算機部署集成系統(tǒng)需要自動化控制應用程序與遠程計算機上存在的儀器驅動程序進行遠程通信,憑借有利的技術如VI服務器和DSTP(數(shù)據(jù)插口調動協(xié)議)實現(xiàn)無縫網絡通信,LabVIEW 支持分布式架構。DSTP是一個類似于基于傳輸控制協(xié)議/網際協(xié)(TCP/IP)HTTP的應用層協(xié)議。Data sockets允許遠程計算機之間的基本讀及寫的功能和簡單傳輸數(shù)據(jù)。通過VI服務器技術,可以使存放在遠程計算機上的虛擬儀器就像是存放在本地計算機上一樣進行功能調用。可以將Datasockets和VI服務器配置為控制訪問權限。
簡單的用戶界面(UI)的實現(xiàn):除了常見的界面控件(如文本框,菜單環(huán)和復選框)之外,LabVIEW 還提供了一整套豐富的UI控件(開關,發(fā)光二極管,儀表,數(shù)組控制等)與實驗室設備相關。這些起源于LabVIEW S的實驗室根源,有助于開發(fā)接口,讓科學家們清楚地了解一個系統(tǒng)的狀態(tài)。LsbVIEW支持用戶界面的概念,包括子面板(類似于多文檔界面),分割條和XControls(類似于OCX控件)。
多線程編程環(huán)境:LabVIEW 的固有并行環(huán)境在控制實驗室設備上是極為有益的.功能可以由多個連續(xù)的While循環(huán),其中一個循環(huán)是迅速采集數(shù)據(jù),另一個以循環(huán)以一個比較慢的速度處理數(shù)據(jù)。在其他語言實施這樣一個范式需要為每個進程觸發(fā)一個獨立的線程函數(shù),并開發(fā)邏輯來管理同步。通過定時while循環(huán),多個獨立的while循環(huán)可以很容易地在一個理想的時期和階段進行同步的過程。LabVIEW 允許調用相同功能的多個實例,每個實例保留自己的數(shù)據(jù)空間。例如,我們可以將Mean VI的許多實例拖放到框圖上,并且它們將彼此并行運行。為了在數(shù)據(jù)流環(huán)境中同步或執(zhí)行控制流程,LabVIEW 還提供了諸如隊列,信號量和通知功能等功能。
基于虛擬儀器的可重構邏輯虛擬儀器的出現(xiàn)是測量儀器發(fā)展歷史上的一場革命。它充分利用最新的計算機技術來實現(xiàn)和擴展儀器的功能,用計算機屏幕可以簡單地模擬大多數(shù)儀器的調節(jié)控制面板,以各種需要的形式表達并且輸出檢測結果。[15]用計算機軟件實現(xiàn)大部分信號的分析和處理,完成大多數(shù)控制和檢測功能。用戶通過應用程序將一般的通用計算機與功能化模塊硬件結合起來,通過友好的界面來操作計算機,就像在操作自己定義,自己設計的單個儀器,可完成對被測量的采集、分析、判斷、控制、顯示、數(shù)據(jù)存儲等。虛擬儀器較傳統(tǒng)儀器的優(yōu)點:
(1)融合計算機強大的硬件資源,突破了傳統(tǒng)儀器在數(shù)據(jù)處理,顯示,存儲等方面的限制,大大增強了傳統(tǒng)儀器的功能。
- 利用計算機豐富的軟件資源,實現(xiàn)了部分儀器硬件的軟件化,節(jié)省了物 質資源,增加了系統(tǒng)靈活性。通過軟件技術和相應數(shù)值算法,實時,直接地對測試數(shù)據(jù)進行各種分析與處理,通過圖形用戶界面技術,真正做到界面友好、人機交互。
(3)虛擬儀器的硬件和軟件都具有開放性,模塊化,可重復使用及互換性等特點。因此,用戶可根據(jù)自己的需要,選用不同廠家的產品,使儀器系統(tǒng)的開發(fā)更為靈活,效率更高,縮短系統(tǒng)組建時間。傳統(tǒng)的儀器是以固定的硬件和軟件資源為基礎的specific 系統(tǒng),這使得系統(tǒng)的功能和應用程序由制造商定義。這些儀器都是復雜的系統(tǒng),因此它們變得昂貴而且難以操作和管理。個人電腦在許多科技領域的廣泛應用使其為測量儀器的執(zhí)行搭建了一個理想的硬件和軟件平臺,通過增加一個簡單的數(shù)據(jù)采集系統(tǒng),個人計算機可以仿真任何儀器。因為它們沒有獨自占有和訪問硬件和軟件資源,所以以這種方式產生的儀器被稱為虛擬儀器。不同的儀器只要對該軟件重新編程就可以在同一硬件中實現(xiàn)。虛擬儀器呈現(xiàn)了大量的優(yōu)勢,其中最重要的就是由于硬件和軟件資源的重用性降低了成本。上述特點及虛擬儀器的不斷發(fā)展和個人電腦降價使虛擬儀器成為傳統(tǒng)儀器的一個有價值的替代。 然而,也有兩個主要因素限制了虛擬儀器的應用。一方面,數(shù)據(jù)捕獲的減少將放緩速度,因為一般用途的電腦普遍常用的操作系統(tǒng)并不面向實時應用。 另一方面,數(shù)據(jù)采集系統(tǒng)不是應用導向系統(tǒng)而是一個通用的系統(tǒng)。因此重點是由通用硬件更換可重構數(shù)據(jù)采集系統(tǒng)來加強虛擬儀器。
附錄B主要參考文獻的題錄及摘要
[1]李洪剛,張素萍.基于單片機和LabVIEW 的多路數(shù)據(jù)采集系統(tǒng)設計[J].國外電子測量技術,2014,33(4):62-67
摘要:以8位高速、低功耗微控制器STC12C5A60S2為硬件控制核心,以LabVIEW 2012為上位機軟件開發(fā)平臺,設計了一個多路數(shù)據(jù)采集系統(tǒng)。由下位機單片機對多路模擬信號量進行數(shù)據(jù)采集,通過串口將采集的模擬量信息上傳到上位機,上位機LabVIEW 對采集的數(shù)據(jù)進行存儲、顯示及處理、分析,實現(xiàn)了多路模擬量的實時監(jiān)測。經實際驗證,該系統(tǒng)運行情況良好。該系統(tǒng)設計具有較強的通用性,稍加修改即可應用到其他實際系統(tǒng)設計中,具有一定的參考價值和實用性。
[2]王英紅,秦化渤,閆芳,康偉.LabVIEW 虛擬儀器開發(fā)平臺及其應用分析[J].遼寧:遼寧工學院學報,2004,24(5):16-18
摘要:闡述了LabVIEW 、虛擬儀器測試技術、LabVIEW FPGA預展系統(tǒng)及其特點,對LabVIEW 虛擬儀器開發(fā)平臺的各種優(yōu)點及其在實際中的應用進行了研究和分析,以便有效地豐富和完善LabVIEW 虛擬儀器開發(fā)平臺,進一步開發(fā)和探索這一優(yōu)秀的開放式開發(fā)平臺的應用,使之更加廣泛地應用于社會生活的各個領域。
[3]周鵬,許鋼,馬曉瑜,汪石農,張明艷編著.精通LabVIEW 信號處理[M].北京:清華大學出版社,2013.
摘要:周鵬、許鋼、馬曉瑜、汪石農、張明艷編著的《精通LabVIEW 信號處理》主要講述LabVIEW 在電子信息技術尤其是在信號處理方面的應用。LabVIEW 除了可以使用戶獨立地完成電子信息類諸如模擬電路、數(shù)字電路等專業(yè)基礎課和專業(yè)課的計算和實驗學習外,還可以與信號與系統(tǒng)、通信原理、數(shù)字信號處理、數(shù)字圖像處理等課程很好地結合,甚至完成電子信息類、測控類專業(yè)的綜合大實驗或畢業(yè)設計等任務,加深對抽象專業(yè)知識的直觀理解,培養(yǎng)分析問題和解決問題的能力。
[4]孫秋野,柳昂,王云爽編著.LabVIEW 8.5快速入門與提高[M].西安:西安交通大學出版社,2009.
摘要:《LabVIEW 8.5快速入門與提高》從入門的角度循序漸進地講解了LabVIEW 8.5的基本應用技術,通過理論與實例相結合的方式,深入淺出地介紹了LabVIEW 8.5的使用方法和技巧。大量詳實的例子都給出了具體的創(chuàng)建過程和程序具體的運行過程,使讀者在學習中感到輕松易懂。
全書共分12章,每個章節(jié)都配有實例,讀者可以快捷地掌握LabVIEW 8.5的基礎知識和編程方法!禠abVIEW 8.5快速入門與提高》適用于各個領域的工程技術人員。
[5]楊樂平.LabVIEW 程序設計應用[M].北京:電子工業(yè)出版社,2001.
摘要:本書以最新LabVIEW 7 Express版本為對象,系統(tǒng)介紹了LabVIEW 程序設計的基本概念、關鍵技術和實際應用的專門知識。本書內容分為三大部分,第一部分介紹虛擬儀器的基本概念、圖形化編程語言基本原理與特點、LabVIEW 編程環(huán)境;第二部分系統(tǒng)介紹LabVIEW 程序設計的語法規(guī)則、程序結構和基本編程技巧;第三部分介紹LabVIEW 在數(shù)據(jù)采集、儀器控制和通信等方面的應用。本書結構編排合理,運用大量實例闡述基本概念與編程難點,突出內容的系統(tǒng)性與實用性。為方便讀者學習查閱,本書附帶光盤按章節(jié)編排,提供了本書所有編程例子,并且列出了LabVIEW 程序錯誤代碼表,供讀者參考。
[6]李冰.虛擬儀器技術的研究[D].大慶:大慶石油學院,2005.
摘要:隨著科學技術的進步,對測量技術的要求越來越高。電子測量技術在各個領域得到了越來越廣泛的應用。傳統(tǒng)的電子測量儀器由于其功能單一,體積龐大,己經很難滿足實際測量工作中多樣性、多功能的需要。以虛擬儀器為代表的新型測量儀器改變了傳統(tǒng)儀器的思想,它們充分利用計算機強大的軟硬件功能,把計算機技術和測量技術緊密結合起來,是融合了電子測量、計算機和網絡技術的新型測量技術。特別是基于計算機平臺的各種測量儀器由于成本低、使用方便等優(yōu)點得到了更廣泛的應用。虛擬儀器可以充分利用計算機的運算、存儲和顯示功能,因而在降低儀器成本的同時,使儀器的靈活性和數(shù)據(jù)處理能力大大提高,可以更方便的組建測試系統(tǒng),更好的滿足多種測量要求。虛擬儀器實際上就是一種基于計算機的自動化測試儀器系統(tǒng)。虛擬儀器作為計算機技術和現(xiàn)代儀器技術相結合的產物,實現(xiàn)了傳統(tǒng)儀器測量理論和測量方法上的革命性突破。 虛擬數(shù)字示波器系統(tǒng)由信號采集、信號處理和結果顯示三大部分構成,其中信號采集部分是由硬件實現(xiàn),其它兩部分都是由軟件實現(xiàn)。我們所設計的虛擬數(shù)字示波器總體上包括數(shù)據(jù)采集、波形顯示、頻譜分析以及波形存儲和回放等四大模塊組成。它除了通用功能外,又具有普通示波器所沒有的許多優(yōu)點,如波形可存儲為數(shù)據(jù)文件,以便進行永久保存、隨時調用數(shù)據(jù),進行波形實時顯示、打印,其成本低廉,功能可根據(jù)應用的需要不斷加強。 本文所選用的軟件LabVIEW 是美國NI儀器公司的創(chuàng)新軟件產品,也是應用最廣泛、發(fā)展最快、功能最強的圖形化軟件開發(fā)環(huán)境。它具有開發(fā)周期短、運行速度快、可重用性、使用方便靈活等優(yōu)點。
[7]張毅剛.虛擬儀器技術介紹[J].國外電子測量技術,2006,25(6):1-6
摘要:本文較為系統(tǒng)地介紹了虛擬儀器技術,主要內容包括:虛擬儀器的基本概念、組成及分類,基于不同總線的虛擬儀器特點,虛擬儀器軟件及其規(guī)范。最后,對虛擬儀器技術未來的發(fā)展趨勢進行了展望。
[8]李巍.LabVIEW 實現(xiàn)的小波變換及其在濾波中的應用[J].前沿技術,2010,29(3)
摘要:通過LabVIEW 的編程環(huán)境實現(xiàn)了Db4小波對信號的分解和重構,采用小波軟閾值去噪法對信號去噪,并將其與Butterworth低通濾波器濾波效果進行了比較。試驗證明小波軟閾值去噪是一種有效的濾波方法。
[9]阮奇楨.我和LabVIEW (第二版)[M].北京:北京航空航天大學出版社,2012.
摘要:《我和LabVIEW :一個NI工程師的十年編程經驗(第2版)》是作者阮奇楨在學習和使用LabVIEW 過程中的經驗總結。書中由淺入深地對LabVIEW 最常用的功能和LabVIEW 學習過程中常見的問題進行了一一介紹。此外,對于 LabVIEW 幫助文檔中沒有涉及的內容,如LabVIEW 程序設計的原理、原則,如何選取最適合當前情景的編程方法,編程時的注意事項,LabVIEW 的學習方法等,本書都進行了較為詳細的介紹。本書的特色之一在于緊密結合實例,對于提及的LabVIEW 功能,書中都配以編程實例來講解。第2版除了修正書中的錯誤之處,還增添了對讀者提問的解答以及新版本LabVIEW 的一些常用功能介紹!段液蚅abVIEW :一個NI工程師的十年編程經驗(第2版)》可作為大、中專院校通信、測控等相關專業(yè)的教學參考書,也可作為相關工程技術人員設計開發(fā)儀器或自動測試系統(tǒng)的技術參考書。
[10]陳國順,張桐,郭陽寬等.精通LabVIEW 程序設計第二版[M].北京:電子工業(yè)出版社,2012.
摘要:《精通LabVIEW 程序設計(第2版)》的最大特色在于緊密結合實例,配以近100個編程實例來講解LabVIEW 功能!毒↙abVIEW 程序設計(第2版)》還緊密結合高校的應用需求,結合高校教學要求來組織應用實例篇,同時還配備了章節(jié)習題和附錄,非常適合教學和自學。LabVIEW 是一種非常優(yōu)秀的圖形化編程語言,廣泛用于數(shù)據(jù)采集、儀器控制、測量分析和數(shù)據(jù)顯示等應用領域,在高校應用普遍,在工程界廣泛流行。《精通LabVIEW 程序設計(第2版)》分為基礎入門篇、編程精通篇和應用實例篇三個部分;A入門篇循序漸進地介紹了LabVIEW 的發(fā)展、特點、語法和開發(fā)環(huán)境等基礎知識;編程精通篇深入淺出地講述了VI設計、常用編程技術、常用庫函數(shù)和VI、數(shù)據(jù)采集與儀器控制等編程方法;應用實例篇簡練實用地講述了近60個綜合實例,涉及的應用領域有電子電路、模擬電子、數(shù)字電子、控制系統(tǒng)、數(shù)字信號處理等。