本發(fā)明屬于軟件算法領(lǐng)域,用于執(zhí)行軌道交通安全產(chǎn)品的故障管理功能。例如,軌道交通安全計(jì)算機(jī)平臺(tái),列車自動(dòng)防護(hù)等。
背景技術(shù):在工業(yè)控制系統(tǒng)和安全信號(hào)系統(tǒng)中(應(yīng)用于航空電子、鐵路信號(hào)、核電等行業(yè)),在故障狀態(tài)下采取措施盡量避免或者減少故障對(duì)人身和財(cái)產(chǎn)的損害,故障管理任務(wù)的正確執(zhí)行對(duì)于保證系統(tǒng)的安全可靠有著極其重要的作用。當(dāng)故障發(fā)生時(shí),故障管理功能如果不能及時(shí)響應(yīng),系統(tǒng)發(fā)生安全事故的可能性就大為增加。因此,必須保證故障管理功能在各種情況下都能正常工作?,F(xiàn)有的故障管理技術(shù)側(cè)重點(diǎn)有所不同,下面列舉3個(gè)現(xiàn)有的技術(shù)。1.IBM,USpatentNo.6,654,910,“Intelligentfaultmanagement”,闡述了用于汽車電子的智能故障管理方法,能保證系統(tǒng)的最短故障恢復(fù)時(shí)間和高可用性??刂葡到y(tǒng)是由多個(gè)邏輯控制單元組成,每個(gè)邏輯控制單元都有相應(yīng)的故障監(jiān)測(cè)方法。當(dāng)檢測(cè)到故障時(shí),控制單元會(huì)降級(jí)系統(tǒng)性能,并通知其它控制單元。2.NEC,USpatent7,003,696,“Faultmanagementsystemforswitchingequipment”,描述了一個(gè)交換設(shè)備的故障管理系統(tǒng)。當(dāng)一個(gè)交換設(shè)備的處理器或者電路出現(xiàn)可恢復(fù)的故障時(shí),相關(guān)的故障終端能夠被自動(dòng)檢測(cè)到。當(dāng)一個(gè)時(shí)鐘故障檢測(cè)裝置檢測(cè)到時(shí)鐘信號(hào)故障時(shí),它會(huì)報(bào)告給中央故障管理系統(tǒng)。中央故障管理系統(tǒng)發(fā)出處理器和外圍電路復(fù)位信號(hào),并報(bào)告給外部顯示終端。3.羅伯特.博世有限公司,CN200780036171.8,“用于故障處理的方法和裝置”。描述了在具有多個(gè)組件的系統(tǒng)中進(jìn)行故障管理的方法,其核心是能夠借助 于狀態(tài)值來(lái)表明所述組件的故障狀態(tài),而且組件之間的狀態(tài)值有一定的依賴關(guān)系。以上這3種方法也都是采取組合式的故障管理方法,但區(qū)別于本專利中的主動(dòng)查詢和被動(dòng)響應(yīng)(一正一反)相結(jié)合的運(yùn)行方式,而且每個(gè)故障管理模塊的具體處理方式也有較大差異。
技術(shù)實(shí)現(xiàn)要素::本發(fā)明要解決的技術(shù)問題是提供一種異構(gòu)的故障管理系統(tǒng),其可以可靠的進(jìn)行故障管理、預(yù)警。為了解決以上技術(shù)問題,本發(fā)明提供了一種異構(gòu)的故障管理系統(tǒng),系統(tǒng)故障管理模塊是由兩個(gè)異構(gòu)的故障管理模塊組成,兩個(gè)故障管理模塊分別采取被動(dòng)接收和主動(dòng)查詢的方式運(yùn)行,當(dāng)任何一個(gè)故障管理模塊啟動(dòng)時(shí),系統(tǒng)就進(jìn)入故障管理模式。本發(fā)明的有益效果在于:故障管理模塊一被動(dòng)收集故障報(bào)警信息,而故障管理模塊二主動(dòng)確認(rèn)任務(wù)的正常工作狀態(tài)。這兩種故障管理模塊通過兩個(gè)不同的渠道來(lái)監(jiān)控任務(wù)執(zhí)行,有效地保障了系統(tǒng)故障管理的執(zhí)行。故障管理模塊二對(duì)任務(wù)的監(jiān)控可根據(jù)任務(wù)的特點(diǎn)采用多種方式,靈活性好。故障管理模塊一反應(yīng)迅速,而故障管理模塊二判定故障更加嚴(yán)格。兩種故障管理模塊的組合使用可使系統(tǒng)能迅速對(duì)故障做出響應(yīng),并在任何一個(gè)故障管理模塊出現(xiàn)問題時(shí),也不會(huì)造成系統(tǒng)故障管理功能失效。故障管理模塊一采取被動(dòng)接收的方式運(yùn)行,實(shí)時(shí)監(jiān)控任務(wù)發(fā)送來(lái)的故障報(bào)警信息。當(dāng)未收到故障報(bào)警信息時(shí),認(rèn)為系統(tǒng)運(yùn)行正常。如果收到故障報(bào)警信息,則立即啟動(dòng)故障反應(yīng)機(jī)制。故障管理模塊一采用實(shí)時(shí)監(jiān)控并接收錯(cuò)誤信息匯報(bào)的方式,運(yùn)行起來(lái)后就 一直處于監(jiān)聽的狀態(tài);所有軟件任務(wù)中都有多個(gè)故障檢查點(diǎn),當(dāng)有故障出現(xiàn)時(shí),檢測(cè)程序確定故障類型和等級(jí),并觸發(fā)故障報(bào)警信號(hào)量,把故障信息寫入到指定的消息隊(duì)列;故障管理模塊一收到故障報(bào)警信號(hào)量后,立即啟動(dòng)并從故障消息隊(duì)列中取出故障報(bào)警信息,根據(jù)故障類型和等級(jí)作出警告、離線運(yùn)行或者停機(jī)等不同的處理。故障管理模塊二采取主動(dòng)查詢的方式運(yùn)行,周期運(yùn)行任務(wù)監(jiān)控,當(dāng)所監(jiān)控的任務(wù)每個(gè)周期都能主動(dòng)地報(bào)告各自的工作狀態(tài),認(rèn)為系統(tǒng)運(yùn)行正常,如果有任何任務(wù)沒有在特定的時(shí)間內(nèi)匯報(bào)工作狀態(tài),故障管理模塊二啟動(dòng)故障反應(yīng)機(jī)制。故障管理模塊二通過多個(gè)全局變量來(lái)檢查被監(jiān)控任務(wù)的正常工作狀態(tài);每個(gè)任務(wù)如果能夠正常工作,它們可以正確操作相應(yīng)的全局變量;故障管理模塊二通過全局變量的檢查來(lái)確定所監(jiān)控任務(wù)的工作狀態(tài);如果所有任務(wù)都能正確處理全局變量,則故障管理模塊二認(rèn)為系統(tǒng)工作正常,不觸發(fā)故障管理功能;如果此故障管理模塊二發(fā)現(xiàn)任何監(jiān)控的任務(wù)不能正確操作全局變量,就判斷某個(gè)任務(wù)出現(xiàn)故障,并啟動(dòng)故障管理模塊進(jìn)行處理。附圖說(shuō)明:圖1是系統(tǒng)故障管理功能的結(jié)構(gòu)圖。圖2是故障管理模塊一的工作流程圖。圖3是故障管理模塊二的工作流程圖。具體實(shí)施方式:本發(fā)明提供一種異構(gòu)的故障管理系統(tǒng),該算法能夠應(yīng)用于包括但并不局限于安全信號(hào)系統(tǒng)、工業(yè)控制系統(tǒng)等領(lǐng)域。具體過程如下:系統(tǒng)的故障管理功能依賴于兩種異構(gòu)的故障管理系統(tǒng)的協(xié)同工作。當(dāng)任意一種故障管理方法檢測(cè)到 故障時(shí),系統(tǒng)就進(jìn)入故障管理模式。系統(tǒng)的故障管理功能架構(gòu)參見圖1。假定兩種故障管理方法分別由故障管理模塊一和故障管理模塊二實(shí)現(xiàn)。如圖2所示,故障管理模塊一采用實(shí)時(shí)監(jiān)控并接收錯(cuò)誤信息匯報(bào)的方式,運(yùn)行起來(lái)后就一直處于監(jiān)聽的狀態(tài)。所有軟件任務(wù)中都有多個(gè)故障檢查點(diǎn),當(dāng)有故障出現(xiàn)時(shí),檢測(cè)程序確定故障類型和等級(jí),并觸發(fā)故障報(bào)警信號(hào)量,把故障信息寫入到指定的消息隊(duì)列。故障管理模塊一收到故障報(bào)警信號(hào)量后,立即啟動(dòng)并從故障消息隊(duì)列中取出故障報(bào)警信息,根據(jù)故障類型和等級(jí)作出警告、離線運(yùn)行或者停機(jī)等不同的處理。如圖3所示,故障管理模塊二通過多個(gè)全局變量來(lái)檢查被監(jiān)控任務(wù)的正常工作狀態(tài)。每個(gè)任務(wù)如果能夠正常工作,它們可以正確操作相應(yīng)的全局變量。故障管理模塊二通過全局變量的檢查來(lái)確定所監(jiān)控任務(wù)的工作狀態(tài)。如果所有任務(wù)都能正確處理全局變量,則故障管理模塊二認(rèn)為系統(tǒng)工作正常,不觸發(fā)故障管理功能。如果此故障管理模塊二發(fā)現(xiàn)任何監(jiān)控的任務(wù)不能正確操作全局變量,就判斷某個(gè)任務(wù)出現(xiàn)故障,并啟動(dòng)故障管理模塊進(jìn)行處理。當(dāng)兩種故障管理方法中的任何一個(gè)檢測(cè)到故障并進(jìn)入故障處理,整個(gè)系統(tǒng)就進(jìn)入故障模式,并迫使系統(tǒng)進(jìn)入安全狀態(tài)。故障管理模塊一的工作過程:1)首先要確定故障管理模塊一所監(jiān)控的任務(wù),并盡可能詳盡地考慮到每個(gè)任務(wù)會(huì)出現(xiàn)的各種故障,并對(duì)每個(gè)任務(wù)的故障進(jìn)行編號(hào)并分類。當(dāng)檢測(cè)程序檢測(cè)到故障發(fā)生時(shí),將故障信號(hào)量設(shè)置為“True”,并將故障編號(hào)、故障等級(jí)和處理方式等信息打包寫入故障消息隊(duì)列中。為了保證能準(zhǔn)確地將嚴(yán)重故障信息報(bào)送出來(lái),故障消息在寫入隊(duì)列的時(shí)候可以添加校驗(yàn)信息,例如CRC值。并且故障消息的內(nèi)容之間也會(huì)有特定的邏輯關(guān)系,例如相應(yīng)的故障等級(jí)會(huì)有特定的故 障處理方式。如果故障處理中發(fā)現(xiàn)故障信息的信息校驗(yàn)不正確或者邏輯不符,直接使設(shè)備進(jìn)入離線狀態(tài)或者由操作人員決定后續(xù)的處理。2)故障管理模塊一必須對(duì)所監(jiān)控任務(wù)的故障信息代碼劃分故障等級(jí),每種故障等級(jí)的處理措施也不相同。當(dāng)故障管理模塊一收到故障信息后,可以根據(jù)故障信息的代碼判斷出故障的發(fā)生地,故障等級(jí)和故障狀況。由于故障等級(jí)已經(jīng)預(yù)先設(shè)定,故障管理模塊一可以根據(jù)故障信息的代碼決定后續(xù)的措施。我們目前設(shè)計(jì)的故障處理通常可以分為報(bào)警、離線運(yùn)行和停機(jī)三種狀態(tài)。3)故障管理模塊一運(yùn)行后就一直處于監(jiān)聽狀態(tài)。當(dāng)檢測(cè)到故障信號(hào)量置位后,會(huì)立刻從故障消息隊(duì)列中獲取故障信息,并啟動(dòng)故障處理,使系統(tǒng)進(jìn)入故障管理模式。故障管理模塊二的工作過程:1)首先要確定故障管理模塊二所監(jiān)控的任務(wù)。這里所監(jiān)控的任務(wù)可以與故障管理模塊一有所不同,并制定每個(gè)任務(wù)正常工作時(shí)必須與故障管理模塊二所進(jìn)行的交互。例如,每個(gè)任務(wù)觸發(fā)故障管理模塊二的時(shí)間要求(一個(gè)周期或者多個(gè)周期)和交互形式(函數(shù)調(diào)用,全局變量的操作,信號(hào)量的置位,應(yīng)答式的交互等)。2)假定故障管理模塊二采用監(jiān)控全局變量的形式來(lái)檢查每個(gè)任務(wù)的狀態(tài)。在每個(gè)周期內(nèi),被監(jiān)控任務(wù)都要根據(jù)預(yù)先設(shè)定的算法去操作自己的全局變量。全局變量的初值可以由故障管理模塊二在每個(gè)周期隨機(jī)給出。當(dāng)所有監(jiān)控任務(wù)都能正確地操作自己的全局變量,故障管理模塊二就認(rèn)為監(jiān)控任務(wù)工作正常。如果任意一個(gè)任務(wù)在規(guī)定時(shí)間內(nèi)沒有或者錯(cuò)誤地操作了相應(yīng)的全局變量,故障管理模塊二就會(huì)觸發(fā)系統(tǒng)進(jìn)入故障處理狀態(tài)。不同的任務(wù)可以產(chǎn)生不同的故障類別和等級(jí)。3)故障管理模塊二的啟動(dòng)可以由定時(shí)中斷觸發(fā),周期運(yùn)行。任務(wù)的檢查間隔可以分為一個(gè)或者多個(gè)周期。此參數(shù)可以由故障管理模塊二從相應(yīng)的配置文件中讀取。4)如果所有的任務(wù)都能在規(guī)定的時(shí)間內(nèi)操作全局變量,并且通過故障管理模塊二的校驗(yàn),則故障管理模塊二認(rèn)為系統(tǒng)工作正常。如果某個(gè)任務(wù)未能如期完成與故障管理模塊二所規(guī)定的動(dòng)作,故障管理模塊二啟動(dòng),記錄相應(yīng)的故障信息,并使系統(tǒng)進(jìn)入故障處理模式。系統(tǒng)的故障處理可以分為報(bào)警、離線運(yùn)行和停機(jī)三種。5)故障管理模塊二也可采用直接應(yīng)答交互的檢查方式來(lái)判斷被監(jiān)控任務(wù)的工作狀態(tài)。故障管理模塊二可以通過信號(hào)量發(fā)送檢查請(qǐng)求,并將請(qǐng)求信息寫入到相應(yīng)的消息隊(duì)列中。被監(jiān)控任務(wù)如果能夠在規(guī)定的時(shí)間內(nèi)按照請(qǐng)求信息返回?cái)?shù)據(jù),并且通過故障管理??於尿?yàn)證,則不觸發(fā)故障狀態(tài)。否則將啟動(dòng)故障狀態(tài)。故障管理模塊二也可以檢查的一個(gè)總體的全局變量,而這個(gè)全局變量的最后結(jié)果應(yīng)該是所有被監(jiān)控任務(wù)的操作集合。也可以采用多個(gè)故障管理通道的組合,每個(gè)故障管理通道負(fù)責(zé)不同類型或者等級(jí)的故障處理。本發(fā)明故障管理模塊一被動(dòng)收集故障報(bào)警信息,而故障管理模塊二主動(dòng)確認(rèn)任務(wù)的正常工作狀態(tài)。這兩種故障管理模塊通過兩個(gè)不同的渠道來(lái)監(jiān)控任務(wù)執(zhí)行,有效地保障了系統(tǒng)故障管理的執(zhí)行。故障管理模塊二對(duì)任務(wù)的監(jiān)控可根據(jù)任務(wù)的特點(diǎn)采用多種方式,靈活性好。故障管理模塊一反應(yīng)迅速,而故障管理模塊二判定故障更加嚴(yán)格。兩種故障管理模塊的組合使用可使系統(tǒng)能迅速對(duì)故障做出響應(yīng),并在任何一個(gè)故障管理模塊出現(xiàn)問題時(shí),也不會(huì)造成系統(tǒng)故障管理功能失效。故障管理處理方式一中采用了信號(hào)量和消息隊(duì)列的故障接收和處理方式,故障處理方式二中采用了中斷啟動(dòng)和全局變量監(jiān)控任務(wù)輪詢的處理方式。從具體技術(shù)處理手段上講,這兩種故障處理方式都有自己的特點(diǎn),是自己發(fā)明的技術(shù)。并且兩種故障組合處理的增強(qiáng)方式在軌道交通領(lǐng)域應(yīng)該是有獨(dú)創(chuàng)性的。本發(fā)明并不限于上文討論的實(shí)施方式。以上對(duì)具體實(shí)施方式的描述旨在于為了描述和說(shuō)明本發(fā)明涉及的技術(shù)方案?;诒景l(fā)明啟示的顯而易見的變換或替代也應(yīng)當(dāng)被認(rèn)為落入本發(fā)明的保護(hù)范圍。以上的具體實(shí)施方式用來(lái)揭示本發(fā)明的最佳實(shí)施方法,以使得本領(lǐng)域的普通技術(shù)人員能夠應(yīng)用本發(fā)明的多種實(shí)施方式以及多種替代方式來(lái)達(dá)到本發(fā)明的目的。