衛星地面測試通用數據分析顯示系統設計與實現
作者 薛征 陳杭 蔣曉肖 上海航天控制技術研究所(上海 201109)
本文引用地址:http://www.104case.com/article/201705/359758.htm薛征(1984-),男,碩士,工程師,研究方向:基于C#的衛星地面測試軟件研發與測試;陳杭,男,碩士,工程師,研究方向:基于C#的衛星地面測試軟件研發與測試;蔣曉肖,女,碩士,高級工程師,研究方向:C#的衛星地面測試軟件研發與測試。
摘要:衛星地面測試中,數據分析與顯示系統是與用戶交互的唯一界面。為了滿足多種型號衛星地面測試中的分析與顯示,本文提出了衛星地面測試通用數據分析顯示系統。該系統可以及時、有效地對所有的衛星姿控系統地面測試數據進行分析和顯示,提高了用戶交互性和軟件的可擴展性。目前該通用分析顯示系統已應用于十余顆衛星地面測試中,并得到用戶的廣泛好評。
1 系統功能和主要特點
目前,國防和空間研究對航天衛星的功能及數量需求不斷增加,提供的測試任務也逐漸增多,過去以型號為主,不同型號、不同測試軟件的管理模式已不能滿足需求,衛星地面測試軟件的通用化已成為亟待解決的課題[1]。
地面測試系統由控制軟件、分析顯示軟件、數據庫軟件等部分構成[2],不同型號新研或試驗過程中復雜度和變更最多的為顯示分析軟件。為縮短衛星地面測試研試周期,提出基于C#的衛星地面測試通用數據分析顯示系統,不需要修改源代碼前提下,實施于不同衛星型號。同時,使用者通過修改配置文件即可滿足一般性需求變更。系統功能和主要特點如下:
(1) 實現數據多種格式存儲及快速回放
支持Access、SQL Server類型數據庫存儲,數據以16進制源碼和有效解析數據兩種格式進行存儲,存儲為SQL Server table和*. dat兩種文件形式。系統提供數據回放通道,可按時間選取特定變量進行顯示,回放速率可調節,最高可達到原始傳輸速率的10倍速。
(2) 快速實現數據的采集、分析、顯示
采用TCP/IP網絡異步接收的方式實現數據采集,保證數據的快速傳輸及正確性,支持多種數據源同步傳輸,并實時解析顯示,數據分析效率高,響應快,數據顯示延時率≤0.5ms。
(3) 支持多種協議格式、復雜數據類型
該系統兼容多種協議格式,內部包含協議轉換器,可實現協議統一化。目前,在軌和在研多顆衛星的多樣化協議均可兼容。支持多種數據類型的解析,如bit、byte、int、string、char、float、double和1750f[4];內部包含多種函數公式,可完成簡單線性、專用類型轉換計算,也可完成多項式、查表法等復雜計算,有效地實現數據轉換。
(4) 高效性的界面設計
系統界面設計友好,人員獲得數據簡便、準確,數據顯示方式多樣,同一數據可采用圖像、圖形、曲線、數值、容器等多種方式展示。變量定義配置支持在線編輯和線下編輯、在線導入兩種方式,頁面支持用戶自定義,可自由進行頁面布局,曲線自定義縮放,并自動保存。軟件提供源碼接收查看界面,可實時查看數據接收狀態。
(5) 通用化結構設計,可擴展性強
該系統整體框架設計清晰,采用模塊設計方式,對外開放接口。配置靈活,采用excel、xml、config、ini等格式配置文件[3],不同項目僅需更改項目相關的變量表,更新數據協議設置,即可完成項目切換,實現不同項目的實時應用,軟件通用化強。軟件模塊自定義深度可擴展,支持C#、Web Service、Test Stand等接口,可無縫擴展。
(6) 異常處理,提供問題準確定位
軟件內部包含異常處理,容錯性好,對于常見配置異常及網絡通訊設計了界面反饋,能夠提供出明確的異常位置和異常類型,方便用戶快速準確地定位問題;有專用異常數據反查通道,出現顯示異常時,可快速定位硬件接口數據異常傳輸位置,加快試驗故障排查工作,提升效率。
2 系統結構
為適應不同型號和不同階段測試需求,設計了通用分析顯示系統。本系統采用模塊化設計,主要分為五大模塊:通用配置模塊、數據通信模塊、通用解析模塊、實時顯示模塊和數據存儲回放模塊;系統整體結構如圖1所示。
通用配置模塊實現不同型號的兼容性,通過統一的配置規則及配置接口文件,將不同型號的數據格式及具體波道數據表、函數處理方式等信息分解到xml、ini、excel格式配置文件中,并輸出為DataTable表格式。
數據通訊模塊實現數據快速接收,保證高速穩定性。
通用解析模塊實現協議轉換后數據的通用解析,通過調用通用配置模塊內輸出的DataTable表,通過模塊化函數處理,將16進制數據計算轉化為符合用戶需求的數值類型。
實時顯示模塊保證實時性,實現數據的多樣化顯示,如圖形、曲線、數值、容器方式等。
數據存儲回放模塊實現數據的實時存儲以及后期回放,存儲為SQL Server table[6]和*. dat兩種文件形式,后期回放時,支持讀取SQL Server table中16進制原始數據和dat文件數據,將數據在軟件界面內加速回放。
3 系統各模塊設計
3.1 通用配置模塊
配置模塊中主要操作的對象為二進制文件,其后綴指定為.dat,因此,配置模塊的輸入和輸出均為dat二進制文件。衛星地面測試時,數據復雜、排列多變,且伴隨有加密和解密過程。因此,通用顯示軟件配置模塊中的dat二進制文件的格式以表的形式來定義,主要有波道表、類型表、單機表、公式表、字節表、幀表等,每個表都有各自的屬性列,各個表之間的關系如圖2所示。
3.2 數據通信模塊
通信模塊的主要功能有實時接收數據庫的數據,事后從數據庫中提取大批量數據供數據回放。因此,該模塊提供兩種通訊方式,即通過網絡接收數據即使用TCP、UDP網絡協議和通過ADO.NET[7]大批量接收數據庫數據。
分析顯示軟件與數據庫之間為一對多的關系,當TCP通訊時,采用異步模式,主要考慮以下三種情況:一個數據庫軟件同時要與多個終端軟件進行數據交互;做大型實驗時,存在數據量大和頻率高的情況;終端軟件需要分析的數據種類比較多,如果采用同步模式,一旦一個終端軟件發生異常時,其它終端軟件將同時受到影響。當數據回放時,終端軟件與數據庫之間采用ADO.NET模式通訊,ADO.NET中最重要的特性是:它們是以斷開連接的方式工作。目前,許多服務構建為連接一個服務器,檢索一些數據,再在客戶機上處理這些數據,之后重新連接服務器,把數據傳送回去進行處理,ADO.NET的斷開連接的本質就可以實現這類操作。
3.3 通用解析模塊
在通用解析模塊中,輸入為網絡接收的十六進制字節數組、處理方式、參數、字節類型,輸出為經過公式處理的目標數據類型(如int、float、double等)。考慮到后期數據分析模塊的更改或數據分析方式需要添加的情況,在此模塊中采用設計模式——簡單工廠模式,使用設計模式使得程序更加靈活、容易修改,且易于復用。
通用解析模塊采用簡單工廠設計模式[8]后的類結構如圖3所示。其中,簡單工廠類中根據字節標志來決定實例化數據類型的類;實例化類為一個抽象類,其中包含一個虛擬函數Result(),函數實體在具體類中完成;4字節轉float類繼承實例化類,完成Result()函數的具體行為,將字節數組中其中4個字節轉化為浮點型數據輸出;同理,4字節轉二進制類將字節數據中4個字節轉為二進制輸出,8字節轉double類將字節數組中8個字節轉為雙精度浮點數輸出,8字節轉二進制類將字節數組中的8個字節轉為二進制數據輸出。如果要往數據分析模塊中添加其他數據類型轉化方式,只要在底層添加相應的類庫,并繼承實例化類,同時,在簡單工廠設計類中添加字節標志即可。
3.4 實時顯示模塊
利用面向對象的程序設計[5]概念,將顯示模塊封裝為各個控件容器,其中包含文本控件、曲線控件、儀表控件。文本控件以表格形式顯示當前時刻的數據狀態;曲線控件以曲線形式描述數據趨勢圖,含放大縮小功能;儀表控件以更形象化的圖形顯示各個波道數據,例如表盤、溫度計、柱狀圖、指示燈等。
3.5 數據存儲回放模塊
數據導出模塊的輸入為經過數據分析模塊處理完成的數據表,輸出為用戶所選格式的文件。后期數據處理過程中,不同衛星試驗人員采用不同工具,因此,該模塊設計導出三種不同格式數據文件,即txt、excel和origin。
4 系統應用
整合上述5個模塊,形成通用分析顯示系統,通過讀取不同配置文件區分各衛星型號變量。操作主要為打開主界面、新建子窗體、子窗體中添加各種控件、控件中添加不同變量等,結合模塊執行過程如圖4所示。
目前,本系統已應用于多個衛星型號中,以某衛星為例,首先根據衛星試驗人員提供的變量說明表配置變量數據類型、排序、公式、參數、解析方式等,配置完成形成統一配置文件;軟件讀入配置文件;試驗人員選擇顯示方式如曲線、文本、柱狀圖等;對應顯示方式上選擇需要顯示的一個或者多個變量;通過配置文件解析源數據,并將結果數據顯示。
5 結論
通用數據分析顯示系統理論上能夠支持絕大部分衛星地面測試分析顯示需求,并支持多顆衛星同時測試。目前,通用數據分析顯示軟件已經在多個衛星型號中實際使用,因其操作簡便、用戶界面友好、運行穩定可靠而受到試驗人員的廣泛好評。不同衛星型號地面測試采用同一顯示分析軟件,避免軟件設計人員重復開發,節省試驗人員熟悉全新軟件時間,對縮短衛星地面測試研試周期有著重大意義。
參考文獻:
[1]張曉清,陳廣旭.通用衛星地面測試平臺的設計與實現[J].指揮技術學院學報,2000,11(6):77-81.
[2]龐存辰,程顥,張丹,等.面向GNC分系統地面測試的數據解碼軟件設計與實現[J].中國制造業信息化,2012,41(11):65-71.
[3]趙琳,翟正軍,周健,等.基于配置文件的測試軟件結構一體化設計方法[J].測控技術,2011,30(5):94-96.
[4]徐碚,楊學猛.衛星通信自動監測系統實現技術[J].電信網技術,2003,3(3):25-28.
[5]張保祥,馮玉潔.一種衛星定位組件測試軟件的設計與實現[J].現代電子技術,2012,35(4):62-64.
[6]張勇,王堃,王強,王宏安,等.基于實時數據庫的衛星測試平臺的設計與實現[J].計算機工程與設計,2009,30(2):335-337.
[7]雷浩然,陳帥.基于MFC的組合導航檢測軟件快速實現方法[J].計算機應用,2013,33(S1):262-264.
[8]喬凱,沈蘇彬.一種網絡監測軟件的分析與改進[J].南京郵電大學學報(自然科學版),2011,31(1):83-89.
本文來源于《電子產品世界》2017年第6期第66頁,歡迎您寫論文時引用,并注明出處。
評論