史志明 崔俊峰 夏 云 匡 鴻 李文波
(1 中國航天員科研訓(xùn)練中心,北京 100094)
(2 中國空間技術(shù)研究院,北京 100094)
現(xiàn)代載人航天工程由多個大系統(tǒng)構(gòu)成,這些大系統(tǒng)均廣泛使用了各類計算機和網(wǎng)絡(luò)技術(shù),構(gòu)成了天地一體化的復(fù)雜信息網(wǎng)絡(luò);軟件也逐漸成為其中的核心與靈魂,既包括系統(tǒng)自研軟件產(chǎn)品,也包括商用軟件、附屬于設(shè)備的應(yīng)用軟件和其它軟件等,載人航天工程已成為一項軟件密集型工程[1]。隨著各類綜合性測試和試驗任務(wù)的增多,不同系統(tǒng)之間的數(shù)據(jù)交互需求也日益增多,既包括系統(tǒng)內(nèi)的既定軟件通信需求,也包括系統(tǒng)間的軟件通信需求。及時和更好地滿足這些需求,越來越成為軟件產(chǎn)品研制需要考慮的問題。
本文以出艙活動試驗中地面測試系統(tǒng)艙壓接口軟件的實現(xiàn)為例,對基于動態(tài)數(shù)據(jù)交換(Dynamic Data Exchange,DDE)的通信機制在工程型號任務(wù)中軟件系統(tǒng)通信方面的應(yīng)用性進行了探討。
動態(tài)數(shù)據(jù)交換(DDE)是Window s 應(yīng)用程序之間交換數(shù)據(jù)信息的一種通信機制[2],是一種發(fā)展成熟并廣泛應(yīng)用的技術(shù)[2-5]。DDE 協(xié)議基于客戶/服務(wù)器模型,服務(wù)器是一個充當(dāng)信息源的應(yīng)用程序,可根據(jù)客戶應(yīng)用程序的要求來執(zhí)行服務(wù),客戶與服務(wù)器之間的一次鏈接被稱為一次對話,一個服務(wù)器可鏈接到多個客戶,一個客戶也可以同時鏈接到多個服務(wù)器。DDE 通信有3 種處理方式:熱鏈接、溫鏈接、冷鏈接。熱鏈接在服務(wù)軟件的數(shù)據(jù)發(fā)生變化時立即自動改變客戶軟件的數(shù)據(jù);溫鏈接在服務(wù)軟件數(shù)據(jù)有變化時向客戶軟件報信,但只在客戶軟件提出請求時才向客戶軟件傳遞數(shù)據(jù);冷鏈接僅當(dāng)服務(wù)軟件發(fā)出DDE REQ UEST 請求命令時才改變客戶軟件的數(shù)據(jù)[2-3]。
DDE 鏈接需要3個參數(shù):服務(wù)名(Application)、主題名(Topic)、項目名(Item)。服務(wù)名是由服務(wù)器應(yīng)用在系統(tǒng)中注冊的,主題名是服務(wù)名下數(shù)據(jù)操作項的集合,項目名是主題名下操作的具體數(shù)據(jù)項。一個服務(wù)可提供多個主題,一個主題可提供多個項目,最后由項目名確定要交換的數(shù)據(jù)[5]。
神舟七號飛船任務(wù)中,為完成航天員出艙活動試驗任務(wù),需要對飛船系統(tǒng)及裝船的艙外活動航天服系統(tǒng)等共同進行充分的地面試驗[6]。真空環(huán)境下氣閘艙與航天員及艙外航天服聯(lián)合試驗是我國首次有人參與的真空試驗,該試驗要驗證氣閘艙功能以及與航天員、艙外服的協(xié)調(diào)性、接口匹配性和出艙活動程序安排的合理性[7]。試驗中的艙壓數(shù)據(jù)對于航天員系統(tǒng)具有重要意義,需要全程監(jiān)測此數(shù)據(jù)以輔助系統(tǒng)的綜合分析與決策。該數(shù)據(jù)從飛船系統(tǒng)獲取,但是要納入航天員系統(tǒng)地面綜合監(jiān)測系統(tǒng)(以下簡稱地面監(jiān)測系統(tǒng)),而地面監(jiān)測系統(tǒng)需要不間斷地參加其它試驗任務(wù),因此,基于“各部分功能變化最小”為原則,確定開發(fā)一個相對獨立的接口程序模塊來完成系統(tǒng)需求。
飛船系統(tǒng)通過商用組態(tài)軟件采集艙壓,該軟件作為OPC(用于過程控制的對象鏈接和嵌入OLE技術(shù))服務(wù)器,通過OPC 和DDE 接口形式提供輸出數(shù)據(jù)。從技術(shù)上分析,地面監(jiān)測系統(tǒng)可以通過三種方式實現(xiàn)艙壓數(shù)據(jù)通信:1)飛船系統(tǒng)提供DDE 服務(wù)器功能,航天員系統(tǒng)通過DDE 方式讀取數(shù)據(jù);2)地面監(jiān)測系統(tǒng)以O(shè)PC 客戶端方式從飛船系統(tǒng)讀取數(shù)據(jù)[8];3)飛船系統(tǒng)將數(shù)據(jù)轉(zhuǎn)換后通過網(wǎng)絡(luò)通信以用戶數(shù)據(jù)報協(xié)議(UDP)方式直接向地面監(jiān)測系統(tǒng)發(fā)送。綜合比較三種實現(xiàn)方式的技術(shù)難度、雙方開發(fā)風(fēng)險和時間節(jié)點的要求,確認(rèn)采用第一種方式,冷鏈接處理,如圖1所示。
其選擇基于以下考慮:1)要求地面監(jiān)測系統(tǒng)所做的數(shù)據(jù)請求操作不能對飛船系統(tǒng)OPC 服務(wù)器端有任何影響,采用DDE 方式通信實際上是與OPC服務(wù)器主鏈路進行了隔離,保證了絕對安全性;2)由OPC 服務(wù)器實現(xiàn)遠程數(shù)據(jù)獲取,DDE 方式實現(xiàn)本地數(shù)據(jù)交換,最大限度降低技術(shù)實現(xiàn)難度;3)可以使用多種軟件產(chǎn)品作DDE 數(shù)據(jù)通信測試,有效降低現(xiàn)場調(diào)試難度及工作量,確保試驗不受影響,并一次成功。
圖1 地面監(jiān)測系統(tǒng)艙壓接口示意圖Fig.1 Ground monitoring system interface sketchmap
經(jīng)過雙方協(xié)調(diào),航天員系統(tǒng)的地面監(jiān)測系統(tǒng)與飛船系統(tǒng)間艙壓通信接口規(guī)定如下:1)接口協(xié)議為本地DDE;2)數(shù)據(jù)格式為每幀1~4個字符串形式的雙精度浮點數(shù)艙壓數(shù)據(jù);3)采集頻率1 幀/s;4)艙壓接口軟件運行于獨立的工作微機,配置雙網(wǎng)卡,實現(xiàn)雙方網(wǎng)絡(luò)的隔離。
接口軟件的主要功能包括:艙壓數(shù)據(jù)的采集、有效性判讀、解包轉(zhuǎn)發(fā)、收發(fā)統(tǒng)計顯示、數(shù)據(jù)存儲和回放等,并且通過基于WinSock 的網(wǎng)絡(luò)通信方式與地面監(jiān)測系統(tǒng)內(nèi)部進行交互。
DDE 接口通信的處理流程如圖2所示。
圖2 艙壓DDE 接口通信的流程圖Fig.2 Flow chart of DDE interface communication
具體實現(xiàn)如下:
1)程序初始化時,調(diào)用DdeInitialize 函數(shù)初始化DDE 管理庫,以參數(shù)形式提供回調(diào)函數(shù)DdeCall-Back,當(dāng)程序以消息形式收到待處理事務(wù)時,就調(diào)用該回調(diào)函數(shù);
2)將Excel 軟件作為測試使用的DDE 服務(wù)器,飛船系統(tǒng)艙壓采集軟件作為實時通信的DDE 服務(wù)器,根據(jù)需求進行連接;
3)連接成功后,獲取一個HCONV 類型定義的變量,作為DDE 通信和操作的句柄,然后,啟動數(shù)據(jù)采集定時器讀取數(shù)據(jù);
4)一次完整的DDE 通信操作,通過調(diào)用Dde-ClientTransaction 函數(shù)發(fā)送不同的命令來實現(xiàn),發(fā)送開始通信的請求,該請求被接受以后再發(fā)送讀取數(shù)據(jù)的請求,直到程序停止通信;
5)每次數(shù)據(jù)采集完成即進行內(nèi)部處理,包括判別、轉(zhuǎn)發(fā)、統(tǒng)計、顯示和存儲等。
按照循序漸進、確保成功的原則,制定了如下測試流程:1)實現(xiàn)與Excel 的靜態(tài)和動態(tài)數(shù)據(jù)交互;2)在第1 步基礎(chǔ)上測試與艙壓采集組態(tài)軟件的非現(xiàn)場仿真通信;3)最后在仿真通過以后與飛船系統(tǒng)進行現(xiàn)場接口測試及預(yù)聯(lián)試。
艙壓接口軟件在試驗現(xiàn)場進行了實時采集測試和連續(xù)無故障運行時間測試,根據(jù)實測情況增加了DDE 連接的定時檢測和自動重鏈接功能,進一步提高了軟件連續(xù)無故障運行的可靠性。圖3是DDE通信設(shè)置界面,用于3個關(guān)鍵通信參數(shù)的修改和更新;圖4是應(yīng)用軟件主界面,提供人機交互操作與軟件運行監(jiān)控功能。
圖3 DDE 通信參數(shù)設(shè)置界面Fig.3 Interface of DDE parameters settings
圖4 接口模塊應(yīng)用軟件主界面Fig.4 Main interface of application softw are
艙壓接口軟件應(yīng)用于航天員系統(tǒng)的地面監(jiān)測系統(tǒng),參加了出艙活動驗證試驗的2次預(yù)聯(lián)試和2次正式任務(wù),試驗中實現(xiàn)了1s 快速無阻塞采集通信,每次正式試驗連續(xù)運行時間超過6h,數(shù)據(jù)量累計為691 200byte,整個試驗中數(shù)據(jù)采集正確、運行穩(wěn)定可靠,順利完成試驗任務(wù)。
航天員系統(tǒng)內(nèi)現(xiàn)有的大型設(shè)備和系統(tǒng)集成項目如超重訓(xùn)練設(shè)備、艙外航天服試驗艙、模擬失重訓(xùn)練水槽、航天飛行訓(xùn)練仿真設(shè)備等,都包含了不同數(shù)量的商用軟件和工程控制軟件,這些軟件可以根據(jù)需要進行二次開發(fā)或提供數(shù)據(jù)接口[9]。隨著載人航天任務(wù)需求的多樣化,地面監(jiān)控系統(tǒng)會不斷產(chǎn)生與這些系統(tǒng)之間的數(shù)據(jù)通信需求。在組態(tài)軟件基礎(chǔ)上,利用DDE 等通用數(shù)據(jù)通信機制和編程技術(shù)實現(xiàn)數(shù)據(jù)交互,是具有較高效率和現(xiàn)實可行性的方式。以本軟件為例,根據(jù)型號任務(wù)實際需求,在不影響既定數(shù)據(jù)接口規(guī)程前提下,通過合理選擇技術(shù)實現(xiàn)路徑,降低了技術(shù)難度,保證了時間節(jié)點。型號任務(wù)后期試驗中,對于滿足監(jiān)測參數(shù)較少,但不確定性較大的接口需求來說,基于DDE 的數(shù)據(jù)通信機制具有簡單可靠、方便快捷的優(yōu)點。從這個意義上來說,可以考慮將相關(guān)的接口功能模塊化和標(biāo)準(zhǔn)化,以提高其可應(yīng)用性和可擴展性。
總的來看,對于工程型號任務(wù)中的網(wǎng)絡(luò)數(shù)據(jù)接口通信而言,DDE 的優(yōu)勢在于:技術(shù)比較成熟,在Window s 操作系統(tǒng)中應(yīng)用廣泛,兼容性好,占用系統(tǒng)資源少;其不足在于:從數(shù)據(jù)交換速度、連接的可維護性、可交換數(shù)據(jù)的復(fù)雜性等方面來說,DDE 對于復(fù)雜工程控制環(huán)境和多信道大數(shù)據(jù)流的網(wǎng)絡(luò)通信可應(yīng)用性并不明顯,在這種情況下,還是需要選擇或者結(jié)合其它的網(wǎng)絡(luò)接口通信技術(shù)來實現(xiàn)。
References)
[1]陳炳忠,王朋.載人航天工程軟件化趨勢及其啟示[J].載人航天,2006(4):2
[2]趙明生,李愛梅.DDE 技術(shù)及其在先進控制技術(shù)中的應(yīng)用[J].計算機工程與設(shè)計,2005,26(9):25-46
[3]陳犖,景寧.動態(tài)數(shù)據(jù)交換技術(shù)及其實現(xiàn)方法研究[J].計算機工程與應(yīng)用,1999,20(3):42-45
[4]劉軍,任光,蓋立平.工業(yè)現(xiàn)場控制網(wǎng)絡(luò)數(shù)據(jù)動態(tài)交換技術(shù)的研究[J].大連海事大學(xué)學(xué)報,2000,26(4):76-77
[5]梁庚,白焰,李文.基于Window sDDE 的客戶/服務(wù)器應(yīng)用開發(fā)[J].計算機工程與設(shè)計,2004,25(5):736-737
[6]崔俊峰,陽高峰,龔潔,等.航天員出艙活動地面試驗系統(tǒng)設(shè)計與實現(xiàn)[J].中國空間科學(xué)技術(shù),2008 (6):52-55
[7]張柏楠,尚志,潘騰,等.神舟七號飛船出艙活動氣閘艙的研制[J].中國科學(xué)E 輯:技術(shù)科學(xué),2009,39(8):1388-1389
[8]胡志坤.Visual C++通信編程工程實例精編[M].北京:機械工業(yè)出版社,2007:163-169
[9]陳善廣.航天醫(yī)學(xué)工程學(xué)發(fā)展60年[M].北京:科學(xué)出版社,2009:199-200,225-229