綜合監(jiān)控培訓(xùn)系統(tǒng)及其實(shí)現(xiàn)方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊的實(shí)現(xiàn)方法,所述綜合監(jiān)控培訓(xùn)系統(tǒng)包括培訓(xùn)仿真終端,所述綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊包括數(shù)據(jù)依次循環(huán)流動(dòng)的通用數(shù)據(jù)交互模塊、生產(chǎn)者線(xiàn)程池、循環(huán)隊(duì)列、消費(fèi)者主線(xiàn)程,所述通用數(shù)據(jù)交互模塊接收所述培訓(xùn)仿真終端的指令,所述生產(chǎn)者線(xiàn)程池包括兩個(gè)以上的生產(chǎn)者線(xiàn)程,所述生產(chǎn)者線(xiàn)程池將所述數(shù)據(jù)交互模塊中的數(shù)據(jù)進(jìn)行指定邏輯的生產(chǎn)加工,獲得對(duì)應(yīng)的系統(tǒng)數(shù)據(jù)后存儲(chǔ)到所述循環(huán)隊(duì)列中,所述消費(fèi)者主線(xiàn)程讀取所述循環(huán)隊(duì)列中等待處理的數(shù)據(jù)并做出對(duì)應(yīng)的響應(yīng)。該系統(tǒng)基于Linux系統(tǒng)的多線(xiàn)程編程技術(shù),引入生產(chǎn)者/消費(fèi)者異步模型,實(shí)現(xiàn)程序的并發(fā)控制,滿(mǎn)足綜合監(jiān)控系統(tǒng)多任務(wù)的操作模式。
【專(zhuān)利說(shuō)明】綜合監(jiān)控培訓(xùn)系統(tǒng)及其實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)軟件【技術(shù)領(lǐng)域】中的軌道交通綜合監(jiān)控培訓(xùn)領(lǐng)域,具體地講,涉及軌道交通綜合監(jiān)控培訓(xùn)系統(tǒng)及其實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]隨著近年來(lái)城市軌道綜合監(jiān)控行業(yè)的快速發(fā)展,無(wú)論是建設(shè)單位還是運(yùn)營(yíng)單位都亟需一個(gè)綜合監(jiān)控的培訓(xùn)仿真系統(tǒng),用于設(shè)備的測(cè)試與檢測(cè)、員工的技術(shù)培訓(xùn)和新技術(shù)的應(yīng)用演示。
[0003]傳統(tǒng)的培訓(xùn)仿真系統(tǒng)受制于成本,場(chǎng)地,安全性和技術(shù)條件,往往不能實(shí)現(xiàn)綜合監(jiān)控系統(tǒng)全專(zhuān)業(yè)全功能的真實(shí)模擬。采用計(jì)算機(jī)軟件仿真技術(shù)的新型綜合監(jiān)控培訓(xùn)系統(tǒng)建立在對(duì)真實(shí)地鐵系統(tǒng)運(yùn)行情況的調(diào)研基礎(chǔ)之上,使用和真實(shí)運(yùn)行地鐵線(xiàn)路一致的模型數(shù)據(jù)庫(kù),可以逼真的模擬各專(zhuān)業(yè)設(shè)備現(xiàn)場(chǎng)實(shí)際運(yùn)行情況,同時(shí)對(duì)于培訓(xùn)終端下發(fā)的單控,程控,模式,場(chǎng)景或者組控控制等各種指令可以及時(shí)準(zhǔn)確的響應(yīng),以達(dá)到真實(shí),逼真,高效的培訓(xùn)效果。
[0004]現(xiàn)有的培訓(xùn)仿真系統(tǒng)多采用單任務(wù)的實(shí)現(xiàn)方式,這種實(shí)現(xiàn)方式在響應(yīng)一個(gè)終端操作的時(shí)候,會(huì)阻塞對(duì)終端另外操作的響應(yīng),造成終端指令的響應(yīng)遲緩,不能很好的滿(mǎn)足用戶(hù)的需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是克服現(xiàn)有技術(shù)的缺陷,提供一種多任務(wù)操作模式的綜合監(jiān)控培訓(xùn)系統(tǒng),高效的完成終端設(shè)定的各種控制操作的反饋仿真。
[0006]為達(dá)到上述目的,本發(fā)明采取的技術(shù)方案是:
一種綜合監(jiān)控培訓(xùn)系統(tǒng),所述綜合監(jiān)控培訓(xùn)系統(tǒng)包括培訓(xùn)仿真終端,所述綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊包括數(shù)據(jù)依次循環(huán)流動(dòng)的通用數(shù)據(jù)交互模塊、生產(chǎn)者線(xiàn)程池、循環(huán)隊(duì)列、消費(fèi)者主線(xiàn)程,所述通用數(shù)據(jù)交互模塊接收所述培訓(xùn)仿真終端的指令,所述生產(chǎn)者線(xiàn)程池包括兩個(gè)以上的生產(chǎn)者線(xiàn)程,所述生產(chǎn)者線(xiàn)程池將所述數(shù)據(jù)交互模塊中的數(shù)據(jù)進(jìn)行指定邏輯的生產(chǎn)加工,獲得對(duì)應(yīng)的系統(tǒng)數(shù)據(jù)后存儲(chǔ)到所述循環(huán)隊(duì)列中,所述消費(fèi)者主線(xiàn)程讀取所述循環(huán)隊(duì)列中等待處理的數(shù)據(jù)并處理做出對(duì)應(yīng)的響應(yīng)。
[0007]優(yōu)選的,所述通用數(shù)據(jù)交互模塊包括DO指令池、AO指令池、DI指令池、Al指令池中的至少兩個(gè),所述生產(chǎn)者線(xiàn)程池包括與所述通用數(shù)據(jù)交互模塊中的指令池對(duì)應(yīng)的DO生產(chǎn)者線(xiàn)程、AO生產(chǎn)者線(xiàn)程、DI生產(chǎn)者線(xiàn)程、Al生產(chǎn)者線(xiàn)程中的至少兩個(gè),所述每個(gè)生產(chǎn)者線(xiàn)程掃描所述通用數(shù)據(jù)交互模塊中劃分到自己任務(wù)下的相應(yīng)指令池中的數(shù)據(jù)并進(jìn)行加工。
[0008]優(yōu)選的,所述循環(huán)隊(duì)列為動(dòng)態(tài)循環(huán)隊(duì)列,所述循環(huán)隊(duì)列使用動(dòng)態(tài)頭指針和動(dòng)態(tài)尾指針標(biāo)注隊(duì)列狀態(tài),供隊(duì)列使用者判斷隊(duì)列的狀態(tài)。
[0009]優(yōu)選的,所述消費(fèi)者主線(xiàn)程包括兩個(gè)以上的消費(fèi)者子線(xiàn)程,所述消費(fèi)者主線(xiàn)程周期性的讀取所述循環(huán)隊(duì)列中的數(shù)據(jù),獲取到要處理的數(shù)據(jù)后,啟動(dòng)其中一個(gè)消費(fèi)者子線(xiàn)程處理數(shù)據(jù),而消費(fèi)者主線(xiàn)程繼續(xù)周期性的讀取所述循環(huán)隊(duì)列中的數(shù)據(jù)。
[0010]優(yōu)選的,所述消費(fèi)者子線(xiàn)程處理數(shù)據(jù)時(shí),將數(shù)據(jù)放置到一個(gè)面向切面的流水線(xiàn)上處理,以層層響應(yīng)數(shù)據(jù)中包括的指令。
[0011]優(yōu)選的,所述流水線(xiàn)依次包括組控處理流程、場(chǎng)景處理流程、模式處理流程、程控處理流程、單控處理流程。
[0012]優(yōu)選的,所述綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊還包括系統(tǒng)控制線(xiàn)程,所述系統(tǒng)控制線(xiàn)程接收所述通用數(shù)據(jù)交互模塊中的數(shù)據(jù),并將該數(shù)據(jù)翻譯成可以解讀的控制信息發(fā)送到所述生產(chǎn)者線(xiàn)程池、消費(fèi)者主線(xiàn)程、通用數(shù)據(jù)交互模塊。
[0013]優(yōu)選的,所述通用數(shù)據(jù)交互模塊中開(kāi)辟有一塊單獨(dú)的控制池區(qū)域用來(lái)存儲(chǔ)所述系統(tǒng)控制線(xiàn)程對(duì)應(yīng)的控制指令。
[0014]優(yōu)選的,所述控制指令來(lái)源于所述培訓(xùn)仿真終端的手動(dòng)下發(fā)。
[0015]本發(fā)明的另一目的是提供一種上述綜合監(jiān)控培訓(xùn)系統(tǒng)的實(shí)現(xiàn)方法,以高效的完成終端設(shè)定的各種控制操作的反饋仿真。
[0016]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是:
一種上述綜合監(jiān)控培訓(xùn)系統(tǒng)的實(shí)現(xiàn)方法,該實(shí)現(xiàn)方法包括如下步驟:
步驟一:所述通用數(shù)據(jù)交互模塊初始化;
步驟二:所述通用數(shù)據(jù)交互模塊動(dòng)態(tài)獲得所述培訓(xùn)仿真終端的指令并存儲(chǔ);
步驟三:所述生產(chǎn)者線(xiàn)程池周期性的掃描所述通用數(shù)據(jù)交互模塊中對(duì)應(yīng)區(qū)域,獲取指令數(shù)據(jù)并存儲(chǔ)到所述循環(huán)隊(duì)列中,所述消費(fèi)者主線(xiàn)程周期性的獲取所述循環(huán)隊(duì)列中的數(shù)據(jù)并做出對(duì)應(yīng)的響應(yīng)。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明的綜合監(jiān)控培訓(xùn)系統(tǒng)包括兩個(gè)以上的生產(chǎn)者線(xiàn)程,每個(gè)生產(chǎn)者線(xiàn)程被設(shè)計(jì)為掃描劃分到自己任務(wù)下的通用數(shù)據(jù)交互模塊,根據(jù)通用數(shù)據(jù)交互模塊中的數(shù)據(jù),進(jìn)行指定邏輯的生產(chǎn)加工;而消費(fèi)者主線(xiàn)程用來(lái)周期性的處理生產(chǎn)者線(xiàn)程合成好的數(shù)據(jù)并做出對(duì)應(yīng)的相應(yīng)。模型的兩端各司其職,互不干擾,可以提供一種多任務(wù)操作方式的綜合監(jiān)控培訓(xùn)系統(tǒng)。
[0018]本發(fā)明的綜合監(jiān)控培訓(xùn)系統(tǒng)基于Linux系統(tǒng)的多線(xiàn)程編程技術(shù),引入生產(chǎn)者/消費(fèi)者異步模型,實(shí)現(xiàn)程序的并發(fā)控制,滿(mǎn)足綜合監(jiān)控系統(tǒng)多任務(wù)的操作模式。多線(xiàn)程技術(shù)和多個(gè)進(jìn)程相比,是一種非?!肮?jié)儉”的多任務(wù)操作實(shí)現(xiàn)方式,同時(shí)多線(xiàn)程程序作為一種多任務(wù)、并發(fā)的工作方式,具有應(yīng)用程序響應(yīng)迅速、充分利用多CPU系統(tǒng)、改善程序結(jié)構(gòu)等多種優(yōu)點(diǎn)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0019]下面結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例作詳細(xì)說(shuō)明。其中:
圖1是本發(fā)明的可用于軌道交通中的綜合監(jiān)控培訓(xùn)系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖。
[0020]圖2是圖1所示的綜合監(jiān)控培訓(xùn)系統(tǒng)的循環(huán)隊(duì)列的工作原理圖。
[0021]圖3是圖1所示的綜合監(jiān)控培訓(xùn)系統(tǒng)的消費(fèi)者子線(xiàn)程處理流程圖。
【具體實(shí)施方式】
[0022]請(qǐng)參見(jiàn)圖1,本發(fā)明的綜合監(jiān)控培訓(xùn)系統(tǒng)100,包括培訓(xùn)仿真終端10、數(shù)據(jù)依次循環(huán)流動(dòng)的通用數(shù)據(jù)交互模塊20、生產(chǎn)者線(xiàn)程池30、循環(huán)隊(duì)列40、消費(fèi)者主線(xiàn)程50,通用數(shù)據(jù)交互模塊20接收培訓(xùn)仿真終端10的指令,生產(chǎn)者線(xiàn)程池30包括兩個(gè)以上的生產(chǎn)者線(xiàn)程,生產(chǎn)者線(xiàn)程池30將數(shù)據(jù)交互模塊中的數(shù)據(jù)進(jìn)行指定邏輯的生產(chǎn)加工,獲得對(duì)應(yīng)的系統(tǒng)數(shù)據(jù)后存儲(chǔ)到循環(huán)隊(duì)列40中,消費(fèi)者主線(xiàn)程50讀取循環(huán)隊(duì)列40中等待處理的數(shù)據(jù)并處理做出對(duì)應(yīng)的響應(yīng)。
[0023]本實(shí)施例中,教師或者學(xué)員通過(guò)培訓(xùn)仿真終端10手動(dòng)下發(fā)一個(gè)或多個(gè)操作指令可以被解釋成各種內(nèi)容,包括但不限于以下幾種:
a)對(duì)單個(gè)設(shè)備的單點(diǎn)控制,如一個(gè)單純的D0/A0;
b)對(duì)設(shè)定好的的程序控制的啟動(dòng),如SCADA(電力監(jiān)控系統(tǒng))中的程控卡片;
c)對(duì)一組控制操作集合的總控制點(diǎn),如BAS(環(huán)控系統(tǒng))中的一個(gè)模式控制;
d)對(duì)一種用戶(hù)自定義的場(chǎng)景模式的控制點(diǎn),如綜合監(jiān)控系統(tǒng)高級(jí)應(yīng)用中的聯(lián)動(dòng)控
制;
e)以上2個(gè)或者多個(gè)控制操作的集合,即一個(gè)操作信號(hào)可能包含以上多種意義。
[0024]本實(shí)施例中,通用數(shù)據(jù)交互模塊20包括DO指令池21、A0指令池22、DI指令池23、Al指令池24在內(nèi)的四個(gè)指令池。
[0025]生產(chǎn)者線(xiàn)程池30包括與通用數(shù)據(jù)交互模塊20中的指令池對(duì)應(yīng)的DO生產(chǎn)者線(xiàn)程31、A0生產(chǎn)者線(xiàn)程32、DI生產(chǎn)者線(xiàn)程33、AI生產(chǎn)者線(xiàn)程34在內(nèi)的四個(gè)生產(chǎn)者線(xiàn)程,每個(gè)生產(chǎn)者線(xiàn)程掃描通用數(shù)據(jù)交互模塊20中劃分到自己任務(wù)下的相應(yīng)指令池中的數(shù)據(jù)并進(jìn)行加工。
[0026]本領(lǐng)域技術(shù)人員可以想到,通用數(shù)據(jù)交互模塊20可以包括其它指令池或者只包括兩個(gè)以上的上述指令池;生產(chǎn)者線(xiàn)程池30包亦可以包括其它生產(chǎn)者線(xiàn)程或者只包括兩上以上上述生產(chǎn)者線(xiàn)程,不再一一贅述,凡采用與本發(fā)明技術(shù)構(gòu)思相同或等同的技術(shù)方案,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
[0027]循環(huán)隊(duì)列40為動(dòng)態(tài)循環(huán)隊(duì)列40,循環(huán)隊(duì)列40使用動(dòng)態(tài)頭指針和動(dòng)態(tài)尾指針標(biāo)注隊(duì)列狀態(tài),供隊(duì)列使用者判斷隊(duì)列的狀態(tài)。
[0028]如圖2所示,循環(huán)隊(duì)列40工作原理如下:系統(tǒng)在啟動(dòng)時(shí),會(huì)在內(nèi)存中開(kāi)辟一段大小為Maxsize (設(shè)計(jì)容量)*Persize (單位存儲(chǔ)空間大小)的存儲(chǔ)空間,頭指針Front和尾指針Rear指針都初始化在O位置。
[0029]插入數(shù)據(jù)從Rear指針位置開(kāi)始進(jìn)行,假設(shè)新插入的數(shù)據(jù)變量為e,只需要將Rear的位置內(nèi)寫(xiě)入e,然后將Rear指針的位置往前加I即可,插入操作可以表示為class_queue [Rear] =e; Rear = Rear+1。讀取數(shù)據(jù)則從相反的方向進(jìn)行,即在Front位置開(kāi)始,將Front位置內(nèi)的數(shù)據(jù)賦值給e,然后將Front指針的位置往前加1,讀取的操作可以表示為e=class_queue[Front];Front=Front+l。
[0030]為了保持?jǐn)?shù)據(jù)的安全性,在進(jìn)行插入和讀取操作時(shí),必須進(jìn)行一些判斷操作。在插入操作時(shí),需要判斷隊(duì)列是否已滿(mǎn),根據(jù)圖2,即判斷Rear+Ι的值是否和Front相等,相等證明隊(duì)列已滿(mǎn),此時(shí)插入操作需要等待;同樣在讀取操作時(shí),需要判斷隊(duì)列是否已空,根據(jù)圖2,即判斷Front的值和Rear的值是否相等,相等則隊(duì)列已空,同樣讀取操作需要等待。
[0031]消費(fèi)者主線(xiàn)程50包括三個(gè)消費(fèi)者子線(xiàn)程,分別是消費(fèi)者子線(xiàn)程51、52、53,當(dāng)然,本領(lǐng)域技術(shù)人員可以想到,僅設(shè)置兩個(gè)消費(fèi)者子線(xiàn)程或者設(shè)置三個(gè)以上的消費(fèi)者子線(xiàn)程亦可。通用數(shù)據(jù)交互模塊20還包括與接收消費(fèi)者主線(xiàn)程50數(shù)據(jù)的數(shù)據(jù)池26。
[0032]消費(fèi)者主線(xiàn)程50周期性的讀取循環(huán)隊(duì)列40中的數(shù)據(jù),獲取到要處理的數(shù)據(jù)后,啟動(dòng)其中一個(gè)消費(fèi)者子線(xiàn)程,例如消費(fèi)者子線(xiàn)程51處理數(shù)據(jù),而消費(fèi)者主線(xiàn)程50繼續(xù)周期性的讀取循環(huán)隊(duì)列40中的數(shù)據(jù)。
[0033]本發(fā)明的,綜合監(jiān)控培訓(xùn)系統(tǒng)100還包括系統(tǒng)控制線(xiàn)程60,系統(tǒng)控制線(xiàn)程60接收通用數(shù)據(jù)交互模塊20中的數(shù)據(jù),并將該數(shù)據(jù)翻譯成可以解讀的控制信息發(fā)送到生產(chǎn)者線(xiàn)程池30、消費(fèi)者主線(xiàn)程50。
[0034]通用數(shù)據(jù)交互模塊20中開(kāi)辟一塊單獨(dú)的區(qū)域,即控制池25,用來(lái)存儲(chǔ)系統(tǒng)控制線(xiàn)程60的控制指令。系統(tǒng)運(yùn)行的控制指令由教師或者學(xué)員在對(duì)應(yīng)的界面手動(dòng)下發(fā)。
[0035]系統(tǒng)控制線(xiàn)程60周期性的掃描通用數(shù)據(jù)交互模塊20中的控制池25,以獲得最新的操作指令,在獲取指令成功后,系統(tǒng)控制線(xiàn)程60將該指令翻譯成生產(chǎn)者線(xiàn)程池30、消費(fèi)者主線(xiàn)程50、通用數(shù)據(jù)交互模塊20可以解讀的控制信息發(fā)送給生產(chǎn)者線(xiàn)程池30、消費(fèi)者主線(xiàn)程50、通用數(shù)據(jù)交互模塊20。各受控線(xiàn)程在線(xiàn)程運(yùn)行的必經(jīng)之路上會(huì)截獲到控制信息,并做出各種響應(yīng)動(dòng)作。通過(guò)該方法,不僅可以對(duì)培訓(xùn)仿真終端10的指令做出響應(yīng),還可以實(shí)現(xiàn)系統(tǒng)的在線(xiàn)升級(jí)或在線(xiàn)更新。
[0036]如前所述,培訓(xùn)仿真終端10的的操作指令多種多樣,如何區(qū)分以上各種操作指令,并分別給出對(duì)應(yīng)的響應(yīng)呢?本方法設(shè)計(jì)的消費(fèi)者子線(xiàn)程,給出了一種面向切面的流水線(xiàn)的數(shù)據(jù)處理方法,將對(duì)于上文敘述中出現(xiàn)的各種操作解釋的響應(yīng)按照優(yōu)先級(jí)放置到一條處理的流水線(xiàn)上,以層層響應(yīng)數(shù)據(jù)中包括的指令,指令可能是單控,組控,模式,時(shí)間表,場(chǎng)景或者以上幾種模式的組合,從而可以確保對(duì)終端操作的準(zhǔn)確無(wú)誤和全面的解釋。
[0037]具體的,請(qǐng)參見(jiàn)圖3,消費(fèi)者子線(xiàn)程在開(kāi)始的步驟SlOl后,進(jìn)行嘗試互斥鎖上鎖的步驟S102,并在步驟S103中判斷互斥上鎖是否成功,如果成功,則在步驟S104中判斷是否收到系統(tǒng)控制線(xiàn)程60的控制指令,如果沒(méi)有,則消費(fèi)者主線(xiàn)程50子線(xiàn)程依次按照組控處理流程S105、場(chǎng)景處理流程S106、模式處理流程S107、程控處理流程S108、單控處理流程S109這種面向切面的流水線(xiàn)方式處理指令,在這些步驟完成后,進(jìn)行釋放互斥鎖的步驟S110,完成對(duì)互斥鎖的釋放后,消費(fèi)者子線(xiàn)程進(jìn)入休眠狀態(tài)S111,等待下一次的開(kāi)始命令S101。其中,在步驟S104中,如果判斷收到系統(tǒng)控制線(xiàn)程60的控制指令,則進(jìn)入執(zhí)行控制操作的步驟 S112。
[0038]下面描述本發(fā)明的綜合監(jiān)控培訓(xùn)系統(tǒng)100的實(shí)現(xiàn)方法,該實(shí)現(xiàn)方法包括如下步驟:
步驟一、通用數(shù)據(jù)交互模塊20初始化。
[0039]通用數(shù)據(jù)交互模塊20中的數(shù)據(jù)在系統(tǒng)啟動(dòng)時(shí),被劃分指令池/數(shù)據(jù)池/控制池3個(gè)部分,通用數(shù)據(jù)交互模塊20中的數(shù)據(jù)可以由上次系統(tǒng)退出時(shí)保留的斷面初始化,也可以全部初始化為系統(tǒng)初始狀態(tài)。
[0040]步驟二、通用數(shù)據(jù)交互模塊20動(dòng)態(tài)獲得培訓(xùn)仿真終端10的指令并存儲(chǔ)。
[0041]通用數(shù)據(jù)交互模塊20數(shù)據(jù)讀寫(xiě)模塊獲得來(lái)培訓(xùn)仿真終端10的指令,并存儲(chǔ)成對(duì)應(yīng)的指令數(shù)據(jù)。
[0042]步驟三、生產(chǎn)者線(xiàn)程池30周期性的掃描通用數(shù)據(jù)交互模塊20中對(duì)應(yīng)區(qū)域,獲取指令數(shù)據(jù)并存儲(chǔ)到循環(huán)隊(duì)列40中,消費(fèi)者主線(xiàn)程50周期性的獲取循環(huán)隊(duì)列40中的數(shù)據(jù)并做出對(duì)應(yīng)的響應(yīng)。
[0043]具體的,生產(chǎn)者線(xiàn)程池30中的D0/DI/A0/AI線(xiàn)程周期性的掃描通用數(shù)據(jù)交互模塊20中的對(duì)應(yīng)區(qū)域,根據(jù)變位機(jī)制獲得通用數(shù)據(jù)交互模塊20中的指令數(shù)據(jù),通過(guò)查詢(xún)內(nèi)存數(shù)據(jù)庫(kù),獲得對(duì)應(yīng)的系統(tǒng)數(shù)據(jù)后,存儲(chǔ)到循環(huán)隊(duì)列40中。
[0044]消費(fèi)者主線(xiàn)程50在生產(chǎn)者線(xiàn)程工作的同時(shí)也處于工作狀態(tài)。消費(fèi)者主線(xiàn)程50周期性的讀取循環(huán)隊(duì)列40中等待處理的系統(tǒng)數(shù)據(jù),獲得一個(gè)單位系統(tǒng)數(shù)據(jù)后,消費(fèi)者主線(xiàn)程50即啟動(dòng)I個(gè)子線(xiàn)程處理該單位數(shù)據(jù),而其余子線(xiàn)程則繼續(xù)周期性的讀取循環(huán)隊(duì)列40中的數(shù)據(jù),直到循環(huán)隊(duì)列40中的數(shù)據(jù)為空。
[0045]子線(xiàn)程處理單元數(shù)據(jù)的處理過(guò)程可如前所述的圖3中的步驟所示。該處理過(guò)程為一個(gè)面向切面的流水線(xiàn)處理過(guò)程。通過(guò)對(duì)一個(gè)單位數(shù)據(jù)的多層分析處理,逐步實(shí)現(xiàn)對(duì)該系統(tǒng)數(shù)據(jù)身上可能攜帶的組控,場(chǎng)景,模式,程控,單控操作信息的處理和操作。當(dāng)某一單元數(shù)據(jù)處理完成后,對(duì)應(yīng)的子線(xiàn)程即完成使命而退出。
[0046]本發(fā)明的綜合監(jiān)控培訓(xùn)系統(tǒng)100還包括系統(tǒng)的在線(xiàn)控制升級(jí)或更新的步驟,該步驟可以隨時(shí)進(jìn)行,具體如下:
在某些工況下,綜合監(jiān)控的系統(tǒng)數(shù)據(jù)庫(kù)會(huì)發(fā)生增刪改等各種變化,培訓(xùn)系統(tǒng)需要根據(jù)教師的控制指令進(jìn)行在線(xiàn)運(yùn)行狀態(tài)的更改。系統(tǒng)控制線(xiàn)程60通過(guò)周期性的掃描控制池獲得控制指令,并將控制指令發(fā)送給各個(gè)受控線(xiàn)程,各受控線(xiàn)程接受該指令后啟動(dòng)對(duì)應(yīng)的系統(tǒng)動(dòng)作,如重啟,更新或者退出。
[0047]本領(lǐng)域技術(shù)人員可以想到的是,本發(fā)明還可以有其它的實(shí)現(xiàn)方式,但只要其采用的技術(shù)精髓與本發(fā)明相同或相近似,或者基于本發(fā)明做出的變化和替換都在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述綜合監(jiān)控培訓(xùn)系統(tǒng)包括培訓(xùn)仿真終端,所述綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊包括數(shù)據(jù)依次循環(huán)流動(dòng)的通用數(shù)據(jù)交互模塊、生產(chǎn)者線(xiàn)程池、循環(huán)隊(duì)列、消費(fèi)者主線(xiàn)程,所述通用數(shù)據(jù)交互模塊接收所述培訓(xùn)仿真終端的指令,所述生產(chǎn)者線(xiàn)程池包括兩個(gè)以上的生產(chǎn)者線(xiàn)程,所述生產(chǎn)者線(xiàn)程池將所述數(shù)據(jù)交互模塊中的數(shù)據(jù)進(jìn)行指定邏輯的生產(chǎn)加工,獲得對(duì)應(yīng)的系統(tǒng)數(shù)據(jù)后存儲(chǔ)到所述循環(huán)隊(duì)列中,所述消費(fèi)者主線(xiàn)程讀取所述循環(huán)隊(duì)列中等待處理的數(shù)據(jù)并做出對(duì)應(yīng)的響應(yīng);該系統(tǒng)基于Linux系統(tǒng)的多線(xiàn)程編程技術(shù),引入生產(chǎn)者/消費(fèi)者異步模型,實(shí)現(xiàn)程序的并發(fā)控制,滿(mǎn)足綜合監(jiān)控系統(tǒng)多任務(wù)的操作模式。
2.根據(jù)權(quán)利要求1所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述通用數(shù)據(jù)交互模塊包括DO指令池、AO指令池、DI指令池、Al指令池中的至少兩個(gè),所述生產(chǎn)者線(xiàn)程池包括與所述通用數(shù)據(jù)交互模塊中的指令池對(duì)應(yīng)的DO生產(chǎn)者線(xiàn)程、AO生產(chǎn)者線(xiàn)程、DI生產(chǎn)者線(xiàn)程、Al生產(chǎn)者線(xiàn)程中的至少兩個(gè),所述每個(gè)生產(chǎn)者線(xiàn)程掃描所述通用數(shù)據(jù)交互模塊中劃分到自己任務(wù)下的相應(yīng)指令池中的數(shù)據(jù)并進(jìn)行加工。
3.根據(jù)權(quán)利要求1所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述循環(huán)隊(duì)列為動(dòng)態(tài)循環(huán)隊(duì)列,所述循環(huán)隊(duì)列使用動(dòng)態(tài)頭指針和動(dòng)態(tài)尾指針標(biāo)注隊(duì)列狀態(tài),供隊(duì)列使用者判斷隊(duì)列的狀態(tài)。
4.根據(jù)權(quán)利要求1所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述消費(fèi)者主線(xiàn)程包括兩個(gè)以上的消費(fèi)者子線(xiàn)程,所述消費(fèi)者主線(xiàn)程周期性的讀取所述循環(huán)隊(duì)列中的數(shù)據(jù),獲取到要處理的數(shù)據(jù)后,啟動(dòng)其中一個(gè)消費(fèi)者子線(xiàn)程處理數(shù)據(jù),而消費(fèi)者主線(xiàn)程繼續(xù)周期性的讀取所述循環(huán)隊(duì)列中的數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述消費(fèi)者子線(xiàn)程處理數(shù)據(jù)時(shí),將數(shù)據(jù)放置到一個(gè)面向切面的流水線(xiàn)上處理,以層層響應(yīng)數(shù)據(jù)中包括的指令。
6.根據(jù)權(quán)利要求5所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述流水線(xiàn)依次包括組控處理流程、場(chǎng)景處理流程、模式處理流程、程控處理流程、單控處理流程。
7.根據(jù)權(quán)利要求1所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊還包括系統(tǒng)控制線(xiàn)程,所述系統(tǒng)控制線(xiàn)程接收所述通用數(shù)據(jù)交互模塊中的數(shù)據(jù),并將該數(shù)據(jù)翻譯成可以解讀的控制信息發(fā)送到所述生產(chǎn)者線(xiàn)程池和消費(fèi)者主線(xiàn)程。
8.根據(jù)權(quán)利要求7所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述通用數(shù)據(jù)交互模塊中開(kāi)辟有一塊單獨(dú)的控制池區(qū)域用來(lái)存儲(chǔ)所述系統(tǒng)控制線(xiàn)程對(duì)應(yīng)的控制指令。
9.根據(jù)權(quán)利要求8所述的綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊,其特征在于:所述控制指令來(lái)源于所述培訓(xùn)仿真終端的手動(dòng)下發(fā)。
10.根據(jù)權(quán)利要求1綜合監(jiān)控培訓(xùn)系統(tǒng)反饋仿真模塊的實(shí)現(xiàn)方法,其特征在于:所述實(shí)現(xiàn)方法包括如下步驟: 步驟一:所述通用數(shù)據(jù)交互模塊初始化; 步驟二:所述通用數(shù)據(jù)交互模塊動(dòng)態(tài)獲得所述培訓(xùn)仿真終端的指令并存儲(chǔ); 步驟三:所述生產(chǎn)者線(xiàn)程池周期性的掃描所述通用數(shù)據(jù)交互模塊中對(duì)應(yīng)區(qū)域,獲取指令數(shù)據(jù)并存儲(chǔ)到所述循環(huán)隊(duì)列中,所述消費(fèi)者主線(xiàn)程周期性的獲取所述循環(huán)隊(duì)列中的數(shù)據(jù)并做出對(duì)應(yīng)的響應(yīng)。
【文檔編號(hào)】G06F9/38GK103823672SQ201410008253
【公開(kāi)日】2014年5月28日 申請(qǐng)日期:2014年1月8日 優(yōu)先權(quán)日:2014年1月8日
【發(fā)明者】劉濤, 劉曉軍, 張昆, 崔偉, 朱祁, 陳穎峰, 馮仕昌 申請(qǐng)人:國(guó)電南瑞科技股份有限公司