專利名稱::一種提高分布式機(jī)電裝備的動(dòng)態(tài)安全性的方法
技術(shù)領(lǐng)域:
:本專利申請屬于機(jī)電裝備信息化領(lǐng)域,提出了一種用于分布式機(jī)電裝備中,可在系統(tǒng)運(yùn)行期間保護(hù)系統(tǒng)動(dòng)態(tài)安全的方法。
背景技術(shù):
:1問題陳述目前,各類大型分布式機(jī)電裝備在實(shí)際中應(yīng)用的越來越多,如港口的自動(dòng)化碼頭、物流中的自動(dòng)化倉庫、大型船只的控制系統(tǒng)、大型飛機(jī)、制造業(yè)流水線系統(tǒng)等,它們是裝備制造領(lǐng)域的制高點(diǎn),其共同特點(diǎn)是它們都由大量類型不同、數(shù)量眾多的自動(dòng)化設(shè)備構(gòu)成,彼此之間需要嚴(yán)密細(xì)致的配合方能保證整個(gè)系統(tǒng)安全順暢的運(yùn)行。研制此類分布式機(jī)電裝備,是對我國制造業(yè)水平的一個(gè)很大挑戰(zhàn),只有突破這個(gè)難點(diǎn),才能將我國的裝備業(yè)設(shè)計(jì)制造水平從個(gè)別孤立裝置提升到系統(tǒng)層次。但是在這樣一些系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)與驗(yàn)證中,目前仍高度依賴分析設(shè)計(jì)人員個(gè)人對系統(tǒng)的經(jīng)驗(yàn)性理解,缺乏嚴(yán)謹(jǐn)科學(xué)通用的形式化方法,也沒有通用的算法和模式。這導(dǎo)致設(shè)計(jì)出來的系統(tǒng)在運(yùn)行安全性上難以保證,只能將問題的發(fā)現(xiàn)和解決推遲到測試和實(shí)際運(yùn)行期間處理,嚴(yán)重影響了系統(tǒng)運(yùn)行的安全性和可靠性品質(zhì)。因此,在實(shí)際中,非常希望有這樣一種工作模式和方法,能夠聯(lián)系系統(tǒng)前期分析設(shè)計(jì)和后期開發(fā)測試,能夠直接將前期的結(jié)果轉(zhuǎn)化為后續(xù)階段的輸入,且從理論上保證這樣設(shè)計(jì)出來的系統(tǒng)是安全可靠的,而且在"翻譯"成為系統(tǒng)實(shí)現(xiàn)的時(shí)候不因具體技術(shù)開發(fā)引入額外的不可靠因素。本專利申請即是描述了這一工作流程中的一種關(guān)鍵算法。依據(jù)該算法及模型實(shí)現(xiàn)的系統(tǒng),可以從理論上保證其運(yùn)行可靠性(如果模型不出錯(cuò)的話)。與許多人的工作不同,本算法在系統(tǒng)日常運(yùn)行期動(dòng)態(tài)的執(zhí)行,而不是停留在紙面上的分析和靜態(tài)保證。2發(fā)展現(xiàn)狀傳統(tǒng)的可靠性建模和分析方法并不適合動(dòng)態(tài)安全執(zhí)行領(lǐng)域。動(dòng)態(tài)安全執(zhí)行的本質(zhì)是在靜態(tài)為主的設(shè)計(jì)階段去保證動(dòng)態(tài)執(zhí)行期的設(shè)備安全,它的目標(biāo)是要防止任何不安全后果的產(chǎn)生,而不是簡單的去估計(jì)整個(gè)系統(tǒng)的可靠壽命。其者主要是設(shè)計(jì)和開發(fā)問題,后者則屬于假定開發(fā)完畢后的評估過程。目前國內(nèi)外已經(jīng)有了一些工作,但它們大多集中在孤立設(shè)備、冗余方式及其可靠性評估、事后性質(zhì)的故障分析等領(lǐng)域,與本申請關(guān)注的系統(tǒng)運(yùn)行期的動(dòng)態(tài)可靠性安全性問題不同。《Acost-effectivemethodologytointernalizenuclearsafetyinnuclearreactorconceptualdesign》(M.Gim6nez,P.Grinblat,M.Schlamp,NuclearEngineeringandDesign,Vol226(3),Dec2003,P.293-309,2003)—文中,作者雖然也很關(guān)注系統(tǒng)級可靠性,但仍是從可靠性評估的角度強(qiáng)調(diào)優(yōu)化設(shè)計(jì),減小失效概率,而沒有在"如何保證運(yùn)行期的動(dòng)態(tài)可靠性"這一關(guān)鍵問題上給出說明。在《SystemandSoftwaresafetyanalysisfortheERAcontrolcomputer》(P.G.Beerthuizen,W.Kruidhof,ReliabilityEngineering&SystemSafety:ComputerSafety,ReliabilityandSecurity:18thInternationalConference,SAFECOMP'99,Toulouse,France,September1999.Proceedings,Springer)—文中,作者詳細(xì)分析了一類控制系統(tǒng)的安全性的方方面面,但仍象本專利開始所指出的那樣,限于作者個(gè)人經(jīng)驗(yàn)總結(jié),缺少可工程化的形式化方法及其分析,且該工作集中在項(xiàng)目完成后,因此對設(shè)計(jì)期的指導(dǎo)價(jià)值不夠。《Thesafetyissueofmedicalrobotics》(Ellenby,S,B,ReliabilityEngineering&SystemSafety,Vol73(2),Aug2001,P.183-192)—文缺點(diǎn)同前。冗余思路的代表有《安全冗余結(jié)構(gòu)鐵路信號配電系統(tǒng)研究》(信號技術(shù)2007),但是冗余方式側(cè)重于提高部件級的可靠性,并不能保證針對分布式機(jī)電系統(tǒng)而設(shè)計(jì)的控制管理軟件本身是正確的。《使用基于模型的設(shè)計(jì)來開發(fā)和驗(yàn)證安全關(guān)鍵系統(tǒng)軟件》(http:〃www.eetchina.com/ARTP8800414469—617693.HTM)—文最接近本申請的思路,但是它是以局部的小范圍的控制器設(shè)計(jì)為解決問題,在分布式方面沒有考慮。該文建模采用了Matlab的Simulink工具,與本文針對的分布式機(jī)電裝備的離散控制本質(zhì)不相符合?!稄?fù)雜機(jī)電產(chǎn)品動(dòng)態(tài)可靠性建模理論與方法研究》(蘇春,許映秋,中國制造業(yè)信息化,35巻5期,2006,P.24-32)從理論方法角度給出了較全面的總結(jié),提到了狀態(tài)圖法、智能組件法、Petri網(wǎng)法、動(dòng)態(tài)故障樹法等。但是,除了狀態(tài)圖法、流程圖和Petri網(wǎng)法可以在輔助設(shè)計(jì),其它方法大多是重在事后分析,對設(shè)計(jì)開發(fā)階段所要求的高質(zhì)量高可靠性目標(biāo)難以給予方法學(xué)上的支持。考慮到工程實(shí)際要求,并不是每種方法都能夠?yàn)楣こ倘藛T所掌握并適合在實(shí)際中推廣的,片面的要求所有工程人員提高自身素質(zhì)以掌握那些復(fù)雜抽象的方法和分析算法是不現(xiàn)實(shí)的。目前在實(shí)際中能夠獲得較廣泛認(rèn)同和接受的方法主要有-.1)狀態(tài)圖法。該方法比較靈活,尤其適合在安全性設(shè)計(jì)中4吏用,但是在系統(tǒng)規(guī)模較大時(shí),建模困難,一方面是因?yàn)闋顟B(tài)的數(shù)量爆炸現(xiàn)象,一方面也是因?yàn)闋顟B(tài)本身的確定也存在模糊性。2)Petri網(wǎng)法該方法具有天生的描述并發(fā)的能力,已在調(diào)度/工作流等領(lǐng)域獲得了成功的應(yīng)用,它強(qiáng)調(diào)資源具備時(shí)某個(gè)行為(即變遷)可被觸發(fā)這一特性。但是,它并不適合描述錯(cuò)誤恢復(fù)和錯(cuò)誤處理。由于系統(tǒng)運(yùn)行過程中不可避免的需要處理各種異常情況,這是安全系統(tǒng)設(shè)計(jì)中的關(guān)鍵內(nèi)容之一,因此必須重點(diǎn)考慮,而這時(shí)petri弱點(diǎn);3)流程圖及其各種變種如GoFlow圖適合描述流程,但對異常情況的處理是其弱點(diǎn),處理缺乏嚴(yán)謹(jǐn)性,不規(guī)范。如果為了一個(gè)類型的錯(cuò)誤就引入一套新的流程,不能很好的處理流程中的錯(cuò)誤。4)故障樹。5)面向?qū)ο蟮慕M件如面向?qū)ο蟮腜etri網(wǎng),結(jié)合馬爾科夫分析,注意改進(jìn)各個(gè)組件并不能從根本上解決系統(tǒng)中各部件交互引入的安全性問題。3本申請基礎(chǔ)分布式機(jī)電裝備系統(tǒng)通常都是由大量類型不同、數(shù)量眾多的自動(dòng)化設(shè)備構(gòu)成,彼此間需要嚴(yán)密細(xì)致的配合方能保證整個(gè)系統(tǒng)安全順暢的運(yùn)行。整個(gè)系統(tǒng)運(yùn)行的安全性,更多的是取決于系統(tǒng)層面相互配合協(xié)調(diào)以及對異常事件的適當(dāng)處理(主要體現(xiàn)為軟件),而不僅僅取決于設(shè)備自身的工作狀態(tài)是否良好。如圖4所示,圖4展示了本申請實(shí)際項(xiàng)目實(shí)施中的工作流程。本申請中的算法基于系統(tǒng)的Petri-FSM混合描述模型,并通過改進(jìn)的狀態(tài)機(jī)描述方法允許禁止表,可有效的將設(shè)計(jì)意圖轉(zhuǎn)化為系統(tǒng)實(shí)現(xiàn),并且在設(shè)計(jì)階段就保證運(yùn)行期整個(gè)系統(tǒng)落在允許的狀態(tài)空間內(nèi),從而保證安全性。就分布式機(jī)電系統(tǒng)的設(shè)計(jì)而言,由于該算法己經(jīng)預(yù)先服從了幾個(gè)前提約定條件,這樣設(shè)計(jì)出來的系統(tǒng)可以保證不會因系統(tǒng)交互出現(xiàn)故障。該方法發(fā)揮Petri網(wǎng)和FSM狀態(tài)機(jī)兩種方法的優(yōu)點(diǎn),用Petri網(wǎng)描述設(shè)備之間的協(xié)調(diào)配合以及調(diào)度,用FSM描述單個(gè)設(shè)備的狀態(tài)遷移和工作流程,克服了用單一方法描述整個(gè)系統(tǒng)的難度,降低了對系統(tǒng)分析人員素質(zhì)的要求。因此,在這里,對基本的Petri網(wǎng)和狀態(tài)機(jī)方法做簡短介紹1)Petri網(wǎng)(Petri-Net):通常被作為一種建模工具和分析工具使用,目前已被成功用于生產(chǎn)調(diào)度系統(tǒng)和工作流系統(tǒng)。Petri網(wǎng)的三大要素是庫所、資源和變遷。即Petri網(wǎng)是庫所S,資源R和變遷T的集合授:={S,"}其中,庫所(store)是資源的存放地。或者理解為某類資源的集合,圖?上用"圓圈"表示,例如,現(xiàn)有3輛小車可供運(yùn)輸,那么小車集合可構(gòu)成一個(gè)庫所,其中存放著3個(gè)資源(即小車),資源可以表示為庫所圓圈中的"點(diǎn)"。變遷(transition)是資源條件滿足時(shí)被激發(fā)的處理過程,圖上用短直線表示,而變遷激發(fā)導(dǎo)致的資源流動(dòng)就用箭頭線表示。在經(jīng)典Petri網(wǎng)^l念中,只要資源滿足,變遷即可激發(fā)。但在工程應(yīng)用中,激發(fā)(處理)的時(shí)刻可以由某個(gè)前置條件給出,不一定立刻激發(fā),這會方便某些實(shí)現(xiàn)。例如,在集裝箱資源和岸橋資源都具備的情況下,可以激發(fā)"岸橋抓箱運(yùn)輸"這個(gè)變遷發(fā)生。Petri網(wǎng)就是這樣依靠資源的流動(dòng)觸發(fā)變遷以描述分布式系統(tǒng)的,因此,這一方法在描述分布式系統(tǒng)中的協(xié)調(diào)配合問題時(shí)具有天生的內(nèi)在優(yōu)勢。例以自動(dòng)化碼頭為例,船和岸橋集合是庫所,如果船上還有集裝箱資源且岸橋集合中還有空閑岸橋,則可激發(fā)"岸橋卸箱"這個(gè)變遷(動(dòng)作)。當(dāng)所有集裝箱資源都被消耗掉時(shí),自動(dòng)化碼頭的卸船流程也就自然結(jié)束。2)狀態(tài)自動(dòng)機(jī)(statemachine):工程中的狀態(tài)機(jī)常包含三類要素即狀態(tài)、事件、遷移。其中,狀態(tài)(state)表示系統(tǒng)相對穩(wěn)定的行為,狀態(tài)圖中用"圓圈"表示,例如"靜止待命",事件(event)是狀態(tài)機(jī)的輸入,可能來自于傳感器的輸出,也可能來自于系統(tǒng)中其它模塊的輸出,圖中常忽略標(biāo)出,因?yàn)槊總€(gè)遷移必然隱含著事件的到達(dá),或者采用類似"el"的形式在遷移旁邊標(biāo)注。與Petri網(wǎng)的自動(dòng)激發(fā)不同,事件是引導(dǎo)狀態(tài)機(jī)演化的唯一動(dòng)力。遷移描述狀態(tài)機(jī)對事件的響應(yīng)和處理,它通常會導(dǎo)致狀態(tài)機(jī)從一個(gè)狀態(tài)演化到另外一個(gè)狀態(tài)。遷移在狀態(tài)圖中用連接當(dāng)前狀態(tài)和下一狀態(tài)的箭頭線表示,遷移的過程常伴隨著一些必要的處理,本申請中稱之為"行為"(action),以描述狀態(tài)機(jī)FSM在不同狀態(tài)之間轉(zhuǎn)換時(shí)需要執(zhí)行的處理??紤]到工程的需要,本申請中的模型描述部分用短直線明確表示"行為"處理,并且支持判斷,這樣可簡化狀態(tài)圖的描述,更適合向軟件開發(fā)轉(zhuǎn)移設(shè)計(jì)成果。狀態(tài)機(jī)方法中狀態(tài)和遷移的識別是實(shí)際工程中非常容易引起爭議的地方。究竟本質(zhì)原因,在于狀態(tài)是系統(tǒng)整體的狀態(tài),在系統(tǒng)規(guī)模較大時(shí)單憑分析人員的個(gè)人能力缺失有困難。但是,在描述規(guī)模較小的設(shè)備時(shí),狀態(tài)機(jī)方法確是非常有效的,且極其容易辨識正常工作狀態(tài)和非正常狀態(tài),從而方便系統(tǒng)安全性檢查。理論上存在從Petri網(wǎng)翻譯成狀態(tài)機(jī)的方法,但是由于狀態(tài)爆炸原因,翻譯出來的狀態(tài)圖規(guī)模很大,一般只能引入計(jì)算機(jī)處理而不適合工程實(shí)踐中的人工分析,因此本申請依然采取人工方式繪制狀態(tài)圖。由于后續(xù)模型描述中,只針對個(gè)別設(shè)備單獨(dú)用狀態(tài)圖建模,所以目標(biāo)規(guī)模已經(jīng)大大縮小,人工建模和分析可以實(shí)現(xiàn),便于工程推廣。
發(fā)明內(nèi)容本專利
發(fā)明內(nèi)容針對的是大型分布式機(jī)電裝備中系統(tǒng)可靠性安全性的動(dòng)態(tài)保證模型和算法。解決該實(shí)際問題的一大難點(diǎn)是如何在系統(tǒng)分析和設(shè)計(jì)階段就能夠保證后期開發(fā)和實(shí)現(xiàn)是正確的,且達(dá)到保證安全性可靠性的目標(biāo)。1)基于"Petri網(wǎng)+有限狀態(tài)機(jī)FSM"的層次建模方法發(fā)揮兩種方法的優(yōu)勢,用Petri網(wǎng)描述分布式機(jī)電系統(tǒng)的上層調(diào)度和作業(yè),用FSM描述底層單個(gè)設(shè)備的運(yùn)裝,在Petri網(wǎng)層次解決設(shè)備的協(xié)調(diào)配合問題,在FSM層次解決設(shè)備的安全運(yùn)行問題。這樣的層次設(shè)計(jì)與整個(gè)機(jī)電系統(tǒng)的軟硬件架構(gòu)也是相協(xié)調(diào)的,體現(xiàn)在-一模型描述分兩層,實(shí)際系統(tǒng)的軟件設(shè)計(jì)也分兩層,分別是作業(yè)調(diào)度系統(tǒng)和安全執(zhí)行系統(tǒng)。再之下就是具體物理設(shè)備實(shí)體。一Petri網(wǎng)的變遷就是作業(yè)系統(tǒng)中的最小可操作單位,作業(yè)系統(tǒng)的職責(zé),就是檢查觸發(fā)這些變遷發(fā)生的資源約束是否滿足,以及決定其具體執(zhí)行時(shí)機(jī),并通過調(diào)整變遷激發(fā)序列來規(guī)避死鎖和提高作業(yè)系統(tǒng)工作效率。一每個(gè)變遷對應(yīng)著底層關(guān)聯(lián)設(shè)備的狀態(tài)演化。可以將每個(gè)變遷與若干狀態(tài)機(jī)的狀態(tài)演化序列對應(yīng)起來。一來自軟件系統(tǒng)外部的各種變化(含危險(xiǎn)情況探測),以狀態(tài)機(jī)事件(event)方式進(jìn)入系統(tǒng)模型。則系統(tǒng)安全執(zhí)行的的最低設(shè)計(jì)目標(biāo)就等價(jià)于考慮狀態(tài)機(jī)面臨不確定性外部事件輸入和內(nèi)部作業(yè)系統(tǒng)事件輸入的情況下,一直將設(shè)備狀態(tài)約束在安全范圍之內(nèi)的問題。由此可見,該建模方法層次清楚,接口明確,在每個(gè)步驟中考慮的問題都比較有限,便于人工分解處理,便于實(shí)際中推廣使用。依據(jù)此方法得到的系統(tǒng)"Petri+FSM混合模型描述"是后續(xù)算法和工作的必要基礎(chǔ)。2)Petri+FSM混合模型在計(jì)算內(nèi)存中的表示依據(jù)1)中得到的圖形化模型表示,需要將其化為適合計(jì)算機(jī)算法要求的數(shù)據(jù)結(jié)構(gòu)以方便利用。由于Petri網(wǎng)和FSM從根本上都可抽象為離散數(shù)學(xué)的圖,因此可借鑒圖在計(jì)算機(jī)內(nèi)的表示并擴(kuò)展之以表示本模型。Petri網(wǎng)庫所清單用結(jié)構(gòu)數(shù)組表示,每個(gè)數(shù)組單元結(jié)構(gòu)為{庫所標(biāo)識,庫所說明}變遷清單用結(jié)構(gòu)數(shù)組表示,每個(gè)數(shù)組單元結(jié)構(gòu)為{變遷標(biāo)識,說明,前置條件,[源庫所],[目標(biāo)庫所],[關(guān)聯(lián)設(shè)備]}。其中,前置條件說明允許該變遷發(fā)生的條件,只有前置條件和資源約束都滿足時(shí),該變遷方能發(fā)生。{源庫所}記錄影響該變遷發(fā)生的所有庫所,即Petri網(wǎng)中變遷箭尾連接的所有庫所,{目標(biāo)庫所}記錄所有該變遷能夠直接影響到的庫所,即Petri網(wǎng)中變遷箭頭指向的所有庫所。{關(guān)聯(lián)設(shè)備}記錄與該變遷有關(guān)的所有設(shè)備。'FSM機(jī)狀態(tài)清單用結(jié)構(gòu)數(shù)組表示,每個(gè)單元結(jié)構(gòu)為{狀態(tài)標(biāo)識,狀態(tài)說明}事件清單用結(jié)構(gòu)數(shù)組表示,每個(gè)單元結(jié)構(gòu)為{事件標(biāo)識,事件說明,事件來源}行為清單用結(jié)構(gòu)數(shù)組表示,每個(gè)單元結(jié)構(gòu){行為標(biāo)識,行為說明}狀態(tài)轉(zhuǎn)移表/允許禁止表用結(jié)構(gòu)數(shù)組表示,每個(gè)單元記錄一個(gè)狀態(tài)事件對{s,e}。單元結(jié)構(gòu)為{狀態(tài)s,事件e,允許/禁止標(biāo)志A/P,說明}。對給定狀態(tài)s,僅下表中明確列出的事件(e)是允許的;未列出的事件如果到達(dá),必須忽略。對某些不允許簡單忽略的事件,以禁止事件的形式列在表中。禁止事件前面有一個(gè)/。后續(xù)算法中,判斷設(shè)備在指定狀態(tài)下是否可以響應(yīng)某事件以及如何響應(yīng),就是根據(jù)該清單來嚴(yán)格執(zhí)行的。在狀態(tài)欄(或事件欄)中可以用通配標(biāo)記(如*)表示本欄內(nèi)容可以為任意狀態(tài)(或事件),以簡化表格數(shù)據(jù)量。關(guān)聯(lián)處理欄指明在當(dāng)前狀態(tài)S和事件輸入e下應(yīng)執(zhí)行的處理,通常需執(zhí)行某個(gè)處理,有時(shí)也可忽略。允許禁止表本質(zhì)上是表格方式陳述的狀態(tài)機(jī)模型的擴(kuò)展,但是比圖形方式表達(dá)的狀態(tài)機(jī)描述的內(nèi)容更多,且更適合計(jì)算機(jī)軟件編程實(shí)現(xiàn)。3)設(shè)備級的安全執(zhí)行算法算法分布式機(jī)電裝備的動(dòng)態(tài)安全性執(zhí)行算法目標(biāo)保證系統(tǒng)在面臨任意事件輸入時(shí)都是安全的。這里的安全是指整個(gè)系統(tǒng)不會因上層用戶和調(diào)度軟件的誤操作和設(shè)備之間的協(xié)調(diào)異常而導(dǎo)致設(shè)備受損,也不會因異常事件的突然發(fā)生而打亂正常運(yùn)行導(dǎo)致系統(tǒng)損壞,前提是這些異常能夠被系統(tǒng)感知并正確建模,錯(cuò)誤的模型和無法感知的異常不在本算法考慮范圍之內(nèi)。輸入事件ebeginif(e來自系統(tǒng)軟件本身,如其它設(shè)備或上層作業(yè)系統(tǒng)指令)if{目標(biāo)設(shè)備當(dāng)前狀態(tài)s,e)組合在禁止表項(xiàng)中執(zhí)行禁止表項(xiàng)中規(guī)定的操作else將e送入模型超前演化,計(jì)算該設(shè)備狀態(tài)機(jī)下一狀態(tài)評估該模型狀態(tài)if模型是安全的將e封裝成命令數(shù)據(jù)包發(fā)送給物理設(shè)備執(zhí)行else模型回退到接收e之前的狀態(tài)endifendifelseif(e來自系統(tǒng)軟件外部的傳感器輸出)if{目標(biāo)設(shè)備當(dāng)前狀態(tài)s,句組合在禁止表項(xiàng)中執(zhí)行禁止表項(xiàng)中規(guī)定的操作else將e送入模型超前演化評估模型狀態(tài)if模型是不安全的停機(jī)并報(bào)告endifendifendifend軟件自己產(chǎn)生的事件(含作業(yè)系統(tǒng)發(fā)下來的指令事件)和傳感器事件在處理上在處理上有所不同前者是事件先到,物理設(shè)備的狀態(tài)還未發(fā)生變化,所以若判定為危險(xiǎn)可直接忽略處理;后者是設(shè)備物理狀態(tài)發(fā)生變化,事件后到(后進(jìn)入系統(tǒng)),不論危險(xiǎn)與否,一般都不可做忽略性處理,而應(yīng)明確開列在狀態(tài)轉(zhuǎn)換表(允許禁止表)中,逐個(gè)情形分析,簡單忽略將導(dǎo)致最大危險(xiǎn)。4)系統(tǒng)級的安全執(zhí)行算法上面的設(shè)備級安全執(zhí)行算法只是描述了單個(gè)設(shè)備的情況。就整個(gè)分布式系統(tǒng)而言,在系統(tǒng)級還應(yīng)有所協(xié)調(diào)。任何一個(gè)作業(yè)調(diào)度算法,不論是自動(dòng)化調(diào)度還是人工操作,都可抽象為作業(yè)指令的序列。而任何傳感器的檢測輸出,例如檢測到的異常情況,都可以抽象為事件輸入算法處理。3)中的設(shè)備級安全處理算法本質(zhì)上只是這里系統(tǒng)級安全執(zhí)行算法頻繁調(diào)用的一個(gè)子算法。算法系統(tǒng)級的動(dòng)態(tài)安全執(zhí)行算法輸入輸出的數(shù)據(jù)結(jié)構(gòu)資源集合凡i存放待處理的抽象資源,例如自動(dòng)化碼頭卸船流程中的待卸集裝箱,自動(dòng)化倉庫中等待入庫的所有物品,系統(tǒng)中所有的傳送小車等等;作業(yè)指令隊(duì)列^,其中的作業(yè)指令由作業(yè)系統(tǒng)動(dòng)態(tài)生成;事件輸入隊(duì)列2e。其中的事件可能由軟件內(nèi)部生成,也可能由現(xiàn)場設(shè)備或傳感器激發(fā),來自系統(tǒng)外部的事件可能發(fā)生在任意時(shí)刻,不可預(yù)測。算法的目的之一就是要保證面臨任意時(shí)刻外部事件輸入時(shí)執(zhí)行都在安全可控范圍內(nèi);beginif(事件隊(duì)列^非空)從事件隊(duì)列g(shù)e中取出下一待處理事件e;if(e是退出軟件命令)算法退出并中止endif根據(jù)e的屬性確定目標(biāo)設(shè)備將e送給目標(biāo)設(shè)備狀態(tài)機(jī)模型并調(diào)用3)設(shè)備級安全執(zhí)行算法處理;if(設(shè)備級算法安全檢查未通過并要求停機(jī))從抽象設(shè)備資源集合中去除要求停機(jī)的設(shè)備;endifendifif(事件隊(duì)列g(shù)e為空)for(每一個(gè)模型變遷r進(jìn)行檢查)if該變遷正在解釋執(zhí)行過程中繼續(xù)按照狀態(tài)機(jī)解釋該變遷,如可以生成下一事件,則生成之并放入事件隊(duì)列,變遷的執(zhí)行本質(zhì)上就是由解釋器主動(dòng)生成和物理設(shè)備觸發(fā)一系列的事件引起的狀態(tài)遷移過程。每個(gè)變遷都有對應(yīng)的解釋器負(fù)責(zé)生成下一事件。elseif(該變遷被激發(fā)的資源條件不滿足)continue;〃退出本次for循環(huán),繼續(xù)檢查下一變遷else到變遷表中查找該變遷r涉及到的設(shè)備集合D;檢査狀態(tài)機(jī)所表示的D的狀態(tài);if(r執(zhí)行所需的某個(gè)設(shè)備資源正忙)continue;〃退出本次for循環(huán),但繼續(xù)檢査下一變遷〃這可規(guī)避由設(shè)備爭用狀態(tài)混亂導(dǎo)致的不安全else//至此,變遷發(fā)生條件滿足,可以執(zhí)行啟動(dòng)該變遷對應(yīng)的解釋器,并由解釋器生成第一批事件送入事件隊(duì)列endifendifendforendwhile從事件隊(duì)列g(shù)e中取出下一個(gè)事件e;如果隊(duì)列g(shù)e為空,則返回begin繼續(xù)檢查等待;end5)關(guān)于安全性的論證在該算法中,上層Petri網(wǎng)的變遷和作業(yè)調(diào)度系統(tǒng)的基本操作一一對應(yīng),由于該算法保證了不會同時(shí)啟動(dòng)兩個(gè)設(shè)備沖突的變遷,因此可很好的適應(yīng)人工操作與自動(dòng)化調(diào)度協(xié)調(diào)并發(fā)運(yùn)行的情況。進(jìn)一步的,如果變遷解釋器(通過事件生成方式把變遷的執(zhí)行映射成為若干狀態(tài)機(jī)狀態(tài)演化的過程)和物理設(shè)備能夠保證每個(gè)變遷的發(fā)生具有原子性,即要么執(zhí)行成功,要么將設(shè)備巻回到變遷發(fā)生前狀態(tài),則可保證各個(gè)設(shè)備不會因沖突而損壞。且資源托肯的流動(dòng)是單向的,如自動(dòng)化碼頭的裝船或者卸船流程,那么該算法可以保證對任意的調(diào)度序列輸入都是安全的。這會大大增加作業(yè)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的靈活性。6)關(guān)于安全性效果提升的評估參見實(shí)例說明圖1—圖3為某系統(tǒng)的部分模型描述。其中,圖1是以自動(dòng)化港口的裝卸船流程為例的系統(tǒng)級的Petri網(wǎng)模型描述,圖2是針對每類設(shè)備單獨(dú)設(shè)計(jì)的設(shè)備級狀態(tài)機(jī)模型描述,圖3為Petri和FSM關(guān)聯(lián)關(guān)系示意圖。系統(tǒng)級Petri網(wǎng)描述和設(shè)備級狀態(tài)機(jī)FSM的描述的集成。圖4為本發(fā)明的應(yīng)用流程圖具體實(shí)施例方式以某自動(dòng)化碼頭裝備的研發(fā)為例,通常此類自動(dòng)化碼頭包括岸橋、軌道、小車以及各類起重機(jī)近百臺,且?guī)缀跞繜o人操作,各類裝置之間存在大量的交接協(xié)調(diào)操作,考慮到必要的人工干預(yù)、某些設(shè)備潛在的故障可能以及各類裝備運(yùn)行期間的異常情況,該自動(dòng)化港口的整個(gè)控制系統(tǒng)必須能夠盡可能多的處理這些潛在異常因素,并最大限度的保護(hù)設(shè)備和集裝箱的安全。第一步對該系統(tǒng)進(jìn)行分類和抽象,辨別各類資源。得到如下設(shè)備清單岸橋起重機(jī)(岸橋),軌道小車,軌道起重機(jī),地面小車,堆場起重機(jī)(場橋)。再加上需要傳輸?shù)呢浳锛b箱,就構(gòu)成了整個(gè)系統(tǒng)的基本資源。第二步首先對該系統(tǒng)進(jìn)行建模,以Petri網(wǎng)為工具描述整個(gè)集裝箱裝船和卸船流程如圖2所示。其中,庫所S0和S6分別表示集裝箱船和堆場,Sl-S5分別表示自動(dòng)化碼頭中的岸橋、小車l、起重機(jī)、小車2和堆場RMG資源,變遷T0-T5表示卸船流程,Tll-T6表示裝船流程。為了適應(yīng)多條集裝箱通路的情形,可引入著色Petri網(wǎng)技術(shù)描述。附圖中為簡明起見,未提供著色信息。為了方便軟件開發(fā)實(shí)現(xiàn),可以進(jìn)一步將圖形化的Petri網(wǎng)轉(zhuǎn)化成為表格形式<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>注為簡明起見,一些過渡庫所未給出含義說明,以圖為準(zhǔn),也避免大家就每個(gè)具體庫所的準(zhǔn)確文字陳述爭論。表2:Petri網(wǎng)模型變遷清單<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>(場)在表格表示法中,可以進(jìn)一步增加前置條件檢查,并順便建立Petri網(wǎng)和設(shè)備之間的關(guān)聯(lián)關(guān)系,從而表達(dá)的內(nèi)容更加豐富。注1:Petri網(wǎng)中的變遷T的集合《Ti,i二O,l,..n-max)同吋也是安全子系統(tǒng)提供的擴(kuò)充指令,上層調(diào)度系統(tǒng)可以使用。注2:Petri網(wǎng)模型并沒有說明如果某個(gè)變遷失敗后會怎樣。按照經(jīng)典Petri網(wǎng)的概念,對失敗的處理不屬于Petri考慮的重點(diǎn),它強(qiáng)調(diào)"資源滿足后某個(gè)變遷可以被激發(fā)執(zhí)行"而不是說一定被激發(fā)執(zhí)行。如果變遷執(zhí)行失敗,我們認(rèn)為Petri網(wǎng)狀態(tài)不變。就具體開發(fā)而言,我們可以在每個(gè)變遷處理的開始,首先去檢查一些相關(guān)前置條件是否滿足,如果不滿足,則退出此變遷執(zhí)行。注3:在本報(bào)告給出的自動(dòng)化碼頭模型中,除非是極簡單的變遷,否則變遷的處理過程都可以通過與該變遷關(guān)聯(lián)的設(shè)備的狀態(tài)圖FSM描述,即變遷的處理過程就是相關(guān)設(shè)備狀態(tài)圖FSM演化的過程,因此,前置條件也可不明確給出,完全依賴狀態(tài)圖演化的處理亦可。該變遷執(zhí)行不下去等價(jià)于對應(yīng)該變遷的FSM無法演化下去。特別注意,一個(gè)變遷可能對應(yīng)多張F(tuán)SM,如T1變遷的激發(fā)處理牽扯到岸橋和軌道小車兩個(gè)實(shí)體,因此,軟件在實(shí)現(xiàn)T1變遷時(shí),要去同時(shí)演化岸橋和軌道小車兩個(gè)FSM。不應(yīng)該為每個(gè)變遷單獨(dú)設(shè)計(jì)FSM。第三步針對每個(gè)設(shè)備,單獨(dú)用狀態(tài)機(jī)對設(shè)備進(jìn)行建模。由于在應(yīng)用狀態(tài)機(jī)時(shí),僅僅是對某類設(shè)備進(jìn)行描述,考慮的范圍局限于單個(gè)設(shè)備,因此考慮的范圍大大縮小,比較容易獲得公共一致的模型。實(shí)際操作時(shí)要注意狀態(tài)機(jī)FSM模型是針對的設(shè)備狀態(tài)遷移,而不是業(yè)務(wù)流程遷移,業(yè)務(wù)流程遷移本質(zhì)上可反映為狀態(tài)遷移的序列。因此,在FSM建模時(shí)可以較少的考慮業(yè)務(wù)流程,從而進(jìn)一步約簡狀態(tài)的數(shù)量,便于手工分析進(jìn)行。圖3給出了某設(shè)備(地面軌道小車)狀態(tài)機(jī)描述的例子。其中,S0表示歸位初態(tài),同時(shí)也是系統(tǒng)運(yùn)行終態(tài)。Sl、S2和S3描述了定位過程,S4S6和S5S7分別表示提箱和放箱過程,e表示引起狀態(tài)遷移的各類事件,豎線a表示由各事件觸發(fā)的各種處理。處理的過程中可決定下一遷移狀態(tài)。為了方便程序處理,并仿照Petri網(wǎng)的表格化方法,對FSM中的狀態(tài)(state)、事件(event)和處理(action)各自列表表示。除了列出如上三張表,還應(yīng)列出允許/禁止表,描述合法與非法的狀態(tài)遷移關(guān)系,例如表3:狀態(tài)轉(zhuǎn)移表/允許禁止表示意<table>tableseeoriginaldocumentpage14</column></row><table>表中*表示任意狀態(tài)s獲任意事件e注1:對給定狀態(tài)S,僅下表中明確列出的事件(e)是允許的;未列出的事件如果到達(dá),必須忽略。對某些不允許簡單忽略的事件,以禁止事件的形式列在表中。禁止事件前面有一個(gè)/。注2:下表可能在開發(fā)調(diào)試中變化較大,但對軟件程序架構(gòu)無影響,因此方便調(diào)試和更新。注3:如果把狀態(tài)s和允許事件e合在一起,構(gòu)成狀態(tài)事件對(s,e),則可注意到,該表實(shí)際上是以表格形式描述了狀態(tài)機(jī)FSM。這比圖形方式更適合計(jì)算機(jī)編程實(shí)現(xiàn),因?yàn)榫幊讨信袛嗄硞€(gè)事件能否處理,只要簡單的到下表中査詢即可。第四步建立Petri網(wǎng)和FSM之間的關(guān)聯(lián),實(shí)現(xiàn)相互集成。這一步事實(shí)上在第二步Petri描述中己經(jīng)實(shí)現(xiàn),因?yàn)槟抢锛航?jīng)完成了Petri網(wǎng)變遷和狀態(tài)機(jī)對應(yīng)關(guān)系的建立。第五步驗(yàn)證系統(tǒng)的Petri網(wǎng)模型對任意輸入的變遷命令T都是安全的。由于Petri網(wǎng)的分布式描述特性,對該問題的驗(yàn)證無序在全網(wǎng)層次統(tǒng)一考慮,只需在影響變遷發(fā)生的庫所上考慮即可。若某變遷T的激活需要庫所Sa和Sb中的資源,Sa中的資源狀態(tài)可能是(0,l,2)三種可能,Sb中的資源狀態(tài)可能是(0,U兩種可能,那么組合后共有Sa*Sb={(0,0),(O,l),(1,0),(1,1),(2,0),(2,1)}六種可能狀態(tài),只要驗(yàn)證在這6種可能狀態(tài)下,變遷T激活的嘗試都不會導(dǎo)致系統(tǒng)進(jìn)入危險(xiǎn)狀態(tài)即可。這一過程可通過人工完成。因?yàn)楝F(xiàn)在對變遷T的分析僅僅涉及局部描述,所以大大壓縮了分析的空間,規(guī)避了狀態(tài)爆炸現(xiàn)象。第六步分析每個(gè)狀態(tài)機(jī)不論當(dāng)前處于何種狀態(tài),對可能發(fā)生的事件都是安全的。這一環(huán)節(jié)與設(shè)備和應(yīng)用密切相關(guān)。第七步根據(jù)前面各類表格轉(zhuǎn)化為軟件設(shè)計(jì)并開發(fā)實(shí)現(xiàn)。實(shí)際中要區(qū)分清楚狀態(tài)機(jī)中可能發(fā)生的狀態(tài)遷移途徑和實(shí)際某次遷移流程中的狀態(tài)序列,前者由圖形或表格描述,后者只是前者規(guī)定的可能遷移中的一個(gè)具體可能,由變遷命令解釋器負(fù)責(zé)遵照FSM約束決定下一步驟遷移。第八步設(shè)計(jì)和實(shí)現(xiàn)上層作業(yè)系統(tǒng),包括手工調(diào)度和自動(dòng)化調(diào)度。由于底層已經(jīng)保證了安全性,因此,這一層可著重考慮如何提高作業(yè)效率。為完整起見,這里給出了一個(gè)簡單的自動(dòng)化調(diào)度示意,可滿足自動(dòng)化碼頭單向調(diào)度作業(yè)的需要卸船調(diào)度start:for變遷集合T中的每一個(gè)變遷Tj查找與Tj關(guān)聯(lián)的所有庫所并且查驗(yàn)這些庫所中的資源是否滿足Tj激發(fā)的條件如果滿足,則激發(fā)Tj對應(yīng)的處理,即演化Tj的所有FSM如果不滿足,則忽略當(dāng)前變遷end檢查船庫所中需要運(yùn)輸?shù)募b箱資源是否為空如果為空,則算法中止并退出否則gotostart繼續(xù)實(shí)施效果的評估由于本實(shí)例中自動(dòng)化碼頭系統(tǒng)系國內(nèi)首創(chuàng),國際上能提供相應(yīng)解決方案的公司也屈指可數(shù),且技術(shù)保密性強(qiáng),難以獲得比較數(shù)據(jù)。從有限的類似項(xiàng)目開發(fā)經(jīng)驗(yàn)看,一般開發(fā)周期都在2-5年左右,其中系統(tǒng)級的協(xié)調(diào)測試根據(jù)軟件工程學(xué)科的統(tǒng)計(jì)一般會在50%甚至對某些項(xiàng)目可達(dá)70%,其中主要的工作量集中在各個(gè)單元完工后,整個(gè)系統(tǒng)組裝好后在性能和安全性上通不過測試,導(dǎo)致返工。上述實(shí)例中應(yīng)用本專利策略,在1年零2個(gè)月時(shí)間內(nèi)順利將整個(gè)系統(tǒng)搭建完畢并初步運(yùn)轉(zhuǎn),減少了因發(fā)現(xiàn)整個(gè)系統(tǒng)功能不完備而導(dǎo)致返工重新設(shè)計(jì)修正的次數(shù),從而能夠在較短的時(shí)間內(nèi)達(dá)到期待的安全性品質(zhì)。權(quán)利要求1.動(dòng)態(tài)安全執(zhí)行算法基于Petri網(wǎng)和有限狀態(tài)機(jī)FSM相結(jié)合的雙層系統(tǒng)描述模型,該模型在上層用Petri網(wǎng)工具描述大型分布式機(jī)電裝備作業(yè)調(diào)度中的并行性,在下層用狀態(tài)機(jī)描述每個(gè)各子設(shè)備單元的細(xì)節(jié)運(yùn)行規(guī)律,其中,Petri網(wǎng)中的每個(gè)變遷與作業(yè)和調(diào)度系統(tǒng)中的每個(gè)基本操作對應(yīng),每個(gè)變遷的執(zhí)行可翻譯為一個(gè)事件序列,而這些事件以及來自系統(tǒng)外部的各個(gè)事件都由狀態(tài)機(jī)響應(yīng)并處理。2,基于允許/禁止表的單設(shè)備不安全工作區(qū)描述,允許禁止表中包含如下內(nèi)容狀態(tài)s,事件e,允許禁止否,關(guān)聯(lián)處理,在狀態(tài)欄(或事件欄)中可以用通配標(biāo)記(如*)表示本欄內(nèi)容可以為任意狀態(tài)(或事件),以簡化表格數(shù)據(jù)量,關(guān)聯(lián)處理欄指明在當(dāng)前狀態(tài)s和事件輸入e下應(yīng)執(zhí)行的處理,通常需執(zhí)行某個(gè)處理,有時(shí)也可忽略,允許禁止表本質(zhì)上是表格方式陳述的狀態(tài)機(jī)模型的擴(kuò)展,但是比圖形方式表達(dá)的狀態(tài)機(jī)描述的內(nèi)容更多,且更適合計(jì)算機(jī)軟件編程實(shí)現(xiàn)。3,基于模型的快速動(dòng)態(tài)安全執(zhí)行,對來自上層用戶操作和調(diào)度系統(tǒng)的作業(yè)指令(對應(yīng)著模型中的Petri網(wǎng)變遷),首先判斷是否存在設(shè)備沖突,在設(shè)備資源滿足的前提下,變遷被翻譯成為狀態(tài)演化序列,由各個(gè)設(shè)備單元的狀態(tài)機(jī)負(fù)責(zé)驗(yàn)證并執(zhí)行,驗(yàn)證和執(zhí)行的過程在軟件中是通過查允許/禁止表實(shí)現(xiàn)的,采納權(quán)利要求2和3的算法被證明是有效的,可以在分布式機(jī)電裝備運(yùn)行期間提升安全性。4,基于模型的超前演化執(zhí)行策略,對靜態(tài)安全驗(yàn)證或者是允許/禁止表中有遺漏的狀態(tài)事件組合,或者是無法簡單的在允許/禁止表中"關(guān)聯(lián)處理"欄陳述清楚的狀態(tài)事件組合,可以將該事件送入模型,在計(jì)算機(jī)中模擬整個(gè)系統(tǒng)的超前運(yùn)行,并根據(jù)后續(xù)演化結(jié)果(系統(tǒng)安全與否)決定對該事件的處理(忽略還是接受),該策略有助于處理系統(tǒng)建模初期中未考慮到的異常事件和未知事件,有助于防止繼發(fā)性故障不良后果的蔓延。全文摘要本發(fā)明提出了一種針對分布式機(jī)電裝備設(shè)計(jì)的動(dòng)態(tài)安全性建模與執(zhí)行算法。設(shè)計(jì)了基于Petri網(wǎng)和有限狀態(tài)機(jī)FSM相結(jié)合的雙層系統(tǒng)描述模型,在上層用Petri網(wǎng)工具描述大型分布式機(jī)電裝備作業(yè)調(diào)度中的并行性,并把Petri網(wǎng)變遷與作業(yè)調(diào)度系統(tǒng)的基本操作對應(yīng)起來,在下層用狀態(tài)機(jī)描述每個(gè)各子設(shè)備單元的細(xì)節(jié)運(yùn)行規(guī)律,以明確系統(tǒng)在面臨外部事件輸入時(shí)的行為。執(zhí)行算法中包括允許/禁止表技術(shù)、快速動(dòng)態(tài)安全執(zhí)行策略和超前演化模擬策略,可以在系統(tǒng)運(yùn)行過程中動(dòng)態(tài)的保護(hù)裝備系統(tǒng)安全。文檔編號G06F17/50GK101206687SQ200710172450公開日2008年6月25日申請日期2007年12月18日優(yōu)先權(quán)日2007年12月18日發(fā)明者偉張,健徐,陳啟軍申請人:同濟(jì)大學(xué)