專利名稱:用于允許在過程控制系統(tǒng)中故障回退到先前軟件版本的裝置和方法
技術領域:
本公開內容總體上涉及控制系統(tǒng)。更具體地說,本公開內容涉及一種在過程控制系統(tǒng)中允許故障回退(fail - back)到先前軟件版本的裝置和方法,可以包括在故障回退期間維持對過程的控制。
背景技術:
常常使用過程控制系統(tǒng)來管理處理工廠。示例處理工廠包括制造廠、化工廠、原油精煉廠和礦石處理廠。連同其它操作一起,過程控制系統(tǒng)一般在處理工廠中管理對電動機、閥及其它工業(yè)裝置的使用。在常規(guī)的過程控制系統(tǒng)中,控制器常常用來控制對處理工廠中工業(yè)裝置的操作。所述控制器例如可以監(jiān)視工業(yè)裝置的操作,向所述工業(yè)裝置提供控制信號,并且當檢測到故障時產(chǎn)生警報。 在常規(guī)的過程控制系統(tǒng)中,常常需要或者希望更新正由控制器執(zhí)行的軟件。更新軟件的過程通常被稱為"移植(migration)"。不同的軟件或不同版本的軟件通常還被稱為"軟件版本(softwarereleases)"。過程控制系統(tǒng)移植到新的軟件版本常常是關鍵操作,原因在于它可能顯著地影響(或者甚至停止)處理工廠的操作。典型地,過程控制系統(tǒng)移植到新的軟件版本還需要依照以下方式來進行,其中從一個軟件版本到下 一 個軟件版本保留過程控制系統(tǒng)的功能和行為(behavior)。
發(fā)明內容
本公開內容提供了 一種在過程控制系統(tǒng)中允許故障回退到先前軟件版本的設備和方法,它可以包括在故障回退期間維持對過程的控制。在第一實施例中, 一種方法包括接收安裝軟件版本的請求,其中所述軟件版本要被安裝在第一裝置和/或第二裝置上。所述方法還包括發(fā)起在所述第二裝置上安裝軟件版本并且確定用戶是否想要繼續(xù)安裝所述軟件版本。所述方法進一步包括如果所述用戶想要繼續(xù)安裝那么發(fā)起在所述第一裝置上安裝軟件版本。另外,所述方法包括如果用戶不想繼續(xù)安裝那么在第二裝置上恢復第二軟件版本。在特定的實施例中,第一和第二裝置表示用來控制過程的控制器。在安裝軟件版本和恢復第二軟件版本期間,所述過程由至少一個控制器來控制。在其它特定的實施例中,第一和第二裝置表示冗余的裝置。在第二裝置上安裝軟件版本期間,第 一裝置充當主裝置并且所述笫二裝置充當后備裝置。所述方法還包括在第二裝置上安裝軟件版本之后致使所述第二裝置充當主裝置和第一裝置充當后備裝置。所述方法進一步包括在笫二裝置上恢復第二軟件版本期間使所述第二裝置充當后備裝置并且使第 一裝置充當主裝置。在第二實施例中, 一種設備包括用來存儲軟件版本的至少一個存儲器。所述設備還包括可操作來接收安裝軟件版本的請求的至少一個處理器,其中所述軟件版本要被安裝在第一裝置和/或第二裝置上。至少一個處理器還用來在第二裝置上發(fā)起軟件版本的安裝并且確定用戶是否想要繼續(xù)所述軟件版本的安裝。至少一個處理器進一步用來如果用戶想要繼續(xù)安裝那么在第一裝置上發(fā)起軟件版本的安裝。另外,至少一個處理器用來如果用戶不想繼續(xù)安裝則在第二裝置上恢復第二軟件版本。在第三實施例中,計算機程序被包含在計算機可讀媒體上并
且可操作來由處理器執(zhí)行。計算機程序包括用來接收安裝軟件版本的請求的計算機可讀程序代碼,其中所述軟件版本要被安裝在第一裝置和/
或第二裝置上。所述計算機程序還包括用于發(fā)起在所述第二裝置上安裝軟件版本并且確定用戶是否想要繼續(xù)安裝所述軟件版本的計算機可讀
程序代碼。所述計算機程序進一步包括如果所述用戶想要繼續(xù)安裝那么在所述第一裝置上發(fā)起安裝所述軟件版本的計算機可讀程序代碼。另外,所述計算機程序包括用于如果用戶不想繼續(xù)安裝那么在第二裝置上恢復第二軟件版本的計算機可讀程序代碼。根據(jù)以下附圖、描述和權利要求,對于本領域技術人員而言
其它技術特征可以是容易看得見的。
為了更完整地理解此公開內容,現(xiàn)在結合附圖來參考下列描迷,其中圖1圖示了依照本公開內容的一個實施例的示例過程控制系
統(tǒng);圖2圖示了用于在依照本公開內容的一個實施例的過程控制系統(tǒng)中允許故障回退到先前軟件版本的示例方法;圖3到6C圖示了用于在依照本公開內容的一個實施例的過程控制系統(tǒng)中支持移植到新的軟件版本的示例用戶界面;和圖7圖示了用于在依照本公開內容的一個實施例的過程控制系統(tǒng)中執(zhí)行移植到新的軟件版本的示例性狀態(tài)機。
具體實施例方式圖1圖示了依照本公開內容的一個實施例的示例過程控制系統(tǒng)100。在圖1中所示出的過程控制系統(tǒng)100的實施例僅供舉例說明之用??梢栽诓幻撾x本公開內容的范圍的情況下使用過程控制系統(tǒng)100的其它實施例。在此示例實施例中,過程控制系統(tǒng)100包括一個或多個處理單元102a-102b。處理單元102a-102b表示過程或生產(chǎn)系統(tǒng)中的組件,所迷組件可以執(zhí)行各種功能。例如,處理單元102a-102b可以表示生產(chǎn)環(huán)境中的電動機、催化裂化器、閥及其它工業(yè)裝置。處理單元102a-102b可以表示任何適當?shù)倪^程或生產(chǎn)系統(tǒng)中的任何其它或附加組件。每個處理單元102a-102b包括用于執(zhí)行在過程或生產(chǎn)系統(tǒng)中的一個或多個功能的任何硬件、軟件、固件或其組合。兩個控制器104a-104b被耦合到處理單元102a-102b??刂破?04a-104b控制處理單元102a-102b的操作。例如,控制器104a-104b能夠定期地向處理單元102a-102b提供控制信號。每個控制器104a-104b包括用于控制一個或多個處理單元102a-102b的任何硬件、軟件、固件或其組合。示例控制器104a-104b可以包括來自霍尼韋爾國際公司(HONEYWELL INTERNATIONAL INC.)的C300控制器和SERIES C醒。任選地, 一個或多個輸入/輸出(1/0)模塊105可以在控制器104a-104b和一個或多個處理單元102a-102b (在此例子中, 一個或多個處理單元102b)之間操作。每個I/0模塊105使在控制器104a-104b和(一個或多個)處理單元102b之間的通信便于進行。例如,1/CM莫塊105可以表示數(shù)據(jù)獲取裝置,用于從控制器接收數(shù)據(jù)并且把所述數(shù)據(jù)提供到處理單元。izo模塊105還可以從處理單元接收數(shù)椐并且把所述數(shù)據(jù)提供到控制器。每個I/0模塊105包括用于使在控制器和處理單元之間的通信便于進行的任何硬件、軟件、固件或其組合。1/O模塊105例如可以表示來自霍尼韋爾國際公司的SERIES CIOM。如圖l所示,1/0才莫塊105還可以在冗余的組中操作。兩個服務器106a-106b被耦合到控制器104a-104b。服務器106a-106b執(zhí)行用于支持控制器104a-104b和處理單元102a-102b的操作和控制的各個功能。例如,服務器106a-106b可以記錄由控制器104a-104b所收集或產(chǎn)生的信息,諸如與處理單元102a-102b的操作相關的狀態(tài)信息。服務器106a-106b還可以執(zhí)行用于控制控制器104a-104b的操作的應用程序,由此控制處理單元102a-102b的操作。另外,服務器106a-106b可以提供對控制器104a-104b的安全訪問。每個服務器106a-106b包括用于提供對控制器104a-104b的訪問或控制的任何硬件、軟件、固件或其組合。每個服務器106a-106b例如可以包括一個或多個處理器107和一個或多個存儲器109,所述存儲器109用于存儲由(一個或者多個)處理器107使用的數(shù)據(jù)和指令(諸如由控制器104a-104b執(zhí)行的軟件)。在特定的實施例中,服務器106a-106b可以表示用于執(zhí)行MICROSOFT WINDOWS操作系統(tǒng)的個人計算機(諸如臺式計算機)。在其它特定的實施例中,服務器106a-106b可以包括用于運行GREENHILLS INTEGRITY操作系統(tǒng)的POWERPC處理器系列的處理器或用于運行MICROSOFT WINDOWS操作系統(tǒng)的X86處理器系列的處理器?!獋€或多個操作者站108a-108b被耦合到服務器106a-106b,并且一個或多個操作者站108c被耦合到控制器104a-104b。操作者站108a-108b表示用于向服務器106a-106b提供用戶訪問的計算或通信裝置,所述服務器106a-106b于是可以提供對控制器104a-104b和處理單元102a-102b的用戶訪問。操作者站108c表示用于向控制器104a-104b提供用戶訪問的計算或通信裝置(在不使用服務器106a-106b的資源的情況下) 作為特定的例子,操作者站108a-108c可以允許用戶使用由控制器104a-104b和/或所述服務器106a-106b所收集的信息來查閱處理 單元102a-102b的操作歷史。操作者站108a-108c還可以允許用戶調節(jié) 處理單元102a-102b、控制器104a-104b或服務器106a-106b的操作。每 個操作者站108a-108c包括用于支持系統(tǒng)100的用戶訪問和控制的任何 硬件、軟件、固件或其組合。每個操作者站108a-108c例如可以包括一 個或多個處理器111和一個或多個存儲器113,所述存儲器113用于存 儲由(一個或多個)處理器lll使用的數(shù)據(jù)和指令(諸如由控制器 104a-104b執(zhí)行的軟件)。在特定的實施例中,操作者站108a-108c可以 表示用于執(zhí)行MICROSOFT WINDOWS操作系統(tǒng)的個人計算機。
在此例子中,至少一個操作者站108b遠離于服務器 106a-106b。遠程站通過網(wǎng)絡110被耦合到服務器106a-106b。網(wǎng)絡IIO 使在系統(tǒng)100中各組件之間的通信便于進行。例如,網(wǎng)絡110可以在網(wǎng) 絡地址之間傳送因特網(wǎng)協(xié)議(IP)分組、幀中繼幀、異步傳輸模式(ATM) 單元或其它適當?shù)男畔?。網(wǎng)絡110可以包括一個或多個局域網(wǎng)(LAN)、 城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、諸如因特網(wǎng)之類的全球網(wǎng)絡的全 部或一部分或者在一個或多個位置的任何其它(一個或者多個)通信系 統(tǒng)。在此例子中,系統(tǒng)100包括兩個附加服務器112a-112b。服務 器112a-112b執(zhí)行各種應用程序來控制系統(tǒng)IOO的整個操作。例如,系 統(tǒng)IOO可以用在處理或生產(chǎn)工廠或其它設施中,并且服務器112a-112b 可以執(zhí)行用于控制所述工廠或其它設施的應用程序。作為特定的例子, 服務器112a-112b可以執(zhí)行諸如企業(yè)資源計劃(ERP)、制造執(zhí)行系統(tǒng) (MES)或任何其它或附加工廠或過程控制應用之類的應用程序。每個 服務器U2a-112b包括用于控制系統(tǒng)100的整個操作的任何硬件、軟件、 固件或其組合。如圖1所示,系統(tǒng)100包括各冗余網(wǎng)絡114a-114b和單個網(wǎng) 絡116a-U6b,用于支持在所述系統(tǒng)100中的組件之間的通信。這些網(wǎng) 絡114a-114b、 116a-116b中的每個都表示用于使在系統(tǒng)100中組件之間 的通信便于進行的任何適當?shù)木W(wǎng)絡或網(wǎng)絡組合。網(wǎng)絡114a-114b、 116a-116b例如可以表示以太網(wǎng)。依照操作的一個方面,控制器104a-104b執(zhí)行采用軟件形式 的邏輯??刂破?04a-104b還可以作為過程控制系統(tǒng)100中的冗余控制
8器來操作。例如,控制器104a可以起到主控器的作用,這意味著控制 器104a起到處理單元102a-102b的主要或主控制器的作用??刂破?04b 可以起到后備或次級控制器的作用,這意味著控制器104b可以與控制 器104a同步并且在必要時(諸如在控制器104a發(fā)生故障期間)接管對 處理單元102a-102b的控制。用戶可能想要在控制器104a-104b上安裝新的軟件。在此文 檔中,術語"軟件"包含由處理器、控制器、服務器或其它裝置所執(zhí)行的 任何邏輯,包括指令或采用固件形式的其它邏輯。術語"版本"還指代不 同的軟件或不同的軟件版本。作為一個例子,使用操作者站108a-108c 之一的用戶可以發(fā)起新的軟件版本到控制器104a-104b上的下栽。依照 此公開內容,移植到新的軟件版本可以如下進行。在次級或后備控制器 104b上安裝新的軟件版本,并且后備控制器104b被切換以便充當處理 單元102a-102b的主控制器。在這一點上,用戶可以評估新的軟件版本。 如果用戶對新的軟件版本滿意,那么所述新的軟件版本被加栽到另 一個 控制器104a上。否則,另一個控制器104a變?yōu)樘幚韱卧?02a-102b的 主控制器,并且在控制器104b上恢復(重新安裝,重新加載等)先前 的軟件版本。這樣,用戶可以使用控制器104b來評估新的軟件版本并且標 識所述新的軟件版本的任何問題(諸如控制器104b的意外行為)。如 果檢測到問題,那么在控制器104a控制處理單元102a-102b時用戶可以 "故障回退"或返回到控制器104b上的先前軟件版本。由此,處理單元 102a-102b可以由控制器104a-104b之一來連續(xù)地控制,即使當用戶正在 評估新的軟件版本并且可能故障回退到先前軟件版本時也是如此。上述移植和故障回退功能不限于與冗余控制器一起使用???以使用相同或類似的功能來把新的軟件版本加載到過程控制系統(tǒng)100中 的任何冗余裝置組上,諸如1/0模塊105。在特定的實施例中,上述移 植和故障回退功能還可以使用供用戶使用的移植"向導"或其它應用程 序來實現(xiàn)。例如,移植向導可以向用戶呈現(xiàn)用戶界面,其中所述用戶界 面使移植和故障回退功能便于進行。作為特定的例子,移植向導可以表 示由系統(tǒng)100中的一個或多個操作者站108a-108c或一個或多個服務器 (諸如服務器106a-106b)所執(zhí)行或支持的應用程序。在圖2到7中示 出了關于移植向導或其它應用程序操作的附加細節(jié),如下所述。
盡管圖1圖示了過程控制系統(tǒng)IOO的一個例子,不過可以對 圖l進行各種改變,例如,控制系統(tǒng)可以包括任意數(shù)目的處理單元、控 制器、服務器和操作者站。圖l還圖示了其中可以移植到新的軟件版本 和故障回退到先前軟件版本的一個操作環(huán)境??梢栽谌魏纹渌m當?shù)难b 置或系統(tǒng)中使用移植和故障回退機制。圖2圖示了用于在依照本公開內容的一個實施例的過程控制 系統(tǒng)中允許故障回退到先前軟件版本的示例方法200。為了便于解釋,
圖1的過程控制系統(tǒng)100的控制器104a-104b中控制軟件移植。所述方 法200可以由任何適當?shù)难b置使用以及在任何適當?shù)南到y(tǒng)中用來支持任 何適當?shù)能浖浦?。在步驟202,移植向導接收在冗余的控制器上更新軟件的請 求。這例如可以包括用戶從其它應用程序直接或間接地調用移植向導, 所述應用程序由所述用戶用來實現(xiàn)其它功能。作為特定的例子,所述用 戶可以從霍尼韋爾國際公司的CONTROL BUILDER應用程序調用移植 向導。在此步驟中,用戶還可以標識將被加載到控制器上的軟件版本。 由用戶所選擇的版本可以被認為是"目標,,軟件版本。在步驟204,移植向導標識哪個控制器是主控制器并且哪個 控制器是次級控制器。在此例子中,控制器104a可以表示主控制器, 并且控制器104b可以表示次級控制器。在步驟206,移植向導在次級控制器上安裝軟件。這例如可 以包括,移植向導在網(wǎng)絡114b上向次級控制器104b發(fā)送目標軟件版本。 這還可以包括次級控制器104b接收、存儲并執(zhí)行目標軟件版本。在步驟208,移植向導使主和次級控制器同步??梢允褂萌?何適當?shù)耐郊夹g來使控制器104a-104b同步。例如在步驟204之前, 移植向導可以發(fā)起對主控制器的數(shù)據(jù)的快照,這捕獲了由所述主控制器 104a使用來控制處理單元102a-102b的當前數(shù)據(jù)值。移植向導還可以禁 止在主和次級控制器之間的數(shù)據(jù)的同步(意味著在控制器104b并不復 制在控制器104a中的數(shù)據(jù)變化)。在步驟208期間,移植向導可以把 主控制器的數(shù)椐的快照加栽到次級控制器104b中。移植向導還可以激 活(enable)在主和次級控制器之間的數(shù)據(jù)的同步。快照的加載可以使 次級控制器104b達到主控制器104a的當前狀態(tài)或接近當前狀態(tài)。激活
10在控制器104a-104b之間的數(shù)據(jù)的同步可以允許對主控制器的數(shù)據(jù)進行 的其它改變(諸如自從快照以來的改變)在次級控制器104b上。在步驟210,移植向導把處理系統(tǒng)中的控制切換到次級控制 器(現(xiàn)在變?yōu)橹骺刂破?。這例如可以包括移植向導使控制器104b變 為主控制器。這還可以包括移植向導致使控制器104a變?yōu)榇渭壙刂破鳎?諸如通過把控制器104a置于備用或后備模式。在步驟212,向用戶給出用于繼續(xù)移植的選項。在這一點上, 控制器104b是主控制器并且使用目標軟件版本來操作。用戶可以觀察 控制器104b的操作并且確定目標軟件版本是否正在適當?shù)夭僮?。例如?用戶可以運行測試或者執(zhí)行其它動作以便確定目標軟件版本是否正在 適當?shù)夭僮骰蛘呤欠癯霈F(xiàn)任何錯誤。在特定的實施例中,先前軟件版本 (先前由控制器104b使用并且仍然由控制器104a使用)和目標軟件版 本支持版本的互操作性。這允許使用不同軟件版本的不同控制器依照性 能良好的、完整功能的以及或許長期的方式來相互協(xié)作。如果用戶想要繼續(xù)移植,那么在步驟214移植向導在新的次 級控制器上安裝軟件并且在步驟220使控制器同步。這例如可以包括移 植向導向控制器104a提供目標軟件版本,所述控制器104a現(xiàn)在是處理 單元102a-102b的次級控制器。這還可以包括移植向導禁止控制器 104a-104b之間的數(shù)據(jù)的同步,升級控制器104a中的軟件,和激活在控 制器104a-104b之間的數(shù)據(jù)的同步。這里,兩個控制器104a-104b都使 用目標軟件版本來進行操作。如果在步驟212用戶不想繼續(xù)移植,那么在步驟216移植向 導把處理系統(tǒng)中的控制切換到次級控制器(現(xiàn)在變?yōu)橹骺刂破?。這例 如可以包括移植向導使控制器104a成為主控制器并且使控制器104b成 為次級控制器。在步驟218移植向導還在次級控制器上恢復先前軟件并 且在步驟220使控制器同步。這例如可以包括移植向導在控制器104b 上恢復先前軟件版本,所述控制器104b現(xiàn)在是處理單元102a-102b的次 級控制器。這還可以包括移植向導禁止控制器104b-104b之間的數(shù)據(jù)的 同步,在控制器104b上恢復軟件,和激活控制器104b-104b之間的數(shù)據(jù) 的同步。這里,兩個控制器104a-104b都使用先前軟件版本來進行操作。這樣,用戶能夠查看新的軟件版本在過程控制系統(tǒng)中如何行 為的。 一旦新的軟件版本被加載到控制器上并且起作用,就向用戶給出在另一個控制器上安裝所述新的軟件版本或者返回(故障回退)到先前
軟件版本的選項。所有這些可以發(fā)生在處理單元102a-102b正由控制器 104a-104b之一管理并控制時。結果是,軟件移植可以在用戶不用看著 或控制處理單元102a-102b的情況下發(fā)生。圖3到6C圖示了用于在依照本公開內容的一個實施例的過 程控制系統(tǒng)中支持到新的軟件版本的移植的示例用戶界面。為了便于解 釋,在圖3到6C中所示出的用戶界面被描述為由在操作者站108a上所 執(zhí)行的移植向導用來在圖1的過程控制系統(tǒng)100中控制軟件移植。圖3 到6C中所示出的用戶界面可以由任何適當?shù)难b置使用以及被用在任何 適當?shù)南到y(tǒng)中以支持任何適當?shù)能浖浦?。如圖3所示,移植向導可以向用戶呈現(xiàn)版本選擇界面300。 版本選擇界面300允許用戶選擇要被加載到一個或多個裝置(諸如控制 器104a-104b)上的目標軟件版本。在此例子中,向用戶給出兩個選項 302 -304。在第一選項302中,用戶可以選擇把最新的主要軟件版本加 載到裝置上。在第二選項304中,用戶可以從下拉菜單中選擇服務包, 其中所述服務包表示先前主要軟件版本的升級?!┯脩暨x擇了目標版本,移植向導就標識與控制器 104a-104b相關聯(lián)的所有模塊。相關聯(lián)的模塊可以包括被連接到控制器 104a-104b的網(wǎng)關和I/O模塊(諸如模塊105 )。然后獲得用于每個所標 識的模塊的信息以便確定該模塊是否具有要被移植的軟件,諸如通過確 定每個模塊是否使用比用戶所選擇的目標版本更舊的任何軟件版本。在 顯示界面300或單獨的界面(諸如用于聲明相關聯(lián)的模塊正被標識的窗 口 )時,移植向導可以執(zhí)行此發(fā)現(xiàn)過程標識。因為發(fā)現(xiàn)過程可能花費相 對較長的時間,所以還可以向用戶顯示狀態(tài)指示器,諸如用于標識發(fā)現(xiàn) 過程已經(jīng)完成多少或者發(fā)現(xiàn)過程還剩多少的條。
—旦相關聯(lián)的模塊被標識,移植向導可以如圖4所示向用戶 呈現(xiàn)移植選擇界面400。移植選擇界面400允許用戶選擇要執(zhí)行的移植 類型。在此例子中,向用戶給出五個選項402-410。前兩個選項402-404 可以由用戶選擇以便分別發(fā)起用于控制器或相關聯(lián)的1/0模塊的"過程 中(on-process),,移植。選擇這些選項402 - 404可以發(fā)起上述移植和 故障回退功能。選擇其它選項406 - 410可以在沒有上述故障回退功能的情況 下發(fā)起軟件的遷移。例如,選項406-410可以允許軟件被加栽到冗余或 非冗余的裝置上,但是用戶可以在安裝期間不用看著和控制處理單元 102a-102b。也可以不向用戶給出用于故障回退到先前軟件版本的選項。 這些類型的軟件移植被認為是"離過程(offprocess)"移植。如果用戶選擇選項402 (為控制器執(zhí)行"過程中"軟件移植), 那么移植向導可以如圖5A所示向用戶呈現(xiàn)驗證界面500。驗證界面500 允許用戶驗證目標軟件版本將被安裝在適合的裝置上(在這種情況下, 為冗余的控制器)。在此例子中,驗證界面500標識由用戶先前選擇的 目標版本502。驗證界面500還標識關于冗余控制器的各種信息。例如,驗 證界面500標識主控制器的名稱504,在主控制器上所安裝的當前軟件 版本506和主控制器的當前應用程序固件版本修訂版(標示為"(A)") 和當前引導固件版本修訂版(標示為"(B) ") 508。驗證界面500還標 識次級控制器的名稱510、在次級控制器上所安裝的當前軟件版本512 和次級控制器的當前應用程序固件版本修訂版和引導固件版本修訂版 514。另外,對于所標識的每個固件版本修訂版來說,驗證界面500可 以表明該固件是否不同于目標版本502 。在驗證界面500中所呈現(xiàn)的信息允許用戶驗證所標識的控制 器的軟件的移植。用戶具有用于繼續(xù)移植或返回以對所計劃的移植做出 修改的選項。在特定的實施例中,驗證界面500可以用來為諸如C300 控制器和SERIES C FIM之類的控制器驗證移植。如果用戶選擇了選項404 (為1/0模塊執(zhí)行"過程中,,軟件移 植),那么移植向導可以如圖5B所示向用戶呈現(xiàn)驗證界面550。在此例 子中,驗證界面550標識由用戶所選擇的目標版本552。驗證界面550還標識被連接到控制器的1/0模塊105以及為那些1/0模塊105所計劃的軟件移植。在此例子中,驗證界面550包括 兩個不同的部分554 - 556,其中每個部分標識被連接到控制器的不同的 鏈路的I/0模塊105。在一些實施例中,控制器(諸如控制器104b)可 以具有一個或多個鏈路,所述控制器在所述鏈路上與1/0模塊105通信, 并且一個或多個1/0模塊105可以被耦合到所迷控制器的每個鏈路。如圖5B所示,每個部分554 - 556包含關于被耦合到控制器 的不同鏈路的1/0模塊105的各種信息。在此特定的例子中,使用"主塊" 名稱來標識冗余的1/0模塊105對,并且各個I/0模塊105本身被標示 為"伙伴A"和"伙伴B"。對于每個I/O模塊105來說,驗證界面550標 識該I/0模塊105的當前應用程序固件版本修訂版和當前引導固件版本 修訂版,以及當前軟件版本。對于所標識的每個固件版本修訂版來說, 驗證界面550可以表明該固件是否不同于目標版本552。另外,驗證界 面550包括復選框558。如下面所更詳細地描述的,復選框558可以用 來激活或禁止各個IA3模塊105的故障回退功能。呈現(xiàn)在驗證界面550中的信息允許用戶為所標識的1/0模塊 105驗證軟件的移植。用戶具有繼續(xù)移植或返回以對移植做出改變的選 項。在特定的實施例中,驗證界面550可以用來驗證諸如SERIES C IOM 之類的I/0模塊的移植?!┯脩羰褂抿炞C界面500或驗證界面550驗證了軟件移植, 就可以向所述用戶呈現(xiàn)如圖6A所示的移植狀態(tài)界面600。移植狀態(tài)界 面600包括列表602a,用于標識在軟件移植期間所執(zhí)行的不同的操作以 及每個操作的狀態(tài)。在此例子中,示出了用于冗余控制器104a-104b的 軟件移植的狀態(tài)。移植過程的笫一步驟包括把目標軟件版本加載到次級 控制器(諸如控制器104b)上。移植過程的第二步驟包括使控制器 104a-104b同步并且把過程控制轉移到控制器104b (其于是成為主控制 器)。作為控制器104a-104b的同步的一部分,由控制器104a所使 用的數(shù)據(jù)的快照可以被加栽到控制器104b中。在特定的實施例中,快 照被用于C300控制器。可以向用戶顯示在加栽快照期間的任何錯誤, 從而允許所述用戶決定是否繼續(xù)移植。在特定的實施例中,間接同步可 以被用于C300控制器。另外,在特定的實施例中,轉移控制可以包括 把主控制器104a置于備用模式(對于C300控制器而言)或者后備才莫式(對于SERIES C FIM而言)?!┩瓿蛇@些移植步驟,移植狀態(tài)界面600向用戶提供不同 的選項。在此例子中,采用按鈕604的形式提供了所述選項。首先,用 戶可以"Continue(繼續(xù))"移植,其可能會把目標軟件版本安裝在另 一個控 制器104a上。其次,用戶可以"GoBack (返回),,,其可能會發(fā)起在控 制器104b上故障回退到先前的軟件版本。如果用戶在移植狀態(tài)界面600中選擇"繼續(xù)"按鈕604,那么在 所述移植狀態(tài)界面600中的列表602a擴展為如圖6B所示的列表602b。 在此例子中,移植過程在執(zhí)行兩個附加步驟之后完成。 一個附加步驟包 括把目標軟件版本加載到新的次級控制器(諸如控制器104a)上。另一 附加步驟包括使控制器104a-104b同步。這里,兩個控制器104a-104b 已經(jīng)利用目標軟件版本進行了升級并且已經(jīng)被同步。如果用戶在移植狀態(tài)界面600中選擇"返回"按鈕604,那么在 所述移植狀態(tài)界面600中的列表602a擴展為如圖6C所示的列表602c。 在此例子中,移植向導執(zhí)行三個附加步驟來在控制器104a-104b上故障 回退到先前的軟件版本。在此示例實施例中,第一附加步驟包括把過程 控制切換到新的次級控制器(其先前是主控制器,諸如控制器104a)。 第二附加步驟包括把新的次級控制器104b恢復為先前的軟件版本。第 三附加步驟包括使控制器104a-104b同步。在這種情況下,用戶能夠"故 障回退,,到先前的軟件版本,并且兩個控制器104a-104b使用先前的軟件 版本來操作。當移植用于I/O模塊105的軟件時可以使用類似的移植狀態(tài) 界面600。在這種情況下,圖6A中的移植狀態(tài)界面600可以在每個次 級I/O模塊105的軟件移植期間標識所述I/O模塊105。當每個次級I/O 模塊105被升級時,可以向用戶給出"繼續(xù)"移植(升級下一個次級1/0 模塊105)或"返回"到先前的軟件版本的選項。如果用戶針對任何1/0 模塊105選擇了"返回"按鈕604,那么該1/0模塊105可以被恢復到其 先前的軟件版本,并且用戶可以以被詢問是否繼續(xù)其余的1/0模塊105 或者取消剩余的移植。 一旦已經(jīng)用目標軟件版本升級了所有的次級1/0 模塊105并且將其切換為主I/0模塊105,就可以向用戶給出繼續(xù)移植 的選項。如果被選擇,每個新的次級I/0模塊105 (先前尚未升級的主 1/0模塊)則被升級并且同步,如圖6B所示。如果移植被取消或者用戶
15表明不希望繼續(xù)移植,則如圖6C所示針對每個升級的1/0模塊105,發(fā) 生故障回退。在整個移植過程可以使用狀態(tài)指示器來標識被升級或待升 級的1/0模塊105的數(shù)目。在一些實施例中,在每個I/0模塊升級之后 可以不詢問用戶是否想要故障回退到先前的軟件版本(根據(jù)用戶是否在 驗證界面550中選擇復選框558 )。盡管圖3到6C圖示了用于支持在過程控制系統(tǒng)中移植到新 的軟件版本的用戶界面的例子,也可以對圖3到6C進行各種改變。例 如,在系統(tǒng)100中或在任何其它適當?shù)难b置或系統(tǒng)中可以使用支持附加 功能的用戶界面。在圖3到6C中的用戶界面的內容和布置也只是用于 說明和解釋??梢允褂锰峁┫嗤幕蝾愃频墓δ艿钠渌脩艚缑妫幢?那些界面具有不同的內容或布置。圖7圖示了依照本公開內容的一個實施例的用于在過程控制 系統(tǒng)中執(zhí)行到新的軟件版本的移植的示例狀態(tài)機700。為了便于解釋, 狀態(tài)機700被描述為用于在圖1的過程控制系統(tǒng)100中控制控制器 104a-104b中的軟件移植。狀態(tài)機700可以由任何適當?shù)难b置使用并且 被用在任何適當?shù)南到y(tǒng)中以用來支持任何適當?shù)能浖浦?。如圖7所示,狀態(tài)機700包括七個狀態(tài)702 -714,并且邏輯 或(or)條件被用于狀態(tài)702 -714之間的轉變。在此例子中,狀態(tài)702 通常表明未發(fā)生過程中移植。狀態(tài)704通常表明過程中移植已經(jīng)開始并 且狀態(tài)機700正等待在次級控制器恢復主控制器的數(shù)據(jù)的快照(如果沒 有使用快照那么可以跳過此狀態(tài))。狀態(tài)706通常表明狀態(tài)機700正等 待發(fā)出激活主控制器和次級控制器之間的同步和切換的命令。狀態(tài)708 通常表明狀態(tài)機700正等待發(fā)生控制器之間的同步。狀態(tài)710通常表明 狀態(tài)機700正等待完成在次級控制器和任何I/O模塊105之間的I/O連 接的形成。狀態(tài)712通常表明動態(tài)狀態(tài)數(shù)據(jù)(dynamic state data, DSD ) 正從主控制器104a被傳遞到次級控制器104b。狀態(tài)714通常表明正請 求從主控制器104a到次級控制器104b的切換。參數(shù)INDSYNCCMD可以被特別用來控制狀態(tài)702 - 714之間 的轉變。在此例子中,INDSYNCCMD參數(shù)可以具有三個值之一。 "ENABLE,,值用來開始過程中移植。"SYNCSWITCH"值被用來發(fā)動 (unleash)移植,意味著可以進行從主控制器到次級控制器104b的切 換。"ABORT"值被用來終止所述移植。
16
在圖7中所示出的狀態(tài)機700還使用其它參數(shù)。例如,參數(shù) SecSnapTmo和IndSyncTmo表示超時條件,用于標識是否以及何時移植 過程中的步驟花費了過長的時間。參數(shù)IndSyncFail表示在主控制器和次 級控制器之間的同步的失敗。盡管圖7圖示了用于在過程控制系統(tǒng)中執(zhí)行到新的軟件版本 的移植的狀態(tài)機700的一個例子,也可以對圖7進行各種改變。例如, 其它狀態(tài)機可以具有更多或更少的狀態(tài),取決于諸如在其中進行移植的 裝置的類型之類的因素。代替或除狀態(tài)機700之外還可以使用其它控制 機制。在一些實施例中,由計算機程序來實現(xiàn)或支持上述各功能, 所述計算機程序是從計算機可讀程序代碼形成并且包含在計算機可讀 媒體中。短語"計算機可讀程序代碼"包括任何類型的計算機代碼,包括 源代碼、對象代碼和可執(zhí)行代碼。短語"計算機可讀媒體"包括能夠由計 算機訪問的任何類型的媒體,諸如只讀存儲器(ROM)、隨機存取存儲 器(RAM)、硬盤驅動器、壓縮光盤(compactdisc, CD)、數(shù)字化視 頻光盤(DVD)或任何其它類型的存儲器。闡明在該整個專利文檔所使用的某些詞和短語的定義可能是 有利的。術語"耦合"及其衍生物指的是在兩個或多個單元之間的任何直 接或間接通信,而不管那些單元是否彼此物理接觸。術語"應用程序"和 "程序"指的是一個或多個計算機程序、軟件組件、指令集、過程、函數(shù)、 對象、類、實例、相關數(shù)據(jù)或其適于用適當?shù)挠嬎銠C代碼實現(xiàn)的部分(包 括源代碼、對象代碼或可執(zhí)行代碼)。術語"包括,,和"包含,,以及其衍生 物意指包括但不限制。術語"或"是包括性的,意思是和/或 短語"與相 關聯(lián)"和"與其相關聯(lián)"以及其衍生物可以意指包括包括在內、與之互連、 包含、包含在內、連接到或與之連接、輛合到或與之耦合、可與之通信、 與之合作、交織、并列、鄰近、綁定到或與之捆綁、具有、具有其屬性 等。術語"控制器"意思是控制至少一個操作的任何裝置、系統(tǒng)或其一部 分 控制器可以用硬件、固件、軟件或其中至少兩種的某組合來實現(xiàn)。 與任何特定的控制器相關聯(lián)的功能可以是集中式或分布式的,無論是本 地的還是遠程的。雖然本公開內容已經(jīng)描述了某些實施例以及通常相關聯(lián)的方顯而易見的。據(jù)此,示例實施例的以上描述并沒有定義或限制本公開內 容。在不脫離由以下權利要求所定義的本公開內容的精神和范圍的情況 下,還可以進行其它改變、替換和變化。
權利要求
1. 一種方法,包括接收(202)安裝軟件版本的請求,所述軟件版本要被安裝在以下至少一個裝置上第一裝置和第二裝置;在所述第二裝置上發(fā)起所述軟件版本的安裝(206);確定(212)用戶是否想要繼續(xù)所述軟件版本的所述安裝;如果所述用戶想要繼續(xù)所述安裝則在所述第一裝置上發(fā)起所述軟件版本的安裝(214);以及如果所述用戶不想要繼續(xù)所述安裝則在所述第二裝置上恢復(218)第二軟件版本。
2. 根據(jù)權利要求1所述的方法,其中所述第一和第二裝置包括用來控制過程的控制器(104a-104b);并且貫穿所述軟件版本的安裝和所述第二軟件版本的恢復,所述過程由 至少一個控制器(104a-104b)來控制。
3. 根椐權利要求1所述的方法,其中 所述第一和第二裝置包括冗余的裝置;并且在所述第二裝置上安裝所述軟件版本期間所述第 一裝置充當主裝 置并且所述第二裝置充當后備裝置。
4. 如權利要求3所述的方法,還包括在所述第二裝置上安裝所述軟件版本之后致使(210)所述第二裝 置充當所述主裝置和所述第一裝置充當后備裝置;以及在所述第二裝置上恢復所述第二軟件版本之后期間致使(216)所 述第二裝置充當所述后備裝置和所述第 一裝置充當所述主裝置。
5. 如權利要求4所述的方法,還包括在以下至少一個之后使所述第一和第二裝置同步(208, 220):在 所述第二裝置上安裝所述軟件版本,在所述第一裝置上安裝所述軟件版 本以及在所述笫二裝置上恢復所述第二軟件版本。
6. —種設備,包括至少一個存儲器(109, 113),用來存儲軟件版本;和 至少一個處理器(107, Ul),用來接收安裝所述軟件版本的請求,所述軟件版本將被安裝在以下至少一個裝置上第一裝置和第二裝置;在所述第二裝置上發(fā)起所述軟件版本的安裝(206);確定用戶是否想要繼續(xù)所述軟件版本的所述安裝;如果所述用戶想要繼續(xù)所述安裝則在所述第一裝置上發(fā)起所述軟 件版本的安裝;并且如果所述用戶不想要繼續(xù)所述安裝那么在所述第二裝置上恢復第 二軟件版本。
7. 如權利要求6所述的設備,其中所述第一和第二裝置包括用來控制過程的控制器(104a-104b);和 貫穿所述軟件版本的所述安裝和所述第二軟件版本的所述恢復,所 述過程由至少一個控制器(104a-104b)來控制。
8. 如權利要求6所述的設備,其中 所述第一和第二裝置包括冗余的裝置;并且在所述第二裝置上安裝所述軟件版本期間所述第 一裝置充當主裝 置并且所述第二裝置充當后備裝置。
9. 如權利要求8所述的設備,其中所述至少一個處理器(107, 111) 進一步用來在所述第二裝置上安裝所述軟件版本之后使導致所述笫二裝置充 當所述主裝置和所述第一裝置充當所述后備裝置;并且在所述第二裝置上恢復所述第二軟件版本期間致使所述笫二裝置 充當所述后備裝置和所述第 一裝置充當主裝置。
10. —種計算機程序,包含在計算機可讀媒體上并且用來由處理器 執(zhí)行,所述計算機程序包括用于進行以下操作的計算機可讀程序代碼接收安裝軟件版本的請求,所述軟件版本要被安裝在以下至少一個 裝置上第一裝置和第二裝置;在所迷第二裝置上發(fā)起所述軟件版本的安裝; 確定用戶是否想要繼續(xù)所述軟件版本的所述安裝; 如果所述用戶想要繼續(xù)所述安裝則在所述第一裝置上發(fā)起所述軟 件版本的安裝;并且如果所述用戶不想要繼續(xù)所述安裝則在所述笫二裝置上恢復笫二軟 件版本。
全文摘要
一種方法包括接收(202)安裝軟件版本的請求,其中所述軟件版本要被安裝在第一裝置和/或第二裝置上。所述方法還包括發(fā)起在所述第二裝置上安裝(206)軟件版本并且確定(212)用戶是否想要繼續(xù)安裝所述軟件版本。所述方法還包括如果所述用戶想要繼續(xù)那么發(fā)起在所述第一裝置上安裝(214)所述軟件版本。另外,所述方法包括如果用戶不想繼續(xù)那么在第二裝置上恢復(218)第二軟件版本。第一和第二裝置可以表示冗余的裝置,諸如在過程控制系統(tǒng)中的冗余的控制器組(104a-104b)或冗余的I/O模塊組(105),用來使在過程控制系統(tǒng)中的一個或多個控制器(104a-104b)和一個或多個處理單元(102a-102b)之間的通信便于進行。
文檔編號G06F9/44GK101479702SQ200780023468
公開日2009年7月8日 申請日期2007年5月3日 優(yōu)先權日2006年5月5日
發(fā)明者A·沙馬, J·M·多伊爾, N·R·斯萬森, P·F·麥洛克林, S·S·貝爾 申請人:霍尼韋爾國際公司