專利名稱:用于自動化系統的過程冗余控制的方法
用于自動化系統的過程冗余控制的方法本發明涉及一種根據權利要求1的上位概念的用于自動化系統的過程冗余控制的方法。為了設備或者過程的可靠運行的冗余自動化系統是多方為人所公知的。在這種系統中控制器是被劃分到兩個或多個子系統中,這些子系統獨立地并且同時執行單獨的控制或者調節任務。在此,每個子系統都具有一個自己的控制器,即所謂的CPU,其作為計算單元負責對之前所規劃的自動化功能的執行。這些功能以機器指令的形式對于CPU被劃分為一系列任務區塊一所謂的任務(Tasks),后者被所述控制器依次處理。如果出于可靠性原因特定的任務應該冗余地被多個子系統或CPU來執行,則所述任務必須被同步執行。否則可能在所述子系統中讀取有分歧的(divergierende)數據并且由此在各個單獨的任務區塊完成或執行之后得出不同的結果。所述待控制的設備或者待控制的過程的可靠的運行由此也不能被確保。因此,本發明要解決的技術問題是,提供一種用于可靠的冗余自動化系統的方法。該技術問題是通過帶有權利要求1的特征的方法來解決的,也就是一種用于具有至少兩個控制器的自動化系統的過程冗余控制的方法,其中,每個控制器依次執行數個任務區塊,其中用于任務區塊的執行的可傳輸的輸出數據儲存在比任務區塊的個數超過一個的工作區域,所述工作區域分別包含了每個任務區塊的輸出數據,而那個額外的工作區域作為系統工作區域容納當前可傳輸的輸出數據,并且為了執行任務區塊在每個控制器中如下使用:在待執行的任務區塊開始時,將系統工作區域的當前的內容傳輸到工作區域,在被執行的任務區塊結束時,將隨著被執行的任務區塊的結果更新的至少兩個控制器的工作區域的輸出數據相互比較,并且將所述工作區域的被更新的內容接受到系統工作區域,以及,如果工作區域的用于控制器中的任務區塊的內容相互一致,則開始下一個任務區塊。在冗余的控制器的任務區塊開始時分別把之前同步的內容從系統工作區域傳輸到工作區域,然后在任務區塊被執行的時候更新上述內容并且緊接著將此被更新的內容(如果其與在冗余控制器中一致)在下一個任務區塊開始之前再次傳輸到系統工作區域,由此,得出一種非常簡單而可靠的方法,用于在自動化系統中同步和一致地并因此無矛盾地數據維護和冗余控制。由此排除了異常的結果的傳遞以及從而基于異常的輸出數據的控制的延續。比任務區塊的個數超過一個的工作區域的數量和因此的一個額外的用于輸出數據的傳輸和接受的系統工作區域的引入,實現了一種帶有高度可支配的冗余性的自動化系統,其同時也是能夠防止錯誤因而非常可靠的。根據本發明的方法最后還實現了,自動化功能性獨立于系統功能性。用于自動化功能的任務可以基于當前的和一致的數據(該數據在系統中還永久可用),在任何時間與系統無關地開始。用于數據的一致性檢測的額外測試程序不再被要求,而是已經在流程中沒有時間延遲地綁定。因而它是一種非常簡單的用于冗余控制的方法,由此減少了開發成本、測試成本和維護成本。尤其具有優勢的是,根據本發明的方法用于多核系統(B卩,帶有多個處理器的CPU)的應用。通過所述方法的應用,在一個核中的這些處理器上的并行和冗余的任務流程,實現了尤其高的處理速度和計算性能,因為否則常見的高的管理和協調開銷被取消了。
優選地,工作區域的被更新的內容會在每一個被執行的任務的結束時的中斷封鎖(Interruptsperre)期間被接受到該系統工作區域。這意味著,每個任務執行僅僅還需要一個中斷封鎖,從而流程速度可以被最大化。在冗余控制器中的一個任務的執行之后根據各自內容的橫和(Quersumme),有利地進行各自工作區域的被更新的內容的比較。在此,該橫和比較可以例如按照公知的校驗和比較的方法來實行。其可以不需要更大計算消耗地實行,從而帶來了流程速度的最大化。特別有利的是,作為工作區域的被更新的內容僅僅將被更新的輸出數據接受到系統工作區域,因為在此僅僅該任務的結果被接受而工作區域的所有其它內容保持不變。其它的根據本發明的有利的實施由從屬權利要求給出。下面,要根據附圖
示例性地解釋所述發明。圖示的是在η個任務tl,t2,tx到tn中的一個單獨的任務執行tx的非常示意性的流程。在此每個任務代表一個帶有用于待控制的自動化功能的控制指令或機器指令的任務區塊。在所示的流程開始的時間點100,例如自動化系統的啟動之后或前一個任務執行結束之后,開始任務tx,緊接著執行并且在時間點200結束,然后必要時開始下一個任務。任務tx的執行在此僅僅通過一個100和200之間的箭頭表示。在該任務的執行期間,自動化系統的控制指令或機器指令以公知的方式被轉換和執行,使得在此的任務區塊的執行不必被更具體的展示和描述。對于此發明更為本質的是,創立一個額外的工作區域(即,所謂的系統工作區域)并將此應用于兩個時間點100和200,也就是每個任務區塊的執行的開始和結束,以便實現自動化功能的一種冗余和無錯誤并且由此是可靠的控制。在目前的實施例中提供有用于冗余自動化系統的過程控制的兩個控制器CPUl和CPU2,其依次分別執行之前規劃的η個任務區塊tl,t2,tx到tn。輸出數據E(tl)到E(tn)和E(tl)'到E(tn)'被指定到這η個任務區塊,所述輸出數據對于每個CPU被存儲在Al到An和Al'到An'的η個工作區域。在這η個工作區域以外,在兩個控制器CPUl和CPU2中分別設置有第(η+l)個工作區域作為所謂的系統工作區域Αη+1或Αη+1',其包含有當前的可傳輸的輸出數據并且被用于任務區塊的執行,如同下面要結合任務區塊tx描述的那樣。所述任務tx在所有連接到冗余系統的CPU (在此為CPUl和CPU2)中同時開始。在此,在每個任務開始的時候,對于當前的任務tx系統工作區域Αη+1或Αη+Γ的全部內容會被拷貝到相應的工作區域Ax或Ax',如同在附圖中以附圖標記110對于CPUl和附圖標記110'對于CPU2所表明的那樣。在此,通過系統工作區域的傳輸計數器Z的比較來確保拷貝時的數據一致性。該寫入計數器比較在此在傳輸之前和/或之后進行。如果CPUl中的系統工作區域Αη+1和用于任務區塊tx的工作區域Ax之間或CPU2中的系統工作區域Αη+1'和用于任務區塊tx的工作區域Ax'之間出現傳輸計數器的偏差,或者兩個CPU的工作區域之間出現傳輸計數器的偏差,則重復所述進程。當傳輸計數器相一致時,在工作區域Ax或Ax'中準備好當前的內容之后實行實際的任務流程,而獨立于伙伴(Partner)CPU,也即是說在執行期間不進行CPU的同步化和不帶有喚醒報警信號閉塞地給出指令之間的(Befehlsgranularer)可中斷性。盡管有多任務功能性和指令之間的可中斷性,對于整個流程這導致了一個單任務系統(沒有任務協調和沒有同步化來用于以此為基礎的功能性)。在任務結束時,通過 整個任務的結果可以構成一個橫和以及準備好一個用于比較的伙伴分量,其在圖示中以附圖標記220表示。
如果橫和關于內容相等,那么在一個中斷封鎖之內將任務結果E*(tx)或E*(tx)'拷貝(附圖標記210和21(Γ )到CPUl和CPU2的各自的系統工作區域Αη+1或Αη+1'并且系統工作區域Αη+1或Αη+1'中的連續計數器Z遞增。緊接著可以開始下一個執行區塊。由此,每個單獨的任務可以以當前的和一致的數據在任意時間點同步開始于冗余控制器中。如果橫和不相同,那么可以考慮以下的做法:a.)暫存所確定的橫和,重新開始執行任務tx并比較;b.)如同在防止錯誤的系統中常見的那樣,取消自動化過程并且使自動化系統處于安全狀態;c.)檢查所規劃好的任務,將期待相等的橫和與得出的不同的橫和相比較。本發明并不限于之前所描述的實施方式。而是也可以考慮對單個特征的組合、修改或補充,其可以帶來其它有創造力的想法的可能的實施方式。例如,控制器CPUl和CPU2的系統工作區域Αη+1和Αη+Γ可以表示一個中央存儲的系統工作區域的拷貝,其中該中央存儲的系統工作區域在下一個待執行的任務區塊開始前被兩個控制器的系統工作區域的當前內容所替代。對于根據本發明的方法的所有執行方式都重要的僅僅是,冗余控制器(假如如前描述的是兩個或者更多)之間的誤差在每個執行區塊的結束的時候的定位,以及,這樣的錯誤立刻被識別從而不會帶來錯誤結果在過程中的傳遞和對錯誤值的繼續處理。由此,也可以識別RAM錯誤,其在傳統的自動化系統的很長時間的連續運行中會個別地出現。此外,根據本發明的方法可以非常簡單地實現對于冗余控制器的無沖擊地接通,因為額外的控制器可以特別地按照任務被接 通。
權利要求
1.一種用于具有至少兩個控制器(CPU1,CPU2)的自動化系統的過程冗余控制的方法,其中,每個控制器(CPU1,CPU2)依次執行數個(η)任務區塊(tl,t2,tx,《",tn),其中,用于任務區塊的執行的可傳輸的輸出數據(E(tl),E(t2),E(tx),一,E(tn))儲存在比任務區塊的個數超過一個的工作區域(Al,A2,Ax,...,An+l,Al',A2 ' ,Ax1,…,Αη+Γ ),所述工作區域分別容納了每個任務區塊的輸出數據,并且其中,額外多出的一個工作區域(Αη+Ι,Αη+Γ )作為系統工作區域容納當前可傳輸的輸出數據,并且為了執行任務區塊(tx)在每個控制器(CPUl,CPU2)中如下使用: -在待執行的任務區塊(tx)開始時(100),將系統工作區域(An+l,An+l')的當前的內容傳輸(I 10,110')到工作區域(Ax,Ax'), -在被執行的任務區塊(tx)結束時(200),將至少兩個控制器(CPU1,CPU2)的工作區域(Ax, Ax')的隨著被執行的任務區塊(tx)的結果更新的輸出數據(E*(tX),E*(tX)')相互比較(220),并且 -將所述工作區域(Ax,Ax')的被更新的內容接受(210,210')到系統工作區域(Αη+Ι,Αη+廣),以及,如果工作區域(Ax,Ax')的用于控制器(CPU1,CPU2)中的任務區塊(tx)的內容相互一致,則開始下一個任務區塊。
2.根據權利要求1所述的方法,其特征在于,在傳輸(110,110')之前和/或之后,對所述控制器(CPU1,CPU2)的當前的系統工作區域(An+l,An+l')的一個連續的傳輸計數器(Z,Z,)進行比較。
3.根據權利要求1或2所述的方法,其特征在于,在被執行的任務區塊(tx)結束(200)時,比較系統工作區域(An+l,An+l')的一個連續的傳輸計數器(Z,Z')并且將其遞增。
4.根據上述權利要求1至3中任一項所述的方法,其特征在于,在一個中斷封鎖期間將被更新的工作區域(Ax,Ax')的內容接受到系統工作區域(Αη+1,Αη+1,)。
5.根據上述權利要求1至4中任一項所述的方法,其特征在于,如果至少兩個控制器(CPU1,CPU2)的隨著被執行的任務區塊(tx)的結果更新的輸出數據(E* (tx),E* (tx) / )相同,則所述內容被判斷為一致。
6.根據上述權利要求5所述的方法,其特征在于,如果所述輸出數據(E*(tx),E*(tx),)的橫和相互一致,則所述輸出數據相等。
7.根據上述權利要求中任一項所述的方法,其特征在于,作為被更新的工作區域(Ax, Ax')的內容僅僅將所述被更新的輸出數據(E*(tX),E*(tX)')接受到系統工作區域(An+1, An+11 )。
8.根據上述權利要求中任一項所述的方法,其特征在于,控制器(CPU1,CPU2)的所述系統工作區域(Αη+1,Αη+Γ )是中央存儲的系統工作區域的拷貝,并且該中央存儲的系統工作區域在下一個待執行的任務區塊開始之前被控制器的系統工作區域的當前內容所替代。
全文摘要
本發明涉及一種用于具有至少兩個控制器(CPU1,CPU2)的自動化系統的過程冗余控制的方法,其中,每個控制器(CPU1,CPU2)依次執行n個任務區塊(t1,t2,tx,…,tn),其中用于任務區塊的執行的可傳輸的輸出數據(E(t1),E(t2),E(tx),…,E(tn))儲存在比任務區塊的個數超過一個的工作區域(A1,A2,Ax,…,An+1,A1′,A2′,Ax′,…,An+1′)中,所述工作區域分別容納了每個任務區塊的輸出數據,其中,額外多出的一個工作區域(An+1,An+1′)作為系統工作區域容納當前可傳輸的輸出數據。一個非常簡單而且可靠的用于同步數據管理和冗余控制器控制的方法可以如下實現,在一個冗余控制器內的任務區塊開始的時候,分別把之前同步的內容從系統工作區域傳輸到工作區域,然后在任務區塊被執行的時候更新所述內容,如果被更新的內容在冗余控制器內一致,則在下一個任務區塊開始之前再次接受所述被更新內容到系統工作區域。
文檔編號G05B9/03GK103154837SQ201180048858
公開日2013年6月12日 申請日期2011年8月10日 優先權日2010年8月20日
發明者E.埃哈特, W.格里斯鮑姆 申請人:西門子公司