劉 瑤 庹先國 鄭洪龍
(西南科技大學國防科技學院,四川 綿陽 621010)
長距離α測量系統(tǒng)的實時數據采集軟件設計
劉 瑤 庹先國 鄭洪龍
(西南科技大學國防科技學院,四川 綿陽 621010)
為了掌握長距離α測量系統(tǒng)所測數據的實時變動情況及后期對數據的分析與處理,提出一種軟件設計方案。融合RS-232串口與RS-232轉USB接口兩種方式實現對測量數據的接收,并通過ZedGraph圖形控件對測量數據進行實時動態(tài)顯示及統(tǒng)計分析,利用SQLite數據庫對測量數據進行存儲,實現歷史數據的在線與離線查詢。測試結果表明,該系統(tǒng)軟件具有較好的實時性與穩(wěn)定性,且動態(tài)顯示過程流暢,適用于實時數據的獲取與顯示。
長距離α測量 數據采集 實時 串口 USB ZedGraph 統(tǒng)計分析 SQLite
目前,人們對核能的開發(fā)和利用的力度越來越大,在這一過程中,不可避免地會產生核污染。長距離α測量系統(tǒng)突破了常規(guī)α探測的局限,能夠高效地探測儀器管道內壁和不規(guī)則面α污染的嚴重程度,現已得到了廣泛的應用[1]。隨著計算機成為人們日常生活及工業(yè)生產中不可缺少的設備[2-3],如何利用先進的計算機技術對長距離α測量系統(tǒng)的測量數據進行高效地處理已成為一個亟待解決的問題,國內已有部分研究人員對此進行了探索并取得了研究成果。羅召霞基于長距離α測量技術研制了一臺管道內表面α活度監(jiān)測儀,并設計了相應的數據采集軟件,能夠通過串口實時獲取數據并進行圖形化顯示[4],但顯示的數據量有限,不能顯示數據變動的全貌;成毅等基于PDA設計了一種α測量軟件,能夠通過藍牙接收α測量儀器測得的能譜數據并進行顯示[5],但由于其采用的是簡單的文本存儲方式,使得后期對于歷史數據的查詢與分析變得比較復雜。
根據所作的需求分析,構建的系統(tǒng)體系結構如圖1所示,主要是由長距離α測量系統(tǒng)、接口模塊、數據動態(tài)顯示與統(tǒng)計分析、數據庫4個部分組成。
圖1 α污染測量系統(tǒng)框架
長距離α測量系統(tǒng)包括α污染測量儀、電離室、導氣管道、供電電源等,文獻[6]對這一部分進行了詳細的闡述。接口模塊設計了兩種方式。一種是計算機帶有RS-232接口,可直接通過串口線進行通信;另一種是計算機不帶RS-232接口而只有USB接口,需要RS-232轉USB接口線支持, 這類轉接線通過USB接口連接計算機,并安裝相應的驅動程序后即可在所接計算機上虛擬出一個COM端口,實現硬件設備與計算機的串口通信。計算機接收到數據后,一方面用于實時動態(tài)顯示與統(tǒng)計分析,另一方面通過SQLite數據庫對其進行存儲,方便歷史數據的查詢與導出。
以Visual Studio 2010作為軟件開發(fā)工具,基于C#語言開發(fā)。結合系統(tǒng)體系結構的劃分,設計軟件的功能模塊如圖2所示。該軟件功能模塊主要由數據接收模塊、數據存儲模塊、數據顯示模塊、數據查詢模塊和數據分析模塊5個部分組成。
圖2 軟件功能模塊
數據接收模塊完成接口數據的接收。數據存儲模塊具備數據庫存儲以及導出至EXCEL表格保存2種功能,雙備份確保數據不會丟失。數據查詢模塊包括EXCEL查詢與數據庫查詢,其中EXCEL查詢方式可以直接打開相應文件查看,也可以將數據導入軟件中進行查看。數據顯示模塊包括表格實時記錄與圖形動態(tài)顯示,其中圖形動態(tài)顯示能夠將所測量數據全部顯示且畫面不會出現遲滯現象。數據分析模塊是利用統(tǒng)計學原理對所測量的數據作出分析。
3.1 數據接收模塊
對移動學習(M-Learning)的研究始于1994年卡內基梅隆的研究項目,該項目開創(chuàng)了移動教育的先河。隨后E-Learning提供商借鑒E-Learning的相關經驗,將移動學習引入高校和企業(yè)培訓。由教育機構發(fā)起的針對中小學的教育信息化改革,則試圖通過新技術改善教學、學習和管理。
3.1.1 數據接收接口
① 計算機若有RS-232串口,則可用RS-232串口線連接長距離α測量系統(tǒng)與計算機,并在計算機端通過SerialPort類完成串口的相關設置(端口號、波特率等),即可實現串口通信。
② 計算機若無串口而只有USB接口,則需要由RS-232轉USB接口線支持。轉接線一端是RS-232接口,用于連接長距離α測量系統(tǒng);另一端是USB接口,用于連接計算機,在網上下載相應的驅動程序并安裝,即可在計算機端虛擬出一個串口。
對于虛擬串口的相關信息的獲取有兩種方式:一種是通過查看設備管理器;另一種是通過編程實現,WMI有一個類(Win32_PNPEntity)可以返回“設備管理器”中所有設備的信息[7],通過虛擬串口的標志符“Prolific USB-to-Serial Comm Port”進行字符串搜索,即可定位到設備管理器信息中的虛擬串口,最后通過字符串操作提取出端口號COM*。
在設計時,采用編程獲取虛擬串口信息。若在設備管理器信息中檢索時能夠返回虛擬串口信息,則說明接入計算機的是RS-232轉USB接口線,并將通信端口設置為虛擬端口號,否則,將通信端口設置為默認物理端口COM2。通過這種方式,無論采用RS-232串口線還是RS-232轉USB接口線接入計算機,軟件都能夠自動識別并完成對串口的設置。
3.1.2 數據接收原理
DotNet提供了SerialPort類進行串口通信,讀取串口數據時有兩種方式:一種是新建一個線程用于實時讀取串口,該方式是線程每隔一定時間就讀取串口,而不論此時串口是否有接收到數據;另一種是事件觸發(fā)方式,該方式以數據到達為觸發(fā)事件,觸發(fā)時通知主線程,然后再進行數據讀取。由于線程實時讀串口相的接收數據的效率低于事件觸發(fā)方式,故設計時采用事件觸發(fā)方式。
SerialPort類封裝屏蔽了很多通信細節(jié),因此使用非常方便。事件觸發(fā)方式的編程實現方法是只需為SerialPort類的DataReceived事件綁定一個函數,然后在該函數中調用適合的方法,從而實現對串口數據的讀取[8]。
3.1.3 數據接收過程
由于長距離α測量系統(tǒng)的測量數據是以字節(jié)格式向計算機發(fā)送數據,故適合采用調用ReadByte()方法從串口中接收數據。當數據接收速度大于數據處理速度時,會出現數據丟失。
為了避免這種情況,在接收數據后并不立即處理,而是將接收到的數據存入隊列中。當隊列不為空時,即從隊列中取出數據進行處理。由于隊列采用先進先出方式,因此從隊列中取出數據時可以保持數據的原有順序[9]。
下面以測量本底電流(無污染源的情況下測量得到的數據)為例,說明數據的接收流程,如圖3所示。
圖3 數據接收流程
從串口接收到數據后存入隊列,當隊列不為空時,即從隊列中取出首字節(jié),判斷其是否為數據包的標志字節(jié)“0x42”,若不是,繼續(xù)取出下一個字節(jié)進行判斷,直至取到“0x42”;然后從隊列中取出連續(xù)的4個字節(jié)(高位在前),即完成一個完整數據包的獲?。蛔詈笸ㄟ^進制轉換算法將這4個字節(jié)數據轉換得到一個十進制數據,即為最后的結果。
3.2 數據顯示模塊
3.2.1 表格實時記錄
在獲取數據并轉換為十進制結果后,需要將數值進行前端顯示,在此采用Dot Net自帶的DataGridView表格控件對數據進行實時記錄。通過控件提供的方法Insert(行索引,當前時間,測量值)將數據插入到行索引處,并調用Refresh()方法即可顯示新插入的數據。
3.2.2 圖形化動態(tài)顯示
為了直觀地了解測量結果的增減變動情況,軟件添加了圖形顯示的功能。設計時有三種方案。第一種方案采用商業(yè)的報表開發(fā)工具內含的統(tǒng)計圖表功能,其優(yōu)點是功能全面,缺點是商業(yè)控件是收費的,會增加軟件的開發(fā)成本;第二種方案是采用DotnetCharting圖形控件,其優(yōu)點是控件免費,水晶式效果炫目,圖表效果好;缺點是性能稍差、不支持縮放;第三種方案是采用ZedGraph圖形控件,可用于創(chuàng)建折線圖、餅圖、柱狀圖,其優(yōu)點是控件免費并且代碼開源,可以修改代碼以適應具體的需求,性能較好,支持縮放和拖動功能;缺點是圖表效果稍差。由于軟件是需要對實時數據進行顯示,對性能要求較高,因此采用第三種方案。
ZedGraph圖形控件綁定了PointPairList數據集,實現時,指定該數據集顯示的圖樣形式為折線圖,當DataGirdView表格中有數據更新時,將更新的數據點(時間,測量值)添加至該數據集,并調用坐標適應方法AxisChange()與更新方法Refresh(),即可在圖形面板上動態(tài)地顯示測量結果的變動的情況[10]。
3.3 數據存儲模塊
3.3.1 數據庫存儲
軟件采用SQLite數據庫對數據進行存儲,該數據庫無需任何初始化配置文件,無安裝卸載過程,也不存在服務器實例的啟動與停止,操作方便、易于維護。
數據存儲結構的設計有兩種方案。一種方案是將需要存儲的信息(測量起始時間、測量時間間隔、電流測量值等)存儲在一個表中。其優(yōu)點是表設計簡單,查詢操作的編程容易;缺點是存在數據冗余。另一種方案是根據表中數據的關系,設計出不同的表,用于存儲不同的數據。其優(yōu)點是減少數據冗余,優(yōu)化了數據表;缺點是設計復雜。為了使數據存儲更有效率,設計中采用第二種方案。根據所需存儲的信息,設計的數據庫E-R圖如圖4所示。
圖4 數據庫E-R圖
其中,測量信息表中的內容包括測量起始時間、測量結束時間、測量用時、測量時間間隔等,目標電流記錄表與本底電流記錄表是根據長距離α測量系統(tǒng)所測的不同內容作出的相應記錄。
3.3.2 EXCEL表格保存
為避免測量數據發(fā)生丟失,除采用數據庫存儲外,還通過將DataGridView表格數據導出至EXCEL表格的方式進行保存。實現時,新建EXCEL工作表,并將DataGridView表格中的數據一行一行地寫入工作表中[11]。需要特別注意的是,每一次的導出操作,在新建EXCEL工作表后都會創(chuàng)建EXCEL.EXE進程,所以在寫入操作完成之后,需要銷毀EXCEL.EXE進程,否則,隨著導出操作次數的增加,該進程會不斷地消耗內存。
3.4 數據分析模塊
為測試軟件各功能模塊的實現情況以及運行的穩(wěn)定性,設置測量時間間隔為1 s,總耗時4 h,共計接收14 402個數據點,測試得到的效果圖如圖5所示。
圖5 軟件功能測試圖
圖5(a)展示了測量數據的圖形化動態(tài)顯示;圖5(b)展示了測量數據的表格記錄過程;圖5(c)是對這次測量數據所做的統(tǒng)計分析,在圖中除了給出頻率直方圖與正態(tài)分布曲線的比對之外,還列示了各類指標數據(平均值,均值等)。根據這些數據,可得到該組測量數據的置信分布情況,如表1所示。
通過對圖樣中頻率直方圖與正態(tài)分布曲線的對比,并考慮表1中試驗概率相對于理論概率的偏差程度,可知,這組數據近似滿足正態(tài)分布,可靠性較高。
從測試結果來看,軟件滿足了設計的要求,各功能模塊能夠有效地工作且運行穩(wěn)定。
表1 測量數據的置信分布情況
針對目前α測量數據采集軟件所存在的不足,本文設計了一種長距離α測量系統(tǒng)實時數據采集軟件。該軟件融合了RS-232串口與RS-232轉USB接口兩種方式,能夠自動識別接口并進行相關設置,并通過ZedGraph圖形控件實現了實時數據的動態(tài)顯示;采用SQLite數據庫與Excel表格對數據進行雙備份,通過對存儲結構的設計,優(yōu)化了存儲效率;此外,運用統(tǒng)計學知識對測量數據進行分析,判定了該組數據的可靠性。最后,通過測試實例,驗證了所設計軟件的實用性及穩(wěn)定性。
[1] 付軍,庹先國,廖哲,等.LRAD技術在α表面污染監(jiān)測中的應用[J].核電子學與探測技術,2007,27(5):830-832,851.
[2] 孟亞輝.淺談軟件項目開發(fā)過程中的需求分析[J].科技信息,2009,26(11):435-436.
[3] 羅薇紅.計算機軟件需求分析及開發(fā)研究[J].信息通信,2013,27(2):177.
[4] 羅召霞.管道內表面α活度監(jiān)測系統(tǒng)研制[D].成都:成都理工大學,2012.
[5] 成毅,周傳文,庹先國,等.基于PDA&MCU的便攜式α測量系統(tǒng)[J].核電子學與探測技術,2011,31(8):894-898.
[6] 付軍.長距離α污染測量儀的研制[D].成都:成都理工大學,2008.
[7] 陳杰新.如何獲取設備管理器的明細[J].黑龍江科技信息,2009,13(24):65.
[8] 龔新文.串口通信在VS2008中的實現與應用[J].電腦與電信,2011,17(3):47-48,51.
[9] 江澤鵬.三菱PLC串口通信時數據沖突的解決方法[J].自動化應用,2013,54(6):58-59,71.
[10]朱亦鋼.應用ZedGraph高效開發(fā)數據圖表[J].電腦編程技巧與維護,2009,16(12):59-61,124.
[11] 李紀軍.將DataGridView中數據導出到Excel[J].電腦編程技巧與維護,2012,19(15):64-66.
[12]吳治華.原子核物理實驗方法[M].北京:原子能出版社,1997:4-16.
Design of the Real-time Data Acquisition Software for Long RangeαMeasurement System
In order to master the real time changes of the measured data in long rangeαmeasurement system, and to analyze and process the data in later period, the software design strategy is proposed. The measured data can be
through both RS-232 serial port mode, and RS-232 to USB mode; and the measured data can be dynamically displayed and statistically analyzed in real time through ZedGraph graphic control. By adopting SQLite database, the historical data are stored for online and offline inquiries. The test results indicate that the system software possesses better real time performance and stability; and the dynamic display process is smooth, it is suitable for real time data acquisition and display.
Long rangeαmeasurement Data acquisition Real-time Serial port USB ZedGraph Statistical analysis SQLite
國家自然科學基金資助項目(編號:413741301)。
劉瑤(1991-),男,現為西南科技大學控制科學與工程專業(yè)在讀碩士研究生;主要從事計算機應用方面的研究。
TP319
A
10.16086/j.cnki.issn1000-0380.201509017
修改稿收到日期:2015-01-10。