華寅飛,高 昕
(1.南瑞集團公司(國網(wǎng)電力科學研究院),江蘇 南京 210003;2.國電南瑞科技股份有限公司,江蘇 南京 210061)
城市軌道交通綜合調(diào)度指揮系統(tǒng)(TIDS)是基于系統(tǒng)工程理論,將信號、通信、機電、供電等各種監(jiān)控系統(tǒng)集成于一體化的自動化平臺,從而實現(xiàn)在一個調(diào)度平臺上對車、機、電的統(tǒng)一監(jiān)控和管理。 TIDS 集成了列車自動監(jiān)控系統(tǒng)(ATS)、電力監(jiān)控系統(tǒng)(PSCADA)、環(huán)境與設(shè)備監(jiān)控系統(tǒng)(BAS)、網(wǎng)絡管理、仿真及培訓管理等業(yè)務功能,可以為用戶提供集運營監(jiān)控、運營管理、調(diào)度指揮為一體的運營調(diào)度指揮平臺,近年來常應用于有軌電車及地鐵監(jiān)控項目。
TIDS 系統(tǒng)對事故反演提出了較高的要求,其中,調(diào)度員的所有操作、列車運行狀況、設(shè)備工作狀態(tài)能自動或按調(diào)度員的指令進行回放。 回放數(shù)據(jù)需包括已記錄的軌道、道岔、信號機等信號設(shè)備的狀態(tài)信息,列車位置信息,中央調(diào)度員執(zhí)行的各種操作命令和各種報警信息。 同時,在回放過程中對回放軟件進行的各種操作不能對正在運營的線路和TIDS 的各種既有功能產(chǎn)生影響,即用戶可在監(jiān)控工作站對正常監(jiān)控狀態(tài)和反演回放狀態(tài)一鍵切換。 為滿足上述需求,需要搭建全景化事故反演回放系統(tǒng)[1]。
系統(tǒng)具備全部采集數(shù)據(jù)(模擬量、開關(guān)量、設(shè)備狀態(tài)信息、列車位置信息等)的追憶能力,可以全方位地記錄、保存系統(tǒng)監(jiān)視對象的事故狀態(tài),并且能夠真實、完整地反演系統(tǒng)監(jiān)視對象事故過程,即使系統(tǒng)監(jiān)視對象已經(jīng)發(fā)生了很大的變化,也能夠真實地反映當時的情況。
系統(tǒng)根據(jù)給定的事故反演時刻自動匹配并調(diào)出相應的系統(tǒng)模型斷面,再調(diào)出事故發(fā)生前的數(shù)據(jù)斷面以重構(gòu)當時的場景,在此基礎(chǔ)上反演當時發(fā)生的事件序列,并由用戶控制反演的進度。 事故反演數(shù)據(jù)能在工作站屏幕上重放整個事件過程,并能以圖表等多種方式重新顯示擾動數(shù)據(jù)的變化。 事故反演能夠以設(shè)定的刷新周期在人機界面上一步一步重新顯示,并能由操作員任意控制[2]。
全景化事故反演回放系統(tǒng)主要依賴“回放態(tài)”設(shè)計與切換,全景采樣數(shù)據(jù)存儲和高效的全景數(shù)據(jù)查詢與數(shù)據(jù)斷面獲取,實現(xiàn)事故錄制和事故反演過程,具體內(nèi)容如下。
為了保證用戶監(jiān)控的應用數(shù)據(jù)可在正常監(jiān)控狀態(tài)和反演回放狀態(tài)之間切換,當某一個應用如列車自動監(jiān)控(ATS)需要反演時,需要建立一個新的應用名為“ATS_PDR”,這個應用即稱為列車自動監(jiān)控“回放態(tài)”應用。 回放狀態(tài)下的所有監(jiān)控的設(shè)備都屬于這個“ATS_PDR”的應用。
當用戶在工作站人機界面內(nèi)切換到反演回放狀態(tài)時,該工作站監(jiān)控畫面的所有數(shù)據(jù)聯(lián)點自動切換到“ATS_PDR”回放狀態(tài)應用下,接收回放數(shù)據(jù);當用戶在人機界面內(nèi)切換到正常監(jiān)控狀態(tài)時,監(jiān)控畫面的所有數(shù)據(jù)聯(lián)點自動切換回ATS 應用下,接收實時數(shù)據(jù)。 這樣既實現(xiàn)了正常監(jiān)控狀態(tài)和反演回放態(tài)的一鍵切換,又不會在回放過程中影響正常實時數(shù)據(jù)的處理與TIDS系統(tǒng)正在運營線路的各種既有功能[3]。
Bekeley DB 可簡稱為bdb,是一種以key-value 為結(jié)構(gòu)的嵌入式數(shù)據(jù)庫,介于關(guān)系數(shù)據(jù)庫與內(nèi)存數(shù)據(jù)庫之間,使用方式與內(nèi)存數(shù)據(jù)庫類似,它有以下兩個基本特征。
(1)嵌入式:bdb 提供了一系列應用程序API 接口,調(diào)用這些接口很簡單,應用程序和bdb 所提供的庫一起編譯/鏈接成為可執(zhí)行程序。
(2)NOSQL:bdb 不支持SQL 語言,它對數(shù)據(jù)的管理很簡單,bdb 數(shù)據(jù)庫包含若干條記錄,每條記錄由關(guān)鍵字和數(shù)據(jù)(key-value)兩部分構(gòu)成。 數(shù)據(jù)可以是簡單的數(shù)據(jù)類型,也可以是復雜的數(shù)據(jù)類型,例如C 語言的結(jié)構(gòu)體,bdb 對數(shù)據(jù)類型不作任何解釋,完全由程序員自行處理。
TIDS 系統(tǒng)依賴Bekeley DB 的上述特性,構(gòu)建全景采樣數(shù)據(jù)庫。 在TIDS 系統(tǒng)中,點(point)是數(shù)據(jù)管理的基本單元,任何專業(yè)可測量的設(shè)備屬性都可以被定義成point,點類型主要包括數(shù)字量和模擬量。 TIDS 系統(tǒng)的各監(jiān)控專業(yè)變化數(shù)據(jù)都可以存儲在全景采樣數(shù)據(jù)庫中,在全景采樣數(shù)據(jù)庫中,對數(shù)據(jù)的各種操作都是以點為單位進行的,任何采樣點都進行了變化采樣,以“點標簽+時間戳”為key,采樣值和狀態(tài)為value,數(shù)據(jù)點變化后實時存入bdb 數(shù)據(jù)庫。
由于全景采樣數(shù)據(jù)存儲的是點在最近某一時刻的瞬時值,是與時間有關(guān)的數(shù)據(jù)。 每一個數(shù)據(jù)記錄上都有一個時間戳,記錄實時數(shù)據(jù)變化的采樣時間。 一條采樣數(shù)據(jù)記錄包括點標簽、時間戳、狀態(tài)、數(shù)值4 個組成部分。 為了方便采樣點查詢,全景采樣數(shù)據(jù)庫采用了HASH 表的索引方式進行點查詢,并設(shè)計了緩存機制,可以快速高效地查找到指定點信息,支持數(shù)據(jù)斷面獲取。 即用戶想要獲得某一時刻的TIDS 系統(tǒng)的數(shù)據(jù)斷面,可以通過獲取所有采樣數(shù)據(jù)點在該時刻或該時刻之前最近的一個時刻的變化采樣值,快速構(gòu)建成為數(shù)據(jù)斷面。
全景化事故反演回放系統(tǒng)包括事故錄制和事故反演兩個過程。
事故錄制過程比較簡單,即用戶指定了某個時間段(如A 時刻至B 時刻)的事故錄制任務,后臺回放服務接收到命令后從全景采樣數(shù)據(jù)庫中獲取A 時刻數(shù)據(jù)斷面,獲取A 時刻到B 時刻所有數(shù)據(jù)點的變化采樣值和時間戳,以及獲取A 時刻到B 時刻歷史數(shù)據(jù)庫所有的歷史事件,以文件方式錄制保存,如圖1 所示。 用戶可選擇任意時間段進行事故錄制,生成不同的錄制文件。
圖1 錄制操作
在事故反演過程中,用戶通過人機界面可以看到之前所有錄制的文件記錄,當用戶選擇某個錄制文件下達反演回放命令后,人機界面首先切換至“回放態(tài)”,后臺回放服務從錄制文件中讀取數(shù)據(jù)斷面、數(shù)據(jù)變化記錄、歷史事件記錄,先發(fā)送數(shù)據(jù)斷面,然后按照時間戳間隔和指定的播放速度發(fā)送變化報文、報警信息、事件信息給人機界面HMI、報警窗和事件窗,仿真真實的數(shù)據(jù)變化過程,實現(xiàn)全景化事故反演,如圖2 所示。
圖2 回放操作
全景化事故反演回放系統(tǒng)由事故錄制、事故反演操作人機界面和后臺回放服務replay_server 組成,回放服務承載了主要的事故錄制與反演功能。 由于系統(tǒng)要求操作人員能夠任意控制回放過程,隨時啟動、暫停、倍速觀看回放過程,使回放服務面臨很多的人機交互,設(shè)計更為靈活,回放服務的功能設(shè)計如下[4-7]。
回放服務replay_server 包含回放主線程和事故錄制子線程、錄制文件管理子線程和心跳子線程,實現(xiàn)功能分別如下。
(1)事故錄制子線程:與事故錄制界面的交互,實現(xiàn)事故錄制過程。
(2)錄制文件管理子線程:與錄制文件管理界面的交互,處理錄制文件的顯示、刪除。
(3)心跳子線程:維護回放管理的回放進度。
(4)回放主線程:與回放管理界面的交互,處理事故反演過程。
事故錄制與錄制文件管理界面如圖3 所示。
圖3 錄制操作界面
用戶打開【數(shù)據(jù)管理】TAB 頁,向后臺回放服務錄制文件管理子線程請求并獲取錄制文件列表,可以手動刪除任意錄制文件。 用戶在該界面點擊【新建】按鈕,選擇【新建名稱】【開始時間】與【結(jié)束時間】,向后臺回放服務事故錄制子線程發(fā)送了錄制命令,錄制子線程向全景采樣數(shù)據(jù)庫和歷史數(shù)據(jù)庫獲取該時間段內(nèi)的數(shù)據(jù)斷面、采樣數(shù)據(jù)和歷史事件,完成后生成新命名的錄制文件,顯示在錄制文件列表中。
事故反演操作界面如圖4 所示。
圖4 回放操作界面
用戶打開【回放管理】TAB 頁,向后臺回放服務錄制文件管理子線程請求并獲取錄制文件列表,可以選擇任意錄制文件進行事故反演,點擊【開始】按鈕,即向后臺回放服務回放主線程發(fā)送了回放命令,后臺回放服務從錄制文件中讀取數(shù)據(jù)斷面、數(shù)據(jù)變化記錄、歷史事件記錄,先發(fā)送數(shù)據(jù)斷面,然后按照時間戳間隔和指定的播放速度發(fā)送回放變化報文、報警信息、事件信息給人機界面。 人機界面切至“回放態(tài)”接收所有的回放數(shù)據(jù),回放數(shù)據(jù)包括系統(tǒng)已記錄的軌道、道岔、信號機等信號設(shè)備的狀態(tài)信息、列車位置信息、中央調(diào)度員執(zhí)行的各種操作命令和各種報警信息,回放流程如圖5所示。
圖5 回放流程
后臺回放服務的心跳子線程向回放管理界面持續(xù)發(fā)送心跳報文,用于顯示回放進度。 用戶可以隨時暫停回放,以及修改倍速加速回放或減慢回放,后臺回放服務隨時響應界面操作,直到回放結(jié)束[8]。
本文介紹了一種在城市軌道交通綜合指揮調(diào)度系統(tǒng)(TIDS)中進行全景化事故反演的實現(xiàn)方式,針對該系統(tǒng)對事故反演的要求,介紹了一種基于Bekeley DB的全景采樣數(shù)據(jù)庫,將TIDS 系統(tǒng)的各監(jiān)控專業(yè)變化數(shù)據(jù)都存儲在全景采樣數(shù)據(jù)庫中,該全景采樣數(shù)據(jù)庫支持基于時間戳的數(shù)據(jù)存儲,高效的數(shù)據(jù)查詢、數(shù)據(jù)斷面獲取以及“回放態(tài)”的概念和切換過程,并據(jù)此設(shè)計完善的事故錄制與事故反演實現(xiàn)方案。 本方案能夠讓用戶在正常監(jiān)控過程中隨時切換至回放狀態(tài),查看以前任意時間斷面的列車運行情況,設(shè)備工作狀態(tài)以及調(diào)度員的所有操作、歷史事件,方便操作員反演事故過程,且回放過程中對回放的各種操作對正在運營的線路和TIDS 的各種既有功能不產(chǎn)生任何影響。 目前,該設(shè)計方案已經(jīng)安全穩(wěn)定的運行在蘇州有軌電車2 號線綜合指揮調(diào)度系統(tǒng)中。