專利名稱:用于過程控制系統(tǒng)的面向服務(wù)的架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的來說涉及過程控制系統(tǒng),更具體而言,涉及一種用于過程控制系統(tǒng)的面向服務(wù)的架構(gòu)。
背景技術(shù):
過程控制系統(tǒng)(比如那些化學(xué),石油或其它過程中用到的)一般包括一個(gè)或多個(gè)過
程控制器和輸入/輸出(I/o)設(shè)備,它們通過模擬、數(shù)字或模/數(shù)相結(jié)合的總線與至少一個(gè)主機(jī)或操作員工作站以及與一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備通信地連接。現(xiàn)場(chǎng)設(shè)備可以是閥門、閥門定位器、開關(guān)以及變送器(如溫度、壓力和流速傳感器),用在過程中執(zhí)行諸如打開或關(guān)閉閥門以及測(cè)量過程參數(shù)等功能。過程控制器接收的信號(hào)用來表示現(xiàn)場(chǎng)設(shè)備生成的過程測(cè)量結(jié)果和/或關(guān)于現(xiàn)場(chǎng)設(shè)備的其它信息,并使用該信息執(zhí)行一控制例行程序,然后產(chǎn)生控制信號(hào),并通過總線或其它通信線路將該控制信號(hào)發(fā)送給現(xiàn)場(chǎng)設(shè)備以控制對(duì)過程的操作。按照這種方法,過程控制器可以利用現(xiàn)場(chǎng)設(shè)備通過總線和/或別的與現(xiàn)場(chǎng)設(shè)備相通信連接的通信鏈路來執(zhí)行并協(xié)調(diào)控制策略??梢詫碜袁F(xiàn)場(chǎng)設(shè)備和控制器的信息應(yīng)用于由操作員工作站(如基于處理器的系統(tǒng))執(zhí)行的一個(gè)或多個(gè)應(yīng)用程序(如軟件例行程序、程序等等),以使操作員能夠根據(jù)需要執(zhí)行有關(guān)過程的功能,例如查看當(dāng)前過程狀態(tài),對(duì)過程進(jìn)行評(píng)估,以及修改過程操作等等。許多過程控制系統(tǒng)也包括一個(gè)或多個(gè)應(yīng)用程序站。一般地,這些應(yīng)用程序站由個(gè)人計(jì)算機(jī)、工作站或其它類似設(shè)備來實(shí)現(xiàn),它們通過局域網(wǎng)(local area network, LAN)與控制器、操作員工作站以及過程控制系統(tǒng)內(nèi)的其它系統(tǒng)進(jìn)行通信地連接。每個(gè)應(yīng)用程序站可以執(zhí)行一個(gè)或多個(gè)軟件應(yīng)用程序。這些軟件應(yīng)用程序可以在過程控制系統(tǒng)內(nèi)執(zhí)行活動(dòng)管理功能、維護(hù)管理功能、虛擬控制功能、診斷功能、實(shí)時(shí)監(jiān)測(cè)功能、安全相關(guān)功能、配置功能等等功能。用于實(shí)現(xiàn)許多過程控制系統(tǒng)的各種應(yīng)用程序的軟件元素(如程序)一般都非常依賴使用面向?qū)ο蟮木幊碳夹g(shù)和架構(gòu)。這種面向?qū)ο蟮木幊碳夹g(shù)和架構(gòu)基于分層分布的軟件對(duì)象,其中更高一層(或者更復(fù)雜的)軟件對(duì)象由一個(gè)或多個(gè)較低一層的對(duì)象構(gòu)造而成并繼承了其屬性。在這些面向?qū)ο蟮某绦蛟O(shè)計(jì)構(gòu)造內(nèi)使用大量的繼承使得代碼(即軟件指令,程序等等)高度共享,這就趨向于大大減小用來實(shí)現(xiàn)控制系統(tǒng)所需的代碼或程序總量。雖然現(xiàn)有的面向?qū)ο蟮某绦蛟O(shè)計(jì)構(gòu)造能夠有利地減小用來實(shí)現(xiàn)相對(duì)復(fù)雜的過程控制系統(tǒng)所需的代碼或軟件總量,但是與這些構(gòu)造相關(guān)的高度繼承或代碼的高度共享導(dǎo)致了組成控制系統(tǒng)的各種例行程序或組件之間的高度依賴性(例如,數(shù)據(jù)依賴性)。結(jié)果,對(duì)這些各種軟件例行程序的獨(dú)立開發(fā)和/或修訂變得非常困難或者說不可能。例如,在一些使用上述面向?qū)ο蟮臉?gòu)造的過程控制系統(tǒng)中,過程控制系統(tǒng)應(yīng)用程序(如過程監(jiān)測(cè)應(yīng)用程序)、數(shù)據(jù)庫服務(wù)以及運(yùn)行期服務(wù)被緊密綁定(即彼此高度依賴)。尤其是,客戶端應(yīng)用程序可以建立在一套通用的代表數(shù)據(jù)庫中數(shù)據(jù)的數(shù)據(jù)組件。這樣,通用數(shù)據(jù)組件中的任何改變都要求重建客戶端應(yīng)用程序。結(jié)果,這些公知的面向?qū)ο蟮倪^程控制軟件架構(gòu)固有的數(shù)據(jù)依賴性使得對(duì)數(shù)據(jù)庫組件和運(yùn)行期軟件組件的獨(dú)立修改或開發(fā)變得非常困難或不可能,特別是當(dāng)過程控制系統(tǒng)的不同軟件組件在不同的地方(即開發(fā)地點(diǎn)和開發(fā)中心)開發(fā)的情況。為了解決這些公知的面向?qū)ο蟮募軜?gòu)固有的數(shù)據(jù)依賴性問題,過程控制軟件開發(fā)者必須嚴(yán)密協(xié)調(diào)數(shù)據(jù)庫、運(yùn)行期以及系統(tǒng)軟件組件的開發(fā),以使得這些組件能以統(tǒng)一的方式創(chuàng)建和發(fā)布。
發(fā)明內(nèi)容
在一個(gè)示例中,一種用于在過程控制系統(tǒng)中的客戶端過程和服務(wù)器過程之間傳遞過程控制信息的方法和裝置創(chuàng)建包括多個(gè)過程控制服務(wù)的服務(wù)器過程,每個(gè)過程控制服務(wù)都有對(duì)應(yīng)的服務(wù)界面。該示例性方法和裝置還建立一客戶端過程,該客戶端過程具有用于多個(gè)服務(wù)中的每個(gè)服務(wù)的代理,并與所述服務(wù)之間建立通信連接。另外,該示例性方法和裝
置向該客戶端過程提供與所述服務(wù)界面相關(guān)聯(lián)的端點(diǎn)信息(如端口信息、URL、URI,等等),以使得過程控制信息能夠在該客戶端過程和服務(wù)器過程之間傳遞。在另一個(gè)例子中,一種將信息綁定至運(yùn)行期(runtime)應(yīng)用程序的方法將與運(yùn)行期應(yīng)用程序相關(guān)聯(lián)的數(shù)據(jù)上下文提供給一資源管理器,并通過該資源管理器將來自該數(shù)據(jù)上下文的至少一個(gè)屬性與變量、腳本或數(shù)據(jù)源引用中的至少一個(gè)相關(guān)聯(lián)。另外,該方法將所述至少一個(gè)屬性綁定至變量、腳本或數(shù)據(jù)源引用中的所述至少一個(gè)。
圖I為本文描述的使用面向服務(wù)的架構(gòu)的示例性過程控制系統(tǒng)的框圖。圖2為描述可以用于圖I的示例性過程控制系統(tǒng)的面向服務(wù)的架構(gòu)的框圖。圖3是描述由圖2的示例性架構(gòu)提供的發(fā)現(xiàn)服務(wù)器和運(yùn)行期服務(wù)器之間關(guān)系的圖。圖4為描述一種方法的框圖,在該方法中,圖3的發(fā)現(xiàn)服務(wù)及其主控服務(wù)器與圖3的數(shù)據(jù)訪問服務(wù)及其主控服務(wù)器協(xié)同工作。圖5為一示例性過程,圖3中發(fā)現(xiàn)服務(wù)通過該過程可以定位一服務(wù)。圖6為描述一會(huì)話服務(wù)的示例性實(shí)現(xiàn)的圖。圖7為圖3中示例性的運(yùn)行期服務(wù)器提供的更為詳細(xì)的運(yùn)行期服務(wù)的圖示。圖8為可以由圖6中的數(shù)據(jù)庫服務(wù)器提供的更為詳細(xì)的示例性數(shù)據(jù)服務(wù)的圖示。圖9為一示例性方法的示意圖,在該方法中,版本控制服務(wù)器、版本服務(wù)器以及圖6中的數(shù)據(jù)庫服務(wù)器可以協(xié)同工作。圖10為可以提供多個(gè)歷史服務(wù)的更為詳細(xì)的示例性歷史服務(wù)器的圖示。圖11為描述一示例性歷史掃描服務(wù)器以及方法的圖,在該方法中,該歷史掃描服務(wù)器可以和圖7中的示例性運(yùn)行期服務(wù)以及圖10的示例性歷史服務(wù)協(xié)同工作。圖12描述一示例性報(bào)警和事件服務(wù)器,該服務(wù)器可用于實(shí)現(xiàn)本文描述的示例性面向服務(wù)的架構(gòu)。圖13描述一示例性O(shè)PC數(shù)據(jù)服務(wù)器,該服務(wù)器可用于實(shí)現(xiàn)本文描述的示例性面向服務(wù)的架構(gòu)。圖14描述一種方法的示例,在該方法中,本文描述的示例性面向服務(wù)的架構(gòu)可以用于將與客戶端應(yīng)用程序相關(guān)聯(lián)的運(yùn)行期過程鏈接或綁定至數(shù)據(jù)服務(wù)或數(shù)據(jù)源。圖15描述一種方法的更為詳細(xì)的示例,在該方法中,可以將用戶界面顯示圖形鏈接或綁定至數(shù)據(jù)服務(wù)或數(shù)據(jù)源。圖16描述一不例性的處理器系統(tǒng),該系統(tǒng)可以用于實(shí)現(xiàn)本文描述的裝置和方法。
具體實(shí)施例方式總的來說,本文描述的示例性裝置、方法和制品可用在過程控制系統(tǒng)中,以提供組成過程控制系統(tǒng)的各種軟件元 素(如程序、應(yīng)用程序、服務(wù)等等)之間的高度獨(dú)立性。具體來說,本文描述的示例利用了軟件和硬件架構(gòu),該架構(gòu)提供了多個(gè)松散耦合的(即數(shù)據(jù)基本上獨(dú)立的)核心服務(wù),多個(gè)獨(dú)立的過程控制相關(guān)應(yīng)用程序根據(jù)該核心服務(wù)進(jìn)行分層。每個(gè)核心服務(wù)提供可以被獨(dú)立測(cè)試或修訂的明確的外部界面(比如模式、輸入服務(wù)和/或從服務(wù)輸出的參數(shù)、數(shù)據(jù)格式等等)。類似地,由于應(yīng)用程序的數(shù)據(jù)基本上獨(dú)立的特點(diǎn),所以能夠以高度獨(dú)立的方法(比如,使不同開發(fā)團(tuán)隊(duì)和不同地方間的協(xié)作最小或很小)創(chuàng)建和開發(fā)過程控制相關(guān)的應(yīng)用程序。換句話說,一個(gè)地方的軟件開發(fā)人員在開發(fā)用于整個(gè)過程控制系統(tǒng)的特定應(yīng)用程序時(shí),不必緊密地參與或被告知由另一個(gè)軟件開發(fā)團(tuán)隊(duì)在另一個(gè)物理位置對(duì)另一個(gè)應(yīng)用程序進(jìn)行的有關(guān)開發(fā)。在該方法中,本文描述的面向服務(wù)的架構(gòu)的例子最小化或消除了不同開發(fā)團(tuán)隊(duì)花費(fèi)大量時(shí)間(比如通過會(huì)議或其它形式的交流)來協(xié)調(diào)各自的開發(fā)成果的需要,因此很大程度上減少了各自的開發(fā)成果所需要的開發(fā)時(shí)間和成本。與許多公知的注重源碼或軟件重用的面向?qū)ο蟮膶?shí)現(xiàn)或架構(gòu)相反,本發(fā)明的示例性面向服務(wù)的過程控制架構(gòu)強(qiáng)調(diào)數(shù)據(jù)服務(wù)和/或客戶端應(yīng)用程序之間的相對(duì)松散的耦合(比如,若有的話,相對(duì)小的數(shù)據(jù)依賴性)。另外,應(yīng)用公知的面向?qū)ο蟮膶?shí)現(xiàn),過程控制軟件應(yīng)用程序或程序本質(zhì)上由從共享類庫中得到的軟件元素組成或編成。相反,本文描述的面向服務(wù)的架構(gòu)的例子使用由相對(duì)獨(dú)立的服務(wù)組成的應(yīng)用程序。具體地說,與本文描述的示例性面向服務(wù)的架構(gòu)相關(guān)聯(lián)的相對(duì)獨(dú)立的服務(wù)不再共享類信息,而是共享模式(對(duì)結(jié)構(gòu)來說)以及契約(對(duì)動(dòng)作來說)。本文描述的每個(gè)相對(duì)獨(dú)立的服務(wù)(如數(shù)據(jù)服務(wù))公開一契約匕如使用XML等可擴(kuò)展標(biāo)記語言),該契約描述了該服務(wù)所能發(fā)送和接收的消息的結(jié)構(gòu)。更進(jìn)一步,公知的面向?qū)ο蟮倪^程控制軟件實(shí)現(xiàn)認(rèn)為軟件元素或組件(如服務(wù))和開發(fā)人員(如在不同開發(fā)地點(diǎn)的軟件開發(fā)人員)之間的通信是便宜(比如站在有效處理的立場(chǎng)上)和不明顯的。相反,本文描述的示例性面向服務(wù)的架構(gòu)認(rèn)為這樣的通信是昂貴和明顯的。因此,本文描述的示例性面向服務(wù)的架構(gòu)被配置為用來減少抽象行為的次數(shù)和復(fù)雜度,其中這些抽象行為必須是共享的交叉服務(wù)(即與組成過程控制軟件的核心服務(wù)的各種軟件組件相關(guān)聯(lián)的交叉服務(wù)邊界)。公知的面向?qū)ο蟮膶?shí)現(xiàn)以一種單一的方式(即一組相關(guān)的應(yīng)用程序的公共發(fā)布)開展應(yīng)用程序的使用,與之進(jìn)一步相反的是,本文描述的示例性面向服務(wù)的架構(gòu)以一種進(jìn)行的、更為離散的方式開展應(yīng)用程序的使用。例如,使用本發(fā)明提供的面向服務(wù)架構(gòu)的例子,對(duì)客戶端應(yīng)用程序的修訂可以獨(dú)立于被其使用的底層數(shù)據(jù)服務(wù),這樣使整個(gè)系統(tǒng)和應(yīng)用程序總的狀態(tài)隨著時(shí)間的推移可以變?yōu)榛旌?。例如,在某些情況下,對(duì)服務(wù)的適當(dāng)使用可以在利用該服務(wù)的應(yīng)用程序被使用之前進(jìn)行。另外,應(yīng)用程序和服務(wù)的充分的獨(dú)立性使得服務(wù)和/或應(yīng)用程序能夠隨著時(shí)間的推移以不同的速度獨(dú)立發(fā)展(即以獨(dú)立的方式開發(fā)和修改)。然而,為了保證在本文描述的示例性面向服務(wù)的架構(gòu)或框架中使用的相對(duì)高度分離的服務(wù)和/或應(yīng)用程序的相互操作中有著更大程度的完整性,每個(gè)服務(wù)可以被配置為對(duì)每個(gè)從別的服務(wù)或應(yīng)用程序接收的消息執(zhí)行一確認(rèn)過程。如接下來進(jìn)行更為詳細(xì)的描述的,所述示例性面向服務(wù)的架構(gòu)可以方便地用于將與運(yùn)行期應(yīng)用程序相關(guān)聯(lián)的參數(shù)關(guān)聯(lián)于、綁定于,或者更為一般地說,通信地或可操作地連接于變量、可執(zhí)行腳本和/或上面提到的數(shù)據(jù)服務(wù)。例如,用于描述與一個(gè)過程控制系統(tǒng)用戶界面應(yīng)用程序相關(guān)聯(lián)的圖形顯示元件的相關(guān)參數(shù)可以與一運(yùn)行期數(shù)據(jù)服務(wù)通信地和可操作地連接。在這個(gè)例子中,連接于所述參數(shù)的數(shù)據(jù)的改變能夠從數(shù)據(jù)服務(wù)自動(dòng)地傳送至顯示應(yīng)用程序,比如,這樣能夠接著更新圖形顯示來反映數(shù)據(jù)的改變。在一個(gè)實(shí)現(xiàn)中,由微軟公司(Microsoft Corporation)提供的公知的Avalon和Indigo軟件平臺(tái)可以用來將與
顯示元件相關(guān)的屬性綁定至變量、腳本和/或運(yùn)行期數(shù)據(jù)服務(wù)。然而,也能夠選用替代或者附加Avalon和/或Indigo的任意別的合適的軟件平臺(tái)。下面進(jìn)行更為詳細(xì)的描述,本文描述的示例性面向服務(wù)的架構(gòu)包括數(shù)據(jù)服務(wù)層,用來提供過程控制相關(guān)數(shù)據(jù)給數(shù)據(jù)源層。如下所述,數(shù)據(jù)源層從一個(gè)應(yīng)用程序內(nèi)部為數(shù)據(jù)服務(wù)層提供相對(duì)一般的訪問。位于數(shù)據(jù)源層的資源管理器管理變量、腳本和/或引用,使其包含在與一個(gè)或多個(gè)運(yùn)行期應(yīng)用程序、顯示、圖形元素,參數(shù)等等相關(guān)聯(lián)的數(shù)據(jù)源中。比如,本文描述的資源管理器有利地使得與圖形顯示元件相關(guān)聯(lián)的參數(shù)能夠在運(yùn)行時(shí)被綁定至一個(gè)或多個(gè)變量或數(shù)據(jù)服務(wù)(例如通過服務(wù)器提供的過程控制數(shù)據(jù)源),而不是對(duì)參數(shù)和這樣的變量或數(shù)據(jù)源之間的耦合進(jìn)行靜態(tài)編碼。更具體來說,通過本文描述的示例性裝置、方法以及制品,顯示應(yīng)用程序可以向資源管理器為與它的圖形元素相關(guān)聯(lián)的各種屬性請(qǐng)求數(shù)值或者別的數(shù)據(jù)或信息。接下來,資源管理器可以在運(yùn)行時(shí)被配置為向顯示應(yīng)用程序使用的屬性提供(例如映射、關(guān)系或其它方式的關(guān)聯(lián))數(shù)據(jù)源。結(jié)果,顯示應(yīng)用程序不必被靜態(tài)編碼來定義它的圖形元素和變量或數(shù)據(jù)源之間的關(guān)系,其中該數(shù)據(jù)源被綁定至與這些圖形元素相關(guān)聯(lián)的參數(shù)值。取而代之,資源管理器能夠被配置為在運(yùn)行時(shí)更加靈活和動(dòng)態(tài)地定義這些關(guān)系。圖I是使用本文描述的示例性面向服務(wù)的架構(gòu)的示例性過程控制系統(tǒng)10的框圖。如圖I所示,過程控制系統(tǒng)10包括控制器16、操作員站18、運(yùn)行應(yīng)用程序站20和備用應(yīng)用程序站22,它們都可以通過總線或局域網(wǎng)(Local Area Network, LAN) 24進(jìn)行通信連接,該局域網(wǎng)一般稱為應(yīng)用程序控制網(wǎng)絡(luò)(Application Control Network, ACN)。操作員站18和應(yīng)用程序站20和22可以用一個(gè)或多個(gè)工作站或任何別的適合的計(jì)算機(jī)系統(tǒng)或處理單元來實(shí)現(xiàn)。例如,應(yīng)用程序站20和22能夠用與下面圖16中所示的示例性處理器系統(tǒng)1602類似的單處理器個(gè)人計(jì)算機(jī)、單或多處理器工作站等等來實(shí)現(xiàn)。另外,LAN 24可以使用任何所需的通信介質(zhì)和協(xié)議。例如,LAN 24可以基于硬件的或無線的以太網(wǎng)通信方案,這是公知技術(shù),所以在這里不再詳述。然而,本領(lǐng)域普通技術(shù)人員很容易理解,任何別的合適的通信介質(zhì)或協(xié)議都可以使用。進(jìn)一步,雖然示出了單個(gè)LAN,但更多個(gè)LAN和適用于應(yīng)用程序站20和22的通信硬件可以用于為操作員站18、應(yīng)用程序站20和22和控制器16之間提供一條冗余的通信通路。
控制器16可以與多個(gè)智能現(xiàn)場(chǎng)設(shè)備26、28和30通過數(shù)字?jǐn)?shù)據(jù)總線32和輸入/輸出(I/O)設(shè)備34相連接。智能現(xiàn)場(chǎng)設(shè)備26-30可以是Fieldbus兼容(compliant)閥、執(zhí)行器、傳感器等等,其中,智能現(xiàn)場(chǎng)設(shè)備26-30使用公知的Fieldbus協(xié)議通過數(shù)據(jù)總線32進(jìn)行通信。當(dāng)然別的類型的智能現(xiàn)場(chǎng)設(shè)備和通信協(xié)議也能作為替代。例如,智能現(xiàn)場(chǎng)設(shè)備26-30能夠由Profibus或HART兼容設(shè)備來代替,所述Profibus或HART兼容設(shè)備使用公知的Profibus或HART通信協(xié)議通過數(shù)據(jù)總線32進(jìn)行通信。另外的I/O設(shè)備(與I/O設(shè)備34類似或相同的設(shè)備)可以與控制器16相連接使得別的成套的智能現(xiàn)場(chǎng)設(shè)備(可以是Fieldbus設(shè)備、HART設(shè)備等等)能夠與控制器16進(jìn)行通信。除了智能現(xiàn)場(chǎng)設(shè)備26-30之外,一個(gè)或多個(gè)非智能現(xiàn)場(chǎng)設(shè)備36和38可以與控制器16進(jìn)行通信連接。例如,所述非智能現(xiàn)場(chǎng)設(shè)備36和38可以是傳統(tǒng)的4-20毫安(mA)或0-10伏直流(VDC)設(shè)備,它們可以通過各自的硬件鏈接40和42與控制器16通信。例如,控制器16可以是由愛默生 過程管理有限責(zé)任合伙(Emerson ProcessManagement, LLLP)銷售的DeltaVTM控制器。然而,也可以用別的控制器代替。進(jìn)一步說,雖然圖I中僅示出了一個(gè)控制器,但別的任何所需類型或多種類型相結(jié)合的控制器都可以與LAN 24相連接。控制器16可以執(zhí)行一個(gè)或多個(gè)與過程控制系統(tǒng)10相關(guān)聯(lián)的過程控制例行程序。這樣的過程控制例行程序由一個(gè)系統(tǒng)工程師或別的系統(tǒng)操作員使用操作員站18生成,并可被下載至控制器16進(jìn)行實(shí)例化。如圖I所圖示的,示例性過程控制系統(tǒng)10也可以包括遠(yuǎn)程操作員站44,該操作員站44通過通信鏈路46和LAN 48與應(yīng)用程序站20和22進(jìn)行通信連接。遠(yuǎn)程操作員站44可以是地理上的遠(yuǎn)程位置,在這種情況下通信鏈路46優(yōu)選是,但并不必須是無線通信鏈路、基于互聯(lián)網(wǎng)的或別的分組交換通信網(wǎng)絡(luò)、電話線路(如數(shù)字用戶專用線路)或以上的任意組合。如圖I中的例子所描述的,運(yùn)行應(yīng)用程序站20和備用應(yīng)用程序站22通過LAN24以及冗余鏈路50相互通信連接。該冗余鏈路50可以是運(yùn)行應(yīng)用程序站20和備用應(yīng)用程序站22之間分離的、專用的(即不共享的)通信鏈路。例如,該冗余鏈路50可以使用專用的以太網(wǎng)鏈路(如相互連接的運(yùn)行應(yīng)用程序站20和備用應(yīng)用程序站22中的專用以太網(wǎng)卡)來實(shí)現(xiàn)。然而,在別的例子中,所述冗余鏈路50可以使用LAN 24或冗余LAN (未示出)來實(shí)現(xiàn),兩者不必是專用的,它們之一與應(yīng)用程序站20和22通信地連接。一般說來,應(yīng)用程序站20和22通過冗余鏈路50連續(xù)地,例外地,或周期性地交換信息(如應(yīng)對(duì)參數(shù)值的改變,應(yīng)用程序站配置也隨之改變等)來創(chuàng)建和維持冗余上下文。該冗余上下文使得運(yùn)行應(yīng)用程序站20和備用應(yīng)用程序站22可以進(jìn)行無縫的或者說無波動(dòng)的控制移交或轉(zhuǎn)換。例如,冗余上下文使得從運(yùn)行應(yīng)用程序站20到備用應(yīng)用程序站22的控制移交或轉(zhuǎn)換能夠響應(yīng)運(yùn)行應(yīng)用程序站20中出現(xiàn)的硬件或軟件的故障或者響應(yīng)來自系統(tǒng)操作員或用戶或者過程控制系統(tǒng)10的客戶端應(yīng)用程序的指令而進(jìn)行。圖2描述了可用于圖I中的示例性過程控制系統(tǒng)10的示例性面向服務(wù)的架構(gòu)或結(jié)構(gòu)200。如圖2所示,示例性面向服務(wù)的架構(gòu)或結(jié)構(gòu)200包括服務(wù)器202和客戶端204。服務(wù)器202包括多個(gè)或集成的服務(wù)206、208和210,其中的一些或全部可以執(zhí)行相關(guān)的功能。服務(wù)206、208和210提供各自的界面(例如一套或多套的公開的參數(shù))212、214和216,所述界面能夠通過通信端口 218與客戶端204通信。服務(wù)界面212、214和216實(shí)際上是充分上位的,也即充分獨(dú)立于模式(schema)(即數(shù)據(jù)格式、協(xié)議等等),所述格式用于包含在配置和運(yùn)行期數(shù)據(jù)庫中與圖I中示例性過程控制系統(tǒng)10相關(guān)聯(lián)的數(shù)據(jù)。結(jié)果,如果增加新的服務(wù)能力(如功能)到一個(gè)或多個(gè)服務(wù)206、208和210中,則僅需要修改(如更新)服務(wù)界面212、214和216。這樣,就不必要改變服務(wù)界面212、214和216,除非是增加使用新公開界面的數(shù)據(jù)對(duì)象用于過程控制系統(tǒng)10 (圖I)。例如,服務(wù)器202可以作為在基于處理器的系統(tǒng),比如圖I的示例性系統(tǒng)10中示出的一個(gè)或多個(gè)應(yīng)用程序20和22和/或操作員站18和44中執(zhí)行的軟件來實(shí)現(xiàn)。當(dāng)然,服務(wù)器202也可以使用其它任何與所述示例性過程控制系統(tǒng)10 (圖I)相連接的基于處理器的系統(tǒng)或工作站來實(shí)現(xiàn)??蛻舳?04包括多個(gè)服務(wù)界面代理220、222和224,所述各個(gè)代理與服務(wù)206、208和210中的一個(gè)相對(duì)應(yīng)??蛻舳?04使用服務(wù)界面代理的數(shù)目可以少于服務(wù)器202提供的服務(wù)的數(shù)目。換句話說,客戶端204優(yōu)選僅為其要求接入的服務(wù)產(chǎn)生代理。這樣,根據(jù)與服
務(wù)器202提供的服務(wù)206、208和210中的一個(gè)或多個(gè)進(jìn)行訪問或交互的需要,客戶端204可以產(chǎn)生一個(gè)或多個(gè)代理。與服務(wù)器202類似,例如,客戶端204可以作為在基于處理器的系統(tǒng),比如一個(gè)或多個(gè)應(yīng)用程序20和22和/或一個(gè)或多個(gè)操作員站18和44中執(zhí)行的軟件來實(shí)現(xiàn)。在一個(gè)示例性實(shí)現(xiàn)中,客戶端204可以利用網(wǎng)絡(luò)瀏覽器框架(如因特網(wǎng)瀏覽器)或其同類來訪問由服務(wù)器202提供的服務(wù)206、208和210中的一個(gè)或多個(gè)。然而,任何別的所需軟件架構(gòu)可以用于代替或補(bǔ)充這種網(wǎng)絡(luò)瀏覽器框架。一般來說,客戶端204可以指示例性過程控制系統(tǒng)10 (圖I)內(nèi)的任何所需的應(yīng)用程序。這樣,例如,客戶端204可以為配置應(yīng)用程序、維護(hù)應(yīng)用程序、監(jiān)測(cè)應(yīng)用程序、過程控制應(yīng)用程序和/或任意其它應(yīng)用程序或應(yīng)用程序的組合。如下面圖14和15中更加詳細(xì)的描述,客戶端204 (即客戶端應(yīng)用程序)可以包括顯示功能性(比如圖形用戶界面功能性),這使得一個(gè)或多個(gè)系統(tǒng)操作員、工程師和/或任意其它用戶能夠在配置操作或運(yùn)行時(shí)等等期間查看和/或改變過程控制數(shù)據(jù)。雖然圖2中的示例性架構(gòu)200描述單個(gè)服務(wù)器與單個(gè)客戶端之間的通信,但其它服務(wù)器和客戶端也可以視需要使用。例如,在某些實(shí)現(xiàn)中,客戶端204可以與多于一個(gè)的服務(wù)器中的服務(wù)進(jìn)行通信、相互操作和/或訪問。同樣,在這些實(shí)現(xiàn)或別的實(shí)現(xiàn)中,示例性服務(wù)器202 (或其它單個(gè)的服務(wù)器)可以與多個(gè)客戶端通信和相互操作。另外,應(yīng)該認(rèn)識(shí)到,客戶端204可以和另一系統(tǒng)通信,并且為了通信的目的可以作為服務(wù)器使用。同樣,在服務(wù)器202與除了客戶端204之外的系統(tǒng)通信的情況下,它可以作為客戶端使用來進(jìn)行通信。進(jìn)一步說,雖然服務(wù)206、208和210被描述為在服務(wù)器202中實(shí)現(xiàn),但代替地,這些服務(wù)206、208和210中的一個(gè)或多個(gè)可以在客戶端204中實(shí)現(xiàn)。這樣,利用圖2中示例性面向服務(wù)的架構(gòu)200,服務(wù)206、208和210彼此充分地分離(比如在數(shù)據(jù)相關(guān)性方面),并與利用(比如調(diào)用)服務(wù)206、208和210的應(yīng)用程序充分地分離(比如在數(shù)據(jù)依賴性方面)。這種分離有利地使與每個(gè)服務(wù)206、208和210相關(guān)聯(lián)的軟件能夠被獨(dú)立地修改或修訂,并且可以不必修改或修訂被客戶端204使用的用來訪問服務(wù)206、208和210的應(yīng)用程序而發(fā)布用于現(xiàn)場(chǎng)使用。同樣,與客戶端204相關(guān)聯(lián)的應(yīng)用程序可以被獨(dú)立地修改或修訂而不必要修改或修訂服務(wù)206、208和210,只要與客戶端204相關(guān)聯(lián)的應(yīng)用程序支持或兼容各個(gè)服務(wù)206、208和210的界面212、214和216。這樣,代替通過在生成與應(yīng)用程序和/或服務(wù)206、208和210相關(guān)的軟件時(shí)固定這樣的關(guān)系(即生成數(shù)據(jù)依賴性),來靜態(tài)定義與客戶端204相關(guān)聯(lián)的應(yīng)用程序以及服務(wù)206、208和210中的一個(gè)多個(gè)之間的關(guān)系,圖2中的示例性架構(gòu)200允許這樣的關(guān)系在運(yùn)行時(shí)動(dòng)態(tài)地建立。下面將進(jìn)行更加詳細(xì)的描述,所述面向服務(wù)的架構(gòu)200可以提供多種核心服務(wù)和功能。具體來說,示例性架構(gòu)200可以在示例性過程控制系統(tǒng)10 (圖I)為注冊(cè)和定位服務(wù)提供發(fā)現(xiàn)服務(wù)。示例性架構(gòu)200可以提供會(huì)話服務(wù),用來實(shí)現(xiàn)登錄和退出一個(gè)或多個(gè)與客戶端204相關(guān)聯(lián)的應(yīng)用程序;運(yùn)行期服務(wù),用來提供對(duì)本地和遠(yuǎn)程運(yùn)行期信息的訪問;數(shù)據(jù)庫服務(wù),用來訪問各種過程控制數(shù)據(jù)庫;以及版本控制服務(wù),用來存儲(chǔ)和檢索與用于示例性過程控制系統(tǒng)10 (圖I)內(nèi)的服務(wù)和/或應(yīng)用程序相關(guān)的版本信息。另外,示例性架構(gòu)200可以提供歷史服務(wù),用于查詢歷史信息;歷史掃描服務(wù),其要求與運(yùn)行期服務(wù)和歷史服務(wù)交互作用;報(bào)警和事件服務(wù);用于完成對(duì)報(bào)警信息的讀??;以及OLE過程控制(OPC)數(shù)據(jù)服務(wù)。下面將更詳細(xì)地描述上述每個(gè)示例性服務(wù)。然而,應(yīng)該理解的是,如果需要,可以使用作為本發(fā)明明確描述的補(bǔ)充或替代的其它服務(wù)。進(jìn)一步,應(yīng)該認(rèn)識(shí)到,優(yōu)選地但并不是必須地,服務(wù)206、208和210 —般與過程控制數(shù)據(jù)收集和處理功能相關(guān)聯(lián),系統(tǒng)用戶(比如,系
統(tǒng)操作員、工程師等等)并不直接與該功能交互。相反,這樣的服務(wù)(比如,服務(wù)206、208和210) —般提供它們的數(shù)據(jù)給(或接收數(shù)據(jù)于)用戶與之交互的應(yīng)用程序(比如運(yùn)行期圖形用戶界面)。進(jìn)一步,這樣的服務(wù)(如服務(wù)206、208和210)—般提供對(duì)多個(gè)客戶端應(yīng)用程序有用的信息或數(shù)據(jù)。例如,一個(gè)提供對(duì)過程控制數(shù)據(jù)庫進(jìn)行訪問的服務(wù)可以對(duì)多個(gè)客戶端應(yīng)用程序,比如提供與過程控制操作、維護(hù)和歷史等等相關(guān)的信息的圖形用戶界面是有用的。通過分開服務(wù)類功能(如數(shù)據(jù)庫訪問功能)與客戶端相關(guān)功能(如用戶界面功能),可以以修訂,修改等方式處理圖形用戶界面及其同類,而沒有必要修改與用戶界面交換數(shù)據(jù)的服務(wù)。同樣,可以修訂或修改所述服務(wù)和/或增加新的服務(wù),而不必修改提供用戶界面功能性的應(yīng)用程序。圖3是表示由圖2中的示例性架構(gòu)200提供的示例性發(fā)現(xiàn)服務(wù)300與運(yùn)行期服務(wù)器302之間的關(guān)系??偟膩碚f,示例性發(fā)現(xiàn)服務(wù)300提供服務(wù)注冊(cè)功能304、服務(wù)定位功能306和服務(wù)發(fā)布功能308。如圖3所示,發(fā)現(xiàn)服務(wù)300,以致注冊(cè)功能304、定位功能306和發(fā)布功能308與運(yùn)行期服務(wù)器302提供的數(shù)據(jù)訪問服務(wù)310協(xié)同工作。數(shù)據(jù)訪問服務(wù)310是下面將在圖7中討論的運(yùn)行期服務(wù)器302提供的多個(gè)服務(wù)中的一個(gè),它提供一界面來完成對(duì)這些服務(wù)相關(guān)信息的查詢,所述服務(wù)可以安裝在過程控制系統(tǒng)(如圖I中的示例性系統(tǒng)10)內(nèi)的每個(gè)節(jié)點(diǎn)(如每個(gè)服務(wù)器)上。使用統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifier, URI)可以定位和/或注冊(cè)服務(wù)。這樣的URI可以采用包括服務(wù)器標(biāo)識(shí)符字段、端口字段、路徑標(biāo)識(shí)符字段和/或查詢字符串的地址形式。然而,任何別的所需URI格式可以用來達(dá)到同樣或類似的結(jié)果。一些示例性URI格式(即身份角色、http地址和定制http地址)如下所示。身份角色
權(quán)利要求
1.一種在過程控制系統(tǒng)中注冊(cè)過程控制服務(wù)的方法,包括 在所述過程控制系統(tǒng)中建立一發(fā)現(xiàn)服務(wù); 使用運(yùn)行期服務(wù)器分配一端口號(hào)并產(chǎn)生與所述過程控制服務(wù)相關(guān)聯(lián)的標(biāo)識(shí)符;和 通過發(fā)現(xiàn)代理向所述發(fā)現(xiàn)服務(wù)傳送來自所述運(yùn)行期服務(wù)器的所述端口號(hào)和標(biāo)識(shí)符,在所述過程控制系統(tǒng)中注冊(cè)所述過程控制服務(wù)。
2.如權(quán)利要求I所述的方法,其中,所述過程控制服務(wù)包括會(huì)話服務(wù)、運(yùn)行期服務(wù)、數(shù)據(jù)庫服務(wù)、版本服務(wù)、歷史服務(wù)、報(bào)警和事件服務(wù)或OPC數(shù)據(jù)服務(wù)中的至少一個(gè)。
3.如權(quán)利要求I所述的方法,其中,所述標(biāo)識(shí)符包括統(tǒng)一資源標(biāo)識(shí)符。
4.一種將信息綁定至運(yùn)行期應(yīng)用程序的方法,包括 向一資源管理器提供與所述運(yùn)行期應(yīng)用程序相關(guān)聯(lián)的數(shù)據(jù)上下文; 通過所述資源管理器將來自所述數(shù)據(jù)上下文的至少一個(gè)屬性與變量、腳本或數(shù)據(jù)源引用中的至少一個(gè)相關(guān)聯(lián);以及 綁定所述至少一個(gè)屬性至所述變量、腳本或數(shù)據(jù)源中的所述至少一個(gè)。
5.如權(quán)利要求4所述的方法,其中,進(jìn)一步包括使用一上下文對(duì)象將所述至少一個(gè)屬性綁定至所述數(shù)據(jù)源引用。
6.如權(quán)利要求4所述的方法,其中,所述運(yùn)行期應(yīng)用程序包括一圖形用戶界面。
7.如權(quán)利要求4所述的方法,其中,所述數(shù)據(jù)源包括一運(yùn)行期服務(wù)。
8.一種更新圖形用戶界面的方法,包括 綁定一數(shù)據(jù)源值至與所述圖形用戶界面相關(guān)聯(lián)的參數(shù); 向一資源管理器提供與所述參數(shù)相關(guān)聯(lián)的數(shù)據(jù)改變通知;和 通過所述資源管理器調(diào)用與所述用戶圖形界面相關(guān)聯(lián)的方法,以使得所述圖形用戶界面得以更新,從而反映與所述改變通知對(duì)應(yīng)的數(shù)據(jù)改變。
9.如權(quán)利要求8所述的方法,其中,所述數(shù)據(jù)源值和所述圖形用戶界面與一過程控制系統(tǒng)相關(guān)聯(lián)。
10.如權(quán)利要求8所述的方法,進(jìn)一步包括將變量或腳本中的至少一個(gè)綁定至與所述圖形用戶界面相關(guān)聯(lián)的參數(shù)。
11.如權(quán)利要求8所述的方法,其中,所述參數(shù)對(duì)應(yīng)于與用于所述圖形用戶界面的顯示圖形相關(guān)聯(lián)的內(nèi)容。
全文摘要
本發(fā)明公開了一種用于過程控制系統(tǒng)的面向服務(wù)的架構(gòu)。在一個(gè)示例中,用于在過程控制系統(tǒng)中的客戶端過程和服務(wù)器過程之間傳遞過程控制信息的方法,建立包含多個(gè)過程控制服務(wù)的服務(wù)器過程,所述多個(gè)過程控制服務(wù)中的每個(gè)過程控制服務(wù)均有相應(yīng)的服務(wù)界面。該示例性方法還建立具有用于多個(gè)服務(wù)中的每個(gè)服務(wù)的代理的客戶端過程,該客戶端過程與所述服務(wù)建立通信連接。另外,該示例性方法還向客戶端過程提供與服務(wù)界面相關(guān)聯(lián)的端口信息,使得客戶端過程和服務(wù)器過程之間能夠進(jìn)行過程控制信息的傳遞。
文檔編號(hào)G05B23/02GK102854819SQ201210297339
公開日2013年1月2日 申請(qǐng)日期2005年5月4日 優(yōu)先權(quán)日2004年5月4日
發(fā)明者肯·J·貝歐格特, 斯蒂芬·吉爾伯特, 馬克·J·尼克松, 邁克爾·J·盧卡斯 申請(qǐng)人:費(fèi)舍-柔斯芒特系統(tǒng)股份有限公司