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

基于LabVIEW的普通數(shù)據(jù)采集卡驅(qū)動研究

2010-05-13 08:46:00劍,李巴津
現(xiàn)代電子技術(shù) 2009年12期
關(guān)鍵詞:數(shù)據(jù)采集

武 劍,李巴津

摘 要:針對功能強大,應用廣泛的虛擬儀器開發(fā)軟件LabVIEW只能直接支持NI公司的數(shù)據(jù)采集卡,而不能直接使用普通數(shù)據(jù)采集卡的問題。重點研究在LabVIEW平臺下驅(qū)動普通數(shù)據(jù)采集卡的重要方法即調(diào)用動態(tài)鏈接庫,并結(jié)合具體實例介紹了在LabVIEW中調(diào)用動態(tài)鏈接庫的關(guān)鍵技術(shù)及步驟,實現(xiàn)了LabVIEW與普通數(shù)據(jù)采集卡的結(jié)合。實際證明,采用這種方法省去了復雜的語言編程,縮短了軟件的開發(fā)時間,節(jié)約了系統(tǒng)開發(fā)成本,同時也增加了應用的靈活性。

關(guān)鍵詞:LabVIEW;動態(tài)鏈接庫;虛擬儀器;數(shù)據(jù)采集

中圖分類號:TP399文獻標識碼:A

文章編號:1004-373X(2009)12-149-03

Research on Driver of General Data Acquisition Card Based on LabVIEW

WU Jian,LI Bajin

(College of Information Engineering,Inner Mongolia University of Technology,Hohhot,010051,China)

Abstract:Facing the problem that virtual instrumentation development software such as LabVIEW can only support its company′s card and can not support other company′s DAQ card,an important method of using an ordinary DAQ card in virtual instrumentation development software which is calling dynamic link library functions is studied.And from the examples,the key process and procedure of calling dynamic link library functions in LabVIEW is presented.It realizes the combination of LabVIEW and ordinary DAQ card.It proves that this method can avoid the complicated computer program,shorten software-developing time,save cost and increase the application agility.

Keywords:LabVIEW;dynamic link library;virtual instrument;data acquisition

0 引 言

虛擬儀器技術(shù)是20世紀90年代發(fā)展起來的一種新技術(shù),融計算機和總線技術(shù)、微電子技術(shù)、測量技術(shù)于一身,它是對傳統(tǒng)儀器的重大突破,是計算機技術(shù)與儀器技術(shù)相結(jié)合的產(chǎn)物。它利用計算機系統(tǒng)的強大功能,結(jié)合相應的硬件,大大突破傳統(tǒng)儀器在數(shù)據(jù)處理、顯示和存儲以及系統(tǒng)維護和擴展等方面的限制。虛擬儀器的眾多優(yōu)點使其得到了廣泛的應用,然而當今著名的虛擬儀器開發(fā)軟件(如LabVIEW等)只能支持NI公司生產(chǎn)的數(shù)據(jù)采集卡,而不能直接驅(qū)動普通的數(shù)據(jù)采集卡。本文重點研究了在虛擬儀器開發(fā)軟件平臺LabVIEW下使用普通數(shù)據(jù)采集卡的方法。

1 虛擬儀器開發(fā)平臺 LabVIEW與數(shù)據(jù)采集卡的連接

LabVIEW是美國NI公司推出的一種基于G語言(Graphics Language),即圖形化編程語言的虛擬儀器軟件開發(fā)工具,具有強大的數(shù)據(jù)采集功能,通常只支持NI公司的數(shù)據(jù)采集卡,而這些卡的價格比較昂貴。因此,為了能在LabVIEW平臺上驅(qū)動普通的數(shù)據(jù)采集卡,用戶必須通過LabVIEW所提供的調(diào)用庫函數(shù)節(jié)點(Call Library Function Node,CLFN)及代碼接口節(jié)點(Code Interface Node,CIN)等功能,將功能強大、編程靈活、而且已有很多現(xiàn)成程序模塊的C語言同LabVIEW中編程直觀方便的圖形化G語言結(jié)合起來,從而實現(xiàn)用普通的數(shù)據(jù)采集卡來采集數(shù)據(jù)的功能,使LabVIEW在對硬件的支持上有了一個質(zhì)的飛躍。

在LabVIEW中利用CLFN節(jié)點可以較容易地實現(xiàn)訪問動態(tài)鏈接庫(DLL),而且在購買數(shù)據(jù)采集卡的時,廠商一般會給用戶提供動態(tài)鏈接庫。所以研究在LabVIEW平臺下調(diào)用動態(tài)鏈接庫驅(qū)動普通的數(shù)據(jù)采集卡來實現(xiàn)數(shù)據(jù)采集更具有普遍性。

2 基于動態(tài)鏈接庫的普通數(shù)據(jù)采集卡的驅(qū)動

2.1 動態(tài)鏈接庫概述

動態(tài)鏈接是一種應用程序在運行時與庫文件連接起來的技術(shù)。動態(tài)鏈接庫(DLL)是一個可以多方共享的程序模塊,提供函數(shù)供Windows應用程序或其他的動態(tài)鏈接函數(shù)庫直接或間接調(diào)用,只有在別的模塊中調(diào)用了它的某個函數(shù)以后才發(fā)生作用。它是在應用程序運行時被裝入和鏈接的,而不是把庫代碼復制到應用程序中,只是在程序中記錄了函數(shù)的入口點和接口。動態(tài)鏈接庫獨立于編程語言,因此LabVIEW可以調(diào)用用大多數(shù)語言(如Visual C++,C++ Builder等)編寫生成的動態(tài)鏈接庫。在調(diào)用DLL的函數(shù)時,必須知道以下4個信息:函數(shù)返回的數(shù)據(jù)類型,函數(shù)調(diào)用的方式,函數(shù)的參數(shù)及類型,DLL庫文件的位置等。

2.2 LabVIEW對DLL的調(diào)用

通過對Call Library Function Node的配置可以實現(xiàn)DLL的調(diào)用,關(guān)鍵要了解被調(diào)用的函數(shù)名稱、功能及其輸入/輸出參數(shù)。配置節(jié)點的目的在于指定DLL模塊中與LabVIEW數(shù)據(jù)交換的相應驅(qū)動函數(shù)。調(diào)用Call Library Function模塊,雙擊此模塊,在彈出CLF對話框中進行節(jié)點配置,CLF函數(shù)配置對話框見圖1。第一個參數(shù)“庫名或路徑”,填入需要調(diào)用的動態(tài)鏈接庫文件的名字和路徑。第二個參數(shù)“函數(shù)名”,是鏈接庫中要調(diào)用的函數(shù)名稱。當在庫名或路徑欄中設(shè)定了DLL的路徑后,在函數(shù)名下拉框中就可以看到該動態(tài)鏈接庫所包含的所有函數(shù)名。第三個參數(shù)“調(diào)用規(guī)范”,此欄中可以設(shè)置該動態(tài)鏈接庫是標準WINAPI調(diào)用還是普通的C調(diào)用。一般來說,都采用C調(diào)用,但是對于API調(diào)用則必須選擇stdcall(WINAPI),最后一個需要注意的參數(shù)選項是線程安全選擇,此欄中可以選擇DLL是否可以被重入調(diào)用,默認情況是在UI線程中運行,即該動態(tài)鏈接庫只能在User Interface Thread下運行。如果動態(tài)鏈接庫中被調(diào)用的函數(shù)返回時間很長,那么就會導致LabVIEW不能執(zhí)行UI線程中的其他任務,因此界面反應可能會很慢,甚至停止。這時候最好把它設(shè)為重入,若設(shè)置為重入,則該動態(tài)鏈接庫可以由多個線程同時調(diào)用,但前提是必須保證該DLL能被多個線程同時安全調(diào)用。

圖1 Call Library Function配置對話框

在參數(shù)配置菜單下設(shè)置函數(shù)的返回值類型和輸入?yún)?shù)。對話框右側(cè)對應每一個參數(shù)的參數(shù)名稱、類型、數(shù)據(jù)類型、參數(shù)傳遞方式。其中,需要注意的是數(shù)據(jù)類型選項,在不同的編譯平臺下,數(shù)據(jù)類型的定義名稱是不一樣的。為了將數(shù)據(jù)類型一一對應,在LabVIEW中必須對數(shù)據(jù)類型名稱定義進行轉(zhuǎn)換。

3 普通數(shù)據(jù)采集卡在LabVIEW平臺下的應用實例

以北京優(yōu)采公司的UA301A型A/D數(shù)據(jù)采集卡為例,該采集卡在LabVIEW平臺下不能直接被驅(qū)動。該采集卡提供了一個動態(tài)鏈接庫ua300a.dll,此動態(tài)鏈接庫中提供了許多簡潔高效的采集和控制函數(shù),支持UA301A采集器的各種功能。

UA301A為12位的A/D卡,系統(tǒng)中采用的是雙極性輸入信號和雙極性原碼的編碼方法,轉(zhuǎn)換的結(jié)果為二進制數(shù),轉(zhuǎn)換后得到0~4 095的數(shù)字量。為了直觀表示被測物理量,需將轉(zhuǎn)換后的數(shù)字量變換為具有實際工程意義的數(shù)值。當單極性信號輸入時,模擬電壓值V與數(shù)字量D的對應關(guān)系可描述為:V=D/4 095×10;當輸入信號為雙極性時,兩者的對應關(guān)系為:V=(D-2 048)/4 095×10。這個轉(zhuǎn)換過程在驅(qū)動設(shè)計中可采用Case結(jié)構(gòu)來完成,把選擇輸入信號為單極性還是雙極性作為這個Case結(jié)構(gòu)的布爾值輸入。數(shù)據(jù)采集驅(qū)動程序框圖如圖2所示。

圖2 調(diào)用DLL的數(shù)據(jù)采集驅(qū)動程序框圖

圖2中4個CLF節(jié)點分別用來調(diào)用OpenUA300,minitz,readdataz,CloseUA300這四個函數(shù)。

對于LabVIEW與DLL函數(shù)之間傳遞數(shù)組類型數(shù)據(jù),無論采用何種數(shù)組格式進行傳遞,都需要在LabVIEW中為數(shù)組預先分配空間,也就是給該數(shù)組開辟緩存,不然會導致程序崩潰。該程序在采集數(shù)據(jù)前預先為其初始化一個二維數(shù)組空間,為了使采集到的數(shù)據(jù)在數(shù)組中的位置始終對應于采樣的每一通道,初始化數(shù)組空間時設(shè)置每通道采樣點數(shù)為行,采集通道數(shù)為列,這樣數(shù)據(jù)從采集卡FIFO存入緩存時,每一列對應每一通道的數(shù)據(jù),省去了后續(xù)通過循環(huán)索引出各通道數(shù)據(jù)的繁瑣。

為了實現(xiàn)數(shù)據(jù)的連續(xù)采集,系統(tǒng)應保持在循環(huán)狀態(tài),設(shè)計中采用While循環(huán)來實現(xiàn)這一功能,但是LabVIEW在執(zhí)行While循環(huán)時,如果用戶沒有給它設(shè)定循環(huán)時間間隔,則它將以CPU的極限速度運行。這樣可能會導致整個LabVIEW程序看上去像死機一樣,所以需要給While循環(huán)加上一個指定的時間間隔。

在采集前首先設(shè)置采樣通道、采樣頻率、采樣點數(shù)、增益和數(shù)據(jù)傳輸方式等參數(shù),該接口驅(qū)動的前面板見圖3。

圖3 數(shù)據(jù)采集驅(qū)動程序前面板

4 結(jié) 語

由此可以看出,在LabVIEW中調(diào)用動態(tài)鏈接庫函數(shù),來驅(qū)動普通數(shù)據(jù)采集卡的技術(shù),顯示出了LabVIEW強大的外部程序接口能力。應用此方法設(shè)計數(shù)據(jù)采集系統(tǒng)一方面可充分利用LabVIEW的界面友好、圖形顯示和虛擬儀器強大的開發(fā)功能等優(yōu)點;另一方面又能大大降低系統(tǒng)的開發(fā)成本,可以使LabVIEW在對硬件的支持上有一個質(zhì)的飛躍。

通過LabVIEW的外部程序接口CLF節(jié)點訪問動態(tài)鏈接庫來調(diào)用Windows標準庫函數(shù),使得LabVIEW支持的數(shù)據(jù)采集板卡范圍突破了限制,同時也為LabVIEW訪問底層函數(shù)提供了一種新的思路。

參考文獻

[1]魏海燕,楊建新,都鼎新,等.基于LabVIEW的虛擬儀器開發(fā)[J].機械工程師,2004(4):50-51.

[2]Using External Code in LabVIEW[Z].National Instruments LabVIEW User Manual,2000.

[3]張凱,周陬,郭棟.虛擬儀器工程設(shè)計與開發(fā)[M].北京:國防工業(yè)出版社,2004.

[4]林康紅,唐海峰.動態(tài)鏈接庫DLL在虛擬儀器中的應用[J].計算機應用,2002(5):56-60.

[5]熊煥庭.在LabVIEW中數(shù)據(jù)采集卡的三種驅(qū)動方法[J].電測與儀表,2001,38(8):35-37.

[6]楊樂平,李海濤.LabVIEW高級程序設(shè)計[M].北京:清華大學出版社,2003.

[7]龍志強,呂治國.LabVIEW與通用數(shù)據(jù)采集卡的接口方法研究[J].微計算機信息,2001(9):11-13.

[8]北京優(yōu)采測控有限公司.UA301A型A/D采集器使用說明[Z].2003.

[9]李廣軍,王厚軍.實用接口技術(shù)[M].成都:電子科技大學出版社,1998.

[10]陳錫輝,張銀鴻.LabVIEW8.20程序設(shè)計從入門到精通[M].北京:清華大學出版社,2007.

猜你喜歡
數(shù)據(jù)采集
Web網(wǎng)絡(luò)大數(shù)據(jù)分類系統(tǒng)的設(shè)計與改進
CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應用
基于大型嵌入式系統(tǒng)的污水檢測系統(tǒng)設(shè)計
社會保障一卡通數(shù)據(jù)采集與整理技巧
基于AVR單片機的SPI接口設(shè)計與實現(xiàn)
CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應用
大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時空分布研究綜述
基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
軟件工程(2016年8期)2016-10-25 15:52:53
主站蜘蛛池模板: 一级毛片免费的| 日韩精品一区二区深田咏美 | 福利国产在线| 亚洲高清资源| 老色鬼久久亚洲AV综合| 亚洲无码高清视频在线观看| 天堂在线视频精品| 九九九国产| 亚洲中文久久精品无玛| 国产高清又黄又嫩的免费视频网站| 国产日本欧美在线观看| 精品国产网站| 91色老久久精品偷偷蜜臀| 亚洲欧美激情另类| 亚洲首页国产精品丝袜| 99re免费视频| 国产精品视频猛进猛出| 99这里只有精品免费视频| 久久精品人人做人人爽电影蜜月| 2020精品极品国产色在线观看| 欧美三级不卡在线观看视频| 中文字幕在线欧美| 欧美成人在线免费| 黄色国产在线| 亚洲欧美一区二区三区麻豆| 91久久国产成人免费观看| 国产特级毛片| 亚洲国产成人精品一二区| 四虎永久在线视频| 婷五月综合| 高h视频在线| 亚洲人成日本在线观看| 综合久久五月天| 九九热在线视频| 欧美精品在线观看视频| 狠狠ⅴ日韩v欧美v天堂| 亚洲无码久久久久| 99er这里只有精品| 国产91熟女高潮一区二区| 国产伦精品一区二区三区视频优播| 国产91熟女高潮一区二区| 99精品热视频这里只有精品7| 国产va在线观看| 久草视频精品| 91免费在线看| 免费人成又黄又爽的视频网站| 日韩毛片免费视频| 69免费在线视频| 99久久精品免费看国产免费软件| 国产成人精品视频一区二区电影| 日日拍夜夜嗷嗷叫国产| 日韩一区二区三免费高清| 91破解版在线亚洲| 国产成人调教在线视频| 国产精品露脸视频| 高清亚洲欧美在线看| 无码免费视频| 啪啪国产视频| 成人国产三级在线播放| 久久精品无码国产一区二区三区| 熟妇人妻无乱码中文字幕真矢织江 | 久久久久青草大香线综合精品| 亚洲欧美另类中文字幕| 日韩成人午夜| 亚洲日韩精品无码专区97| 精品国产香蕉在线播出| 九九九九热精品视频| 五月天久久综合| 国产sm重味一区二区三区| A级毛片无码久久精品免费| 国产成人成人一区二区| 日韩欧美中文字幕在线精品| 丝袜无码一区二区三区| 欧洲日本亚洲中文字幕| 日韩在线欧美在线| 亚洲欧美一级一级a| 伊人成人在线| 试看120秒男女啪啪免费| 色妞永久免费视频| 欧美精品不卡| 狠狠色综合久久狠狠色综合| 国产精品主播|