茍文博,于 強(qiáng)
(1.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心 北京100190;2.中國(guó)科學(xué)院大學(xué) 北京100049)
基于MySQL的數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
茍文博1,2,于 強(qiáng)1
(1.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心 北京100190;2.中國(guó)科學(xué)院大學(xué) 北京100049)
為解決實(shí)踐十號(hào)衛(wèi)星有效載荷地面實(shí)驗(yàn)過(guò)程中實(shí)驗(yàn)數(shù)據(jù)統(tǒng)一管理的問(wèn)題,文中設(shè)計(jì)了基于MySQL的數(shù)據(jù)管理平臺(tái)。針對(duì)實(shí)驗(yàn)裝置本身的特點(diǎn)提出了一種數(shù)據(jù)管理方法,采用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)解析后的實(shí)驗(yàn)數(shù)據(jù),實(shí)現(xiàn)實(shí)驗(yàn)裝置地面實(shí)驗(yàn)過(guò)程的監(jiān)控以及實(shí)驗(yàn)數(shù)據(jù)的查詢統(tǒng)計(jì)分析,以圖線和表格兩種方式顯示查詢結(jié)果。實(shí)驗(yàn)結(jié)果表明,該數(shù)據(jù)管理系統(tǒng)能夠精確解析實(shí)驗(yàn)數(shù)據(jù),方便實(shí)驗(yàn)人員查詢分析實(shí)驗(yàn)數(shù)據(jù)、修改解析參數(shù)。
數(shù)據(jù)管理系統(tǒng);數(shù)據(jù)解析;數(shù)據(jù)庫(kù);C#
我國(guó)首顆微重力科學(xué)試驗(yàn)衛(wèi)星實(shí)踐十號(hào)衛(wèi)星將搭載19個(gè)科學(xué)實(shí)驗(yàn)項(xiàng)目載荷設(shè)備進(jìn)行空間科學(xué)實(shí)驗(yàn),這些載荷設(shè)備主要用于在空間開(kāi)展微重力科學(xué)和空間生命科學(xué)實(shí)驗(yàn)。為保證衛(wèi)星在空間環(huán)境中科學(xué)實(shí)驗(yàn)任務(wù)的可行性、有效性、可靠性,需要進(jìn)行一系列的地面匹配實(shí)驗(yàn)。為保證載荷性能能夠達(dá)到預(yù)期目標(biāo),需要在地面進(jìn)行大量的地基實(shí)驗(yàn),根據(jù)地基的實(shí)驗(yàn)數(shù)據(jù),分析實(shí)驗(yàn)過(guò)程、得出實(shí)驗(yàn)結(jié)果,為空間科學(xué)實(shí)驗(yàn)提供過(guò)程控制依據(jù)。
文中所實(shí)現(xiàn)的數(shù)據(jù)管理系統(tǒng)的功能是在地基實(shí)驗(yàn)中對(duì)實(shí)驗(yàn)裝置進(jìn)行測(cè)試、實(shí)驗(yàn)數(shù)據(jù)進(jìn)行存儲(chǔ)、統(tǒng)計(jì)和分析,實(shí)現(xiàn)實(shí)驗(yàn)過(guò)程中實(shí)驗(yàn)數(shù)據(jù)的實(shí)時(shí)監(jiān)控、實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)分析、實(shí)驗(yàn)參數(shù)的修改、實(shí)驗(yàn)查詢和結(jié)果直觀顯示等任務(wù)需求。在實(shí)踐十號(hào)衛(wèi)星載荷設(shè)備的地面匹配實(shí)驗(yàn)和后續(xù)的實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)分析中,本數(shù)據(jù)管理系統(tǒng)發(fā)揮了重要的作用。
數(shù)據(jù)管理系統(tǒng)原理如圖1所示。該數(shù)據(jù)管理系統(tǒng)針對(duì)7臺(tái)載荷設(shè)備實(shí)驗(yàn)數(shù)據(jù)的管理而設(shè)計(jì),是載荷設(shè)備地面實(shí)驗(yàn)的數(shù)據(jù)管理的核心系統(tǒng)。數(shù)據(jù)管理系統(tǒng)由一臺(tái)運(yùn)行數(shù)據(jù)管理軟件的計(jì)算機(jī)實(shí)現(xiàn)。通過(guò)數(shù)據(jù)管理軟件,計(jì)算機(jī)通過(guò)串口接收到執(zhí)行系統(tǒng)發(fā)送的實(shí)驗(yàn)數(shù)據(jù)源碼,并對(duì)實(shí)驗(yàn)數(shù)據(jù)源碼進(jìn)行解析處理??刂葡到y(tǒng)實(shí)現(xiàn)對(duì)載荷設(shè)備實(shí)驗(yàn)流程的控制,根據(jù)設(shè)置的時(shí)間發(fā)送控制指令至執(zhí)行系統(tǒng)??刂葡到y(tǒng)根據(jù)通訊協(xié)議將接收到的控制指令解析成相應(yīng)的控制信號(hào),然后將控制信號(hào)轉(zhuǎn)換成驅(qū)動(dòng)信號(hào)發(fā)送至執(zhí)行系統(tǒng),執(zhí)行結(jié)果由傳感器反饋給計(jì)算機(jī)。
圖1 數(shù)據(jù)管理系統(tǒng)原理圖
數(shù)據(jù)管理系統(tǒng)軟件具有3大功能模塊:實(shí)驗(yàn)數(shù)據(jù)解析、實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)和實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)分析,如圖2所示。該系統(tǒng)采用Visual studio 2010作為開(kāi)發(fā)平臺(tái),使用C#語(yǔ)言實(shí)現(xiàn)。Visual studio 2010的集成開(kāi)發(fā)環(huán)境更為人性化,可視化的控件編程更為方便[1]。C#是微軟公司開(kāi)發(fā)的一種面向?qū)ο蟮?、安全的、穩(wěn)定的、并且代碼簡(jiǎn)潔的高級(jí)程序設(shè)計(jì)語(yǔ)言,它運(yùn)行于.NET Framework之上,通過(guò)使用.NET中的大量類庫(kù)來(lái)進(jìn)行編程[2]。
圖2 數(shù)據(jù)管理系統(tǒng)功能模塊圖
2.1 實(shí)驗(yàn)數(shù)據(jù)解析
實(shí)驗(yàn)數(shù)據(jù)解析模塊包括兩個(gè)子功能:數(shù)據(jù)解析和解析參數(shù)管理。
1)數(shù)據(jù)解析
數(shù)據(jù)解析是將接收到的數(shù)據(jù)包中的實(shí)驗(yàn)數(shù)據(jù)源碼,按照通訊協(xié)議解析成能夠表示執(zhí)行系統(tǒng)當(dāng)前狀態(tài)的實(shí)際物理值,便于實(shí)驗(yàn)人員理解和觀察,保證數(shù)據(jù)的可讀性。
數(shù)據(jù)解析內(nèi)容可分為3類,分別是通訊性能、機(jī)構(gòu)運(yùn)行狀態(tài)、模擬量采集。其中通訊性能包括RS422接口模塊復(fù)位/使能、接收復(fù)位計(jì)數(shù)器、數(shù)據(jù)包發(fā)送間隔等;機(jī)構(gòu)運(yùn)行狀態(tài)主要包括電機(jī)運(yùn)行、開(kāi)關(guān)控制、針閥控制等狀態(tài),例如電機(jī)運(yùn)行速度、電機(jī)運(yùn)行方式、PID[3-4]參數(shù)、風(fēng)扇狀態(tài)、LED開(kāi)閉狀態(tài)、CCD開(kāi)閉狀態(tài)等;模擬量采集包括AD976模擬量采集和DS18B20模擬量采集,可以實(shí)時(shí)反饋實(shí)驗(yàn)過(guò)程中電壓值和溫度值。
2)解析參數(shù)管理
數(shù)據(jù)包中數(shù)據(jù)源碼進(jìn)行解析時(shí),需查詢熱電偶分度表中對(duì)應(yīng)的解析參數(shù),熱電偶分度表存儲(chǔ)于MySQL數(shù)據(jù)庫(kù)中。為了便于解析參數(shù)的統(tǒng)一管理,該系統(tǒng)建立了解析參數(shù)管理的可視界面,實(shí)驗(yàn)人員可根據(jù)需求變化手動(dòng)修改熱電偶分度表中的解析參數(shù),包括解析參數(shù)的查詢、添加、修改和刪除操作。
2.2 實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)
實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)模塊包括兩個(gè)子功能:實(shí)時(shí)存儲(chǔ)和離線存儲(chǔ)。實(shí)時(shí)存儲(chǔ)是指將通過(guò)串口實(shí)時(shí)采集到的實(shí)驗(yàn)過(guò)程中實(shí)驗(yàn)數(shù)據(jù)源碼經(jīng)過(guò)解析后存儲(chǔ)于數(shù)據(jù)庫(kù)中,并添加當(dāng)前解析的日期、時(shí)間信息。執(zhí)行系統(tǒng)(FPGA)[5]以鍵-值的形式返回?cái)?shù)據(jù),每秒鐘發(fā)送一個(gè)數(shù)據(jù)包,鍵-值對(duì)均為單字節(jié)十六進(jìn)制數(shù)據(jù)。
圖3 數(shù)據(jù)包接收格式
實(shí)驗(yàn)載荷設(shè)備進(jìn)行異地調(diào)試、匹配實(shí)驗(yàn)時(shí),實(shí)驗(yàn)數(shù)據(jù)源碼以.bin和.txt文件格式存儲(chǔ)。為了將實(shí)驗(yàn)數(shù)據(jù)統(tǒng)一管理和分析、防止實(shí)驗(yàn)數(shù)據(jù)丟失,數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)還可實(shí)現(xiàn)離線存儲(chǔ),即將.bin和txt文件中實(shí)驗(yàn)數(shù)據(jù)原碼進(jìn)行解析,將解析后的數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)中。
2.3 實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)分析
實(shí)驗(yàn)數(shù)據(jù)存統(tǒng)計(jì)分析模塊包括兩個(gè)子功能:實(shí)驗(yàn)數(shù)據(jù)查詢和實(shí)驗(yàn)數(shù)據(jù)通用統(tǒng)計(jì)。實(shí)驗(yàn)人員可選擇載荷設(shè)備、實(shí)驗(yàn)起止的日期時(shí)間、要查詢的物理量、數(shù)據(jù)查詢范圍和讀數(shù)間隔,進(jìn)行直觀的實(shí)驗(yàn)數(shù)據(jù)查詢。其中,物理量可進(jìn)行多選及批量選擇,由于物理量較多,且對(duì)于不同載荷相同的物理量具有不同意義,實(shí)驗(yàn)人員可選擇自己關(guān)注的物理量進(jìn)行查詢。數(shù)據(jù)查詢范圍可實(shí)現(xiàn)一個(gè)或兩個(gè)某物理量在一定數(shù)據(jù)范圍內(nèi)的查詢。根據(jù)查詢結(jié)果,實(shí)驗(yàn)人員可進(jìn)行實(shí)驗(yàn)數(shù)據(jù)通用統(tǒng)計(jì),包括統(tǒng)計(jì)數(shù)據(jù)最大值、最小值、平均值和方差值。
圖4 交互式操作界面
本系統(tǒng)使用 MySQL數(shù)據(jù)庫(kù)完成存儲(chǔ)工作。MySQL數(shù)據(jù)庫(kù)是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),已被廣泛應(yīng)用于因特網(wǎng)上中小型企業(yè)[6]。它具有功能強(qiáng)、使用簡(jiǎn)便、管理方便、運(yùn)行速度快、安全可靠性強(qiáng)等優(yōu)點(diǎn),用戶可利用許多語(yǔ)言編寫(xiě)訪問(wèn)MySQL數(shù)據(jù)庫(kù)的程序[7-8]。數(shù)據(jù)管理系統(tǒng)平臺(tái)數(shù)據(jù)庫(kù)包含熱電偶分度表和七臺(tái)實(shí)驗(yàn)載荷設(shè)備的實(shí)驗(yàn)數(shù)據(jù)表共八張表,分別用來(lái)存儲(chǔ)熱電偶解析參數(shù)值和7臺(tái)載荷設(shè)備的實(shí)驗(yàn)數(shù)據(jù)。
1)熱電偶分度表
熱電偶分度表存儲(chǔ)熱電偶解析參數(shù)信息,包括熱電偶類型、熱電偶溫度和熱電偶微伏值。其詳細(xì)設(shè)計(jì)見(jiàn)表1。
表1 熱電偶分度表
2)載荷實(shí)驗(yàn)數(shù)據(jù)表
數(shù)據(jù)管理系統(tǒng)負(fù)責(zé)七臺(tái)載荷設(shè)備實(shí)驗(yàn)數(shù)據(jù)的管理,每個(gè)載荷創(chuàng)建一張表,表名以載荷設(shè)備名命名,七張表的類型相同,都包括序號(hào)、日期、時(shí)間以及各物理量。只列出一部分字段,其詳細(xì)設(shè)計(jì)見(jiàn)表2。
表2 載荷設(shè)備實(shí)驗(yàn)數(shù)據(jù)存儲(chǔ)表
數(shù)據(jù)管理系統(tǒng)可以表格和圖線兩種形式顯示存儲(chǔ)在數(shù)據(jù)庫(kù)中的實(shí)驗(yàn)數(shù)據(jù)。在Visual Studio開(kāi)發(fā)環(huán)境下,很容易使用一些標(biāo)準(zhǔn)控件來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的快速展示[9-10]。采用GridView控件顯示表格數(shù)據(jù),它的工作原理是將數(shù)據(jù)源控件中的數(shù)據(jù)信息綁定、顯示在表格中或者是將存放在DataSet數(shù)據(jù)集中的數(shù)據(jù)信息綁定、顯示在表格中[11]。采用TeeChart控件顯示曲線。TeeChart的主類是TChart,TChart中使用了眾多的屬性方法和事件,這使得 TChart具有非常強(qiáng)大的功能[12]。實(shí)驗(yàn)人員可設(shè)置載荷設(shè)備、時(shí)間日期、物流量等查詢條件,以表格形式顯示實(shí)驗(yàn)數(shù)據(jù)查詢結(jié)果,并且可以對(duì)數(shù)據(jù)查詢結(jié)果進(jìn)行通用統(tǒng)計(jì)分析,統(tǒng)計(jì)分析的結(jié)果也以表格形式顯示??梢詫?duì)表格數(shù)據(jù)進(jìn)行修改、增加、刪除、保存等操作,以及保存格式為Excel表,可自定義表名。根據(jù)實(shí)驗(yàn)人員需求,熱電偶等物理量數(shù)據(jù)查詢結(jié)果可以圖線形式顯示,可更加直觀的觀測(cè)數(shù)據(jù)參數(shù)(如電壓、溫度)的變化趨勢(shì)。
下面以載荷設(shè)備蒸發(fā)對(duì)流箱為例,介紹本系統(tǒng)的實(shí)驗(yàn)結(jié)果。蒸發(fā)對(duì)流箱的功能是研究微重力條件下液體蒸發(fā)及對(duì)流過(guò)程。它的控制要求是:控溫溫度40±0.5℃。它的控溫偶是熱偶T1。以其蒸發(fā)臺(tái)1為例,該蒸發(fā)臺(tái)的實(shí)驗(yàn)流程為:實(shí)驗(yàn)開(kāi)始后,將密封電機(jī)轉(zhuǎn)至上限位,接著開(kāi)始PID加熱,加熱一段時(shí)間后注液電機(jī)進(jìn)行注液,注液電機(jī)完成注液,進(jìn)行溫控,溫度保持在40℃。最后,停止溫控,蒸發(fā)結(jié)束后密封電機(jī)歸位。觀察實(shí)驗(yàn)過(guò)程中液體蒸發(fā)對(duì)流情況,溫控部分?jǐn)?shù)據(jù)見(jiàn)表3。
表3 溫控?cái)?shù)據(jù)表
其中,熱偶T1為蒸發(fā)臺(tái)1溫度反饋?zhàn)x數(shù)。實(shí)驗(yàn)過(guò)程中,蒸發(fā)臺(tái)1保溫區(qū)的溫度最大值為40.081℃,最小值為39.985℃,方差為0.019℃,滿足了精度控制要求。蒸發(fā)臺(tái)1熱偶T1溫度的溫度曲線如圖5所示。
圖5 蒸發(fā)臺(tái)1實(shí)驗(yàn)過(guò)程的控溫曲線
該數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)采用了集成設(shè)計(jì)的思想,實(shí)現(xiàn)了多種載荷設(shè)備實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)一管理,提高了系統(tǒng)通用性,并且提高了實(shí)驗(yàn)數(shù)據(jù)的管理效率。軟件設(shè)計(jì)采用了基于Visual studio開(kāi)發(fā)平臺(tái)的模塊化設(shè)計(jì)思想。該測(cè)試系統(tǒng)已應(yīng)用在實(shí)踐十號(hào)衛(wèi)星的地面匹配實(shí)驗(yàn)中。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)具有數(shù)據(jù)解析處理準(zhǔn)確、穩(wěn)定可靠、人機(jī)界面友好等優(yōu)點(diǎn),并達(dá)到了設(shè)計(jì)要求。該系統(tǒng)為空間科學(xué)實(shí)驗(yàn)的成功提供了保障。
[1]徐超.基于ASP.NET的高效課堂教學(xué)質(zhì)量評(píng)價(jià)系統(tǒng)[D].長(zhǎng)春:吉林大學(xué),2012.
[2]王海燕.C#和.NET中的異常處理機(jī)制淺析 [J].電腦知識(shí)與技術(shù),2015,11(15):202-203.
[3]雷泰,趙榮耀,袁方,等.基于模糊自適應(yīng)的PID控制器研究[J].陜西電力,2016(6):64-68.
[4]李彬,薛云燦,王思睿,等.基于自適應(yīng)模糊PID控制的最大功率點(diǎn)跟蹤技術(shù)研究 [J].陜西電力,2015(7):7-10.
[5]馬保懷,馮秋實(shí),許麗.基于FPGA的單端法行波故障測(cè)距裝置的研究與實(shí)現(xiàn) [J].陜西電力,2016(7):43-47,60.
[6]龔成瑩,邢敬宏,胡銀保.基于JSON的Android移動(dòng)終端與PHP及MySQL數(shù)據(jù)通信[J].工業(yè)儀表與自動(dòng)化裝置,2013(1):63-65,69.
[7]魏松,賀丹娜.基于MYSQL的學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(14): 207-209.
[8]蘭旭輝,熊家軍,鄧剛.基于MySQL的應(yīng)用程序設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(3):442-468.
[9]史浩.VS C#數(shù)據(jù)庫(kù)程序建立的三種方式[J].福建電腦,2013(12):153-155.
[10]周藝環(huán),任偉,張旭,等.電子互感器異常報(bào)文數(shù)據(jù)庫(kù)設(shè)計(jì)[J].陜西電力,2014(5):65-68.
[11]郭文波.ASP.NET GridView控件的高級(jí)數(shù)據(jù)綁定與應(yīng)用[J].電腦開(kāi)發(fā)與應(yīng)用,2012,25(1):58-66.
[12]梁增欣,李維嘉.TeeChart控件介紹及在實(shí)時(shí)監(jiān)控系統(tǒng)中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2010,23(12): 9-10.
Design and implementation of data management system based on MySQL
GOU Wen-bo1,2,YU Qiang1
(1.National Space Science Center,Chinese Academy of Sciences,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100049,China)
In order to solve the problem of the unified management of experimental data of SJ-10 payload in the experiment on ground,the Data Management Platform based on C#is designed. According to the characteristics of the experiment facility,it puts forward a method of data management and adopts MySQL to store the data.The Data Management System can monitor the ground experiment process of experiment and realizes the query and statistics analysis of experimental data,using chart and form to show query results.Experimental results show that this Data Management System can accurately analyze the experimental data and it is convenient for experimental staff to query and analyze the experimental data and modify the analytical parameters.
data management system;data parsing;database;C#
TN02
:A
:1674-6236(2017)06-0062-04
2015-10-12稿件編號(hào):201510058
茍文博(1990—),女,甘肅平?jīng)鋈?,碩士研究生。研究方向:智能檢測(cè)與控制技術(shù)。