王樹東 何 明 王煥宇
(1.蘭州理工大學(xué)電氣與信息工程學(xué)院,蘭州 730050;2.甘肅省工業(yè)過程先進(jìn)控制重點(diǎn)實(shí)驗(yàn)室,蘭州 730050)
隨著科學(xué)技術(shù)的不斷發(fā)展,在線監(jiān)測與處理數(shù)據(jù)顯得尤為重要,NI公司發(fā)布的可編程控制器便可以較好地實(shí)現(xiàn)該功能。該控制器具有高頻處理器和用于網(wǎng)絡(luò)編程、通信與擴(kuò)展I/O的雙以太網(wǎng)端口。其采集卡采用硬盤熱備數(shù)據(jù),能夠防止上位機(jī)數(shù)據(jù)丟失[1,2];采集速率較高,且具有多種速率選擇。在有故障或特殊情況下,系統(tǒng)需要對大量數(shù)據(jù)進(jìn)行記錄以便做更好的分析,并要求采集卡在高速率下進(jìn)行采集及存儲等。但是在正常情況下,采集卡只需較低速率運(yùn)行便可達(dá)到要求。因此,自動變速率采集卡將在現(xiàn)代采集系統(tǒng)中具有廣泛的應(yīng)用前景。
數(shù)據(jù)采集就是利用LabVIEW驅(qū)動程序?qū)?shù)據(jù)采集卡的參數(shù)和工作方式進(jìn)行正確設(shè)置并使其按設(shè)置工作。數(shù)據(jù)采集卡進(jìn)行數(shù)據(jù)采集并將實(shí)際采集的數(shù)據(jù)先用LabVIEW自帶的數(shù)組或者波形函數(shù)來代替。數(shù)據(jù)處理軟件設(shè)計(jì)包括濾波、數(shù)據(jù)存儲與讀取、波形顯示與處理(如傅立葉變換及譜密度計(jì)算等)。確定數(shù)據(jù)采集卡后,將采集卡的驅(qū)動光盤放入計(jì)算機(jī)并按其指示進(jìn)行安裝,正確設(shè)置驅(qū)動所要用的VI輸入/輸出參數(shù),編寫程序即可[3,4]實(shí)現(xiàn)數(shù)據(jù)采集。
為設(shè)計(jì)采集及讀取等程序,首先需要對NI-RIO進(jìn)行配置,實(shí)現(xiàn)上位機(jī)與設(shè)備的通信;然后通過設(shè)計(jì)上位機(jī)項(xiàng)目實(shí)現(xiàn)數(shù)據(jù)的采集及讀取等功能。將采集、讀取程序載入設(shè)備FPGA中,實(shí)現(xiàn)程序的自啟動。將NI可編程控制器的第一個(gè)網(wǎng)絡(luò)端口接到上位機(jī),插入插入式采集卡,上電初始化設(shè)備,打開NI-MAX設(shè)備配置(圖1)。
圖1 NI-MAX設(shè)備配置
由于已連接設(shè)備,上位機(jī)已安裝設(shè)備驅(qū)動,因此點(diǎn)擊NI-MAX遠(yuǎn)程系統(tǒng)即可掃描出已連接設(shè)備,即NI機(jī)箱與控制器,在此遠(yuǎn)程系統(tǒng)界面上可以看到設(shè)備的基本信息與基本參數(shù)。對其網(wǎng)絡(luò)進(jìn)行設(shè)置,設(shè)置其IP地址,使采集器地址與上位機(jī)網(wǎng)絡(luò)地址在同一個(gè)網(wǎng)段。系統(tǒng)原為英文版,筆者設(shè)計(jì)的程序?yàn)橹形陌?,這樣會造成程序運(yùn)行錯(cuò)誤,因此需要對軟件進(jìn)行漢化。同時(shí)由于設(shè)備出廠時(shí)間和當(dāng)前時(shí)間不符,在存儲時(shí),采集到的數(shù)據(jù)時(shí)間默認(rèn)為控制器時(shí)間,因此需要進(jìn)行時(shí)間配置,但要注意,在時(shí)間設(shè)置一欄修改時(shí)間并不能保證修改正確,因此進(jìn)行時(shí)間設(shè)置時(shí)需要在系統(tǒng)信息處查看。當(dāng)時(shí)間沒有修改正確時(shí),在時(shí)間設(shè)置一欄修改的時(shí)間為上位機(jī)時(shí)間,但是在系統(tǒng)信息里卻是機(jī)器時(shí)間,出現(xiàn)時(shí)間不對應(yīng)的情況,因此需要再次修改。
一個(gè)完整的LabVIEW程序主要包括前面板、程序框圖和圖標(biāo)與連接器窗格。前面板是一種交互式圖形化用戶界面,用于設(shè)置數(shù)據(jù)輸入和觀察數(shù)據(jù)輸出;程序框圖是定義VI功能的圖形化源代碼,根據(jù)所需功能利用圖形語言對前面板的控制量和指示量進(jìn)行控制;圖標(biāo)和連接器窗格用于把程序定義成一個(gè)子程序,當(dāng)需要調(diào)用子程序時(shí)只需用事件結(jié)構(gòu)或者真假結(jié)構(gòu)就能實(shí)現(xiàn)在其他程序中的調(diào)用。
信號采集與分析系統(tǒng)框圖如圖2所示,系統(tǒng)包括信號采集、信號處理分析及保存數(shù)據(jù)等部分。采用硬盤存儲實(shí)現(xiàn)數(shù)據(jù)的熱備份,防止數(shù)據(jù)的丟失[5,6]。
圖2 信號采集與分析系統(tǒng)框圖
在機(jī)箱里需要配置兩個(gè)基本程序:一是設(shè)計(jì)FPGA工作模式的采集程序target(圖3),該程序保證了采集系統(tǒng)的高速性和數(shù)據(jù)的高精度;二是在RT端設(shè)計(jì)讀取程序host,將數(shù)據(jù)從采集程序中取出。不同的采集卡設(shè)置采樣率的方式不同,本設(shè)計(jì)中采用了4塊兩種不同的采集卡,兩種采集卡分別根據(jù)Data Rate端口和計(jì)數(shù)器端口Count設(shè)置所需采樣率(低速2kbit,高速25kbit)[7,8]。
圖3 target程序
由于設(shè)計(jì)中采用了兩種采集卡,因此需要兩種設(shè)置方式配合進(jìn)行變速處理,變速回傳程序如圖4所示。但是系統(tǒng)在條件結(jié)構(gòu)下無法將變速設(shè)定值直接傳入變速函數(shù)中,并且由于變速函數(shù)默認(rèn)只有一個(gè)變速端口名(由target中的速率設(shè)定名而定),因此本系統(tǒng)采用局部變量,變速局部變量如圖5所示。創(chuàng)建速率顯示控件,然后將顯示的速率采用局部變量分別上傳到變速函數(shù)中,間接地控制底層target程序中的速率輸入函數(shù)調(diào)整速率。索引數(shù)組索引采集卡的第16端口,當(dāng)采集到的數(shù)據(jù)大于10時(shí),輸出為真;系統(tǒng)出現(xiàn)故障或者突發(fā)情況時(shí),速率進(jìn)行變換,采用25kbit速率。假結(jié)構(gòu)與此同理,當(dāng)需要其他速率時(shí)只需要修改內(nèi)部速率值,通過顯示控件的局部變量回傳到速率輸入函數(shù)中,即可改變采集速率[9]。
圖4 變速回傳程序
圖5 變速局部變量
硬盤剩余空間顯示如圖6所示。16路數(shù)據(jù)量較大,采用720Gbit硬盤;存儲時(shí)間較長,磁盤滿時(shí)為一個(gè)月左右。硬盤在使用中無法判斷其存儲空間是否已滿,由于更換硬盤不便,為防止數(shù)據(jù)丟失,因此通過獲取卷信息函數(shù)來獲取硬盤的剩余空間。通過全局變量上傳到監(jiān)控上位機(jī)剩余空間顯示控件,當(dāng)超過限定值時(shí),即更換硬盤,防止數(shù)據(jù)丟失。
圖6 硬盤剩余空間顯示
硬盤存儲系統(tǒng)(圖7)分為兩部分:一部分?jǐn)?shù)據(jù)存儲在上位監(jiān)控系統(tǒng)的SQL Server數(shù)據(jù)庫中,通過數(shù)據(jù)庫ADO寫入控件將采集到的16路數(shù)據(jù)寫入數(shù)據(jù)庫;另一部分為硬盤熱備,為了防止上位機(jī)出現(xiàn)故障而丟失數(shù)據(jù)。系統(tǒng)為二進(jìn)制TDMS設(shè)計(jì),將一路時(shí)間16路數(shù)據(jù)寫入文件。在host端程序采用隊(duì)列將數(shù)據(jù)傳遞到存儲系統(tǒng)中,采樣速率不同,存儲的方式也不同:以2kbit速率采集時(shí),存儲1kbit數(shù)據(jù);25kbit速率采集時(shí),每路存儲25kbit數(shù)據(jù)。
圖7 硬盤存儲系統(tǒng)
軟件在采集到第16路數(shù)據(jù)時(shí)超過設(shè)定值,系統(tǒng)進(jìn)行自動變速采集和變速存儲。硬盤數(shù)據(jù)如圖8所示,為變速存儲的TDMS文件,打開為Excel文本,其中107ms時(shí)存儲25kbit數(shù)據(jù),在152ms時(shí)為2kbit數(shù)據(jù)。由于速率轉(zhuǎn)換過程和軟件運(yùn)行期間都存在固定的系統(tǒng)時(shí)間,因此會出現(xiàn)時(shí)間偏差,但45ms的偏差在可接受范圍之內(nèi),并且通過觀察硬盤數(shù)據(jù),在速率穩(wěn)定運(yùn)行期間數(shù)據(jù)都可靠地存儲到硬盤中,實(shí)現(xiàn)了變速率存儲的要求,數(shù)據(jù)準(zhǔn)確且精度較高。使用獲取卷信息函數(shù)與全局變量的方法解決了硬盤剩余空間觀察不便的問題,使軟件使用更加方便,保證了硬盤的可靠存儲。
圖8 硬盤數(shù)據(jù)
自動變速率數(shù)據(jù)采集系統(tǒng)根據(jù)采集到的數(shù)據(jù)判斷采用何種采集速率,采用局部變量傳遞采集速率實(shí)現(xiàn)了自動變速率采集,速率轉(zhuǎn)換過程和軟件運(yùn)行期間存在固定的系統(tǒng)時(shí)間,因此會出現(xiàn)時(shí)間偏差,時(shí)間偏差相對整個(gè)系統(tǒng)運(yùn)行時(shí)間來說在可接受范圍之內(nèi)。硬盤存儲空間較大,無法判斷長時(shí)間運(yùn)行情況下硬盤空間是否已滿,采用獲取卷信息函數(shù)的方法來獲取硬盤剩余空間,以便及時(shí)更換硬盤,實(shí)現(xiàn)了數(shù)據(jù)的可靠存儲。
[1] 熊欣,陳映喜.基于LabVIEW的風(fēng)光互補(bǔ)電源遠(yuǎn)程監(jiān)測研究[J].國外電子測量技術(shù),2012,31(9):34~36.
[2] 徐晨博,王豐華,傅豎,等.變壓器有載分接開關(guān)振動測試系統(tǒng)設(shè)計(jì)與開發(fā)[J].儀器儀表學(xué)報(bào),2013,34(5):987~993.
[3] 戴成梅,戴成建.基于LabVIEW網(wǎng)絡(luò)虛擬數(shù)字電路實(shí)驗(yàn)平臺的研制[J].國外電子測量技術(shù),2011,30(9):67~71.
[4] 陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011:540~545.
[5] 趙展.基于LabVIEW電能質(zhì)量監(jiān)測系統(tǒng)設(shè)計(jì)[D].蘇州:蘇州大學(xué),2009.
[6] 杜娟,邱曉暉,趙陽,等.基于LabVIEW的數(shù)據(jù)采集與信號處理系統(tǒng)的設(shè)計(jì)[J].南京師范大學(xué)學(xué)報(bào)(工程技術(shù)版),2010,10(3):7~10.
[7] 任宏達(dá),王豐華,金之儉.應(yīng)用NI LabVIEW和CompactRIO系統(tǒng)開發(fā)變壓器振動特性測試平臺[C].NI虛擬儀器技術(shù)應(yīng)用方案獲獎(jiǎng)?wù)撐募?北京:儀器儀表學(xué)報(bào)雜志社,2011:441~445.
[8] 崔佩佩,何強(qiáng),韓壯志,等.用LabVIEW FPGA模塊實(shí)現(xiàn)不同時(shí)鐘域的數(shù)據(jù)連續(xù)傳輸[J].現(xiàn)代電子技術(shù),2011,(17):149~152.
[9] 吳偉.雙通道3GSPS數(shù)據(jù)采集模塊硬件設(shè)計(jì)[D].成都:電子科技大學(xué),2011.