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