付川南 高穎
摘 要:在實(shí)際的工程實(shí)踐中,LabVIEW通常要與USB儀器進(jìn)行通信,而它們之間的通信通常是通過VISA,或者是生產(chǎn)儀器的公司上傳到NI公司的官網(wǎng)上的庫(LLB)來實(shí)現(xiàn)的,但是這兩種通信方法不能滿足所有的USB儀器與LabVIEW之間的通信。為了解決LabVIEW與USB儀器之間的通信問題,本文提出了一種利用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)的方法,雖然該方法的程序編寫較為煩瑣,但切實(shí)解決了LabVIEW與USB儀器之間無法通信的問題。
關(guān)鍵詞:LabVIEW;USB儀器;儀器控制
中圖分類號:TP273.5 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-5168(2019)04-0015-03
A New Instrument Control Method Based on Labview
FU Chuannan GAO Ying
(College of Information and Business, Zhongyuan University of Technology,Zhengzhou Henan 451191)
Abstract: In practical engineering practice, LabVIEW usually communicates with USB instruments, and the communication between them is usually achieved by VISA or LLB uploaded to NI company's official network by the company producing instruments. But these two communication methods can not satisfy the communication between all USB instruments and LabVIEW. In order to solve the problem of communication between LabVIEW and USB instruments, this paper proposed a method of using attribute nodes and calling nodes. Although the programming of this method is tedious, it solves the problem of communication between LabVIEW and USB instruments.
Keywords: LabVIEW;USB instruments;instruments control
在工業(yè)生產(chǎn)、自動測試和自動控制過程中,往往需要使用計(jì)算機(jī)控制各種各樣的測試儀器。在利用LabVIEW對USB接口的儀器進(jìn)行控制時(shí),通常會用到兩種方法:通過VISA進(jìn)行通信;通過官方為儀器編寫的庫(LLB)進(jìn)行通信。這兩種方法對于大部分的USB儀器特別是NI公司[1]的USB儀器與LabVIEW的通信都很實(shí)用,而且程序編寫也很簡單。但是,有些儀器不是NI公司生產(chǎn)的,而且官方上傳到NI公司的庫(LLB)在LabVIEW上無法運(yùn)行,也就是程序無法兼容。在實(shí)際應(yīng)用中,由于儀器在很多情況下通常是實(shí)驗(yàn)室或公司已經(jīng)買好或配備好的,所以無法決定儀器的型號以及儀器的生產(chǎn)廠家。在現(xiàn)有的儀器通信方法無法使用時(shí),大多數(shù)情況下只能束手無策或者更換儀器,更換儀器的代價(jià)是很高的,不僅要花費(fèi)時(shí)間等待新儀器的到來,而且新儀器價(jià)格較高。為此,本文提出一種新的運(yùn)用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)編寫的LabVIEW程序來解決LabVIEW與儀器通信的問題,雖然程序比通常使用的兩種方法復(fù)雜,但無論是哪種USB儀器都可以使用本方法來進(jìn)行通信。
1 常規(guī)控制方法
1.1 利用VISA進(jìn)行儀器控制
VISA[2]是儀器編程的標(biāo)準(zhǔn)I/O API。VISA可控制GPIB、串口、USB、以太網(wǎng)或VXI儀器,并根據(jù)使用儀器的類型調(diào)用相應(yīng)的驅(qū)動程序,用戶無需學(xué)習(xí)各種儀器的通信協(xié)議。VISA獨(dú)立于操作系統(tǒng)、總線和編程環(huán)境。換言之,無論使用何種設(shè)備、操作系統(tǒng)和編程語言,均使用相同的API。開始使用VISA之前,應(yīng)確保選擇合適的儀器。
在LabVIEW中,進(jìn)行串口通信[3]的基本步驟如下。
第一,串口初始化,利用VISA Configure Serial Port.vi[VISA配置串口]節(jié)點(diǎn)設(shè)定串口的端口號、波特率、停止位、校驗(yàn)位、數(shù)據(jù)位。
第二,讀寫串口,利用VISA Read節(jié)點(diǎn)和VISA Write節(jié)點(diǎn)對串口進(jìn)行讀寫。
第三,關(guān)閉串口,停止所有讀寫操作。
利用VISA可以較為方便地進(jìn)行儀器控制,但對儀器的選擇還是有限制的。例如,對于安捷倫公司的模塊化示波器U2702A,VISA無法完成。
1.2 利用NI官網(wǎng)上的庫(LLB)進(jìn)行儀器控制
本文用儀器Agilent U2702A來演示這種方法[4]。在使用之前,要先找到Agilent U2702A的庫文件,先在NI的官網(wǎng)上搜索Agilent U2702A,找到它的庫,將其下載下來并解壓,然后放到LabVIEW的instr.lib文件夾中。做好初步準(zhǔn)備之后,啟動LabVIEW,在程序框圖中按照圖1的流程圖找到子VI。
該控制儀器的方法很實(shí)用,而且使用起來較為簡單,但是效果和利用VISA進(jìn)行儀器控制一樣,無法控制安捷倫公司的模塊化示波器U2702A,把官方給的庫打開到最底層修改時(shí)發(fā)現(xiàn)根本無法修改,底層已經(jīng)被封裝好,無法對U2702A再進(jìn)行下一步的控制。
針對這兩種方法對儀器控制的限制,本文提出利用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)來進(jìn)行儀器控制,雖然與前兩種方法相比較為煩瑣,但從根本上解決了問題,而且對USB儀器來說是一個(gè)通用的方法。
2 利用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)來進(jìn)行儀器控制
屬性節(jié)點(diǎn)可以用來通過編程設(shè)置來獲取或改變控件的屬性,譬如,在程序運(yùn)行過程中,可以通過編程設(shè)置數(shù)值控件的背景顏色等屬性。
調(diào)用節(jié)點(diǎn)可以通過編程設(shè)置來對對象方法進(jìn)行動態(tài)操作,生成的調(diào)用節(jié)點(diǎn)類似于一個(gè)函數(shù)節(jié)點(diǎn)。
要用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)完成程序的設(shè)計(jì),首先要找到節(jié)點(diǎn)的類。對很多初學(xué)者來說,這個(gè)類不太好找,可以在程序框圖里面放置一個(gè)屬性節(jié)點(diǎn)(調(diào)用節(jié)點(diǎn)),在Automation處右鍵單擊,然后選擇“選擇類”,選擇“ActiveX”,選擇“瀏覽”,點(diǎn)擊類型庫的下拉菜單選擇“IVI Agilent U2701A 1.3 Type Library Version 1.3”,這樣,IVI儀器的類就添加完成了,接下來就可以對儀器控制進(jìn)行程序編寫。程序的編寫流程如圖2所示。
具體的程序編寫過程如下。
①利用調(diào)用節(jié)點(diǎn)對儀器進(jìn)行初始化,如圖3所示。前面板顯示如圖4所示。
②對儀器進(jìn)行認(rèn)證,主要是認(rèn)證儀器型號、儀器制造商和儀器版本,具體程序框圖如圖5所示。前面板顯示如圖6所示。
③對儀器進(jìn)行重置以及自啟動,以防止測量結(jié)果受前面測量結(jié)果的干擾,儀器重置和自啟動主要通過調(diào)用節(jié)點(diǎn)來完成的。至此,對儀器的設(shè)置已經(jīng)基本完成。之后,無論是用該儀器進(jìn)行測量還是用作其他用途,對儀器的初始化、認(rèn)證、重置及自啟動都是必不可少的步驟。儀器的重置和自啟動如圖7所示。
儀器的重置和自啟動在前面板沒有固定的顯示。至此,對儀器的配置已經(jīng)完成,接下來就可以開始控制儀器進(jìn)行各種測量。
3 控制方法的運(yùn)用
本文以Agilent U2702A為例來介紹儀器控制方法的運(yùn)用。U2702A是一款雙通道、8位、200MHz的USB模塊化示波器,其使用通用而非專有標(biāo)準(zhǔn)的高速USB 2.0接口,不僅容易連接,而且具有即插即用的特性,使用戶能夠輕松快捷地對測試進(jìn)行設(shè)置和配置。
在實(shí)驗(yàn)過程中,由信號發(fā)生器Agilent 8664A發(fā)送一個(gè)5MHz的正弦信號和一個(gè)基準(zhǔn)信號(10MHz)到Agilent U2702A。在這里,U2702A起到了數(shù)據(jù)采集的作用,即U2702A采集信號發(fā)生器發(fā)出的信號,并發(fā)送到計(jì)算機(jī)中,在LabVIEW中顯示出來。
為了檢驗(yàn)接收的信號是否正確,利用LabVIEW中的虛擬示波器進(jìn)行測量,測量結(jié)果顯示兩路信號,一路為5MHz,一路為10MHz,這證明了屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)編寫的程序是可行的,雖然程序較為煩瑣,但從儀器的初始化到重置和自啟動,每一個(gè)程序都是必不可少的。
4 結(jié)論
從上述實(shí)驗(yàn)可知,本文提出的利用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)編寫LabVIEW程序來控制USB儀器的方法是完全可行的。雖然該方法較為煩瑣,但由于程序的前半部分對儀器控制的程序是通用的,因此,其簡化了很多工作。采用該方法能使儀器的控制更加方便、快捷,更重要的是,這種方法是通用的,不受儀器廠家的限制。
參考文獻(xiàn):
[1]National Instrument Corporation LabVIEW 2011 Help[Z].2010.
[2]戴鵬飛.測試工程與LabVIEW應(yīng)用[M].北京:電子工業(yè)出版社,2004.
[3]陳錫輝,張銀鴻.LabVIEW8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.
[4]楊樂平,李海濤,楊磊.LabVIEW程序設(shè)計(jì)與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2005.