專利名稱::用于過程控制系統(tǒng)中的有保證批量事件交付的設(shè)備和方法
技術(shù)領(lǐng)域:
:本公開通常涉及控制系統(tǒng),更具體而言,涉及用于過程(process)控制系統(tǒng)中的有保證批量事件交付的設(shè)備和方法。
背景技術(shù):
:通常使用過程控制系統(tǒng)來管理處理設(shè)施。示例處理設(shè)施包括化學、制藥、紙和石化生產(chǎn)車間(plant)。其中,過程控制系統(tǒng)一般與處理設(shè)施交互中的工業(yè)設(shè)備并對其進行控制,例如用于生產(chǎn)化學、制藥、紙和石化產(chǎn)品的設(shè)備。通常,批量制造或者處理這些或其它類型的產(chǎn)品。管制行業(yè)一般要求與批量產(chǎn)品的制造有關(guān)的所有方面的完整記錄。實際上,批量執(zhí)行的數(shù)據(jù)記錄與產(chǎn)品本身一樣重要。非管制行業(yè)盡管沒有對批量記錄完整性的相同要求,但是也通常使用批量記錄來支持諸如質(zhì)量保證分析的功能。因此,在過程控制系統(tǒng)中完整的或接近完整的批量記錄通常是合乎需要的
發(fā)明內(nèi)容該公開提供用于過程控制系統(tǒng)中的有保證批量事件交付的設(shè)備和方法。在第一實施例中,一種方法包括生成與過程控制系統(tǒng)中的控制器的操作相關(guān)聯(lián)的多個事件。該方法也包括將所述事件存儲在緩沖器中,并將所述事件通信到與所述控制器相關(guān)聯(lián)的監(jiān)控裝置。該方法還包括接收對恢復所述事件中一個或多個事件的請求。另外,該方法包括從所述緩沖器恢復所述事件中至少一個事件,并將所述至少一個所恢復事件通信到所述監(jiān)控裝置。在特定實施例中,每個事件與唯一標識符相關(guān)聯(lián),且所述請求識別與所述事件之一相關(guān)聯(lián)的所述唯一標識符。在其它特定實施例中,在所述請求中所識別的所述唯一標識符包括數(shù)字標識符。此外,從所述緩沖器恢復所述至少一個事件包括恢復與比在所述請求中所識別的所述數(shù)字標識符大的數(shù)字標識符相關(guān)聯(lián)的任意事件。在其它實施例中,所述方法還包括響應(yīng)于從所述緩沖器恢復少于全部所需事件生成警報。在第二實施例中,一種設(shè)備包括至少一個存儲器,配置成存儲與從過程控制系統(tǒng)中的控制器所接收到的第一事件相關(guān)聯(lián)的唯一標識符。該設(shè)備還包括至少一個處理器,配置成從所述控制器接收第二事件,并使用所述唯一標識符確定所述笫一事件和所述第二事件之間的任意事件是否未被從所述控制器接收到。所述至少一個處理器還配置成如果所述第一事件和所述第二事件之間的至少一個事件未被從所述控制器接收到,則發(fā)起事件恢復。在第三實施例中,一種計算機程序被包含在計算機可讀媒介上。所述計算機程序包括用于生成與過程控制系統(tǒng)中的控制器的操作相關(guān)聯(lián)的多個事件的計算機可讀程序代碼。所述計算機程序也包括用于將所述事件存儲在緩沖器中的計算機可讀程序代碼以及用于將所述事件通信到與所述控制器關(guān)聯(lián)的監(jiān)控裝置的計算機可讀程序代碼。所述計算機程序還包括用于接收對恢復一個或多個事件的請求的計算機可讀程序代碼。另外,所述計算機程序包括用于從所述緩沖器恢復所述事件中的至少一個事件的計算機可讀程序代碼以及用于將所述至少一個所恢復事件通信到所述監(jiān)控裝置的計算機可讀程序代碼。在第四實施例中,一種系統(tǒng)包括配置成對過程控制系統(tǒng)中的過程單元進行控制的控制器。所述控制器還配置成生成并緩存與所述控制器的操作相關(guān)聯(lián)的多個事件。每個事件與唯一標識符相關(guān)聯(lián)。所述系統(tǒng)還包括監(jiān)控裝置,配置成從所述控制器接收所述事件中的至少某些事件,并根據(jù)所述唯一標識符確定所述事件中的任意事件是否未被從所述控制器接收到。所述監(jiān)控裝置也配置成如果所述事件的至少一個事件未被從所述控制器接收到則通過所述控制器發(fā)起事件恢復。所述控制器還配置成在所述事件恢復期間恢復至少一個事件并將所述至少一個所恢復事件通信到所述監(jiān)控裝置。根據(jù)下文的附圖、說明書和權(quán)利要求書,其它技術(shù)特征對本領(lǐng)域技術(shù)人員而言就可顯而易見了。為了該公開的更完整理解,結(jié)合附圖進行以下描述,其中圖l示出支持有保證批量事件交付的示例過程控制系統(tǒng);圖2示出支持有保證批量事件交付的示例過程控制系統(tǒng)的附加細節(jié);圖3A到3D示出在支持有保證批量事件交付的過程控制系統(tǒng)中的示例數(shù)據(jù)流;圖4示出在支持有保證批量事件交付的過程控制系統(tǒng)中的示例并行數(shù)據(jù)流;圖5和6示出支持有保證批量事件交付的過程控制系統(tǒng)的部分的特定示例;圖7示出在過程控制系統(tǒng)中支持有保證批量事件交付的示例用戶界面;圖8示出在過程控制系統(tǒng)中支持有保證批量事件交付的示例方法。具體實施例方式圖1示出支持有保證批量事件交付的示例過程控制系統(tǒng)100。圖1中示出的過程控制系統(tǒng)100的實施例僅是示例性的。在沒有脫離本公開的范圍的情況下,可以使用過程控制系統(tǒng)100的其它實施例。在該實施例中,過程控制系統(tǒng)100包括一個或多個過程單元102a-102b。過程單元102a-102b表示可執(zhí)行多種功能中任意功能的過程或生產(chǎn)系統(tǒng)中的組件。例如,過程單元102a-102b可表示制造化學、制藥、紙或石化產(chǎn)品所用的設(shè)備。過程單元102a-102b中每個過程單元包括用于在過程或生產(chǎn)系統(tǒng)中執(zhí)行一個或多個功能的任意硬件、軟件、固件或其組合。兩個控制器104a-104b耦合到過程單元102a-102b??刂破?04a-104b控制過程單元102a-102b的運作。例如,控制器104a-104b能夠向過程單元102a-102b提供控制信號,用于控制化學、制藥、紙或石化產(chǎn)品的生產(chǎn)??刂破?04a-04b中每個控制器包括用于控制過程單元102a-102b中一個或多個過程單元的任意硬件、軟件、固件或其組合。例如,控制器104a-104b可包括一個或多個處理器105以及存儲由處理器105所使用、生成或收集的指令和數(shù)據(jù)的一個或多個存儲器107。作為特定實施例,處理器105可包括運行GREENHILLSINTERGRITY操作系統(tǒng)的POWERPC處理器系列的處理器或者運行MICROSOFTWINDOWS操作系統(tǒng)的X86處理器系列的處理器。兩個服務(wù)器106a-106b耦合到控制器104a-104b。服務(wù)器106a-106b執(zhí)行支持控制器104a-104b和過程單元102a-102b的操作和控制的各種功能。例如,服務(wù)器106a誦106b可將由控制器104a-104b所收集或生成的信息、例如與過程單元102a-102b的操作有關(guān)的狀態(tài)信息記入日志(1og)。服務(wù)器106a-106b也可以執(zhí)行對控制器104a-104b的操作進行控制的應(yīng)用程序,從而對過程單元102a-102b的操作進行控制。此外,服務(wù)器106a-106b可提供對控制器104a-104b的安全訪問。服務(wù)器106a-106b中的每個服務(wù)器包括用于提供對控制器104a-104b的訪問或?qū)刂破?04a-104b的控制的任意硬件、軟件、固件或其組合。例如,服務(wù)器106a-106b中的每個服務(wù)器可包括一個或多個處理器109和存儲由處理器109所使用、生成或收集的指令和數(shù)據(jù)的一個或多個存儲器111(例如,由服務(wù)器106a-106b所運行的軟件)。作為特定示例,處理器109可包括運行GREENHILLSINTERGRITY操作系統(tǒng)的POWERPC處理器系列的處理器或者運行MICROSOFTWINDOWS操作系統(tǒng)的X86處理器系列的處理器?!獋€或多個操作員臺108a-108b耦合到服務(wù)器106a-106b,一個或多個操作員臺108c耦合到控制器104a-104b。操作員臺108a-108b表示提供對服務(wù)器106a-106b的用戶訪問并可因此提供對控制器104a-104b和過程單元102a-102b的用戶訪問的計算或通信裝置。操作員臺108c表示提供對控制器104a-104b的直接用戶訪問的計算或通信裝置。作為特定實施例,操作員臺108a-108c可允許用戶使用由控制器104a-104b和/或服務(wù)器106a-106b所收集的信息來回顧過程單元102a-102b的操作歷史記錄。操作員臺108a-108c也可允許用戶調(diào)整過程單元102a-102b、控制器104a-104b或服務(wù)器106a-106b的操作。操作員臺108a-108c的每個操作員臺可包括用于支持系統(tǒng)100的用戶訪問和控制的任意硬件、軟件、固件或其組合。例如,操作員臺108a-108c的每個操作員臺可包括一個或多個處理器113和由處理器113所使用、生成或收集的指令和數(shù)據(jù)的一個或多個存儲器115(例如,由操作員臺108a-108c所運行的軟件)。在特定示例中,操作員臺108a-108c可表示運行MICROSOFTWINDOWS操作系統(tǒng)的個人計算機。在本實施例中,操作員臺108b中至少一個操作員臺遠離服務(wù)器106a-106b。該遠程臺經(jīng)網(wǎng)絡(luò)110耦合到服務(wù)器106a-106b。網(wǎng)絡(luò)110在系統(tǒng)100中促進各個組件之間的通信。例如,網(wǎng)絡(luò)110可在網(wǎng)絡(luò)地址之間通信因特網(wǎng)協(xié)議(IP)分組、幀中繼幀、異步傳輸模式(ATM)單元或其它信息。網(wǎng)絡(luò)110可包括一個或多個局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、諸如因特網(wǎng)的全球網(wǎng)的部分或全部,或在一個或多個地方的任意其它通信系統(tǒng)或系統(tǒng)。在該示例實施例中,系統(tǒng)100包括兩個附加服務(wù)器112a-l12b。服務(wù)器112a-l12b執(zhí)行控制系統(tǒng)100的整體操作的各種功能。例如,系統(tǒng)100可用于處理或生產(chǎn)車間或其它設(shè)施,服務(wù)器112a-112b可執(zhí)行控制所述車間或其它設(shè)施所用的應(yīng)用。作為特定實施例,服務(wù)器112a-112b可執(zhí)行例如企業(yè)資源計劃(ERP)、制造運行系統(tǒng)(MES)的應(yīng)用或者其它任意或附加車間或過程控制應(yīng)用。月l務(wù)器112a-112b中每個服務(wù)器包括用于控制系統(tǒng)100的整體操作的任意硬件、軟件、固件或其組合。如圖l所示,系統(tǒng)100包括各種冗余網(wǎng)絡(luò)114a-114b和在系統(tǒng)100中支持組件間通信的單一網(wǎng)絡(luò)116a-116c。這些網(wǎng)絡(luò)114a-114b和116a-116c中每個網(wǎng)絡(luò)表示在系統(tǒng)100內(nèi)促進組件間通信的任意網(wǎng)絡(luò)或網(wǎng)絡(luò)組合。例如,網(wǎng)絡(luò)114a-114b和116a-116c可表示以太網(wǎng)。在操作的一個方面中,控制器104a-104b中的一個或多個控制器可生成表示在過程控制系統(tǒng)100中在控制器操作期間出現(xiàn)的事件的批量執(zhí)行事件。一般把控制器104a-104b所生成的批量執(zhí)行事件通信到監(jiān)控服務(wù)器(例如,一個或多個服務(wù)器106a-106b),以供例如在事件日志(journal)或者其它數(shù)據(jù)庫中的更持久存儲??刂破?04a-104b所生成的批量執(zhí)行事件還被緩沖或暫存在控制器的存儲器內(nèi)。這支持監(jiān)控服務(wù)器的這種功能,以便恢復控制器所生成的事件中的某些或全部事件、例如在該控制器和監(jiān)控服務(wù)器間的通信已被中斷時的時段期間所生成的事件。為了支持該事件恢復,系統(tǒng)100提供用于追蹤事件以及在清除不正常情形且系統(tǒng)100回到正常操作之后向監(jiān)控服務(wù)器重新發(fā)送"丟失(lost)"或"遺漏(missed)"事件的機制。在某些實施例中,當在控制器104a-104b內(nèi)生成批量執(zhí)行事件時,對事件編號或否則用唯一標識符對其4姿序進行標識。例如,當事件被生成或保存在控制器的事件緩沖器中時,事件中的每個事件可與8字節(jié)數(shù)值關(guān)聯(lián)。將這些唯一標識符與事件一起發(fā)送到監(jiān)控服務(wù)器。接收時,監(jiān)控服務(wù)器檢查與所接收批量事件關(guān)聯(lián)的唯一標識符的序列以便識別可能的間隔(gap)。如果在唯一標識符的序列中檢測到間隔,那么這指示至少一個事件沒被監(jiān)控服務(wù)器接收到。監(jiān)控服務(wù)器則請求控制器重新發(fā)送遺漏或丟失事件(例如指定事件、在唯一標識符范圍內(nèi)的事件或者在特定唯一標識符開始的所有事件)。這有助于支持遺漏或丟失批量事件的恢復,因此有助于確保由監(jiān)控服務(wù)器收集所有或基本上所有事件以供在事件日志(eventjournal)或其它適當目的地的存儲。此外,如果事件永久丟失(因控制器中的事件緩沖器過載或其它原因而不能將其恢復),則系統(tǒng)100可生成警報以通報用戶。在特定實施例中,當使用控制器104a-104b中的事件緩沖器時,用戶可配置事件緩沖器的大小。作為特定實施例,小型、中型和大型事件緩沖器可分別容納120、240和740個事件。用戶可基于任意合適標準、例如在其中使用控制器的應(yīng)用來選擇適當?shù)木彌_器大小。一旦選擇了緩沖器的大小,則控制器104a-104b可在其存儲器中預留適量空間用于所述緩沖器。盡管圖1示出支持有保證批量事件交付的過程控制系統(tǒng)IOO的一種示例,但是可對圖l進行各種改變。例如,過程控制系統(tǒng)可包括任意數(shù)量的過程單元、控制器、服務(wù)器、操作員臺和網(wǎng)絡(luò)。此外,過程控制系統(tǒng)100的結(jié)構(gòu)和配置僅是示例性的。根據(jù)具體需要,組件可被添加、省略、合并或置于任意其它配置中。此外,雖然被描述為用于生產(chǎn)某些類型的產(chǎn)品,但是過程控制系統(tǒng)1OO可按任意其它方式使用。此外,圖l示出一種在其中可使用有保證批量事件交付的操作環(huán)境??稍谌我馄渌b置或系統(tǒng)中使用有保證批量事件交付。圖2示出支持有保證批量事件交付的示例過程控制系統(tǒng)的附加細節(jié)。特別地,圖2示出與圖1的過程控制系統(tǒng)100中的控制器104a-104b和服務(wù)器106a-106b的特定實現(xiàn)有關(guān)的附加細節(jié)。圖2中示出的過程控制系統(tǒng)的附加細節(jié)僅是示例性的。在沒有脫離本公開的范圍的情況下,可使用過程控制系統(tǒng)100的其它實施例。在該實施例中,過程控制系統(tǒng)100包括一個或多個控制執(zhí)行環(huán)境202a-202n。在過程控制系統(tǒng)100中,控制執(zhí)行環(huán)境202a-202n表示由控制器104a-104b所使用或所支持的執(zhí)行環(huán)境??刂茍?zhí)行環(huán)境202a-202n可支持多種功能,例如各種控制和后臺任務(wù)的調(diào)度和執(zhí)行。在美國專利申請?zhí)?1/175848中提供了控制4丸行環(huán)境的一種示例,通過引用將其合并于此??刂茍?zhí)行環(huán)境202a-202n生成批量事件,例如與批量產(chǎn)品的處理或生產(chǎn)有關(guān)的事件。管制行業(yè)通常要求與批量執(zhí)行有關(guān)的所有方面的完整批量記錄。批量記錄可包括捕獲為批量產(chǎn)品的制造的部分的批量事件。非管制行業(yè)可不需要對完整批量記錄的同樣要求,但是可因其它原因而捕獲批量執(zhí)行結(jié)果(例如,質(zhì)量保證、繼續(xù)改進和過程制造優(yōu)化)。因此,捕獲由控制4丸行環(huán)境202a-202n中的批量引擎所生成的所有批量事件并將其存儲在事件日志或其它存儲位置通常是較為重要或必需的。在該實施例中,控制執(zhí)行環(huán)境202a-202n中的每個控制執(zhí)行環(huán)境包括或支持用于暫存由控制執(zhí)行環(huán)境202a-202n所生成的事件緩沖器203。如下所述,這有助于促進丟失或遺漏事件的檢索(retrieval)或恢復,有助于確保過程控制系統(tǒng)100中的批量記錄完全或基本完整。每個緩沖器203表示用于存儲和促進批量事件的檢索的任意合適結(jié)構(gòu)。由于控制器產(chǎn)品內(nèi)的存儲器限制(例如,為特定目的建立的固化控制器平臺),批量執(zhí)行事件一般被及時傳送到監(jiān)控服務(wù)器。此外,由于控制器/服務(wù)器通信的本質(zhì),存在鏈路或者這些平臺中一個或多個平臺不可用的時候。例如,這可出現(xiàn)在冗余服務(wù)器故障(failover)、冗余控制器故障或者控制器與服務(wù)器之間的通信鏈路中斷期間。在批量執(zhí)行環(huán)境中生成的批量事件被保留在控制器的批量緩沖器203內(nèi),并在所定義的中斷不再存在時被發(fā)送到監(jiān)控服務(wù)器。例如,監(jiān)控服務(wù)器可請求監(jiān)控服務(wù)器確定丟失或遺漏的事件的重傳。下文描述怎樣進行從控制執(zhí)行環(huán)境202a-202n的事件恢復。控制執(zhí)行環(huán)境202a-202n與控制數(shù)據(jù)訪問(controldataaccess:CDA)服務(wù)器204通信。CDA服務(wù)器204提供來往于控制執(zhí)行環(huán)境202a-202n的安全數(shù)據(jù)訪問。例如,CDA服務(wù)器204可確保只有所授權(quán)資源(例如監(jiān)控服務(wù)器)能夠訪問控制執(zhí)行環(huán)境202a-202n并與其交互。CDA服務(wù)器204包括用于控制數(shù)據(jù)訪問的任意硬件、軟件、固件或其組合。通知客戶機206促進控制執(zhí)行環(huán)境202a-202n(經(jīng)CDA服務(wù)器204)與通知隊列208之間的通信。例如,通知客戶機206可接收來自控制執(zhí)行環(huán)境202a-202n的批量事件,并向通知隊列208提供所述事件以供存儲。通知客戶機206包括用于提供對通知隊列208的訪問的任意硬件、軟件、固件或其組合。通知隊列208包括用于存儲多個事件或其它通知的任意合適結(jié)構(gòu)。通知管理器2104企索來自通知隊列208的通知。例如,通知管理器210可從通知隊列208檢索與控制執(zhí)行環(huán)境202a-202n關(guān)聯(lián)的批量事件。然后,通知管理器210可向一個或多個合適目的地提供所述通知。例如,如果通知表示警報,則可將該通知提供給警報列表212以供存儲。如果通知表示事件,則可將該通知存儲在事件列表214中。通知管理器210可包括用于從通知隊列208檢索信息的任意硬件、軟件、固件及其組合。警報列表212和事件列表214表示用于存儲多個通知或其它信息的任意合適結(jié)構(gòu)。由事件系統(tǒng)數(shù)據(jù)組件(eventsystemdatacomponent:事件SDC)216從事件列表214檢索事件,并將所述事件存儲在事件日志218中。事件SDC216還使用與事件關(guān)聯(lián)的唯一標識符確定是否遺漏或已丟失任意事件。例如,唯一標識符可表示數(shù)字序列,事件SDC216可通過識別在與所接收事件關(guān)聯(lián)的唯一標識符中的間隔來識別遺漏事件。在事件SDC216需要從控制執(zhí)行環(huán)境202a-202n恢復一個或多個丟失或者遺漏事件時,事件SDC216可與通知客戶機206或者通用數(shù)據(jù)訪問(genericdataaccess:GDA)管理器220(取決于具體情況)進行通信。這些組件中的任一組件可請求控制執(zhí)行環(huán)境202a-202n進行一個或多個緩存數(shù)據(jù)的傳輸或重傳。事件SDC216包括用于將事件記入曰志和識別遺漏事件的任意硬件、軟件、固件及其組合。事件日志218可包括用于存儲事件或?qū)⑵溆浫肴罩镜娜我夂线m結(jié)構(gòu)、例如SQL數(shù)據(jù)庫。GDA管理器220包括用于提供對控制執(zhí)行環(huán)境202a-202n的訪問的任意硬件、軟件、固件及其組合。在特定實施例中,圖2示出的各種組件可在一個或多個控制器104a-104b與一個或多個服務(wù)器106a-106b之間進行劃分。例如,控制執(zhí)行環(huán)境202a-202n可駐留在多個控制器或與其關(guān)聯(lián),而其余組件可駐留在監(jiān)控服務(wù)器或由其支持。在操作的一種方面中,可將事件緩存在控制執(zhí)行環(huán)境202a-202n中,且所述事件可與唯一標識符關(guān)聯(lián)。監(jiān)控服務(wù)器可基于與所述事件關(guān)聯(lián)的唯一標識符(經(jīng)事件SDC216)識別遺漏或丟失事件。如果需要,可從控制執(zhí)行環(huán)境202a-202n向監(jiān)控服務(wù)器重傳遺漏或丟失事件。盡管圖2示出了支持有保證批量事件交付的過程控制系統(tǒng)的一種示例的附加細節(jié),但是可對圖2進行各種改變。例如,圖2中組件的結(jié)構(gòu)和配置僅是示例性的。根據(jù)特定需要可按任意其它配置添加、省略、合并或設(shè)置組件。圖3A到3D示出在支持有保證批量事件交付的過程控制系統(tǒng)中的示例數(shù)據(jù)流。尤其是,圖3A到3D示出了在圖2中示出的過程控制系統(tǒng)100的組件之間的示例數(shù)據(jù)流。圖3A到3D示出的數(shù)據(jù)流的實施例僅是示例性的。在沒有脫離本公開的范圍的情況下,可使用其它數(shù)據(jù)流。可在監(jiān)控服務(wù)器首次啟動時、即在監(jiān)控服務(wù)器成為活動時使用圖3中的數(shù)據(jù)流。這種情況下,監(jiān)控服務(wù)器可能已經(jīng)遺漏了先前在服務(wù)器的啟動期間由一個或多個控制器所通信的事件。這種情況下,可出現(xiàn)下面的事件序列。(1)在服務(wù)器啟動時,通知客戶機206從CDA服務(wù)器204預訂并接收通知。(2)CDA服務(wù)器204例如通過^f吏用來自系統(tǒng)知識庫(repository)的信息來獲得能夠生成事件的控制執(zhí)行環(huán)境(CEE)202a-202n的列表。CDA服務(wù)器204例如通過使用回叫(callback)功能向通知客戶機206返回控制執(zhí)行環(huán)境的列表。(3)通知客戶機206查詢事件SDC216,查找由事件SDC216從所識別的控制執(zhí)行環(huán)境接收到的最后事件的序列標識符。(4)如果事件SDC216不能用其內(nèi)部列表解析(resolve)通知客戶機的查詢,則事件SDC216查詢事件日志218。(5)如果必要,事件日志218向事件SDC216返回從所識別的控制執(zhí)行環(huán)境最后接收到的序列標識符的列表。(6)事件SDC216向通知客戶機206傳遞該信息。(7)通知客戶機206向CDA服務(wù)器204傳遞該信息。(8)CDA服務(wù)器204通過對每個控制執(zhí)行環(huán)境指定從事件SDC216所接收到的適當序列標識符,從每個控制執(zhí)行環(huán)境請求事件恢復。(9)每個控制執(zhí)行環(huán)境公布其始于由CDA服務(wù)器204所請求的序列標識符的事件。(10)對于每個控制執(zhí)行環(huán)境,CDA服務(wù)器204生成該控制執(zhí)行環(huán)境的事件恢復開始括弧,并向通知客戶機206發(fā)送該開始括弧。該開始括弧包含對事件恢復的對應(yīng)請求的序列標識符和第一所恢復事件的序列標識符。該恢復括弧后面是一系列的一個或多個所恢復事件。(11)對于每個控制執(zhí)行環(huán)境,向事件SDC216提供所恢復事件,事件SDC216用恢復開始括弧更新其內(nèi)部列表。(12)將所恢復事件記入或者登記到事件日志218??稍诳刂破髦貑硬⒅匦逻B接到監(jiān)控服務(wù)器時或者在進行控制器的冷再載入(coldreload)時使用圖3B中的數(shù)據(jù)流。在此期間,控制器可不與其監(jiān)控服務(wù)器聯(lián)系,并可生成某些事件。在這種情況下,可出現(xiàn)以下事件序列。(1)控制執(zhí)行環(huán)境202a-202n通知CDA服務(wù)器204控制器已重啟動。(2)CDA服務(wù)器204例如通過使用回叫功能,向通知客戶機206返回其具有執(zhí)行環(huán)境的載入時間的控制執(zhí)行環(huán)境的代碼。(3)通知客戶機206查詢事件SDC216,查找由事件SDC216從控制執(zhí)行環(huán)境接收到的最后事件的序列標識符。(4)如果事件SDC216不能用其內(nèi)部列表解析通知客戶機的查詢,則事件SDC216查詢事件日志218。(5)如果必要,事件日志218向事件SDC216返回從控制執(zhí)行環(huán)境接收到的最后所接收序列標識符。(6)事件SDC216向通知客戶機206傳遞該信息。(7)通知客戶機206向CDA服務(wù)器204傳遞該信息。(8)CDA服務(wù)器204通過指定從事件SDC216所接收到的序列標識符,從控制執(zhí)行環(huán)境請求事件恢復。(9)控制執(zhí)行環(huán)境公布其始于由CDA服務(wù)器204所請求的序列標識符的事件。(10)CDA服務(wù)器204生成控制執(zhí)行環(huán)境的事件恢復開始括弧,并將其發(fā)送到通知客戶機206。該恢復括弧后面是一系列的一個或多個所恢復事件。(11)向事件SDC216提供所恢復事件,事件SDC216用該恢復開始括弧更新其內(nèi)部列表。(12)將所恢復事件記入或者登記到事件曰志218??稍趤G失一個或多個事件時使用圖3C中的數(shù)據(jù)流。這可由多種原因造成,例如服務(wù)器故障、控制器故障、網(wǎng)絡(luò)中斷或者過量的服務(wù)器負載。在這種情況下,可出現(xiàn)以下事件序列。(1)丟失一個或多個事件(無論什么原因),即從控制執(zhí)行環(huán)境傳送的一個或多個事件沒被事件SDC216接收到或正確記入日志。(2)具有非預期序列標識符的事件到達事件SDC216。例如,該事件可具有不直接遵循先前所接收事件的數(shù)字標識符的數(shù)字標識符。(3)當事件SDC216檢測到這種情況出現(xiàn)時,通過GDA管理器220命令事件恢復。(4)CDA服務(wù)器204接收該恢復命令。(5)控制執(zhí)行環(huán)境繼續(xù)發(fā)送事件SDC216不預期的事件(不具有由事件SDC216所識別的一個或多個遺漏數(shù)字標識符的事件)。(6)CDA服務(wù)器204從控制執(zhí)行環(huán)境請求事件恢復,并指定所述恢復應(yīng)在其開始的序列標識符。(7)非預期事件傳播到通知客戶機206。(8)非預期事件到達事件SDC216。事件SDC216在接收到這些非預期事件后可不更新其內(nèi)部列表,且它可不重新命令其它恢復(在這個時4矣)。(9)非預期事件被記入或者登記到事件日志218。(10)控制執(zhí)行環(huán)境公布其始于由CDA服務(wù)器204所請求的序列標識符的事件。(11)CDA服務(wù)器204生成通知客戶機206的事件恢復開始括弧,其后是一系列的一個或多個所恢復事件。(12)所恢復事件到達事件SDC216,事件SDC216用恢復開始括弧的序列標識符更新其內(nèi)部列表。(13)將所述事件記入或者登記到事件日志218??稍诳刂茍?zhí)行環(huán)境完成控制方法(controlrecipe)的執(zhí)行時使用圖3D中的數(shù)據(jù)流,控制方法(如下文所述)定義具體產(chǎn)品的生產(chǎn)要求并用于生產(chǎn)單批量的產(chǎn)品。在這種情況下,可出現(xiàn)以下事件序列。(1)在完成控制方法的執(zhí)行時,控制方法向CDA服務(wù)器204報告方法完成事件。(2)向通知客戶機206發(fā)送該方法完成事件。(3)該方法完成事件到達事件SDC216。(4)將該方法完成事件記入或者登記到事件日志218。(5)如果所有方法事件被記入日志(方法完成事件是按順序的且沒有接收到具有非預期序列標識符的事件),則事件SDC216經(jīng)GDA管理器220通知CDA服務(wù)器204控制方法的所有方法事件已被記入日志o(6)CDA服務(wù)器204妄收該信號。此時,可安全去除控制方法。盡管圖3A-3D示出了在支持有保證批量事件交付的過程控制系統(tǒng)中的數(shù)據(jù)流的示例,但是可對圖3A-3D進行各種改變。例如,在過程控制系統(tǒng)中事件或其它信息可按任意其它合適方式流動。此外,在過程控制系統(tǒng)中其它數(shù)據(jù)流可用于其它或附加情形,以便支持有保證批量事件交付。圖4示出在支持有保證批量事件交付的過程控制系統(tǒng)中的示例并行數(shù)據(jù)流。尤其是,圖4示出了圖2中示出的過程控制系統(tǒng)100的組件之間的示例數(shù)據(jù)流。圖4中示出的數(shù)據(jù)流的實施例僅是示例性的。在沒有脫離本公開的范圍的情況下,可使用其它數(shù)據(jù)流。在該示例中,實線表示用于例如警報、事件的序列(SOE)、實時(live)事件和消息的通知的正常數(shù)據(jù)流。這些通知一般從控制執(zhí)行環(huán)境202a-202n流出,并流經(jīng)通知CDA服務(wù)器204、通知客戶機206和通知管理器210。實時事件存檔在事件列表214中,并被事件SDC216記入曰志。但是,某些類型的事件、例如來自控制方法的事件的數(shù)量根據(jù)應(yīng)用可很大。因此,事件的數(shù)量可壓制(overwhelm)過程控制系統(tǒng)中現(xiàn)有的警報和系統(tǒng)事件生成機制。為了支持有保證批量事件交付的使用,過程控制系統(tǒng)可包括批量事件的獨立數(shù)據(jù)通路(由虛線表示)。這種獨立數(shù)據(jù)通路包含批量事件處理器402,批量事件處理器402操作批量事件的處理以及將批量事件插入事件列表214。在該示例中,將批量事件從通知客戶機206發(fā)送到批量事件處理器402以供操作,而不是發(fā)送到通知管理器210。這使得某些批量事件繞過通知管理器210并被直接發(fā)送到事件列表214,允許事件SDC216檢索事件并將其記入日志而不要求使用通知管理器210。盡管圖4示出了在支持有保證批量事件交付的過程控制系統(tǒng)中的并行數(shù)據(jù)流的一種示例,但是可對圖4進行各種改變。例如,雖然被示出為包括批量事件的通路和所有其它通知的通路,但是過程控制系統(tǒng)可支持用于通知的任意數(shù)量的數(shù)據(jù)通路。此外,在過程控制系統(tǒng)中可不需要并行數(shù)據(jù)流,并可省略批量事件處理器402。圖5和6示出支持有保證批量事件交付的過程控制系統(tǒng)的部分的特定示例。尤其是,圖5示出示例過程控制系統(tǒng)500,圖6示出了在過程控制系統(tǒng)500中支持有保證批量事件交付的示例機制。圖5和6中示出的支持有保證批量事件交付的過程控制系統(tǒng)的實施例僅是示例性的。在沒有脫離本公開的范圍的情況下,可使用過程控制系統(tǒng)的其它實施例??衫缤ㄟ^使用圖l和2中示出的各種組件在任意合適系統(tǒng)中實現(xiàn)圖5中示出的過程控制系統(tǒng)500。如圖5中所示,過程控制系統(tǒng)500包括一個或多個單元控制模塊(unitcontrolmodule:UCM)502、方法控制模塊(recipecontrolmodule:RCM)504、連續(xù)控制模塊(sequentialcontrolmodule:SCM)506和4空制才莫塊(controlmodule:CM)508。在某些實施例中,單元控制模塊502、方法控制模塊504、連續(xù)控制模塊506和控制模塊508在過程控制系統(tǒng)100中被分配到多個控制執(zhí)行環(huán)境、例如控制器104a-104b。單元控制模塊502—般表示過程單元510或者與其關(guān)聯(lián),過程單元510包含一件或多件處理設(shè)備,其中在單元控制模塊502的獲得之后使用過程單元510。如在美國專利申請?zhí)?1/453119中所述,請求程序(requester)函數(shù)塊和資源函數(shù)塊可通過被合并到各個控制模塊502-508或者否則被其使用而被調(diào)用。資源函數(shù)塊表示可由請求程序函數(shù)塊獲得并釋放的對象,其中請求程序函數(shù)塊使用仲裁請求來嘗試獲得資源函數(shù)塊。在這些實施例中,單元控制模塊502可由方法控制模塊504獲得,方法控制模塊504允許過程單元510在方法控制模塊504的執(zhí)行期間被使用。方法控制模塊504—般表示定義一種或多種具體產(chǎn)品(或其部分)的生產(chǎn)要求的信息,其中方法控制模塊504的執(zhí)行可導致單批量的所述一種或多種產(chǎn)品(或其部分)的生產(chǎn)。方法控制模塊504可包括頭標(header)、流程、公式和任意設(shè)備要求。在方法控制模塊504中的流程由階段(phase)函數(shù)塊512所表示的階段集合定義。方法控制模塊504的每個階段與連續(xù)控制模塊506關(guān)聯(lián),連續(xù)控制模塊506與一個或多個控制模塊508交互以實現(xiàn)方法控制模塊504的階段之一??刂颇K508提供對實際過程單元5IO的訪問并提供對其的控制。方法控制模塊504中的流程也可包括步驟、轉(zhuǎn)換和同步塊的集合。步驟塊提供對控制模塊508的讀/寫訪問,同步塊允許階段函數(shù)塊512或步驟塊的并行執(zhí)行。方法控制模塊504通過其階段對連續(xù)控制模塊506進行操作,其中所述階段控制連續(xù)控制模塊506、監(jiān)視連續(xù)控制模塊506的執(zhí)行狀態(tài)且可選擇地向方法控制模塊504傳播執(zhí)行狀態(tài)。階段函數(shù)塊512也可監(jiān)視其父代方法控制模塊的狀態(tài),并在其父代方法控制模塊504進入不正常狀態(tài)時向其下面的連續(xù)控制模塊506傳播狀態(tài)。在特定實施例中,各個控制模塊504-508可如由國際電工技術(shù)委員會(IEC)61131和61512(包括61512-1)標準或者美國專利號6317638所定義那樣工作(所述標準和專利通過引用合并于此)。當創(chuàng)建方法控制^t塊504時,它可有選擇地與特定單元控制模塊502關(guān)聯(lián)。單元控制模塊502可在執(zhí)行方法控制模塊504時獲得,并可有選擇地由方法控制模塊504在任意時刻釋放,例如在方法控制模塊504到達終止狀態(tài)時或者在任意其它先前時刻釋放。各個參數(shù)可在階段函數(shù)塊512內(nèi)定義。這些參數(shù)可包括為執(zhí)行控制而對連續(xù)控制模塊506的引用;在階段啟動時分配的資源名稱;以及標記,指示是否要在結(jié)束連續(xù)控制模塊506的執(zhí)行時釋放獲得的資源。默認地,資源名稱可基于所選連續(xù)或方法控制模塊的名稱。如果不存在所選連續(xù)控制模塊506,為了資源管理目的可使用階段。一旦處于終止狀態(tài),可根據(jù)配置標記釋放或不釋放方法控制模塊504所獲得的所有資源。在某些實施例中,單元控制模塊502、連續(xù)控制模塊506和控制模塊508可表示可在多個方法控制模塊504之間共享的公共資源。作為特定示例,方法控制模塊504可一般需要獲得單元控制模塊502以執(zhí)行其流程。因此,需要時,方法控制模塊504可獲得和釋放單元控制模塊502。作為另一特定示例,方法控制模塊504可獲得它們需要的連續(xù)控制模塊506和控制模塊508,以實現(xiàn)產(chǎn)品的生產(chǎn)。在單元控制模塊502中的所有者指針(ownerpointer)514識別相對單元控制;f莫塊502當前正在扭J亍的方法控制^f莫塊504(當前擁有或已獲得單元控制模塊502的方法控制模塊504)。仲裁隊列516識別等待獲得單元控制模塊502來執(zhí)行的指定數(shù)量的方法控制模塊504。在當前方法控制模塊504(由所有者指針514所識別)釋放單元控制模塊502時,單元控制模塊502可使用單元控制模塊502所支持的或者用戶所定義的任意仲裁技術(shù)(例如先入先出或其它技術(shù))從隊列516中選擇下一方法控制模塊504。同樣,連續(xù)控制模塊506可包含仲裁隊列518。在連續(xù)控制模塊506的仲裁隊列518中識別正等待獲得代表其階段塊的連續(xù)控制模塊506的一個或多個方法控制模塊504??砂慈我忭樞驈年犃?18中選擇方法控制模塊?!愣?,方法控制模塊504中的階段函數(shù)塊512表示用于獲得連續(xù)控制模塊506或者另一方法控制模塊504、發(fā)起并監(jiān)視其執(zhí)行的函數(shù)塊。例如,如果階段函數(shù)塊512配置成執(zhí)行連續(xù)控制模塊506,則階段函數(shù)塊512可獲得連續(xù)控制模塊506、把公式參數(shù)載入到連續(xù)控制模塊506并啟動連續(xù)控制模塊506。公式參數(shù)表示被階段用來將適當方法數(shù)據(jù)、例如控制在階段執(zhí)行期間如何使用過程單元510的數(shù)據(jù)通信到連續(xù)控制模塊506的參數(shù)集合。在執(zhí)行連續(xù)控制模塊506時,階段函數(shù)塊512可監(jiān)視連續(xù)控制模塊506的狀態(tài)。階段函數(shù)塊512還可從連續(xù)控制模塊506投射出數(shù)據(jù),使得可由方法控制模塊504經(jīng)階段函數(shù)塊512監(jiān)視SCM執(zhí)行。此外,例如在完成連續(xù)控制模塊506的執(zhí)行或者到達另一終止狀態(tài)時,階段函數(shù)塊512可命令連續(xù)控制模塊506向階段函數(shù)塊512上載各種報告參數(shù)。根據(jù)該配置,階段函數(shù)塊512可在該階段完成之前等待或不等待連續(xù)控制模塊506到完成,它允許方法控制模塊504行進到下一階段或步驟。此外,根據(jù)該配置,階段函數(shù)塊512可在該階段的完成時釋放或不釋放任意所獲資源(例如連續(xù)控制模塊506)。另外,方法控制模塊504、階段函數(shù)塊512或者其它模塊可生成并報告批量事件。過程控制系統(tǒng)500可與上述有保證批量事件交付機制配合使用。例如,可在過程控制系統(tǒng)500中生成以下類型的事件。在某些實施例中,事件可在控制執(zhí)行環(huán)境級、連續(xù)控制模塊/方法控制模塊(SCM/RCM)級以及SCM/RCM步驟和階段級生成。在各級能夠進行或不能進行事件的日志記錄,且能夠進行事件日志記錄允許向事件SDC216報告指定事件。在控制執(zhí)行環(huán)境級,用戶可定義分配多少存儲器用于緩存事件(事件緩沖器203的大小)。用戶也能或者不能把所有批量事件或所選類型的批量事件記入日志。事件的類型可包括RCM/SCM執(zhí)行、執(zhí)行細節(jié)、公式/方法參數(shù)、方法頭標、方法資源分配以及報告/歷史記錄參數(shù)??商砑拥饺罩镜腟CM事件可包括SCM/RCM執(zhí)行開始、SCM/RCM終止狀態(tài)、SCM/RCM步驟開始、SCM/RCM步驟完成、RCM階段開始、RCM階段完成、SCM方法參數(shù)下載(例如每參數(shù)一事件)、SCM歷史記錄參數(shù)上載(例如每參數(shù)一事件)、RCM公式參數(shù)下載(例如每參數(shù)一事件)以及RCM報告參數(shù)上載(例如每參數(shù)一事件)。總SCM/RCM事件使能參數(shù)能夠打開或關(guān)閉整個SCM/RCM事件報告(默認地,可對RCM設(shè)置"開"而對SCM設(shè)置"關(guān)")。過程控制系統(tǒng)500可使用圖6中示出的機制提供有保證批量事件交付。尤其是,圖6中示出的機制可在控制器104a-104b中控制執(zhí)行環(huán)境之內(nèi)實現(xiàn)。該機制允許批量事件被緩存在控制執(zhí)行環(huán)境中。它還可阻止某些用戶動作或其它動作,例如在與方法控制模塊504關(guān)聯(lián)的所有事件被記入日志且從事件SDC216接收到應(yīng)答之前阻止該方法控制模塊504的釋放或刪除(如上文參考圖3D所述)。如在圖6中所示,在控制執(zhí)行環(huán)境中執(zhí)行函數(shù)塊(例如連續(xù)控制模塊506或方法控制模塊504)。在其執(zhí)行期間,函數(shù)塊生成由表示為clsBatchEvent的類所定義的新事件。函數(shù)塊使用ReportNotice()函數(shù)向告警塊報告該新事件,告警塊導致ReportBlockNotice()被執(zhí)行。然后給該塊做標記,即事件使用ReportNotification()作了報告。塊管理器針對該事件是否表示批量事件做判決。如果否,則通過使用類clsCiNotification向通知客戶機206提供通知。否則,向事件管理器通報該批量事件。事件管理器與類clsBatchEventManger關(guān)聯(lián),所述類可表示處理批量事件和管理事件恢復所用的基數(shù)(cardinality)l類。這種類的功能性可包括存儲事件信息的緩沖器(例如緩沖器203)的創(chuàng)建和維持、批量事件的生成以及丟失或遺漏事件的重新生成或恢復。這種類還可支持用于增加事件信息的接口,并維持事件的序列標識符。事件管理器向通知客戶機206提供具有關(guān)聯(lián)序列標識符的批量事件。在該實施例中,clsBatchEventManger對象可在控制執(zhí)行環(huán)境啟動期間創(chuàng)建。在clsBatchEventManger對象的創(chuàng)建時,可把控制執(zhí)行環(huán)境中的批量事件的序列標識符設(shè)置到一個或某個其它初值。在某些實施例中,可不在dsBatchEventManger對象的創(chuàng)建期間分配用于緩沖器203的存儲器,因為緩沖器203的大小可不固定。而是可由用戶配置緩沖器大小,且在創(chuàng)建clsBatchEventManger對象時緩沖器203的配置數(shù)據(jù)可能是不可用的。例如,可向用戶提供緩沖器大小的多個選項,例如無、小型、中型和大型??砂纯刂茍?zhí)行環(huán)境配置的形式或者以任意其它合適方式提供這些選項。一旦選擇并存儲了該參數(shù),可調(diào)用clsBatchEventManger對象中的函數(shù)以創(chuàng)建緩沖器203所需的存儲器。如果選擇"無"的選項,則不給緩沖器203分配存儲器。同樣,如果存儲器對緩沖器203不可用,則返回異常(exception)。在特定實施例中,可在控制執(zhí)行環(huán)境的每個基本周期執(zhí)行clsBatchEventManger對象。例如,該對象的執(zhí)行可為控制執(zhí)行環(huán)境的預算任務(wù)的部分。clsBatchEventManger對象在其執(zhí)行時間內(nèi)可執(zhí)行的唯一處理可為添加那些先前沒被添加到CDA服務(wù)器204中的緩沖器的批量事件??上拗泼總€周期向CDA服務(wù)器204所報告的事件的數(shù)量(例如限制到5)。clsBatchEventManger對象可提供用于向CDA緩沖器添加事件信息的接口,以便支持這種功能性。當監(jiān)控服務(wù)器發(fā)起事件恢復時,它可用事件的序列標識符向控制執(zhí)行環(huán)境發(fā)送請求,指示該事件是依次接收到的最后事件。由塊管理器處理該命令,其在控制執(zhí)行環(huán)境可表示非預算任務(wù)??墒褂梅椒?method)標識符來區(qū)別事件恢復請求與其它請求(例如參數(shù)存儲)。在處理事件恢復請求時,塊管理器可調(diào)用clsBatchEventManger對象以將其索引重置到包含具有監(jiān)控服務(wù)器所請求的序列標識符的事件的新索引。如果要恢復的事件信息在控制執(zhí)行環(huán)境的緩沖器203中已被改寫(overwrite),則可生成"事件丟失"警報。如果用戶選擇"無"的緩沖器大小,則這表示有保證批量事件交付不與控制執(zhí)行環(huán)境配合使用。當緩沖器的大小為無時,可不給緩沖器203分配存儲器,從方法控制模塊504或連續(xù)控制模塊506所接收到的批量事件被直接發(fā)送到CDA服務(wù)器204。為了指示批量事件沒有保證,可在CDA事件結(jié)構(gòu)中將標記設(shè)置為適當值(例如"錯誤(false)")。當事件遺漏時,監(jiān)控服務(wù)器在知曉設(shè)為"錯誤"的標記時可不命令事件的重新生成。下文給出有保證批量事件交付機制的特定實施例的具體細節(jié)。這些細節(jié)僅是示例性的??墒褂弥С钟斜WC批量事件的過程控制系統(tǒng)的其它實施例。在特定實施例中,表示批量事件的類(clsBatchEvent)可包括適當值的定義。這些值可包括序列標識符(用于識別遺漏或丟失事件)、批量標識符(用于識別正在生產(chǎn)或處理的批量產(chǎn)品)以及子條件域。例如,事件通知的結(jié)構(gòu)可具有以下參數(shù)UINT64Seqld;〃序列號clsCIDSubCondCID;〃子條件的CID〃包含文本的數(shù)據(jù)容器〃與通知關(guān)聯(lián)的字符串DataContainerCreate〈MAX—NOTIF—DC—BUFFER〉StrValue;clsBatchEventManger對象可包括對其它類公開的函數(shù)。例如,對塊管理器公開的函數(shù)可包括BOOLEANIF_AddEvent(eventstructure);〃添加事件VoidIF_GenerateEvent()〃生成事件VoidIF—EventRegenRequest(UINT64SeqID)〃重新發(fā)送丟失或遺漏事件VoidIF一AllocationBufferMemory(enumsizesize)〃創(chuàng)建緩沖器重新生成批量事件所要求的基本信息可作為結(jié)構(gòu)存儲在事件緩沖器203中,例如如下定義的結(jié)構(gòu)StructEventStructure(DATETIMEtimestamp;IEEE—FLOAT64Value;IEEE一FLOAT64InfoFieldl;IEEE—FLOAT64infoField2;UINT64SequenceID;畫T64Executionld;clsIOIDBlockIOID;NM_SUBTYPEEventType;INT16infoField3j該結(jié)構(gòu)的大小可為60字節(jié)。為了節(jié)省存儲器,可根據(jù)存儲在緩沖器203中的事件的類型有區(qū)別地使用上述結(jié)構(gòu)的每個域。對于事件緩沖器203也可存在多個可能位置。例如,可在控制執(zhí)行環(huán)境中維持單循環(huán)緩沖器,給控制執(zhí)行環(huán)境分配的方法控制模塊504和連續(xù)控制模塊506可共享同一緩沖器。clsBatchEventManger對象可負責管理緩沖器203并在響應(yīng)恢復請求時重新生成事件。由于緩沖器203被控制執(zhí)行環(huán)境中所有方法控制模塊504和連續(xù)控制模塊506共享,因此它可被更有效地利用。例如,如果某些方法控制模塊504或連續(xù)控制模塊506沒有較多事件,則緩沖器203中的空間可由具有更多事件的其它方法控制模塊504和連續(xù)控制模塊506使用。在別的實施例中,各個方法控制模塊504和各個連續(xù)控制模塊506維持其自身的循環(huán)緩沖器。在這些實施例中,控制執(zhí)行環(huán)境可只對事件生成唯一標識符。事件緩沖器203還可用各種方法創(chuàng)建。例如,可在作為陣列的類之內(nèi)或在輔助存儲器中創(chuàng)建事件緩沖器203。如果創(chuàng)建為類的成員,則控制器104a-104b中的未使用或空閑的存儲器可用于緩沖器203,例如350KB的存儲器。如果在輔助存儲器中創(chuàng)建,則用戶可具有決定給事件緩沖器203所分配的存儲器的大小的選項。在某些實施例中,批量創(chuàng)建事件可包含可能表示字符串的批量標識符。為與緩沖器203的所有單元相關(guān)聯(lián)的字符串分配存儲空間可能是困難的。因為批量創(chuàng)建事件可不如其它事件那樣頻繁地被生成,所以可只在被稱為BatchldBuffer的獨立陣列中分配少量字符串對象。對于批量創(chuàng)建事件,事件的結(jié)構(gòu)中的參數(shù)可具有對BatchldBuffer陣列中的批量標識符的索引。該緩沖器的大小可固定,例如為事件緩沖器203的大小的1/10。表l示出事件緩沖器203與關(guān)聯(lián)BatchldBuffer陣列的各種可能大小。事件緩容量大小(KB)Batchld緩沖器大小緩沖器總大存類型(事件數(shù))的容量(KB)小(KB)小型1207.03120.57.53中型24014.06524115.06大型72042.18723.345.48表l可將列舉類型的參數(shù)添加到控制執(zhí)行環(huán)境的、用于定義事件緩沖器203的大小的定義文件。對該參數(shù)的訪問可僅限于例如開發(fā)者。該參數(shù)可具有無、小型、中型或者大型的值(其中任一個可作為默認值)。SetEventBfferSize()函數(shù)可存儲該參數(shù)的值。在存儲控制執(zhí)行環(huán)境的該參凄t日t,可只十clsBatchEventManger只十象、汐口對AllocationBufferMemory()函數(shù)進行調(diào)用,以便給緩沖器203分配所需存儲器。事件信息一旦被創(chuàng)建,就可通過對AddEvent()函數(shù)的調(diào)用將其添加到緩沖器203。該調(diào)用在塊管理器中作為ReportNotification()函數(shù)的部分而進行。在不創(chuàng)建緩沖器203的情況下(例如,因為用戶的選擇),可不報告事件。AddEvent()函數(shù)可定義如下clsCiNotifClient::plnstance'sAddNotificationfUnction:VoidclsBatchEventManager::Ad犯vent(strCkNotification*eventlnfo){IfBufferAllocatedif(LastElementlndex!=MaxBufferSize)LastElementIndex++;else〃指示該緩沖器已滿,且必須改寫添加的第一單元29LastElementlndex=0structEventStructure*BufferPtr=(structEventStructure*)BufferAuxMem.GetPointer()〃從strCkNotification結(jié)構(gòu)提取信息〃并在BufferPtr[LastElementlndex]存儲該值批量事件可被clsBatchEventManger對象添加到CDA緩沖器。clsBatchEventManger對象可作為控制執(zhí)行環(huán)境的預算任務(wù)的部分而被執(zhí)行。在其執(zhí)行期間,事件管理器對象可使用駐留在緩沖器203中的信息生成批量事件。由于這是控制執(zhí)行環(huán)境的預算任務(wù)的部分,因此可將事件管理器對象的處理時間保持到最短以避免周期超時運行(overrun),但周期同時足夠長以便按可接受速率生成事件,使得緩沖器不溢出(overflow)?;谶@種考慮,可限制事件管理器對象的一個執(zhí)行周期中生成的事件的數(shù)量(例如限制到5)。由于可定期(例如每50ms)執(zhí)行事件管理器對象,因此以這種節(jié)制它仍可每秒生成100個事件。這個數(shù)量可滿足過程處理系統(tǒng)的需要的另一原因在于過程處理系統(tǒng)中的其它組件可處理較少量的事件、例如每秒40個事件的最大值。鑒于此,clsBatchEventManger對象還可定義如下VoidclsBatchEventManager::EventGeneration()MaxEvenstPerExecutton=5counter=0clsCiBatchEventtempClsCiBatchEvt;ifEventBufferAllocatedstructEventStructure*BufferPtr=(structEventStructure*)BufferAuxMem.GetPointer0while(counter<MaxEvenstPerExecutionAnd(thereareeventstobegenerated))〃根據(jù)事件類型從BufferPtr[Currenffiventlndex]把信息〃復制到tempClsCiBatchEvt。if(clsCiNotifClient::pInstance->AddNotification(tempClsCiBatchEvt))!=FALSE)If(CurrentEventIndex<MaxSize)CurrentEventlndex++;ElseCurrentEventlndex=0;}else〃CDA緩沖器可已充滿,在下一循環(huán)時重試break;counter++可用指示將重新生成具有序列標識符大于給定序列標識符的所有事件的序列標識符命令事件恢復。為了處理事件恢復請求,可使用方法(method)標識符,且事件恢復可作為顯示請求處理的部分而被處理。在事件恢復的情況下,中斷屏蔽寄存器(interruptmaskregister:IMR)可容納該序列標識符。當該序列標識符為0時,這指示監(jiān)控服務(wù)器正在請求緩沖器203中所有事件的重新生成。可用該序列標識符調(diào)用clsBatchEventManger對象的RegenEvent()函數(shù)。RegenEvent()函數(shù)可重新設(shè)置CurrentEventlndex參數(shù)以指向容納比所接收序列標識符大1的序列標識符的事件結(jié)構(gòu)。然后可在事件緩沖器的執(zhí)行的下一周期期間重新生成事件。鑒于此,clsBatchEventManger對象還可定義如下VoidclsBatchEventManager::RegenEvents(UINT64RecoverseqID)ifBuffercreated{structEventStructure*BufferPtr=(structEventStructure*)BufferAuxMem.GetPointer()if(RecoverSeqID>0;>RecoverEventldex=Getlndex(Seqld);〃該函數(shù)返回該結(jié)構(gòu)的索引〃誰的sequenceld=RecoverSeqldelseRecoverEventlndex=Firstelementinthebufferif(RecoverEventlndex==-1)〃這表示該事件在緩沖器中不可用〃生成指示事件丟失的警報。RecoverEventldex=GetNExtlndex(SeqID)〃該函數(shù)返回具有其大于RecoverseqID的sequenceld〃第一結(jié)構(gòu)的索引。CurentEventldex=RecoverEventldex;在clsBatchEventManger對象的下一執(zhí)行中,可從所請求序列標識符重新生成事件。與函數(shù)塊(例如,方法控制模塊504和連續(xù)控制模塊506)關(guān)聯(lián)的靜態(tài)信息可不存儲在事件緩沖器203中。這種信息、例如塊名稱可存儲在別的位置,例如存儲在系統(tǒng)知識庫中。當塊被刪除時,這種信息可丟失,但是在所述塊已被刪除之后由被刪除塊所生成的事件仍可以存在于事件緩沖器203中。如果重新生成這些事件,則靜態(tài)信息域可容納默認值或錯誤值。對用戶而言,這些可能是不可接受的。為了避免這種情況,可直到由方法控制模塊504或連續(xù)控制模塊506所生成的所有事件被記入日志才將該模塊刪除。例如參數(shù)AllowBlockDdete可被添加到方法控制模塊504或連續(xù)控制模塊506。如果該模塊沒被配置成生成事件,則可把該參數(shù)的值設(shè)為"真(true),,。如果該模塊被配置成生成事件,則可把該參數(shù)設(shè)為"假(false)"。該模塊在完成其執(zhí)行之后,生成完成事件。監(jiān)控服務(wù)器在接收到完成事件時可發(fā)起駐留在完成事件中的ExecutionID的AllowBlockDelete參l史的存儲。如果ExecutionlD與該才莫塊的最后運4亍ExecutionlD匹配,則參數(shù)AllowBlockDelete可設(shè)為"真(true)"。為了刪除模塊,可先使其不活動(例如在該模塊的狀態(tài)為空閑時)。當模塊處于空閑狀態(tài)時,命令它不活動時,檢查值A(chǔ)lIowBlockDelete。如果AllowBlockDelete為"真(true),,,則允許參數(shù)中的ExecutionID的存儲。如果AllowBlockDelete為"假(false)",則不允許完成所述存儲,該模塊的狀態(tài)不改變,且直到由該模塊所生成的所有事件已被記入日志才允許用戶改變該模塊的狀態(tài)(除非生成"丟失事件"錯誤)。如果監(jiān)控服務(wù)器離線(offline),則可始終不進行AllowBlockDelete參數(shù)的存儲,且該模塊可始終不被刪除。為了克服這種情形,參數(shù)AllowForceDelete(其可能為布爾參數(shù))可被添加到所述模塊。當命令模塊不活動時,檢查AllowForceDelete參數(shù)的值。如果該值為"真(true),,,則允許改變狀態(tài)而不管AllowBlockDelete參數(shù)的值。當監(jiān)控服務(wù)器命令未駐留在緩沖器203中的序列標識符的事件恢復時,clsBatchEventManger對象可生成指示事件丟失的警報,并可以具有比所請求序列標識符大的序列標識符的第一事件開始啟動重新生成事件。警報可包含丟失事件的序列標識符。用于存儲批量標識符的BatchID緩沖器也可極為受限。BatchID緩沖器可按與主事件緩沖器203類似的方式工作。在添加新批量標識符期間,當BatcMD緩沖器已滿時該新標識符可改寫最舊的標識符。改寫B(tài)atchID緩沖器但對應(yīng)的事件條目(entry)仍駐留在事件緩沖器203中是可能的。這種情況下,當接收到對該事件的RegenEvent()函數(shù)調(diào)用時,該事件可用容納空字符串的BatchID域來生成。由于事件緩沖器203可在輔助存儲器中創(chuàng)建,因此它可在控制執(zhí)行環(huán)境的存在期間存在。在控制器重新載入或刪除的情況下,33可重新創(chuàng)建包括clsBatchEventManger對象的所有基數(shù)(cardinality)1對象。因此,對于控制器重新載入或控制執(zhí)行環(huán)境刪除不需要特別處理。同樣,在RAM保持重新啟動的情況下,如果已給事件緩沖器203分配了存儲器則可重新確認輔助存儲器l乘作。此外,如果將數(shù)據(jù)移到輔助存儲器中則輔助存儲器可能承受壓緊(compaction)。當該情形發(fā)生時,沒必要修改事件緩沖器203的內(nèi)容,因為clsBatchEventManger對象可不存儲與緩沖器203關(guān)聯(lián)的存儲器指針(因此在緩沖器203中沒有指針需要被更新)。另外,可不需要用于從緩沖器203去除事件信息的機制。當實現(xiàn)為循環(huán)緩沖器時,舊的事件信息最終由新的事件信息改寫。另夕卜,clsBatchEventManger對象可不進行抽點才企查(checkpoint)(意味著存儲在緩沖器203中的批量事件可在檢查點恢復期間丟失),且在某個控制器中的事件緩沖器203的內(nèi)容可由從屬或備份控制器追蹤。圖6中的塊管理器可包含用于操作批量事件處理的函數(shù)。由于批量事件處理可對所有平臺公用,因此可用公共文件對塊管理器進行改變。塊管理器中的函數(shù)可包括用于定期執(zhí)行的函數(shù),例如以下函數(shù)PeriodicExecution(void)if(isPrimary()!=FALSE)〃如果控制器是主控制器且〃沒有第二控制器clsBatchEventManager::plnstance隱〉GenerateEvents()該塊管理器還可包括ReportNotification()函數(shù),該函數(shù)負責填充CDA通知結(jié)構(gòu)并調(diào)用AddNotification()函數(shù)。當它收到批量事件時,該函數(shù)可填充所述事件結(jié)構(gòu)并調(diào)用clsBatchEventManger中的AddEvent()函數(shù)。這可使用以下指令來完成。constBOOLEANclsCkBlockManagerCommon::ReportNotification(strCkNotification*constCkNotif,constUINT32TaggedBlockAlarmState)NM—TYPENotificationType=((strCkNotice*)(CkNotif->BlockNotiee->Notice))->NotifClass;if(NotificationType!=NM—TYPE_BATCH_EVENT&&NotificationType!-NM—TYPE—PROCESS_ALERT)elseif(NotificationType==NM—TYPE—BATCH—EVENT)clsBatchEventManager::plnstance->AddEvent(Eventtracture)此外,為了支持事件恢復請求,方法(method)標識符kBatchEvtRegen可被添加到在控制執(zhí)行環(huán)境中所列舉的方法標識符。在事件恢復請求的情況下,clsBatchEventManger對象的RegenEvents()函數(shù)可用駐留在該請求中的序列標識符來調(diào)用。這可引起以下指令。BOOLEANclsCkBlockManagerCommon::CkExecute(constenmDataAccessListID,UINT32NumIMRs)while(pRequest!=NULL)switch(Methodld)casekBatchEvtRegen:gettherequestedSequenceldfromCDApacket.clsBatchEventManager::pInstance->RegenEvents(RequestedSequenceID)35如果圖5中示出的各種組件(例如方法控制模塊504和連續(xù)控制模塊506)被用于如圖2中所示的過程控制系統(tǒng)100,則圖2中的組件可如下實現(xiàn)。這些細節(jié)表示圖2所示的過程控制系統(tǒng)100的一種特定實現(xiàn),且不限制該公開的范圍。CDA服務(wù)器204和通知客戶機206之間的接口可支持以下特定事件以助于支持有保證事件交付方法事件恢復開始括弧和控制方法完成事件。這些事件可由控制執(zhí)行環(huán)境中所列舉的事件子類型唯一標識。為了支持有保證事件交付,每個方法事件可具有按照生成事件的順序所分配的唯一8字節(jié)增加型序列標識符。這些事件在被記入日志之前可從控制執(zhí)行環(huán)境流到事件SDC216。在該數(shù)據(jù)流動時,事件可遭受丟失,而序列標識符被用于追蹤任何丟失事件。各方法事件還可攜帶其控制執(zhí)行環(huán)境的載入時間,其可被用于記錄方法事件生成時的執(zhí)行環(huán)境周期。載入時間可記錄執(zhí)行環(huán)境的最新控制器重新載入的時間。序列標識符與執(zhí)行環(huán)境代碼和執(zhí)行環(huán)境的載入時間一起可構(gòu)成方法事件在整個過程控制系統(tǒng)中的唯一標識符。這三個組合域可因此用于命令關(guān)于特定控制執(zhí)行環(huán)境的方法事件恢復。序列標識符域可表示UINT64值,而載入時間域可表示FILETIME值。由于CDA服務(wù)器204可從控制執(zhí)行環(huán)境請求始于比從事件SDC216所接收到的所請求序列標識符大1的序列標識符的方法事件恢復,所以可不給方法事件的序列標識符分配零值。根據(jù)方法事件恢復,對零序列標識符進行請求可能表示對恢復在控制執(zhí)行環(huán)境中始于最舊的方法事件的所有事件的請求。同樣,當控制執(zhí)行環(huán)境重新載入時,其載入時間可重新設(shè)置到當前時間,且其序列標識符可開始于l值。對控制執(zhí)行環(huán)境的載入時間重新設(shè)置可確保序列標識符的當前周期被唯一標識。隨后的方法事件則可具有相同執(zhí)行環(huán)境載入時間的增加型序列標識符。可用以下函數(shù)來構(gòu)成CDA服務(wù)器204和通知客戶機206之間的接口的至少一部分。可在通知客戶機206從CDA服務(wù)器204預訂與服務(wù)器啟動有關(guān)的通知時調(diào)用GNotificationSubscribe()函數(shù)。該函數(shù)可具有回叫(callback)函數(shù),其充當通知客戶機206的入口點(entrypoint)以使CDA通知被傳遞到CDA服務(wù)器204。該函數(shù)還可包括到CDA服務(wù)器204的另一回叫函數(shù),使得CDA服務(wù)器204可從各控制執(zhí)行環(huán)境獲得最后#1記入日志的方法事件的序列標識符。GNotificationSubscribe()函數(shù)可如下實現(xiàn)?!▽νㄖ亟泻瘮?shù)的類型定義typedefint(*FPNotification)(NM_NOTIFICATION*);〃對GetSeqIDs回叫函數(shù)的類型定義typedefint(*FPGetSeqIDs)(WORD*,FILETIME*,UINT64**);〃預訂通知的函數(shù)CDAFUNCG一StatusAPIENTRYGNotificationSubscribe(〃通過回叫通知被傳遞到〃客戶機FPNotificationpfhNotifCallback〃通過回叫CDA服務(wù)器獲得SeqIDs列表FPGetSeqIDspfnGetSeqIDsCallback)GRecipeEventRecovery()函數(shù)可用于CDA服務(wù)器/通知客戶機接口,因此可在檢測到方法事件丟失時發(fā)起從控制執(zhí)行環(huán)境的方法事件恢復。例如,事件SDC216可^r測到無序的方法事件,例如具有比執(zhí)行環(huán)境的預期序列標識符高的序列標識符的事件。在這種情況下,事件SDC216確定已丟失一個或多個方法事件,并通過GDA管理器220調(diào)用該函數(shù)以命令該執(zhí)行環(huán)境的方法事件恢復。給該函數(shù)提供執(zhí)行環(huán)境的代碼、執(zhí)行環(huán)境的載入時間以及恢復在其開始的方法事件的序列標識符。這三個域可唯一標識恢復過程的起始點。接收到該命令時,CDA服務(wù)器204從執(zhí)行環(huán)境請求始于比來自事件SDC216的所請37求序列標識符大1的序列標識符的方法事件恢復。通知客戶機206可通過同一通知回叫函數(shù)接收所恢復的方法事件?;謴瓦^程的第一事件可為方法事件開始括弧,在它之后可為已恢復的一個或多個后續(xù)方法事件。GRecipeEventRecovery()函凄t定義如下?!◤氖加谒埱笮蛄蠭D的執(zhí)行環(huán)境觸發(fā)方法事件恢復的函數(shù)CDAFUNCG一StatusAPIENTRYGRecipeEventRecovery(constWORDNmEECode,const而T64NmSeqID,constFILETIMENmLoadTimeGControlRecipeComplete()函數(shù)給監(jiān)控服務(wù)器提供通知CDA服務(wù)器204它已把特定控制方法的執(zhí)行的所有方法事件記入日志的功能。事件SDC216可在它接收到控制方法完成事件且事件SDC216已把控制方法的所有方法事件記入日志時通過GDA管理器220調(diào)用該函數(shù)。該函數(shù)可具有將所完成控制方法的批量標識符傳遞到CDA服務(wù)器204的參數(shù)。事件SDC216可從控制方法完成事件中的適當域獲得所完成控制方法的批量標識符。CDA服務(wù)器204可需要或不需要識別控制方法的更多信息(例如執(zhí)行環(huán)境代碼或載入時間或控制模塊名稱)。GControIRecipeComplete()函凄史可定義如下。//用信號通知CDA服務(wù)器控制方法的所有方法事件被記入日志的函數(shù)CDAFUNCG—StatusAPIENTRYGControlRecipeComplete(constUINT32NmBatchID)在事件恢復期間,在所恢復事件之前是方法事件恢復開始括弧??稍谕ㄖ蛻魴C206進行通知預訂時或者在事件SDC216向CDA服務(wù)器204命令方法事件恢復時發(fā)送方法事件恢復開始括弧。從控制執(zhí)行環(huán)境發(fā)起該開始括弧以及所恢復方法事件。開始括弧可為恢復過程中的第一事件,且它對跟隨的一個或多個所恢復方法事件的序列的起始做標記。CDA服務(wù)器204可通過常用通知機制向通知客戶機206發(fā)送該事件。通知客戶機206可為該事件的唯一接收方,而不將它分發(fā)到控制臺或其它裝置。特定子類型可用于識別方法事件恢復開始括弧。該子類型可包含事件恢復所請求的序列標識符以及所恢復的第一可用方法事件的序列標識符。在正常情況下,當控制執(zhí)行環(huán)境中的方法事件的緩沖器203可服務(wù)恢復請求時,所返回的序列標識符可比所請求的序列標識符大l。但是,如果控制執(zhí)行環(huán)境中的緩沖器203已改寫要在其開始事件恢復的所請求方法事件,則執(zhí)行環(huán)境可必須恢復始于還在緩沖器203中的最舊的方法事件的任意余下事件。在這種情況下,在開始括弧中的所返回序列標識符將是所恢復的最舊的方法事件的序列標識符。同樣,控制執(zhí)行環(huán)境在它不能恢復所有所請求方法事件時可生成自應(yīng)答警報。方法事件恢復可請求或不請求結(jié)束括弧。與方法事件恢復開始括弧有關(guān)的其它細節(jié)在表2中提供。<table>tableseeoriginaldocumentpage39</column></row><table>表2監(jiān)控服務(wù)器可將該方法事件恢復開始括弧視為日志唯一事件。它因此可進入事件列表214,在事件摘要中顯示,并可最終到達事件SDC216并被記入到事件日志218中。通知客戶機206可檢查所有所接收通知以了解它是否接收到方法事件恢復開始括弧。如果是,則通知客戶機206可在與開始括弧關(guān)聯(lián)的通知隊列分組中設(shè)置標記以便對它進行標識。當該事件到達事件SDC216時,事件SDC216可使用該標記識別該事件,并可用存儲在該事件的值域中的所返回序列標識符更新其內(nèi)部列表。如果在內(nèi)存儲器(in-memory)列表中的序列標識符小于所返回的序列標識符,則可只進行該更新。這種機制可用于避免事件SDC216無限期地請求對在控制執(zhí)行環(huán)境緩沖器203中已被回繞(wrapped-around)的丟失事件的恢復??赡茉趥鬏斊陂g丟失方法事件恢復開始括弧。為了克服該問題,如果事件SDC216在命令方法事件恢復之后沒有接收到開始括弧,那么如果它具有下一預期序列標識符則它可繼續(xù)將所接收的后續(xù)方法事件記入日志并更新其內(nèi)部列表。直到它已接收到開始括弧或者直到從首次命令的恢復開始已過去某段時間(例如30秒),它才可重新命令另一方法事件恢復。可假定緊隨方法事件開始括弧的方法事件始終是4要序的(如果沒有出現(xiàn)中斷)。在完成方法執(zhí)行時,控制方法可用其批量標識符報告控制方法完成事件。批量標識符可被存儲在通知結(jié)構(gòu)的唯一標識符域中。該事件可具有指示它是來自控制方法的最后事件的特定子類型。與其它方法事件類似,它也可包含序列標識符,且該標識符可表示緊隨由方法執(zhí)行所發(fā)出的最后方法事件的下一增加型序列標識符。與控制方法完成事件有關(guān)的其它細節(jié)在表3中提供。域值NmCategoryNC一BATCH—EVENTNmTypeNM—TYPE—BATCH—EVENTNmSubType畫—SUBTYPE—CR一COMPLETENmEECode執(zhí)行環(huán)境代碼NmPriorityNM一PRIORITY一JOURNALNmUnikld批量標識符NmSeqld最后方法事件的序列標識符+1NmLoadTime執(zhí)行環(huán)境的載入時間szAuxDesc該事件的描述,例如"方法已完成"40批量標識符表3當通知客戶機206檢測到該事件時,它可在與控制方法完成事件關(guān)聯(lián)的通知隊列分組中設(shè)置標記,然后將它投寄到通知隊列208。當該事件到達事件SDC216時,如果控制方法完成事件的序列標識符與事件SDC216所預期的下一序列標識符匹配,則意味著事件SDC216已經(jīng)成功接收到該方法的所有方法事件并將其記入曰志。然后,它可調(diào)用hsc—gda—control—recipe—complete()GDAAPI函凄史來用信號通知CDA服務(wù)器204可刪除該控制方法。CDA服務(wù)器204可阻止該控制方法的刪除,直到接到事件SDC216的信號通知。如果事件SDC216檢測到控制方法完成事件的序列標識符失配,則意味著未將該方法執(zhí)行的所有方法事件記入日志,且它可調(diào)用(invoke)方法事件恢復以檢索丟失事件??纱嬖诳刂品椒ㄍ瓿墒录话l(fā)出但在它到達事件SDC216之前丟失的情形。因此,CDA服務(wù)器204可一直等待來自事件SDC216的信號。例如可在CDA服務(wù)器204或控制執(zhí)行環(huán)境在某超時(timeout)之后重新宣告方法完成事件時,提供從該狀態(tài)恢復的機制。通知客戶機206本身也可支持實現(xiàn)過程控制系統(tǒng)中的有保證事件交付的各種函數(shù)。其中,該可包括處理方法事件恢復開始括弧和控制方法完成事件。如上所述,通知客戶機206可對用于這些特定事件的通知隊列分組設(shè)置標記,然后再將其放入通知隊列208。標記可定義^口下。prtque—def〃方法事件恢復開始括弧事件#defmePRQ—CR—RECOVERY—BRACKET—MASK0x0004〃域屏蔽弁definePRQ—CR一RECOVERY—BRACKET—0x0004#defmePRQ—CR—RECOVERY—BRACKETBIT3〃比特位置〃控制方法完成事件#definePRQ—CR—COMPLETE—EVT—MASK0x0004〃域屏蔽弁definePRQ—CR—COMPL.ETE_EVT0x0004弁definePRQ—CR—COMPI—ETE—EVT—BIT4〃比特位置可將兩個類似標記添加到定義文件,使得通知管理器210在處理來自通知隊列208的這兩個事件的通知分組時,還設(shè)置與事件文件記錄結(jié)構(gòu)有關(guān)的對應(yīng)標記,然后將事件放入事件列表214。因此事件SDC216可知曉當這些事件到達時如何對其進行檢測,并作出相應(yīng)響應(yīng)。在當CDA服務(wù)器204知曉方法事件恢復被請求的情形中,CDA服務(wù)器204可不知曉在哪一方法事件開始恢復,且可不知曉哪些事件已被記入日志。如果該消息在事件SDC216可用,貝'JCDA服務(wù)器204可從其獲得該信息。為此,可將回叫函數(shù)添加到通知客戶機206。表示為nc—get—SeqID—for—EEs()的通知客戶機206回叫函數(shù)可給CDA服務(wù)器204提供入口點(entrypoint),用于查詢從各受控執(zhí)行環(huán)境接收到的被最后記入日志的方法事件的序列標識符。當通知客戶機206預訂關(guān)于服務(wù)器啟動的通知時,該回叫函數(shù)可被傳遞到CDA服務(wù)器204。如上所述,它可被作為GNotificationSubscribe()函數(shù)的參數(shù)傳遞。調(diào)用函數(shù)nc—get-SeqlD-for—EEs()可接收作為輸入?yún)?shù)的"recipeevent-capable(方法事件-可以)"執(zhí)行環(huán)境及其載入時間的列表,并可返回有助于從執(zhí)行環(huán)境的方法事件恢復的序列標識符的列表。它可由CDA服務(wù)器204例如在以下情況下調(diào)用通知客戶機206預訂來自CDA服務(wù)器204的通知、控制器重新啟動/重新連接以及控制器冷重啟。這種方法事件恢復可^L為CDAM^務(wù)器激活的恢復。它可略^:不同于由事件SDC216所發(fā)起的方法事件恢復,即它因原因不同而在不同組件中被發(fā)起。當回叫函數(shù)被調(diào)用時,它可通過getSequenceIDs()方法(method)查詢事件SDC216,查找序列標識符的列表。然后,它可向CDA服務(wù)器204返回該信息。在從回叫函數(shù)接收到該信息時,CDA服務(wù)器204可從執(zhí)行環(huán)境請求方法事件恢復。下面提供通知客戶機206回叫函數(shù)的定義。inthsc—nc—get—SeqID_for—EEs(intNumOffiE,WORD*EEs,FILETIME*LoadTimes,UINT64**SequenceIDs)〃查詢事件SDC以獲得從每個執(zhí)行環(huán)境所接收到的最后序列ID,42〃并向CDA服務(wù)器返回序列ID的列表〃返回值〃FP—GET—SEQID—ERROR,如果在查詢序列ID時出錯〃FP—GET—SEQID—OK,如果成功獲得序列ID〃FP—GET—SEQID—CANCEL,如果主線程相信該線程將不工作GDA管理器220還可支持在過程控制系統(tǒng)中實現(xiàn)有保證事件交付的各種函數(shù)。例如,GDA管理器220可支持訪問CDA服務(wù)器204的API函數(shù)??捎糜谑录謴偷膬蓚€CDAAPI函數(shù)可包括hsc_cda—recipe—event一recovery()和hsc—cda_control—recipe—complete()。這些方法(method)可分別調(diào)用GRecipeEventRecovery()和GControlRecipeComplete()CDA通知函數(shù)。下面給出關(guān)于這些CDAAPI函數(shù)的其它細節(jié)?!?.........................................................................//HSC—CDA—RECIPE—EVENT—RECOVERY-調(diào)用方法事件恢復〃..........................................................................〃簡述//調(diào)用GRecipeEventRecovery〃如果狀態(tài)不是"OK",就產(chǎn)生警報voidhsc—cda—recipe—event—recovery(int2EE,HSCTimeLoadTime,int8SeqID);〃..........................................................................//HSC_CDA—CONTROL—RECIPE—COMPLETE—發(fā)信號通報CR的所有方法〃事件被記入日志〃..........................................................................//簡述〃調(diào)用GControlRecipeComplete〃如果狀態(tài)不是"OK",就產(chǎn)生警報voidhsc—eda_control—recipe—complete(int4BatchID);可由GDA管理器220使用或支持的其它方法可包括RecipeEventRecover()和ControlRecipeComplete()。"i周用這兩種方法(method)可導致對應(yīng)的hsc_cda—recipe—event—recovery()和hsc—cda—control—recipe_complete()CDAAPI方法(method)4皮i周用。下面是關(guān)于這兩種方法(method)的更多細節(jié)。HRESULTRecipeEventRecover(〃參數(shù)int2EE,〃執(zhí)行環(huán)境(EE)代碼HSCTimeLoadTime,〃EE的載入時間[in]int8SeqID,〃用于恢復的序列IDGDAERR*pStatus);〃對請求所返回的狀態(tài)〃注意〃通過該方法(method)僅可進行CDA方法事件恢復?!刹恍枰狦DA恢復?!ǚ祷刂怠⊿_OK-該方法(method)調(diào)用成功〃S-FALSE-該方法(method)調(diào)用部分成功,錯誤被返回到pStatus〃failedHRESULT-該方法(method)調(diào)用失敗HRESULTControlRecipeComplete(〃參數(shù)int4BatchID,〃已完成控制方法的批量IDGDAERR*pStatus);〃對請求所返回的狀態(tài)〃注意〃通過該方法(method)僅可進行CDA方法事件恢復?!℅DA不支持該方法(method)?!ǚ祷刂怠⊿—OK-該方法(method)調(diào)用成功〃S-FALSE-該方法(method)調(diào)用部分成功,錯誤被返回到pStatus〃failedHRESULT-該方法(method)調(diào)用失敗HRESULTRecipeEventRecover(〃參數(shù)int2EE,〃EE代碼HSCTimeLoadTime,〃EE的載入時間int8SeqID,〃用于恢復的序列IDGDAERR*pStatus);〃對請求所返回的狀態(tài)〃注意〃客戶機調(diào)用該方法(method)來發(fā)起從服務(wù)器的方法事件恢復。44〃返回值〃S_OK-該方法(method)調(diào)用成功〃failedHRESULT-該方法(method)調(diào)用失敗HRESULTControlRecipeComplete(〃參數(shù)int4BatchID,〃批量IDGDAERR*pStatus);〃對請求所返回的狀態(tài)〃注意〃客戶機調(diào)用該方法(method)來通過信號通知CDA服務(wù)器〃對于CR執(zhí)行的所有方法事件被記入日志?!ǚ祷刂怠⊿—OK-該方法(method)調(diào)用成功〃failedHRESULT-該方法(method)調(diào)用失敗在GDA管理器中可使用附加的GDAAPI函數(shù)hsc_gda_recipe—event_recovery()和hsc一gda—control—recipe—complete()。這些方法(method)可分別調(diào)用RecipeEventRecover()和ControlRecipeComplete()GDA方法(method)。下面4是供關(guān)于這兩個函數(shù)的細節(jié)。〃...........................................................................〃HSC—GDA—RECIPE—EVENT—RECOVERY—調(diào)用方法事件〃恢復〃...........................................................................voidhsc_gda_recipe—event—recovery(intEE,〃EE代碼HSCTimeLoadTime,〃EE的載入時間int8SeqID)〃用于恢復的序列ID〃...........................................................................〃HSC_GDA—CONTROL—RECIPE—COMPLETE—發(fā)信號通知CR的所有〃方法事件被記入日志〃...........................................................................voidhsc—gda_control—recipe—complete(int4BatcWD)〃批量ID事件SDC216還可支持實現(xiàn)過程控制系統(tǒng)中的有保證事件交付的各種函數(shù)。為了追蹤任意丟失方法事件,事件SDC216可需要維持包含可用"recipeevent-capable(方法事件-可用)"執(zhí)行環(huán)境的內(nèi)存儲器列表、從這些執(zhí)行環(huán)境中每個執(zhí)行環(huán)境所接收到的最后序列標識符以及它們的載入時間。該列表提供事件SDC216從執(zhí)行環(huán)境預期的序列標識符的快速查找。事件SDC216中的內(nèi)部列表的示例如表4所示。<table>tableseeoriginaldocumentpage46</column></row><table>表4注意,上述列表中的第二項記錄具有O的最后所接收序列標識符。這意味著事件SDC216先前沒有將來自該執(zhí)行環(huán)境的任意方法事件記入日志,或者該執(zhí)行環(huán)境已被重新載入,且事件SDC216期望CDA服務(wù)器204從該執(zhí)行環(huán)境恢復所有方法事件??稍诜?wù)器啟動時初始化該列表。為了追蹤來自各"recipeevent-capable(方法事件-可用)"執(zhí)行環(huán)境的所有被記入日志的方法事件,可在SQL或其它數(shù)據(jù)庫中使用表格。該表格可包含先前已將其方法事件記入日志的所有執(zhí)行環(huán)境、來自這些執(zhí)行環(huán)境中每個執(zhí)行環(huán)境的已記入日志的最后序列標識符、以及它們的執(zhí)行環(huán)境載入時間。該表格的布局可與上述列表相同。在某個時間段過去之后(例如每分鐘),事件SDC216可將其內(nèi)存儲器列表復制到該表格。這可減少為更新該表格而給事件SDC216所施加的負載或使其最小化。根據(jù)冗余,可按照與事件日志218相同的方式將該表格同步到備份服務(wù)器。事件SDC216的GetSequencelDs()函數(shù)可在CDA服務(wù)器204嘗試發(fā)起方法事件恢復時被通知客戶機206調(diào)用。它可返回從執(zhí)行環(huán)境的所請求列表所接收到的被最后記入日志的方法事件的序列標識符。在該函數(shù)被調(diào)用時,事件SDC216可首先嘗試使用其內(nèi)部列表解析該請求。如果用相同所請求執(zhí)行環(huán)境載入時間找到執(zhí)行環(huán)境條目(entry),則事件SDC216可返回來自該列表的最后所接收序列標識符。如果執(zhí)行環(huán)境載入時間不同,則這可意味著控制器已被重新載入,且該函數(shù)可對該調(diào)用返回零序列標識符以指示事件SDC216希望從執(zhí)行環(huán)境恢復所有方法事件。對于后一情形,在事件SDC的內(nèi)部列表中的執(zhí)行環(huán)境條目(entry)可用執(zhí)行環(huán)境的新載入時間和零序列標識符來更新。如果不能在該列表中找到執(zhí)行環(huán)境條目(entry)或者該列表沒被初始化,則事件SDC216可查詢事件日志218以獲得對于具有相同所請求執(zhí)行環(huán)境載入時間的執(zhí)行環(huán)境的已記入日志的最大序列標識符。然后在事件SDC216的內(nèi)部列表的適當條目中使用該值。可通過使用ems—sp—GetGetSequenceID所存儲程序進行對事件日志218的查詢。如果找到該序列標識符,則該函數(shù)可更新事件SDC的內(nèi)部列表并返回該序列標識符。否則,可返回零序列標識符。以下是與getSequenceIDs()函數(shù)以及所存儲程序有關(guān)的更多細節(jié)?!枋觥ㄔ诹斜碇蝎@得各EE的最新序列ID〃參數(shù)〃[in]shortconnectID,〃[in]intNumO伍E,〃[in]int*EEs,〃[xn]_int64*EELoadTxmes,//參數(shù)值〃標準comS—OKorE—FAIL.〃[out]_int64**EESequenceIDsHRESULTgetSequenceIDs(shortco皿ectID,47[in]intNumOffiE,[in]int*EEs,—int64*EELoadTimes,[out]一int64**EESequenceIDs);ems_sp—GetGetSequenceID.sql〃名-爾ems—sp—GetGetSequenceID〃描述〃檢索對被給定其載入時間的最新序列ID〃參數(shù)〃@EE(in)獲得最新序列ID的EE〃@LoadTime(in)EE的載入時間〃@SequencelD(out)檢索的最新序列ID在事件SDC216處理方法事件時,它可纟全查序列標識符的任意間隙(gap)。如果它檢測到具有比下一預期序列標識高的序列標識符的方法事件,那么這可意味著已丟失了一個或多個事件,且事件SDC216可立即命令方法事件恢復。如果事件SDC216接收到該執(zhí)行環(huán)境的預期方法事件,則事件SDC216可用該事件的序列標識符更新其內(nèi)部列表。如果事件SDC216^r測到具有比該列表中的最后所接收序列標識低的序列標識符的方法事件,則它可不對列表進行任何操作。在所有三種情形中,事件SDC216可將方法事件記入到事件日志218。當事件SDC216接收到方法事件恢復開始括弧,如果且只有當該列表中的序列標識符'J、于所接收序列標識符時,它才可用存儲在事件的值域中的序列標識符更新其內(nèi)部列表。這是因為該列表中的序列標識符識別記入日志的最后方法事件,可不需要把該序列標識符還原到比其低的任意序列標識符。事件SDC216可不接收具有執(zhí)行環(huán)境載入時間與保存在其內(nèi)部列表中的不同的恢復開始括弧。這是因為事件SDC216命令或者CDA服務(wù)器204激活方法事件恢復,事件SDC216可始終首先用新執(zhí)行環(huán)境載入時間來更新其內(nèi)部列表。當恢復開始括弧到達事件SDC216時,它可始終包含預期的執(zhí)行環(huán)境載入時間。為了支持有保證事件交付,以下屬性可添加到事件曰志218所支持的事件^t式(eventschema):批量標識符、序列標識符和48執(zhí)行環(huán)境載入時間。所有這些屬性可被記入到事件日志218。此外,附加的參數(shù)索引屬性(例如UINT32值)可被添加到事件模式,且CDA通知域可被映射到該屬性。事件模式中的該屬性也可被記入到事件曰志218。如上所述,CDA服務(wù)器204可使用包含可表示字符串(例如LPSTR)的子條件域的通知結(jié)構(gòu)。該新通知域可被映射到事件模式的現(xiàn)有子條件屬性。以下表示可出現(xiàn)在過程控制系統(tǒng)100中的特定情形??刂品椒蓡硬⑸煞椒ㄊ录?,所述方法事件^^記入到事件日志218。然后,還在運行該控制方法的控制器被斷電(假設(shè)沒有備用電池以及空數(shù)據(jù)庫)。執(zhí)行該控制器的完全重載入,并再次啟動該控制方法。需要檢索來自該執(zhí)行環(huán)境的所有方法事件。在沒有該執(zhí)行環(huán)境的載入時間的情況下,事件SDC216可不知曉該控制器已被重新載入,則它可使用在重新載入之前從執(zhí)行環(huán)境所接收到的最后方法事件所繼續(xù)的序列標識符請求事件恢復。這可在恢復期間導致從控制方法的新運行中所生成的某些新方法事件被遺漏。為了避免這種情形,控制執(zhí)行環(huán)境可通過使用恰好在載入之后的下一序列標識符而繼續(xù),批量標識符可^C用來代替載入時間,或者下一序列標識符可恰好在控制器的重新載入之后繼續(xù)。此外,CDA服務(wù)器204可只具有執(zhí)行環(huán)境的列表而不具有其載入時間,且事件SDC216可返回與執(zhí)行環(huán)境的最新載入時間相關(guān)聯(lián)的序列標識符。CDA服務(wù)器204可還向事件SDC216提供該載入時間,因為事件SDC216中的載入時間可不為該^U亍環(huán)境的當前載入事件,而事件SDC216可需要知曉當前載入時間以便識別在那個序列標識符開始恢復。CDA服務(wù)器204可從執(zhí)行環(huán)境獲得載入時間。在另一示例情況中,可存在這樣的情形控制方法完成了其執(zhí)行,且控制方法完成事件被發(fā)出但在它到達事件SDC216之前被丟失。結(jié)果,在控制方法可被刪除之前,CDA服務(wù)器204可能一直等待來自事件SDC216的信號??纱嬖趶脑摖顟B(tài)恢復的機制,例如使CDA服務(wù)器204在某一溢出之后重新宣布該事件。另外,CDA服務(wù)器204可不保留任意事件(除了在通過通知高速緩存的控制臺站的情況下)。因此,可不存在CDA服務(wù)器204知曉事件在其往通知客戶沖幾206的^各途中^皮丟失的方式(way)??稍鰪奀DA服務(wù)器204使得每次它向通知客戶機206發(fā)送方法完成事件時,它在指定時段內(nèi)(在該時段之后CDA服務(wù)器204重新宣布該事件)等待從事件SDC216獲得hsc—gda_control_recipe_complete()調(diào)用。此夕卜,如果控制執(zhí)行環(huán)境沒有從事件SDC216接收到方法完成指示(通過CDA服務(wù)器204),則它可重新發(fā)出方法完成事件。盡管圖5和6示出了支持有保證批量事件交付的過程控制系統(tǒng)的部分的一種特定示例,但是可對圖5和6進行各種改變。例如,過程控制系統(tǒng)可包括任意數(shù)量的各組件502-518。此外,可用其它合適技術(shù)來實現(xiàn)或支持有保證事件交付。圖7示出支持過程控制系統(tǒng)中的有保證批量事件交付的示例用戶界面700。圖7中示出的用戶界面的實施例僅是示例性的。在沒有脫離該公開的范圍的情況下,可使用用戶界面700的其它實施例。該示例中,用戶界面700與控制執(zhí)行環(huán)境相關(guān)聯(lián)。用戶界面700包括各種標簽,用于訪問與控制執(zhí)行環(huán)境的不同可操作方面有關(guān)的不同信息并設(shè)置控制執(zhí)行環(huán)境的不同可操作方面。當選擇"main"標簽時,用戶界面700給用戶呈現(xiàn)各種信息和選項。選項之一包括下拉菜單702,用戶可用該菜單來選擇控制執(zhí)行環(huán)境中的事件緩沖器203的大小。在該示例中,下拉菜單702包括緩沖器大小的四個不同選項無(none)、小型(small)、中型(medium)和大型(large)。選擇"無"選項,則使用零緩沖器大小,且不能實現(xiàn)有保證批量事件交付。在特定實施例中,小型、中型和大型緩沖器203可分別容納120、240和740個事件。用戶基于例如在其中正在使用控制^l行環(huán)境的應(yīng)用程序來選擇適當?shù)木彌_器大小。盡管圖7示出了支持過程控制系統(tǒng)中的有保證批量事件交50付的用戶界面700的一種示例,但是可對圖7進行各種改變。例如可使用任意其它合適用戶界面或其它合適技術(shù)來設(shè)置控制執(zhí)行環(huán)境中的事件緩沖器203的大小。圖8示出用于過程控制系統(tǒng)中的有保證批量事件交付的示例方法(method)800。圖8中示出的方法(method)800僅是示例性的。在沒有脫離該公開的范圍的情況下,可使用方法(method)800的其它實施例。在步驟802,控制器生成并緩存多個事件。這可包括例如控制執(zhí)行環(huán)境生成與其操作關(guān)聯(lián)的各個事件、例如與一個或多個方法控制模塊504或連續(xù)控制模塊506的執(zhí)行相關(guān)聯(lián)的事件。在步驟804,控制器將唯一標識符與各事件關(guān)聯(lián)。這可包括例如控制器給控制器所生成的事件的序列分配順序數(shù)值。各事件的序列號在控制執(zhí)行環(huán)境的當前執(zhí)行中可是唯一的。序列號、標識控制執(zhí)行環(huán)境的代碼、以及控制執(zhí)行環(huán)境的載入時間可共同表示在整個過程控制系統(tǒng)中唯一標識事件的標識符。在步驟806,控制器將事件通信到監(jiān)控服務(wù)器,在步驟808,監(jiān)控服務(wù)器接收到事件中的至少某些事件并確定是否遺漏了任意事件。這可包含例如控制執(zhí)行環(huán)境向通知客戶機206提供事件,以供在通知隊列208中的存儲。這可還包括通知管理器21O從通知隊列208檢索事件。這可還包括通知管理器210將事件存儲在事件列表214中。另外,這可包括由事件SDC216通過使用所接收事件的唯一標識符確定是否遺漏了任意事件。在步驟810,如果沒有遺漏事件,則在步驟812將事件記入曰志。這可包括例如事件SDC216將事件存儲在日志218中。此時,流程返回到步驟802,在步驟802控制器生成更多事件。否則,遺漏了一個或多個事件,且在步驟814監(jiān)控服務(wù)器將對遺漏事件的請求通信到控制器。這可包括例如監(jiān)控服務(wù)器發(fā)送對事件恢復的請求。可將該請求經(jīng)通知客戶機206或GDA管理器220發(fā)送到CDA服務(wù)器204。51在步驟816,控制器接收到恢復請求并嘗試定位遺漏事件。這可包括例如CDA服務(wù)器204使控制執(zhí)行環(huán)境檢查在其緩沖器203中的事件,查找要被重新發(fā)送的事件。在步驟818,如果找到所有遺漏事件,則在步驟820控制器發(fā)送開始括弧和包括遺漏事件的所請求事件。否則,不能找到一個或多個遺漏事件,例如當在事件緩沖器203中一個或多個事件已被改寫時。這種情形下,在步驟822,控制器發(fā)送開始括弧和可找到(如果存在)的任意所請求事件,并設(shè)置警才艮。如果在緩沖器203中不能找到遺漏事件,則在步驟820中可省略開始括弧和所請求事件的發(fā)送。在步驟822所設(shè)置的警報可例如通知用戶遺漏事件,允許用戶采取任意合適措施。在步驟812,將所恢復事件記入日志,流程返回步驟802,在步驟802控制器生成更多事件。盡管圖8示出了用于過程控制系統(tǒng)中的有保證批量事件交付的方法(method)800的一種示例,但是可對圖8進行各種改變。例如,雖然示出為一系列步驟,但是圖8中的各種步驟可重疊、并行進行或者以不同次序進行。作為特定示例,控制器可連續(xù)生成、緩存事件并將其通信到監(jiān)控服務(wù)器,且需要時控制器可間歇地向監(jiān)控服務(wù)器重新傳送丟失或遺漏事件。在某些實施例中,用由計算機可讀程序代碼所構(gòu)成的并包含在計算機可讀i某介中的計算機程序?qū)崿F(xiàn)或支持各種功能。短語"計算機可讀程序代碼"包含包括源代碼、目標代碼以及可執(zhí)行代碼的任意類型計算機代碼。短語"計算機可讀媒介"包括能夠由計算機訪問的任意類型媒介,例如只讀存儲器(ROM)、隨機存取存儲器(RAM)、硬盤驅(qū)動器、壓縮盤(CD)、數(shù)字視頻盤(DVD)或者任意其它類型的存儲器。給出本專利文檔中使用的某些詞或短語的定義是有利的。術(shù)語"耦合"及其派生詞是指兩個或多個以上單元之間的任意直接或間接通信,不論這些單元是否相互處于物理接觸。術(shù)語"應(yīng)用程序(應(yīng)用)"和"程序"是指一個或多個適合以合適計算機代碼(包括源代碼、目標代碼以及可執(zhí)行代碼)實現(xiàn)的計算機程序、軟件組件、指令集合、流程、函數(shù)、對象、類、實例、相關(guān)數(shù)據(jù)或其部分。術(shù)語"發(fā)送(傳送、傳輸)"、"接收"和"通信"及其派生詞包括直接和間接通信。術(shù)語"包括"和"包含"及其派生詞表示非限制的包含。術(shù)語"或(或者)"是非排他性的,表示和/或。短語"與關(guān)聯(lián),,和"與其關(guān)聯(lián)"及其派生詞可表示包含、被包含于、互連于、容納、被容納于、連接到或與連接、耦合到耦合于、可與通信、與協(xié)作、交織、并列、被并列于、被捆綁到或被捆綁于、具有、具有屬性等。術(shù)語"控制器"表示控制至少一個操作的任意裝置、系統(tǒng)或其部分??刂破骺捎糜布?、固件、軟件或其中至少兩種的某一組合來實現(xiàn)。與任意特定控制器相關(guān)聯(lián)的功能性無論在本地或還是在遠程均可為集中式的或分布式的。既然該公開已描述了某些實施例及通常所關(guān)聯(lián)的方法,那么這些實施例和方法的變化和置換對本領(lǐng)域技術(shù)人員而言是顯而易見的。因此,示例實施例的以上描述不定義或約束該公開。在沒有脫離如由隨附權(quán)利要求書所定義的本公開的精神和范圍的情況下,還能夠?qū)崿F(xiàn)其它改變、替代和變化。權(quán)利要求1.一種方法,包括生成與過程控制系統(tǒng)中的控制器的操作相關(guān)聯(lián)的多個事件;將所述事件存儲在緩沖器中;將所述事件通信到與所述控制器相關(guān)聯(lián)的監(jiān)控裝置;接收恢復所述事件中一個或多個事件的請求;從所述緩沖器恢復所述事件中至少一個事件;將所述至少一個所恢復事件通信到所述監(jiān)控裝置。2.如權(quán)利要求l所述的方法,其中每個事件與唯一標識符相關(guān)聯(lián);以及所述請求識別與所述事件之一相關(guān)聯(lián)的所述唯一標識符。3.如權(quán)利要求2所述的方法,其中在所述請求中所識別的所述唯一標識符包括數(shù)字標識符;以及從所述緩沖器恢復所述至少一個事件包括恢復與比在所述請求中所識別的所述數(shù)字標識符大的數(shù)字標識符相關(guān)聯(lián)的任意事件。4.如權(quán)利要求l所述的方法,還包括響應(yīng)于從所述緩沖器恢復少于全部所需事件生成警報。5.如權(quán)利要求l所述的方法,其中所述事件與以下控制模塊中至少一個控制模塊的執(zhí)行相關(guān)聯(lián)方法控制模塊,定義批量產(chǎn)品的生產(chǎn)要求;以及連續(xù)控制模塊,提供對在所述過程控制系統(tǒng)中控制過程單元的控制模塊的訪問。6.如權(quán)利要求5所述的方法,還包括阻止所述方法控制模塊的刪除,直到由所述方法控制模塊所生成的所有事件已被所述監(jiān)控裝置記入曰志。7.如權(quán)利要求1所述的方法,還包括創(chuàng)建所述緩沖器,所述緩沖器具有用戶指定的大小。8.—種設(shè)備,包括至少一個存儲器,配置成存儲與從過程控制系統(tǒng)中的控制器所接收到的第一事件相關(guān)聯(lián)的唯一標識符,以及至少一個處理器,配置成從所述控制器接收第二事件;使用所述唯一標識符確定所述第一事件和所述第二事件之間的任意事件是否未被從所述控制器接收到;以及如果所述第一事件和所述第二事件之間的至少一個事件未被從所述控制器接收到,則發(fā)起事件恢復。9.如權(quán)利要求8所述的設(shè)備,其中與所述第一事件相關(guān)聯(lián)的所述唯一標識符包括第一數(shù)字標識符;所述第一事件包括來自所述控制器的最新所接收事件;以及所述至少一個處理器配置成通過確定與所述第二標識符關(guān)聯(lián)的第二數(shù)字標識符是否比所述第一數(shù)字標識符大l而確定所述第一事件和所述第二事件之間的任意事件是否未被從所述控制器接收到。10.如權(quán)利要求8所述的設(shè)備,其中,所述至少一個處理器還配置成在所述事件恢復期間從所述控制器接收至少一個所恢復事件。11.如權(quán)利要求10所述的設(shè)備,其中與所述第一事件相關(guān)聯(lián)的所述唯一標識符包括第一數(shù)字標識符;所述至少一個處理器配置成通過識別所述第一數(shù)字標識符發(fā)起所述事件恢復;以及每個所恢復事件與比所述第一數(shù)字標識符大的數(shù)字標識符相關(guān)聯(lián)。12.如權(quán)利要求8所迷的設(shè)備,其中,所述設(shè)備包括與所述過程控制系統(tǒng)中的所述控制器相關(guān)聯(lián)的監(jiān)控裝置,所述監(jiān)控裝置配置成將所述事件記錄到數(shù)據(jù)庫中。13.如權(quán)利要求8所述的設(shè)備,其中所述事件中的至少某些事件與方法控制模塊的控制器的執(zhí)行相關(guān)聯(lián),所述方法控制模塊定義批量產(chǎn)品的生產(chǎn)要求;以及所述至少一個處理器配置成向所述控制器提供指示已從所述控制器接收到由所述方法控制模塊所生成的所有事件的信號,所述控制器配置成阻止所述方法控制模塊的刪除直到已接收到所述信號。14.一種包含在計算機可讀媒介上的計算機程序,所述計算機程序包括計算機可讀程序代碼,用于生成與過程控制系統(tǒng)中的控制器的操作相關(guān)聯(lián)的多個事件;計算機可讀程序代碼,用于將所述事件存儲在緩沖器中;計算機可讀程序代碼,用于將所述事件通信到與所述控制器關(guān)聯(lián)的監(jiān)控裝置;計算機可讀程序代碼,用于接收對恢復一個或多個事件的請求;計算機可讀程序代碼,用于從所述緩沖器恢復所述事件中的至少一個事件;計算機可讀程序代碼,用于將所述至少一個所恢復事件通信到所述監(jiān)控裝置。15.如權(quán)利要求14所述的計算機程序,其中每個事件與唯一標識符相關(guān)聯(lián);以及所述請求識別與所迷事件之一相關(guān)聯(lián)的所述唯一標識符。16.如權(quán)利要求15所述的計算機程序,其中在所述請求中所識別的所述唯一標識符包括數(shù)字標識符;以及用于從所述緩沖器恢復所述至少一個事件的所述計算機可讀程序代碼包括用于恢復與比在所述請求中所識別的所述數(shù)字標識符大的數(shù)字標識符相關(guān)聯(lián)的任意事件的計算機可讀程序代碼。17.如權(quán)利要求14所述的計算機程序,還包括計算機可讀程序代碼,用于響應(yīng)于從所述緩沖器恢復少于全部所需事件生成警報。18.如權(quán)利要求14所述的計算機程序,還包括用于創(chuàng)建所述緩沖器的計算機可讀程序代碼,所述緩沖器具有用戶指定的大小。19.如權(quán)利要求14所述的計算機程序,其中所述事件中的至少某些事件與方法控制模塊的控制器的執(zhí)行相關(guān)聯(lián),所述方法控制模塊定義批量產(chǎn)品的生產(chǎn)要求;以及還包括用于阻止所述方法控制模塊的刪除直到由所述方法控制模塊所生成的所有事件已被所述監(jiān)控裝置記入日志的計算機可讀程序代碼。20.—種系統(tǒng),包括控制器,配置成對過程控制系統(tǒng)中的一個或多個過程單元進行控制,所述控制器還配置成生成并緩存與所述控制器的操作相關(guān)聯(lián)的多個事件,每個事件與唯一標識符相關(guān)聯(lián);以及監(jiān)控裝置,配置成從所述控制器接收所述事件中的至少某些事件,并根據(jù)所述唯一標識符確定所述事件中的任意事件是否未被從所述控制器接收到,所述監(jiān)控裝置還配置成如果所述事件的至少一個事件未被從所述控制器接收到則通過所述控制器發(fā)起事件恢復;其中,所述控制器還配置成在所述事件恢復期間恢復至少一個事件并將所述至少一個所恢復事件通信到所述監(jiān)控裝置。21.如權(quán)利要求20所述的系統(tǒng),其中所述唯一標識符包括數(shù)字標識符;以及所述監(jiān)控裝置配置成通過確定在與從所述控制器接收到的所述事件相關(guān)聯(lián)的所述數(shù)字標識符中是否存在間隔而確定所述事件的任意事件是否未被從所述控制器接收到。22.如權(quán)利要求21所述的系統(tǒng),其中所述監(jiān)控裝置配置成通過識別與所述事件之一相關(guān)聯(lián)的所述數(shù)字標識符,發(fā)起所述事件恢復;以及所述控制器配置成恢復具有比由所述監(jiān)控裝置所識別的所述數(shù)字標識符大的數(shù)字標識符的任意事件。23.如權(quán)利要求20所述的系統(tǒng),其中,所述控制器還配置成響應(yīng)于恢復少于全部所請求事件而生成警報。全文摘要控制器(104a-104b)控制過程控制系統(tǒng)(100)中的一個或多個過程單元(102a-102b)??刂破?104a-104b)還生成并緩存與控制器(104a-104b)關(guān)聯(lián)的多個事件。每個事件與例如數(shù)字標識符的唯一標識符相關(guān)聯(lián)。監(jiān)控裝置(106a-106b,216)從控制器(104a-104b)接收所述事件中的至少某些事件。監(jiān)控裝置(106a-106b,216)根據(jù)所述唯一標識符確定是否未從控制器(104a-104b)接收到所述事件中的任意事件。此外,監(jiān)控裝置(106a-106b,216)如果沒有從控制器(104a-104b)接收到所述事件中的至少一個事件,則發(fā)起事件恢復。在事件恢復期間,控制器(104a-104b)恢復至少一個事件、例如具有比由監(jiān)控裝置(106a-106b,216)所識別的數(shù)字標識符大的數(shù)字標識符的任意事件。在事件恢復期間,控制器(104a-104b)將所述至少一個所恢復事件通信到監(jiān)控裝置(106a-106b,216)。文檔編號G05B19/41GK101512454SQ200780032583公開日2009年8月19日申請日期2007年7月2日優(yōu)先權(quán)日2006年7月6日發(fā)明者D·格拉納特利,J·趙,M·G·坎吉申請人:霍尼韋爾國際公司