版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
6-2DAQ虛擬儀器軟件編程2.1DAQ軟件的組成
2.2LabVIEW的DAQ軟件概述2.3模擬輸入2.4模擬輸出2.2數(shù)字I/O和計數(shù)器2.6DAQmx
2.7DAQ驅(qū)動程序的開發(fā)2.7數(shù)據(jù)采集卡驅(qū)動程序設(shè)計及動態(tài)鏈接庫開發(fā)2.1DAQ軟件的組成
DAQ軟件包括DAQ驅(qū)動軟件和DAQ儀器應(yīng)用軟件兩大部分1.數(shù)據(jù)采集卡的驅(qū)動軟件2.PC-DAQ儀器的應(yīng)用軟件編程數(shù)據(jù)采集卡的驅(qū)動軟件1)驅(qū)動軟件的作用在基于DAQ插卡的虛擬儀器系統(tǒng)中,驅(qū)動軟件起著非常重要的作用,它將DAQ插卡和計算機(jī)組合成為一個DAQ儀器系統(tǒng),進(jìn)行完整的數(shù)據(jù)采集、分析和顯示。
2)驅(qū)動軟件的基本要求用戶在選擇或開發(fā)通用驅(qū)動軟件時,應(yīng)注意以下問題。(1)驅(qū)動軟件支持的編程語言和軟件開發(fā)環(huán)境(2)驅(qū)動函數(shù)的可用性
PC-DAQ儀器的應(yīng)用軟件編程
在設(shè)計DAQ儀器的時候,用戶必須根據(jù)選擇DAQ數(shù)據(jù)采集卡的情況,分以下兩種情況進(jìn)行考慮。(1)NI公司生產(chǎn)的數(shù)據(jù)采集卡可利用編程語言驅(qū)動程序函數(shù)來驅(qū)動數(shù)據(jù)采集卡。用戶只需正確設(shè)置輸入?yún)?shù),就可實現(xiàn)數(shù)據(jù)采集的任務(wù),而不需編寫代碼程序。(2)非NI公司生產(chǎn)的數(shù)據(jù)采集卡可利用變成直接驅(qū)動的方法來實現(xiàn)采集卡的軟件驅(qū)動,此時,用戶需要自己編寫DAQ卡的驅(qū)動軟件。
下面介紹在驅(qū)動軟件的基礎(chǔ)上,如何來進(jìn)行PC-DAQ儀器的應(yīng)用軟件設(shè)計。
1)數(shù)據(jù)采集卡驅(qū)動程序的安裝2)數(shù)據(jù)采集卡的參數(shù)設(shè)置(1)模擬信號輸入部分的設(shè)置:(2)A/D轉(zhuǎn)換部分的設(shè)置(3)D/A轉(zhuǎn)換部分的設(shè)置2.2LabVIEW的DAQ軟件概述1、引言數(shù)據(jù)采集(DAQ)是虛擬儀器獲取信息的必不可少的基本功能,DAQ軟件是LabVIEW的核心,使用LabVIEW,必須要掌握如何使用DAQ軟件。本節(jié)討論的DAQ軟件主要指DAQ硬件的驅(qū)動程序。NI推出了LabVIEW7.0后,使得原本十分強大的DAQ功能變得更加完善。它包含有很多DAQ卡的驅(qū)動,分別有各自的API函數(shù)。本章將分兩部分講述如何使用DAQ。第一部分講述LabVIEW老版本的DAQ,第二部分將簡單講述LabVIEW新版本的DAQ的新特性。重點介紹DAQ章VI的應(yīng)用,從初級VI入手,再結(jié)合一些非常有用的高級VI的用法。1)在某些情況下,是必須要用到傳統(tǒng)DAQ的,這些情況有:
NI-DAQmx不支持的裝置,使用了帶有加速計、線性電壓差分變換(LVDT)或者旋轉(zhuǎn)可變差分變換(RVDT)虛擬通道的SCXI-1230、SCXI-1231、SCXI-1240裝置使用了LabVIEW實時(RT)模塊。已從NI-DAQ6.9升級,但是應(yīng)用程序沒有完全升級。使用7.0版本以前的LabVIEW、LabWindows/CVI、MeasurementStudio。使用VisualBasic6.0。2)在NI-DAQ6.9版中支持,但是NI-DAQ7.0版中不再支持的包括:
LabVIEW、LabWindows/CVI、MeasurementStudio應(yīng)用軟件6.0以前的版本;Windows92操作系統(tǒng);一些較老的設(shè)備2、傳統(tǒng)DAQ庫VI
所有功能模塊內(nèi)的VI可以分為三個層次,這三個層次也體現(xiàn)了用戶對DAQ不同層次的操作。
DAQ子模塊第一層次DAQ子模塊第二層次DAQ子模塊第三層次1.初級入門級的VI,功能相當(dāng)有限,是對DAQ底層操作的簡化,位于最高層。用戶在這個層面上操作DAQ,不管是獲得模擬數(shù)據(jù)還是模擬輸出,或者是數(shù)字I/O以及計數(shù)器和定時器的使用,幾乎不需要知道DAQ庫VI的細(xì)節(jié)。初級VI是對開發(fā)者工作的最大簡化。但是某些操作,甚至非常常用的操作不能夠用初級VI來實現(xiàn)。這些包括連續(xù)緩沖輸入輸出、觸發(fā)等。2.中級當(dāng)用戶對DAQ驅(qū)動庫有一定的了解后,中級VI是用得最多的,因為它們可以提供相對于初級VI多得多的功能,并且可以完成大部分的工作。中級VI的重要功能包括:①高級緩沖管理,如循環(huán)緩沖;②外部時鐘和觸發(fā)選擇;③暫停限制;④校準(zhǔn)以及硬件配置控制;⑤具有RTSI總線互連函數(shù)訪問權(quán);⑥直接訪問狀態(tài)信息。3.高級高級VI和它的名字正相反,是對DAQ最底層的操作。它通過CIN節(jié)點直接訪問DAQ驅(qū)動,一般只有在很少的特殊功能中用到,包括:①多個緩存;②可訪問所有的狀態(tài)信息;③直接控制極性和增益;④通過采樣時鐘周期和時鐘因子確定采樣頻率;⑤無縮放輸出數(shù)據(jù)規(guī)范。2.3模擬輸入1.模入模塊分類2.簡易模入設(shè)計
3.中級模入設(shè)計
4.設(shè)計示例——連續(xù)信號采集與顯示儀模入模塊分類模擬輸入用于采集模擬信號,分為:(1)簡單模入VI(2)中級模入VI(3)通用模入VI(4)高級模入VI
簡易模入設(shè)計
簡易模入是LabVIEW提供的一組標(biāo)準(zhǔn)的、簡單易用的采集VI,主要有:
AISampleChannels:完成多通道的單點采集
AIAcquireWaveform:完成通道的波形采集
AIAcquireWaveforms:完成多通道的波形采集
1)AIAcquireWaveform.vi圖標(biāo)(1)AIAcquireWaveform.vi的調(diào)用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AIAcquireWaveform.vi>>create.后,出現(xiàn)該圖標(biāo)及其端口圖,如圖所示。AIAcquireWaveform.vi圖標(biāo)及其端口(2)AIAcquireWaveform.vi圖標(biāo)輸入端口參數(shù)設(shè)置device:設(shè)置DAQ的設(shè)備號channel:設(shè)置待采集的模擬信號所在通道號numberofsamples:設(shè)置采樣點數(shù)samplerate:設(shè)置采集速率highlimit(0.0):設(shè)置模擬信號的最大輸入值lowlimit(0.0):設(shè)置模擬輸入量的最小值(3)AIAcquireWaveform.vi圖標(biāo)輸出端口參數(shù)設(shè)置waveform:1D數(shù)組,存放采集得到的數(shù)據(jù),數(shù)據(jù)類型為double型。actualsampleperiod(sec):采集卡返回的實際采樣率,有時相對于設(shè)定值有一定誤差,是double型的變量。2)AIAcquireWaveforms.vi圖標(biāo)(1)AIAcquireWaveforms.vi的調(diào)用路徑選擇Funcations>>DataAcquisition>>AnalogInput>>AIAcquireWaveforms.vi>>create.,完成上述步驟后,出現(xiàn)該圖標(biāo)及其端口圖,如圖所示。AIAcquireWaveforms.vi圖標(biāo)及其端口(2)AIAcquireWaveforms.vi圖標(biāo)輸入端口參數(shù)設(shè)置這里的輸入端口參數(shù)設(shè)置含義同AIAcquireWaveform.vi的輸入端口設(shè)置。(3)AIAcquireWaveforms.vi圖標(biāo)輸出端口參數(shù)設(shè)置waveforms:2D數(shù)組,存放采集得到的數(shù)據(jù)和信號所在的通道。數(shù)據(jù)類型為double型。actualsampleperiod(sec):含義同上述的AIAcquireWaveform.vi圖標(biāo)。3)AISampleChannel.vi圖標(biāo)(1)AISampleChannel.vi圖標(biāo)的調(diào)用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AISampleChannel.vi>>create,完成上述步驟后,出現(xiàn)該圖標(biāo)及其端口圖,如圖所示。AISampleChannel.vi圖標(biāo)及其端口(2)AISampleChannel.vi圖標(biāo)輸入端口參數(shù)設(shè)置這里的輸入端口參數(shù)設(shè)置含義同AIAcquireWaveform.vi的輸入端口設(shè)置。(3)AISampleChannel.vi圖標(biāo)輸出端口參數(shù)設(shè)置sample:模擬信號采集結(jié)果,是一個double型數(shù)值。因輸出值只有一個,因此對該模塊調(diào)用一次只能得到一個采集數(shù)據(jù)。4)AISampleChannels.vi圖標(biāo)(1)AISampleChannels.vi圖標(biāo)的調(diào)用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AISampleChannel.vi>>create,完成上述步驟后,出現(xiàn)該圖標(biāo)及其端口圖,如圖所示。AISampleChannel.vi圖標(biāo)及其端口(2)AISampleChannels.vi圖標(biāo)輸入端口參數(shù)設(shè)置這里的輸入端口參數(shù)設(shè)置含義同AIAcquireWaveform.vi的輸入端口設(shè)置。(3)AISampleChannels.vi圖標(biāo)輸出端口參數(shù)設(shè)置sample:模擬信號采集結(jié)果,是一個1D數(shù)組,由使用者自己設(shè)定采樣頻率和采樣點數(shù)?!纠?.1】單點采集練習(xí)打開一個新的VI,切換到BlockDiagram面板,添加一個AISampleChannel,并且添加Channel控件。Channel控件的添加方式有兩種:一種簡便的方式是在AISampleChannel的Channel端子單擊鼠標(biāo)右鍵,選擇CreateControl命令選項;另一種方式是切換到前面板,選擇I/O子面板的TraditionalDAQChannel控件。設(shè)置輸入信號的上下限為10V和-10V。I/O子面板及TraditionalDAQChannel函數(shù)切換到前面板,添加合適的指示器。這里用的是Numeric里的Meter指示器。
單點采集系統(tǒng)的流程圖程序及前面板設(shè)計
【例2.2】波形采集練習(xí)YB1634函數(shù)發(fā)生器輸出頻率為302Hz,幅度(峰值)約4V的正弦波信號,送給PC1200采集卡的模擬輸入0通道。使用數(shù)據(jù)采集模板的模擬輸入子模板中的”AIAcquireWaveform”進(jìn)行采集,采樣率設(shè)為100kHz,采樣點數(shù)為1000。采集結(jié)果用波形圖形和波形數(shù)組顯示。波形采集系統(tǒng)前面板和框圖程序設(shè)計【例2.3】波形采集練習(xí)(1)準(zhǔn)備一個方波信號源和一個正弦波信號源,分別連接到模入通道0和1。(2)設(shè)置前面板和框圖如圖所示。(3)設(shè)置scan速率、通道號、每通道樣本數(shù),如前面板所示。(4)運行該程序。(2)保存為AcquireMultipleChannels.vi。(6)該程序是無緩沖、軟件觸發(fā)的雙通道采樣的前面板與流程圖中級模入設(shè)計中級模入有更好的功能與靈活性,可以更有效地開發(fā)用戶應(yīng)用。它的特點包括控制內(nèi)部采樣率、使用外部觸發(fā)、執(zhí)行連續(xù)外部觸發(fā)等。下面將描述它的各種VI,應(yīng)該注意其大量輸入、輸出端子中的部分內(nèi)容一般是不必理會的。有效地使用這些VI只需要關(guān)注需要的例子。如圖所示。
中級模入VI1)AIConfig.vi圖標(biāo)AIConfig對指定的通道設(shè)置模入操作,包括硬件、計算機(jī)內(nèi)buffer的分配。(1)AIConfig.vi圖標(biāo)的調(diào)用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AIConfig.vi>>create.,完成上述步驟后,出現(xiàn)該圖標(biāo)及其端口圖,如圖所示。AILonfig.vi圖標(biāo)及其端口(2)AIConfig.vi圖標(biāo)輸入端口參數(shù)設(shè)置device:DAQ設(shè)備的編號,默認(rèn)值為1。channels:待采集的模擬信號所在通道號。buffersize:存儲采集數(shù)據(jù)的緩沖區(qū)大?。↖nt32),默認(rèn)值為1000。errorin:前級輸入的錯誤代碼和信息。如果已經(jīng)發(fā)生了錯誤,則VI不執(zhí)行任何操作,將errorin由errorout傳送給后面的VI。(3)AIConfig.vi圖標(biāo)輸出端口參數(shù)設(shè)置TaskID:任務(wù)標(biāo)識符,用來指示當(dāng)前任務(wù)的無符號整型量。errorout:給出錯誤代碼和信息。如果errorin已經(jīng)輸入錯誤代碼和信息,則errorout原封不動地傳給后面的VI,或者輸出錯誤代碼和信息。2)AIStart.vi圖標(biāo)AIStart.vi啟動帶緩沖的模入操作。它控制數(shù)據(jù)采集速率、采集點的數(shù)目及使用任何硬件觸發(fā)的選擇。(1)AIStart.vi圖標(biāo)調(diào)用路徑選擇選擇Functions>>DataAcquisition>>AnalogInput>>AIStart.vi>>create.,完成上述步驟后,出現(xiàn)該圖標(biāo)及其端口如圖所示。AIStart.vi圖標(biāo)及其端口(2)AIStart.vi圖標(biāo)的輸入端口參數(shù)設(shè)置taskIDin:采集任務(wù)的標(biāo)識符,標(biāo)識該項采集任務(wù)。等于前面VI的輸出taskIDout的值。numberofscanstoacquire:設(shè)置需采集的采樣點數(shù)。默認(rèn)值為-1,表示采集了一個緩沖區(qū)數(shù)據(jù)。scanrate:采樣速率,單位為點數(shù)/秒,默認(rèn)值為1000個/秒;errorin:錯誤描述符,與AIConfig.vi模塊中的相同;(3)AIStart.vi圖標(biāo)的輸出端口參數(shù)設(shè)置taskIDout:該值與taskIDin相同,把該標(biāo)識符傳給下一個采集VI的taskIDin輸入端。errorout:輸出錯誤,與AIConfig.vi模塊中的相同;3)AIRead.vi圖標(biāo)選擇Functions>>DataAcquisition>>AnalogInput>>AIRead.vi>>create.,完成上述步驟后,出現(xiàn)該圖標(biāo)及其端口如圖所示。AIRead.vi圖標(biāo)及其端口(2)AIRead.vi圖標(biāo)輸入端口參數(shù)設(shè)置taskIDin:同AIStart.vi。numberofscanstoread:要讀取的數(shù)據(jù)總數(shù)(Int32),默認(rèn)值是-1,表示讀取和numberofscanstoacquire相同個數(shù)的數(shù)據(jù)。errorin:同AIStart.vi。(3)AIRead.vi圖標(biāo)的輸出端口參數(shù)設(shè)置taskIDout:同AIStart.vi。scaleddata:double型2D數(shù)組,存放采集結(jié)果。errorout:同AIStart.vi。4)AIClear.vi圖標(biāo)AIClear的功能是清除模入操作、計算機(jī)中分配的緩沖、釋放所有數(shù)據(jù)采集卡的資源,例如計數(shù)器。(1)AIClear.vi圖標(biāo)的調(diào)用路徑選擇Functions>>DataAcquisition>>AnalogInput>>AIClear.vi>>create.,完成上述步驟后,出現(xiàn)該圖標(biāo)及其端口圖,如圖2-18(a)和(b)所示。AIClear.vi圖標(biāo)及其端口(2)AIClear.vi圖標(biāo)輸入端口參數(shù)設(shè)置taskIDin:同AIRead.vi。errorin:同AIRead.vi。(3)AIClear.vi圖標(biāo)的輸出端口參數(shù)設(shè)置taskIDout:同AIRead.vi。errorout:同AIRead.vi。2)AIReadOneScan.vi圖標(biāo)AISingleScan(S-Scan)的功能是返回一個掃描數(shù)據(jù)。它的電壓數(shù)據(jù)輸出是由通道列表中的每個通道讀出的電壓數(shù)據(jù)。使用這個VI僅與AIConfig有關(guān)聯(lián),不需要AIStart和AIRead。(1)AIReadOneScan.vi圖標(biāo)的調(diào)用路徑(2)AIReadOneScan.vi圖標(biāo)輸入端口參數(shù)設(shè)置(3)AIReadOneScan.vi圖標(biāo)輸出口參數(shù)設(shè)置AIReadOneScan.vi圖標(biāo)及其端口4.設(shè)計示例——連續(xù)信號采集與顯示儀1)功能描述2)設(shè)計步驟(1)參數(shù)設(shè)置(2)前面板設(shè)計(3)流程圖設(shè)計AIAcquireWaveform.vi圖標(biāo)及其端口2.4模擬輸出Analogoutput子模板的調(diào)用路徑為Functions>>DataAcquisition>>AnalogOutput。鼠標(biāo)單擊后,出現(xiàn)AnalogOutput子模板,如圖所示。AnalogOutput對話框1.初級(簡易)模出設(shè)計(EasyAnalogOutput)這個模塊的初級VI有以下幾種:AOGenerateWaveformAOGenerateWaveformsAOUpdateChannelAOUpdateChannels與模擬輸入VI類似,輸入端有以下幾個。Device:DAQ的設(shè)備號。Channel:要測的模擬輸入通道名稱,缺省值是0。Value:寫入模擬輸出通道的數(shù)據(jù)。Waveform:寫入模擬輸出通道的波形數(shù)據(jù)。Updaterate:寫入數(shù)據(jù)速率。缺省值為每秒1000次。AOUpdateChannel函數(shù)及端口AOGenerateWaveform函數(shù)及端口【例2.4】生成單點數(shù)據(jù)練習(xí)使用AOUpdateChannel,實現(xiàn)單個模擬輸出通道的單點數(shù)據(jù)更新,一般用于產(chǎn)生激勵信號。流程圖程序如下圖所示。利用AOUpdateChannel函數(shù)實現(xiàn)單個模擬輸出通道的單點數(shù)據(jù)更新【例2.5】生成波形數(shù)據(jù)練習(xí)使用AOGenerateWaveform生成模擬輸出。在本例中,需要產(chǎn)生連續(xù)的波形數(shù)據(jù),這可以用LabVIEW自帶的波形發(fā)生器來實現(xiàn)。在Function面板的Analyze子面板的Waveformgeneration子面板內(nèi),有各種波形數(shù)據(jù)發(fā)生器。用戶也可用Analyze子面板的SignalProcessing子面板內(nèi)的SignalGeneration子面板內(nèi)的SignalGenerationbyDuration。如下圖所示Analyze子面板及所需函數(shù)生成波形數(shù)據(jù)流程圖程序設(shè)計系統(tǒng)前面板設(shè)計【例2.6】產(chǎn)生一個模出電平。面板及框圖如圖2-28所示。運行該程序,可以看到表的輸出將指示3。這個指示并非模出,為了看到模出,可以使用一塊數(shù)字萬用表直接測量DAC0OUT。你會發(fā)現(xiàn)萬用表的指示一直維持在3V,盡管程序早已執(zhí)行完了。面板及框圖【例2.7】產(chǎn)生一個模出波形面板及框圖2.中級模出(AnalogOutput)中級模出VI下圖所示1)AOConfig對指定的通道設(shè)置模出操作,包括硬件、計算機(jī)內(nèi)buffer的分配。常用的端子有:(1)Device——采集卡的設(shè)備號。(2)Channel——指定模出通道號的串?dāng)?shù)組。(3)Limitsettings——指定輸出信號的范圍。(4)taskID——用于所有后來的模出VI以規(guī)定操作的設(shè)備和通道。2)AOWrite以電壓數(shù)據(jù)的方式寫數(shù)據(jù)到模出數(shù)據(jù)緩沖區(qū)。3)AOStart啟動帶緩沖的模出操作。4)AOWait在返回之前一直等待直到波形發(fā)生任務(wù)完成。5)AOClear的功能為清除模出操作、計算機(jī)中分配的緩沖、釋放所有數(shù)據(jù)采集卡的資源。【例2.8】產(chǎn)生一個連續(xù)的正弦信號。面板及框圖說明以下幾點(1)由于AOWrite要求輸入數(shù)據(jù)的要示,這里正弦波發(fā)生器的輸出是一個waveform數(shù)據(jù)類型,首先將其中的Y數(shù)據(jù)提出,然后將它擴(kuò)充為一個二維數(shù)組,再經(jīng)轉(zhuǎn)置后才可連接到AOWrite上。(2)在AOConfig中主要是設(shè)置了Buffer,這對于連續(xù)輸出是必須的,其他都選默認(rèn)值。(3)Buffer的大小有時需要經(jīng)過調(diào)試,過大或過小都可能導(dǎo)致不能正常工作。使用AnalogOutputUtilities提供的連續(xù)模出的現(xiàn)成模塊也可以生成一個連續(xù)的正弦信號發(fā)生器,面板及框圖如圖2-32所示。該例子中開關(guān)是控制AOC-GEN內(nèi)部的AOClear模塊。當(dāng)其狀態(tài)為T時,運行程序?qū)⑨尫庞嬎銠C(jī)及采集卡資源,無信號輸出。在程序框圖上單擊AOC-GEN圖標(biāo),可以看到其內(nèi)部結(jié)構(gòu)。面板及框圖3.設(shè)計示例——連續(xù)信號輸出儀1)功能描述2)設(shè)計步驟(1)參數(shù)設(shè)置(2)前面板設(shè)計(3)流程圖設(shè)計3)運行檢驗AOUpdateChannel.vi圖標(biāo)及端口參數(shù)2.2數(shù)字I/O和計數(shù)器1.?dāng)?shù)字I/O本節(jié)將講述數(shù)字信號的采集。數(shù)字I/O位于DataAcquisition面板的DigitalI/O子面板內(nèi),如圖所示。數(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ù)。它從一開始進(jìn)行計數(shù),然后通過While循環(huán)連續(xù)進(jìn)行。在這里EventSource/Timebase輸入設(shè)置為0,代表用戶信號被用作計數(shù)器源輸入信號。循環(huán)外的布爾常量用于開啟計數(shù),用戶通過Stop按鈕終止計數(shù)。計數(shù)裝置的系統(tǒng)流程圖設(shè)計2.6DAQmx1.概述DAQmx的優(yōu)點如下:(1)增加DAQAssistant(2)更加完美的表現(xiàn)(3)更簡捷和直觀的API函數(shù)(4)功能得到擴(kuò)展(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子面板內(nèi),如圖所示。DAQmx的VI所在面板有兩種方式可以選擇DAQAssistant:一種是在DAQmx-DataAcquisition子面板內(nèi)選擇;另外一種是分別在ExpressFunction的Input和Output子面板內(nèi)選擇,如下圖所示。ExpressFunction的Input子面板和Output子面板選擇DAQmxAssistant,系統(tǒng)將自動打開一個新的窗口,即DAQmx圖形設(shè)置窗口,如圖所示。
AnalogInput界面模擬輸入信號被劃分為以下幾大類:Voltage(電壓)、Temperature(溫度)、Strain(應(yīng)變)、Current(電流)、Resistance(電阻)、Frequency(頻率)等,如圖所示。DigitalI/O界面【例2.10】頻率計數(shù)是計數(shù)器非常重要的作用之一。實現(xiàn)頻率計數(shù)的方法包括適用于低頻計數(shù)的周期時間求倒數(shù)法和適用于高頻計數(shù)的邊沿計數(shù)法。頻率計數(shù)的系統(tǒng)流程圖程序設(shè)計3.DAQmx的應(yīng)用DAQmx
Write.vi:向指定的虛擬通道或者任務(wù)寫入數(shù)據(jù)。DAQmx
Read.vi:從指定的虛擬通道或者任務(wù)讀取數(shù)據(jù)。DAQmxWaitUntilDone.vi:等待數(shù)據(jù)采集完成。DAQmx
Timing.vi:為數(shù)據(jù)采集配置采集速率和創(chuàng)建緩沖器。DAQmx
Trigger.vi:為數(shù)據(jù)采集任務(wù)配置觸發(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ù)采集任務(wù)。DAQmxAssistantExpressVI:使用NI-DAQmx創(chuàng)建、編輯或運行一個采集任務(wù)?!纠?.11】利用NIUSB-6009數(shù)據(jù)采集卡實現(xiàn)單通道數(shù)據(jù)采集。主要技術(shù)指標(biāo)如下:8個模擬通道(14位、48位kS/s采樣速度)。2路14位模擬輸出通道。12個I/O通道。1個32位計數(shù)器/定時器。利用LabVIEW8.2的【DAQmxDataAcquisition】數(shù)據(jù)采集VI所構(gòu)成單通道數(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支持在同一臺計算機(jī)里共用傳統(tǒng)DAQAPI和DAQmxAPI,但是這必須在一定的規(guī)則允許下才能夠?qū)崿F(xiàn)。(1)同一時間內(nèi)控制裝置的API函數(shù)只能有一個。(2)使用DAQmx控制裝置之后,在使用系統(tǒng)DAQ之前,必須釋放所有的DAQmx任務(wù),這可以通過調(diào)用DAQmxClearTaskVI來實現(xiàn)。(3)使用傳統(tǒng)DAQ控制裝置之后,若使用DAQmx則必須重新設(shè)置DAQ裝置,一種方法是調(diào)用傳統(tǒng)DAQ的DeviceResetVI;另一種方法是在Measurement&AutomationExplore(MAX)的傳統(tǒng)DAQ裝置目錄上單擊鼠標(biāo)右鍵選擇ResetDriverforTraditionalNI-DAQ。(4)必須使用同樣的API去設(shè)置所有已連接的DAQ裝置和已插入的SCXI模塊。2.7DAQ驅(qū)動程序的開發(fā)1.引言
LabVIEW、LabWindows/CVI提供的DAQ庫僅適用于NI公司的數(shù)據(jù)采集產(chǎn)品,而對非NI公司生產(chǎn)的數(shù)據(jù)采集卡通常采用以下幾種驅(qū)動方式。自己編寫數(shù)據(jù)采集卡的驅(qū)動程序?qū)τ谟脴?biāo)準(zhǔn)C語言編寫的驅(qū)動程序軟件的數(shù)據(jù)采集卡,可以直接調(diào)用該驅(qū)動軟件的動態(tài)連接庫文件(.dll文件)。因此,一般多采用這種驅(qū)動方式來驅(qū)動數(shù)據(jù)采集卡。當(dāng)使用非NI公司的數(shù)據(jù)采集卡,且使用NI的LabVIEW軟件,也可以利用在LabVIEW中編寫數(shù)據(jù)采集卡驅(qū)動程序的方法實現(xiàn)數(shù)據(jù)采集。2.?dāng)?shù)據(jù)采集卡驅(qū)動程序的開發(fā)方式
LabVIEW提供的數(shù)據(jù)采集卡驅(qū)動程序的開發(fā)方式有3種。1)直接端口讀/寫方式(I/O方式)“InPort.vi”的圖標(biāo)及端口“OutPort.vi”的圖標(biāo)及端口2)調(diào)用C語言源代碼的方式(CIN方式)3)調(diào)用動態(tài)鏈接庫的方式(CLF方式)【調(diào)用庫函數(shù)】對話框3.?dāng)?shù)據(jù)采集卡驅(qū)動程序設(shè)計舉例【例2.13】用“端口讀/寫”函數(shù)驅(qū)動數(shù)據(jù)采集卡。
1)PC-6310簡介表2-1控制端口的地址與功能端口地址操作命令功能基地址+0寫寫通道代碼基地址+1寫啟動A/D轉(zhuǎn)換器基地址+2讀查詢A/D轉(zhuǎn)換狀態(tài),讀高4位轉(zhuǎn)換結(jié)果基地址+3讀讀低8位轉(zhuǎn)換結(jié)果命令D7D6D5D4D3D2D1D0A/D轉(zhuǎn)換狀態(tài)讀1×××××××正在轉(zhuǎn)換讀0×××××××轉(zhuǎn)換結(jié)束表2-2A/D轉(zhuǎn)換狀態(tài)數(shù)據(jù)格式(×表示任)端口地址命令D7D6D2D4D3D2D1D0A/D轉(zhuǎn)換結(jié)果基地址+2讀0000DB11DB10DB9DB8讀高4位結(jié)果基地址+3讀DB7DB6DB2DB4DB3DB2DB1DB0讀低8位結(jié)果表2-3A/D數(shù)據(jù)轉(zhuǎn)換結(jié)果格式2)前面板設(shè)計數(shù)據(jù)采集VI的前面板3)程序框圖設(shè)計數(shù)據(jù)采集VI的程序框圖,如下列圖所示。【例2.14】利用動態(tài)鏈接庫(DLL)進(jìn)行數(shù)據(jù)采集。1)數(shù)據(jù)采集動態(tài)鏈接庫的建立建立動態(tài)鏈接庫的工具很多,下面主要介紹用C語言編寫動態(tài)鏈接庫的步驟。①生成C語言文件
②編寫動態(tài)鏈接庫中的函數(shù)
③將C語言文件編譯成工程文件。④在MFC界面菜單上做相應(yīng)的修改⑤生成MyFunctionl.dll的動態(tài)鏈接庫生成的程序中編寫輸出函數(shù)代碼如下。#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于協(xié)議離婚的撫養(yǎng)權(quán)
- 2024夫妻自愿離婚協(xié)議書
- 貝克痣病因介紹
- 落葉型天皰瘡病因介紹
- 自身免疫性腦炎病因介紹
- 房屋與室內(nèi)環(huán)境檢測技術(shù)-模塊三房屋實體查驗與檢76課件講解
- 中小學(xué)校長2024年度述職報告范文
- 2022-2023學(xué)年天津市和平區(qū)第二南開學(xué)校高二(上)期中語文試卷
- 2024秋新滬科版物理八年級上冊教學(xué)課件 第三章 光的世界 第一節(jié)第1課時 光的直線傳播
- 大學(xué)英語(基礎(chǔ))一學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2023年湖州教師招聘安吉縣招聘擇優(yōu)錄用事業(yè)編制教師筆試真題
- 24秋國家開放大學(xué)《公共關(guān)系學(xué)》實訓(xùn)任務(wù)(5)答案
- 血細(xì)胞分離安全護(hù)理
- 學(xué)校傳染病控制課件
- 福建省泉州市2023-2024學(xué)年高一上學(xué)期期末質(zhì)檢英語試題(解析版)
- 2024秋期國家開放大學(xué)??啤督ㄔO(shè)法規(guī)》一平臺在線形考(形成性作業(yè)一至五)試題及答案
- 中華人民共和國民法典(總則)培訓(xùn)課件
- 第三單元第1課 標(biāo)志設(shè)計 課件 2024-2025學(xué)年人教版(2024)初中美術(shù)七年級上冊
- 蘇教版(2024新版)七年級上冊生物期末模擬試卷 3套(含答案)
- 腫瘤物理消融治療新進(jìn)展
評論
0/150
提交評論