虛擬儀器軟件編程_第1頁
虛擬儀器軟件編程_第2頁
虛擬儀器軟件編程_第3頁
虛擬儀器軟件編程_第4頁
虛擬儀器軟件編程_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

6-2DAQ虛擬儀器軟件編程2.1DAQ軟件的組成

2.2LabVIEW的DAQ軟件概述2.3模擬輸入2.4模擬輸出2.2數(shù)字I/O和計數(shù)器2.6DAQmx

2.7DAQ驅動程序的開發(fā)2.7數(shù)據(jù)采集卡驅動程序設計及動態(tài)鏈接庫開發(fā)2.1DAQ軟件的組成

DAQ軟件包括DAQ驅動軟件和DAQ儀器應用軟件兩大部分1.數(shù)據(jù)采集卡的驅動軟件2.PC-DAQ儀器的應用軟件編程數(shù)據(jù)采集卡的驅動軟件1)驅動軟件的作用在基于DAQ插卡的虛擬儀器系統(tǒng)中,驅動軟件起著非常重要的作用,它將DAQ插卡和計算機組合成為一個DAQ儀器系統(tǒng),進行完整的數(shù)據(jù)采集、分析和顯示。

2)驅動軟件的基本要求用戶在選擇或開發(fā)通用驅動軟件時,應注意以下問題。(1)驅動軟件支持的編程語言和軟件開發(fā)環(huán)境(2)驅動函數(shù)的可用性

PC-DAQ儀器的應用軟件編程

在設計DAQ儀器的時候,用戶必須根據(jù)選擇DAQ數(shù)據(jù)采集卡的情況,分以下兩種情況進行考慮。(1)NI公司生產(chǎn)的數(shù)據(jù)采集卡可利用編程語言驅動程序函數(shù)來驅動數(shù)據(jù)采集卡。用戶只需正確設置輸入?yún)?shù),就可實現(xiàn)數(shù)據(jù)采集的任務,而不需編寫代碼程序。(2)非NI公司生產(chǎn)的數(shù)據(jù)采集卡可利用變成直接驅動的方法來實現(xiàn)采集卡的軟件驅動,此時,用戶需要自己編寫DAQ卡的驅動軟件。

下面介紹在驅動軟件的基礎上,如何來進行PC-DAQ儀器的應用軟件設計。

1)數(shù)據(jù)采集卡驅動程序的安裝2)數(shù)據(jù)采集卡的參數(shù)設置(1)模擬信號輸入部分的設置:(2)A/D轉換部分的設置(3)D/A轉換部分的設置2.2LabVIEW的DAQ軟件概述1、引言數(shù)據(jù)采集(DAQ)是虛擬儀器獲取信息的必不可少的基本功能,DAQ軟件是LabVIEW的核心,使用LabVIEW,必須要掌握如何使用DAQ軟件。本節(jié)討論的DAQ軟件主要指DAQ硬件的驅動程序。NI推出了LabVIEW7.0后,使得原本十分強大的DAQ功能變得更加完善。它包含有很多DAQ卡的驅動,分別有各自的API函數(shù)。本章將分兩部分講述如何使用DAQ。第一部分講述LabVIEW老版本的DAQ,第二部分將簡單講述LabVIEW新版本的DAQ的新特性。重點介紹DAQ章VI的應用,從初級VI入手,再結合一些非常有用的高級VI的用法。1)在某些情況下,是必須要用到傳統(tǒng)DAQ的,這些情況有:

NI-DAQmx不支持的裝置,使用了帶有加速計、線性電壓差分變換(LVDT)或者旋轉可變差分變換(RVDT)虛擬通道的SCXI-1230、SCXI-1231、SCXI-1240裝置使用了LabVIEW實時(RT)模塊。已從NI-DAQ6.9升級,但是應用程序沒有完全升級。使用7.0版本以前的LabVIEW、LabWindows/CVI、MeasurementStudio。使用VisualBasic6.0。2)在NI-DAQ6.9版中支持,但是NI-DAQ7.0版中不再支持的包括:

LabVIEW、LabWindows/CVI、MeasurementStudio應用軟件6.0以前的版本;Windows92操作系統(tǒng);一些較老的設備2、傳統(tǒng)DAQ庫VI

所有功能模塊內的VI可以分為三個層次,這三個層次也體現(xiàn)了用戶對DAQ不同層次的操作。

DAQ子模塊第一層次DAQ子模塊第二層次DAQ子模塊第三層次1.初級入門級的VI,功能相當有限,是對DAQ底層操作的簡化,位于最高層。用戶在這個層面上操作DAQ,不管是獲得模擬數(shù)據(jù)還是模擬輸出,或者是數(shù)字I/O以及計數(shù)器和定時器的使用,幾乎不需要知道DAQ庫VI的細節(jié)。初級VI是對開發(fā)者工作的最大簡化。但是某些操作,甚至非常常用的操作不能夠用初級VI來實現(xiàn)。這些包括連續(xù)緩沖輸入輸出、觸發(fā)等。2.中級當用戶對DAQ驅動庫有一定的了解后,中級VI是用得最多的,因為它們可以提供相對于初級VI多得多的功能,并且可以完成大部分的工作。中級VI的重要功能包括:①高級緩沖管理,如循環(huán)緩沖;②外部時鐘和觸發(fā)選擇;③暫停限制;④校準以及硬件配置控制;⑤具有RTSI總線互連函數(shù)訪問權;⑥直接訪問狀態(tài)信息。3.高級高級VI和它的名字正相反,是對DAQ最底層的操作。它通過CIN節(jié)點直接訪問DAQ驅動,一般只有在很少的特殊功能中用到,包括:①多個緩存;②可訪問所有的狀態(tài)信息;③直接控制極性和增益;④通過采樣時鐘周期和時鐘因子確定采樣頻率;⑤無縮放輸出數(shù)據(jù)規(guī)范。2.3模擬輸入1.模入模塊分類2.簡易模入設計

3.中級模入設計

4.設計示例——連續(xù)信號采集與顯示儀模入模塊分類模擬輸入用于采集模擬信號,分為:(1)簡單模入VI(2)中級模入VI(3)通用模入VI(4)高級模入VI

簡易模入設計

簡易模入是LabVIEW提供的一組標準的、簡單易用的采集VI,主要有:

AISampleChannels:完成多通道的單點采集

AIAcquireWaveform:完成通道的波形采集

AIAcquireWaveforms:完成多通道的波形采集

1)AIAcquireWaveform.vi圖標(1)AIAcquireWaveform.vi的調用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AIAcquireWaveform.vi>>create.后,出現(xiàn)該圖標及其端口圖,如圖所示。AIAcquireWaveform.vi圖標及其端口(2)AIAcquireWaveform.vi圖標輸入端口參數(shù)設置device:設置DAQ的設備號channel:設置待采集的模擬信號所在通道號numberofsamples:設置采樣點數(shù)samplerate:設置采集速率highlimit(0.0):設置模擬信號的最大輸入值lowlimit(0.0):設置模擬輸入量的最小值(3)AIAcquireWaveform.vi圖標輸出端口參數(shù)設置waveform:1D數(shù)組,存放采集得到的數(shù)據(jù),數(shù)據(jù)類型為double型。actualsampleperiod(sec):采集卡返回的實際采樣率,有時相對于設定值有一定誤差,是double型的變量。2)AIAcquireWaveforms.vi圖標(1)AIAcquireWaveforms.vi的調用路徑選擇Funcations>>DataAcquisition>>AnalogInput>>AIAcquireWaveforms.vi>>create.,完成上述步驟后,出現(xiàn)該圖標及其端口圖,如圖所示。AIAcquireWaveforms.vi圖標及其端口(2)AIAcquireWaveforms.vi圖標輸入端口參數(shù)設置這里的輸入端口參數(shù)設置含義同AIAcquireWaveform.vi的輸入端口設置。(3)AIAcquireWaveforms.vi圖標輸出端口參數(shù)設置waveforms:2D數(shù)組,存放采集得到的數(shù)據(jù)和信號所在的通道。數(shù)據(jù)類型為double型。actualsampleperiod(sec):含義同上述的AIAcquireWaveform.vi圖標。3)AISampleChannel.vi圖標(1)AISampleChannel.vi圖標的調用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AISampleChannel.vi>>create,完成上述步驟后,出現(xiàn)該圖標及其端口圖,如圖所示。AISampleChannel.vi圖標及其端口(2)AISampleChannel.vi圖標輸入端口參數(shù)設置這里的輸入端口參數(shù)設置含義同AIAcquireWaveform.vi的輸入端口設置。(3)AISampleChannel.vi圖標輸出端口參數(shù)設置sample:模擬信號采集結果,是一個double型數(shù)值。因輸出值只有一個,因此對該模塊調用一次只能得到一個采集數(shù)據(jù)。4)AISampleChannels.vi圖標(1)AISampleChannels.vi圖標的調用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AISampleChannel.vi>>create,完成上述步驟后,出現(xiàn)該圖標及其端口圖,如圖所示。AISampleChannel.vi圖標及其端口(2)AISampleChannels.vi圖標輸入端口參數(shù)設置這里的輸入端口參數(shù)設置含義同AIAcquireWaveform.vi的輸入端口設置。(3)AISampleChannels.vi圖標輸出端口參數(shù)設置sample:模擬信號采集結果,是一個1D數(shù)組,由使用者自己設定采樣頻率和采樣點數(shù)?!纠?.1】單點采集練習打開一個新的VI,切換到BlockDiagram面板,添加一個AISampleChannel,并且添加Channel控件。Channel控件的添加方式有兩種:一種簡便的方式是在AISampleChannel的Channel端子單擊鼠標右鍵,選擇CreateControl命令選項;另一種方式是切換到前面板,選擇I/O子面板的TraditionalDAQChannel控件。設置輸入信號的上下限為10V和-10V。I/O子面板及TraditionalDAQChannel函數(shù)切換到前面板,添加合適的指示器。這里用的是Numeric里的Meter指示器。

單點采集系統(tǒng)的流程圖程序及前面板設計

【例2.2】波形采集練習YB1634函數(shù)發(fā)生器輸出頻率為302Hz,幅度(峰值)約4V的正弦波信號,送給PC1200采集卡的模擬輸入0通道。使用數(shù)據(jù)采集模板的模擬輸入子模板中的”AIAcquireWaveform”進行采集,采樣率設為100kHz,采樣點數(shù)為1000。采集結果用波形圖形和波形數(shù)組顯示。波形采集系統(tǒng)前面板和框圖程序設計【例2.3】波形采集練習(1)準備一個方波信號源和一個正弦波信號源,分別連接到模入通道0和1。(2)設置前面板和框圖如圖所示。(3)設置scan速率、通道號、每通道樣本數(shù),如前面板所示。(4)運行該程序。(2)保存為AcquireMultipleChannels.vi。(6)該程序是無緩沖、軟件觸發(fā)的雙通道采樣的前面板與流程圖中級模入設計中級模入有更好的功能與靈活性,可以更有效地開發(fā)用戶應用。它的特點包括控制內部采樣率、使用外部觸發(fā)、執(zhí)行連續(xù)外部觸發(fā)等。下面將描述它的各種VI,應該注意其大量輸入、輸出端子中的部分內容一般是不必理會的。有效地使用這些VI只需要關注需要的例子。如圖所示。

中級模入VI1)AIConfig.vi圖標AIConfig對指定的通道設置模入操作,包括硬件、計算機內buffer的分配。(1)AIConfig.vi圖標的調用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AIConfig.vi>>create.,完成上述步驟后,出現(xiàn)該圖標及其端口圖,如圖所示。AILonfig.vi圖標及其端口(2)AIConfig.vi圖標輸入端口參數(shù)設置device:DAQ設備的編號,默認值為1。channels:待采集的模擬信號所在通道號。buffersize:存儲采集數(shù)據(jù)的緩沖區(qū)大小(Int32),默認值為1000。errorin:前級輸入的錯誤代碼和信息。如果已經(jīng)發(fā)生了錯誤,則VI不執(zhí)行任何操作,將errorin由errorout傳送給后面的VI。(3)AIConfig.vi圖標輸出端口參數(shù)設置TaskID:任務標識符,用來指示當前任務的無符號整型量。errorout:給出錯誤代碼和信息。如果errorin已經(jīng)輸入錯誤代碼和信息,則errorout原封不動地傳給后面的VI,或者輸出錯誤代碼和信息。2)AIStart.vi圖標AIStart.vi啟動帶緩沖的模入操作。它控制數(shù)據(jù)采集速率、采集點的數(shù)目及使用任何硬件觸發(fā)的選擇。(1)AIStart.vi圖標調用路徑選擇選擇Functions>>DataAcquisition>>AnalogInput>>AIStart.vi>>create.,完成上述步驟后,出現(xiàn)該圖標及其端口如圖所示。AIStart.vi圖標及其端口(2)AIStart.vi圖標的輸入端口參數(shù)設置taskIDin:采集任務的標識符,標識該項采集任務。等于前面VI的輸出taskIDout的值。numberofscanstoacquire:設置需采集的采樣點數(shù)。默認值為-1,表示采集了一個緩沖區(qū)數(shù)據(jù)。scanrate:采樣速率,單位為點數(shù)/秒,默認值為1000個/秒;errorin:錯誤描述符,與AIConfig.vi模塊中的相同;(3)AIStart.vi圖標的輸出端口參數(shù)設置taskIDout:該值與taskIDin相同,把該標識符傳給下一個采集VI的taskIDin輸入端。errorout:輸出錯誤,與AIConfig.vi模塊中的相同;3)AIRead.vi圖標選擇Functions>>DataAcquisition>>AnalogInput>>AIRead.vi>>create.,完成上述步驟后,出現(xiàn)該圖標及其端口如圖所示。AIRead.vi圖標及其端口(2)AIRead.vi圖標輸入端口參數(shù)設置taskIDin:同AIStart.vi。numberofscanstoread:要讀取的數(shù)據(jù)總數(shù)(Int32),默認值是-1,表示讀取和numberofscanstoacquire相同個數(shù)的數(shù)據(jù)。errorin:同AIStart.vi。(3)AIRead.vi圖標的輸出端口參數(shù)設置taskIDout:同AIStart.vi。scaleddata:double型2D數(shù)組,存放采集結果。errorout:同AIStart.vi。4)AIClear.vi圖標AIClear的功能是清除模入操作、計算機中分配的緩沖、釋放所有數(shù)據(jù)采集卡的資源,例如計數(shù)器。(1)AIClear.vi圖標的調用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AIClear.vi>>create.,完成上述步驟后,出現(xiàn)該圖標及其端口圖,如圖2-18(a)和(b)所示。AIClear.vi圖標及其端口(2)AIClear.vi圖標輸入端口參數(shù)設置taskIDin:同AIRead.vi。errorin:同AIRead.vi。(3)AIClear.vi圖標的輸出端口參數(shù)設置taskIDout:同AIRead.vi。errorout:同AIRead.vi。2)AIReadOneScan.vi圖標AISingleScan(S-Scan)的功能是返回一個掃描數(shù)據(jù)。它的電壓數(shù)據(jù)輸出是由通道列表中的每個通道讀出的電壓數(shù)據(jù)。使用這個VI僅與AIConfig有關聯(lián),不需要AIStart和AIRead。(1)AIReadOneScan.vi圖標的調用路徑(2)AIReadOneScan.vi圖標輸入端口參數(shù)設置(3)AIReadOneScan.vi圖標輸出口參數(shù)設置AIReadOneScan.vi圖標及其端口4.設計示例——連續(xù)信號采集與顯示儀1)功能描述2)設計步驟(1)參數(shù)設置(2)前面板設計(3)流程圖設計AIAcquireWaveform.vi圖標及其端口2.4模擬輸出Analogoutput子模板的調用路徑為Functions>>DataAcquisition>>AnalogOutput。鼠標單擊后,出現(xiàn)AnalogOutput子模板,如圖所示。AnalogOutput對話框1.初級(簡易)模出設計(EasyAnalogOutput)這個模塊的初級VI有以下幾種:AOGenerateWaveformAOGenerateWaveformsAOUpdateChannelAOUpdateChannels與模擬輸入VI類似,輸入端有以下幾個。Device:DAQ的設備號。Channel:要測的模擬輸入通道名稱,缺省值是0。Value:寫入模擬輸出通道的數(shù)據(jù)。Waveform:寫入模擬輸出通道的波形數(shù)據(jù)。Updaterate:寫入數(shù)據(jù)速率。缺省值為每秒1000次。AOUpdateChannel函數(shù)及端口AOGenerateWaveform函數(shù)及端口【例2.4】生成單點數(shù)據(jù)練習使用AOUpdateChannel,實現(xiàn)單個模擬輸出通道的單點數(shù)據(jù)更新,一般用于產(chǎn)生激勵信號。流程圖程序如下圖所示。利用AOUpdateChannel函數(shù)實現(xiàn)單個模擬輸出通道的單點數(shù)據(jù)更新【例2.5】生成波形數(shù)據(jù)練習使用AOGenerateWaveform生成模擬輸出。在本例中,需要產(chǎn)生連續(xù)的波形數(shù)據(jù),這可以用LabVIEW自帶的波形發(fā)生器來實現(xiàn)。在Function面板的Analyze子面板的Waveformgeneration子面板內,有各種波形數(shù)據(jù)發(fā)生器。用戶也可用Analyze子面板的SignalProcessing子面板內的SignalGeneration子面板內的SignalGenerationbyDuration。如下圖所示Analyze子面板及所需函數(shù)生成波形數(shù)據(jù)流程圖程序設計系統(tǒng)前面板設計【例2.6】產(chǎn)生一個模出電平。面板及框圖如圖2-28所示。運行該程序,可以看到表的輸出將指示3。這個指示并非模出,為了看到模出,可以使用一塊數(shù)字萬用表直接測量DAC0OUT。你會發(fā)現(xiàn)萬用表的指示一直維持在3V,盡管程序早已執(zhí)行完了。面板及框圖【例2.7】產(chǎn)生一個模出波形面板及框圖2.中級模出(AnalogOutput)中級模出VI下圖所示1)AOConfig對指定的通道設置模出操作,包括硬件、計算機內buffer的分配。常用的端子有:(1)Device——采集卡的設備號。(2)Channel——指定模出通道號的串數(shù)組。(3)Limitsettings——指定輸出信號的范圍。(4)taskID——用于所有后來的模出VI以規(guī)定操作的設備和通道。2)AOWrite以電壓數(shù)據(jù)的方式寫數(shù)據(jù)到模出數(shù)據(jù)緩沖區(qū)。3)AOStart啟動帶緩沖的模出操作。4)AOWait在返回之前一直等待直到波形發(fā)生任務完成。5)AOClear的功能為清除模出操作、計算機中分配的緩沖、釋放所有數(shù)據(jù)采集卡的資源?!纠?.8】產(chǎn)生一個連續(xù)的正弦信號。面板及框圖說明以下幾點(1)由于AOWrite要求輸入數(shù)據(jù)的要示,這里正弦波發(fā)生器的輸出是一個waveform數(shù)據(jù)類型,首先將其中的Y數(shù)據(jù)提出,然后將它擴充為一個二維數(shù)組,再經(jīng)轉置后才可連接到AOWrite上。(2)在AOConfig中主要是設置了Buffer,這對于連續(xù)輸出是必須的,其他都選默認值。(3)Buffer的大小有時需要經(jīng)過調試,過大或過小都可能導致不能正常工作。使用AnalogOutputUtilities提供的連續(xù)模出的現(xiàn)成模塊也可以生成一個連續(xù)的正弦信號發(fā)生器,面板及框圖如圖2-32所示。該例子中開關是控制AOC-GEN內部的AOClear模塊。當其狀態(tài)為T時,運行程序將釋放計算機及采集卡資源,無信號輸出。在程序框圖上單擊AOC-GEN圖標,可以看到其內部結構。面板及框圖3.設計示例——連續(xù)信號輸出儀1)功能描述2)設計步驟(1)參數(shù)設置(2)前面板設計(3)流程圖設計3)運行檢驗AOUpdateChannel.vi圖標及端口參數(shù)2.2數(shù)字I/O和計數(shù)器1.數(shù)字I/O本節(jié)將講述數(shù)字信號的采集。數(shù)字I/O位于DataAcquisition面板的DigitalI/O子面板內,如圖所示。數(shù)字I/O子模板數(shù)字I/O的初級VI有以下幾種。ReadfromDigitalLine:從數(shù)字線讀出以數(shù)據(jù)。ReadfromDigitalPort:從數(shù)字端口讀取數(shù)據(jù)。WritetoDigitalLine:向數(shù)字線寫入數(shù)據(jù)。WritetoDigitalPort:向數(shù)字端口寫入數(shù)據(jù)。數(shù)字I/O有兩種方式:數(shù)字線和端口。數(shù)字I/O的端口初級數(shù)字I/OVI的使用和模擬I/OVI類似,下圖所示為數(shù)字輸入的流程圖程序。2.計數(shù)器1)計數(shù)器功能簡介2)計數(shù)器VI計數(shù)器VI計數(shù)器VI包含三層VI,低級用于簡單的操作,中級VI實現(xiàn)大多數(shù)功能,高級VI實現(xiàn)特有的底層操作。初級VI包含以下幾種:CountEventsorTime:事件和時間計數(shù)GenerateDelayedPulse:產(chǎn)生延遲脈沖GeneratePulseTrain:產(chǎn)生脈沖序列MeasureFrequency:測量頻率MeasurePulseWidthorPeriod:測量脈寬或周期【例2.9】下圖所示是一個CountEventsorTimeVI,用于時間和事件的計數(shù)。它從一開始進行計數(shù),然后通過While循環(huán)連續(xù)進行。在這里EventSource/Timebase輸入設置為0,代表用戶信號被用作計數(shù)器源輸入信號。循環(huán)外的布爾常量用于開啟計數(shù),用戶通過Stop按鈕終止計數(shù)。計數(shù)裝置的系統(tǒng)流程圖設計2.6DAQmx1.概述DAQmx的優(yōu)點如下:(1)增加DAQAssistant(2)更加完美的表現(xiàn)(3)更簡捷和直觀的API函數(shù)(4)功能得到擴展(2)增加與ANSIC、LabWindows/CVI、MeasurementStudio中API函數(shù)相近的API函數(shù)和功能使用DAQmx的必備條件(1)Windows操作系統(tǒng)(2)使用了PCI或者PXIE串行多功能DAQ裝置,并且支持SCXI或SCC模塊。(3)LabVIEW、LabWindows/CVI、MeasurementStudio的版本至少是7.0版本以上(包括7.0)。2.DAQAssistant

DAQmx所有的VI都位于Function面板的NIMeasurement子面板的DAQmx-DataAcquisition子面板內,如圖所示。DAQmx的VI所在面板有兩種方式可以選擇DAQAssistant:一種是在DAQmx-DataAcquisition子面板內選擇;另外一種是分別在ExpressFunction的Input和Output子面板內選擇,如下圖所示。ExpressFunction的Input子面板和Output子面板選擇DAQmxAssistant,系統(tǒng)將自動打開一個新的窗口,即DAQmx圖形設置窗口,如圖所示。

AnalogInput界面模擬輸入信號被劃分為以下幾大類:Voltage(電壓)、Temperature(溫度)、Strain(應變)、Current(電流)、Resistance(電阻)、Frequency(頻率)等,如圖所示。DigitalI/O界面【例2.10】頻率計數(shù)是計數(shù)器非常重要的作用之一。實現(xiàn)頻率計數(shù)的方法包括適用于低頻計數(shù)的周期時間求倒數(shù)法和適用于高頻計數(shù)的邊沿計數(shù)法。頻率計數(shù)的系統(tǒng)流程圖程序設計3.DAQmx的應用DAQmx

Write.vi:向指定的虛擬通道或者任務寫入數(shù)據(jù)。DAQmx

Read.vi:從指定的虛擬通道或者任務讀取數(shù)據(jù)。DAQmxWaitUntilDone.vi:等待數(shù)據(jù)采集完成。DAQmx

Timing.vi:為數(shù)據(jù)采集配置采集速率和創(chuàng)建緩沖器。DAQmx

Trigger.vi:為數(shù)據(jù)采集任務配置觸發(fā)源,觸發(fā)數(shù)據(jù)采集。DAQmxStartTask.vi:開始數(shù)據(jù)采集或者產(chǎn)生即將輸出的數(shù)據(jù)。DAQmxStopTask.vi:停止數(shù)據(jù)采集或者停止產(chǎn)生數(shù)據(jù)的輸出。DAQmxCreateVirtualChannel:創(chuàng)建虛擬數(shù)據(jù)采集通道。DAQmxClearTask.vi:清除數(shù)據(jù)采集任務。DAQmxAssistantExpressVI:使用NI-DAQmx創(chuàng)建、編輯或運行一個采集任務?!纠?.11】利用NIUSB-6009數(shù)據(jù)采集卡實現(xiàn)單通道數(shù)據(jù)采集。主要技術指標如下:8個模擬通道(14位、48位kS/s采樣速度)。2路14位模擬輸出通道。12個I/O通道。1個32位計數(shù)器/定時器。利用LabVIEW8.2的【DAQmxDataAcquisition】數(shù)據(jù)采集VI所構成單通道數(shù)據(jù)采集VI的前面板和程序框圖單通道數(shù)據(jù)采集VI的程序框圖單通道數(shù)據(jù)采集VI的前面板【例2.12】多通道循環(huán)數(shù)據(jù)采集。多通道循環(huán)數(shù)據(jù)采集VI的前面板多通道循環(huán)數(shù)據(jù)采集VI的程序框圖4.共用傳統(tǒng)DAQ和DAQmxLabVIEW7.0支持在同一臺計算機里共用傳統(tǒng)DAQAPI和DAQmxAPI,但是這必須在一定的規(guī)則允許下才能夠實現(xiàn)。(1)同一時間內控制裝置的API函數(shù)只能有一個。(2)使用DAQmx控制裝置之后,在使用系統(tǒng)DAQ之前,必須釋放所有的DAQmx任務,這可以通過調用DAQmxClearTaskVI來實現(xiàn)。(3)使用傳統(tǒng)DAQ控制裝置之后,若使用DAQmx則必須重新設置DAQ裝置,一種方法是調用傳統(tǒng)DAQ的DeviceResetVI;另一種方法是在Measurement&AutomationExplore(MAX)的傳統(tǒng)DAQ裝置目錄上單擊鼠標右鍵選擇ResetDriverforTraditionalNI-DAQ。(4)必須使用同樣的API去設置所有已連接的DAQ裝置和已插入的SCXI模塊。2.7DAQ驅動程序的開發(fā)1.引言

LabVIEW、LabWindows/CVI提供的DAQ庫僅適用于NI公司的數(shù)據(jù)采集產(chǎn)品,而對非NI公司生產(chǎn)的數(shù)據(jù)采集卡通常采用以下幾種驅動方式。自己編寫數(shù)據(jù)采集卡的驅動程序對于用標準C語言編寫的驅動程序軟件的數(shù)據(jù)采集卡,可以直接調用該驅動軟件的動態(tài)連接庫文件(.dll文件)。因此,一般多采用這種驅動方式來驅動數(shù)據(jù)采集卡。當使用非NI公司的數(shù)據(jù)采集卡,且使用NI的LabVIEW軟件,也可以利用在LabVIEW中編寫數(shù)據(jù)采集卡驅動程序的方法實現(xiàn)數(shù)據(jù)采集。2.數(shù)據(jù)采集卡驅動程序的開發(fā)方式

LabVIEW提供的數(shù)據(jù)采集卡驅動程序的開發(fā)方式有3種。1)直接端口讀/寫方式(I/O方式)“InPort.vi”的圖標及端口“OutPort.vi”的圖標及端口2)調用C語言源代碼的方式(CIN方式)3)調用動態(tài)鏈接庫的方式(CLF方式)【調用庫函數(shù)】對話框3.數(shù)據(jù)采集卡驅動程序設計舉例【例2.13】用“端口讀/寫”函數(shù)驅動數(shù)據(jù)采集卡。

1)PC-6310簡介表2-1控制端口的地址與功能端口地址操作命令功能基地址+0寫寫通道代碼基地址+1寫啟動A/D轉換器基地址+2讀查詢A/D轉換狀態(tài),讀高4位轉換結果基地址+3讀讀低8位轉換結果命令D7D6D5D4D3D2D1D0A/D轉換狀態(tài)讀1×××××××正在轉換讀0×××××××轉換結束表2-2A/D轉換狀態(tài)數(shù)據(jù)格式(×表示任)端口地址命令D7D6D2D4D3D2D1D0A/D轉換結果基地址+2讀0000DB11DB10DB9DB8讀高4位結果基地址+3讀DB7DB6DB2DB4DB3DB2DB1DB0讀低8位結果表2-3A/D數(shù)據(jù)轉換結果格式2)前面板設計數(shù)據(jù)采集VI的前面板3)程序框圖設計數(shù)據(jù)采集VI的程序框圖,如下列圖所示?!纠?.14】利用動態(tài)鏈接庫(DLL)進行數(shù)據(jù)采集。1)數(shù)據(jù)采集動態(tài)鏈接庫的建立建立動態(tài)鏈接庫的工具很多,下面主要介紹用C語言編寫動態(tài)鏈接庫的步驟。①生成C語言文件

②編寫動態(tài)鏈接庫中的函數(shù)

③將C語言文件編譯成工程文件。④在MFC界面菜單上做相應的修改⑤生成MyFunctionl.dll的動態(tài)鏈接庫生成的程序中編寫輸出函數(shù)代碼如下。#

溫馨提示

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

評論

0/150

提交評論