鄧 敏
(南京軌道交通系統(tǒng)工程有限公司,江蘇南京 210019)
城市軌道交通綜合監(jiān)控系統(tǒng)(ISCS)采用集中控制、分散采集數(shù)據(jù)的方式,在不同站點、不同設備保持時鐘的一致性非常重要,因此,時鐘子系統(tǒng)(CLK)是其重要的輔助系統(tǒng)。在城市軌道交通多年的發(fā)展中,已經(jīng)形成一些時鐘系統(tǒng)的解決方案[1-4],但由于軌道交通ISCS 系統(tǒng)的范圍不僅限于局域網(wǎng)內,因此很多局域網(wǎng)的同步技術[5-6]并不可行。網(wǎng)絡對時協(xié)議(NTP)采用傳輸延時校正對時,時鐘服務器采用點對點的方式逐一對客戶端進行對時,其在網(wǎng)絡傳輸抖動較小的環(huán)境中使用時精度較高,而且軌道交通 ISCS 系統(tǒng)的單位傳輸數(shù)據(jù)量基本恒定,不會影響 NTP 的對時精度,故采用 NTP 會比較經(jīng)濟和實用。
城市軌道交通 ISCS 系統(tǒng)集成和互聯(lián)了很多子系統(tǒng),如電力監(jiān)控系統(tǒng)(PSCADA)、環(huán)境與設備監(jiān)控系統(tǒng)(BAS)、火災自動報警系統(tǒng)(FAS)、視頻子系統(tǒng)(CCTV)等,這些系統(tǒng)的通信總量巨大,因此 CLK 系統(tǒng)不能產(chǎn)生過多的報文影響其他子系統(tǒng)的通信。另外,由于 CLK 系統(tǒng)必須采用用戶數(shù)據(jù)報協(xié)議(UDP)進行通信,因此也需要保證在其他通信量的影響下能夠正常工作。ISCS 實現(xiàn)了一套適應于大規(guī)模通信環(huán)境下的CLK 系統(tǒng),以下對該系統(tǒng)的具體實現(xiàn)流程加以闡述。
CLK 系統(tǒng)采用了 ISCS 的架構布局,分為 3 級控制,如圖1所示。其中實線是主要的控制/數(shù)據(jù)通路,而虛線是輔助通路。這種架構考慮了整個結構的清晰性,3 級層次分明,但是考慮到部分操作如果通過控制中心端系統(tǒng)來進行中轉,則降低了系統(tǒng)效率,所以 CLK 系統(tǒng)由客戶端直接對車站端系統(tǒng)進行操縱。
根據(jù) ISCS 系統(tǒng)總體架構,其硬件系統(tǒng)架構如圖2所示,實現(xiàn)了采用 2 級時鐘模式。
圖1 城市軌道交通 ISCS 系統(tǒng)總體架構
在控制中心,部署高性能服務器 1 臺,布置 NTP 的服務器端,一方面負責采集準確的時間,另一方面作為標準時間的第一級時鐘“源”。
在車站監(jiān)控一級,每個車站設置 1 臺工控機,通過高性能交換機與車站各設備相連。工控機部署了 NTP 客戶端,一方面向策略監(jiān)視端提供自身時間,另一方面對連接在其上的其他子系統(tǒng)的設備授予時間。
監(jiān)控中心客戶端由 PC 組成,部署了策略監(jiān)視端,一方面定時獲取服務端的標準時間,另一方面定時獲取下面車站客戶端的時間狀態(tài),從而判斷是否需要對車站客戶端進行時間校對。如果需要,則向 NTP 服務器端索取查詢當前所有站點的時間。
CLK 系統(tǒng)采用統(tǒng)一管理、模塊化設計思想,其系統(tǒng)結構如圖3所示。
對時服務器和客戶端采用網(wǎng)絡(主要是車站和監(jiān)控中心之間的骨干網(wǎng))進行連接。
系統(tǒng)通過接口 A 為平臺服務組件提供硬件標準接入服務功能。
對時服務模塊屬于基礎性軟件模塊,為各個子系統(tǒng)提供應用程序編程接口(API)進行調用,使得各個子系統(tǒng)可以進行自身的授時。
(1)通信模塊,即通信中間件,通過其可完成各個服務之間的消息傳遞,并能實現(xiàn)服務間通信的解耦與高效。在本系統(tǒng)中,通信模塊主要作為對時服務與實時庫服務之間的信息交互通道。
(2)操作系統(tǒng),是管理和控制計算機硬件與軟件資源的計算機程序,是直接運行在“裸機”上的最基本的系統(tǒng)軟件,任何其他軟件都必須在操作系統(tǒng)的支持下才能運行。
(3)實時數(shù)據(jù)庫又稱為內存數(shù)據(jù)庫,是開發(fā)實時監(jiān)控、數(shù)據(jù)實時采集等功能的支撐軟件,可以滿足對實時信息的完整性、一致性及安全共享的需求,可以方便地進行系統(tǒng)監(jiān)控和優(yōu)化控制。在該系統(tǒng)中,實時數(shù)據(jù)庫作為一個平臺支持軟件,可以作為系統(tǒng)部件失效的事件中轉器。
(4)對時報文組裝工具,可以根據(jù)系統(tǒng)需求組裝合法的對時報文。
(5)對時時間計算算法,主要用戶客戶端可根據(jù)NTP的要求進行時間的計算,給出準確的時間。
(6)標準時間采集模塊,主要用于服務器端,可以采集準確的物理時間。目前只是采用了簡單采集服務器的本地時間作為標準時間,后期將采用子母鐘的形式獲取更加準確的時間。
圖2 ISCS 系統(tǒng)硬件結構
圖3 CLK系統(tǒng)結構
(7)?;钐綔y模塊,主要用于對服務器與客戶端進行定期的探測,查看時鐘客戶端是否正常。實現(xiàn)的方式非常簡單,對每 1 個客戶端啟動 1 個定時器,如果在規(guī)定時間內,客戶端沒有發(fā)來時間同步的報文,則認為客戶端失效,向實時數(shù)據(jù)庫報警。
(8)本系統(tǒng)采用訂閱發(fā)布模型,只有對那些向服務器訂閱時間的站點,才能夠定期完成向服務器同步時間的功能。這個模型主要用來方便測試階段系統(tǒng)的部署。
(9)線程池管理模塊,包含了線程池管理器、池中的工作線程、任務實現(xiàn)接口以及任務隊列。通過線程池的重用大大減少了不必要的開銷,其線程執(zhí)行速度也將大幅提升。
(10)時鐘服務器端,位于監(jiān)控中心,用以組合底層支持模塊,形成服務器功能。服務器端需要介入 NTP的執(zhí)行過程,獲得并保存各個站點發(fā)送來的時間,從嚴格意義上講,這個時間并不一定是準確的時間。
(11)時鐘客戶端,位于車站工控機,一方面,定期與服務器保持時間的同步,另一方面,為連接在工控機上的各個設備提供時間。對時代理主要架構在客戶端上,界面非常簡單,主要顯示本機時間以及己方的監(jiān)聽端口,監(jiān)聽端口設置在配置文件中。
平臺通過接口 B 為業(yè)務系統(tǒng)/上級軟件提供基礎服務功能。
由監(jiān)控中心的用戶界面邏輯和客戶端對時代理的邏輯所組成,為用戶提供友好的監(jiān)控界面。
(1)時鐘監(jiān)控中心用戶界面(UI),主要位于監(jiān)控中心的監(jiān)控客戶端上,通過對服務器的定期查詢,為用戶提供友好的信息展示(主要展示各個站點的當前時間)。如果時間不符合要求,則直接對站點的時鐘客戶端下指令,要求其進行時間的同步。
(2)NTP 代理 UI,通過代理服務器實現(xiàn) WEB 訪問,類似于客戶端 UI 進行的布局與功能設計。
CLK 系統(tǒng)是 ISCS 的一個重要子系統(tǒng),但是 ISCS 整個系統(tǒng)的通信量相當巨大,為此需要在 CLK 系統(tǒng)的設計上采取相關策略。
首先,在系統(tǒng)的服務端與客戶端之間增加 1 個策略監(jiān)視節(jié)點,獲取各客戶端及服務端的時間狀態(tài),通過對這 2 個時間狀態(tài)的比較來決定哪些客戶端需要對時,避免了服務端與客戶端之間大量頻繁無意義的對時操作。正常的時間輪詢時,客戶端也并非不停地向監(jiān)視節(jié)點發(fā)送本地時間報文,而是 1 min 發(fā)送 1 次,以此減輕各節(jié)點的負擔。此外,針對需要進行對時的客戶端,策略監(jiān)視端還進行了以下 2 個考慮。
(1)主動對客戶端進行對時。策略端如發(fā)現(xiàn)某客戶端時間有偏差,即采取主動對時方式;另外,策略端還提供了人工強制的手段,使得其可直接通過人為干預對時鐘客戶端進行同步。
(2)采用“有限可靠”機制。時鐘客戶端對于發(fā)送出去的同步請求報文,如果沒有收到服務器的應答,則在 10 s 后重新發(fā)送一個請求報文,以求得到可靠的反饋。
ISCS 采用了?;顧C制,為了對測試和部署提供便利,系統(tǒng)實現(xiàn)了訂閱/發(fā)布模型,其定義如下:①時鐘分發(fā)矩陣是一種數(shù)據(jù)結構,保存了當前需要完成時鐘同步功能的車站客戶端節(jié)點列表;②訂閱/分發(fā)模型定義了一種一對多的依賴關系,基于中介讓多個訂閱者同時監(jiān)聽同一個物理時鐘。
系統(tǒng)中,由策略監(jiān)視端承擔中介角色,獲得時鐘,并且完成對客戶端的同步要求,其訂閱/取消訂閱流程如圖4所示。在系統(tǒng)的內存以及實時數(shù)據(jù)庫中,以類的形式保存了所有站點時鐘客戶端的信息,作為全局信息提供服務。
圖4 訂閱 / 取消訂閱算法流程
時鐘同步的過程由客戶端發(fā)起,其流程如圖5所示。根據(jù)網(wǎng)絡對時協(xié)議,同步請求報文定義了 4 個重要參數(shù)T1~T4。其中T1 和T4 是時鐘客戶端的時間戳,T2和T3 是服務端的時間戳。T1 是客戶端發(fā)出請求報文的時間戳,T2 是服務器端接收到請求報文的時間戳,T3 是服務器端將該請求報文(服務器端僅改動了T2、T3 信息)原路返回時的時間戳,T4 是客戶端收到應答報文的時間戳。其中,計算時間偏差xp的公式如下:
南京市麒麟創(chuàng)新科技園現(xiàn)代有軌電車 1 號線全線長約 8.95 km,其中高架段 1.02 km,地面段 7.93 km,全線共設置 13 個站(其中 5 個換乘站)、1 座車輛基地,平均站間距約 728 m。線路與軌道交通 2 號線、S6 線、8 號線、10 號線及 12 號線銜接。ISCS 系統(tǒng)最終在南京市麒麟科技創(chuàng)新園現(xiàn)代有軌電車 1 號線上進行了示范應用。該 CLK 系統(tǒng)通過在麒麟有軌電車 1 號線控制中心的時鐘源及策略監(jiān)視端,實現(xiàn)了對全線各個車站設備的時間進行校時,并取得了良好效果。其系統(tǒng)運行界面如圖6所示。
圖5 時鐘客戶端的同步過程
圖6 麒麟有軌電車 CLK 系統(tǒng)的實現(xiàn)效果
本文介紹了在當前城市軌道交通綜合監(jiān)控系統(tǒng)中對于 CLK 系統(tǒng)的創(chuàng)新實現(xiàn),通過全新的對時策略與訂閱發(fā)布機制使得系統(tǒng)對時效率與可靠性都得到提升。最后該系統(tǒng)經(jīng)過在麒麟有軌電車上的工程應用,有力地保障了全線設備的時間精確同步,同時也實際驗證了該系統(tǒng)創(chuàng)新的價值與意義。