陳鍇迪,歐陽李青,馬玉璘,張海波,徐 瑋,徐 昕
(上海航天電子技術(shù)研究所,上海 201109)
新一代運載火箭測發(fā)控系統(tǒng)針對某系列火箭通用化特點進(jìn)行統(tǒng)型設(shè)計,系統(tǒng)簡單地適應(yīng)性更改即可滿足不同型號的應(yīng)用需求。運載火箭信息交互指揮平臺運行在運載領(lǐng)域新一代測發(fā)控集群上,數(shù)據(jù)采集終端接收運載火箭箭上、地面、加注庫房數(shù)據(jù)進(jìn)行處理顯示,并存儲于MySQL數(shù)據(jù)庫中,以便判讀人員對歷史數(shù)據(jù)進(jìn)行回放和追溯。傳統(tǒng)的瀏覽判讀軟件大多采用C/S架構(gòu),只能一對一查看,一旦更改則需要對每臺主機(jī)運行的終端進(jìn)行同步更新,指揮人員查看實時數(shù)據(jù)和歷史數(shù)據(jù)往往需要在多個終端之間切換,不僅不利于快速數(shù)據(jù)監(jiān)測,且容易引發(fā)多個軟件下接口沖突與兼容的問題。此外,面對國產(chǎn)操作系統(tǒng)推廣使用的需求。傳統(tǒng)的顯示判讀平臺可移植性不強(qiáng),對操作系統(tǒng)提供出了極高要求,不利于平臺后續(xù)的維護(hù)和使用。為克服現(xiàn)有技術(shù)的不足,解決傳統(tǒng)平臺不能靈活擴(kuò)展的問題,以滿足新一代運載火箭高密度測試的需求,本文以某系列運載火箭為研究對象,對通用化、一體化、可移植性強(qiáng)的信息交互平臺開展分析和研究,創(chuàng)新性地將B/S架構(gòu)引入火箭數(shù)據(jù)綜合顯示系統(tǒng),提出了以Vue為前端開發(fā)框架,采用SpringBoot、Mybatis-Plus等主流技術(shù)實現(xiàn)后端軟件架構(gòu),MySql搭建關(guān)系型數(shù)據(jù)庫用于海量試驗數(shù)據(jù)存儲的方式,實現(xiàn)了數(shù)據(jù)實時顯示和歷史追溯的功能,為后續(xù)平臺在多型號中推廣和國產(chǎn)操作系統(tǒng)中應(yīng)用奠定了良好的基礎(chǔ)。
信息交互指揮平臺部署在新一代運載火箭后端大廳上,為指揮和判讀人員提供高效、便捷的數(shù)據(jù)監(jiān)測方式。在平臺運行過程中能夠接收來自火箭電氣系統(tǒng)和動力系統(tǒng)的所有箭上及地面數(shù)據(jù),將處理后的數(shù)據(jù)以特定方式呈現(xiàn)在前端界面上,供指揮人員查看,對重要參數(shù)進(jìn)行實時監(jiān)測,遇到故障情況及時預(yù)警。
某系列運載火箭采用無毒害燃料及總線控制技術(shù),統(tǒng)稱為新一代運載火箭。新一代運載火箭測發(fā)控系統(tǒng)核心基礎(chǔ)統(tǒng)型設(shè)計要求各軟件配置項具備通用化的特點,能夠兼容各型號運載火箭。面對型號任務(wù)多、時間緊的特點,一項軟件的更改即可滿足各型號需求,為測發(fā)控系統(tǒng)縮短研制周期提供了有力支撐。
目前國產(chǎn)化的需求日益緊迫,國產(chǎn)操作系統(tǒng)的推廣對軟件的跨平臺能力提出了新的要求。傳統(tǒng)通用判讀軟件大多采用C#編程,Visual Studio(Windows平臺應(yīng)用程序的集成開發(fā)環(huán)境)開發(fā),對所部署主機(jī)的操作系統(tǒng)有限制。新一代運載火箭信息交互指揮平臺以跨平臺為設(shè)計初衷,為日后移植到國產(chǎn)操作系統(tǒng)中使用奠定基礎(chǔ)。
運載火箭信息交互指揮平臺通過權(quán)限識別實現(xiàn)用戶分層管理,按照各角色特點進(jìn)行數(shù)據(jù)授權(quán),管理員可以分配和修改賬戶,用戶也可以對自己權(quán)限范圍內(nèi)的數(shù)據(jù)自定義顯示方式,如圖表式、卡片式。分層管理可以減少無關(guān)信息的干擾,也能防止重要信息泄露。
運載火箭信息交互指揮平臺承擔(dān)運載火箭電氣系統(tǒng)和動力系統(tǒng)指揮顯示功能,平臺需要具備容錯性,防止因操作不當(dāng)造成程序崩潰。同時需要針對試驗數(shù)據(jù)設(shè)計靈活、安全機(jī)制穩(wěn)健的數(shù)據(jù)庫系統(tǒng),實現(xiàn)數(shù)據(jù)的容災(zāi)備份。
運載火箭的信息交互指揮平臺是整個運載火箭型號工程項目的重要組成部分,集成了地面和箭上數(shù)據(jù)的顯示和判讀任務(wù)。該平臺的設(shè)計原則是在滿足功能性需求的前提下盡可能兼容先進(jìn)性、安全性、輕量化和可擴(kuò)展性等非功能性需求。平臺采用B/S架構(gòu)搭建總體框架,選取目前Java Web應(yīng)用的主流框架Spring Boot+Vue.js進(jìn)行前后端分離式開發(fā)。Spring Boot開發(fā)框架的引進(jìn)能夠極大地簡化項目的配置,與傳統(tǒng)開發(fā)模式相比,“約定大于配置”的理念讓平臺的開發(fā)、測試和部署變得更加簡便。
文獻(xiàn)[1]在分析測發(fā)控業(yè)務(wù)需求的基礎(chǔ)上,提出了測發(fā)控信息全過程可配置、測試數(shù)據(jù)通用化處理、測試實時判讀和試驗數(shù)據(jù)快速后處理的方法,構(gòu)建了航天通用測發(fā)控軟件平臺。
運載火箭測發(fā)控系統(tǒng)的統(tǒng)型設(shè)計是實現(xiàn)各型號火箭通用化的必要途徑之一。文獻(xiàn)[2]為實現(xiàn)新一代運載火箭地面測試、發(fā)射和控制的一體化、通用化和智能化,提出了一種運載火箭地面測發(fā)控系統(tǒng)的體系架構(gòu),整合了傳統(tǒng)運載火箭控制、測量、總控網(wǎng)等分系統(tǒng)的測發(fā)控共性需求,并在某型號完成了原理性試驗和關(guān)鍵技術(shù)驗證。
為了提高運載火箭遙測參數(shù)起始電平的判讀效率和覆蓋性,文獻(xiàn)[3]基于LabVIEW平臺和ACCESS數(shù)據(jù)庫設(shè)計開發(fā)了一款遙測參數(shù)起始電平自動判讀軟件,經(jīng)過測量系統(tǒng)綜合試驗的驗證,該軟件能夠?qū)崿F(xiàn)遙測參數(shù)全波道數(shù)據(jù)的自動測試。
文獻(xiàn)[4]設(shè)計實現(xiàn)了一個基于SpringBoot的機(jī)載CNI系統(tǒng)預(yù)置參數(shù)生成軟件,是SpringBoot框架在航空航天科學(xué)與工程中的創(chuàng)新性應(yīng)用。系統(tǒng)基于B/S架構(gòu),通過Spring Boot與Vue框架的結(jié)合實現(xiàn)了軟件的前后端分離,使軟件的配置和功能擴(kuò)展變得簡便。
基于以上研究,本平臺將數(shù)據(jù)接收、處理、顯示、存儲功能分成4個模塊。數(shù)據(jù)接收模塊采用統(tǒng)一的接口形式和標(biāo)準(zhǔn)的通訊約定,數(shù)據(jù)處理模塊根據(jù)業(yè)務(wù)需求從存儲模塊讀取配置信息,并將處理后的數(shù)據(jù)交還給存儲模塊進(jìn)行入庫。各模塊間分工明確,接口清晰,系統(tǒng)的整體集成度高,信息架構(gòu)合理高效。
運載火箭信息交互指揮平臺架構(gòu)如圖1所示。運載火箭電氣系統(tǒng)、測量系統(tǒng)和動力系統(tǒng)的測試數(shù)據(jù)通過通訊管理軟件組播發(fā)送給數(shù)據(jù)接收模塊,數(shù)據(jù)接收模塊簡單地過濾后傳送給數(shù)據(jù)處理模塊按通訊約定進(jìn)行解析,并將解析后的結(jié)果以用戶指定格式呈現(xiàn),部分中間數(shù)據(jù)通過數(shù)據(jù)存儲模塊入庫保存。
圖1 平臺架構(gòu)圖
運載火箭信息交互指揮平臺采用前后端分離式開發(fā),引入了Swagger框架生成前后端接口文檔,能極大程度地提高軟件開發(fā)的效率。前端只負(fù)責(zé)人機(jī)交互和信息展示,所有數(shù)據(jù)的接收、處理和存儲由后端實現(xiàn)。
軟件架構(gòu)采用經(jīng)典的MVC(Mode、View、Controller)三層架構(gòu),包括視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層[5]。視圖層是指與用戶交互的頁面,Web模式下特指由HTML元素構(gòu)成的網(wǎng)頁。業(yè)務(wù)邏輯層主要是處理業(yè)務(wù)數(shù)據(jù)和對數(shù)據(jù)層的一些操作,包括數(shù)據(jù)接收模塊和數(shù)據(jù)處理模塊。數(shù)據(jù)訪問層與數(shù)據(jù)庫直接交互,主要是對數(shù)據(jù)庫的一些增刪改查操作,包括配置信息讀取、過程數(shù)據(jù)存儲等。
圖2 軟件架構(gòu)
3.2.1 與外系統(tǒng)通信
與外系統(tǒng)的信息交互包括TCP(transmission control protocol)和UDP(user datagram protocol)兩種通訊形式。數(shù)據(jù)類型有電氣有線數(shù)據(jù)、動力有線數(shù)據(jù)和遙測數(shù)據(jù)。平臺能接收到的電氣有線數(shù)據(jù)來自通信管理軟件A的組播,動力有線數(shù)據(jù)來自通信管理軟件C的組播,遙測數(shù)據(jù)來自通信管理軟件B的組播,此外還有設(shè)備自身組播的數(shù)據(jù),如地面電源和箭上配電控制器等。除了以上組播數(shù)據(jù)外,還有一部分箭上數(shù)據(jù)來自控制系統(tǒng)的廣播。因此,指揮平臺接收的數(shù)據(jù)均基于UDP協(xié)議,包括組播和廣播數(shù)據(jù)。
電氣有線組播數(shù)據(jù)和動力有線組播數(shù)據(jù)大多為控制、查詢、采樣等指令。這類數(shù)據(jù)有固定幀格式,可以用統(tǒng)一的接口接收,收到的數(shù)據(jù)幀按幀標(biāo)識字段進(jìn)行剔除。
地面電源和箭上配電控制器等設(shè)備組播的數(shù)據(jù)為設(shè)備自身的采樣信息,實時發(fā)送給顯示終端用于展示設(shè)備狀態(tài)。
控制系統(tǒng)的數(shù)據(jù)通過廣播形式發(fā)送,主要為運載火箭箭上數(shù)據(jù),火箭數(shù)據(jù)接收模塊的處理流程如圖3所示。
圖3 數(shù)據(jù)接收流程圖
3.2.2 瀏覽器-服務(wù)器通信
3.2.2.1 WebSocket通信
WebSocket是基于HTML5提供的一種在單個TCP連接上進(jìn)行雙向通訊的網(wǎng)絡(luò)協(xié)議。這種通訊方式的優(yōu)勢在于瀏覽器和服務(wù)器只需要建立一次握手就可以長久而穩(wěn)定地連接,且雙方都可以主動發(fā)起數(shù)據(jù)請求,進(jìn)行雙向數(shù)據(jù)傳輸。
圖4 WebSocket通信
為了滿足向不同用戶展現(xiàn)多樣數(shù)據(jù)的需求,該平臺設(shè)計了多個WebSocket通信,每個WebSocket服務(wù)于特定頁面,在用戶切入時建立連接,用戶選擇參數(shù)后,后端WebSocket收到信息,給前端推送相應(yīng)數(shù)據(jù)。
以上WebSocket都繼承了統(tǒng)一的接口,客戶端訂閱消息時請求的路徑名稱為WebSocket代號加上用戶ID,WebSocket發(fā)送數(shù)據(jù)時統(tǒng)一封裝成JSON格式傳送給瀏覽器。
3.2.2.2 AJAX通信
AJAX(Asynchronous JavaScript and XML,AJAX)是基于XML的異步JavaScript,AJAX可以在不加載全部網(wǎng)頁的情況下對部分?jǐn)?shù)據(jù)進(jìn)行更新。
AJAX與WebSocket不同,他建立的是短連接,且只能由客戶端發(fā)起,而非雙向通信。因此,對于實時性要求不高的數(shù)據(jù),可以采用AJAX進(jìn)行交互,例如查詢頁面的配置信息和歷史數(shù)據(jù)等。
服務(wù)端設(shè)計了統(tǒng)一的數(shù)據(jù)返回格式,我們將響應(yīng)封裝為JSON格式返回,返回值包括:響應(yīng)結(jié)果、響應(yīng)碼、消息、返回數(shù)據(jù)。
數(shù)據(jù)處理模塊的數(shù)據(jù)來源為網(wǎng)絡(luò)數(shù)據(jù)、歷史數(shù)據(jù)和本地文件3種形式。網(wǎng)絡(luò)數(shù)據(jù)通過數(shù)據(jù)接收模塊的接口傳入至數(shù)據(jù)解析模塊,歷史數(shù)據(jù)通過數(shù)據(jù)訪問層操作數(shù)據(jù)庫導(dǎo)入,電磁閥數(shù)據(jù)以二進(jìn)制文件形式存儲于本地文件夾中,需要判讀人員手動導(dǎo)入查看。
3.3.1 實時數(shù)據(jù)處理
實時數(shù)據(jù)來自網(wǎng)絡(luò)傳輸,對數(shù)據(jù)的處理邏輯如圖5所示。不同類型數(shù)據(jù)的傳輸頻率有很大差異,例如測量數(shù)據(jù)的傳輸約為20 ms一幀,這對數(shù)據(jù)處理模塊的響應(yīng)速度提出了很高要求。
圖5 實時數(shù)據(jù)處理邏輯圖
本文將接收到的網(wǎng)絡(luò)數(shù)據(jù)分為以下幾類:指令參數(shù)、時串參數(shù)、狀態(tài)參數(shù)、測量參數(shù),數(shù)據(jù)處理流程如圖6所示。指令參數(shù)由控制命令、查詢命令、采樣命令等參數(shù)組成,例如PLC設(shè)備控制命令,配電控制器狀態(tài)量查詢命令等。這類參數(shù)需要顯示在流程信息欄上,重要程度較高,數(shù)據(jù)處理模塊需要對每一幀的是否合格進(jìn)行校驗,對不合格的幀標(biāo)記成異常狀態(tài)進(jìn)行顯示。
圖6 數(shù)據(jù)處理流程圖
時串參數(shù)包括點火時串、電磁閥時串、綜合控制器時串、電爆電路時串。這類數(shù)據(jù)屬于非周期性數(shù)據(jù)類別,數(shù)據(jù)幀間隔不固定。數(shù)據(jù)處理模塊收到時串?dāng)?shù)據(jù)實時處理后放入緩存,根據(jù)時串類別固定間隔推送,可以防止瀏覽器因瞬時數(shù)據(jù)量過大而卡死。電爆電路時串由于通斷時間較短,與其他時串同一間隔推送會致使界面上看不出狀態(tài)變化,因此,電爆電路類時串采用實時推送的方式。
狀態(tài)參數(shù)包括PLC、配電控制器、直流電源、中頻電源等設(shè)備組播的數(shù)據(jù),其中有設(shè)備自身狀態(tài)相關(guān)數(shù)據(jù)和設(shè)備采集的信息。數(shù)據(jù)處理模塊將這類數(shù)據(jù)的模擬量按字節(jié)解析為整型或浮點型數(shù)值,狀態(tài)量按位解析為二進(jìn)制數(shù)值并以鍵值對的形式進(jìn)行存儲。
測量參數(shù)與其他參數(shù)的不同之處在于數(shù)據(jù)傳輸?shù)乃俣忍貏e快,為了防止瀏覽器負(fù)載過大,經(jīng)過測試,將以圖表形式顯示的測量參數(shù)的實時推送更改為每一秒刷新一次。這樣處理使得圖表界面只能查看最新一秒內(nèi)的數(shù)據(jù),若要了解當(dāng)前參數(shù)的全程變化情況,可以在事后瀏覽模塊進(jìn)行回溯。
3.3.2 歷史數(shù)據(jù)判讀
數(shù)據(jù)庫管理終端將所有收到的網(wǎng)絡(luò)數(shù)據(jù)解析后存儲在本地數(shù)據(jù)庫中,并開啟實時同步服務(wù),將數(shù)據(jù)傳輸至另一臺數(shù)據(jù)庫備份。指揮平臺的歷史數(shù)據(jù)來源于備份數(shù)據(jù)庫,配置文件來源于本地數(shù)據(jù)庫,數(shù)據(jù)判讀的處理邏輯如圖7所示。
數(shù)據(jù)判讀有在線預(yù)覽和生成報告兩種形式,在線預(yù)覽模式下,用戶可自主修改當(dāng)前參數(shù)的閾值,服務(wù)器會將用戶錄入的判讀信息存儲到配置數(shù)據(jù)庫中,下一次判讀只需從數(shù)據(jù)庫中取出相關(guān)信息即可。
用戶點擊生成報告時可以選擇測試項目、判讀表、報告是否含有曲線等基本信息,服務(wù)器首先會根據(jù)用戶選擇的信息在數(shù)據(jù)庫中查找是否已存在判讀結(jié)果,若已有結(jié)果則將相關(guān)數(shù)據(jù)填入判讀報告中,若沒有結(jié)果則讀取相關(guān)配置生成判讀報告,用戶可前往報告管理頁面自行下載至本地。
判讀類型大致可以分為以下幾種:時序數(shù)據(jù)判讀、時刻值判讀、全程數(shù)據(jù)判讀、最大最小值判讀、指令數(shù)據(jù)判讀。其中全程數(shù)據(jù)判讀和最大最小值判讀都屬于單一數(shù)據(jù)判讀,是對某一參數(shù)的監(jiān)測,不涉及第二個參數(shù),處理方法比較簡單。
3.3.2.1 時序數(shù)據(jù)判讀
時序數(shù)據(jù)判讀主要是對時串?dāng)?shù)據(jù)的實測值以不同時間基準(zhǔn)進(jìn)行判讀,某一時串參數(shù)通常有多次通斷記錄,每次通斷對應(yīng)的判讀基準(zhǔn)和允差都不同,軟件應(yīng)從數(shù)據(jù)庫中提取到該時串的每一次變化并根據(jù)配置信息判斷其是否合格,標(biāo)記出不合格項,超出理論通斷次數(shù)的時串需單獨列出,便于判讀人員檢查異常原因。
圖7 數(shù)據(jù)判讀邏輯圖
3.3.2.2 單一數(shù)據(jù)判讀
單一數(shù)據(jù)判讀的處理方式較簡單,只需讀取數(shù)據(jù)的平均值、最大值或最小值進(jìn)行上下限判讀。但對于數(shù)據(jù)量龐大的測量參數(shù),即使是簡單地查詢平均值,單次執(zhí)行時間也遠(yuǎn)高于普通參數(shù)。因此,設(shè)計合理的數(shù)據(jù)庫表結(jié)構(gòu)和軟件多線程并行成為解決這個問題的必要方式。
3.3.2.3 時刻值判讀
時刻值判讀在單一參數(shù)的基礎(chǔ)上引入了時間點,例如在電池加溫指令通時判讀電池溫度是否合格。這類數(shù)據(jù)的處理會涉及指令信息存儲和電池信息存儲兩張表,指令信息存儲的時間節(jié)點會對判讀結(jié)果產(chǎn)生影響,因此對數(shù)據(jù)庫管理終端的實時數(shù)據(jù)寫入速度有較高要求。
3.3.2.4 指令數(shù)據(jù)判讀
指令數(shù)據(jù)判讀是對配電控制器指令碼和操作碼狀態(tài)位變化時對應(yīng)狀態(tài)量參數(shù)是否變化進(jìn)行判斷。例如,配電控制器收到開鎖命令,指令碼和操作碼變?yōu)殚_鎖對應(yīng)數(shù)字,開鎖狀態(tài)位要隨即變成“0”,表示開鎖成功。數(shù)據(jù)處理模塊應(yīng)獲取配電控制器的所有指令碼和操作碼,并對相應(yīng)參數(shù)進(jìn)行判斷,將每一條數(shù)據(jù)以表格形式羅列出來供判讀人員查看。
3.3.3 電磁閥數(shù)據(jù)解析
測試階段需要對發(fā)動機(jī)電磁閥、輔助動力電磁閥、增壓輸送電磁閥電流曲線進(jìn)行判讀。根據(jù)電磁閥電流曲線特征,自動識別出電磁閥起始動作時刻(t1)、吸合時間(t2)、穩(wěn)態(tài)電流(I1)、關(guān)閉時刻(t3)、釋放時間(t4)等參數(shù)值,定義如圖8所示。
圖8 電磁閥電流曲線
發(fā)動機(jī)電磁閥、輔助動力電磁閥、增壓輸送電磁閥數(shù)據(jù)由兩個分布式設(shè)備采集得到,因此,用戶查看電磁閥數(shù)據(jù)時需要分別導(dǎo)入兩個電磁閥數(shù)據(jù)包才能解析得到所有的電磁閥數(shù)據(jù)。電磁閥解析模塊按通道位順序依次解析每個電磁閥,將得到的波形和特征點存儲至數(shù)據(jù)庫,電磁閥解析的流程如圖9所示。
3.4.1 通用界面
通用界面的顯示內(nèi)容是固定的,包括電氣指揮監(jiān)視界面、測量參數(shù)瀏覽界面、動力指揮監(jiān)視界面、動力配氣臺參數(shù)瀏覽界面,只有被授予了權(quán)限的用戶才可以登錄查看。電氣指揮監(jiān)視界面有綜合、配控數(shù)據(jù)、時序數(shù)據(jù)、狀態(tài)屏4個頁簽,如圖10所示。該界面涵蓋了運載火箭電氣系統(tǒng)配電控制器、地面電源、電池等參數(shù)的全方位監(jiān)測。
圖10 電氣指揮監(jiān)視界面
測量參數(shù)瀏覽界面展示了動作參數(shù)、動力系統(tǒng)參數(shù)、測量系統(tǒng)參數(shù)、總體參數(shù)、熱環(huán)境參數(shù)、熱環(huán)境非實時參數(shù),如圖11所示。用戶可選擇表格形式查看參數(shù)實測值,也可以切換至曲線模式,自由勾選想要顯示的參數(shù)。
圖11 測量參數(shù)瀏覽界面
動力指揮監(jiān)視界面是對運載火箭動力系統(tǒng)參數(shù)的監(jiān)測,包含了重要參數(shù)、狀態(tài)監(jiān)控、模擬參數(shù)、狀態(tài)參數(shù)、電磁閥、流程屏6個頁簽,如圖12所示。狀態(tài)量以信號燈的形式顯示通斷,模擬量以數(shù)字或曲線方式顯示,并按配置的上下限實時判讀,超限參數(shù)能夠及時預(yù)警。
圖12 動力指揮監(jiān)視界面
配氣臺參數(shù)瀏覽界面是對運載火箭動力系統(tǒng)氮氣配氣臺和氦氣配氣臺相關(guān)數(shù)據(jù)的監(jiān)測。除了氦氣配氣臺和氮氣配氣臺內(nèi)部各測點參數(shù)外,一二級煤油箱和氧箱的直測參數(shù)也以圖表形式顯示在配氣臺參數(shù)瀏覽界面上。
圖13 配氣臺參數(shù)瀏覽界面
3.4.2 自定義界面
自定義界面是用戶可自主配置的界面,如圖14所示。該界面對所有用戶開放權(quán)限,用戶可自主選擇顯示的內(nèi)容和形式,配置重要參數(shù)、表格數(shù)據(jù)、繪圖數(shù)據(jù)、卡片參數(shù)4個頁簽。
圖14 自定義參數(shù)顯示界面
3.4.3 用戶管理
用戶管理包含個人中心和系統(tǒng)配置,如圖15所示。個人中心為用戶修改個人賬號、密碼以及配置參數(shù)顯示形式的頁面。系統(tǒng)配置只對管理員開放,管理員可進(jìn)入系統(tǒng)管理頁面新增角色和用戶,對同一角色的用戶統(tǒng)一更改權(quán)限,修改用戶的賬號和密碼,以及查看系統(tǒng)日志。
圖15 用戶管理界面
數(shù)據(jù)存儲模塊封裝了軟件后端與數(shù)據(jù)庫和本地文件夾的交互接口,平臺在運行過程中產(chǎn)生的判讀數(shù)據(jù)和配置信息會存儲在數(shù)據(jù)庫中,而電磁閥原始文件等中間數(shù)據(jù)和判讀報告則存儲在本地文件夾中。
3.5.1 數(shù)據(jù)庫存儲
數(shù)據(jù)庫存儲模塊與數(shù)據(jù)庫的交互依賴于Mybatis-Plus框架,Mybatis-Plus是在Mybtis的基礎(chǔ)上做了增加,能極大程度簡化對數(shù)據(jù)庫的增刪改查操作。在SpringBoot框架下只需通過Maven導(dǎo)入依賴,并在配置文件中添加MySQL數(shù)據(jù)源信息即可快速使用MyBatis-Plus。
本文對數(shù)據(jù)庫存儲表進(jìn)行設(shè)計,可以分為用戶信息配置表、參數(shù)信息配置表、界面信息配置表、過程數(shù)據(jù)存儲表四類,共55張表,如圖16所示。
圖16 數(shù)據(jù)庫存儲表
以參數(shù)信息表“itp_param_config”為例,如圖17所示。數(shù)據(jù)庫存儲表的結(jié)構(gòu)中包含以下幾種基本字段:“uuid”,作為行唯一標(biāo)識;“update_time”,更新時間;“create_time”,創(chuàng)建時間;“deleteflag”,是否刪除標(biāo)志。其中“uuid”為表主鍵,添加數(shù)據(jù)庫表主鍵方便表之間存在嵌套時的分表查詢,加快了數(shù)據(jù)庫的操作速度。
圖17 表結(jié)構(gòu)
3.5.2 本地文件存儲
試驗過程中上傳或下載文件需要通過Nginx(engine x)實現(xiàn),Nginx是一個高性能的負(fù)載均衡和反向代理的服務(wù)器,特點是內(nèi)存占有少,并發(fā)能力強(qiáng)[9]。
開啟Nignx應(yīng)用程序前需要在Nginx.conf配置文件中約定存放的目錄和文件名后綴。使用Nginx作為資源訪問服務(wù)器,可以防止用戶上傳錯誤文件,把控用戶權(quán)限。
本文設(shè)計的信息交互指揮平臺已在某型號運載火箭發(fā)射任務(wù)中得到驗證。基于B/S架構(gòu)的平臺部署在某基地后端指揮大廳的測發(fā)控集群上,判讀人員通過谷歌瀏覽器進(jìn)行訪問。相比傳統(tǒng)顯示判讀軟件終端個數(shù)多、需要重復(fù)部署的缺點,基于SpringBoot的運載火箭信息交互指揮平臺以其功能完備、部署高效、響應(yīng)敏捷為特色,為新一代運載火箭快速測試、發(fā)射模式提供了強(qiáng)有力的支持。
基于SpringBoot的運載火箭信息交互指揮平臺采用B/S架構(gòu),前后端分離模式開發(fā),實現(xiàn)了運載火箭地面數(shù)據(jù)的顯示和判讀,本文提出了某系列運載火箭通用化數(shù)據(jù)處理方式,可通過修改配置文件實現(xiàn)多型號運載火箭適應(yīng)性更改,達(dá)到一套軟件適用于多個型號的通用化目標(biāo),并在某型號發(fā)射任務(wù)中得到驗證。運載火箭信息交互指揮平臺具有良好的穩(wěn)定性和安全性,為指揮和判讀人員提供了更高效的工作方式,也為日后國產(chǎn)操作系統(tǒng)的應(yīng)用奠定了基礎(chǔ)。