張淵博+彭漢國(guó)+雷波
摘 要:針對(duì)US3仿真系統(tǒng)的特殊功能和要求,網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)采用了二層的星型以太網(wǎng)物理拓?fù)浣Y(jié)構(gòu),并依據(jù)US3系統(tǒng)內(nèi)程序開(kāi)發(fā)的固定結(jié)構(gòu)和模式,開(kāi)發(fā)設(shè)計(jì)實(shí)時(shí)、可靠的網(wǎng)絡(luò)通信軟件,最后有針對(duì)性的分析了關(guān)鍵技術(shù)。
關(guān)鍵詞:網(wǎng)絡(luò)結(jié)構(gòu);US3系統(tǒng);關(guān)鍵技術(shù)
中圖分類(lèi)號(hào):TP302 文獻(xiàn)標(biāo)識(shí)碼:A
Design and Implement of Network Communications System of US3 Simulation System
ZHANG Yuanbo,PENG Hanguo,LEI Bo
(Navy College of Submarine,Simulation Training Center,Dalian 116085,China)
Abstract:Based on special function and demand of US3 simulation system,a two-tier star Ethernet physical topology was presented for network system.Based on stationary struction and mode for program developing on US3 system,a real-time and reliable network communications software was developed and designed.Finally,the targeted key technology was analysised.
Keywords:network structure;US3 system;key technology
1 引言(Introduction)
實(shí)時(shí)仿真系統(tǒng)是一個(gè)復(fù)雜的多功能訓(xùn)練系統(tǒng),實(shí)時(shí)仿真是指系統(tǒng)在實(shí)時(shí)條件下接收動(dòng)態(tài)輸入,并能實(shí)時(shí)產(chǎn)生一個(gè)動(dòng)態(tài)的輸出[1],系統(tǒng)擁有強(qiáng)大的運(yùn)算能力和數(shù)據(jù)吞吐能力,對(duì)網(wǎng)絡(luò)通信提出了極高的要求。針對(duì)實(shí)時(shí)仿真系統(tǒng)的特殊功能及要求,網(wǎng)絡(luò)通信系統(tǒng)的網(wǎng)絡(luò)構(gòu)架?chē)?yán)格遵循可靠適用的原則,采用標(biāo)準(zhǔn)的通信協(xié)議和模塊化的程序設(shè)計(jì)方法設(shè)計(jì)可靠、實(shí)時(shí)的網(wǎng)絡(luò)通信軟件。
2 需求分析(Demand analysis)
2.1 功能要求
實(shí)時(shí)仿真系統(tǒng)具有獨(dú)立訓(xùn)練(包括崗位訓(xùn)練和科目訓(xùn)練)和協(xié)同訓(xùn)練的功能,計(jì)算機(jī)網(wǎng)絡(luò)通信系統(tǒng)是實(shí)現(xiàn)系統(tǒng)各項(xiàng)功能的基本組成部分,概括起來(lái)網(wǎng)絡(luò)通信系統(tǒng)的主要功能包括:
(1)為仿真系統(tǒng)各仿真子系統(tǒng)(包括熱工水力仿真系統(tǒng)、軸系仿真系統(tǒng)、綜合控制仿真系統(tǒng)、電力仿真系統(tǒng)、電力推進(jìn)與應(yīng)急動(dòng)力仿真系統(tǒng)等)之間提供通信手段。
(2)為仿真主計(jì)算機(jī)與終端計(jì)算機(jī)(包括工業(yè)控制計(jì)算機(jī)、接口計(jì)算機(jī)、軟臺(tái)屏計(jì)算機(jī)、監(jiān)控計(jì)算機(jī)、數(shù)據(jù)庫(kù)計(jì)算機(jī))之間提供通信手段。
2.2 設(shè)計(jì)要求
為確保滿(mǎn)足系統(tǒng)仿真的實(shí)時(shí)性需要和可擴(kuò)展性的需要,網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計(jì)應(yīng)滿(mǎn)足以下設(shè)計(jì)準(zhǔn)則:
(1)通信傳輸時(shí)延<10ms。在網(wǎng)絡(luò)系統(tǒng)中,用戶(hù)對(duì)數(shù)據(jù)通信的響應(yīng)時(shí)間最為敏感,因此網(wǎng)絡(luò)系統(tǒng)應(yīng)滿(mǎn)足高速度和低延遲的要求。
(2)可靠性和安全性。網(wǎng)絡(luò)系統(tǒng)的安全可靠性直接關(guān)系到實(shí)時(shí)仿真系統(tǒng)性能的發(fā)揮,因此系統(tǒng)應(yīng)選用成熟可靠的網(wǎng)絡(luò)產(chǎn)品,并考慮適當(dāng)?shù)脑O(shè)備冗余備份。
(3)開(kāi)放性和標(biāo)準(zhǔn)化。由于網(wǎng)絡(luò)系統(tǒng)涉及不同的軟硬件平臺(tái),為確保網(wǎng)絡(luò)的成功互連,網(wǎng)絡(luò)通信軟件必須滿(mǎn)足標(biāo)準(zhǔn)化、模塊化和通用化要求。通信軟件應(yīng)盡量采用通用的、開(kāi)放的國(guó)際標(biāo)準(zhǔn)協(xié)議和通信方式,包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)通信協(xié)議以及網(wǎng)絡(luò)綜合化布線標(biāo)準(zhǔn)等,通信程序必須模塊化,以便控制系統(tǒng)的復(fù)雜度,提高系統(tǒng)的可靠性,靈活性和可擴(kuò)展能力。
(4)可管理性。方便的網(wǎng)絡(luò)管理可以有效地提高系統(tǒng)的使用效率,以及有效地維護(hù)和監(jiān)控網(wǎng)絡(luò)系統(tǒng),還可以根據(jù)應(yīng)用特點(diǎn)優(yōu)化系統(tǒng)資源的分配,確保網(wǎng)絡(luò)系統(tǒng)的正常和高效使用。
(5)可擴(kuò)充性。網(wǎng)絡(luò)系統(tǒng)應(yīng)能隨著技術(shù)的發(fā)展和應(yīng)用要求的不斷提高,可以方便地進(jìn)行擴(kuò)充和升級(jí),以便保護(hù)系統(tǒng)的投資。
3 系統(tǒng)設(shè)計(jì)(System design)
3.1 網(wǎng)絡(luò)系統(tǒng)
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)是聯(lián)系仿真系統(tǒng)中各個(gè)節(jié)點(diǎn)的紐帶,是將各計(jì)算機(jī)集成為系統(tǒng)的重要環(huán)節(jié),網(wǎng)絡(luò)系統(tǒng)的組成包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)以及網(wǎng)絡(luò)采用的基本通信協(xié)議等。
3.1.1 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
一般地,網(wǎng)絡(luò)的實(shí)際組網(wǎng)方法有兩種即單層設(shè)計(jì)和多層設(shè)計(jì),典型地為三層設(shè)計(jì)。雖然多層設(shè)計(jì)的傳輸延遲略大一些,但多層設(shè)計(jì)較之單層設(shè)計(jì)有諸多方面的優(yōu)點(diǎn)[2]:
(1)多層設(shè)計(jì)配置靈活,管理方便,可優(yōu)化局部的層次訪問(wèn)。
(2)多層設(shè)計(jì)可提供多層的流量控制功能。流量控制功能使高速端口的信息在低速端口上不發(fā)生丟包。
(3)多層設(shè)計(jì)可以使網(wǎng)絡(luò)同時(shí)打開(kāi)多個(gè)端口,從而避免由于遇到小的阻塞而關(guān)閉端口,低層端口的信息過(guò)載只關(guān)閉一個(gè)本層的上行端口而不會(huì)關(guān)閉上層的上行端口。
(4)多層設(shè)計(jì)也能提供多層的緩沖功能。信息緩沖功能可以控制高速數(shù)據(jù)的快速猝發(fā)而不丟失數(shù)據(jù)分組,提高整個(gè)網(wǎng)絡(luò)的運(yùn)轉(zhuǎn)效率,多層設(shè)計(jì)的網(wǎng)絡(luò)傳送的信息量要遠(yuǎn)高于單層設(shè)計(jì)[3]。
鑒于以上考慮,仿真系統(tǒng)網(wǎng)絡(luò)采用如圖1所示的二層設(shè)計(jì)的星型以太網(wǎng)物理拓?fù)浣Y(jié)構(gòu),采用交換式快速以太網(wǎng)標(biāo)準(zhǔn)IEEE 802.3u組網(wǎng)。仿真系統(tǒng)采用100Base-TX快速交換式以太網(wǎng)標(biāo)準(zhǔn)按兩個(gè)層次組網(wǎng),中心層連接仿真主機(jī)、教控臺(tái)、網(wǎng)管工作站、接口計(jì)算機(jī)以及下層交換機(jī),下層交換機(jī)主要連接工業(yè)控制計(jì)算機(jī)、監(jiān)控計(jì)算機(jī)、軟臺(tái)屏計(jì)算機(jī)等。
圖1 網(wǎng)絡(luò)拓?fù)鋱Dendprint
Fig.1 Network topology
3.1.2 網(wǎng)絡(luò)通信協(xié)議
模擬系統(tǒng)物理層采用快速交換式以太網(wǎng)協(xié)議標(biāo)準(zhǔn)IEEE 802.3u,鏈路層支持IEEE 802.1d透明網(wǎng)橋協(xié)議標(biāo)準(zhǔn),網(wǎng)絡(luò)層采用TCP/IP通信協(xié)議標(biāo)準(zhǔn),確保異種機(jī)(IRIX系統(tǒng)和WINDOWS系統(tǒng))之間的互連和有效通信。
3.2 網(wǎng)絡(luò)通信軟件
3.2.1 網(wǎng)絡(luò)通信軟件類(lèi)型
本系統(tǒng)網(wǎng)絡(luò)通信軟件可分為兩種類(lèi)型,一種是仿真系統(tǒng)各仿真子系統(tǒng)之間的通信,即IRIX和IRIX之間的通信,另一種是仿真主計(jì)算機(jī)與終端計(jì)算機(jī)之間的通信,即IRIX和WINDOWS之間的通信。
IRIX-IRIX間的通信是仿真服務(wù)器上的仿真平臺(tái)(US3)與仿真服務(wù)器上各仿真子系統(tǒng)間的數(shù)據(jù)通信。US3將仿真的計(jì)算結(jié)果等傳送給各仿真子系統(tǒng),供各子系統(tǒng)調(diào)用,各仿真子系統(tǒng)發(fā)送指令信息給US3來(lái)控制仿真任務(wù)的進(jìn)程。IRIX和IRIX之間的通信實(shí)現(xiàn)方式采用共享數(shù)據(jù)技術(shù),交互的數(shù)據(jù)全部存放在仿真主機(jī)共享數(shù)據(jù)區(qū),供仿真平臺(tái)和各仿真子系統(tǒng)進(jìn)行訪問(wèn),該功能已由研發(fā)機(jī)構(gòu)GSE公司實(shí)現(xiàn)。
IRIX和Windows之間的通信是指仿真主計(jì)算機(jī)與終端計(jì)算機(jī)間的數(shù)據(jù)通信。仿真主計(jì)算機(jī)從終端計(jì)算機(jī)獲得模擬硬臺(tái)屏的設(shè)備狀態(tài)參數(shù),終端計(jì)算機(jī)則從仿真主計(jì)算機(jī)獲得終端計(jì)算機(jī)顯示的變量參數(shù)、教控臺(tái)指令等,通信程序通過(guò)動(dòng)態(tài)數(shù)據(jù)交換機(jī)制(DDE)方式進(jìn)行數(shù)據(jù)交換[4],交換媒介為通信點(diǎn)表文件。它們兩者間的通信是仿真通信系統(tǒng)的主體部分,是開(kāi)發(fā)設(shè)計(jì)的主要工作內(nèi)容,這部分的設(shè)計(jì)和實(shí)現(xiàn)嚴(yán)格遵循優(yōu)化可靠的準(zhǔn)則。
3.2.2 US3仿真平臺(tái)下的程序開(kāi)發(fā)
通信軟件的功能是實(shí)現(xiàn)仿真主機(jī)與終端計(jì)算機(jī)之間的通訊,通信軟件一方面需要實(shí)時(shí)的接收設(shè)備狀態(tài)的參數(shù),同時(shí)將接收的數(shù)據(jù)寫(xiě)入到共享數(shù)據(jù)區(qū),另一方面通信軟件還需要將共享數(shù)據(jù)區(qū)的數(shù)據(jù)發(fā)送到終端計(jì)算機(jī)。由于通信軟件是在US3系統(tǒng)內(nèi)開(kāi)發(fā)實(shí)現(xiàn)的,因此通訊軟件的程序開(kāi)發(fā)必須嚴(yán)格遵循US3系統(tǒng)所固有的程序開(kāi)發(fā)模式和程序結(jié)構(gòu)。
(1)共享數(shù)據(jù)區(qū)。共享數(shù)據(jù)區(qū)是進(jìn)程通信中最快的方式,而且傳遞的信息量非常大,共享數(shù)據(jù)區(qū)是系統(tǒng)內(nèi)一塊特定的內(nèi)存區(qū)域,系統(tǒng)通過(guò)建立允許各個(gè)進(jìn)程之間的共享數(shù)據(jù)區(qū)的映射關(guān)系進(jìn)行數(shù)據(jù)變量的共享和存儲(chǔ)。在共享數(shù)據(jù)區(qū)中的數(shù)據(jù)分為系統(tǒng)級(jí)和用戶(hù)級(jí)兩個(gè)級(jí)別,系統(tǒng)內(nèi)的所有用戶(hù)都可以不受限制的任意調(diào)取和使用共享數(shù)據(jù)區(qū)內(nèi)系統(tǒng)級(jí)的數(shù)據(jù),但是針對(duì)用戶(hù)級(jí)的數(shù)據(jù)的調(diào)取和使用只能局限于定義該變量的用戶(hù),在進(jìn)行網(wǎng)絡(luò)通信程序開(kāi)發(fā)之前必須先將程序所需要使用變量添加到共享數(shù)據(jù)中。
(2)開(kāi)發(fā)語(yǔ)言。US3系統(tǒng)的開(kāi)發(fā)語(yǔ)言為c語(yǔ)言,在US3系統(tǒng)內(nèi)的c語(yǔ)言程序遵循一個(gè)特定的程序結(jié)構(gòu)和編譯/執(zhí)行方式,該程序與通常結(jié)構(gòu)的c語(yǔ)言程序有著很大的不同,它的主程序不是通過(guò)傳統(tǒng)的main()來(lái)指定的,而是指添加到模塊說(shuō)明文件中的模塊名稱(chēng)。正是因?yàn)槠涑绦蚪Y(jié)構(gòu)所具有的特殊性,要求我們?cè)陂_(kāi)始編寫(xiě)程序的時(shí)候必須編寫(xiě)一段特別的說(shuō)明,在說(shuō)明中指出:使用programs說(shuō)明本程序提供給其他程序調(diào)用以及模塊說(shuō)明文件使用的名稱(chēng),使用globals說(shuō)明在本程序中所需要調(diào)用的共享數(shù)據(jù)區(qū)的數(shù)據(jù)變量,使用modules說(shuō)明在本程序中所需要調(diào)用的其他的程序模塊的名稱(chēng),并且必須引用一個(gè)與本程序名稱(chēng)相同的函數(shù)庫(kù)文件。例如:
/*programs network */ 程序模塊的名稱(chēng)
/*globals network1 */ 需要調(diào)用的公共變量
/*modules network2 */ 需要調(diào)用的程序模塊的名稱(chēng)
#include “network.h”
void network()
{
…
}
(3)程序描述列表。程序描述列表是US3系統(tǒng)內(nèi)的程序信息庫(kù),在信息庫(kù)內(nèi)包含有每一個(gè)程序模塊的相關(guān)信息,US3系統(tǒng)可以通過(guò)該信息庫(kù)來(lái)管理系統(tǒng)數(shù)據(jù)在所有程序模塊,所有需要在US3系統(tǒng)內(nèi)運(yùn)行的程序模塊都必須添加到程
序描述列表中,任何描述列表以外的程序都是無(wú)法被正常調(diào)用和運(yùn)行的。
4 關(guān)鍵技術(shù)(Key technologies)
(1)仿真系統(tǒng)是由多臺(tái)運(yùn)行IRIX操作系統(tǒng)的RISC計(jì)算機(jī)和若干運(yùn)行Windows的基于Intel芯片的PC組成的計(jì)算機(jī)網(wǎng)絡(luò),這樣一個(gè)由多平臺(tái)和多系統(tǒng)計(jì)算機(jī)組成的網(wǎng)絡(luò)系統(tǒng),必須采用標(biāo)準(zhǔn)的通訊協(xié)議來(lái)實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)通訊。
(2)部分終端計(jì)算機(jī)中使用了INTOUCH軟件開(kāi)發(fā),INTOUCH軟件規(guī)定了軟臺(tái)屏界面與相應(yīng)通訊模塊的通訊方式是動(dòng)態(tài)數(shù)據(jù)交換機(jī)制(DDE),中間連接媒介為通訊點(diǎn)表文件,相應(yīng)通訊模塊的編制必須考慮使用DDE技術(shù)。
5 結(jié)論(Conclusion)
伴隨著計(jì)算機(jī)科學(xué)和信息技術(shù)的飛速發(fā)展,大型仿真支撐平臺(tái)在日后的工業(yè)生產(chǎn)和教學(xué)科研領(lǐng)域得到越來(lái)越廣泛的應(yīng)用,針對(duì)大型計(jì)算機(jī)仿真系統(tǒng)多平臺(tái)和多系統(tǒng)的特點(diǎn),實(shí)現(xiàn)仿真系統(tǒng)網(wǎng)絡(luò)標(biāo)準(zhǔn)化和模塊化的設(shè)計(jì)特征,是滿(mǎn)足仿真訓(xùn)練系統(tǒng)功能和性能的需要的必然要求。
參考文獻(xiàn)(References)
[1] 游景玉.實(shí)時(shí)仿真技術(shù)及其應(yīng)用[M].珠海:珠海出版社,1999.
[2] 張秀山,等.通用分布式仿真I/O體系結(jié)構(gòu)設(shè)計(jì)及其應(yīng)用[J].計(jì)
算機(jī)應(yīng)用,2005,4(4):926.
[3] 冉隆科.千兆比特以太網(wǎng)的發(fā)展機(jī)遇[J].今日電子,1998,2(2):
6-8.
[4] 馬正午,周德興.過(guò)程可視化組態(tài)軟件InTouch應(yīng)用技術(shù)[M].
北京:機(jī)械工業(yè)出版社,2006.
作者簡(jiǎn)介:
張淵博(1980-),男,工程師.研究領(lǐng)域:仿真系統(tǒng)教學(xué)與
研究.
彭漢國(guó)(1965-),男,高級(jí)工程師.研究領(lǐng)域:電子裝備保
障,仿真系統(tǒng)開(kāi)發(fā).
雷 波(1977-),男,工程師.研究領(lǐng)域:仿真系統(tǒng)教學(xué)與
研究.endprint
Fig.1 Network topology
3.1.2 網(wǎng)絡(luò)通信協(xié)議
模擬系統(tǒng)物理層采用快速交換式以太網(wǎng)協(xié)議標(biāo)準(zhǔn)IEEE 802.3u,鏈路層支持IEEE 802.1d透明網(wǎng)橋協(xié)議標(biāo)準(zhǔn),網(wǎng)絡(luò)層采用TCP/IP通信協(xié)議標(biāo)準(zhǔn),確保異種機(jī)(IRIX系統(tǒng)和WINDOWS系統(tǒng))之間的互連和有效通信。
3.2 網(wǎng)絡(luò)通信軟件
3.2.1 網(wǎng)絡(luò)通信軟件類(lèi)型
本系統(tǒng)網(wǎng)絡(luò)通信軟件可分為兩種類(lèi)型,一種是仿真系統(tǒng)各仿真子系統(tǒng)之間的通信,即IRIX和IRIX之間的通信,另一種是仿真主計(jì)算機(jī)與終端計(jì)算機(jī)之間的通信,即IRIX和WINDOWS之間的通信。
IRIX-IRIX間的通信是仿真服務(wù)器上的仿真平臺(tái)(US3)與仿真服務(wù)器上各仿真子系統(tǒng)間的數(shù)據(jù)通信。US3將仿真的計(jì)算結(jié)果等傳送給各仿真子系統(tǒng),供各子系統(tǒng)調(diào)用,各仿真子系統(tǒng)發(fā)送指令信息給US3來(lái)控制仿真任務(wù)的進(jìn)程。IRIX和IRIX之間的通信實(shí)現(xiàn)方式采用共享數(shù)據(jù)技術(shù),交互的數(shù)據(jù)全部存放在仿真主機(jī)共享數(shù)據(jù)區(qū),供仿真平臺(tái)和各仿真子系統(tǒng)進(jìn)行訪問(wèn),該功能已由研發(fā)機(jī)構(gòu)GSE公司實(shí)現(xiàn)。
IRIX和Windows之間的通信是指仿真主計(jì)算機(jī)與終端計(jì)算機(jī)間的數(shù)據(jù)通信。仿真主計(jì)算機(jī)從終端計(jì)算機(jī)獲得模擬硬臺(tái)屏的設(shè)備狀態(tài)參數(shù),終端計(jì)算機(jī)則從仿真主計(jì)算機(jī)獲得終端計(jì)算機(jī)顯示的變量參數(shù)、教控臺(tái)指令等,通信程序通過(guò)動(dòng)態(tài)數(shù)據(jù)交換機(jī)制(DDE)方式進(jìn)行數(shù)據(jù)交換[4],交換媒介為通信點(diǎn)表文件。它們兩者間的通信是仿真通信系統(tǒng)的主體部分,是開(kāi)發(fā)設(shè)計(jì)的主要工作內(nèi)容,這部分的設(shè)計(jì)和實(shí)現(xiàn)嚴(yán)格遵循優(yōu)化可靠的準(zhǔn)則。
3.2.2 US3仿真平臺(tái)下的程序開(kāi)發(fā)
通信軟件的功能是實(shí)現(xiàn)仿真主機(jī)與終端計(jì)算機(jī)之間的通訊,通信軟件一方面需要實(shí)時(shí)的接收設(shè)備狀態(tài)的參數(shù),同時(shí)將接收的數(shù)據(jù)寫(xiě)入到共享數(shù)據(jù)區(qū),另一方面通信軟件還需要將共享數(shù)據(jù)區(qū)的數(shù)據(jù)發(fā)送到終端計(jì)算機(jī)。由于通信軟件是在US3系統(tǒng)內(nèi)開(kāi)發(fā)實(shí)現(xiàn)的,因此通訊軟件的程序開(kāi)發(fā)必須嚴(yán)格遵循US3系統(tǒng)所固有的程序開(kāi)發(fā)模式和程序結(jié)構(gòu)。
(1)共享數(shù)據(jù)區(qū)。共享數(shù)據(jù)區(qū)是進(jìn)程通信中最快的方式,而且傳遞的信息量非常大,共享數(shù)據(jù)區(qū)是系統(tǒng)內(nèi)一塊特定的內(nèi)存區(qū)域,系統(tǒng)通過(guò)建立允許各個(gè)進(jìn)程之間的共享數(shù)據(jù)區(qū)的映射關(guān)系進(jìn)行數(shù)據(jù)變量的共享和存儲(chǔ)。在共享數(shù)據(jù)區(qū)中的數(shù)據(jù)分為系統(tǒng)級(jí)和用戶(hù)級(jí)兩個(gè)級(jí)別,系統(tǒng)內(nèi)的所有用戶(hù)都可以不受限制的任意調(diào)取和使用共享數(shù)據(jù)區(qū)內(nèi)系統(tǒng)級(jí)的數(shù)據(jù),但是針對(duì)用戶(hù)級(jí)的數(shù)據(jù)的調(diào)取和使用只能局限于定義該變量的用戶(hù),在進(jìn)行網(wǎng)絡(luò)通信程序開(kāi)發(fā)之前必須先將程序所需要使用變量添加到共享數(shù)據(jù)中。
(2)開(kāi)發(fā)語(yǔ)言。US3系統(tǒng)的開(kāi)發(fā)語(yǔ)言為c語(yǔ)言,在US3系統(tǒng)內(nèi)的c語(yǔ)言程序遵循一個(gè)特定的程序結(jié)構(gòu)和編譯/執(zhí)行方式,該程序與通常結(jié)構(gòu)的c語(yǔ)言程序有著很大的不同,它的主程序不是通過(guò)傳統(tǒng)的main()來(lái)指定的,而是指添加到模塊說(shuō)明文件中的模塊名稱(chēng)。正是因?yàn)槠涑绦蚪Y(jié)構(gòu)所具有的特殊性,要求我們?cè)陂_(kāi)始編寫(xiě)程序的時(shí)候必須編寫(xiě)一段特別的說(shuō)明,在說(shuō)明中指出:使用programs說(shuō)明本程序提供給其他程序調(diào)用以及模塊說(shuō)明文件使用的名稱(chēng),使用globals說(shuō)明在本程序中所需要調(diào)用的共享數(shù)據(jù)區(qū)的數(shù)據(jù)變量,使用modules說(shuō)明在本程序中所需要調(diào)用的其他的程序模塊的名稱(chēng),并且必須引用一個(gè)與本程序名稱(chēng)相同的函數(shù)庫(kù)文件。例如:
/*programs network */ 程序模塊的名稱(chēng)
/*globals network1 */ 需要調(diào)用的公共變量
/*modules network2 */ 需要調(diào)用的程序模塊的名稱(chēng)
#include “network.h”
void network()
{
…
}
(3)程序描述列表。程序描述列表是US3系統(tǒng)內(nèi)的程序信息庫(kù),在信息庫(kù)內(nèi)包含有每一個(gè)程序模塊的相關(guān)信息,US3系統(tǒng)可以通過(guò)該信息庫(kù)來(lái)管理系統(tǒng)數(shù)據(jù)在所有程序模塊,所有需要在US3系統(tǒng)內(nèi)運(yùn)行的程序模塊都必須添加到程
序描述列表中,任何描述列表以外的程序都是無(wú)法被正常調(diào)用和運(yùn)行的。
4 關(guān)鍵技術(shù)(Key technologies)
(1)仿真系統(tǒng)是由多臺(tái)運(yùn)行IRIX操作系統(tǒng)的RISC計(jì)算機(jī)和若干運(yùn)行Windows的基于Intel芯片的PC組成的計(jì)算機(jī)網(wǎng)絡(luò),這樣一個(gè)由多平臺(tái)和多系統(tǒng)計(jì)算機(jī)組成的網(wǎng)絡(luò)系統(tǒng),必須采用標(biāo)準(zhǔn)的通訊協(xié)議來(lái)實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)通訊。
(2)部分終端計(jì)算機(jī)中使用了INTOUCH軟件開(kāi)發(fā),INTOUCH軟件規(guī)定了軟臺(tái)屏界面與相應(yīng)通訊模塊的通訊方式是動(dòng)態(tài)數(shù)據(jù)交換機(jī)制(DDE),中間連接媒介為通訊點(diǎn)表文件,相應(yīng)通訊模塊的編制必須考慮使用DDE技術(shù)。
5 結(jié)論(Conclusion)
伴隨著計(jì)算機(jī)科學(xué)和信息技術(shù)的飛速發(fā)展,大型仿真支撐平臺(tái)在日后的工業(yè)生產(chǎn)和教學(xué)科研領(lǐng)域得到越來(lái)越廣泛的應(yīng)用,針對(duì)大型計(jì)算機(jī)仿真系統(tǒng)多平臺(tái)和多系統(tǒng)的特點(diǎn),實(shí)現(xiàn)仿真系統(tǒng)網(wǎng)絡(luò)標(biāo)準(zhǔn)化和模塊化的設(shè)計(jì)特征,是滿(mǎn)足仿真訓(xùn)練系統(tǒng)功能和性能的需要的必然要求。
參考文獻(xiàn)(References)
[1] 游景玉.實(shí)時(shí)仿真技術(shù)及其應(yīng)用[M].珠海:珠海出版社,1999.
[2] 張秀山,等.通用分布式仿真I/O體系結(jié)構(gòu)設(shè)計(jì)及其應(yīng)用[J].計(jì)
算機(jī)應(yīng)用,2005,4(4):926.
[3] 冉隆科.千兆比特以太網(wǎng)的發(fā)展機(jī)遇[J].今日電子,1998,2(2):
6-8.
[4] 馬正午,周德興.過(guò)程可視化組態(tài)軟件InTouch應(yīng)用技術(shù)[M].
北京:機(jī)械工業(yè)出版社,2006.
作者簡(jiǎn)介:
張淵博(1980-),男,工程師.研究領(lǐng)域:仿真系統(tǒng)教學(xué)與
研究.
彭漢國(guó)(1965-),男,高級(jí)工程師.研究領(lǐng)域:電子裝備保
障,仿真系統(tǒng)開(kāi)發(fā).
雷 波(1977-),男,工程師.研究領(lǐng)域:仿真系統(tǒng)教學(xué)與
研究.endprint
Fig.1 Network topology
3.1.2 網(wǎng)絡(luò)通信協(xié)議
模擬系統(tǒng)物理層采用快速交換式以太網(wǎng)協(xié)議標(biāo)準(zhǔn)IEEE 802.3u,鏈路層支持IEEE 802.1d透明網(wǎng)橋協(xié)議標(biāo)準(zhǔn),網(wǎng)絡(luò)層采用TCP/IP通信協(xié)議標(biāo)準(zhǔn),確保異種機(jī)(IRIX系統(tǒng)和WINDOWS系統(tǒng))之間的互連和有效通信。
3.2 網(wǎng)絡(luò)通信軟件
3.2.1 網(wǎng)絡(luò)通信軟件類(lèi)型
本系統(tǒng)網(wǎng)絡(luò)通信軟件可分為兩種類(lèi)型,一種是仿真系統(tǒng)各仿真子系統(tǒng)之間的通信,即IRIX和IRIX之間的通信,另一種是仿真主計(jì)算機(jī)與終端計(jì)算機(jī)之間的通信,即IRIX和WINDOWS之間的通信。
IRIX-IRIX間的通信是仿真服務(wù)器上的仿真平臺(tái)(US3)與仿真服務(wù)器上各仿真子系統(tǒng)間的數(shù)據(jù)通信。US3將仿真的計(jì)算結(jié)果等傳送給各仿真子系統(tǒng),供各子系統(tǒng)調(diào)用,各仿真子系統(tǒng)發(fā)送指令信息給US3來(lái)控制仿真任務(wù)的進(jìn)程。IRIX和IRIX之間的通信實(shí)現(xiàn)方式采用共享數(shù)據(jù)技術(shù),交互的數(shù)據(jù)全部存放在仿真主機(jī)共享數(shù)據(jù)區(qū),供仿真平臺(tái)和各仿真子系統(tǒng)進(jìn)行訪問(wèn),該功能已由研發(fā)機(jī)構(gòu)GSE公司實(shí)現(xiàn)。
IRIX和Windows之間的通信是指仿真主計(jì)算機(jī)與終端計(jì)算機(jī)間的數(shù)據(jù)通信。仿真主計(jì)算機(jī)從終端計(jì)算機(jī)獲得模擬硬臺(tái)屏的設(shè)備狀態(tài)參數(shù),終端計(jì)算機(jī)則從仿真主計(jì)算機(jī)獲得終端計(jì)算機(jī)顯示的變量參數(shù)、教控臺(tái)指令等,通信程序通過(guò)動(dòng)態(tài)數(shù)據(jù)交換機(jī)制(DDE)方式進(jìn)行數(shù)據(jù)交換[4],交換媒介為通信點(diǎn)表文件。它們兩者間的通信是仿真通信系統(tǒng)的主體部分,是開(kāi)發(fā)設(shè)計(jì)的主要工作內(nèi)容,這部分的設(shè)計(jì)和實(shí)現(xiàn)嚴(yán)格遵循優(yōu)化可靠的準(zhǔn)則。
3.2.2 US3仿真平臺(tái)下的程序開(kāi)發(fā)
通信軟件的功能是實(shí)現(xiàn)仿真主機(jī)與終端計(jì)算機(jī)之間的通訊,通信軟件一方面需要實(shí)時(shí)的接收設(shè)備狀態(tài)的參數(shù),同時(shí)將接收的數(shù)據(jù)寫(xiě)入到共享數(shù)據(jù)區(qū),另一方面通信軟件還需要將共享數(shù)據(jù)區(qū)的數(shù)據(jù)發(fā)送到終端計(jì)算機(jī)。由于通信軟件是在US3系統(tǒng)內(nèi)開(kāi)發(fā)實(shí)現(xiàn)的,因此通訊軟件的程序開(kāi)發(fā)必須嚴(yán)格遵循US3系統(tǒng)所固有的程序開(kāi)發(fā)模式和程序結(jié)構(gòu)。
(1)共享數(shù)據(jù)區(qū)。共享數(shù)據(jù)區(qū)是進(jìn)程通信中最快的方式,而且傳遞的信息量非常大,共享數(shù)據(jù)區(qū)是系統(tǒng)內(nèi)一塊特定的內(nèi)存區(qū)域,系統(tǒng)通過(guò)建立允許各個(gè)進(jìn)程之間的共享數(shù)據(jù)區(qū)的映射關(guān)系進(jìn)行數(shù)據(jù)變量的共享和存儲(chǔ)。在共享數(shù)據(jù)區(qū)中的數(shù)據(jù)分為系統(tǒng)級(jí)和用戶(hù)級(jí)兩個(gè)級(jí)別,系統(tǒng)內(nèi)的所有用戶(hù)都可以不受限制的任意調(diào)取和使用共享數(shù)據(jù)區(qū)內(nèi)系統(tǒng)級(jí)的數(shù)據(jù),但是針對(duì)用戶(hù)級(jí)的數(shù)據(jù)的調(diào)取和使用只能局限于定義該變量的用戶(hù),在進(jìn)行網(wǎng)絡(luò)通信程序開(kāi)發(fā)之前必須先將程序所需要使用變量添加到共享數(shù)據(jù)中。
(2)開(kāi)發(fā)語(yǔ)言。US3系統(tǒng)的開(kāi)發(fā)語(yǔ)言為c語(yǔ)言,在US3系統(tǒng)內(nèi)的c語(yǔ)言程序遵循一個(gè)特定的程序結(jié)構(gòu)和編譯/執(zhí)行方式,該程序與通常結(jié)構(gòu)的c語(yǔ)言程序有著很大的不同,它的主程序不是通過(guò)傳統(tǒng)的main()來(lái)指定的,而是指添加到模塊說(shuō)明文件中的模塊名稱(chēng)。正是因?yàn)槠涑绦蚪Y(jié)構(gòu)所具有的特殊性,要求我們?cè)陂_(kāi)始編寫(xiě)程序的時(shí)候必須編寫(xiě)一段特別的說(shuō)明,在說(shuō)明中指出:使用programs說(shuō)明本程序提供給其他程序調(diào)用以及模塊說(shuō)明文件使用的名稱(chēng),使用globals說(shuō)明在本程序中所需要調(diào)用的共享數(shù)據(jù)區(qū)的數(shù)據(jù)變量,使用modules說(shuō)明在本程序中所需要調(diào)用的其他的程序模塊的名稱(chēng),并且必須引用一個(gè)與本程序名稱(chēng)相同的函數(shù)庫(kù)文件。例如:
/*programs network */ 程序模塊的名稱(chēng)
/*globals network1 */ 需要調(diào)用的公共變量
/*modules network2 */ 需要調(diào)用的程序模塊的名稱(chēng)
#include “network.h”
void network()
{
…
}
(3)程序描述列表。程序描述列表是US3系統(tǒng)內(nèi)的程序信息庫(kù),在信息庫(kù)內(nèi)包含有每一個(gè)程序模塊的相關(guān)信息,US3系統(tǒng)可以通過(guò)該信息庫(kù)來(lái)管理系統(tǒng)數(shù)據(jù)在所有程序模塊,所有需要在US3系統(tǒng)內(nèi)運(yùn)行的程序模塊都必須添加到程
序描述列表中,任何描述列表以外的程序都是無(wú)法被正常調(diào)用和運(yùn)行的。
4 關(guān)鍵技術(shù)(Key technologies)
(1)仿真系統(tǒng)是由多臺(tái)運(yùn)行IRIX操作系統(tǒng)的RISC計(jì)算機(jī)和若干運(yùn)行Windows的基于Intel芯片的PC組成的計(jì)算機(jī)網(wǎng)絡(luò),這樣一個(gè)由多平臺(tái)和多系統(tǒng)計(jì)算機(jī)組成的網(wǎng)絡(luò)系統(tǒng),必須采用標(biāo)準(zhǔn)的通訊協(xié)議來(lái)實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)通訊。
(2)部分終端計(jì)算機(jī)中使用了INTOUCH軟件開(kāi)發(fā),INTOUCH軟件規(guī)定了軟臺(tái)屏界面與相應(yīng)通訊模塊的通訊方式是動(dòng)態(tài)數(shù)據(jù)交換機(jī)制(DDE),中間連接媒介為通訊點(diǎn)表文件,相應(yīng)通訊模塊的編制必須考慮使用DDE技術(shù)。
5 結(jié)論(Conclusion)
伴隨著計(jì)算機(jī)科學(xué)和信息技術(shù)的飛速發(fā)展,大型仿真支撐平臺(tái)在日后的工業(yè)生產(chǎn)和教學(xué)科研領(lǐng)域得到越來(lái)越廣泛的應(yīng)用,針對(duì)大型計(jì)算機(jī)仿真系統(tǒng)多平臺(tái)和多系統(tǒng)的特點(diǎn),實(shí)現(xiàn)仿真系統(tǒng)網(wǎng)絡(luò)標(biāo)準(zhǔn)化和模塊化的設(shè)計(jì)特征,是滿(mǎn)足仿真訓(xùn)練系統(tǒng)功能和性能的需要的必然要求。
參考文獻(xiàn)(References)
[1] 游景玉.實(shí)時(shí)仿真技術(shù)及其應(yīng)用[M].珠海:珠海出版社,1999.
[2] 張秀山,等.通用分布式仿真I/O體系結(jié)構(gòu)設(shè)計(jì)及其應(yīng)用[J].計(jì)
算機(jī)應(yīng)用,2005,4(4):926.
[3] 冉隆科.千兆比特以太網(wǎng)的發(fā)展機(jī)遇[J].今日電子,1998,2(2):
6-8.
[4] 馬正午,周德興.過(guò)程可視化組態(tài)軟件InTouch應(yīng)用技術(shù)[M].
北京:機(jī)械工業(yè)出版社,2006.
作者簡(jiǎn)介:
張淵博(1980-),男,工程師.研究領(lǐng)域:仿真系統(tǒng)教學(xué)與
研究.
彭漢國(guó)(1965-),男,高級(jí)工程師.研究領(lǐng)域:電子裝備保
障,仿真系統(tǒng)開(kāi)發(fā).
雷 波(1977-),男,工程師.研究領(lǐng)域:仿真系統(tǒng)教學(xué)與
研究.endprint