《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 設計應用 > ATS仿真系統網絡化的設計與實現
ATS仿真系統網絡化的設計與實現
來源:微型機與應用2013年第20期
徐 越, 郭秀清
(同濟大學 控制科學與工程系, 上海201804)
摘要: 網絡化的ATS仿真系統能夠更好地滿足在實際應用中的培訓和教學需求。以上海地鐵2號線ATS(Automatic Train Supervision)仿真系統為例,在系統功能模塊化的基礎之上,結合TCP/IP、UDP協議和WSAAsyncSelect I/O模型,在現有單機版ATS仿真系統的基礎上設計并開發了網絡版,使之可以更好地滿足系統的實際應用需求。
Abstract:
Key words :

摘   要: 網絡化的ATS仿真系統能夠更好地滿足在實際應用中的培訓和教學需求。以上海地鐵2號線ATS(Automatic Train Supervision)仿真系統為例,在系統功能模塊化的基礎之上,結合TCP/IP、UDP協議和WSAAsyncSelect I/O模型,在現有單機版ATS仿真系統的基礎上設計并開發了網絡版,使之可以更好地滿足系統的實際應用需求。
關鍵詞: ATS; 仿真; 網絡通信; WSAAsyncSelect

    近年來,軌道交通快速進入高速期,成為帶動經濟增長的重要因素。列車自動監控系統(ATS)是一種智能化自動監控系統,是否對ATS系統正確操作,影響著列車能否安全運行,這對軌道交通運營管理人員的后勤培訓提出了很高要求。這些綜合性運營專業人員不僅需要熟悉ATS系統的工作原理,同時還需要具備實際操作能力。考慮到現場行車安全無法在目前已經投入運營的系統上進行教學培訓,開發仿真培訓系統就成為解決這一問題的有效途徑,因此ATS仿真系統應運而生[1]。
    單機版ATS仿真系統是運行于單獨一臺主機上并且不與其他主機進行通信的ATS仿真系統,它可以提供模擬演示和故障模擬等基本功能。但是在實際的培訓和教學中,單機版ATS仿真系統仍然存在很多局限性,例如教師無法同時對較多的學員進行示范性操作、無法模擬中央ATS和集中站ATS的拓撲環境等。這就提出了將現有單機版ATS仿真系統網絡化的需求。網絡版ATS仿真系統是在單機版ATS仿真系統的基礎上,進一步構建基于客戶端/服務器C/S(Client/Server)模型的網絡化通信平臺,著重研究基于TCP/IP協議下運行在多臺主機上的ATS仿真系統之間的網絡通信。
1 ATS仿真系統網絡版通信模塊的總體設計
    網絡版ATS仿真系統間的通信不同于單機版ATS仿真系統模塊之間的通信,它是基于現有的網絡通信協議,采用成熟的網絡編程接口實現不同主機、不同進程間的數據傳輸和交互。通過對ATS仿真系統的需求分析,將通信模塊的設計分為組件狀態同步、客戶端的操作命令傳輸和權限管理三部分進行討論。
1.1 組件狀態同步的分析與設計
    站場圖上的組件狀態同步,即將局域網內服務器上組件狀態的實時數據發送到客戶端,客戶端根據接收到的實時數據更新組件的狀態。由于可能同時會有多個客戶端需要接收實時數據,如果采用TCP(Transmission Control Protocol)連接的方式,將消耗很多服務器的資源,導致服務器處理速度變慢,同時也會加重網絡的負擔。并且客戶端并不需要發送數據給服務器,只要保證接收到的數據的完整性即可,不需要為每一個客戶端建立一個與服務器的TCP連接。所以,綜合考慮上述因素,本文采用UDP(User Datagram Protocol)廣播的方案。UDP廣播具有資源消耗少、傳輸效率高等優點,能夠滿足這里的實時通信要求。
1.2 客戶端操作命令的傳輸的分析與設計
       中央ATS起著全局監管的作用,一般會把集中站的具體操作控制權交至區域控制中心。由于區域控制中心的操作需要被全局看到,包括中央ATS和其他區域控制中心/集中站,并能夠在中央ATS留下操作記錄。所以客戶端對系統的操作并不是直接作用于本機的系統,而是將操作命令傳給中央ATS,由中央ATS執行命令,并將執行的結果(如組件狀態的改變)廣播給所有的客戶端。這樣便可保證區域控制中心不會越權操作,也可使各個系統之間保持一致。由于客戶端與中央ATS之間的通信屬于端到端的通信,并且需要嚴格保證傳輸數據的完整性,這就需要選擇一個面向連接的、可靠的通信協議。TCP協議是一個面向連接、可靠的通信協議,它通過自身實現的數據確認和超時重傳等機制,保證了數據傳輸的高可靠性,并且客戶端發送的操作命令的數據較小、在同一時刻也不會有很多客戶端需要與中央ATS進行通信,并不會耗費太多系統資源,所以這里采用面向連接的TCP協議實現。
1.3 權限管理的分析與設計
    客戶端不僅僅需要作為固定的網絡終端來接收數據,同時也要能夠模擬集中站管理員對系統的操作。主要涉及有:用戶賬號和密碼管理、操作權限的分配和回收、操作權限的驗證和操作命令的代執行等。由于數據傳輸量較小,并需要保證數據傳輸的可靠性,故也采用面向連接的TCP協議實現。綜合以上討論,網絡版ATS仿真系統間網絡通信實現可以用圖1所示的示意圖來表示。

2 網絡通信模塊的軟件實現
    由于ATS仿真系統是一個在Windows平臺基于MFC框架的桌面應用程序,同時需要處理與多個客戶端之間的通信問題,所以在進行具體的軟件實現之前,選擇一個合適的I/O模型尤為重要。在現有的通信模塊中,很多都是基于阻塞模型,其優勢在于簡單直接,其缺點在于通常需要耗費較多的系統資源,同時如果涉及到多線程數據交互更是需要進行繁瑣的同步工作。異步通知模型則可以高效解決這種情況下的并行處理問題[2]。WSAAsyncSelect(異步選擇)模型是Winsock提供的一個異步I/O模型,通過這個模型,應用程序可以接收制定套接字上的網絡事件通知,這些異步通知通過窗口消息的方式傳遞。通過對相應消息的處理,應用程序即可實現對網絡連接的控制,最突出的一方面是它可以在系統開銷不大的情況下同時處理許多連接。綜合考慮這些因素,本文采用WSAAsyncSelect模型。
2.1 協議的設計
    要實現不同主機、不同進程之間的通信,首先要解決進程間的通信協議設計問題。在網絡化的ATS仿真系統間的通信內容主要是組件狀態和操作命令兩種。下面就對這兩種傳輸內容分別進行設計。
2.1.1 組件狀態的協議設計
    通過對ATS仿真系統的分析,客戶端需要保持與服務器同步所需要的數據有三種:組件的編號(如編號為123的信號機)、組件的狀態類型(如信號機的顏色)、組件的具體狀態(如信號機的顏色為綠色)。所以可以將這三種數據整合成一個分組,組件的狀態編碼的封包格式如圖2所示。

 

 

2.1.2 操作命令的協議設計
   由于操作命令的多樣化,所以將協議設計成可變的、無固定長度的分組。每一個分組包括命令類型和命令內容。命令內容會因不同的命令類型而有所不同,最后以一個‘\0’作為結束符。這樣既可以方便拆包又能處理TCP數據流中的粘包問題[1]。操作命令的封包格式如圖3所示。

2.2 類設計
   由于服務器端和客戶端的ATS仿真系統都采用WSAAsyncSelect I/O模型,并且都有一些相同的操作,如創建套接字、創建關聯窗口、關閉套接字等,所以這里封裝一個CATSGenericConnector基類,該基類再分別派生出服務器類CATSServer和客戶端類CATSClient。服務器類實現了Startservice()和Broadcast()等方法,分別用于啟動客戶端等待客戶連接和向客戶端廣播組件狀態信息。客戶端類實現了ConnectServer()和Send()等方法,分別用于連接客戶端和向服務器發送操作命令。
2.3 UDP廣播的實現
    UDP廣播主要是為在動態仿真過程中將服務器上運行的ATS仿真系統的實時信息發送到每一個客戶端,客戶端根據接收到的數據更新系統上的組件狀態,以達到與服務器保持同步的目的。服務器在啟動時將設置一個定時器,以一個固定的時間間隔作為一個傳輸周期,在每個傳輸周期內,服務器將改變的組件狀態按照圖2所示的封包格式進行統一打包,并在一個傳輸周期結束前將封裝好的數據包廣播給局域網內的每個客戶端。客戶端則單獨開啟一個線程(ListenThread)用于接收服務器端發送的數據,并對接收到的數據進行解碼,更新相應的組件狀態。
2.4 TCP通信的實現
        由通信基類CATSGenericConnector派生出的服務器類CATSServer實現了啟動服務器方法StartService(),當服務器對象調用StartService()方法時,服務器創建監聽套接字,等待客戶端的連接,并調用WSAAsyncSelect()與仿真系統的窗口關聯。客戶端調用ConnectServer()與服務器進行連接,并調用客戶端類CATSClient的Send()和OnRead()方法收發數據。在客戶端連接到服務器之后,服務器會將客戶端的連接信息保存在一個結構ATSClientInfo中,該結構記錄了客戶端的已連接套接字、IP地址、端口號、用戶名和密碼等信息,用于與客戶端進行收發數據、權限驗證等工作。
2.5 編碼和解碼的實現
    網絡化的ATS仿真系統對傳輸數據的編碼解碼也要分為兩個部分進行討論。首先,對于組件狀態的傳輸,服務器首先按照圖2所示的封包格式對組件狀態數據進行編碼,客戶端在接收到數據后對數據進行解碼;其次,客戶端會將操作命令和一些用戶名、密碼等信息發送到服務器端,由服務器端進行解析、執行,這樣就要求客戶端按照圖3所示的封包格式,對所需要發送的數據進行編碼,服務器對所收到的數據進行解碼、執行、驗證權限等操作。
    為了滿足上述要求,定義一個抽象基類,該類聲明了編碼和解碼的接口,具體的接口實現由派生類完成。編解碼類的UML結構如圖4所示。

2.6 測試結果
    在局域網內啟動服務器上的ATS仿真程序,同時在其他多臺主機上的ATS仿真系統上以客戶端用戶登錄,所有客戶端上的仿真程序均能立即收到服務器所發出的數據,仿真畫面保持一致,沒有出現不一致或者延遲的現象。客戶端的操作亦能準確發送到服務器上,并且能夠將操作的結果迅速地反映在多臺客戶端上的仿真程序上,測試達到了預期效果。
    本文提出了一個將ATS仿真系統網絡化的方案,以滿足實際應用中對ATS仿真系統的應用需求。該方案綜合考慮了對于仿真同步和模擬中央ATS/集中站等對通信效果的不同要求,分別應用UDP和TCP協議,并采用基于窗口的WSAAsyncSelect I/O模型,設計并成功地將現有的ATS仿真系統的單機版網絡化,從而有效提高了培訓效率。
參考文獻
[1] 孫志勇, 陳永生. ATS 仿真培訓系統列車模擬運行的設計與實現[J]. 微型機與應用, 2012,31(14):7-9.
[2] 邱俊源, 張躍. 異步消息驅動安全通信模塊的設計與實現[J]. 計算機工程與設計, 2011,32(8):2580-2581.
[3] 賀鵬.城軌列車運行自動監控系統的多Agent模型[J].計算機應用與軟件,2010,27(12):68-69.
[4] 謝小河, 郭秀清,郭玉臣.基于ATS仿真系統的網絡通信模塊的研究與設計[J].機電一體化,2012(8):53-54.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久国产精品视频 | www.com欧美| 九月婷婷开心九月 | 成人伊人亚洲人综合网站222 | 国产精品久久久久久久免费 | 欧美亚洲日本国产综合网 | 欧美69视频 | 色五月视频 | 奇米影视第四色在线 | 久久精品国产99国产精品 | 丁香婷婷激情 | 国产小视频在线观看www | 国产 日韩 欧美 亚洲 | 日韩欧美中文字幕在线视频 | 一级毛片免费播放 | 国产亚洲第一精品社区麻豆 | 欧美干b视频| 亚洲欧美日韩精品久久久 | 久久免费观看视频 | 99在线视频精品费观看视 | 国产欧美性综合视频性刺激 | 国产福利小视频在线观看 | 五月婷婷开心网 | 日日av| 精品国内在线视频2019百度 | 久久99国产精品久久 | 国产欧美精品 | 在线毛片免费观看 | 欧美国产精品va在线观看 | 欧美97色伦影院在线观看 | 十分钟免费在线观看高清www | 精品久久久久国产免费 | 五月婷婷激情网 | 五月天在线观看免费视频播放 | 日韩福利视频导航 | 色视频免费网站 | 免费在线观看一级毛片 | 精品视频久久久 | 奇米影视第四影院在线观看 | 无需付费看大片免费 | 国产精品第九页 |