一種基于時(shí)間桶的地鐵綜合監(jiān)控系統(tǒng)時(shí)間序列觸發(fā)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明面向地鐵/輕軌綜合監(jiān)控系統(tǒng)中出現(xiàn)的諸多按時(shí)間節(jié)點(diǎn)編排控制計(jì)劃并 依靠計(jì)算機(jī)自動(dòng)觸發(fā)執(zhí)行的需求,提供一種適應(yīng)于多專業(yè)系統(tǒng)的統(tǒng)一定時(shí)觸發(fā)軟件模型, 各專業(yè)應(yīng)用只需向模型注冊(cè)告知自身的定時(shí)行為,即可接受該模型自動(dòng)調(diào)度的觸發(fā)消息并 執(zhí)行各自對(duì)應(yīng)的控制動(dòng)作,大大減少了常規(guī)運(yùn)維操作的工作量,提高了系統(tǒng)日常控制的準(zhǔn) 確度以及自動(dòng)化、智能化水平。
【背景技術(shù)】
[0002] 地鐵/輕軌綜合監(jiān)控系統(tǒng)(ISCS Integrated Supervisory Control System)采用 一體化軟硬件平臺(tái)和專用通信網(wǎng)絡(luò)采集諸如供電系統(tǒng)、環(huán)境與設(shè)備監(jiān)控系統(tǒng)、火災(zāi)報(bào)警系 統(tǒng)、廣播系統(tǒng)、閉路電視系統(tǒng)、乘客信息系統(tǒng)等多個(gè)專業(yè)的實(shí)時(shí)數(shù)據(jù)和環(huán)境參數(shù),并遠(yuǎn)程控 制各專業(yè)系統(tǒng)及設(shè)備的運(yùn)行;這其中,按運(yùn)營(yíng)人員已編排好的帶有時(shí)間序列特征的控制計(jì) 劃自動(dòng)執(zhí)行遠(yuǎn)程控制并反饋控制結(jié)果越來(lái)越成為一種省時(shí)、及時(shí)并不可或缺的控制方式。 比如:廣播系統(tǒng)需要在每天日常運(yùn)營(yíng)時(shí)間段循環(huán)依次播放數(shù)十條時(shí)長(zhǎng)不等的已錄制提示語(yǔ) 音,在某個(gè)特定節(jié)日臨時(shí)播放多條特殊通知語(yǔ)音;乘客信息系統(tǒng)需要在常規(guī)時(shí)間段循環(huán)發(fā) 布一系列乘車提示信息,在節(jié)假日期間循環(huán)發(fā)布重要提示信息;視頻監(jiān)控系統(tǒng)需要在人機(jī) 界面固定區(qū)域循環(huán)顯示地鐵全線多個(gè)地點(diǎn)的實(shí)時(shí)視頻監(jiān)控畫面;環(huán)境與設(shè)備監(jiān)控系統(tǒng)需要 按預(yù)先編制的模式時(shí)間表執(zhí)行特定的通風(fēng)空調(diào)模式等等;此類需求均需要作為多專業(yè)集成 核心的綜合監(jiān)控系統(tǒng)能夠?qū)崿F(xiàn)計(jì)算機(jī)自動(dòng)管理時(shí)間節(jié)點(diǎn)并能據(jù)此準(zhǔn)確觸發(fā)節(jié)點(diǎn)上的控制 命令。
[0003] 現(xiàn)有技術(shù)的缺陷:
[0004] 1.目前現(xiàn)有綜合監(jiān)控系統(tǒng)中處理時(shí)間序列控制主要依靠定時(shí)器實(shí)現(xiàn),由于每個(gè)時(shí) 序計(jì)劃中的多個(gè)時(shí)間節(jié)點(diǎn)完全沒有規(guī)律,因此需要每一條計(jì)劃至少采用一個(gè)系統(tǒng)定時(shí)器并 需要根據(jù)變化時(shí)長(zhǎng)頻繁起停,考慮定時(shí)器在操作系統(tǒng)調(diào)度中優(yōu)先級(jí)較低,有響應(yīng)可靠性上 的缺陷;同時(shí)對(duì)于多個(gè)專業(yè)數(shù)以百計(jì)的控制需求,大量的定時(shí)器使用及頻繁觸發(fā)使得系統(tǒng) 資源開銷大大增加。
[0005] 2.現(xiàn)有綜合監(jiān)控系統(tǒng)對(duì)每個(gè)專業(yè)的時(shí)序控制由各專業(yè)程序分別設(shè)計(jì)處理,缺乏統(tǒng) 一的優(yōu)化的管理調(diào)度和解決方案,不利于系統(tǒng)穩(wěn)定、代碼維護(hù)和程序升級(jí)。
[0006] 3.現(xiàn)有綜合監(jiān)控系統(tǒng)對(duì)每個(gè)專業(yè)的時(shí)序控制靈活度不足,在各類時(shí)間點(diǎn)覆蓋程 度、循環(huán)行為上不能根據(jù)各專業(yè)需求自由掌控,不利于地鐵運(yùn)營(yíng)管理的多樣化實(shí)施。
【發(fā)明內(nèi)容】
[0007] 針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明創(chuàng)造從綜合監(jiān)控系統(tǒng)多專業(yè)子系統(tǒng)的現(xiàn)有技 術(shù)基礎(chǔ)和實(shí)際需求出發(fā),將所有專業(yè)涉及時(shí)間序列控制的功能剝離出來(lái),設(shè)計(jì)實(shí)現(xiàn)一種新 的基于時(shí)間桶的定時(shí)觸發(fā)模型,統(tǒng)一管理各個(gè)專業(yè)的時(shí)序調(diào)度計(jì)劃,適應(yīng)多種類型的控制 需求,并通過(guò)實(shí)時(shí)注冊(cè)/解注冊(cè)機(jī)制支持各專業(yè)即時(shí)便利化的觸發(fā)管理,在觸發(fā)控制效率、 系統(tǒng)資源節(jié)省、開發(fā)管理維護(hù)方面、應(yīng)用需求覆蓋程度具有顯著優(yōu)勢(shì)。
[0008] 為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為:一種基于時(shí)間桶的地鐵綜合 監(jiān)控系統(tǒng)時(shí)間序列觸發(fā)方法,其特征在于:
[0009] 第一步:專業(yè)子系統(tǒng)通過(guò)函數(shù)調(diào)用與注冊(cè)單元建立主從關(guān)系,專業(yè)子系統(tǒng)即客戶 端、模型即服務(wù)端;注冊(cè)單元據(jù)此開辟雙方數(shù)據(jù)交換空間,分為注冊(cè)數(shù)據(jù)區(qū)和消息數(shù)據(jù)區(qū): 注冊(cè)數(shù)據(jù)區(qū)存放負(fù)責(zé)客戶端到服務(wù)端的注冊(cè)請(qǐng)求,消息數(shù)據(jù)區(qū)存放服務(wù)端到客戶端的在各 時(shí)間節(jié)點(diǎn)的即時(shí)觸發(fā)消息;
[0010] 第二步:客戶端發(fā)送在線注冊(cè)請(qǐng)求至模型注冊(cè)數(shù)據(jù)區(qū),注冊(cè)信息包含客戶端使用 者名稱、起止日期、時(shí)間、多個(gè)時(shí)間節(jié)點(diǎn)、執(zhí)行間隔、循環(huán)模式信息;模型的注冊(cè)單元接受該 請(qǐng)求,并檢測(cè)數(shù)據(jù)邏輯合法性,再將信息轉(zhuǎn)發(fā)給資源管理單元,由其負(fù)責(zé)分配時(shí)間桶資源和 加入桶隊(duì)列;
[0011] 第三步:資源管理單元在桶池中為新請(qǐng)求選用專屬時(shí)間桶,并為時(shí)間桶貼上第二 步驟中的注冊(cè)信息項(xiàng)標(biāo)簽;同時(shí)將新時(shí)間桶加入到檢測(cè)隊(duì)列尾部,供檢測(cè)單元使用;
[0012] 第四步:全局定時(shí)單元定時(shí)向檢測(cè)單元發(fā)送檢測(cè)指令;
[0013] 第五步:檢測(cè)單元據(jù)檢測(cè)指令逐一掃描桶隊(duì)列中每一時(shí)間桶的狀態(tài)及其數(shù)據(jù)標(biāo) 簽,維護(hù)桶內(nèi)的剩余時(shí)間;當(dāng)某個(gè)時(shí)間節(jié)點(diǎn)到達(dá)時(shí),將觸發(fā)消息送達(dá)消息處理單元,同時(shí)繼 續(xù)向桶注入距下一時(shí)間節(jié)點(diǎn)的時(shí)長(zhǎng);
[0014] 第六步:消息處理單元根據(jù)客戶名稱找到對(duì)應(yīng)消息數(shù)據(jù)區(qū),寫入觸發(fā)通知及包含 時(shí)間序列索引的附加信息;
[0015] 第七步:客戶端獲得觸發(fā)通知及附加信息,根據(jù)自身的邏輯需求執(zhí)行對(duì)應(yīng)的系統(tǒng) 控制命令;
[0016] 第八步:重復(fù)四~七步,直至?xí)r間桶到達(dá)桶底或客戶端提出解注冊(cè)請(qǐng)求,此時(shí)時(shí)間 桶已作廢,空桶釋放回桶池交由資源管理單元處理;
[0017] 第九步:客戶端通過(guò)函數(shù)調(diào)用向模型注冊(cè)數(shù)據(jù)區(qū)發(fā)送在線解注冊(cè)請(qǐng)求,結(jié)束觸發(fā) 控制,解除二者間的聯(lián)系,釋放資源。
[0018] 上述的基于時(shí)間桶的地鐵綜合監(jiān)控系統(tǒng)時(shí)間序列觸發(fā)方法,其進(jìn)一步特征在于:
[0019] 所述注冊(cè)單元:
[0020] 外部系統(tǒng)注冊(cè)時(shí)調(diào)用模型的接口函數(shù)ts_CreateClient創(chuàng)建一個(gè)注冊(cè)客戶端,該 函數(shù)包含注冊(cè)名稱和緩沖大小兩個(gè)參數(shù);注冊(cè)單元檢查注冊(cè)名稱的唯一性,已存在的名稱 將被注冊(cè)單元拒絕;通過(guò)檢查后注冊(cè)單元為其開辟指定大小的注冊(cè)數(shù)據(jù)區(qū)和消息數(shù)據(jù)區(qū), 其后數(shù)據(jù)交互即在兩個(gè)區(qū)域內(nèi)進(jìn)行;
[0021] 外部系統(tǒng)調(diào)用模型的接口函數(shù)ts_RegisterRequests向注冊(cè)單元提交具體的時(shí) 序控制需求組,其參數(shù)為一組包含詳細(xì)時(shí)序信息的結(jié)構(gòu)體ts_REQINF0組;
[0022] 完成注冊(cè)后,客戶端調(diào)用ts_WaitForNotifications阻塞式等待模型消息單元的 觸發(fā)消息,一旦等待被激活,則處理觸發(fā)消息,向各自專業(yè)下發(fā)控制命令;該阻塞行為具有 超時(shí)時(shí)間設(shè)置,當(dāng)超時(shí)動(dòng)作先行發(fā)生時(shí),給等待執(zhí)行體執(zhí)行其他必要?jiǎng)幼鞯臋C(jī)會(huì),待完成后 重新進(jìn)入等待狀態(tài);
[0023] 客戶端根據(jù)需要在注冊(cè)后的途中暫?;騿⒂媚P偷挠|發(fā)工作以期與自身的工作 進(jìn)度相配合;
[0024] 當(dāng)客戶端認(rèn)為時(shí)序控制任務(wù)已結(jié)束時(shí),調(diào)用ts_UnRegisterRequests向注冊(cè)單元 提交具體的解注冊(cè)請(qǐng)求,注冊(cè)單元負(fù)責(zé)銷毀數(shù)據(jù)區(qū)歸還系統(tǒng)資源。
[0025] 上述的基于時(shí)間桶的地鐵綜合監(jiān)控系統(tǒng)時(shí)間序列觸發(fā)方法,其進(jìn)一步特征在于:
[0026] 所述資源管理單元是數(shù)據(jù)結(jié)構(gòu)時(shí)間桶池和時(shí)間桶隊(duì)列的管理者,其接受注冊(cè)單元 的注冊(cè)需求,分配桶資源,并將任務(wù)加入到桶調(diào)度隊(duì)列。
[0027] 所述時(shí)間桶為帶有上下界和數(shù)據(jù)標(biāo)簽的并裝有不定量時(shí)間的容器,是觸發(fā)消息所 依據(jù)的核心數(shù)據(jù)結(jié)構(gòu),包含數(shù)據(jù)變量:
[0028] 所述檢測(cè)單元是產(chǎn)生觸發(fā)消息的執(zhí)行部件,基于獨(dú)立線程,以時(shí)間桶隊(duì)列為操作 對(duì)象,逐一掃描隊(duì)列中指向的每一個(gè)對(duì)象,依據(jù)桶標(biāo)簽和桶狀態(tài)進(jìn)行處理判斷。
[0029] 所述消息處理單元:檢測(cè)單元將包含客戶端名稱、觸發(fā)的時(shí)間序列索引及上下文 數(shù)據(jù)指針信息通過(guò)加鎖緩沖區(qū)傳送給消息處理單元,消息處理單元通過(guò)事先開辟的消息區(qū) 將信息反饋給客戶端;客戶端ts_WaitForNotifications阻塞函數(shù)將被觸發(fā)并開展后續(xù)數(shù) 據(jù)處理過(guò)程。
[0030] 所述全局定時(shí)單元是檢測(cè)單元執(zhí)行的觸發(fā)源,僅執(zhí)行定時(shí)觸發(fā)任務(wù),采用獨(dú)立線 程實(shí)現(xiàn),通過(guò)加鎖緩沖區(qū)與檢測(cè)單元實(shí)現(xiàn)數(shù)據(jù)交互。
[0031] 有益效果:本發(fā)明