李宏亮 賈茹 張悅 潘順良
(中國空間技術(shù)研究院載人航天總體部,北京 100094)
航天器綜合測(cè)試是航天器研制流程中的重要環(huán)節(jié),利用遙控指令、程控指令、控制命令等形成測(cè)試指令序列是航天器測(cè)試的主要手段[1]。當(dāng)前我國航天器發(fā)射密度不斷提高,對(duì)航天器測(cè)試自動(dòng)化、智能化的需求日益突出,特別是以載人航天、北斗導(dǎo)航為代表的國家重大航天項(xiàng)目,面臨著型號(hào)批產(chǎn)化、發(fā)射密集化的任務(wù)態(tài)勢(shì),航天器綜合測(cè)試壓力巨大。
目前國內(nèi)對(duì)航天器自動(dòng)化測(cè)試已開展了部分實(shí)施和應(yīng)用。按照測(cè)試單元和顆粒度劃分,覆蓋了電纜、單機(jī)、軟件、系統(tǒng)等各層級(jí)[2-4];按照測(cè)試環(huán)節(jié)劃分,從測(cè)試需求、測(cè)試設(shè)計(jì)、測(cè)試實(shí)施、測(cè)試評(píng)估等航天器測(cè)試主要環(huán)節(jié)均有不同程度的自動(dòng)化手段介入[5-7]。然而,航天器測(cè)試準(zhǔn)備環(huán)節(jié)的自動(dòng)化程度相對(duì)較低。當(dāng)前,用于航天器綜合測(cè)試的直接依據(jù)類文件即測(cè)試細(xì)則的生成仍然需要測(cè)試人員花費(fèi)大量的時(shí)間、精力編寫,工作量大,容易出錯(cuò);更重要的是,編寫完成的細(xì)則僅是測(cè)試實(shí)施輸入性文件,大量測(cè)試準(zhǔn)備工作需要在測(cè)試細(xì)則的基礎(chǔ)上形成指令測(cè)試序列、遙控注入數(shù)據(jù)等測(cè)試實(shí)施輸出文件,用于執(zhí)行航天器綜合測(cè)試。
以載人航天器模擬飛行(簡(jiǎn)稱模飛)測(cè)試準(zhǔn)備為例,需要按照被測(cè)試航天器的具體模飛細(xì)則,形成注入數(shù)據(jù)序列文件,按照測(cè)試細(xì)則規(guī)定的指令發(fā)送時(shí)間、發(fā)送次數(shù)、發(fā)送間隔、所在注入文件編號(hào)形成模飛測(cè)試所需注入數(shù)據(jù)。傳統(tǒng)的注入數(shù)據(jù)序列生成全部依靠人工進(jìn)行,需要測(cè)試人員對(duì)照測(cè)試細(xì)則,逐步檢取需要添加程控指令相關(guān)信息,費(fèi)時(shí)費(fèi)力,且容易出現(xiàn)遺漏或誤添加指令的問題,產(chǎn)出效率低,已無法適應(yīng)高強(qiáng)度載人航天器綜合測(cè)試需求。
為解決上述問題,本文提出一種航天器測(cè)試注入數(shù)據(jù)序列自動(dòng)生成方法,設(shè)計(jì)并實(shí)現(xiàn)了航天器綜合測(cè)試注入數(shù)據(jù)序列自動(dòng)生成軟件,通過運(yùn)行此軟件實(shí)現(xiàn)注入數(shù)據(jù)序列自動(dòng)化生成,提高了序列文件生成效率和準(zhǔn)確度。該方法可以與航天器綜合測(cè)試系統(tǒng)的自動(dòng)化設(shè)計(jì)進(jìn)行有機(jī)結(jié)合,提高綜合測(cè)試系統(tǒng)的整體運(yùn)行效率。
航天器測(cè)試注入數(shù)據(jù)序列生成以相應(yīng)測(cè)試細(xì)則為輸入條件。細(xì)則按照航天器飛行程序,以一定時(shí)間比例安排了整個(gè)測(cè)試的關(guān)鍵事件,并詳細(xì)規(guī)定了各個(gè)事件過程中航天器需要執(zhí)行的指令類型、指令內(nèi)容、時(shí)刻、次數(shù)、指令間的時(shí)間間隔等具體要求。細(xì)則中包含的指令包括測(cè)控通信系統(tǒng)發(fā)出的遙控指令、航天器數(shù)管分系統(tǒng)按照飛行程序自主發(fā)出的程控指令、制導(dǎo)導(dǎo)航與控制(Guidance Navigation and Control, GNC)等分系統(tǒng)發(fā)出的手控指令等不同類型。注入數(shù)據(jù)序列生成是將細(xì)則中規(guī)定由航天器數(shù)管分系統(tǒng)自主發(fā)出的程控指令及注入數(shù)據(jù)全部篩選出來,按照一定格式形成序列文件,并將若干數(shù)量指令分配至特定序號(hào)的注入文件中,以便于其它測(cè)試工具進(jìn)一步完成注入數(shù)據(jù)的過程。
注入數(shù)據(jù)序列生成過程需要完成以下功能。
(1)篩選航天器測(cè)試細(xì)則中,需要由器上數(shù)管分系統(tǒng)自主發(fā)出的指令集合。
(2)具備對(duì)測(cè)試細(xì)則的時(shí)間順序校對(duì)功能,以檢查細(xì)則中的指令發(fā)送時(shí)間是否正確(即是否出現(xiàn)排序在后的指令時(shí)間先于排序在前的指令時(shí)間的現(xiàn)象)。
(3)具備對(duì)測(cè)試細(xì)則的時(shí)間格式校對(duì)功能,以檢查細(xì)則中的時(shí)間格式是否正確,并兼容時(shí)間單位大小寫、同一時(shí)間量的不同表達(dá)方式(即是否出現(xiàn)時(shí)間單位不完整、大小寫混用、同一時(shí)間量綱采用不同單位表述的現(xiàn)象)。
(4)具備對(duì)生成的注入數(shù)據(jù)序列進(jìn)行自校對(duì)功能。受航天器測(cè)試方法約束,包含有若干條程控指令的注入數(shù)據(jù)的發(fā)送時(shí)刻必須晚于該注入數(shù)據(jù)所包含指令的最晚發(fā)送時(shí)刻(若不滿足該條件,會(huì)造成程控指令漏發(fā),影響航天器測(cè)試的正常進(jìn)行),自校對(duì)功能將用于檢查生成的序列文件中是否存在違背上述約束的指令分配情況。
航天器測(cè)試注入數(shù)據(jù)序列生成由注入數(shù)據(jù)序列生成軟件實(shí)現(xiàn)。該軟件讀取測(cè)試細(xì)則,檢索細(xì)則中的特定關(guān)鍵字,輸出注入數(shù)據(jù)序列文件,并提示生成序列文件的正確性。
注入數(shù)據(jù)序列生成軟件主要由4個(gè)功能模塊構(gòu)成,如圖1所示。顯示模塊用于顯示軟件界面,提供人機(jī)交互接口;文件讀取模塊用于從外部讀取細(xì)則文件,按照設(shè)計(jì)的規(guī)則檢索關(guān)鍵字;校對(duì)模塊在文件讀取過程后,對(duì)細(xì)則中的時(shí)間順序、時(shí)間格式及指令與注入數(shù)據(jù)塊的相對(duì)時(shí)序進(jìn)行逐一校核,若存在錯(cuò)誤,則向用戶給出醒目提示;序列輸出模塊在校對(duì)模塊完成校對(duì)后,完成注入數(shù)據(jù)序列文件的輸出。
圖1 注入數(shù)據(jù)序列生成軟件模塊組成
2.2.1 軟件輸入
得益于自動(dòng)化測(cè)試程序的應(yīng)用,航天器測(cè)試細(xì)則文件按照相對(duì)標(biāo)準(zhǔn)化的程序進(jìn)行編寫,所有的測(cè)試用例均表達(dá)為一個(gè).xls格式的表格文件。該表格文件的每一列代表一組測(cè)試細(xì)則信息,例如執(zhí)行序號(hào)、測(cè)試操作時(shí)間、測(cè)試操作碼、測(cè)試操作碼參數(shù)等。每一個(gè)測(cè)試操作碼可以包含一個(gè)或多個(gè)測(cè)試子操作,且可以包含參數(shù),常見的操作碼內(nèi)容包括:發(fā)送指令、發(fā)送注入數(shù)據(jù)、判讀遙測(cè)參數(shù)等[8]。程序化的細(xì)則文件格式為注入數(shù)據(jù)序列生成軟件直接讀取該文件提供了便利。
以載人航天器測(cè)試細(xì)則為例,注入數(shù)據(jù)序列生成軟件的直接輸入是類似于表1的測(cè)試程序表格。
表1 載人航天器測(cè)試程序表格
表1中,序號(hào)列為對(duì)應(yīng)某一行的操作序號(hào),由1開始逐行遞增;時(shí)間列為對(duì)應(yīng)某一行操作執(zhí)行時(shí)間,通常以秒為單位從0開始計(jì)算;程控指令列為對(duì)應(yīng)某一需要執(zhí)行的程控指令代號(hào);遙控指令列為對(duì)應(yīng)某一需要執(zhí)行的遙控指令代號(hào);特殊指令列為對(duì)應(yīng)某一需要執(zhí)行的特殊指令代號(hào);手控指令列為對(duì)應(yīng)某一需要執(zhí)行的手控指令代號(hào);指令名稱為對(duì)應(yīng)指令的名稱;事件說明為通常用于說明測(cè)試用例模擬的航天器飛行事件,包括航天器自主處置和地面測(cè)試系統(tǒng)輔助處置的事件;指令屏蔽為根據(jù)測(cè)試用例安排,為保證航天器測(cè)試安全,在測(cè)試執(zhí)行過程中禁止執(zhí)行的某些特殊指令。
注入數(shù)據(jù)序列生成軟件的輸入就是表1所示的完整測(cè)試程序模塊,該程序模塊作為Excel文件保存在計(jì)算機(jī)硬盤中。
2.2.2 數(shù)據(jù)庫接口
注入數(shù)據(jù)序列生成軟件采用開放數(shù)據(jù)庫連接(Open Data Base Connectivity,ODBC)接口作為軟件與輸入文件的交互接口。
ODBC是微軟視窗開放系統(tǒng)架構(gòu)(Windows Open System Architecture,WOSA)的重要組成部分,它提供了一種應(yīng)用程序與異構(gòu)數(shù)據(jù)庫間的共享訪問機(jī)制,實(shí)際上是一組運(yùn)行在Windows操作系統(tǒng)中的應(yīng)用程序接口(Application Programming Interface, API)函數(shù)[9]。ODBC以其易用性很快成為工程領(lǐng)域的常用數(shù)據(jù)接口標(biāo)準(zhǔn),其接口的最大特點(diǎn)是應(yīng)用程序不與數(shù)據(jù)庫管理系統(tǒng)存在直接接口,而是通過被訪問數(shù)據(jù)庫的ODBC驅(qū)動(dòng)與數(shù)據(jù)庫進(jìn)行信息交互。因此,可以說ODBC是應(yīng)用程序與被訪問數(shù)據(jù)庫的“溝通橋梁”。應(yīng)用程序、ODBC與被訪問數(shù)據(jù)庫的關(guān)系如圖2所示。
圖2 應(yīng)用程序通過ODBC接口訪問數(shù)據(jù)庫示意
在航天器測(cè)試中,Excel表格化形式的測(cè)試細(xì)則文件可以被視作一個(gè)數(shù)據(jù)庫,注入數(shù)據(jù)序列生成軟件作為應(yīng)用程序,通過ODBC接口訪問細(xì)則文件。
使用ODBC訪問Excel文件有兩個(gè)優(yōu)點(diǎn)。
(1)訪問速度快,Excel文件作為數(shù)據(jù)庫,可以快速對(duì)其進(jìn)行整體讀取,相較于單元格讀取方式,數(shù)據(jù)讀寫速度快。
(2)使用簡(jiǎn)便,只需保證運(yùn)行計(jì)算機(jī)上安裝有Microsoft Excel Driver(安裝Excel軟件)即可調(diào)用相關(guān)API函數(shù)。
2.2.3 軟件輸出
注入數(shù)據(jù)序列生成軟件的輸出是如表2所示的注入數(shù)據(jù)序列文件。該文件同樣是一個(gè).xls格式的表格文件。
表2 注入數(shù)據(jù)序列文件表格
值得注意的是,表2注入數(shù)據(jù)序列文件表格的第1~3列是由表1的輸入文件中找到相關(guān)指令信息后直接復(fù)制在對(duì)應(yīng)列的單元格中;第4~6列是軟件讀取輸入文件后提取出的特定信息,其中第4列、第5列來自于輸入文件的“事件說明”列。默認(rèn)情況下,程控指令僅發(fā)送1次;特殊情況下,該列中包含了某一指令是否需要多次發(fā)送,及多次發(fā)送間的時(shí)間間隔信息;注入數(shù)據(jù)序列文件表格的第6列來自于輸入文件的“指令名稱”列,該列中存在著若干以“ZDP×××”(ZDP為注入數(shù)據(jù)塊代號(hào),×××為數(shù)據(jù)塊的三位數(shù)字編號(hào))為名稱的記錄。軟件在讀取輸入文件后,將記錄這些注入數(shù)據(jù)的信息,并結(jié)合所有需要發(fā)送的程控指令的數(shù)量,按照平均分配的原則,將所有指令分配給不同的注入數(shù)據(jù)。
注入數(shù)據(jù)序列生成軟件在Microsoft Visual Studio 6(VS6)環(huán)境中開發(fā),使用C++語言設(shè)計(jì)。VS6作為成熟穩(wěn)定的開發(fā)環(huán)境,交互界面簡(jiǎn)潔高效,代碼移植性高,對(duì)工程應(yīng)用中開發(fā)各類規(guī)模和需求的軟件都具有很強(qiáng)的適應(yīng)性。在VS環(huán)境中以O(shè)DBC接口訪問Excel表格,可以通過調(diào)用ODBC接口中的CDatabase、CRecordset等類及其成員函數(shù)實(shí)現(xiàn)[10-11]。
軟件運(yùn)行時(shí)的檢測(cè)結(jié)果表明:對(duì)運(yùn)行注入數(shù)據(jù)序列生成軟件的計(jì)算機(jī)的最低配置要求為CPU主頻1.66 GHz,內(nèi)存1 GB。軟件運(yùn)行中CPU占用率僅2%,內(nèi)存占用約2 MB。
注入數(shù)據(jù)序列生成軟件的工作流程如圖3所示。在整體流程上,軟件以順序讀寫為主,在流程中完成輸入文件格式校驗(yàn)、程控指令數(shù)量分配計(jì)算、序列文件輸出等工作。
軟件的工作流程可以描述為如下步驟。
(1)軟件檢索運(yùn)行計(jì)算機(jī)上是否安裝有Excel軟件及相關(guān)驅(qū)動(dòng)。
(2)獲取應(yīng)用程序所在路徑,并將輸出序列文件路徑設(shè)置為與軟件可執(zhí)行程序同一路徑。
(3)文件讀取模塊讀取輸入文件。
軟件讀取文件的關(guān)鍵代碼如下:
//打開數(shù)據(jù)庫Excel文件
database.Open(NULL, false, false, sDsn);
//設(shè)置SELECT語句檢索字段
Sql.Format(“SELECT序號(hào),時(shí)間,程控指令,指令名稱,事件說明 FROM [%s$] ORDER BY 序號(hào)”, m_sheetname_input);
//設(shè)置CRecordset類變量
CRecordset recset(&database);
//設(shè)置文件讀取參數(shù)
recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
//通過查詢讀取內(nèi)容是否為空,設(shè)置循環(huán)方式順序讀取文件
While (!recset.IsEOF())
{
……
}
圖3 注入數(shù)據(jù)序列生成軟件工作流程Fig.3 Task procedure of injection data sequence generation software
(4)校對(duì)模塊對(duì)輸入文件格式進(jìn)行校對(duì)。校驗(yàn)內(nèi)容包括:①對(duì)輸入細(xì)則文件的時(shí)間格式進(jìn)行校驗(yàn),包括去除空格、補(bǔ)充缺失的時(shí)間單位等;②按照天、小時(shí)、分鐘、秒、毫秒的順序,依次比較前后兩行細(xì)則文件中的時(shí)間關(guān)系。
假設(shè)用d、h、m、s、ms分別標(biāo)識(shí)時(shí)間單位天、小時(shí)、分鐘、秒、毫秒,則當(dāng)前行的指令發(fā)送時(shí)間t1為
t1=D1dH1hM1mS1sN1ms
(1)
式中:D1、H1、M1、S1、N1分別表示t1時(shí)刻相對(duì)于數(shù)管分系統(tǒng)軌道零時(shí)所經(jīng)過的天、小時(shí)、分鐘、秒、毫秒值。
相鄰的后一行的指令發(fā)送時(shí)間t2為
t2=D2dH2hM2mS2sN2ms
(2)
式中:D2、H2、M2、S2、N2分別表示t2時(shí)刻相對(duì)于數(shù)管分系統(tǒng)軌道零時(shí)所經(jīng)過的天、小時(shí)、分鐘、秒、毫秒值。
軟件進(jìn)行校對(duì)計(jì)算后,若判斷t1≥t2,則說明細(xì)則中的指令發(fā)送時(shí)間存在錯(cuò)誤,軟件將給出時(shí)間出錯(cuò)行的具體位置的醒目提示,軟件關(guān)閉數(shù)據(jù)庫,中止程序繼續(xù)運(yùn)行。
(5)文件讀取模塊進(jìn)行指令分配計(jì)算。
軟件在輸入表格文件中查找SELECT語句中包含的列名稱中的信息,在其中查找“程控指令”、“注入文件”關(guān)鍵字,并分別統(tǒng)計(jì)數(shù)量。假設(shè)輸入文件全部讀取完畢后,程控指令總數(shù)為Ncomd,注入數(shù)據(jù)總數(shù)為Nfile,按照所有程控指令平均分配給注入數(shù)據(jù)的原則,每個(gè)注入數(shù)據(jù)中包含的指令數(shù)N為
N=Ncomd/Nfile
(3)
但數(shù)據(jù)N有可能不是整數(shù),即Ncomd無法被Nfile整除。為了保證軟件實(shí)現(xiàn)過程中每個(gè)注入數(shù)據(jù)塊中包含確定整數(shù)的指令,需要對(duì)數(shù)據(jù)N作一變換。
對(duì)數(shù)據(jù)N進(jìn)行取模運(yùn)算,得到的整數(shù)部分記為Z;假設(shè)所有的注入數(shù)據(jù)中,有x個(gè)數(shù)據(jù)塊每個(gè)包含Z條指令,剩余的y個(gè)注入數(shù)據(jù)中,每個(gè)數(shù)據(jù)包含Z+1條指令,則可以得到x、y、Z的數(shù)學(xué)關(guān)系為
(4)
通過計(jì)算該方程組,就可以得到每個(gè)注入數(shù)據(jù)被分配的指令數(shù)量。計(jì)算完成后,程序關(guān)閉數(shù)據(jù)庫。
(6)序列輸出模塊輸出注入數(shù)據(jù)序列文件。
序列輸出模塊按照表2結(jié)構(gòu)將讀取的信息分別加入到輸出表格中,其中“序號(hào)”、“段時(shí)間”、“指令代號(hào)”三列,根據(jù)讀取的輸入信息直接填寫至輸出表格中;“發(fā)送次數(shù)”、“發(fā)送間隔”兩列,根據(jù)讀取模塊在輸入文件“事件說明”列中,查找“發(fā)送n次”、“間隔n秒”等信息,填入具體數(shù)值;“備注”列按照步驟(5)中的計(jì)算結(jié)果,在第1、第Z+1、第2Z+1…行及第Ncomd-x·Z+1、第Ncomd-x·Z+1+Z+1、第Ncomd-x·Z+1+2·(Z+1)行寫入“寫入數(shù)管注入文件A分別對(duì)應(yīng)B~C行數(shù)管指令”,用于提示對(duì)應(yīng)序號(hào)的注入數(shù)據(jù)中包含哪些行的指令。
創(chuàng)建輸出序列表格文件的關(guān)鍵代碼如下:
//創(chuàng)建進(jìn)行存取的字符串
sSqlWrite.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB="%s";DBQ=%s",sDriver, sExcelFile, sExcelFile);
//創(chuàng)建數(shù)據(jù)庫 (Excel表格文件)
if( databaseWrite.OpenEx(sSqlWrite,CDatabase::noOdbcDialog) )
{
//通過SQL語句創(chuàng)建表結(jié)構(gòu)(與表2一致)
sSqlWrite = "CREATE TABLE Comd (序號(hào) TEXT,段時(shí)間 TEXT,指令代號(hào) TEXT,發(fā)送次數(shù) TEXT, 時(shí)間間隔 TEXT, 備注 TEXT, 注入時(shí)間校驗(yàn) TEXT)";
databaseWrite.ExecuteSQL(sSqlWrite);
}
(7)注入數(shù)據(jù)序列文件生成完成后,文件讀取模塊讀取生成文件,并由校對(duì)模塊進(jìn)行注入數(shù)據(jù)時(shí)間與指令時(shí)間之間的相對(duì)時(shí)序校對(duì)。
若整個(gè)序列文件中所有程控指令的預(yù)定執(zhí)行時(shí)刻均早于所在注入數(shù)據(jù)的發(fā)送時(shí)刻,則相對(duì)時(shí)序正確,軟件輸出正確的注入數(shù)據(jù)序列文件。
假設(shè)某一程控指令C001需要在tx時(shí)刻發(fā)送出,注入數(shù)據(jù)序列生成軟件將該指令自動(dòng)分配給注入數(shù)據(jù)ZDP001,按照測(cè)試細(xì)則的規(guī)定,該注入數(shù)據(jù)的發(fā)送時(shí)刻為ty,且ty>tx,則校對(duì)模塊判斷序列文件中存在相對(duì)時(shí)序錯(cuò)誤。在此情況下,將由序列輸出模塊在輸出的序列文件中添加“注入時(shí)間校驗(yàn)列”,并在對(duì)應(yīng)的注入數(shù)據(jù)行提示用戶出現(xiàn)相對(duì)時(shí)序錯(cuò)誤。
航天器注入數(shù)據(jù)序列生成軟件的用戶界面如圖4所示。用戶在使用前需要進(jìn)行3項(xiàng)操作。
(1)選擇作為輸入文件的測(cè)試細(xì)則表格的絕對(duì)路徑,該路徑同樣將是軟件輸出的注入數(shù)據(jù)序列文件的存放路徑。
(2)輸入選擇的細(xì)則表格文件中的具體表單名稱,按照Excel新建文件的默認(rèn)表單名稱,軟件啟動(dòng)時(shí)自動(dòng)填入Sheet1作為表單名稱,用戶可根據(jù)需要修改該名稱。
(3)鍵入軟件最終生成的序列文件的名稱,以便在文件生成后查找和使用。
在軟件界面的下方,提示使用本軟件的一些準(zhǔn)備事項(xiàng),主要包括對(duì)輸入文件后綴名稱、輸入文件起始行的單元格名稱及單元格內(nèi)多余字符的約束。這些約束是為了統(tǒng)一輸入文件的格式,避免軟件在檢索關(guān)鍵字的過程中出現(xiàn)檢索錯(cuò)誤。
圖4 注入數(shù)據(jù)序列生成軟件用戶界面
以某載人航天器的某項(xiàng)模飛測(cè)試為例,選擇輸入文件路徑后,點(diǎn)擊軟件界面“開始”按鈕,程序開始運(yùn)行。若細(xì)則文件無指令時(shí)間錯(cuò)誤,軟件運(yùn)行僅約1 s后,軟件即提示“指令表格文件生成完畢”,生成的注入數(shù)據(jù)序列文件如圖5所示。
若輸入的細(xì)則文件存在指令時(shí)間錯(cuò)誤,軟件將提示圖6所示信息;若軟件生成的序列文件中存在指令與注入數(shù)據(jù)間相對(duì)時(shí)序錯(cuò)誤,則序列文件生成完畢后,軟件將提示“有注入文件分配不合理,需調(diào)整”。打開序列文件可以看到在“注入時(shí)間校驗(yàn)”列存在以“★★★”為提示符的信息,如圖7所示,表示該行對(duì)應(yīng)的注入數(shù)據(jù)的注入時(shí)間在當(dāng)前指令分配情況下,存在指令與注入數(shù)據(jù)相對(duì)時(shí)序錯(cuò)誤問題,需要用戶修改。值得一提的是,序列文件中出現(xiàn)程控指令與注入數(shù)據(jù)的相對(duì)時(shí)序錯(cuò)誤,是由于編寫測(cè)試細(xì)則文件時(shí)注入數(shù)據(jù)分布不合理引起的。修改細(xì)則文件可從源頭上杜絕該類問題出現(xiàn)。
圖5 軟件輸出的注入數(shù)據(jù)序列文件Fig.5 Injection data sequence file generated by software
圖6 軟件提示:細(xì)則文件存在指令時(shí)間錯(cuò)誤Fig.6 Software information: command time error in the test manual
圖7 軟件提示:指令與注入數(shù)據(jù)存在相對(duì)時(shí)序錯(cuò)誤Fig.7 Software information: relative schedule error between command and injection data
在航天器綜合測(cè)試中使用注入數(shù)據(jù)序列生成軟件,可大幅提高注入數(shù)據(jù)序列文件的生成速度,提高測(cè)試效率。以某載人航天器的某個(gè)模飛測(cè)試項(xiàng)目為例,以傳統(tǒng)方法人工對(duì)照細(xì)則手動(dòng)提取序列文件,測(cè)試人員將面對(duì)平均規(guī)模為1500行×9列的測(cè)試細(xì)則文件,人工檢索、校對(duì)并完成一個(gè)模飛測(cè)試的序列文件平均需要1.5 h,按照一個(gè)載人航天器型號(hào)安排平均8~10個(gè)模飛測(cè)試項(xiàng)目計(jì)算,需要12~15個(gè)小時(shí)才能完成全部模飛測(cè)試的序列文件準(zhǔn)備工作,對(duì)于測(cè)試規(guī)模更加龐大的諸如全任務(wù)模飛測(cè)試、大系統(tǒng)間匹配模飛測(cè)試等項(xiàng)目,文件規(guī)模將成倍增長(zhǎng);隨著航天器測(cè)試的不斷進(jìn)行,可能還會(huì)出現(xiàn)測(cè)試方案更改、細(xì)則文件變化的情況,重新修訂注入數(shù)據(jù)序列文件也將花費(fèi)測(cè)試人員的大量精力。
使用航天器注入數(shù)據(jù)序列生成軟件后,在不需要對(duì)生成序列文件進(jìn)行修改的情況下,將測(cè)試細(xì)則文件格式修訂時(shí)間計(jì)算在內(nèi),單次序列文件的生成時(shí)間不超過2 min;即使出現(xiàn)需要修訂指令與注入數(shù)據(jù)相對(duì)時(shí)序錯(cuò)誤的情況,單次序列文件的生成時(shí)間也不會(huì)超過5 min。相比傳統(tǒng)方法,文件生成效率可提高95%。對(duì)于表格行數(shù)在8000~1 0000行的大型模飛測(cè)試,該軟件的自動(dòng)化、快速化優(yōu)勢(shì)將更加明顯。
本文針對(duì)航天器綜合測(cè)試過程中,測(cè)試注入數(shù)據(jù)序列生成效率低、易出錯(cuò)等問題,提出了一種航天器注入數(shù)據(jù)序列自動(dòng)生成方法。該方法以航天器自動(dòng)化測(cè)試程序的實(shí)施為依托,在不改變自動(dòng)化測(cè)試表格化測(cè)試細(xì)則文件結(jié)構(gòu)的基礎(chǔ)上,設(shè)計(jì)了航天器注入數(shù)據(jù)序列生成軟件,以O(shè)DBC接口為橋梁,實(shí)現(xiàn)了在商用計(jì)算機(jī)上快速自動(dòng)化生成航天器測(cè)試注入數(shù)據(jù)序列文件,相比于傳統(tǒng)人工方法,文件生成效率提高95%。本文討論的注入數(shù)據(jù)序列文件自動(dòng)化生成方法可以在以下兩方面進(jìn)行后續(xù)探索:①提高注入數(shù)據(jù)序列生成序列生成軟件的智能化水平,使軟件可以自動(dòng)修正生成序列文件中的相對(duì)時(shí)序錯(cuò)誤;②結(jié)合其它測(cè)試軟件的功能,統(tǒng)一航天器綜合測(cè)試過程中的程控指令生成、注入數(shù)據(jù)生成、序列文件生成過程,將以上功能進(jìn)行有機(jī)結(jié)合,建立“‘測(cè)試細(xì)則’輸入、‘注入數(shù)據(jù)(程控指令)序列’輸出”的“一鍵式”系統(tǒng),進(jìn)一步提升航天器綜合測(cè)試準(zhǔn)備效率和自動(dòng)化水平。