于丹丹,高小安,吳 康,皮 操,王建清
(上海航天控制技術(shù)研究所·上?!?01109)
現(xiàn)代科技的進(jìn)步促進(jìn)了運(yùn)載火箭的快速發(fā)展。隨著火箭運(yùn)載能力的不斷增強(qiáng),其組成系統(tǒng)也隨之變得越來越復(fù)雜,系統(tǒng)間的密切配合顯得尤為重要。特別地,在運(yùn)載火箭點(diǎn)火前的10min,測試步驟密集,測試時(shí)間緊張,各系統(tǒng)對時(shí)間同步的精度要求非常高。而目前,各系統(tǒng)間的時(shí)間同步多采用口令控制等方法實(shí)現(xiàn),難以保證精度。
IRIG(Inter Range Instrumentation Group,靶場儀器組)是負(fù)責(zé)指定美國靶場定時(shí)系統(tǒng)的時(shí)間碼標(biāo)準(zhǔn)[1]。B碼是IRIG所屬的TCG(Telecommunication Group,電信組織)制定的一種串行時(shí)間碼[2]。B碼的時(shí)幀速率為1幀/ s[3],可傳遞100位信息[4]。作為廣泛的時(shí)間碼,B碼具有攜帶信息量大、適合遠(yuǎn)距離傳輸?shù)忍攸c(diǎn)[5]。
目前,針對IRIG-B碼在碼生成及解碼方面的研究較多,IRIG-B碼在靶場流程控制領(lǐng)域中的應(yīng)用較少。本文根據(jù)運(yùn)載火箭發(fā)射流程的特點(diǎn),提出了一種基于B碼的運(yùn)載火箭測試發(fā)射流程的自動執(zhí)行的測試技術(shù)。在點(diǎn)火前10min至點(diǎn)火這段時(shí)間內(nèi),通過B碼控制測試發(fā)射流程自動執(zhí)行,完成測試發(fā)射流程,用于保證測試及發(fā)射過程中的時(shí)間統(tǒng)一。
目前運(yùn)載火箭測試發(fā)射流程的執(zhí)行方式為:關(guān)鍵步驟(如流程時(shí)間進(jìn)度xxx分鐘準(zhǔn)備、點(diǎn)火等)通過指揮口令執(zhí)行;關(guān)鍵步驟之間的流程自動執(zhí)行,若執(zhí)行出錯(cuò)則停止。由于關(guān)鍵步驟采用口令執(zhí)行方式,操作人員只有獲取指揮口令才會執(zhí)行測試流程。這種執(zhí)行方式因等待口令而產(chǎn)生了系統(tǒng)延時(shí),不利于各系統(tǒng)時(shí)間的統(tǒng)一及精準(zhǔn)發(fā)射。
考慮現(xiàn)有流程的執(zhí)行特點(diǎn),如果采用B碼時(shí)間控制測試流程自動執(zhí)行,則應(yīng)改變現(xiàn)行的關(guān)鍵步驟執(zhí)行方式。從點(diǎn)火前10min到點(diǎn)火之間的測試過程尤為關(guān)鍵。在這個(gè)階段,測試流程密集,對時(shí)間進(jìn)度要求較高,宜在這些關(guān)鍵點(diǎn)采用B碼時(shí)間以倒計(jì)時(shí)方式執(zhí)行流程控制。
B碼流程控制的執(zhí)行原理如圖1所示。系統(tǒng)接收B碼源碼,由網(wǎng)絡(luò)通信模塊解析獲取原始的B碼時(shí)間,并根據(jù)系統(tǒng)B碼源碼在同一時(shí)間連續(xù)發(fā)送5次的特點(diǎn)采取冗余處理,以冗余后的B碼時(shí)間作為系統(tǒng)的當(dāng)前時(shí)間,并將其輸入到流程控制模塊。
圖1 B碼控制流程的執(zhí)行方案Fig.1 The solution of B code control process
系統(tǒng)通過用戶界面模塊獲取用戶輸入的點(diǎn)火時(shí)間,并在處理模塊完成處理后剔除不合理的時(shí)間;通過用戶界面模塊獲取用于用戶設(shè)置的B碼控制標(biāo)識(該標(biāo)識提示用戶是否采用B碼控制測試流程的自動執(zhí)行方案),完成界面處理并將點(diǎn)火時(shí)間輸入至流程控制模塊。
流程控制模塊根據(jù)當(dāng)前的系統(tǒng)時(shí)間(冗余后的B碼時(shí)間)及用戶設(shè)置的點(diǎn)火時(shí)間計(jì)算倒計(jì)時(shí),并根據(jù)B碼控制標(biāo)識控制關(guān)鍵步驟的執(zhí)行方式:若用戶采用B碼控制,則根據(jù)倒計(jì)時(shí)自動執(zhí)行關(guān)鍵步驟,否則則等待指揮口令。
在現(xiàn)有的網(wǎng)絡(luò)通信方式中,有TCP及UDP 2種方式可供選擇。
TCP(Transmission Control Protocol,傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。在對數(shù)據(jù)進(jìn)行傳送前,TCP通過握手機(jī)制建立連接。只有當(dāng)連接建立成功后,才會進(jìn)行數(shù)據(jù)傳送。
UDP(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是一種簡單的、面向數(shù)據(jù)報(bào)的傳輸層協(xié)議。UDP在發(fā)送數(shù)據(jù)前,不在客戶與服務(wù)器之間建立連接,且沒有超時(shí)重發(fā)機(jī)制,因而傳輸速度很快。
TCP與UDP傳輸方式的優(yōu)缺點(diǎn)對比如表1所示。
表1 TCP協(xié)議與UDP協(xié)議的優(yōu)缺點(diǎn)對比Tab.1 Comparison of advantages and disadvantages between TCP and UDP
考慮到點(diǎn)火前測試流程的高度密集,以及B碼源碼在1s內(nèi)的前500ms時(shí)間段內(nèi)、以100ms為周期發(fā)送源碼的特點(diǎn),采用傳輸速度較快的UDP協(xié)議接收B碼源碼,以保證B碼的校時(shí)及零窗口發(fā)射要求。B碼源碼在1s內(nèi)采用了多次重發(fā)的機(jī)制,彌補(bǔ)了UDP協(xié)議可靠性相對較低的不足。
考慮B碼源碼在1s內(nèi)發(fā)送5次的特點(diǎn),設(shè)計(jì)了五取三冗余方案,以獲取B碼時(shí)間。該方案的特點(diǎn)為:若收到3次相同的B碼時(shí)間,則更新當(dāng)前的B碼時(shí)間,同時(shí)不要求必須是連續(xù)的3次時(shí)間。
根據(jù)五取三冗余方案,軟件可通過循環(huán)數(shù)組的形式存儲收到的B碼時(shí)間。循環(huán)數(shù)組大小為5;創(chuàng)建B碼時(shí)間字典,存儲B碼時(shí)間及其數(shù)量標(biāo)記;每收到1次B碼時(shí)間,則將其存儲到循環(huán)數(shù)組,并通過五取三算法在循環(huán)數(shù)組中獲取B碼時(shí)間。
具體實(shí)現(xiàn)方式為:依次獲取存儲在循環(huán)數(shù)組中的B碼時(shí)間;在字典中查找是否有相同的B碼時(shí)間。如有,則數(shù)量標(biāo)記增1,如果沒有,則存儲該B碼時(shí)間,并設(shè)置其數(shù)量標(biāo)記為1;當(dāng)某B碼時(shí)間的數(shù)量標(biāo)記為3時(shí),則以該時(shí)間作為當(dāng)前的B碼時(shí)間。
循環(huán)數(shù)組作為五取三算法的B碼依據(jù),其初值可以設(shè)定為當(dāng)前的本地系統(tǒng)時(shí)間,或其他值。但無論初值是何值,在開始接收B碼時(shí)間并執(zhí)行五取三算法時(shí),均會出現(xiàn)所獲取的B碼時(shí)間為非期望值的情形。如循環(huán)數(shù)組初始為0,在接收到第1個(gè)B碼消息時(shí),使用冗余算法計(jì)算的B碼時(shí)間的年、月、日、時(shí)、分、秒均為0。
為防止出現(xiàn)B碼時(shí)間全部為0的情況,需增加算法處理?xiàng)l件:即只有收到3條以上正確的B碼時(shí)間消息時(shí),才執(zhí)行算法處理。軟件處理的流程如圖2所示。
圖2 五取三冗余算法Fig.2 The redundancy algorithm to get B code time
點(diǎn)火時(shí)間可重新設(shè)置,以應(yīng)對發(fā)射場的突發(fā)情況。用戶可以隨時(shí)設(shè)置或更改點(diǎn)火時(shí)間,設(shè)置點(diǎn)火時(shí)間的時(shí)機(jī)可以在發(fā)射前,也可以在發(fā)射流程中。
由于點(diǎn)火時(shí)間對火箭發(fā)射影響重大,因此在點(diǎn)火時(shí)間的更改過程中需加入校對及確認(rèn)環(huán)節(jié),以防止點(diǎn)火時(shí)間設(shè)置錯(cuò)誤,或誤觸發(fā)點(diǎn)火時(shí)間的設(shè)置流程。
在目前的運(yùn)載火箭測試發(fā)射流程中,在點(diǎn)火前10min至點(diǎn)火之間的關(guān)鍵測試步驟包括:10min準(zhǔn)備、5min準(zhǔn)備、3min準(zhǔn)備、2min準(zhǔn)備、1min準(zhǔn)備及點(diǎn)火等。流程控制模塊通過B碼控制上述關(guān)鍵測試步驟自動執(zhí)行。在B碼的控制下,當(dāng)點(diǎn)火時(shí)間與冗余后的B碼時(shí)間之差小于或等于關(guān)鍵步驟的時(shí)間點(diǎn)(點(diǎn)火時(shí)間點(diǎn)為0)時(shí),該步驟自動執(zhí)行,否則則進(jìn)行等待。
B碼控制流程的執(zhí)行原理為:當(dāng)流程執(zhí)行到口令處時(shí),界面彈出提示對話框,同時(shí)啟動計(jì)時(shí)器。當(dāng)?shù)竭_(dá)口令對應(yīng)的時(shí)間信息時(shí),關(guān)閉提示對話框,流程繼續(xù)。其中一次時(shí)鐘間隔的執(zhí)行過程如圖3所示。
圖3 B碼控制流程的執(zhí)行過程Fig.3 The execution of the process by B code control
為提高系統(tǒng)的可靠性,防止在測試發(fā)射過程中出現(xiàn)異常、影響測試發(fā)射任務(wù),系統(tǒng)設(shè)計(jì)了可靠性方案,即可隨時(shí)啟動和停止B碼控制,使得用戶在測試流程執(zhí)行過程中仍能改變B碼控制標(biāo)識。關(guān)鍵步驟的執(zhí)行過程可由人工隨時(shí)介入,即在B碼控制的過程中,操作人員仍能在倒計(jì)時(shí)時(shí)刻未到來的情況下控制關(guān)鍵測試步驟是否執(zhí)行。上述可靠性方案,提高了系統(tǒng)的可靠性,可防止因B碼設(shè)備失效、傳送B碼時(shí)間的網(wǎng)絡(luò)失效、獲取B碼時(shí)間有誤及其他失效模式等導(dǎo)致系統(tǒng)失效。
本文以IRIG-B碼時(shí)間為基準(zhǔn),通過對通信案、冗余算法、點(diǎn)火時(shí)間設(shè)置及流程同步方法進(jìn)行設(shè)計(jì),控制運(yùn)載火箭的測試發(fā)射在點(diǎn)火前10min至點(diǎn)火之間的流程按照B碼時(shí)間自動執(zhí)行,保證了運(yùn)載火箭各系統(tǒng)的時(shí)間同步、流程同步,進(jìn)而滿足了運(yùn)載火箭的零窗口發(fā)射要求。同時(shí),通過采取防差錯(cuò)機(jī)制,使得人工可以隨時(shí)介入,提高了運(yùn)載火箭測試發(fā)射的可靠性。
本方法已在某型號運(yùn)載火箭大型試驗(yàn)及靶場測試中獲得了成功應(yīng)用。