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