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