李俊嬌,朱 磊,張曉丹,郭 華,遆 寧
(西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048)
虛擬儀器構(gòu)建的測試系統(tǒng)具有性能高、擴(kuò)展性強(qiáng)、開發(fā)時間少和無縫集成等優(yōu)點(diǎn),被廣泛應(yīng)用于測試領(lǐng)域[1].虛擬儀器突破了傳統(tǒng)儀器在數(shù)據(jù)采集、處理、顯示、存儲等方面的限制,是自動化系統(tǒng)中的高性能、低成本的運(yùn)載平臺[2].其中,LabVIEW是目前應(yīng)用最廣、功能最強(qiáng)的圖形化虛擬儀器開發(fā)工具,它可將計算機(jī)、模塊化的儀器等硬件與高效靈活的軟件結(jié)合起來,提高系統(tǒng)的靈活性和工作效率,已經(jīng)成為用于測試、測量領(lǐng)域的標(biāo)準(zhǔn)化開發(fā)工具[3-4].
在數(shù)據(jù)采集過程中,數(shù)據(jù)處理和數(shù)據(jù)存儲是整個采集系統(tǒng)中十分重要的一個環(huán)節(jié).工程測試中,往往需要對測試信號進(jìn)行實(shí)時采集、處理和存儲,并且要求在測試結(jié)束后可及時查看歷史數(shù)據(jù)[5].因此,如何快速、準(zhǔn)確、可靠地存儲這些海量數(shù)據(jù)是當(dāng)前的研究熱點(diǎn)[6].
LabVIEW中配有多種文件存儲的函數(shù),如文獻(xiàn)[7]選用數(shù)據(jù)記錄文件函數(shù),文獻(xiàn)[8-9]選用寫入電子表格函數(shù),這些是目前用戶常用的函數(shù),用戶可根據(jù)自身需求直接調(diào)用.但是此類函數(shù)存在讀寫速度較慢、文件取址和檢索麻煩等缺點(diǎn),且不適合于高速數(shù)據(jù)記錄[10].直接使用存儲函數(shù)無法實(shí)現(xiàn)數(shù)據(jù)采集處理與存儲的同時執(zhí)行,不能滿足目前工業(yè)測試的需求[11].所以,在程序設(shè)計中引入了生產(chǎn)者/消費(fèi)者模式[12-13].該模式提高了數(shù)據(jù)采集與數(shù)據(jù)處理的效率,也提高了程序的可讀性、擴(kuò)展性和復(fù)用性[14].但是在大量、多通道的數(shù)據(jù)測試中運(yùn)用此模式,速度仍然不能滿足實(shí)際需要.
針對以上原因,文中給出了基于LabVIEW的數(shù)據(jù)采集快速文件存儲方法,采用TDMS數(shù)據(jù)存儲方式在傳統(tǒng)的生產(chǎn)者/消費(fèi)者模式上進(jìn)行改進(jìn),將傳統(tǒng)單消費(fèi)者模式改進(jìn)為雙消費(fèi)者模式,并搭建了數(shù)據(jù)采集存儲測試平臺進(jìn)行驗(yàn)證.
LabVIEW 環(huán)境支持的可讀寫文件格式主要有文本文件、二進(jìn)制文件和數(shù)據(jù)記錄文件3種[15].其中,二進(jìn)制文件以其高速、高效的特點(diǎn)在高速流盤、安全存取方面應(yīng)用廣泛,適合海量數(shù)據(jù)的存儲和讀取[16].LabVIEW提供的二進(jìn)制文件類型中的TDMS 文件[17],具有讀寫速度快、占用硬盤空間小等優(yōu)點(diǎn),更適合多通道 、大量數(shù)據(jù)的存儲[18].所以,文中給出的數(shù)據(jù)采集快速文件存儲方法采用 TDMS 文件對數(shù)據(jù)進(jìn)行存儲.
在使用LabVIEW軟件設(shè)計數(shù)據(jù)采集存儲系統(tǒng)時,程序設(shè)計常采用生產(chǎn)者/消費(fèi)者模式,生產(chǎn)者/消費(fèi)者結(jié)構(gòu)示意圖如圖1所示.該結(jié)構(gòu)可以通過并行的方式實(shí)現(xiàn)多個循環(huán),一個循環(huán)不斷地進(jìn)行數(shù)據(jù)采集(生產(chǎn)者),另一個循環(huán)不斷地進(jìn)行數(shù)據(jù)處理(消費(fèi)者),這2個循環(huán)互相通信但卻又不產(chǎn)生干擾[18-19].
在生產(chǎn)者/消費(fèi)者結(jié)構(gòu)中的消費(fèi)者循環(huán)加入LabVIEW中的文件存儲函數(shù)是傳統(tǒng)的采集數(shù)據(jù)存儲模式.其中,“寫入測量文件”Express VI是LabVIEW用戶經(jīng)常使用的文件存儲VI[20].通過實(shí)驗(yàn),“寫入測量文件”Express VI在長時間、大量數(shù)據(jù)的存儲情況下存儲文件速度太慢,拖慢程序整體運(yùn)行時間,無法滿足實(shí)際的需求.
圖 1 生產(chǎn)者/消費(fèi)者結(jié)構(gòu)示意圖 圖 2 數(shù)據(jù)采集快速文件存儲結(jié)構(gòu)示意圖Fig.1 Producer / consumer structure Fig.2 Structure diagram of data acquisition fast file storage
在傳統(tǒng)生產(chǎn)者/消費(fèi)者模式的基礎(chǔ)上給出了一種數(shù)據(jù)采集快速文件存儲方法,進(jìn)一步提高運(yùn)行速度,其結(jié)構(gòu)示意圖如圖2所示.從圖2可以看出,該采集存儲架構(gòu)主要分為3部分.具體細(xì)節(jié)如下:1為數(shù)據(jù)采集的生產(chǎn)者,2為數(shù)據(jù)采集的消費(fèi)者,當(dāng)元素出隊列無錯誤時進(jìn)入數(shù)據(jù)處理環(huán)節(jié)2.1,在此環(huán)節(jié)對數(shù)據(jù)進(jìn)行處理和波形實(shí)時顯示.LabVIEW中含有大量的高級分析函數(shù),這些強(qiáng)大工具可以實(shí)現(xiàn)信號處理、波形顯示、曲線擬合等功能,用戶可根據(jù)自身需求設(shè)計程序.完成2.1環(huán)節(jié)后數(shù)據(jù)進(jìn)行數(shù)據(jù)存儲的入隊列3,最后在數(shù)據(jù)存儲3.1環(huán)節(jié)進(jìn)行存儲.此程序?qū)?shù)據(jù)處理與數(shù)據(jù)存儲分開,創(chuàng)建第二隊列傳輸處理后的數(shù)據(jù),在單獨(dú)的While循環(huán)中進(jìn)行數(shù)據(jù)存儲,從而提高程序的運(yùn)行速度并且更加穩(wěn)定.此高速數(shù)據(jù)采集存儲程序?qū)崿F(xiàn)了數(shù)據(jù)采集、數(shù)據(jù)處理、實(shí)時顯示波形及快速存儲數(shù)據(jù)功能.根據(jù)圖2的結(jié)構(gòu)示意圖用戶可靈活設(shè)計程序,該方法適用于復(fù)雜、多功能的程序編寫.
在實(shí)際數(shù)據(jù)采集系統(tǒng)中數(shù)據(jù)存儲對時間有較高的要求,采用TDMS底層VI存儲文件可快速存儲數(shù)據(jù),提高整體系統(tǒng)的運(yùn)行速度.在TDMS選板中有多個節(jié)點(diǎn),如TDMS列出內(nèi)容、TDMS設(shè)置屬性、TDMS屬性獲取、TDMS碎片整理,用戶可根據(jù)自己的需求靈活設(shè)置屬性,方便數(shù)據(jù)存儲與查詢.
圖 3 系統(tǒng)結(jié)構(gòu) Fig.3 System structure
為了驗(yàn)證該方法的可行性,搭建了一個數(shù)據(jù)采集存儲系統(tǒng),該系統(tǒng)主要由PC上位機(jī)(軟件部分)和下位機(jī)(硬件部分)組成,系統(tǒng)結(jié)構(gòu)如圖3所示.下位機(jī)是由A/D芯片和STM32構(gòu)成,設(shè)計的多通道數(shù)據(jù)采集器,該采集器可對8路信號進(jìn)行采集并通過USB口將數(shù)據(jù)傳送給上位機(jī),發(fā)送數(shù)據(jù)采用A,B 2個數(shù)組的乒乓制,A,B數(shù)組的大小均為400字節(jié),每個數(shù)組共存儲了8個通道16 bit的采樣數(shù)據(jù)25點(diǎn),即每個通道按25 kHz采樣,采樣25點(diǎn)數(shù)據(jù).PC上位機(jī)是通過LabVIEW軟件編寫的可視化界面,用戶通過圖形界面配置數(shù)據(jù)采集器的各個功能的參數(shù)與操作命令,可實(shí)時觀察采集數(shù)據(jù),確保系統(tǒng)正常運(yùn)行,對于發(fā)現(xiàn)和解決問題起到重要作用.
此快速存儲的程序是基于STM32F407設(shè)計的數(shù)據(jù)采集存儲程序,主要包括上位機(jī)向下位機(jī)發(fā)生指令、數(shù)據(jù)的采集、數(shù)據(jù)波形顯示與數(shù)據(jù)存儲.上位機(jī)軟件程序的前面板與后面板設(shè)計如圖4所示.圖4(a)為數(shù)據(jù)采集存儲測試前面板,圖4(b)為傳統(tǒng)數(shù)據(jù)采集存儲后面板,其數(shù)據(jù)采集存儲采用傳統(tǒng)模式,圖4(c)為高速數(shù)據(jù)采集存儲后面板,其數(shù)據(jù)采集存儲采用本文提出的數(shù)據(jù)采集快速文件存儲方法.軟件程序主要使用順序結(jié)構(gòu)、While 循環(huán)、for循環(huán)、case 結(jié)構(gòu).當(dāng)程序開始進(jìn)入一個 While 循環(huán)時,其順序結(jié)構(gòu)分成4部分:第1部分是數(shù)據(jù)初始化,下位機(jī)連接與開始采集數(shù)據(jù)按鍵的設(shè)計;第2部分進(jìn)行數(shù)據(jù)發(fā)送、計時及存儲設(shè)計;第3部分進(jìn)行數(shù)據(jù)采集、處理,實(shí)時顯示波形及數(shù)據(jù)存儲程序設(shè)計; 第4部分關(guān)閉打開的函數(shù), 停止計時.
在前面板輸入各段波形持續(xù)時間,時間單位為ms,波形持續(xù)時間最小為1 ms,點(diǎn)擊開始采集數(shù)據(jù)按鍵,上位機(jī)向采集器發(fā)送波形發(fā)生命令與采集數(shù)據(jù)總字節(jié)長度信息,在線實(shí)時采集8通道數(shù)據(jù)。采集器STM32F407終端收到波形發(fā)生命令與采集數(shù)據(jù)總字節(jié)長度信息后,立即啟動數(shù)據(jù)采集與數(shù)據(jù)USB上傳.上位機(jī)對接收到的數(shù)據(jù)進(jìn)行處理,實(shí)時顯示波形并保存,存儲完畢后停止程序.采集過程中上位機(jī)可中斷采集,點(diǎn)擊波形發(fā)生停止按鍵,采集器立即停止波形發(fā)生,進(jìn)入準(zhǔn)備接收LabVIEW軟件發(fā)送數(shù)據(jù)的工作狀態(tài).
(a) 數(shù)據(jù)采集存儲測試前面板
(b) 傳統(tǒng)數(shù)據(jù)采集存儲后面板
(c) 高速數(shù)據(jù)采集存儲后面板圖 4 數(shù)據(jù)采集存儲測試軟件前面板與后面板設(shè)計Fig.4 Front panel and back panel design of data acquisition storage test software
通過設(shè)定相同采樣時間300 s,600 s,900 s,1 800 s,分別運(yùn)行2種架構(gòu)的數(shù)據(jù)存儲系統(tǒng)并記錄時間,取20次運(yùn)行時間的均值作比較,表1為2種模式運(yùn)行時間結(jié)果對比.從表1可以看出,當(dāng)指定時間較短時,2種架構(gòu)時間差并不明顯,但當(dāng)指定時間越長,程序運(yùn)行時間越長時,2種架構(gòu)運(yùn)行所需要的時間差距越來越明顯.可以得出,改進(jìn)后的方法可有效提高系統(tǒng)運(yùn)行速度,采集的時間越長,存儲的數(shù)據(jù)越多,效率越高.
表 1 2種模式運(yùn)行時間結(jié)果對比
文中給出的采集數(shù)據(jù)的快速文件存儲方法,在傳統(tǒng)“生產(chǎn)者/消費(fèi)者”模式上進(jìn)行了改進(jìn),將傳統(tǒng)單消費(fèi)者模式改為雙消費(fèi)者模式,并選用TDMS數(shù)據(jù)存儲方式,從而加快文件存儲速度提高系統(tǒng)整體速度.通過實(shí)驗(yàn)測試可以證明,與傳統(tǒng)模式相比,該方法有效提高了整體程序的運(yùn)行速度,可快速高效、穩(wěn)定工作,提高系統(tǒng)性能滿足高效采集存儲的需求,適用于多通道、長時間、不間斷的海量數(shù)據(jù)采集存儲系統(tǒng)中.
參考文獻(xiàn)(References):
[1] 王樹東,何明,王煥宇.基于labVIEW的數(shù)據(jù)采集和存儲系統(tǒng)[J].電氣自動化,2015,37(1):99-101.
WANG S D,HE M,WANG H Y.Acquisition system stored on LabVIEW[J].Electrical Automation,2015,37(1):99-101.
[2] YAN S,ZHOU Y,YAN B,et al.The electrical parameters measurement system for electrotome output based on LabVIEW[J].Journal of Biomedical Science & Engineering,2013,6(6):661-668.
[3] 靳先聚.基于LabVIEW的海量數(shù)據(jù)存儲系統(tǒng)軟件設(shè)計[J].黃河水利職業(yè)技術(shù)學(xué)院學(xué)報,2015,27(4):44-48.
JIN X J.Design on massive data storage system software based on LabVIEW[J].Journal of the Yellow River Water Conservancy Technical College,2015,27(4):44-48.
[4] 李楠,宋曉梅,鞏學(xué)芳.一種支持USB和以太網(wǎng)端口的數(shù)據(jù)采集器設(shè)計[J].西安工程大學(xué)學(xué)報,2014,28(5):593-597.
LI N,SONG X M,GONG X F.The design of data acquisition device based on USB and Ethernet port[J].Journal of Xi′an Polytechnic University,2014,28(5):593-597.
[5] 李紅剛,張素萍.基于單片機(jī)和LabVIEW的多路數(shù)據(jù)采集系統(tǒng)設(shè)計[J].國外電子測量技術(shù),2014,33(4):62-67.
LI H G,ZHANG S P.Design of multi-channel data gathering system based on STC single chip micro-computer and LabVIEW[J].Foreign Electronic Measurement Technology,2014,33(4):62-67.
[6] 黃嘉智.基于LabVIEW的高速數(shù)據(jù)采集及管理系統(tǒng)設(shè)計[D].北京:北京理工大學(xué),2016:15-16.
HUANG J Z.The design of high speed data acquisition and management system based on LabVIEW[D].Beijing:Beijing Institute of Technology,2016:15-16.
[7] 楊帆,徐皓吉,蔣曉峰.一種基于LabVIEW的數(shù)據(jù)存儲與回放技術(shù)[J].測控技術(shù),2017,36(7):124-127,132.
YANG F,XU H J,JIANG X F.A new technology of data storage and playback based on LabVIEW[J].Measurement and Control Technology,2017,36(7):124-127,132.
[8] 徐碩碩.基于LabVIEW的燃?xì)饽茉此矐B(tài)數(shù)據(jù)采集與處理[D].廊坊:北華航天工業(yè)學(xué)院,2015:25-27.
XU S S.Transient data acquisition and processing of gas energy based on LabVIEW[D].Langfang:North China Institute of Aerospace Engineering,2015:25-27.
[9] 沈瑤,金印彬,楊黎暉.淺談LabVIEW中采集數(shù)據(jù)的實(shí)時存儲和顯示方法[J].高校實(shí)驗(yàn)室工作研究,2016(1):47-49.
SHEN Y,JIN Y B,YANG L H.The real-time storage and display method of collecting data in LabVIEW[J].University Laboratory Work Research,2016(1):47-49.
[10] 王智,李智.基于LabVIEW改進(jìn)狀態(tài)機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].微型機(jī)與應(yīng)用,2014,33(7):10-12.
WANG Z,LI Z.Design of data acquisition system based on LabVIEW with improved state machine[J].Microcomputer and Application,2014,33(7):10-12.
[11] WEN L,JIN J X,CHEN X Y,et al.A Universal LabVIEW-Based HTS Device Measurement and Control Platform and Verified Through a SMES System[J].IEEE Transactions on Applied Superconductivity,2014,24(5):1-5.
[12] 黃世泉,金晅宏.基于LabVIEW的生產(chǎn)者/消費(fèi)者模式研究[J].電子科技,2017,30(9):75-77.
HUANG S Q,JIN X H.Research on producer / consumer pattern based on LabVIEW[J].Electronic Science and Technology,2017,30(9):75-77.
[13] 葉楓樺,周新聰,白秀琴,等.基于LabVIEW隊列狀態(tài)機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2010,33(4):204-207.
YE F H,ZHOU X C,BAI X Q,et al.Design of data acquisition program based on queued state machine in LabVIEW[J].Modern Electronics Technique,2010,33(4):204-207.
[14] GULER H,TURKOGLU I,ATA F.Designing intelligent mechanical ventilator and user interface using LabVIEW[J].Arabian Journal for Science & Engineering,2014,39(6):4805-4813.
[15] YAN S,ZHOU Y,YAN B,et al.The electrical parameters measurement system for electrotome output based on Labview[J].Journal of Biomedical Science & Engineering,2013,6(6):661-668.
[16] 劉波.面向風(fēng)機(jī)狀態(tài)監(jiān)控與故障診斷的數(shù)據(jù)采集與存儲系統(tǒng)研究[D].綿陽:西南科技大學(xué),2017:58-60.
LIU B.Research on data acquisition and storage system for fan condition monitoring and fault diagnosis[D].Mianyang:Southwest University of Science and Technology,2017:58-60.
[17] 王政,劉國海,沈躍,等.基于LabVIEW的電能質(zhì)量監(jiān)測系統(tǒng)及其數(shù)據(jù)存儲格式的研究[J].電測與儀表,2013,50(6):83-87,128.
WANG Z,LIU G H,SHEN Y,et al.Research on power quality monitoring system and its data storage format based on LabVIEW[J].Electrical Measurement and Instrumentation,2013,50(6):83-87,128.
[18] 宋利軍.基于LabVIEW和聲卡開發(fā)的多通道音頻存儲系統(tǒng)[J].今日電子,2012(3):56-58.
SONG L J.Multi-channel audio storage system based on LabVIEW and sound card development[J].Today Electronics,2012(3):56-58.
[19] ZHANG M,YUN J,JIN G,et al.System on temperature control of hollow fiber SpinningMachine based on LabVIEW[J].Procedia Engineering,2012,29:558-562.
[20] 王世陽,畢祥軍,王平.基于LabVIE多通道應(yīng)變采集系統(tǒng)設(shè)計[J].國外電子測量技術(shù),2017,36(8):83-87.
WANG S Y,BI X J,WANG P.Multi-channel strain acquisition system based on LabVIEW[J].Foreign Electronic Measurement Technology,2017,36(8):83-87.