999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2015-03-27 07:18:30長(zhǎng)春理工大學(xué)電子信息工程學(xué)院廖醒宇
電子世界 2015年21期
關(guān)鍵詞:程序

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

引言

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

1 虛擬儀器與儀器控制

1.1 虛擬儀器

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

1.2 儀器控制

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

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

2 LabVIEW下動(dòng)態(tài)鏈接庫(kù)調(diào)用

動(dòng)態(tài)鏈接庫(kù)介紹:

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

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

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

3.1 函數(shù)功能介紹

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

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

第一類為回調(diào)函數(shù),開(kāi)發(fā)者可以通過(guò)這些函數(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; } 獲取延時(shí)器1工作狀態(tài) 其傳出參數(shù)為bool型。

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

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

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

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

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

3.2 具體操作實(shí)例

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

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

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

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

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

圖1 程序前面板

圖2 程序后面板1

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

4 結(jié)束語(yǔ)

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

[1]吳亮.基于LabVIEW的通用儀器控制軟件設(shè)計(jì)[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.

猜你喜歡
程序
給Windows添加程序快速切換欄
試論我國(guó)未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
基于VMM的程序行為異常檢測(cè)
偵查實(shí)驗(yàn)批準(zhǔn)程序初探
我國(guó)刑事速裁程序的構(gòu)建
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 国产一区二区影院| 久久一级电影| 亚洲欧美不卡| 热久久综合这里只有精品电影| 免费人成网站在线观看欧美| av手机版在线播放| 亚洲无码熟妇人妻AV在线| 欧美日韩国产在线播放| a级毛片免费播放| 亚洲中文精品人人永久免费| 99精品免费在线| 午夜欧美理论2019理论| 久久久成年黄色视频| 久久久久国产精品熟女影院| 国产乱人伦偷精品视频AAA| 精品久久高清| 成人午夜视频在线| 精品视频一区在线观看| 亚洲欧美日韩动漫| 露脸国产精品自产在线播| 欧美日本中文| 四虎国产精品永久一区| 一级毛片免费不卡在线| 久久综合亚洲鲁鲁九月天| 中文字幕天无码久久精品视频免费 | 国产无码性爱一区二区三区| 国产成人午夜福利免费无码r| 青青草综合网| 日韩亚洲高清一区二区| 欧美一区二区三区欧美日韩亚洲 | 久久国产拍爱| 欧美爱爱网| 91在线播放国产| 四虎精品免费久久| 一区二区三区在线不卡免费| 91亚洲精品国产自在现线| 日韩性网站| 日韩二区三区| 四虎精品黑人视频| 久久精品最新免费国产成人| 欧美激情福利| 99免费视频观看| 国产AV无码专区亚洲精品网站| 蜜臀AV在线播放| 91精品视频网站| 欧美精品亚洲日韩a| 天天做天天爱夜夜爽毛片毛片| 2020国产精品视频| 亚洲黄色片免费看| 在线观看av永久| av在线无码浏览| 在线观看免费AV网| 国产在线观看精品| 99无码熟妇丰满人妻啪啪| 久久久亚洲色| 欧美亚洲香蕉| 免费 国产 无码久久久| 91毛片网| 97精品国产高清久久久久蜜芽| 成人福利在线视频| 成人在线不卡| 成人av专区精品无码国产| 久久精品丝袜| 国产精品亚欧美一区二区三区 | 99国产精品国产| 国产精品亚洲综合久久小说| 亚洲综合二区| 亚洲熟女偷拍| 国产原创演绎剧情有字幕的| 日韩中文无码av超清| 色综合成人| 老色鬼欧美精品| 最近最新中文字幕在线第一页| 伊人久久久大香线蕉综合直播| a级毛片毛片免费观看久潮| 91亚洲免费视频| 国产精品私拍在线爆乳| 狠狠色噜噜狠狠狠狠色综合久| 国产一级片网址| 国产自无码视频在线观看| 亚洲日韩AV无码一区二区三区人| 国产日韩AV高潮在线|