電力監(jiān)控系統(tǒng)(簡稱PSCADA:Power Supervisory Control and Data Acquisition)是用于監(jiān)視和控制電力生產(chǎn)和供應(yīng)過程的、基于計算機及網(wǎng)絡(luò)技術(shù)的業(yè)務(wù)系統(tǒng)及智能設(shè)備,以及作為基礎(chǔ)支撐的通信及數(shù)據(jù)網(wǎng)絡(luò)等,它是構(gòu)建眾多供電、配網(wǎng)自動化應(yīng)用系統(tǒng)的基礎(chǔ)。本發(fā)明涉及城市軌道交通電力監(jiān)控系統(tǒng)、電力監(jiān)控仿真系統(tǒng)、電力監(jiān)控培訓系統(tǒng)以及相關(guān)電力調(diào)度培訓系統(tǒng)等領(lǐng)域。
背景技術(shù):
隨著世界經(jīng)濟、人口的快速發(fā)展,人們對于方便、快捷、舒適的交通運輸有著越來越高的要求、在水陸空飛速發(fā)展的同時,城市軌道交通也得到了飛速的發(fā)展,尤其是以地鐵、城軌、輕軌為代表的城市軌道交通,在迅速發(fā)展的同時,高度安全可靠、經(jīng)濟合理適用、調(diào)度操作方便的電力供給是城市軌道交通安全、正常、有效運營的重要條件和保證。牽引供電系統(tǒng)是城市軌道供電系統(tǒng)的重要組成部分,直流牽引系統(tǒng)的正常運行、為電力機車提供電能,是整個供電系統(tǒng)的最終目標。車輛在直流牽引系統(tǒng)的作用下,沿鐵軌和接觸網(wǎng)運行,實現(xiàn)交通功能。牽引供電系統(tǒng)的特殊使命要求其運行安全必須得到保障,對牽引供電系統(tǒng)進行遠程狀態(tài)監(jiān)測和常規(guī)控制是非常重要的保障措施之一。
隨著計算機技術(shù)、通訊技術(shù)和人工智能技術(shù)的快速發(fā)展,電力監(jiān)控系統(tǒng)在電力行業(yè)及其他相關(guān)行業(yè)得到了越來越廣泛的應(yīng)用,城市軌道交通電力監(jiān)控培訓仿真系統(tǒng)的重要性顯得更加重要,國內(nèi)各大廠家都開始著力于該類仿真系統(tǒng)的研發(fā),因此電力監(jiān)控仿真培訓系統(tǒng)的功能經(jīng)歷了從單一到綜合,從簡單到復雜的發(fā)展過程,其作用也由演示性轉(zhuǎn)變?yōu)橹笇?,并成為電力監(jiān)控自動化的一個重要產(chǎn)品和控制中心培訓操作員的得力工具。
城市軌道交通電力監(jiān)控系統(tǒng)對軌道交通供電系統(tǒng)主變電所、牽引變電所、降壓變電所等全線供電設(shè)備數(shù)據(jù)的監(jiān)視和控制,以確保牽引供電和全線電力變配電系統(tǒng)安全可靠和經(jīng)濟運行,其主要實現(xiàn)遙信、遙測、遙控、遙脈功能。具體包括實現(xiàn)對各種設(shè)備的控制、信息采集、數(shù)據(jù)分析處理、事故報警、畫面調(diào)閱、數(shù)據(jù)查詢等功能。
由于城市軌道交通電力監(jiān)控系統(tǒng)的復雜性和系統(tǒng)設(shè)備價格昂貴,以及受到現(xiàn)場環(huán)境的應(yīng)用、安全性能等限制,往往不能直接在現(xiàn)場進行系統(tǒng)的學習和培訓,因此有必要設(shè)計城市軌道交通電力仿真培訓系統(tǒng),其主要目的就是打破現(xiàn)場學習的各種限制,采用數(shù)字化的仿真培訓系統(tǒng),不僅能夠大幅減少運營公司的成本,提高現(xiàn)場運行的安全性,而且提前為員工進行培訓,并大幅提高培訓的效果和進度,增強社會效益。
城市軌道交通電力監(jiān)控仿真培訓系統(tǒng)是對真實地鐵電力運行情況的仿真模擬,其設(shè)計的目的是為了實現(xiàn)一種能夠?qū)Φ罔F電調(diào)人員操縱電力設(shè)備和處理故障情況的培訓。該系統(tǒng)的一個主要功能就是能夠仿真模擬軌道交通電力監(jiān)控系統(tǒng)在實際中經(jīng)常遇到的各種故障場景(如接觸網(wǎng)短路、交流側(cè)短路、一個主所故障、框架保護動作場景等等)、操作場景(如區(qū)間緊急停電、雙邊供電、大雙邊供電、單邊供電場景等等)。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中存在的問題,基于各種場景在仿真系統(tǒng)中的重要性,本發(fā)明提出了一種具有場景共性的場景設(shè)計與實現(xiàn)方案。
本發(fā)明的技術(shù)方案為:一種電力監(jiān)控仿真系統(tǒng)中場景設(shè)計方法,包括:
基于數(shù)據(jù)點對象的場景配置文件結(jié)構(gòu)設(shè)計;
設(shè)計良好的數(shù)據(jù)組織方式可以為場景過程的配置、場景過程的后臺執(zhí)行提供更好的支持,而且數(shù)據(jù)組織作為場景功能的基本接口,其連接了場景的前臺配置和后臺執(zhí)行兩個過程,二者通過這種組織方式的配置文件進行交互,而且數(shù)據(jù)組織其邏輯的設(shè)計合理性也增強了場景功能的可擴展性。
使用配置文件的形式來組織場景中出現(xiàn)的各種數(shù)據(jù),每個配置文件中包含了場景的基本信息、場景步驟、以及場景步驟所使用的變量信息,場景配置文件結(jié)構(gòu)使用JSON數(shù)據(jù)格式進行組織。
數(shù)據(jù)點對象,包括遙信點、遙測點、遙控點和遙脈點,每個點對象又包括了多個屬性,每個屬性對應(yīng)一個值。
場景步驟,每個場景步驟包含一個alias(用于唯一標識該場景步驟)、id(數(shù)據(jù)點對象的ObjectId)、attribute(數(shù)值類型屬性)、value,以及一個event事件組合,event中包含有delay(用于表示在執(zhí)行這個步驟前延時的毫秒時間)、condition(用于表示執(zhí)行這個步驟的前提條件)。
基于多線程的后臺場景實現(xiàn)方式;
觸發(fā)場景的執(zhí)行方式一共有三種:
定時執(zhí)行:要求場景配置為啟用,定時時間到后,立即執(zhí)行場景,若場景為循環(huán)場景則一直在后臺循環(huán)執(zhí)行場景步驟;
條件執(zhí)行:要求場景配置為啟用,后臺循環(huán)檢測場景的條件表達式,在每次條件表達式的結(jié)果從false變?yōu)閠rue時執(zhí)行一次場景。
立即執(zhí)行:不要求場景配置為啟用,仿真HMI界面觸發(fā)場景立即執(zhí)行后直接將場景執(zhí)行一次。
所有場景的執(zhí)行都受控于開始、暫停、結(jié)束三種狀態(tài),只有開始狀態(tài)時才能執(zhí)行,當為暫停狀態(tài)時所有已經(jīng)在執(zhí)行中的場景會在執(zhí)行完當前所執(zhí)行的這一步驟之后暫停后面的執(zhí)行步驟,等待再變?yōu)殚_始狀態(tài)后繼續(xù)執(zhí)行,當為結(jié)束狀態(tài)時結(jié)束所有場景的執(zhí)行?;诙嗑€程的后臺場景實現(xiàn)方式中包括三種線程,主線程1個,定時檢測子線程1個,場景執(zhí)行子線程N個(0≤N視同時執(zhí)行的場景個數(shù)而定)。
主線程是場景執(zhí)行進程的后臺主線程,其負責場景文件的解析與加載,監(jiān)聽所有場景文件是否需要立即執(zhí)行,并負責啟動定時檢測子線程;
定時檢測子線程由主線程啟動,其每隔1秒鐘對定時類型的場景進行檢測,定時時間到啟動子線程執(zhí)行該定時場景,同時對條件類型的場景條件表達式進行檢測,若其條件表達式的值從false變?yōu)閠rue則啟動子線程執(zhí)行該條件場景,需要注意的是對于循環(huán)類型的條件執(zhí)行場景,并不會在條件為true時一直循環(huán)執(zhí)行場景內(nèi)容,而是每次條件從false變?yōu)閠rue時執(zhí)行一次,從而達到仿真實際故障發(fā)生時出現(xiàn)相應(yīng)狀態(tài)的效果。
場景執(zhí)行子線程負責場景內(nèi)容的具體執(zhí)行,其由主線程、定時檢測子線程啟動,各個場景執(zhí)行子線程之間相互不受影響。
本發(fā)明的有益效果:
本發(fā)明在電力監(jiān)控仿真系統(tǒng)中引入場景設(shè)計的方法,簡化了在仿真系統(tǒng)中遇到的各種故障和操作流程,將所有故障、操作導致的一系列數(shù)據(jù)變化采用場景的方式進行配置,合理地設(shè)計了對象點數(shù)據(jù)結(jié)構(gòu)及其使用配置文件的組織方式,通過采用簡便直觀的配置工具極大地降低了仿真場景過程的配置工作。從場景的執(zhí)行角度出發(fā),場景執(zhí)行使用多線程并行的方式也極大地優(yōu)化了事故仿真的流程和事故場景的并發(fā)性,可以提高仿真效率。
附圖說明
圖1、本發(fā)明實施例的主線程MainThread流程圖。
圖2、本發(fā)明實施例的定時檢測子線程OnTimerCheckThread流程圖。
圖3、本發(fā)明實施例的場景執(zhí)行子線程SceneExecThread流程圖。
具體實施方式
場景指的是特定條件、事件發(fā)生時導致的一系列順序變化的數(shù)據(jù)集合。在城市軌道交通電力監(jiān)控仿真培訓系統(tǒng)中實現(xiàn)場景功能主要包括場景配置文件的結(jié)構(gòu)設(shè)計、場景配置以及場景的后臺實現(xiàn)方式,本專利著重介紹基于數(shù)據(jù)點對象的場景配置文件結(jié)構(gòu)設(shè)計和基于多線程的后臺場景實現(xiàn)方式,而對于場景配置模塊,其主要功能是使用UI界面做配置,并按格式生成場景文件,因此不做太多介紹。
(一)基于數(shù)據(jù)點對象的場景配置文件結(jié)構(gòu)設(shè)計
設(shè)計良好的數(shù)據(jù)組織方式可以為場景過程的配置、場景過程的后臺執(zhí)行提供更好的支持,而且數(shù)據(jù)組織作為場景功能的基本接口,其連接了場景的前臺配置和后臺執(zhí)行兩個過程,二者通過這種組織方式的配置文件進行交互,而且數(shù)據(jù)組織其邏輯的設(shè)計合理性也增強了場景功能的可擴展性。
為了設(shè)計配置文件的結(jié)構(gòu),先給出如下的定義。
定義1數(shù)據(jù)點對象:電力監(jiān)控系統(tǒng)中數(shù)據(jù)一般以對象的形式存在,常見的數(shù)據(jù)點對象包括遙信點(DoublePoint對象)、遙測點(MeasuredValue對象)、遙控點(DoubleCommand對象)和遙脈點(IntegratedTotal對象),每個點對象又包括了多個屬性,每個屬性對應(yīng)一個值。表1以DoublePoint對象為示例給出了一個遙信點的屬性和值。
表1 DoublePoint對象示例
定義2點變量Var:每個點變量Var包含一個alias(用于唯一標識該點變量)、id(數(shù)據(jù)點對象的ObjectId)、attribute(數(shù)值類型屬性)、compareOperation(包括“>”,“<”,“==”,“?。健保啊荨?,“≤”)和一個value(數(shù)值類型,可以為已經(jīng)定義過的其它點變量的alias,如果為alias,則表示取該alias點id的attribute值,即該alias點的compareOperation和value無意義)。每個點變量邏輯表達式最后運算的結(jié)果為一個Bool類型。
點變量舉例:
{"alias":"V1","id":518523517,"attribute":"FieldState","compareOperation":"==","value":"0"},即{V1:518523517->FieldState==0},點變量V1表示數(shù)據(jù)點518523517的FieldState屬性為0時結(jié)果為true,否則為false;
{"alias":"V3","id":527972140,"attribute":"FieldValue","compareOperation":">","value":"5"},即{V3:527972140->FieldValue>5},點變量V3表示數(shù)據(jù)點527972140的FieldValue屬性大于5時結(jié)果為true,否則為false;
{"alias":"V4","id":527972141,"attribute":"FieldValue","compareOperation":"?。?,"value":"V3"},即{V4:527972141->FieldValue?。?27972140->FieldValue},點變量V4表示數(shù)據(jù)點527972141的FieldValue屬性與527972140的FieldValue屬性不相等時結(jié)果為true,否則為false,即對于V4忽略V3的compareOperation和value。
定義3中間變量MidVar:每個中間變量包含一個alias(用于唯一標識該中間變量)、expression(不帶括號的簡單與或表達式,表達式的連接符只能是“&&”或“||”,表達式中只能出現(xiàn)已經(jīng)定義過的點變量和中間變量以及連接符)、compareOperation(包括““==”,“?。健?和一個value(Bool類型)。每個中間變量邏輯表達式最后運算的結(jié)果為一個Bool類型。
中間變量舉例:
{"alias":"M1","expression":"V1&&V2","compareOperation":"==","value":true,},即{M1:V1&&V2==true},中間變量M1表示邏輯表達式“V1&&V2==true”的結(jié)果,即V1和V2的值都為true時M1的值為true,否則M1為false;
{"alias":"M2","expression":"M1&&V2","compareOperation":"==","value":true,},即{M2:M1||V2==true},中間變量M2表示邏輯表達式“M1&&V2==true”的結(jié)果,即M1或者V2的為true時M2的值為true,否則M2為false;
定義4場景步驟:每個場景步驟包含一個alias(用于唯一標識該場景步驟)、id(數(shù)據(jù)點對象的ObjectId)、attribute(數(shù)值類型屬性)、value,以及一個event事件組合,event中可以包含有delay(用于表示在執(zhí)行這個步驟前延時的毫秒時間)、condition(用于表示執(zhí)行這個步驟的前提條件,一般配置為一個中間變量/點變量,當該中間變量/點變量的值為真時,表示這個步驟的前提條件得以滿足,可以設(shè)置該點的值,若delay與condition同時存在,則先執(zhí)行delay后再判斷condition)、在配置了condition時還允許配置condition的檢測周期conditionCycleCount與周期的時間conditionCyclePeriod毫秒(也可以不配置),表示在conditionCycleCount個周期內(nèi)每隔conditionCyclePeriod時間檢查condition,若condition為真則該步驟的條件滿足可以設(shè)置該點的值,若一直檢測不到該條件滿足,則該步驟失敗。
場景步驟舉例:
{"alias":"S2","id":518523516,"attribute":"FieldState","value":"1",
"event":{"condition":"M1","conditionCycleCount":20,"conditionCyclePeriod":1000,"delay":200,}},步驟S2表示在延時200ms后將在20個周期(每個周期1000ms)內(nèi)循環(huán)檢測中間變量M1的值,如果在周期內(nèi)檢測到其值為true則將518523516的FieldState屬性設(shè)置為1;若一直檢測不到值為true,則該步驟失敗,場景執(zhí)行失敗。
本發(fā)明中使用配置文件的形式來組織場景中出現(xiàn)的各種數(shù)據(jù)。每個配置文件中包含了場景的基本信息、場景步驟、以及場景步驟所使用的變量信息等等,基于定義1-4,設(shè)計的場景配置文件結(jié)構(gòu),文件使用JSON(JavaScript Object Notation)數(shù)據(jù)格式進行組織。
①場景的基本信息:
scenceName:場景名稱
scenceDescription:場景描述
sceneEnabled:是否啟用場景,true啟用,false停用
isCycledScene:是否為循環(huán)出,true循環(huán)場景,false非循環(huán)場景
onTimeExec:定時執(zhí)行場景的時間,大于當前時間為有效,否則無效
onConditionExec:條件執(zhí)行場景的條件表達式,可配置為中間變量/點變量,每次在條件表達式的結(jié)果從false變位true時自動執(zhí)行一次場景。
②點變量集合;
③中間變量集合;
④場景步驟集合。
(二)基于多線程的后臺場景實現(xiàn)方式
觸發(fā)場景的執(zhí)行方式一共有三種:
1)定時執(zhí)行:要求場景配置為啟用,即sceneEnabled=true,定時時間到后,立即執(zhí)行場景,若場景為循環(huán)場景則一直在后臺循環(huán)執(zhí)行場景步驟;
2)條件執(zhí)行:要求場景配置為啟用,即sceneEnabled=true,后臺循環(huán)檢測場景的條件表達式,在每次條件表達式的結(jié)果從false變?yōu)閠rue時執(zhí)行一次場景。
3)立即執(zhí)行:不要求場景配置為啟用,前臺的教師仿真HMI界面觸發(fā)場景立即執(zhí)行后直接將場景執(zhí)行一次(即使該場景為循環(huán)場景也只執(zhí)行一次)。
所有場景的執(zhí)行都受控于教學狀態(tài)(開始、暫停、結(jié)束三種狀態(tài)),只有教學狀態(tài)為開始時才能執(zhí)行,當教學狀態(tài)設(shè)置為暫停時所有已經(jīng)在執(zhí)行中的場景會在執(zhí)行完當前所執(zhí)行的這一步驟之后暫停后面的執(zhí)行步驟,等待教學狀態(tài)再變?yōu)殚_始后繼續(xù)執(zhí)行,當教學狀態(tài)設(shè)置為結(jié)束時結(jié)束所有場景的執(zhí)行。
基于多線程的后臺場景實現(xiàn)方式中主要包括三種線程,主線程1個,定時檢測子線程1個,場景執(zhí)行子線程N個(0≤N視同時執(zhí)行的場景個數(shù)而定)。
主線程MainThread是場景執(zhí)行進程的后臺主線程,其負責場景文件的解析與加載,監(jiān)聽所有場景文件是否需要立即執(zhí)行,并負責啟動定時檢測子線程,其執(zhí)行流程圖如圖1所示。
定時檢測子線程OnTimerCheckThread由主線程啟動,其每隔1秒鐘對定時類型的場景進行檢測,定時時間到啟動子線程執(zhí)行該定時場景,同時對條件類型的場景條件表達式進行檢測,若其條件表達式的值從false變?yōu)閠rue則啟動子線程執(zhí)行該條件場景,需要注意的是對于循環(huán)類型的條件執(zhí)行場景,并不會在條件為true時一直循環(huán)執(zhí)行場景內(nèi)容,而是每次條件從false變?yōu)閠rue時執(zhí)行一次,從而達到仿真實際故障發(fā)生時出現(xiàn)相應(yīng)狀態(tài)的效果。
該線程的執(zhí)行流程圖如圖2所示。
場景執(zhí)行子線程SceneExecThread負責場景內(nèi)容的具體執(zhí)行,其可由主線程、定時檢測子線程啟動,各個場景執(zhí)行子線程之間相互不受影響。如圖3所示,場景執(zhí)行子線程SceneExecThread流程圖。
典型應(yīng)用:
作為本公司城市軌道交通電力監(jiān)控培訓仿真系統(tǒng)中的主要功能組件之一,本專利所發(fā)明的場景設(shè)計與實現(xiàn)方案已經(jīng)在系統(tǒng)中得到了應(yīng)用與驗證。該培訓仿真系統(tǒng)已成功用于南京、沈陽等多地的PSCADA培訓仿真教學任務(wù)。
以上的實施例僅為說明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何非實質(zhì)性改動,均落入本發(fā)明保護范圍之內(nèi)。