国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LabVIEW環(huán)境下調(diào)用DLL實現(xiàn)儀器控制

2015-03-27 07:18長春理工大學(xué)電子信息工程學(xué)院廖醒宇
電子世界 2015年21期
關(guān)鍵詞:前面板虛擬儀器驅(qū)動程序

長春理工大學(xué)電子信息工程學(xué)院 侯 博 廖醒宇

引言

雖然配套儀器控制程序已經(jīng)涵蓋了儀器本身所有的功能控制,但由于后續(xù)開發(fā)環(huán)境和具體實驗操作的要求,配套控制軟件不能很好的達(dá)成預(yù)期效果。此需要重新設(shè)計儀器控制軟件。一旦從底層重新設(shè)計控制軟件將消耗大量的人力以及時間,并且會造成儀器功能的損失。廠商提供的配套控制軟件的動態(tài)鏈接庫中基本已經(jīng)涵蓋了所有的控制接口,直接調(diào)用原有動態(tài)鏈接庫,較比重新設(shè)計控制程序?qū)p少大量的研發(fā)周期和人力資源。本文介紹了使用LabVIEW軟件開發(fā)平臺調(diào)用基于.net平臺的動態(tài)鏈接庫,完成控制軟件的二次開發(fā)。并以ARCopt ix公司生產(chǎn)的液晶可調(diào)相位延時器控制軟件為例,給出具體的設(shè)計方法。

1 虛擬儀器與儀器控制

1.1 虛擬儀器

現(xiàn)如今儀器控制系統(tǒng)開發(fā)通常采用虛擬儀器技術(shù)[1]。近30年來NI公司(Nat ional Inst r uments)一直致力于推廣和引領(lǐng)他們提出并制定的這種基于計算機(jī)系統(tǒng)的儀器和測量技術(shù)。與傳統(tǒng)技術(shù)相比,虛擬儀器技術(shù)無可比擬的占據(jù)著上風(fēng)。虛擬儀器技術(shù)能夠在極短的開發(fā)周期內(nèi),在通用計算機(jī)平臺上構(gòu)建各式各樣的測量和控制系統(tǒng)。用戶無需關(guān)心儀器的底層硬件接口情況,虛擬儀器平臺LabVIEW已經(jīng)完成了這部分的工作。對于大多數(shù)用戶來說,硬件的測量和控制工作已經(jīng)成為軟件設(shè)計。儀器在某種意義上可視為軟件。虛擬儀器依托計算機(jī)強(qiáng)大的圖形操作界面和在豐富的網(wǎng)絡(luò)資源,建立虛擬儀器面板,完成與儀器的數(shù)據(jù)交互、數(shù)據(jù)解析與顯示、近兒完成對儀器的控制。虛擬儀器以其多樣的可變性和廣泛的適用性正逐步替代傳統(tǒng)的儀器技術(shù),并且提高儀器的功能和使用效率,簡化儀器的二次開發(fā)和利用,同時大大降低了儀器的價格。虛擬儀器在電子測量,電氣工程,科學(xué)探索,醫(yī)學(xué),振動分析,光學(xué)分析,聲學(xué)分析,故障診斷及科學(xué)研究和教學(xué)等許多領(lǐng)域有著廣泛的應(yīng)用。

1.2 儀器控制

儀器控制是指通過個人計算機(jī)與智能儀器之間傳輸相關(guān)的數(shù)據(jù)和命令,以實現(xiàn)對智能儀器的控制。兩者之間通過不同的的總線接口實現(xiàn)通信,大體可分為串口、網(wǎng)口、USB、PXI和VXI等接口。儀器控制負(fù)責(zé)上位機(jī)與儀器的連接工作,同時還可以根據(jù)需要對儀器的功能進(jìn)行擴(kuò)展和增強(qiáng)。計算機(jī)平臺擁有強(qiáng)大的數(shù)據(jù)解析、運算、顯示和存儲能力的,以計算機(jī)作為上位機(jī)可以最大限度的增強(qiáng)儀器的性能。一個完整的儀器控制系統(tǒng)包括儀器、總線、計算機(jī)、底層驅(qū)動程序和上層應(yīng)用程序??偩€完成計算機(jī)和儀器的硬件連接。上層應(yīng)用程序調(diào)用底層底層驅(qū)動程序預(yù)備好的控制接口,發(fā)送控制命令控制儀器行為并且完成數(shù)據(jù)的采集、處理、分析、顯示和存儲等。

LabVIEW是美國NI公司在儀器控制領(lǐng)域最具競爭力的核心技術(shù)之一。與其他使用字符代碼設(shè)計程序的平臺不同,LabVIEW使用圖形代碼設(shè)計程序。LabVIEW采用數(shù)據(jù)流編程方式,用連線連接程序各個模塊,程序的執(zhí)行順序由程序框圖中節(jié)點之間的數(shù)據(jù)流向決定。它用圖標(biāo)代替?zhèn)鹘y(tǒng)程序設(shè)計語言的函數(shù),用連線取代了函數(shù)的復(fù)雜調(diào)用。它擁有豐富的儀器驅(qū)動庫,其中涵蓋了各種總線連接方式。即使是對單一總線編程,也可以采取多種編程方法。因此它是一個非常適合用于儀器控制的開發(fā)平臺。

2 LabVIEW下動態(tài)鏈接庫調(diào)用

動態(tài)鏈接庫介紹:

微軟公司提出了一種在windows操作系統(tǒng)中用以實現(xiàn)共享函數(shù)庫的方式——動態(tài)鏈接庫技術(shù)(Dynamic-l ink Libr ar y)。動態(tài)鏈接是一種共享可執(zhí)行代碼的技術(shù)進(jìn)程可以調(diào)用與自身無關(guān)的其他進(jìn)程的可執(zhí)行代碼。函數(shù)的可執(zhí)行代碼匯集于一個DLL文件,這就是動態(tài)鏈接庫。不同進(jìn)程可以調(diào)用不屬于自身的可執(zhí)行代碼,這樣有助于共享資源和數(shù)據(jù),并且減少了代碼量,簡化開發(fā)者的工作量。不同應(yīng)用程序可同時調(diào)用內(nèi)存中DLL文件中的函數(shù)。同一DLL文件被多個應(yīng)用程序調(diào)用時,內(nèi)存也只會加載一次,如此便可節(jié)約內(nèi)存資源。

廠商為保證設(shè)備的兼容性和可拓展性,在提供包含動態(tài)鏈接庫文件的驅(qū)動程序的同時,還會使設(shè)備驅(qū)動程序兼容微軟.NET平臺。也就是使用與.NET兼容的c#,VB.net或是C++/CLI語言來編寫驅(qū)動程序。在動態(tài)鏈接庫文件中,儀器廠商已經(jīng)完成了應(yīng)用層與儀器控制底層之間的通信。完成數(shù)據(jù)通信的函數(shù)就是我們通常說的API(Appl icat ion Pr ogr amming Int er f ace)函數(shù)[2]。在LabVIEW中調(diào)用DLL文件,實質(zhì)就是調(diào)用廠商預(yù)先準(zhǔn)備好的API函數(shù)。后續(xù)開發(fā)者不需要具備C#,VB.NET,C++、CLI語言開發(fā)基礎(chǔ),也不需要閱讀API函數(shù)源碼或是了解API函數(shù)內(nèi)部工作機(jī)制,只需要了解API函數(shù)的功能及傳入傳出參數(shù)即可。這便使得控制程序的開發(fā)停留在了LabVIEW的圖形化界面中,使編程語言不是很好的開發(fā)者也能輕松實現(xiàn)儀器控制程序的設(shè)計。

3 調(diào)用dll儀器控制實例

3.1 函數(shù)功能介紹

本文所使用的是ARCopt ix公司生產(chǎn)的液晶相位可變延時器。實驗?zāi)康氖鞘构馔ㄟ^兩片相位延時器,之后使用相位檢測儀來觀測光偏振角度。故控制程序需同時控制兩片延時器,并且能夠準(zhǔn)確控制各個延時器的延時特性。延時器自帶windows下驅(qū)動程序,安裝完成后,在其安裝目錄下可找到函數(shù)庫LCDr iver.dl l[3]和CyUSB.dl l。其中LCDr iver.dl l中包含延時器控制的所有函數(shù),下面對其進(jìn)行簡要說明。

按照函數(shù)功能不同,大體將函數(shù)分為兩類:

第一類為回調(diào)函數(shù),開發(fā)者可以通過這些函數(shù)獲取儀器具體性能參數(shù)以及儀器工作狀態(tài)。

doubl e MaxVol tage{get; } 獲取儀器最大允許電壓其傳出參數(shù)為doubl e型。

doubl e MaxDacCount{get;} 獲取儀器最大模數(shù)轉(zhuǎn)換精度 其傳出參數(shù)為doubl e型。

bool Tr igOut 1{get; } 獲取延時器1工作狀態(tài) 其傳出參數(shù)為bool型。

bool Tr igOut 2{get; } 獲取延時器2工作狀態(tài) 其傳出參數(shù)為bool型。

st r ing Get Serial Number() 返回已連設(shè)備的設(shè)備碼其返回值為st r ing型。

第二類為控制函數(shù),開發(fā)者通過傳入具體參數(shù)完成儀器控制。

bool Set DACVol t age(doubl e V, byt e DACno) 函數(shù)功能為設(shè)置兩片相位延時器的輸出電壓。參數(shù)doubl e V控制延時器的輸出電壓,參數(shù)byt e DACno負(fù)責(zé)選擇需要控制的延時器。由于設(shè)備為電控的液晶可調(diào)相位延時器,控制輸出電壓實質(zhì)是控制相位延時器的延時特性。

bool Set Tr i gger s(bool Out 1Ext er nal, bool Out 2Ext er nal) 函數(shù)功能與單片機(jī)中的使能標(biāo)志位類似,負(fù)責(zé)控制所選延時器是否工作。

3.2 具體操作實例

首先打開l abvi ew新建一個vi。在程序框圖的函數(shù)選版中選擇互聯(lián)接口》.NET》構(gòu)造器節(jié)點,然后在瀏覽窗口中搜索原驅(qū)動程序安裝路徑,找到所要使用的DLL文件,l cvr的DLL文件名為LCDr iver.dl l。

然后在新創(chuàng)建的屬性節(jié)點圖標(biāo)上點擊右鍵》創(chuàng)建》ARCopt ix.LCDdr iver.LCdr iver類的方法,并在下級菜單中找到所要使用的函數(shù)。

DLL文件的調(diào)用以及具體功能函數(shù)的調(diào)用就如上面所述,剩下的就是l abview圖形環(huán)境下的g語言設(shè)計了。LabVIEW程序設(shè)計分前后兩個面板。前面板為人機(jī)交互界面,用戶通過前面板完成個人計算機(jī)與儀器的數(shù)據(jù)交互并控制儀器運作。前面板主要包括各種數(shù)值的輸入控件,程序控制按鍵,顯示框體等。程序后面板是程序運行的主干部分,也是程序設(shè)計的主要部分。后面板包括數(shù)據(jù)的流向,屬性節(jié)點的寫入和讀取,儀器的“打開”和“關(guān)閉”。

本程序主要功能是控制兩片相位延時器,可同時控制兩片相位延時器或者指定控制單一一片。程序前面板需要有兩組電壓輸入控件分別對應(yīng)兩片延時器的輸出電壓。兩個使能按鍵Tr igger Out 1、Tr igger Out 2,控制與之相對應(yīng)的相位延時器使能與否。用戶在輸入控件輸入所需電壓數(shù)值后,按下Set Vol t age按鍵控制電壓輸出。程序完成功能后使用STOP按鍵退出程序。程序前面板如圖1所示。

程序后面板設(shè)計在whi l e循環(huán)下嵌套3層事件結(jié)構(gòu)。第一層事件調(diào)用Set DACVol t age函數(shù)分別控制兩片延時器的輸出電壓。前面板的Set Vol t age按鍵被按下為事件觸發(fā)條件。當(dāng)Set Vol t age按鍵按下,程序?qū)山M電壓值寫入Set DACVol t age函數(shù),控制延時器輸出。第二層事件調(diào)用Set Tr igger s函數(shù)使能兩片延時器。前面板Tr igger Out 1和Tr igger Out 1為條件觸發(fā)按鍵。Tr igger Out 1或Tr igger Out 1按下,程序調(diào)用Set Tr igger s函數(shù)完成對延時器使能。第三層是使程序跳出循環(huán),程序結(jié)束。紅色st op按鍵為觸發(fā)條件。程序后面板如圖2所示。

圖1 程序前面板

圖2 程序后面板1

具體的程序設(shè)計可以根據(jù)實際實驗環(huán)境變化。依靠l abview豐富的時序控制,可以配合其他設(shè)備,完成自動化儀器控制。

4 結(jié)束語

在l abview中調(diào)用原有驅(qū)動程序的動態(tài)鏈接庫文件,重新優(yōu)化設(shè)計驅(qū)動控制程序,擴(kuò)展了儀器的適用范圍,增加儀器的自動化進(jìn)程。并且l abview中圖形化編程簡單快捷,即使是編程語言不是很精通的設(shè)計人員也能得心應(yīng)手的使用。節(jié)約開發(fā)時間和開發(fā)成本。

[1]吳亮.基于LabVIEW的通用儀器控制軟件設(shè)計[J].艦船科學(xué)技術(shù),2009,31(10):73-75.

[2]陳式清,齊洪喜..NET與LabVIEW混合環(huán)境的一種串口通信編程[J].網(wǎng)絡(luò)與通信,2014,5:48-50.

[3]ARCoptix LC Driver 1.1 API.[DB/CD].USA:ARCoptix,2010.

猜你喜歡
前面板虛擬儀器驅(qū)動程序
顏值高和散熱強(qiáng)可以并存3款高品質(zhì)機(jī)箱推薦
電競潮牌范航嘉GX520S機(jī)箱評測
電競潮牌范 航嘉GX520S機(jī)箱評測
計算機(jī)硬件設(shè)備驅(qū)動程序分析
PCB 刻制機(jī)功能開發(fā)及在虛擬儀器實驗室建設(shè)中的應(yīng)用
虛擬儀器及其在電工電子實驗中的應(yīng)用
虛擬儀器技術(shù)在農(nóng)業(yè)裝備測控中的應(yīng)用
基于虛擬儀器的DMFC實時監(jiān)控系統(tǒng)
基于MPC8280的CPU單元與內(nèi)部總線驅(qū)動程序設(shè)計
個性化的機(jī)箱選擇