龔建生,許麗金
(武漢地鐵運營有限公司,湖北武漢 430030)
隨著我國軌道交通事業(yè)的不斷發(fā)展[1],地鐵能夠提供的安全體系越來越完善,給乘客提供的娛樂享受越來越全面,極大地提高了軌道交通服務(wù)質(zhì)量,同時也給車載通信技術(shù)帶來了新的挑戰(zhàn)。列車乘客信息系統(tǒng)[2]主要由語音廣播系統(tǒng)、閉路電視監(jiān)控(CCTV)、視頻信息顯示(PIS)等子系統(tǒng)構(gòu)成。列車乘客信息系統(tǒng)依靠多媒體和互聯(lián)網(wǎng)技術(shù),以嵌入式設(shè)備為軸心進行工作[3],由多種設(shè)備協(xié)調(diào)工作,具有復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。同時,考慮車內(nèi)布局、乘客舒適性、設(shè)備美觀等因素,設(shè)備采用嵌入式安裝,設(shè)備接口隱蔽,安全性高[4]。但是設(shè)備種類數(shù)量繁雜、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜、現(xiàn)場環(huán)境復(fù)雜,會導(dǎo)致運維困難、設(shè)備檢測效率低下,同時檢測維護過程中會影響服務(wù)質(zhì)量等問題。
本文通過對多硬件設(shè)備、多網(wǎng)段層次的列車乘客信息系統(tǒng)進行研究,開發(fā)了一種設(shè)備狀態(tài)檢測平臺,該檢測平臺使用多線程網(wǎng)絡(luò)編程等技術(shù),采用Python 和Qt 編程語言,實現(xiàn)與設(shè)備進行通信,以達到對列車乘客信息系統(tǒng)中各種設(shè)備狀態(tài)檢測維護。該檢測平臺為設(shè)備維護檢測工作提供了極大的便利,減輕了維護人員的勞動強度,提高了工作效率。
列車乘客信息系統(tǒng)主要為乘客服務(wù),設(shè)備安裝在地鐵列車中,一列車通常分幾節(jié)車廂編組,在一套系統(tǒng)中,包括幾十個板卡和設(shè)備??紤]到車內(nèi)布局、設(shè)備接口安全、設(shè)備美觀舒適等要求,通常設(shè)備采用嵌入式安裝,如攝像機嵌入列車頂棚、顯示器嵌入車體、其他網(wǎng)絡(luò)設(shè)備嵌入車廂設(shè)備柜內(nèi)等,同時這些設(shè)備的網(wǎng)絡(luò)接口一般安裝隱蔽,不方便維護。
以武漢軌道交通7 號線為例,列車乘客信息系統(tǒng)主要由車載無線設(shè)備(含車載無線單元、車載POE 及車載通信控制器)、車載局域網(wǎng)、車載CCTV 主機、車載PIS 主機、車載廣播主機、車載攝像頭及車載顯示屏組成(圖1)。
圖1 列車乘客信息系統(tǒng)系統(tǒng)結(jié)構(gòu)
同時為了提高設(shè)備安全性,減小網(wǎng)絡(luò)風(fēng)暴對設(shè)備的影響[7],保證數(shù)據(jù)安全、可靠、實時地在網(wǎng)絡(luò)設(shè)備之間進行傳輸,列車乘客信息系統(tǒng)將同一物理局域網(wǎng)內(nèi)的不同子系統(tǒng)邏輯地劃分成不同的廣播域,構(gòu)成多個虛擬局域網(wǎng)絡(luò)(VLAN)。其中,車載無線設(shè)備通過以太網(wǎng)線接入車載局域網(wǎng)中,完成車載子系統(tǒng)無線資源管理和調(diào)度。車載PIS、CCTV 和廣播系統(tǒng)通過車載局域網(wǎng)與車載無線系統(tǒng)相連進行業(yè)務(wù)數(shù)據(jù)傳輸。列車乘客信息系統(tǒng)各設(shè)備分屬于多個局域網(wǎng)的不同VLAN 內(nèi),跨VLAN 無法互通,傳統(tǒng)方法每次對設(shè)備進行維護時,需要接入不同VLAN 的端口對相應(yīng)設(shè)備進行檢測。
Python 由荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會的Guido van Rossum 于1990 年代初設(shè)計[5],作為一門稱為ABC 語言的替代品,Python 提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊?。Python 語言誕生至今,已被逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web 編程。
Qt 是一個由Qt Company 于1991 年開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)GUI 程序[6],也可用于開發(fā)非GUI 程序。Qt 是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴展以及一些宏,Qt 很容易擴展,并且允許真正地組件編程。
因為列車乘客信息系統(tǒng)各設(shè)備分屬于不同VLAN,如果需要檢測設(shè)備狀態(tài),就必須逐一檢測或接入到不同VLAN 中進行檢測。如果能用一個檢測平臺通過網(wǎng)絡(luò)跨VLAN 將這些工作完成,會減輕現(xiàn)場維護工作量,提高維護效率,方便系統(tǒng)分析故障。
根據(jù)武漢地鐵列車乘客信息系統(tǒng)的維護需求,設(shè)計一個城市軌道交通列車乘客信息系統(tǒng)設(shè)備狀態(tài)檢測平臺。該平臺系統(tǒng)架構(gòu)如圖2 所示。
圖2 平臺系統(tǒng)架構(gòu)
平臺基于Windows 系統(tǒng),采用Python 語言作為基本結(jié)構(gòu)框架,通過ICMP(因特網(wǎng)報文控制)協(xié)議與列車乘客信息系統(tǒng)各設(shè)備進行數(shù)據(jù)通信。檢測平臺采用多線程編程技術(shù),可同時向多個設(shè)備發(fā)送ICMP 請求報文,極大提高了測試效率。根據(jù)本檢測平臺的設(shè)計思想,包含設(shè)備網(wǎng)絡(luò)地址存儲模塊、跨VLAN 互通模塊、設(shè)備檢測模塊、設(shè)備狀態(tài)顯示模塊、檢測信息顯示模塊、時間顯示模塊及日志存儲模塊等。
(1)設(shè)備網(wǎng)絡(luò)地址模塊:該模塊主要實現(xiàn)不同車次號列車乘客信息系統(tǒng)設(shè)備網(wǎng)絡(luò)地址(IP)的存儲、修改及配置。通過該模塊,可設(shè)置對應(yīng)車次號的相關(guān)設(shè)備的網(wǎng)絡(luò)地址(IP),并且可以非常方便地修改。
(2)跨VLAN 互通模塊:因為列車乘客信息系統(tǒng)各設(shè)備分屬于不同VLAN 中,不同VLAN 間的設(shè)備不互通。該模塊主要通過Telnet 協(xié)議遠程登錄車載局域網(wǎng)中的交換機寫入配置文件設(shè)置VLAN 互通,從而實現(xiàn)只需接入交換機某一端口,便可ping通所有隸屬于不同VLAN 中的設(shè)備。
(3)設(shè)備檢測模塊:采用多線程編程技術(shù),當(dāng)維護人員選擇車次號并點擊開始檢測后,從設(shè)備網(wǎng)絡(luò)地址模塊中讀取設(shè)備網(wǎng)絡(luò)地址,并同時向多個設(shè)備發(fā)送ICMP 請求報文,待報文回復(fù)后,讀取回復(fù)報文中的設(shè)備IP、設(shè)備丟包率及設(shè)備平均時延并保存。
(4)檢測信息顯示模塊:將設(shè)備檢測模塊獲取的設(shè)備IP、設(shè)備丟包率及設(shè)備平均時延顯示在軟件界面下部文本框中。
(5)設(shè)備狀態(tài)顯示模塊:通過設(shè)備IP、設(shè)備丟包率及設(shè)備平均時延等信息,自動與軟件設(shè)置的閾值進行比對,計算出設(shè)備的狀態(tài)為正常、丟包或故障,同時將設(shè)備的狀態(tài)顯示在軟件下部設(shè)備狀態(tài)區(qū)域。其中顯示綠色表示設(shè)備正常;顯示紅色表示設(shè)備故障,需要排查設(shè)備故障點;顯示黃色表示設(shè)備丟包,需要排查設(shè)備網(wǎng)絡(luò)鏈路。
(6)時間顯示模塊:可顯示當(dāng)前的時間。
(7)日志存儲模塊:將檢測時間、ICMP 請求報文、ICMP 回復(fù)報文等數(shù)據(jù)保存在運行日志中,便于出現(xiàn)異常時維護人員進行分析。
首先登陸主界面,然后用戶可在主界面選擇車次號并點擊開始測試,平臺將自動讀取保存在配置文件中該列車的列車乘客信息系統(tǒng)設(shè)備的網(wǎng)絡(luò)地址,并向車載局域網(wǎng)中的交換機寫入配置文件設(shè)置VLAN 互通。設(shè)置完成后,以多線程形式同時向多設(shè)備發(fā)送ICMP 請求報文。待報文回復(fù)后,讀取報文中的設(shè)備IP、設(shè)備丟包率及設(shè)備平均時延并顯示在軟件界面中,并根據(jù)設(shè)備IP、設(shè)備丟包率及設(shè)備平均時延等信息,判斷設(shè)備的狀態(tài)為正常、丟包或故障,并顯示在軟件界面中。同時將當(dāng)前的時間、發(fā)送的ICMP 報文及報文回復(fù)寫入至運行日志中并存儲。該平臺通過向設(shè)備發(fā)送因特網(wǎng)報文控制協(xié)議請求報文,測試設(shè)備是否可達,從而及時了解其狀態(tài),能實現(xiàn)對設(shè)備IP、設(shè)備丟包率、設(shè)備平均時延等數(shù)據(jù)的采集、記錄和顯示,并根據(jù)采集的結(jié)果,分析設(shè)備的狀態(tài)(正常、丟包或故障)。系統(tǒng)的設(shè)計流程如圖3 所示。
圖3 設(shè)計流程
檢測平臺界面設(shè)計基于Qt 開發(fā),首先打開本檢測平臺便可看到列車乘客信息系統(tǒng)設(shè)備狀態(tài)檢測的相關(guān)信息界面,該界面實現(xiàn)了當(dāng)前時間的顯示,并且有車次號的選擇、檢測信息的顯示、設(shè)備狀態(tài)的顯示等功能。平臺界面設(shè)置了開始檢測按鈕,點擊該按鈕,開始自動檢測當(dāng)前設(shè)備(圖4)。
圖4 設(shè)備狀態(tài)檢測平臺界面
界面上面顯示了名稱及當(dāng)前時間;中間下拉框內(nèi)是所有車次號,選擇好要測試的車次號后,點擊右邊開始測試按鈕可自動開始測試;下面左邊是一個文本框,顯示的內(nèi)容為檢測信息,包含設(shè)備名稱、設(shè)備IP、設(shè)備丟包率及設(shè)備平均時延,右邊的色塊顯示的為設(shè)備狀態(tài),其中顯示綠色表示設(shè)備正常;顯示紅色表示設(shè)備故障,需要進一步排查設(shè)備故障點;顯示黃色表示設(shè)備丟包,需要進一步排查設(shè)備網(wǎng)絡(luò)鏈路。
檢測平臺設(shè)計完成后,選擇列車車次號,點擊開始測試,等待約2 min 測試完畢后,界面便可顯示設(shè)備狀態(tài)檢測情況。通過對比傳統(tǒng)設(shè)備檢測方法與該平臺檢測方法(表1)可以發(fā)現(xiàn),維護一列車的乘客信息系統(tǒng)設(shè)備,采用傳統(tǒng)檢測方法進行檢測作業(yè)時間需要約40 min,使用本平臺檢測僅需2 min,極大提高檢測效率。
表1 傳統(tǒng)設(shè)備檢測方法與檢測平臺檢測方法對比
該檢測平臺能將列車乘客信息系統(tǒng)中所有設(shè)備通過網(wǎng)絡(luò)聯(lián)系到一起,通過軟件與設(shè)備進行通信,對設(shè)備進行維護檢測,發(fā)現(xiàn)故障情況。通過對比分析,本文開發(fā)的列車乘客信息系統(tǒng)設(shè)備狀態(tài)檢測平臺,能夠快速獲取系統(tǒng)中設(shè)備的故障情況,避免頻繁的在列車上拆卸設(shè)備和電纜連接設(shè)備端口進行檢測,方便維護人員操作。同時能夠獲取系統(tǒng)中全部設(shè)備的狀態(tài),利于系統(tǒng)的分析問題,解決問題,使得整個系統(tǒng)的維護體系更加完善。
本文開發(fā)的城市軌道交通列車乘客信息系統(tǒng)設(shè)備狀態(tài)檢測平臺,能夠通過TCP/IP 網(wǎng)絡(luò)實現(xiàn)對多設(shè)備、多網(wǎng)段內(nèi)的設(shè)備進行檢測,避免傳統(tǒng)方式檢修時間過長的問題,同時不必頻繁地接入設(shè)備端口,提高了設(shè)備的安全性和可靠性[8]。經(jīng)過嚴(yán)格、系統(tǒng)的測試,該檢測平臺性能穩(wěn)定可靠,目前已應(yīng)用于武漢地鐵列車乘客信息系統(tǒng)設(shè)備狀態(tài)檢測。該平臺可以作為地鐵通信工培訓(xùn)教學(xué)使用,可以使員工深入了解列車乘客信息系統(tǒng)的知識和設(shè)備檢測操作流程,有廣泛的應(yīng)用前景,值得推廣普及。