常紅,談寅,王衛楠,毛嘉偉,廖明瑞
(上海宇航系統工程研究所,上海 201109)
隨著航天技術的快速發展和航天規模的日益擴大,航天器對測試質量和效率的要求也越來越高[1]。航天器各分系統遙控指令單元參數數據的輸入方式、設計格式以及接口定義多種多樣,導致由測試者人為計算、轉換、編輯遙控指令單元的傳統方式出現用工成本高、工作效率低、誤差率高等問題[2-4],難以滿足現階段航天器對遙控指令快速上行的需求,因此搭建一套智能化的遙控指令單元生成系統對航天領域的探索具有重要的意義[5-7]。通過對該系統的有效利用,多臺計算機可以協同工作,實時存儲及自動下載最新版本遙控指令單元,為后續依次組成遙控包、遙控傳送幀、遙控指令奠定基礎[8-11]。文中依托于多個型號的研發需求,進行了系統集成與軟件測試,驗證了多層次架構設計模式的通用化和可行性,給出了一套能夠在航天器平臺上應用的遙控指令單元生成系統。
航天器遙控指令單元生成系統需要滿足現階段多型號任務的研發需求,能夠最大程度降低人工生成遙控指令所帶來的弊端風險,以及提高工作效率[12]。系統需要具有較強的可操作性,支持指令單元參數多種輸入方式,方便經驗較少的測試人員使用。同時系統能夠存儲生成的遙控指令單元,以便后續對其進行修改。航天器遙控指令單元生成系統需要滿足以下三個設計需求:
1)采用通用化設計
系統的規則配置文件和操作界面需要適應多型號多領域,采用系統名稱、設備名稱、指令單元類型、指令子類型碼作為遙控指令單元生成的四個層級,每個層級具有可擴展性和兼容性,滿足各航天器型號的普遍需求和定制化需求[13]。
2)支持多種參數輸入格式
系統參數支持固定鍵值、枚舉型參數數值、自動生成參數數值和輸入二進制、十進制、十六進制和多種時間格式的參數數值,后臺會將各種輸入格式的數據進行計算,統一轉化為十六進制數據,并合成為字符串格式的指令單元內容。
3)存儲生成的遙控指令單元
生成的遙控指令單元可以存儲在后臺XML 文件中,同時也會顯示在系統界面的存儲模塊中,以便后續進行增加、刪除、修改等操作,同時其他計算機也能夠從數據庫上下載最新版本的遙控指令單元數據[14-16]。
航天器遙控指令單元生成系統由航天器各分系統、航天器設備、指令單元類型、指令子類型碼四個層級組成,系統模型如圖1 所示。

圖1 航天器遙控指令單元系統模型圖
1)航天器各分系統
航天器各分系統主要分為專用系統和保障系統兩大類。專用分系統具有特定的目標需求和功能模塊,用于完成指定的型號任務。保障系統在各型號航天器之間大致相同,是航天器在軌飛行、返回著陸的必要保障,一般包括推進分系統、測控分系統、結構分系統和電源分系統等。
2)航天器設備
航天器設備由一臺臺單機構成,是航天器的控制中樞和重要組成部分。單機之間存在數據傳輸和信息交互,其可靠性和穩定性直接影響到航天器各分系統的功能,因此發射前需要進行充分完整的測試,以確保其在軌運行壽命。
3)指令單元類型
指令單元類型取決于航天器設備所具有的功能。指令單元是由多個參數組成的不固定長度的字符串,其第一個參數指令類型碼長度為一個字節,決定了指令單元的類型。
4)指令子類型碼
指令子類型碼是指令單元能否二次解析的標志位。當指令單元能夠二次解析時,指令子類型碼決定了指令單元數據內容參數解析的基本構成。當指令單元不能夠進行二次解析時,指令子類型碼將直接顯示指令單元類型名稱。
2.2.1 操作模塊
操作模塊主要實現配置遙控指令單元規則,并在此基礎上選擇相應的系統名稱、設備名稱、指令單元類型和指令子類型碼。
遙控指令單元規則配置過程如圖2 所示。配置規則中的解析格式分為參數解析和類型解析兩種類型。參數解析是將指令單元的內容按照設定的參數名稱和位寬進行具體展開;類型解析是將指令單元和指令單元數據內容進行分類處理,建立遙控指令單元的層級關系。

圖2 遙控指令單元規則配置流程圖
遙控指令單元生成系統的層級架構如圖3 所示。依次選擇規則配置中事先設定好的層級內容,可以得到遙控指令單元參數構成的基本框架。

圖3 遙控指令單元生成系統層級架構
2.2.2 編輯模塊
軟件程序通過調用規則配置中的指令單元格式來動態生成指令單元參數的編輯模塊。該模塊由參數名稱、參數編輯控件、參數配置信息和校驗方式組成,實現遙控指令單元生成系統參數的編輯和設置。參數的編輯形式分為固定鍵值、枚舉值、自動生成數值以及手動輸入數據。固定鍵值的參數是在規則配置中事先設定的,其數值無法在編輯模塊中進行修改。枚舉值包含參數數值和參數含義兩部分,有多種定義可供選擇。自動生成數值的參數主要為有效字節數和設備號,有效字節數通過計算指令單元各參數的位寬而自動生成,并將結果顯示在編輯模塊中;設備號根據事先配置的航天器設備應用過程標識而自動生成。手動輸入的參數格式支持二進制、十進制、十六進制和多種時間格式,并且輸入的參數數據長度需要在限制的位寬范圍內,否則系統會自動彈出警示框,進行異常輸入信息提示。輸入參數數值的流程圖如圖4 所示。遙控指令單元的校驗方式分為無校驗、和校驗、CRC16 校驗、CRC32 校驗四種方式,滿足多型號項目的要求。

圖4 手動輸入參數數值流程圖
2.2.3 存儲模塊
存儲模塊通過調用底層的XML 文件,以樹狀結構顯示系統名稱、設備名稱、指令單元名稱和指令單元內容。在界面中勾選生成的遙控指令單元,可以進行刪除、編輯、生成遙控指令表以及添加到遙控指令生成界面等操作。點擊刪除按鈕時,不僅可以刪除界面中選中的遙控指令單元,同時能夠刪除XML文件中此條遙控指令單元的相關內容。雙擊遙控指令單元可以在編輯模塊中顯示各參數的名稱和數值,以便對其進行修改。點擊添加按鈕時,可以將勾選的遙控指令單元添加到生成遙控指令的界面中,以便后續執行組遙控包、遙控傳送幀、遙控指令等操作。生成的遙控指令單元XML 文件也可以上傳到數據庫中,實現其他計算機能夠自動下載最新版本的遙控指令單元。
2.2.4 顯示模塊
顯示模塊主要用于顯示生成的遙控指令單元名稱和指令單元內容以及設置的基準時間。基準時間可以和輸入的時間格式參數數據進行相關計算、轉換,進而生成十六進制數據。
通過將遙控指令單元生成系統在多個航天器型號中進行應用,可以看出該系統執行正常,滿足工程項目需求,各項工作指標均高于或等于傳統人為制作模式,且在運行效率、通用化范圍和操作便捷度上都具有非常高的優越性。
首先,在測試之前需要配置好測試用例和實驗環境。測試用例主要包括配置指令單元類型、參數名稱、參數輸入形式、參數計算公式和指令單元校驗方式。實驗環境需要設置計算機的IP 和端口號,使其能夠連接數據庫,以便實現多臺計算機聯合工作,完成遙控指令單元數據的存儲和自動下載更新。
然后,應用程序通過調用配置文件來自動生成系統的首頁面,遙控指令單元系統界面如圖5 所示。界面中最右側的存儲模塊可以顯示出之前保存的遙控指令單元所屬分系統、所屬設備、遙控指令單元名稱和遙控指令單元內容。測試人員在系統操作模塊中依次選取事先配置好的系統名稱、設備名稱、指令單元類型和指令子類型碼,便可在編輯模塊中動態彈出指令單元各參數名稱和部分參數固定鍵值,根據航天器遙控指令單元使用準則,輸入相應格式的參數數值并生成遙控指令單元字符串,在顯示模塊中進行展示。

圖5 航天器遙控指令單元生成系統界面
最后,測試人員對生成的遙控指令單元數據進行處理,處理方式為:
1)測試人員可以直接將生成的指令單元添加到遙控指令編輯界面中,以便后續進行組遙控包、組遙控幀和生成遙控指令的操作。
2)測試人員可以將生成的指令單元保存到系統界面存儲模塊中,為后面修改、編輯指令單元提供便利。保存下來的遙控指令單元可以上傳到Oracle 數據庫中,以便其他計算機從數據庫中自動下載最新版本的遙控指令單元數據。
該系統針對航天器現階段的情況進行設計,并且在未來可能的變化元素上留下了可擴展接口,能夠較好地應用于多型號多領域的航天器研發,具有很強的通用性和兼容性,相比于傳統的人為轉換生成遙控指令單元的方式具有更高的效率。遙控指令單元生成系統與傳統方式使用效果對比如表1 所示。

表1 遙控指令單元生成系統與傳統方式使用效果對比
文中針對航天器研發的任務需求和特點,提出了一套規范化的航天器遙控指令單元生成系統。該系統采用模塊化設計,具有較強的可操作性、可擴展性和本地適用性,改變了傳統的人為生成遙控指令單元的模式,在地面測試軟件的應用過程中發揮了重要的作用,旨在盡可能提高航天器各型號之間的繼承性、通用性和復用性,提高測試過程的集成度和可信度,有效降低人力和時間成本,避免人為不確定因素。整個遙控指令單元生成系統已經在多個航天器研發過程中使用,運行效果穩定,具有精度高、界面操作友好等特點,隨著型號任務的不斷應用,必將會給未來航天領域的發展帶來積極的促進作用。