国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      同步方法

      文檔序號(hào):6277900閱讀:232來源:國知局
      專利名稱:同步方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種由至少兩個(gè)分系統(tǒng)構(gòu)成的冗余自動(dòng)化系統(tǒng)的同步方法,其中至少兩個(gè)分系統(tǒng)具有至少一個(gè)處理器并通過通信裝置相互聯(lián)通,所述分系統(tǒng)為控制一個(gè)過程執(zhí)行功能相同的機(jī)器指令序列并有時(shí)候通過通信裝置相互同步。
      通常的自動(dòng)化系統(tǒng)的同步方法是已知的。在采用EP-A-0497147的方法時(shí),由兩個(gè)分系統(tǒng)構(gòu)成的自動(dòng)化系統(tǒng)的分系統(tǒng)至遲在由使用者預(yù)選定的時(shí)間后進(jìn)行同步。類似的方法在EP-A-0 616 274中也有所記載。在此,根據(jù)機(jī)器指令序列的實(shí)際運(yùn)行時(shí)間進(jìn)行同步。為此,既需要了解應(yīng)用程序指令的運(yùn)行時(shí)間,又需要對這些運(yùn)行時(shí)間持續(xù)累加。由于為實(shí)現(xiàn)同步不必要地消耗過多的時(shí)間,因此已知的方法就此而言還不是最佳的。
      故本發(fā)明的目的在于,提出一種以最小付出實(shí)現(xiàn)一個(gè)至少由兩個(gè)分系統(tǒng)構(gòu)成的自動(dòng)化系統(tǒng)的同步的同步方法。其中同步方法應(yīng)與是否具有專用的硬件無關(guān)。其中本發(fā)明的同步方法對自動(dòng)化系統(tǒng)的計(jì)算能力的影響應(yīng)當(dāng)盡可能小。
      本發(fā)明的目的是通過具有權(quán)利要求1或2特征部分的特征的方法來實(shí)現(xiàn)的。
      本發(fā)明的同步方法以每個(gè)分系統(tǒng)的計(jì)數(shù)器(以下稱作同步計(jì)數(shù)器)為基礎(chǔ),該同步計(jì)數(shù)器通過增值變更語句被增值變更,即增大1。對一個(gè)處理器來說,增值變更是一個(gè)特別簡單的任務(wù),該任務(wù)在具體情況下甚至在一個(gè)脈沖周期內(nèi)即可完成,并因而可特別迅速地完成。
      至少當(dāng)至少兩個(gè)分系統(tǒng)中的一個(gè),以下稱作報(bào)警分系統(tǒng),記錄了一個(gè)特殊事件,例如一個(gè)中斷或報(bào)警時(shí),進(jìn)行同步。在此情況時(shí),報(bào)警分系統(tǒng)向至少另一分系統(tǒng)轉(zhuǎn)送其同步計(jì)數(shù)器的實(shí)際值。通過此轉(zhuǎn)送至少另一分系統(tǒng)至少被告知,出現(xiàn)了特殊事件。至少另一分系統(tǒng)向每個(gè)其它的分系統(tǒng)轉(zhuǎn)送其同步計(jì)數(shù)器的實(shí)際值。每個(gè)分系統(tǒng)隨之既了解了自己的同步計(jì)數(shù)器的實(shí)際值,又了解了至少另一分系統(tǒng)的同步計(jì)數(shù)器的值。
      在出現(xiàn)特殊事件的時(shí)間點(diǎn),就執(zhí)行機(jī)器指令序列而言,一個(gè)分系統(tǒng)可以超前于至少另一分系統(tǒng)。如果是此情況,此外超前的分系統(tǒng)可能已經(jīng)執(zhí)行了較大數(shù)量的增值變更語句,從而出現(xiàn)了兩個(gè)分系統(tǒng)同步計(jì)數(shù)器值的差異。
      每個(gè)分系統(tǒng)由自己的同步計(jì)數(shù)器的值和至少另一分系統(tǒng)的同步計(jì)數(shù)器的值求出實(shí)際最大值。所有的分系統(tǒng)通過繼續(xù)執(zhí)行機(jī)器指令序列可共同到達(dá)的同步計(jì)數(shù)器的值是同步計(jì)數(shù)器增大了1的,即經(jīng)增值變更的最大值。因而在每個(gè)分系統(tǒng)中,所有的分系統(tǒng)的同步計(jì)數(shù)器的最大值都被增值變更。這個(gè)對所有的分系統(tǒng)都相同的值在下面被稱作同步計(jì)數(shù)器-目的值。對此值當(dāng)然也可以采用另一方式加以確定,其中首先對同步計(jì)數(shù)器的值進(jìn)行增值變更并接著求出作為最大值的同步計(jì)數(shù)器-目的值。
      當(dāng)?shù)竭_(dá)某個(gè)增值變更語句位置時(shí),下面對此稱作同步位置,在此位置同步計(jì)數(shù)器的值到達(dá)同步計(jì)數(shù)器-目的值,分系統(tǒng)中斷執(zhí)行機(jī)器指令序列。由于增值變更語句出現(xiàn)在機(jī)器指令功能相同的序列的相互一致的位置,因此增值變更語句特別適用于作為潛在的同步位置。
      另一方面,通過某個(gè)同步計(jì)數(shù)器的值與同步計(jì)數(shù)器-目的值的比較可以非常簡單地推斷出是否到達(dá)這種同步位置。故同步方法基本建立在增值-及比較運(yùn)算上,由一個(gè)處理器即可以特別迅速和高效地實(shí)現(xiàn)所述增值-及比較運(yùn)算。
      由于兩個(gè)分系統(tǒng)可以在不同的時(shí)間點(diǎn)上到達(dá)其同步位置,故每個(gè)分系統(tǒng)都利用同步信號(hào)向至少另一分系統(tǒng)通告到達(dá)同步位置的信息。每個(gè)分系統(tǒng)接著等待由至少另一分系統(tǒng)發(fā)送的同步信號(hào)的輸入,通過此同步信號(hào)該分系統(tǒng)通告它已經(jīng)到達(dá)同步位置。在有一個(gè)以上的其它的分系統(tǒng)情況下,每個(gè)分系統(tǒng)都要等待來自所有其它的分系統(tǒng)的同步信號(hào)的輸入,從而使每個(gè)分系統(tǒng)只有在所有的分系統(tǒng)已到達(dá)同步位置時(shí),才繼續(xù)動(dòng)作。
      但在到達(dá)同步位置時(shí)不交換同步信號(hào)的應(yīng)用情況也同樣是可以想像的。
      每個(gè)分系統(tǒng)在至少另一分系統(tǒng)到達(dá)同步位置并記錄同步信號(hào)后,求出對特殊事件的特定的響應(yīng)并執(zhí)行此響應(yīng)。該響應(yīng)是對特殊事件特定的機(jī)器指令序列。此后每個(gè)分系統(tǒng)繼續(xù)執(zhí)行這個(gè)機(jī)器指令序列,在到達(dá)同步位置時(shí)基于同步及基于對特殊事件的響應(yīng)該執(zhí)行被復(fù)位。
      報(bào)警的分系統(tǒng)最早直接在記錄特殊事件后,例如結(jié)合轉(zhuǎn)送同步計(jì)數(shù)器的實(shí)際值,最遲也可以結(jié)合同步信號(hào)向至少另一分系統(tǒng)轉(zhuǎn)送特殊事件。
      但也有下述情況,在執(zhí)行對特殊事件的特定的響應(yīng)時(shí)不進(jìn)行交換和對同步信號(hào)的等待。在這種情況時(shí),當(dāng)?shù)竭_(dá)同步位置時(shí)直接執(zhí)行特殊事件-特定的響應(yīng)。雖然未進(jìn)行時(shí)間同步,但采用本發(fā)明的方法保證了盡管不是同時(shí),但卻是在某個(gè)分系統(tǒng)機(jī)器指令序列內(nèi)的功能相同的位置執(zhí)行特殊事件-特定的響應(yīng)。由于同步位置設(shè)置在功能相同的機(jī)器指令序列的相互一致的位置,故采用此方式可以保證所需的同步。
      如果按照權(quán)利要求3求出機(jī)器指令序列的每個(gè)機(jī)器指令的地址,尤其是實(shí)際待執(zhí)行的機(jī)器指令的地址以及某個(gè)與同步位置一致的機(jī)器指令的地址,則尤其可以有效地到達(dá)同步位置。
      因而可以至少在由報(bào)警的分系統(tǒng)對特殊事件記錄之后執(zhí)行機(jī)器指令序列時(shí),始終將實(shí)際待執(zhí)行的機(jī)器指令的地址與某個(gè)與同步位置一致的機(jī)器指令的地址進(jìn)行比較。如果確定出所比較的兩個(gè)地址一致時(shí),則到達(dá)同步位置。采用此方式正好在到達(dá)同步位置時(shí)可中斷執(zhí)行機(jī)器指令序列。
      在同步位置位于機(jī)器指令序列的一個(gè)有條件或無條件重復(fù)的分序列中時(shí),則對各個(gè)機(jī)器指令多次處理。但只有當(dāng)隨著執(zhí)行增值變更語句同步計(jì)數(shù)器到達(dá)同步計(jì)數(shù)器-目的值時(shí),增值變更語句位置才變成同步位置。故在循環(huán)的情況下會(huì)出現(xiàn),在循環(huán)范圍內(nèi)多次對增值變更語句進(jìn)行處理,但只有在一定數(shù)量的處理后才成為同步位置的情況。在此情況時(shí)僅求出增值變更語句的地址是不夠的。在此情況下,只有當(dāng)實(shí)際執(zhí)行的機(jī)器指令的地址與某個(gè)與潛在的同步位置一致的機(jī)器指令的地址相一致并且同時(shí)同步計(jì)數(shù)器與同步計(jì)數(shù)器目的值一致時(shí),才到達(dá)同步位置。
      如上所述,當(dāng)求出每個(gè)機(jī)器指令的地址時(shí),除此之外還有一“斷點(diǎn)”與同步位置連接,從而使機(jī)器指令序列的執(zhí)行正好在同步位置中斷。由處理器直接進(jìn)行檢查,看同步位置,即與斷點(diǎn)連接的地址是否已達(dá)到。通常由INTEL公司生產(chǎn)的處理器,例如i80386、i80486、奔騰等在到達(dá)與斷點(diǎn)連接的地址時(shí)啟動(dòng)中斷,中斷的實(shí)現(xiàn)明確地表明已到達(dá)有關(guān)的地址。
      如果處理器可以單步方式運(yùn)行,那么也可以至少在報(bào)警的分系統(tǒng)記錄一特殊事件后執(zhí)行機(jī)器指令序列時(shí),始終將實(shí)際執(zhí)行的機(jī)器指令的地址與同步位置的地址進(jìn)行比較。當(dāng)確定一致時(shí),則到達(dá)同步位置并且中斷機(jī)器指令序列的各個(gè)指令的處理。
      按照權(quán)利要求4的特征,到達(dá)同步位置的另一有效的方案在于,在至少由報(bào)警的分系統(tǒng)記錄特殊事件之后執(zhí)行機(jī)器指令序列時(shí),始終將同步計(jì)數(shù)器的值與同步計(jì)數(shù)器-目的值進(jìn)行比較并且當(dāng)同步計(jì)數(shù)器值到達(dá)同步計(jì)數(shù)器-目的值時(shí),中斷執(zhí)行機(jī)器指令序列。為此求出第一存儲(chǔ)位置和第二存儲(chǔ)位置,其中在第一存儲(chǔ)位置存儲(chǔ)同步計(jì)數(shù)器的值并且在第二存儲(chǔ)位置存儲(chǔ)同步計(jì)數(shù)器-目的值。在采用通用的處理器時(shí),尤其是INTEL公司生產(chǎn)的所述處理器時(shí),對處理器的編程應(yīng)使一旦第一存儲(chǔ)位置的內(nèi)容與第二存儲(chǔ)位置的內(nèi)容一致時(shí),中斷機(jī)器指令序列的執(zhí)行。該處理器專用的功能迄今首先用于查找錯(cuò)誤程序,即所謂的調(diào)試程序。但當(dāng)然也可以利用此功能到達(dá)同步位置。
      可以按照不同的策略確定機(jī)器指令序列內(nèi)的增值語句的位置。在由一種程序設(shè)計(jì)語言的指令序列產(chǎn)生機(jī)器指令序列時(shí),比較有利的是在指令序列轉(zhuǎn)換成機(jī)器指令序列時(shí)插入增值變更語句。在產(chǎn)生機(jī)器指令序列之后,但在執(zhí)行該機(jī)器指令之前利用再定位將增值變更語句插入機(jī)器指令序列中也屬于本發(fā)明的范圍。
      當(dāng)指令序列涉及的是一種程序設(shè)計(jì)語言的指令序列時(shí),其中相關(guān)連的指令序列被合并在一個(gè)程序塊中,則增值變更的語句分別在至少程序塊的一個(gè)界偶處插入機(jī)器指令的序列中。這種程序設(shè)計(jì)語言例如包括諸如PASCAL、PEARL、C/C++等所有“結(jié)構(gòu)化的”程序設(shè)計(jì)語言,它們都分別具有用于協(xié)定程序塊的語言手段,其中專用的語言手段另外還隱含地確定一個(gè)程序塊。
      與按照EP-A-0 497 147的已有技術(shù)相同,結(jié)合所有的跳變指令,例如有條件的和無條件的跳變指令始終必須插入增值變更語句。其中跳變指令系指在處理器可以直接理解的語言級(jí)導(dǎo)致有條件的或無條件的跳變的所有指令并且也包括所謂的高級(jí)語言的語句。由于可能需要通過跳變越過增值變更語句,所以此點(diǎn)是必要的。尤其考慮到,通過跳變將在較長的、可能甚至無限的時(shí)間內(nèi)在兩個(gè)增值變更語句間僅執(zhí)行機(jī)器指令,從而在這個(gè)時(shí)間內(nèi)沒有增值變更語句被執(zhí)行。在此情況時(shí),相應(yīng)不會(huì)到達(dá)潛在的同步位置,從而不會(huì)實(shí)現(xiàn)同步。所以增值變更語句經(jīng)常地,但不是必要地,插入在這種跳變指令前。
      在調(diào)用所謂的子程序的情況下,如果將增值變更語句插入在子程序內(nèi),即插入在子程序的開始和結(jié)束處,則是有益的。由于雖然是子程序的開始和結(jié)束,但對子程序的調(diào)用并不總是可以明顯地識(shí)別出,因而宜對增值變更語句插入機(jī)器指令序列進(jìn)行明顯的簡化。例如在采用匯編程序設(shè)計(jì)語言時(shí),在這里稱作調(diào)用語句和返回語句,所述語句分別啟動(dòng)向子程序的跳變及由子程序的返回。
      在通常其專用的程序設(shè)計(jì)語言不能為面向程序塊的結(jié)構(gòu)化提供語言手段的存儲(chǔ)器編程控制的情況下,增值變更語句始終插入在跳變指令前。特別是在存儲(chǔ)器編程控制的情況下,經(jīng)常利用所謂的“組件”實(shí)現(xiàn)機(jī)器指令序列的結(jié)構(gòu)化。因而完全可以把組件視為一程序塊的專門的特征。由于是利用跳變指令實(shí)現(xiàn)的在執(zhí)行存儲(chǔ)器編程控制的機(jī)器指令序列時(shí)必要的組件變換,故在此將增值變更語句插入在跳變指令前也會(huì)達(dá)到所需的結(jié)果。以類似的方式,這些同樣也適用于如匯編或BASIC等非結(jié)構(gòu)化的或僅在很小程度上結(jié)構(gòu)化的程序設(shè)計(jì)語言。
      另外也可以在一固定的,尤其是由使用者預(yù)定數(shù)量的機(jī)器指令序列的單個(gè)指令之后將增值變更語句插入到機(jī)器指令序列中。采用此方式預(yù)定的增值變更語句的順序具有這樣的優(yōu)點(diǎn),在兩個(gè)增值變更語句間的平均時(shí)段始終是大致相同的。由在增值變更語句間執(zhí)行的各個(gè)指令的運(yùn)行時(shí)間的總和確定出現(xiàn)兩個(gè)增值變更語句間的時(shí)間。
      如果需要以實(shí)際等距離時(shí)間間隔的、與增值變更語句一致的潛在的同步位置,則在將程序設(shè)計(jì)語言的指令序列轉(zhuǎn)換成機(jī)器指令序列時(shí)求出每個(gè)單獨(dú)指令的運(yùn)行時(shí)間并通過將各單獨(dú)指令的運(yùn)行時(shí)間累加求出單獨(dú)指令序列的運(yùn)行時(shí)間。在到達(dá)一確定的,尤其是由使用者預(yù)定的運(yùn)行時(shí)間時(shí),在機(jī)器指令序列中插入一增值變更語句。在一增值變更語句后,又重新從零開始對各指令的運(yùn)行時(shí)間進(jìn)行累加。但出于上述原因,始終需要將增值變更語句插入在跳變指令前。另外除了在固定的運(yùn)行時(shí)間-/空間間隔后的插入外,還可以附加在跳變指令前實(shí)現(xiàn)增值變更語句。但另外也可以在一個(gè)插入在跳變指令前的增值變更語句后,從零開始對運(yùn)行時(shí)間或間隔的計(jì)數(shù)。
      另外增值變更語句也可插入到機(jī)器指令序列或指令順序序列中,對此下面稱作源序列或源順序,其中對有關(guān)某機(jī)器指令或某指令順序的源序列或源順序,尤其是有關(guān)機(jī)器指令序列的某子序列或指令順序的某子序列(對此下面稱作搜索序列或搜索順序)的源序列或源順序進(jìn)行檢查。
      一旦識(shí)別出源序列或源順序中的搜索序列或搜索順序,即可以將增值變更語句前置于搜索序列或搜索順序或附加于后。搜索序列或搜索順序是源序列或源順序的某些單元的特征,如上所述,增值變更語句(即至少程序塊邊界和/或跳變指令)被分配給源序列或源順序的這些單元。
      按照一專門的實(shí)現(xiàn)方式,利用一專門的編譯程序器實(shí)現(xiàn)增值變更語句的插入。專門的編譯程序器的轉(zhuǎn)換方法與標(biāo)準(zhǔn)的編譯程序器的轉(zhuǎn)換方法的區(qū)別在于,對那些例如給程序塊或跳變指令定義的語言手段進(jìn)行識(shí)別并將其轉(zhuǎn)換成所配屬的機(jī)器指令以及附加轉(zhuǎn)換成增值變更語句。
      另一種選擇方案是采用所謂的“預(yù)處理程序”(“Pre-Prozessor”)。利用此預(yù)處理程序可對程序設(shè)計(jì)語言的指令順序進(jìn)行預(yù)處理。借助一個(gè)專門的程序員基本已知的句法即可驅(qū)動(dòng)這種預(yù)處理程序,一種設(shè)序設(shè)計(jì)語言特定的語言手段,例如引導(dǎo)一個(gè)程序塊的語言手段與引導(dǎo)這樣一種程序塊的語言手段以及啟動(dòng)增值變更語句的另一種語言手段進(jìn)行調(diào)換。
      但將增值變更語句以對使用者透明的方式插入機(jī)器指令序列中卻是合乎人們愿望的。在預(yù)處理程序上的上述語句對使用者來說是可識(shí)別的并因而是可操作的。但操作有時(shí)也會(huì)導(dǎo)致同步時(shí)的差錯(cuò)和/或產(chǎn)生的程序本身的差錯(cuò)。所以用于將增值變更語句插入指令序列中的另一有益的選擇方案在于,替代預(yù)處理程序采用一專用的預(yù)處理程序,該專用的預(yù)處理程序與有時(shí)其它的按照語句的交換無關(guān),至少將那些按照上述表述分配有一個(gè)增值變更語句的指令序列轉(zhuǎn)換成剛才那個(gè)指令序列以及增值變更語句。
      除上述基本不由使用者施加影響的插入增值變更語句的方案外,另外還可以由使用者親自將增值變更語句插入到機(jī)器指令序列中或插入到指令順序序列中。
      從下述對實(shí)施例的說明中可得出本發(fā)明進(jìn)一步的優(yōu)點(diǎn)和細(xì)節(jié)。附圖中

      圖1為自動(dòng)化系統(tǒng)的線路框圖;圖2為同步方法的原理圖;圖3為同步方法的流程圖;圖4為插入方法的原理圖;圖5和6為插入方法的流程圖。
      如圖1所示,冗余自動(dòng)化系統(tǒng)1由至少二個(gè)分系統(tǒng)2、2’構(gòu)成,所述分系統(tǒng)為操縱和控制一個(gè)圖中未示出的技術(shù)過程,與該技術(shù)過程結(jié)合在一起。每個(gè)分系統(tǒng)2、2’具有一個(gè)處理器3、一個(gè)數(shù)據(jù)存儲(chǔ)單元4、一個(gè)指令序列存儲(chǔ)單元5以及至少一個(gè)通信裝置6。其中數(shù)據(jù)存儲(chǔ)單元4和指令序列存儲(chǔ)單元5不必非得是冗余自動(dòng)化系統(tǒng)1中的分立單元。
      至少二個(gè)分系統(tǒng)2、2’通過通信裝置6并通過總線7實(shí)現(xiàn)相互間及與圖中未示出的技術(shù)過程的聯(lián)通。
      在數(shù)據(jù)存儲(chǔ)單元4中至少存儲(chǔ)有同步計(jì)數(shù)器的值SZ、SZ'的值以及同步計(jì)數(shù)器-目的值SZZ。在指令序列存儲(chǔ)單元5中至少存儲(chǔ)有機(jī)器指令MP序列。機(jī)器指令MP序列對于二個(gè)分系統(tǒng)2、2’至少功能相同。在對圖中未示出的技術(shù)過程進(jìn)行控制時(shí),由分系統(tǒng)2、2’的處理器3執(zhí)行指令序列存儲(chǔ)單元5的機(jī)器指令MP序列。
      在圖2中示出至少兩個(gè)分系統(tǒng)2、2’的機(jī)器指令MP序列。在左側(cè)的機(jī)器指令MP序列是分系統(tǒng)2的機(jī)器指令MP序列,在右側(cè)的機(jī)器指令MP序列是分系統(tǒng)2'的機(jī)器指令MP序列。
      如圖2所示,增值語句IA插入機(jī)器指令MP序列中。利用增值語句IA,某分系統(tǒng)2、2’的同步計(jì)數(shù)器SZ,SZ'被增值,即增大1。在機(jī)器指令MP序列內(nèi)用箭頭10、10'標(biāo)示的位置分別表示那個(gè)在出現(xiàn)特殊事件11的時(shí)間點(diǎn)被實(shí)際執(zhí)行的機(jī)器指令。另外從圖2中還看出,至少有一個(gè)分系統(tǒng)2、2’將特殊事件11記錄下來。
      如圖2所示,分系統(tǒng)2、2’在此時(shí)間點(diǎn)執(zhí)行機(jī)器指令MP序列的不同的機(jī)器指令。在此時(shí)間點(diǎn)對特殊事件11的處理有時(shí)將導(dǎo)致產(chǎn)生自動(dòng)化系統(tǒng)1的分系統(tǒng)2、2’的不穩(wěn)定的數(shù)據(jù)。所以在特殊事件11處理之前需要實(shí)現(xiàn)分系統(tǒng)2、2’的同步。在分系統(tǒng)2中,在出現(xiàn)特殊事件11的時(shí)間點(diǎn)上同步計(jì)數(shù)器SZ具有的值為n。在分系統(tǒng)2'中,在出現(xiàn)特殊事件的時(shí)間點(diǎn)上同步計(jì)數(shù)器SZ'具有的值已經(jīng)是n+1。
      為實(shí)現(xiàn)同步,某個(gè)在執(zhí)行機(jī)器指令MP序列時(shí)超前于至少另一分系統(tǒng)2、2’的分系統(tǒng)必須中斷機(jī)器指令MP序列的執(zhí)行,直至另一分系統(tǒng)2、2’到達(dá)機(jī)器指令MP功能相同的序列內(nèi)的相關(guān)位置。
      增值語句IA是機(jī)器指令MP序列中的直接相應(yīng)的位置。同步計(jì)數(shù)器SZ'在圖2中所示的狀況下具有的值為n+1。同步計(jì)數(shù)器SZ具有的值為n。如果分系統(tǒng)2'的機(jī)器指令MP序列的執(zhí)行暫停在實(shí)際狀況下,同時(shí)在分系統(tǒng)2中的機(jī)器指令MP序列的執(zhí)行繼續(xù)進(jìn)行,直至同步計(jì)數(shù)器SZ也到達(dá)值n+1,則還沒有實(shí)現(xiàn)同步。
      所以兩個(gè)分系統(tǒng)2、2’可同時(shí)到達(dá)的下一個(gè)增值語句IA是同步計(jì)數(shù)器SZ和同步計(jì)數(shù)器SZ'都取值n+2時(shí)的同步語句IA。兩個(gè)分系統(tǒng)2、2’能共同到達(dá)的同步計(jì)數(shù)器SZ、SZ'的值被稱作同步計(jì)數(shù)器-目的值SZZ。其中同步位置SP相應(yīng)于機(jī)器指令MP序列內(nèi)的某增值語句IA的位置,在此位置同步計(jì)數(shù)器SZ、SZ'的值到達(dá)同步計(jì)數(shù)器-目的值SZZ。
      如圖3所示,在對特殊事件11記錄后報(bào)警的分系統(tǒng)2為推斷同步計(jì)數(shù)器-目的值SZZ向至少另一分系統(tǒng)2'發(fā)送它的同步計(jì)數(shù)器SZ的值以及特殊事件11。這是用于轉(zhuǎn)送特殊事件11的盡可能早的時(shí)間點(diǎn)。最遲必須與轉(zhuǎn)送同步信號(hào)SS相關(guān)聯(lián)轉(zhuǎn)送特殊事件。以此方式使至少另一分系統(tǒng)2'被告知出現(xiàn)特殊事件11并發(fā)送其同步計(jì)數(shù)器SZ'的實(shí)際值,此實(shí)際值被報(bào)警的分系統(tǒng)2接收到。
      每個(gè)分系統(tǒng)2、2’了解了自己的同步計(jì)數(shù)器SZ的值以及至少另一分系統(tǒng)2、2’的同步計(jì)數(shù)器SZ'的值。由兩個(gè)被增值變更的同步計(jì)數(shù)器SZ、SZ'的最大值得出同步計(jì)數(shù)器-目的值SZZ。當(dāng)然另外也可以首先推斷最大值并通過對該最大值的增值變更求出同步計(jì)數(shù)器-目的值SZZ。
      在同步計(jì)數(shù)器SZ、SZ'的信息交換后,兩個(gè)分系統(tǒng)2、2’繼續(xù)執(zhí)行機(jī)器指令MP序列。一旦一個(gè)分系統(tǒng)2、2’在執(zhí)行機(jī)器指令MP序列時(shí)已到達(dá)同步位置SP,則中斷機(jī)器指令MP序列的執(zhí)行??梢酝ㄟ^實(shí)際執(zhí)行的機(jī)器指令MP序列的指令的地址與同步位置SP的地址的比較或者如圖3所示,通過監(jiān)督同步計(jì)數(shù)器SZ、SZ'的值是否到達(dá)同步計(jì)數(shù)器-目的值SZZ來判別是否到達(dá)同步位置SP。
      每個(gè)到達(dá)同步位置SP的分系統(tǒng)2、2’通過轉(zhuǎn)送同步信號(hào)SS向至少另一分系統(tǒng)2、2’通告已到達(dá)同步位置SP。報(bào)警的分系統(tǒng)2、2’最早緊接著對特殊事件11記錄之后并且最遲與同步信號(hào)SS的轉(zhuǎn)送相結(jié)合向至少另一分系統(tǒng)2、2’轉(zhuǎn)送特殊事件11。
      每個(gè)分系統(tǒng)2、2’一旦到達(dá)同步位置SP并且由至少另一分系統(tǒng)2、2’接收到同步信號(hào)SS時(shí),就求出對特殊事件11特定的響應(yīng)并執(zhí)行此響應(yīng)。在執(zhí)行完對特殊事件11特定的響應(yīng)后,將繼續(xù)執(zhí)行同步位置SP后面的機(jī)器指令MP的序列。
      如在開始時(shí)已提及的那樣,也有為執(zhí)行特殊事件11特定的響應(yīng)時(shí)不需要信息交換和等待同步信號(hào)SS的情況。在此種情況時(shí),當(dāng)?shù)竭_(dá)同步位置SP時(shí)直接執(zhí)行特殊事件的特定的響應(yīng)。所以在這里明確地指出,在圖3流程圖中在詢問“SZ<SZZ?”與執(zhí)行“特殊事件-特定響應(yīng)”間的程序塊是可選用的。每次如果不需要精確的時(shí)間同步并且如果特殊事件-特定響應(yīng)雖然不是同時(shí)的,但是在機(jī)器指令MP序列的功能相同的位置上執(zhí)行已足夠了的時(shí)候,就可以省去選用這一節(jié)。
      按照本發(fā)明同步方法的一種選擇設(shè)計(jì),替代增值語句IA將減值語句IA插入機(jī)器指令序列中。在此種情況時(shí),與上述同步計(jì)數(shù)器SZ、SZ'由0開始分別增值1相同,同步計(jì)數(shù)器SZ、SZ'由起動(dòng)值,例如32.767開始,分別減值變更。其中同步方法在這種減值變更的同步計(jì)數(shù)器SZ、SZ'計(jì)值的情況下以完全類似的方式進(jìn)行。
      圖4以一種程序設(shè)計(jì)語言的指令序列為例示出增值語句的IA的插入方法。尤其是對結(jié)構(gòu)化的程序設(shè)計(jì)語言,在一所謂的結(jié)構(gòu)圖形(Struktogramm)中實(shí)現(xiàn)了對程序過程的顯示。由此結(jié)構(gòu)圖形中尤其可以看到程序塊邊界和相伴隨的結(jié)構(gòu)化。在圖的左側(cè)示意示出簡化的結(jié)構(gòu)圖形。結(jié)構(gòu)圖形由二個(gè)程序塊B1和B2構(gòu)成,其中程序塊B1例如用于所謂的主程序,與此相反程序塊B2例如用于所謂的子程序。
      在主程序B1中開始執(zhí)行程序。主程序B1和子程序B2分別構(gòu)成一單獨(dú)的程序塊。所以它們分別被置入程序塊指令。在主程序B1及子程序B2開始處的程序塊指令分別引出程序塊,在主程序B1及子程序B2結(jié)束處的程序塊指令結(jié)束程序塊。而且在一個(gè)程序塊的語句中會(huì)出現(xiàn)其它程序塊,例如與在循環(huán)時(shí)相同的多次重復(fù)的語句。在主程序B1中,由內(nèi)部程序塊調(diào)用子程序B2。
      圖4在右側(cè)示出通過插入增值變更語句IA所形成的結(jié)構(gòu)圖形。每個(gè)引導(dǎo)一個(gè)程序塊的程序塊指令被轉(zhuǎn)換成一個(gè)引導(dǎo)一個(gè)程序塊的程序塊指令和一個(gè)增值變更語句IA;每個(gè)結(jié)束一個(gè)程序塊的程序塊指令被轉(zhuǎn)換成一個(gè)增值語句IA和一個(gè)結(jié)束程序塊的程序塊指令。程序塊指令和增值變更語句IA的順序并不限于圖4中所示的順序并且也可以進(jìn)行變更。而且在主程序B1的內(nèi)部程序塊中調(diào)用子程序的語句被轉(zhuǎn)換成增值語句IA和調(diào)用子程序B2的語句。
      圖5和6分別示出一個(gè)插入方法流程圖。
      圖5示出權(quán)利要求6所述的插入方法。首先對指令計(jì)數(shù)器BZ的值預(yù)置,即置零。接著求出機(jī)器指令MP序列的實(shí)際后承的機(jī)器指令。只有當(dāng)機(jī)器指令涉及的是一個(gè)跳變指令時(shí),增值變更指令I(lǐng)A才被插入機(jī)器指令MP序列中。只有當(dāng)指令計(jì)數(shù)器BZ超過指令計(jì)數(shù)器閥值BZS時(shí),增值變更語句IA才被插入機(jī)器指令MP序列中并且接著指令計(jì)數(shù)器BZ又被置于零。此后,求出的機(jī)器指令被插入機(jī)器指令MP序列中。在緊接插入機(jī)器指令后,指令計(jì)數(shù)器BZ被增值變更,即增大1,這是因?yàn)檫@時(shí)機(jī)器指令MP序列的機(jī)器指令的數(shù)量正如增加一個(gè)機(jī)器指令。隨著求出一個(gè)機(jī)器指令繼續(xù)進(jìn)行處理,直至所有的機(jī)器指令被處理完畢。
      替代圖5中所示的指令計(jì)數(shù)器BZ及指令計(jì)數(shù)器閥值BZS也可以采用運(yùn)行時(shí)間計(jì)數(shù)器及運(yùn)行時(shí)間計(jì)數(shù)器閥值。運(yùn)行時(shí)間計(jì)數(shù)器被分別增大一個(gè)插入的機(jī)器指令的運(yùn)行時(shí)間。運(yùn)行時(shí)間計(jì)數(shù)器-閥值預(yù)先給定兩個(gè)增值變更語句IA間的運(yùn)行時(shí)間。
      圖6示出按照權(quán)利要求7的插入方法,該方法涉及機(jī)器指令MP序列及一種程序設(shè)計(jì)語言的指令順序的序列,通過對該序列的解釋控制一個(gè)過程,尤其是一個(gè)技術(shù)過程。為插入增值語句IA,檢查機(jī)器指令MP序列及指令順序的序列,看是否出現(xiàn)搜索序列及搜索順序。只有當(dāng)在機(jī)器指令序列及指令順序的序列內(nèi)找到搜索序列及搜索順序時(shí),才插入增值語句。該插入方法采用檢查機(jī)器指令序列及指令順序的序列的方式繼續(xù)進(jìn)行,直至對所述序列檢查完畢。
      最后還應(yīng)對“功能相同”這一措詞的含義說一下看法。機(jī)器指令功能相同的序列例如是作為不同的高級(jí)語言的語句編譯的結(jié)果,但所述不同的高級(jí)語言的語句描述的都是一個(gè)和同一任務(wù)。另外,機(jī)器指令的功能相同的序列是作為由一種高級(jí)語言的語句編譯的結(jié)果產(chǎn)生的,但所述一種高級(jí)語言的語句是由該種語言的不同的編譯器轉(zhuǎn)換的。機(jī)器指令的功能相同的序列也是作為由一種或同一高級(jí)語言的語句編譯的結(jié)果實(shí)現(xiàn)的,所述高級(jí)語言的語句描述的是同一任務(wù),所述任務(wù)由一個(gè)或同一編譯器,但對此編譯器采用不同的參數(shù),例如采用不同的最佳化層進(jìn)行處理。
      權(quán)利要求
      1.一種由至少兩個(gè)分系統(tǒng)(2、2’)構(gòu)成的冗余自動(dòng)化系統(tǒng)(1)的同步方法,其中至少兩個(gè)分系統(tǒng)(2、2’)分別具有至少一個(gè)處理器(3),并通過通信裝置(6)相互連接,為控制處理器,執(zhí)行機(jī)器指令(MP)功能相同的序列并有時(shí)候通過通信裝置相同步,其特征在于-每個(gè)分系統(tǒng)(2、2’)具有一個(gè)同步計(jì)數(shù)器(SZ、SZ’),-功能相同的機(jī)器指令(MP)序列在相互一致的位置中具有增值變更-或減值變更語句(IA),利用所述增值變更-或減值變更語句同步計(jì)數(shù)器(SZ、SZ’)被增值變更或減值變更,-至少在一個(gè)分系統(tǒng)(2、2’),即報(bào)警的分系統(tǒng)(2、2’)記錄一個(gè)特殊事件(11)時(shí),進(jìn)行同步,-其中該同步的步驟如下每個(gè)分系統(tǒng)(2、2’)a)向另一分系統(tǒng)(2、2’)轉(zhuǎn)送其同步計(jì)數(shù)器(SZ、SZ’)的實(shí)際值,b)由自己的同步計(jì)數(shù)器(SZ、 SZ’)的增值變更的或減值變更的值并由一分系統(tǒng)(2、2’)的同步計(jì)數(shù)器(SZ、SZ’)的增值變更的或減值變更的值求出實(shí)際的最大值或最小值,同步計(jì)數(shù)器-目的值(SZZ),c)在到達(dá)機(jī)器指令(MP)序列內(nèi)的一個(gè)位置(下面稱作同步位置(SP))時(shí),在此位置同步計(jì)數(shù)器(SZ、SZ’)的值到達(dá)同步計(jì)數(shù)器-目的值(SZZ),中斷機(jī)器指令(MP)序列的執(zhí)行,d)求出對特殊事件(11)特定的響應(yīng),執(zhí)行此響應(yīng)并在此后繼續(xù)執(zhí)行同步位置(SP)后的機(jī)器指令(MP)序列,-其中報(bào)警的分系統(tǒng)(2、2’)最早緊接記錄特殊事件(11)之后并且最遲結(jié)合求出特殊事件(11)特定的響應(yīng)向另一分系統(tǒng)(2、2’)轉(zhuǎn)送特殊事件(11)。
      2.一種由至少兩個(gè)分系統(tǒng)(2、2’)構(gòu)成的冗余自動(dòng)化系統(tǒng)(1)的同步方法,其中至少兩個(gè)分系統(tǒng)(2、2’)分別具有至少一個(gè)處理器(3)并通過通信裝置(6)相互連接,為控制處理器,執(zhí)行機(jī)器指令(MP)功能相同的序列并有時(shí)候通過通信裝置相互同步,其特征在于-每個(gè)分系統(tǒng)(2、2’)具有一個(gè)同步計(jì)數(shù)器(SZ、SZ’),-功能相同的機(jī)器指令(MP)序列在相互一致的位置具有增值變更-或減值變更語句(IA),利用所述增值變更-或減值變更語句同步計(jì)數(shù)器(SZ、SZ')被增值變更或減值變更,-至少在一個(gè)分系統(tǒng)(2、2’),即報(bào)警的分系統(tǒng)(2、2’)記錄一個(gè)特殊事件(11)時(shí),進(jìn)行同步,-其中該同步的步驟如下每個(gè)分系統(tǒng)(2、2’)a)向另一個(gè)分系統(tǒng)(2、2’)轉(zhuǎn)送其同步計(jì)數(shù)器(SZ、SZ')的實(shí)際值,b)由自己的同步計(jì)數(shù)器(SZ、SZ')的增值變更的或減值變更的值和由另一分系統(tǒng)(2、2’)的同步計(jì)數(shù)器(SZ、SZ')的增值變更的或減值變更的值求出實(shí)際最大或最小值,即同步計(jì)數(shù)器-目的值(SZZ),c)在到達(dá)機(jī)器指令(MP)序列內(nèi)的一個(gè)位置(下面稱作同步位置(SP))時(shí),在此位置同步計(jì)數(shù)器(SZ、SZ')的值到達(dá)同步計(jì)數(shù)器-目的值(SZZ),中斷執(zhí)行機(jī)器指令(MP)序列,d)用一個(gè)同步信號(hào)(SS)向另一個(gè)分系統(tǒng)(2、2’)通告到達(dá)同步位置(SP),e)在到達(dá)同步位置(SP)并記錄另一分系統(tǒng)(2、2’)的同步信號(hào)(SS)后求出對特殊事件(11)特定的響應(yīng),執(zhí)行此響應(yīng)并在此后繼續(xù)執(zhí)行同步位置(SP)后的機(jī)器指令(MP)序列,-其中報(bào)警的分系統(tǒng)(2、2’)最早緊接記錄特殊事件(11)之后并且最遲結(jié)合同步信號(hào)(SS)向另一分系統(tǒng)(2、2’)轉(zhuǎn)送特殊事件。
      3.按照格要求1或2所述的同步方法,其特征在于-對機(jī)器指令(MP)序列的每個(gè)機(jī)器指令通過其在機(jī)器指令(MP)序列中的位置分配一個(gè)明確的地址,-求出機(jī)器指令(MP)序列的每一個(gè)機(jī)器指令的地址,尤其是實(shí)際有待執(zhí)行的機(jī)器指令地址以及與同步位置(SP)一致的某機(jī)器指令的地址,-在至少由報(bào)警的分系統(tǒng)(2、2’)對特殊事件(11)記錄之后執(zhí)行機(jī)器指令(MP)序列時(shí),始終將實(shí)際待執(zhí)行的機(jī)器指令的地址與某個(gè)與同步位置(SP)一致的機(jī)器指令的地址進(jìn)行比較并且-正好在到達(dá)同步位置(SP)時(shí)中斷執(zhí)行機(jī)器指令(MP)序列。
      4.按照權(quán)利要求1或2所述的同步方法,其特征在于-至少在由報(bào)警的分系統(tǒng)(2、2’)記錄特殊事件(11)之后執(zhí)行機(jī)器指令(MP)序列時(shí),始終將同步計(jì)數(shù)器(SZ、SZ')的值與同步計(jì)數(shù)器-目的值(SZZ)進(jìn)行比較并且-當(dāng)同步計(jì)數(shù)器(SZ、SZ')的值到達(dá)同步計(jì)數(shù)器-目的值(SZZ)時(shí),中斷執(zhí)行機(jī)器指令(MP)序列。
      5.按照權(quán)利要求1、2、3或4所述的同步方法,其特征在于分別至少-在機(jī)器指令(MP)序列的固定數(shù)量的單獨(dú)指令之后或在對一定數(shù)量的機(jī)器指令的運(yùn)行時(shí)間計(jì)值的情況下以一定的基本等距的運(yùn)行時(shí)間間隔以及-結(jié)合每個(gè)跳變指令執(zhí)行增值變更語句(IA)。
      6.按照上述任一項(xiàng)權(quán)利要求所述的同步方法,其特征在于分別-在機(jī)器指令(MP)序列的固定數(shù)量的單獨(dú)指令之后或在對一定數(shù)量的機(jī)器指令的運(yùn)行時(shí)間計(jì)值的情況下以一定的、基本等距的運(yùn)行時(shí)間間隔以及-結(jié)合每個(gè)跳變指令將增值語句(IA)插入機(jī)器指令(MP)序列中。
      7.按照上述任一項(xiàng)權(quán)利要求所述的同步方法,其特征在于-由一種程序設(shè)計(jì)語言的指令順序的序列產(chǎn)生機(jī)器指令(MP)的序列,-對機(jī)器指令(MP)的序列或指令順序序列查找特定的機(jī)器指令或特定的指令順序,尤其是機(jī)器指令(MP)序列的特定的分序列或指令順序的特定的分序列,對此以下稱作搜索序列或搜索順序,-對搜索序列或搜索順序的出現(xiàn)進(jìn)行識(shí)別并且-將增值變更語句(IA)置于搜索序列或搜索順序前面或?qū)λ阉餍蛄谢蛩阉黜樞蛱砑釉鲋底兏Z句。
      8.按照權(quán)利要求7所述的同步方法,其特征在于-相關(guān)連的指令順序被分別合并在一個(gè)程序塊中并且-一個(gè)搜索序列或一個(gè)搜索順序至少是程序塊的一個(gè)界偶和/或一個(gè)跳變指令。
      9.按照權(quán)利要求8所述的同步方法,其特征在于-在產(chǎn)生機(jī)器指令(MP)序列的同時(shí)將增值變更語句(IA)插入機(jī)器指令序列中,-其中利用一專門的編譯程序以已知的方式產(chǎn)生機(jī)器指令(MP)序列,-其中分別在識(shí)別出搜索序列或搜索順序時(shí)由專門的編譯程序產(chǎn)生增值變更語句(IA)并且插入機(jī)器指令(MP)序列中。
      10.按照權(quán)利要求8或9所述的同步方法,其特征在于-在產(chǎn)生機(jī)器指令(MP)序列之前和/或之后將增值變更語句(IA)插入機(jī)器指令(MP)序列中,-利用一種標(biāo)準(zhǔn)的編譯程序以已知的方式產(chǎn)生機(jī)器指令(MP)序列,-在產(chǎn)生機(jī)器指令(MP)序列之前和/或之后,分別在識(shí)別出搜索序列或搜索順序時(shí),將增值變更語句(IA)插入機(jī)器指令(MP)序列中或指令順序序列中。
      全文摘要
      一種由至少兩個(gè)分系統(tǒng)(2、2’)構(gòu)成的、冗余自動(dòng)化系統(tǒng)(1)的同步方法,所述分系統(tǒng)為控制過程執(zhí)行機(jī)器指令(MP)功能相同的序列,所述機(jī)器指令(MP)序列在相互一致的位置具有用于對同步計(jì)數(shù)器(SZ、SZ′)進(jìn)行增值變更的增值變更語句(IA)。至少在分系統(tǒng)(2、2’)記錄了一個(gè)特殊事件(11)時(shí),利用同步計(jì)數(shù)器(SZ、SZ′)的值進(jìn)行同步。為此,求出同步計(jì)數(shù)器-目的值(SZZ),從而當(dāng)?shù)竭_(dá)同步位置(SP)時(shí),即同步計(jì)數(shù)器(SZ、SZ′)的值到達(dá)同步計(jì)數(shù)器-目的值(SZZ)時(shí),使分系統(tǒng)(2、2’)中斷執(zhí)行機(jī)器指令(MP)序列。
      文檔編號(hào)G05B19/042GK1228173SQ97197275
      公開日1999年9月8日 申請日期1997年6月3日 優(yōu)先權(quán)日1996年6月24日
      發(fā)明者赫伯特·巴塞爾, 海納·富克斯, 阿方斯·戈貝爾 申請人:西門子公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1