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

基于LabVIEW環境下調用DLL實現儀器控制

2015-03-27 07:18:30長春理工大學電子信息工程學院廖醒宇
電子世界 2015年21期
關鍵詞:程序

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

引言

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

1 虛擬儀器與儀器控制

1.1 虛擬儀器

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

1.2 儀器控制

儀器控制是指通過個人計算機與智能儀器之間傳輸相關的數據和命令,以實現對智能儀器的控制。兩者之間通過不同的的總線接口實現通信,大體可分為串口、網口、USB、PXI和VXI等接口。儀器控制負責上位機與儀器的連接工作,同時還可以根據需要對儀器的功能進行擴展和增強。計算機平臺擁有強大的數據解析、運算、顯示和存儲能力的,以計算機作為上位機可以最大限度的增強儀器的性能。一個完整的儀器控制系統包括儀器、總線、計算機、底層驅動程序和上層應用程序。總線完成計算機和儀器的硬件連接。上層應用程序調用底層底層驅動程序預備好的控制接口,發送控制命令控制儀器行為并且完成數據的采集、處理、分析、顯示和存儲等。

LabVIEW是美國NI公司在儀器控制領域最具競爭力的核心技術之一。與其他使用字符代碼設計程序的平臺不同,LabVIEW使用圖形代碼設計程序。LabVIEW采用數據流編程方式,用連線連接程序各個模塊,程序的執行順序由程序框圖中節點之間的數據流向決定。它用圖標代替傳統程序設計語言的函數,用連線取代了函數的復雜調用。它擁有豐富的儀器驅動庫,其中涵蓋了各種總線連接方式。即使是對單一總線編程,也可以采取多種編程方法。因此它是一個非常適合用于儀器控制的開發平臺。

2 LabVIEW下動態鏈接庫調用

動態鏈接庫介紹:

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

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

3 調用dll儀器控制實例

3.1 函數功能介紹

本文所使用的是ARCopt ix公司生產的液晶相位可變延時器。實驗目的是使光通過兩片相位延時器,之后使用相位檢測儀來觀測光偏振角度。故控制程序需同時控制兩片延時器,并且能夠準確控制各個延時器的延時特性。延時器自帶windows下驅動程序,安裝完成后,在其安裝目錄下可找到函數庫LCDr iver.dl l[3]和CyUSB.dl l。其中LCDr iver.dl l中包含延時器控制的所有函數,下面對其進行簡要說明。

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

第一類為回調函數,開發者可以通過這些函數獲取儀器具體性能參數以及儀器工作狀態。

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

doubl e MaxDacCount{get;} 獲取儀器最大模數轉換精度 其傳出參數為doubl e型。

bool Tr igOut 1{get; } 獲取延時器1工作狀態 其傳出參數為bool型。

bool Tr igOut 2{get; } 獲取延時器2工作狀態 其傳出參數為bool型。

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

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

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

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

3.2 具體操作實例

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

然后在新創建的屬性節點圖標上點擊右鍵》創建》ARCopt ix.LCDdr iver.LCdr iver類的方法,并在下級菜單中找到所要使用的函數。

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

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

程序后面板設計在whi l e循環下嵌套3層事件結構。第一層事件調用Set DACVol t age函數分別控制兩片延時器的輸出電壓。前面板的Set Vol t age按鍵被按下為事件觸發條件。當Set Vol t age按鍵按下,程序將兩組電壓值寫入Set DACVol t age函數,控制延時器輸出。第二層事件調用Set Tr igger s函數使能兩片延時器。前面板Tr igger Out 1和Tr igger Out 1為條件觸發按鍵。Tr igger Out 1或Tr igger Out 1按下,程序調用Set Tr igger s函數完成對延時器使能。第三層是使程序跳出循環,程序結束。紅色st op按鍵為觸發條件。程序后面板如圖2所示。

圖1 程序前面板

圖2 程序后面板1

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

4 結束語

在l abview中調用原有驅動程序的動態鏈接庫文件,重新優化設計驅動控制程序,擴展了儀器的適用范圍,增加儀器的自動化進程。并且l abview中圖形化編程簡單快捷,即使是編程語言不是很精通的設計人員也能得心應手的使用。節約開發時間和開發成本。

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

[2]陳式清,齊洪喜..NET與LabVIEW混合環境的一種串口通信編程[J].網絡與通信,2014,5:48-50.

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

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 免费在线观看av| 欧美亚洲日韩中文| 欧美精品导航| 亚洲国产成人麻豆精品| 国产一区二区三区在线观看免费| 女人18一级毛片免费观看 | 国产幂在线无码精品| 国产精品天干天干在线观看| 亚洲大学生视频在线播放| 亚洲中文字幕av无码区| 最新午夜男女福利片视频| 亚洲日韩AV无码精品| 欧美日韩中文国产| 日韩二区三区无| 18禁黄无遮挡网站| 久久人午夜亚洲精品无码区| 播五月综合| h视频在线播放| 67194亚洲无码| 亚洲国产天堂在线观看| 国产特一级毛片| 国产不卡国语在线| 韩日免费小视频| 国产一级毛片yw| 国产激情第一页| 亚洲一区二区视频在线观看| 日韩毛片免费视频| 五月婷婷激情四射| 亚洲系列无码专区偷窥无码| 玖玖精品视频在线观看| 白丝美女办公室高潮喷水视频 | 丁香五月激情图片| 日韩在线第三页| 亚洲精品视频网| www精品久久| 欧美日韩激情在线| 国产精品久线在线观看| 亚洲成人播放| 亚洲免费播放| 国产精品va| 蜜桃视频一区二区| 久久中文无码精品| 精品福利视频导航| 国产靠逼视频| 成人毛片免费在线观看| 欧美97色| 日本免费一区视频| 99资源在线| 为你提供最新久久精品久久综合| 中文成人在线视频| 国产资源免费观看| 中文无码毛片又爽又刺激| 91青草视频| 欧美午夜视频在线| 丰满人妻久久中文字幕| 在线无码九区| 91久久大香线蕉| 毛片手机在线看| 免费一级毛片在线观看| 久久中文字幕2021精品| 中文字幕亚洲无线码一区女同| 国产麻豆91网在线看| 国产精品嫩草影院av| 中文字幕调教一区二区视频| 91精品专区国产盗摄| 色综合天天操| 欧美中文字幕在线二区| 日韩国产一区二区三区无码| 亚洲国产精品成人久久综合影院| 最新精品久久精品| 伊人久久久久久久久久| 亚洲无码一区在线观看| 亚洲成肉网| 亚洲AV色香蕉一区二区| 无码粉嫩虎白一线天在线观看| 91无码人妻精品一区二区蜜桃| 天堂成人在线| 国产99热| 永久毛片在线播| 久久大香伊蕉在人线观看热2| 欧美伦理一区| 91福利国产成人精品导航|