王宗省 翟亞楠 康樹強 蘇金娣 董淑冷
摘 要:在LabVIEW虛擬平臺下設計了一種用USB接口實現的高速數據采集系統。提出了自動分文件存儲的方法解決了使用Excel文件存儲數據產生的大文件問題。提出了一次最多讀取兩個文件依次讀取的方法,解決了用波形顯示多個文件的大量數據時占用大量內存甚至導致無法顯示的問題。實驗證明文中所用方法效果明顯。該系統支持8條通道32位數據的同時采集、存儲、波形回放,系統界面簡潔、操作簡單、可添加模塊以拓展功能。
關鍵詞:數據采集 高速 波形回放 表格文件 占內存
中圖分類號:TP274+.2 文獻標識碼:A 文章編號:1672-3791(2016)05(a)-0001-02系統一次存入8個通道的數據,每通道200個32位的數,共存1 000次,即8 000行200列為一個Excel文件。程序中先設定一個循環次數i,當i=0時,用Create File函數新建文件并寫入電子表格文件,當i=1~998時,直接寫入電子表格文件;當i=999時,寫入電子表格文件并用Close File函數關閉文件;當i>999時,令i=0。程序中用移位寄存器來保存上一次的循環次數、文件路徑、文件句柄、文件狀態。文件句柄用來做Close File函數的輸入。文件狀態為真(T)表明正在寫入文件,文件狀態為假(F)表明文件已關閉。用文件狀態主要是確定在文件不再寫入時,關閉文件以節省內存。
1.2 波形回放模塊
回放模塊程序一直在檢測輸入框的變化并更新,直到用戶點擊開始后就進入波形顯示,若要改變輸入的條件,需先停止顯示波形。以下是實現回放時根據滾動條的位置自動更換讀取的數據文件的分文件讀取方法。
一個Excel文件存儲的數據有限,要查看的是多個文件的數據,如果先打開多個Excel文件讀到一個數組中,數組太大導致內存占用大,運行速度慢甚至會提示內存占滿而不能運行。該系統的設計是先判斷滾動條的位置,根據滾動條的位置判斷要打開哪個文件,讀取要打開的文件及下一個文件的數據存入二維數組,顯示到波形圖表。以上為一個循環,如果判斷要打開的文件跟上一循環的文件相同,則直接用上一循環讀取的數據,無需再重新讀取。這樣能保證每次循環只讀取兩個文件的數據。程序中用移位寄存器來保存上一次循環的數據。
在顯示波形時,用事件結構檢測滾動條的值變化。滾動條滾動一次,采用平鋪順序結構先用波形圖表的歷史數據屬性節點接入空數組來清空圖表,然后以滾動條的位置乘200為原點,讀取16 000個數為波形圖表的一個畫面。
2 測試結果
程序中USB屬性設置為高速批量傳輸,測試時硬件設置為高速的64字節批量傳輸端點進行數據傳輸,考慮協議開銷計算在理論上最高傳輸速度為6.656 MB/s(53.248 Mb/s)。經對系統測試,8個通道同時采集得到每個通道的數據傳輸速率為400 kB/s。在實際應用中,采樣頻率跟采集系統的硬件程序中的USB傳輸設置有關。現比較在波形回放時一次性全部讀取文件數據進行波形顯示和使用該文提出的分文件讀取方法的內存占用情況。該文使用應用程序性能檢測器V3.0軟件檢測,得到占內存的記錄情況用Excel畫散點圖,得到如下LabVIEW運行時內存占用曲線。每個Excel文件大小為12 706 kB,分別讀取10個文件(約120 MB)和20個文件(約240 MB)。
由圖1、2可看出讀取10個文件時相對于一次性讀取文件,該文提出的分文件讀取方法使內存使用減少了約180 MB。由圖3、圖4在讀取20個文件時,一次性讀取文件方法由于內存不足而無法運行,而分文件讀取法所占內存并沒有隨著文件的增多而改變。充分說明了分文件讀取法的實用效果。圖1、圖3中曲線波動是由于文件的關閉打開導致的內存變化。
3 結語
在LabVIEW虛擬儀器開發平臺下設計了一種基于USB的高速數據采集系統,該系統能實現數據存儲、實時顯示及波形回放的功能,提出了分文件存儲法解決了使用Excel文件存儲數據產生的大文件問題,并針對回放時占用大量內存的問題提出了分文件讀取法,經實際測試證明了所提方法的實用性。系統還可添加函數模塊對數據處理以完善功能,且系統的性能隨USB的性能提升而提升。
參考文獻
[1] 羅偉林.基于USB2.0的高速數據采集系統[D].哈爾濱:哈爾濱工業大學,2008.
[2] 郭迎福,羅曉莉,毛征宇.基于LabVIEW虛擬高速數據流盤與波形再現儀[J].儀器儀表學報,2006(S3):1788-1789.
[3] 黃琦,崔文佳.基于LabVIEW的波形文件回放分析系統設計[J].廣西電力,2013,36(5):16-18.
[4] 向科峰.基于LabVIEW的數據采集系統設計與實現[J].機械管理開發,2011(4):191-192.
[5] 蘇蘭蘭,施偉峰.基于VISA技術的高速USB數據采集系統[J].機電設備,2007(4):36-39.
[6] 孫文.多通道數據采集系統的設計與實現[D].湖南大學,2013.
[7] 余志榮,楊莉.基于NI_VISA與LabVIEW的USB接口應用設計[J].單片機與嵌入式系統應用,2007(1):66-69.
[8] 侯國屏,王坤,葉齊鑫.LabVIEW7.1編程與虛擬儀器設計[M].北京:清華大學出版社,2007.