基于NI Scope實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
虛擬儀器的概念最早是由美國國家儀器公司(Na-tional Instrument)提出來的,經(jīng)過十幾年的發(fā)展,目前正沿著總線與驅(qū)動(dòng)程序標(biāo)準(zhǔn)化、硬件、軟件模塊化、編程平臺(tái)圖像化和硬件模塊即插即用方向發(fā)展。隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,虛擬儀器將在數(shù)據(jù)采集、自動(dòng)測試和測量儀器領(lǐng)域得到廣泛應(yīng)用,擬儀器技術(shù)十分符合國際上流行的“硬件軟件化”的發(fā)展趨勢,尤其是在高??蒲泻凸I(yè)生產(chǎn)領(lǐng)域中發(fā)展前景非常廣闊。
1 虛擬儀器概述
1.1 虛擬儀器簡介
虛擬儀器核心技術(shù)思想是“軟件即是儀器”,在通用的集成硬件平臺(tái)上,結(jié)合高性能的模塊化硬件和高效靈活的軟件使本來需要硬件實(shí)現(xiàn)的技術(shù)軟件化。一般當(dāng)標(biāo)準(zhǔn)化硬件平臺(tái)確定后,通過標(biāo)準(zhǔn)的儀器驅(qū)動(dòng)軟件可實(shí)現(xiàn)模塊化的硬件(如GPIB,VXI,DAQ板等)之間的通信、定時(shí)應(yīng)用等需求;而靈活高效的開發(fā)應(yīng)用軟件能創(chuàng)建完全自定義的用戶界面和系統(tǒng),實(shí)現(xiàn)傳統(tǒng)儀器中由硬件完成的儀器功能。虛擬儀器技術(shù)的優(yōu)勢在于儀器性能的改進(jìn)和功能擴(kuò)展只需用戶選擇適合其應(yīng)用要求的硬件模塊以及更新相關(guān)軟件程序設(shè)計(jì),即可重新配置現(xiàn)有系統(tǒng),增加程序可復(fù)用性,大大縮短整個(gè)系統(tǒng)開發(fā)換代周期,降低成本,方便實(shí)現(xiàn)多種功能。
1.2 虛擬儀器構(gòu)成
虛擬儀器一般由通用儀器硬件平臺(tái)和應(yīng)用軟件組成,如圖1所示。
虛擬儀器硬件平臺(tái)主要有兩部分,分別是用于集成的硬件平臺(tái)和模塊化I/O接口設(shè)備。虛擬儀器的軟件部分包括應(yīng)用軟件和I/O驅(qū)動(dòng)軟件兩部分,應(yīng)用軟件包含實(shí)現(xiàn)虛擬面板功能的前面板的軟件程序和定義測試功能的流程圖軟件程序,如LabVIEW等;I/O接口儀器驅(qū)動(dòng)程序用來完成特定外部硬件設(shè)備的擴(kuò)展、驅(qū)動(dòng)和通信,可以由虛擬儀器開發(fā)環(huán)境提供。只有同時(shí)擁有高效的軟件、模塊化I/O硬件和用于集成的軟硬件平臺(tái)這三大組成部分,才能充分發(fā)揮虛擬儀器技術(shù)性能高、擴(kuò)展性強(qiáng)、開發(fā)時(shí)間少以及出色的集成這四大優(yōu)勢。
1.3 圖形化編程語言LabVIEW
LabVIEW(Laboratory Virtual Instrument Engi-neetring Workbench)是一種用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語言,采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點(diǎn)之間的數(shù)據(jù)流向決定了程序的執(zhí)行順序,用圖表表示函數(shù),用連線表示數(shù)據(jù)流方向。LabVIEW程序稱為虛擬儀器(Virtual Instrument,VI)程序。一個(gè)最基本的VI由前面板(Panel)、框圖程序(Diagram Program)和圖標(biāo)/連接端口(Icon/Terminal)三部分組成。LabVIEW為虛擬儀器設(shè)計(jì)者提供了一個(gè)便捷、輕松的設(shè)計(jì)環(huán)境,不僅能輕松方便地完成與各種軟硬件的連接,還提供強(qiáng)大的后續(xù)數(shù)據(jù)處理能力,交互式的測量工具和更高層的系統(tǒng)管理軟件工具。LabVIEW能夠支持串行接口、GPIB,VXI,PXI等標(biāo)準(zhǔn)總線和多種數(shù)據(jù)采集板,以驅(qū)動(dòng)不同儀器公司的儀器,用戶可以高效、快速地編寫出相應(yīng)的應(yīng)用程序,自行設(shè)計(jì)儀器驅(qū)動(dòng)程序,完成諸如數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)顯示以及儀器控制和通信等多種功能。在較高性價(jià)比的條件下,降低系統(tǒng)開發(fā)和維護(hù)費(fèi)用,縮短技術(shù)更新周期。
2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
該系統(tǒng)使用NI公司PXI-1042Q機(jī)箱和NI PXI-5122高速數(shù)字化儀模塊組建數(shù)據(jù)采集硬件平臺(tái)。PXI(PCI Extensions for Instrumentation),它的主要優(yōu)勢在于利用了已經(jīng)驗(yàn)證的,符合工業(yè)標(biāo)準(zhǔn)的技術(shù),在高速的Compact PCI總線基礎(chǔ)之上,加入類似VXI所具有的定時(shí)、觸發(fā)和同步功能。PXI作為一種專為工業(yè)數(shù)據(jù)采集與自動(dòng)化應(yīng)用高性能模塊化硬件平臺(tái),具有開放式架構(gòu),內(nèi)有高端的定時(shí)和觸發(fā)總線,結(jié)合模塊化的I/O硬件和相應(yīng)的測試測量開發(fā)軟件,便可以較好地完成數(shù)據(jù)采集任務(wù)。
2.1 系統(tǒng)硬件部分
PXI-5122高速數(shù)字化儀是硬件部分的核心,可直接插入PXI-1042Q機(jī)箱插槽中,屬于內(nèi)置式驅(qū)動(dòng)。通過LabVIEW嵌入的驅(qū)動(dòng)函數(shù)可配置其觸發(fā)方式,如即時(shí)觸發(fā)、軟件觸發(fā)、數(shù)字觸發(fā)等,還可配置采樣速率,采樣記錄長度等。PXI-5122提供雙輸入通道,每個(gè)通道最高100 MS/s實(shí)時(shí)采樣率,分辨率14 b,采用交叉采樣方式的采樣率可提高到200 MS/s,帶有去噪和100 MHz抗混疊濾波器,具有動(dòng)態(tài)范圍大、板上采樣存儲(chǔ)器容量大等特點(diǎn)。這里配置為單通道即時(shí)觸發(fā)模式,以便實(shí)現(xiàn)實(shí)時(shí)的連續(xù)采樣。根據(jù)采樣定理,設(shè)置的最小采樣速率至少是被采樣信號(hào)頻率的兩倍。數(shù)據(jù)采集系統(tǒng)示意圖如圖2所示。
2.2 系統(tǒng)軟件部分
系統(tǒng)軟件部分主要由標(biāo)準(zhǔn)I/O模塊驅(qū)動(dòng),采用隊(duì)列同步控制和數(shù)據(jù)顯示三大部分組成。系統(tǒng)程序流程圖如圖3所示。
首先通過NI,Scope示波器驅(qū)動(dòng)來完成PXI-5122的配置和初始化,將此部分放置到由單個(gè)while循環(huán)控制的獨(dú)立線程中便可以實(shí)現(xiàn)連續(xù)數(shù)據(jù)采集。被采集的數(shù)據(jù)被放人隊(duì)列中,隊(duì)列允許多個(gè)任務(wù)同時(shí)訪問,其他獨(dú)立線程的模塊可同時(shí)并行地從中讀取數(shù)據(jù),實(shí)時(shí)完成各自的功能,如數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)顯示等。
2.2.1 I/O驅(qū)動(dòng)模塊
NI Scope示波器驅(qū)動(dòng)是NI公司提供的八類可互換的虛擬儀器IVI(Interchangeable Virtual Instru-ment)規(guī)范驅(qū)動(dòng)之一,由于IVI規(guī)范驅(qū)動(dòng)是基于虛擬儀器軟件架構(gòu)VISA(Virtual Instrunment Software Archi-tecture),可以實(shí)現(xiàn)程序與硬件接口的不相關(guān)。此外,NI Scope提供了規(guī)范和標(biāo)準(zhǔn)API函數(shù)和DAQ驅(qū)動(dòng)程序庫,它將儀器的功能完整封裝,讓用戶更快更容易地開發(fā)系統(tǒng)。成功安裝NI Scope示波器驅(qū)動(dòng)后,在Lab-VIEW程序框圖中,打開“函數(shù)”菜單下,打開“測量I/O”可以看到“NI Scope”工具包,選擇初始化、水平方向設(shè)置、豎直方向設(shè)置、通道設(shè)置、觸發(fā)方式設(shè)置等函數(shù),自定義NI PXI-5122驅(qū)動(dòng)程序。該系統(tǒng)設(shè)置偏移量為零,即時(shí)觸發(fā)采樣模式,采樣記錄數(shù)值默認(rèn)為1,采樣頻率和采樣記錄長度由輸入控件控制,采樣的通道名稱默認(rèn)為“channel 0”,實(shí)現(xiàn)連續(xù)采樣。NI PXI-5122驅(qū)動(dòng)程序具體如圖4所示。
2.2.2 同步技術(shù)
系統(tǒng)各模塊分別由單個(gè)循環(huán)控制,并且各循環(huán)之間相互獨(dú)立,每一個(gè)循環(huán)都有一個(gè)獨(dú)立的線程獨(dú)自運(yùn)行,構(gòu)成了一個(gè)包含多個(gè)并行任務(wù)虛擬儀器系統(tǒng)。各個(gè)循環(huán)之間也有數(shù)據(jù)交流,相互關(guān)聯(lián),為了實(shí)現(xiàn)在同一個(gè)程序中處理好各循環(huán)或并行任務(wù)之間的同步或通信,則需要使用同步控制技術(shù)。系統(tǒng)選用隊(duì)列(Queue)技術(shù)來控制這些循環(huán)可以避免對設(shè)備的訪問沖突。
隊(duì)列結(jié)構(gòu)是一種先進(jìn)先出的結(jié)構(gòu)。隊(duì)列可以保證有序的數(shù)據(jù)傳遞,避免競爭或沖突。一般當(dāng)多個(gè)用戶需要使用同一個(gè)資源時(shí),就可以通過隊(duì)列來對多個(gè)用戶進(jìn)行排隊(duì)處理;同時(shí)。也允許多個(gè)用戶訪問一個(gè)隊(duì)列,這樣就可以加快隊(duì)列的處理速度。同樣,在程序框圖中打開“函數(shù)”,選擇“編程”中的“同步”,可看待“隊(duì)列”函數(shù)包。通過“獲取隊(duì)列引用”先建立一個(gè)隊(duì)列,可設(shè)置隊(duì)列名稱,元素類型,隊(duì)列大小等屬性。圖5中顯示數(shù)據(jù)采集循環(huán),數(shù)據(jù)存儲(chǔ)循環(huán),數(shù)據(jù)顯示循環(huán)共同使用一個(gè)隊(duì)列,即數(shù)據(jù)循環(huán)中使用“元素人隊(duì)列”函數(shù)將采集數(shù)據(jù)不斷地存放到隊(duì)列中,數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)顯示循環(huán)使用“元素出隊(duì)列”函數(shù)從隊(duì)列中不斷地讀取數(shù)據(jù),實(shí)現(xiàn)了系統(tǒng)實(shí)時(shí)采集和存儲(chǔ)的功能。若某個(gè)模塊的任務(wù)運(yùn)行過快或過慢,隊(duì)列可以起到緩存作用,進(jìn)行約束或補(bǔ)償,不會(huì)導(dǎo)致數(shù)據(jù)丟失或重復(fù)讀取。
2.2.3 數(shù)據(jù)存儲(chǔ)
高速數(shù)據(jù)流文件TDM Streaming文件以流文件形式存儲(chǔ)數(shù)據(jù),讀寫速度比較快,適合用來存儲(chǔ)海量數(shù)據(jù),常于實(shí)時(shí)系統(tǒng)。TDMS文件除了可以存儲(chǔ)信號(hào)數(shù)據(jù)外,還可以為每個(gè)信號(hào)添加附加信息:文件、組、通道等。通過TDMS文件操作函數(shù)可對被采集的信號(hào)進(jìn)行快速的讀,寫,屬性設(shè)置及提取,管理簡單;在寫操作后可以調(diào)用TDMS File Viewer?、龊瘮?shù),打開TDMS文件瀏覽器,查看數(shù)據(jù)和屬性值。TDMS的寫操作如圖5所示。
3 實(shí)驗(yàn)結(jié)果
數(shù)據(jù)采集系統(tǒng)前面板如圖6所示,根據(jù)所設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng),分別進(jìn)行了數(shù)據(jù)采集、數(shù)據(jù)輸入,數(shù)據(jù)存儲(chǔ)及波形顯示等實(shí)驗(yàn)。數(shù)據(jù)保存在以.tdms為后綴名的波形文件中。圖6所示為對頻率10 kHz,幅度為0.5 V的模擬正弦波信號(hào)使用單通道采樣,輸入的采樣頻率為1 MHz,實(shí)際采樣頻率為1 MHz。經(jīng)過實(shí)際驗(yàn)證,對三角波,方波等合理采樣,結(jié)果比較滿意。
4 結(jié) 語
該數(shù)據(jù)采集系統(tǒng)實(shí)際是用于對中波段范圍內(nèi)調(diào)幅信號(hào)的實(shí)時(shí)采集,方便對采集后的數(shù)據(jù)直接進(jìn)行各種數(shù)學(xué)分析。一方面可將結(jié)果直觀的顯示在前面板上,另一方面也可同時(shí)將數(shù)據(jù)進(jìn)行存儲(chǔ),以供日后分析使用。此外,由于LabVIEW是一個(gè)功能強(qiáng)大的虛擬儀器編譯環(huán)境,簡化編程過程,尤其是使用IVI驅(qū)動(dòng)程序,極大地簡化代碼,用戶不需要關(guān)心儀器底層是如何通信,只需要關(guān)注任務(wù)本身。給予系統(tǒng)更多的靈活性。以后只需要根據(jù)實(shí)際功能要求,修改相應(yīng)的軟件編程即可進(jìn)行系統(tǒng)拓展。整個(gè)數(shù)據(jù)采集系統(tǒng)在實(shí)際使用中方便活,不受具體線路的限制。