在LabVIEW中驅(qū)動(dòng)數(shù)據(jù)采集卡的三種方法_第1頁
在LabVIEW中驅(qū)動(dòng)數(shù)據(jù)采集卡的三種方法_第2頁
在LabVIEW中驅(qū)動(dòng)數(shù)據(jù)采集卡的三種方法_第3頁
在LabVIEW中驅(qū)動(dòng)數(shù)據(jù)采集卡的三種方法_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、在 LabVIEW 中驅(qū)動(dòng)數(shù)據(jù)采集卡的三種方法作者 :EEFOCUS 文章來源 :EDN China一、引言近年來,面向儀器的軟件開發(fā)平臺(tái),如美國 NI 公司 LabVIEW 的成熟和商業(yè)化,使用者在 配有專用或通用插卡式硬件和軟件開發(fā)平臺(tái)的個(gè)人計(jì)算機(jī)上, 可按自己的需求, 設(shè)計(jì)和組建各種 測(cè)試分析儀器和測(cè)控系統(tǒng)。由于 LabVIEW 提供的是一種適應(yīng)工程技術(shù)人員思維習(xí)慣的圖形化編 程語言,圖形界面豐富,內(nèi)含大量分析處理子程序, 使用十分方便,個(gè)人儀器發(fā)展到了使用者也 能設(shè)計(jì),開發(fā)的新階段。鑒于是工程技術(shù)人員自己編制, 調(diào)用軟件來開發(fā)儀器功能, 軟件成了儀器的關(guān)鍵。 故人們也 稱這類個(gè)人儀器為

2、虛擬儀器,稱這種主要由使用者自己設(shè)計(jì),制造儀器的技術(shù)為虛擬儀器技術(shù) ( Virtual Instrumentation Technology )。使用虛擬儀器技術(shù),開發(fā)周期短、儀器成本低、界面友 好、使用方便、可靠性高 , 可賦于檢測(cè)儀初步智能,能共享 PC 機(jī)豐富的軟硬件資源,是當(dāng)前儀 器業(yè)發(fā)展的一個(gè)重要方面。虛擬儀器的典型形式是在臺(tái)式微機(jī)系統(tǒng)主板擴(kuò)展槽中插入各類數(shù)據(jù)采集插卡, 與微機(jī)外被測(cè) 信號(hào)或儀器相連,組成測(cè)試與控制系統(tǒng)。但 NI 公司出售的,直接支持 LabVIEW 的插卡價(jià)格十 分昂貴,嚴(yán)重限制著人們用 LabVIEW 來開發(fā)各種虛擬儀器系統(tǒng)。在 LabVIEW 中如何驅(qū)動(dòng)其它 低

3、價(jià)位的數(shù)據(jù)采集插卡,成為了國內(nèi)許多使用者面臨的關(guān)鍵問題。二、三種在 LabVIEW 中使用國產(chǎn)數(shù)據(jù)采集插卡的方法筆者將近年來工程應(yīng)用中總結(jié)出的三種在 LabVIEW 中驅(qū)動(dòng)通用數(shù)據(jù)采集插卡的方法介紹如下。介紹中,以某市售 8 通道 12 位 A/D 插卡為例。設(shè)插卡基地址為base=0x100 ,在 C 語言中,選擇信號(hào)通道ch的指令是 _outp (base, ch),啟動(dòng)A/D的指令是np (base),采樣量化后的 12位二進(jìn)制數(shù)的高 4位存于base+2中,低8位存于base+3中。1 、直接用 LabVIEW 的 In Port , Out Port 圖標(biāo)編程LabVIEW 的 Fu

4、nctions 模板內(nèi) Adevanced Memory 中的 In Port 、Out Port 圖標(biāo),與 _inp、 _outp 功能相同,因此可用它們畫程序方框圖 , 設(shè)計(jì)該 A/D 插卡的驅(qū)動(dòng)程序。 N 個(gè)通道掃描,各 采集 n 點(diǎn)數(shù)據(jù)的 LabVIEW 程序方框圖如圖 1 所示。 圖中用 LabVIEW 的計(jì)時(shí)圖標(biāo)控制掃描速率。圖1 N個(gè)通道掃描,各采集 n點(diǎn)數(shù)據(jù)的程序方框圖顯然,若采樣速率要求較低,這不失為最方便、直觀的方法,而且可隨畫隨改。2、用LabVIEW 的CIN圖標(biāo)生成A/D插卡驅(qū)動(dòng)程序的子 VILabVIEW 的 Functions 模板內(nèi) Adevaneed 中有一個(gè)

5、 CIN ( Code InteRFace Node)圖標(biāo),用來 在LabVIEW 程序方框圖中直接調(diào)其它編程語言(如VC )寫的代碼。現(xiàn)以生成一個(gè)對(duì)指定的通道采集n點(diǎn)數(shù)據(jù)的LabVIEW 子VI為例,其主要步驟為:01 艸001002ill?U32圖2 CIN圖標(biāo)(1) 在LabVIEW 下,點(diǎn)岀CIN圖標(biāo),拖大并聯(lián)接入兩個(gè)控件和一個(gè)顯件,如圖2所示。 其中控件用于選擇模擬信號(hào)輸入通道和選擇數(shù)據(jù)采集點(diǎn)數(shù),數(shù)組顯件顯示所采集的數(shù)據(jù)。(2) 在CIN圖標(biāo)上單擊鼠標(biāo)右鍵彈岀菜單,選Create .c file.,產(chǎn)生并存入一個(gè) xxC程序 框架。(3)在VC+5.0下完成xxx;C程序框架的數(shù)據(jù)采

6、集部分的編寫,編譯該 XXXC程序(示例 見附1 ),生成 xxxobj代碼。在 coustom build方式下用nmake / f xxivm 指令將xxxivm接口 程序(示例見附 2)編譯成xxxisb代碼。(4) 在LabVIEW 的CIN圖標(biāo)下裝載xxx.lsb。運(yùn)行成功后將該CIN作成子VI ,存入某個(gè)文件夾在以后的LabVIEW 應(yīng)用程序框圖中,該子VI圖標(biāo)即可作此 A/D插卡驅(qū)動(dòng)圖標(biāo)使用。若A/D插卡上有晶振作基準(zhǔn)時(shí)鐘,有可編程計(jì)數(shù)/定時(shí)器,附錄1示例的C語言程序還可加入定時(shí)采集語句,以實(shí)現(xiàn)在子 VI中選擇采樣速率。圖 3是調(diào)用按上述步驟生成的子 VI編程所 采集的方波信號(hào)及

7、其自功率譜。9匸莊哉I1.C-0.0-H.0-2. 5-& 00 0.010 020.C3 0.04 005 0Jt砂D6 C. 07 0 0 0.09 0 10一頻諳一0.5-0.01000. C 2000.03000.0400C.05000.圖3采集的方波信號(hào)及其自功率譜用CIN結(jié)點(diǎn)生成A/D插卡驅(qū)動(dòng)程序的子VI的方法可較充分發(fā)揮A/D的高轉(zhuǎn)換速度,獲得高的采樣速率。但編程較煩雜,不能由 LabVIEW 直接修改3、用LabVIEW 的Call Library Functions圖標(biāo),動(dòng)態(tài)鏈接數(shù)據(jù)采集插卡的.DLL庫函數(shù)許多數(shù)據(jù)采集插卡附有.DLL庫函數(shù)形式的驅(qū)動(dòng)程序,用戶可使用某種DLL

8、鏈接庫的編程工具,女口 VC、VB,編寫應(yīng)用程序來調(diào)用它。LabVIEW也提供了一個(gè)動(dòng)態(tài)鏈接庫函數(shù)的圖標(biāo)CallLibrary Function,放在Functions模板內(nèi)的 Adevaneed子模板中。在 example/dll目錄中有使用該 圖標(biāo)的例子,可參照它們完成對(duì)數(shù)據(jù)采集插卡的.DLL庫函數(shù)的調(diào)用。三、兩個(gè)測(cè)試系統(tǒng)實(shí)例1、滾動(dòng)軸承振動(dòng)虛擬檢測(cè)儀該滾動(dòng)軸承振動(dòng)虛擬檢測(cè)儀是為檢測(cè)低噪聲軸承強(qiáng)調(diào)的異音”而開發(fā)的。目前國內(nèi)滾動(dòng)軸承岀廠振動(dòng)分類檢測(cè)的行業(yè)標(biāo)準(zhǔn)和檢測(cè)儀器(如S0910型)都只能檢測(cè)振動(dòng)加速度的均方根值,遠(yuǎn)不能適應(yīng)低噪聲軸承的要求。我們?cè)?LabVIEW 下,用 PC 機(jī)加國產(chǎn)

9、12 位 A/D 插卡,開發(fā)出的虛擬檢測(cè)儀,采樣速率最 高達(dá) 80KHz 。按每 2 秒檢測(cè)一個(gè)軸承的迫節(jié),以加速度均方值的分貝值,峰值因子,峭度,超 某幅值峰數(shù)四個(gè)參數(shù)來綜合評(píng)定軸承振動(dòng)級(jí)別。PC機(jī)14的CRT,對(duì)檢驗(yàn)員有極佳的可視性,檢測(cè)確定的軸承等級(jí)由軟指示燈閃爍顯示, 在面板上十分醒目, 便于檢驗(yàn)后歸類。 每個(gè)軸承的檢 驗(yàn)結(jié)果自動(dòng)寫入當(dāng)班統(tǒng)計(jì)文件中, 供生產(chǎn)和質(zhì)檢部門使用。 檢測(cè)程序讀入各類設(shè)置文件便可適應(yīng) 不同類型軸承或不同的檢測(cè)分類標(biāo)準(zhǔn)。2、空調(diào)散熱器試驗(yàn)測(cè)溫系統(tǒng)為對(duì)某空調(diào)散熱器進(jìn)行散熱性能試驗(yàn),開發(fā)出多點(diǎn)熱電偶測(cè)溫的虛擬儀器系統(tǒng)。硬件選用一國產(chǎn)有 A/D 及 DIO 的 PC 機(jī)

10、插卡,外串接三塊前端信號(hào)處理板。每塊前端信號(hào) 處理板提供一個(gè)冷端補(bǔ)償電路,并可接 16 路熱電偶。每塊前端板的冷端補(bǔ)償電壓和熱電偶電勢(shì) 各占用插卡的一個(gè)模擬輸入通道,由插卡的發(fā)出的 4位數(shù)字輸出選擇各熱電偶電勢(shì)輸入。由于溫度采集速率甚低,直接用 LabVIEW 的 In Port , Out Port 圖標(biāo)編程完全可滿足要求。 編程中調(diào)用了 LabVIEW 中 Functions 模板內(nèi) Data Acquisition Signal ConditioningConvert Thermcouple Reading 圖標(biāo),稍作修改,生成了各類標(biāo)準(zhǔn)熱電偶溫度轉(zhuǎn)換為電壓,電壓轉(zhuǎn)換為溫 度的新的子 V

11、I 。編程十分簡(jiǎn)便,且能用于各類標(biāo)準(zhǔn)熱電偶測(cè)溫。附1 XXX. C源程序/* CIN source file */#include c:labviewcintoolsextcode.h#include conio.h typedef struct int32 dimSize;float32 arg11; TD1;typedef TD1 *TD1Hdl;CIN MgErr CINRun(int32 *n, TD1Hdl xarray, int32 *ch);CIN MgErr CINRun(int32 *n, TD1Hdl xarray, int32 *ch) /* ENTER YOUR CODE HERE */int base , i, ns,c;uInt8 h,l;float *xarrayElmtp;ns=*n;/* 采樣點(diǎn)數(shù) */ c=*ch;/* 模入通道號(hào) */ SetCINArraySize(UHandle)xarray,1,ns);(*xarray)-dimSize=ns; xarrayElmtp=(*xarray)-arg1;base=0x100; /* 數(shù)據(jù)采集插卡基地址 */ _outp(base,c); /* 選擇模入通道 */ for (i=0;i_outp(base+1,0); /* 啟動(dòng) A/D*/ do ; while (_inp(0x101)&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論