閆繼正,張 雷,張海濤
(1.中國電子科技集團(tuán)公司第四十七研究所,沈陽 110000;2.中國人民解放軍 95979 部隊(duì),新泰 271207)
智慧機(jī)場(chǎng)是目前機(jī)場(chǎng)建設(shè)和發(fā)展的趨勢(shì)。我國機(jī)場(chǎng)一般都存在多種相似、相關(guān)且互相獨(dú)立的系統(tǒng),彼此數(shù)據(jù)無法共享,為了打破這種信息孤島的現(xiàn)狀,空管設(shè)備集中監(jiān)控系統(tǒng)應(yīng)運(yùn)而生。它是利用系統(tǒng)集成技術(shù)、異構(gòu)數(shù)據(jù)采集技術(shù)、數(shù)據(jù)庫技術(shù)等進(jìn)行開發(fā)的,將民航機(jī)場(chǎng)機(jī)房中各個(gè)獨(dú)立的子系統(tǒng)數(shù)據(jù)采集出來并進(jìn)行集中處理,從而實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)回查、數(shù)據(jù)分析等功能,并為后續(xù)的數(shù)據(jù)融合和數(shù)據(jù)挖掘提供支持。數(shù)據(jù)庫作為系統(tǒng)中存儲(chǔ)與查詢數(shù)據(jù)的中樞,其設(shè)計(jì)合理與否直接影響系統(tǒng)運(yùn)行的效果。根據(jù)項(xiàng)目需求進(jìn)行數(shù)據(jù)庫分析和設(shè)計(jì),能夠最大限度利用數(shù)據(jù)庫的資源,實(shí)現(xiàn)最優(yōu)最快處理數(shù)據(jù)的目的[1]。
空管設(shè)備監(jiān)控系統(tǒng)整體流程如圖1 所示。根據(jù)被采集設(shè)備的不同,采集單元對(duì)被采集設(shè)備是一對(duì)一或一對(duì)多的情況。采集單元對(duì)設(shè)備發(fā)送采集命令,將采集到的數(shù)據(jù)傳輸?shù)絎eb 服務(wù)器;Web 服務(wù)器將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,使查詢歷史數(shù)據(jù)成為可能。Web 應(yīng)用程序通過向Web 服務(wù)器請(qǐng)求數(shù)據(jù),進(jìn)行數(shù)據(jù)展示。結(jié)合應(yīng)用情景,對(duì)數(shù)據(jù)庫的設(shè)計(jì)應(yīng)包含如下幾方面的基本考量:

圖1 空管設(shè)備集中監(jiān)控系統(tǒng)整體流程圖
1)數(shù)據(jù)庫存儲(chǔ)條目數(shù)量
空管設(shè)備監(jiān)控系統(tǒng)需要采集空管設(shè)備和為保障其工作而配備的各種動(dòng)力環(huán)境保障設(shè)備的實(shí)時(shí)數(shù)據(jù)。以某民航機(jī)場(chǎng)機(jī)房為例,一個(gè)機(jī)房可能存在一到兩臺(tái)空管設(shè)備以及為保障其工作環(huán)境所需要的空調(diào)、溫濕度計(jì)、UPS、電量計(jì)等動(dòng)力環(huán)境保障設(shè)備,每臺(tái)空管設(shè)備需要實(shí)時(shí)監(jiān)控的數(shù)據(jù)參數(shù)從幾十項(xiàng)到幾百項(xiàng)不等。根據(jù)用戶需求的不同,可以對(duì)這些參數(shù)進(jìn)行裁剪,只監(jiān)控部分重要參數(shù)。全部動(dòng)力環(huán)境保障設(shè)備參數(shù)共約一百項(xiàng),一個(gè)民航機(jī)場(chǎng)存在多個(gè)這樣的機(jī)房,一個(gè)機(jī)場(chǎng)所有設(shè)備需要采集的數(shù)據(jù)在一千項(xiàng)到兩千項(xiàng)左右,歷史數(shù)據(jù)需要保存一年。由于每次僅需存儲(chǔ)發(fā)生變化的參數(shù),而所有被采集設(shè)備有一半的參數(shù)為狀態(tài)量,基本不變,另外大部分參數(shù)也很少變化,因而數(shù)據(jù)存儲(chǔ)數(shù)量不是特別巨大。
2)數(shù)據(jù)庫存儲(chǔ)頻率
空管設(shè)備監(jiān)控系統(tǒng)采集的空管設(shè)備參數(shù)的更新頻率均為秒級(jí),動(dòng)力環(huán)境保障設(shè)備對(duì)于秒級(jí)以下的數(shù)據(jù)更新沒有意義,因而對(duì)于數(shù)據(jù)庫存儲(chǔ)的數(shù)據(jù)不會(huì)太頻繁,實(shí)際使用過程中,每10 s、20 s 或更久存儲(chǔ)一次數(shù)據(jù)庫即可。
2)數(shù)據(jù)庫工作時(shí)間
空管設(shè)備監(jiān)控系統(tǒng)需要長(zhǎng)期工作,在工作過程中,數(shù)據(jù)庫需要高可靠性,不能因?yàn)閿?shù)據(jù)庫的宕機(jī)而造成巨大損失。
4)數(shù)據(jù)庫連接實(shí)例
空管設(shè)備監(jiān)控系統(tǒng)提供一個(gè)連接實(shí)例供中心機(jī)房使用,提供幾個(gè)連接實(shí)例供程序調(diào)用,所用連接實(shí)例數(shù)較少。
5)數(shù)據(jù)庫占用資源
空管設(shè)備監(jiān)控系統(tǒng)是以計(jì)算機(jī)為處理核心的系統(tǒng),兼容Windows、Linux 操作系統(tǒng),在使用數(shù)據(jù)庫時(shí),數(shù)據(jù)庫需要盡可能少地占用資源。
綜合來看,空管設(shè)備監(jiān)控系統(tǒng)所需數(shù)據(jù)庫體量中等,同一時(shí)間存取數(shù)據(jù)量中等,存取時(shí)間間隔足夠,需要穩(wěn)定運(yùn)行。在滿足這些需求的同時(shí),為進(jìn)一步應(yīng)對(duì)商業(yè)化需求,數(shù)據(jù)庫選擇要能夠盡可能縮短開發(fā)周期,減少開發(fā)成本,簡(jiǎn)單易用,最好為開源。
結(jié)合以上數(shù)據(jù)庫需求,系統(tǒng)選取以高效、簡(jiǎn)潔、可靠性高著稱的免費(fèi)開源MySQL 數(shù)據(jù)庫進(jìn)行開發(fā)設(shè)計(jì),MySQL 數(shù)據(jù)庫支持標(biāo)準(zhǔn)化SQL 查詢語言,能夠?qū)崿F(xiàn)高速存儲(chǔ)數(shù)據(jù),同時(shí)支持線程池,能夠在充分利用硬件資源的情況下,應(yīng)對(duì)大量的并發(fā)請(qǐng)求[2-4]。
結(jié)合項(xiàng)目需求分析與空管設(shè)備監(jiān)控系統(tǒng)布置進(jìn)行系統(tǒng)總體功能設(shè)計(jì),系統(tǒng)功能模塊示意圖如圖2所示。

圖2 空管設(shè)備集中監(jiān)控系統(tǒng)功能模塊示意圖
根據(jù)系統(tǒng)功能需要,對(duì)所有必要信息進(jìn)行分類整理,建立機(jī)場(chǎng)、臺(tái)站、設(shè)備、參數(shù)、數(shù)據(jù)、人員的ER 圖,如圖2 所示。


圖3 系統(tǒng)各實(shí)體E-R 圖
根據(jù)各E-R 圖與兩兩實(shí)體之間的關(guān)系,整理可得系統(tǒng)總的E-R 圖如圖4 所示。

圖4 系統(tǒng)整體E-R 圖
根據(jù)E-R 圖的理論設(shè)計(jì),結(jié)合機(jī)場(chǎng)實(shí)際情況與使用便利性進(jìn)行分析,建立系統(tǒng)數(shù)據(jù)庫。系統(tǒng)包括的數(shù)據(jù)庫表及詳細(xì)用途如下:
(1) 機(jī)場(chǎng)地區(qū)信息表
用于存儲(chǔ)機(jī)場(chǎng)所在的地區(qū)信息,實(shí)現(xiàn)區(qū)分各地區(qū)機(jī)場(chǎng)的目的。包括地區(qū)編碼和地區(qū)名稱。設(shè)計(jì)結(jié)構(gòu)要求如表1 所示。

表1 機(jī)場(chǎng)地區(qū)信息表格式
(2) 機(jī)場(chǎng)臺(tái)站信息表
用于存儲(chǔ)同一機(jī)場(chǎng)不同臺(tái)站的基本信息,實(shí)現(xiàn)區(qū)分同一機(jī)場(chǎng)各臺(tái)站的目的。包括地區(qū)編碼、臺(tái)站編碼和臺(tái)站名稱。設(shè)計(jì)結(jié)構(gòu)要求如表2 所示。

表2 機(jī)場(chǎng)臺(tái)站信息表格式
(2) 臺(tái)站設(shè)備信息表
用于存儲(chǔ)同一臺(tái)站不同設(shè)備的基本信息,實(shí)現(xiàn)區(qū)分同一臺(tái)站各設(shè)備及配置通信的目的。包括臺(tái)站編碼、設(shè)備編碼、設(shè)備本地編碼、設(shè)備名稱、通信方式、配置信息、端口狀態(tài)。設(shè)計(jì)結(jié)構(gòu)要求如表2 所示。

表3 臺(tái)站設(shè)備信息表格式
(4) 設(shè)備本地表
用于實(shí)現(xiàn)設(shè)備編號(hào)與被采集設(shè)備實(shí)際信息實(shí)現(xiàn)一一對(duì)應(yīng)的目的。包括設(shè)備本地編碼、設(shè)備本地名稱、設(shè)備所屬分類、設(shè)備所屬子分類、設(shè)備供應(yīng)商、設(shè)備型號(hào)。設(shè)計(jì)結(jié)構(gòu)要求如表4 所示。

表4 設(shè)備本地表格式
(5) 設(shè)備參數(shù)表
用于讀取和識(shí)別每臺(tái)設(shè)備所需要采集和記錄數(shù)據(jù)的參數(shù)信息。包括設(shè)備本地編碼、參數(shù)編碼、參數(shù)類型、參數(shù)中文名、參數(shù)英文名、參數(shù)單位、參數(shù)精度、參數(shù)Warning 和Alarm 的上下限、參數(shù)組別、參數(shù)含義、備注。設(shè)計(jì)結(jié)構(gòu)要求如表5 所示。

表5 設(shè)備參數(shù)表格式
(6) 歷史數(shù)據(jù)表
用于存儲(chǔ)每臺(tái)設(shè)備所需要采集的數(shù)據(jù)歷史值,方便進(jìn)行備份和歷史回查。包括數(shù)據(jù)序號(hào)、采集時(shí)間、設(shè)備編碼、參數(shù)編碼、數(shù)值。設(shè)計(jì)結(jié)構(gòu)要求如表6所示。

表6 歷史數(shù)據(jù)表格式
(7) 實(shí)時(shí)數(shù)據(jù)表
用于存儲(chǔ)每臺(tái)設(shè)備所需要采集的數(shù)據(jù)的實(shí)時(shí)值,隨著采集數(shù)據(jù)的變化而不斷更新,實(shí)現(xiàn)隨時(shí)查看被采集設(shè)備最新狀態(tài)的目的。包括數(shù)據(jù)序號(hào)、采集時(shí)間、設(shè)備編碼、參數(shù)編碼、數(shù)值。設(shè)計(jì)結(jié)構(gòu)要求如表7 所示。

表7 實(shí)時(shí)數(shù)據(jù)表格式
(8) 告警信息表
用于存儲(chǔ)每臺(tái)設(shè)備所需采集的數(shù)據(jù)發(fā)生的告警記錄,便于分析和查看。包括數(shù)據(jù)序號(hào)、采集時(shí)間、設(shè)備編碼、參數(shù)編碼、數(shù)值、告警級(jí)別。設(shè)計(jì)結(jié)構(gòu)要求如表8 所示。

表8 告警信息表格式
(9) 人員表
用于存儲(chǔ)機(jī)場(chǎng)運(yùn)維人員的信息。包括機(jī)場(chǎng)編碼、人員編碼、姓名、性別。設(shè)計(jì)結(jié)構(gòu)要求如表9 所示。

表9 人員表格式
(10) 事件表
用于存儲(chǔ)設(shè)備觸發(fā)的事件(開關(guān)機(jī)、切換機(jī)、告警、維護(hù)等)、人員處置的事件(消除告警、維修、遙控、生成報(bào)表、巡檢等)、系統(tǒng)事件(斷線、損壞、故障等)。包括序號(hào)、設(shè)備編碼、發(fā)生時(shí)間、事件內(nèi)容。設(shè)計(jì)結(jié)構(gòu)要求如表10 所示。

表10 事件表格式
由于使用MySQL 自帶調(diào)試窗口進(jìn)行數(shù)據(jù)庫建立過于繁瑣,在建立和使用數(shù)據(jù)庫的過程中使用Navicat 軟件進(jìn)行數(shù)據(jù)庫的建立和管理。依據(jù)數(shù)據(jù)庫的各表的設(shè)計(jì)和實(shí)際存儲(chǔ)內(nèi)容,在建立數(shù)據(jù)庫時(shí),各表按表1~10 的結(jié)構(gòu)進(jìn)行建立。其中,歷史數(shù)據(jù)表按照表6 的結(jié)構(gòu)創(chuàng)建后,由采集程序自動(dòng)為每個(gè)臺(tái)站建立一張表,根據(jù)采集時(shí)間,每月分出一張表[5-6]。
為驗(yàn)證該空管設(shè)備集中監(jiān)控系統(tǒng)數(shù)據(jù)庫的實(shí)用性,在數(shù)據(jù)庫設(shè)計(jì)完成后,進(jìn)行了模擬拷機(jī)實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境參照一般支線機(jī)場(chǎng)的機(jī)房進(jìn)行配置,分為11個(gè)臺(tái)站,包含5 臺(tái)不同種類型號(hào)的空管設(shè)備(1 臺(tái)GP、1 臺(tái)LOC、1 臺(tái)VOR、2 臺(tái)DME),11 套與各個(gè)臺(tái)站配套的動(dòng)力環(huán)境監(jiān)控設(shè)備(每套包括2 臺(tái)空調(diào)、1 臺(tái)UPS、1 臺(tái)電力表、1 個(gè)溫濕度計(jì)、2 個(gè)水浸傳感器、1個(gè)煙霧傳感器、1 個(gè)門磁傳感器、1 個(gè)紅外傳感器)。
實(shí)驗(yàn)中所有設(shè)備的數(shù)據(jù)均由自行開發(fā)的數(shù)據(jù)模擬軟件生成,模擬數(shù)據(jù)參照設(shè)備實(shí)際運(yùn)行參數(shù)范圍,進(jìn)行小范圍隨機(jī)變化,輸出數(shù)據(jù)至空管設(shè)備集中監(jiān)控系統(tǒng),空管設(shè)備的監(jiān)控參數(shù)條目按照最大條目進(jìn)行模擬,所有設(shè)備數(shù)據(jù)總量在一千條以上。系統(tǒng)實(shí)際工作時(shí)數(shù)據(jù)存儲(chǔ)間隔為10s 或更長(zhǎng)。
為更好地檢驗(yàn)數(shù)據(jù)庫工作能力,模擬拷機(jī)實(shí)驗(yàn)時(shí)將存儲(chǔ)間隔設(shè)置為1 s,運(yùn)行一天后,各臺(tái)站歷史表的數(shù)據(jù)量最多約為100 萬條(包括空管設(shè)備下滑、航向的臺(tái)站)和20 萬條(僅有動(dòng)環(huán)設(shè)備的臺(tái)站)左右。模擬拷機(jī)實(shí)驗(yàn)共進(jìn)行26 天,中間自然時(shí)間跨月,歷史表進(jìn)行了分表。實(shí)驗(yàn)結(jié)束后,每個(gè)臺(tái)站有兩張表,數(shù)據(jù)總量約為2500 萬條(包括空管設(shè)備的臺(tái)站)和1000 萬條(僅有動(dòng)環(huán)設(shè)備的臺(tái)站)左右,數(shù)據(jù)量約為所有設(shè)備滿參數(shù)實(shí)際工作一年的總量[7-8]。
由于在數(shù)十倍于實(shí)際工作環(huán)境的條件下進(jìn)行實(shí)驗(yàn),造成單張表數(shù)據(jù)量達(dá)千萬以上,在系統(tǒng)軟件進(jìn)行歷史數(shù)據(jù)回查時(shí)會(huì)有延遲;當(dāng)實(shí)驗(yàn)進(jìn)行至2~4 天時(shí),數(shù)據(jù)庫中單表的數(shù)據(jù)量已經(jīng)遠(yuǎn)超過了實(shí)際工作時(shí)單表的最大數(shù)據(jù)量,此時(shí)系統(tǒng)軟件進(jìn)行數(shù)據(jù)回查操作時(shí),數(shù)據(jù)庫響應(yīng)良好。經(jīng)過模擬拷機(jī)實(shí)驗(yàn),數(shù)據(jù)庫仍然工作良好,證明此數(shù)據(jù)庫設(shè)計(jì)方案可行。
空管設(shè)備集中監(jiān)控系統(tǒng)在進(jìn)行數(shù)據(jù)庫需求分析后,選擇了高效、簡(jiǎn)潔、體量較小的MySQL 數(shù)據(jù)庫。在進(jìn)行E-R 分析后,結(jié)合實(shí)際情況設(shè)計(jì)并建立了切實(shí)可行的數(shù)據(jù)庫。設(shè)計(jì)完成后進(jìn)行了模擬拷機(jī)實(shí)驗(yàn),驗(yàn)證了數(shù)據(jù)庫的性能。該數(shù)據(jù)庫系統(tǒng)在設(shè)計(jì)并研制完成后,已經(jīng)用于多家機(jī)場(chǎng)的集中監(jiān)控領(lǐng)域,取得了良好的效果。