可擴展的自動化系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種可擴展的自動化系統(tǒng)以及自動化控制和監(jiān)視系統(tǒng),該系統(tǒng)包括用于借助面向資源的架構(gòu)(ROA)的控制和監(jiān)視系統(tǒng)的部件的公共框架。ROA可以使得能夠?qū)崿F(xiàn)控制和監(jiān)視系統(tǒng)內(nèi)的增強的可擴展性和分布。此外,該框架可以提供要在控制和監(jiān)視系統(tǒng)的部件中實施的基本功能集合,從而產(chǎn)生垂直可擴展性。
【專利說明】可擴展的自動化系統(tǒng)
[0001]本申請為2011年11月11日遞交的申請?zhí)枮?1/559022、標題為“Scalingand Distributing Resource Oriented Architecture Across anAutomation ControlSystem”的美國臨時專利申請的正式申請,其通過引用并入本文中。
【技術領域】
[0002]本公開的實施例總體上涉及自動化控制和監(jiān)視系統(tǒng)領域。更具體地,本公開的實施例涉及在自動化控制和監(jiān)視系統(tǒng)上擴展和分配面向資源的架構(gòu)(R0A)。
【背景技術】
[0003]自動化控制和監(jiān)視系統(tǒng)存在廣泛的應用,尤其是在工業(yè)背景。這些應用可以包括對各種執(zhí)行機構(gòu)(諸如,閥、電動機等)供電以及經(jīng)由傳感器采集數(shù)據(jù)。典型的自動化控制和監(jiān)視系統(tǒng)可以包括一個或多個部件,諸如編程終端、自動化控制器、輸入/輸出(I/o)模塊和/或人機接口(HMI)終端。
[0004]人機接口或“HMI”通常用于監(jiān)視或控制各種過程。HMI可以從特定的寄存器執(zhí)行讀取或向特定的寄存器執(zhí)行寫入,從而HMI能夠反映各種機器、傳感器、過程等的操作狀態(tài)。這些接口也可以向寄存器和存儲器執(zhí)行寫入,從而這些接口能夠在一定程度上控制處理的功能。在單獨的監(jiān)視功能中,很少或不執(zhí)行實際的控制。在很多其它背景下,諸如在汽車、飛機、商業(yè)背景和許多其它應用中,采用類似的裝置。在很多應用中,接口不能與遠程裝置或過程進行通信,但是可以以單機的方式運作。
[0005]在這些接口裝置中,接口中使用的對象可以與不同的控制、監(jiān)視器或工業(yè)自動化裝置的任何其它參數(shù)相關聯(lián)。這些對象中的一些對象可以在接口裝置上具有視覺呈現(xiàn),而其它對象不能可視化呈現(xiàn)但用戶易于對其進行配置和編程。用戶可能希望操縱這些對象,諸如通過創(chuàng)建新的對象、復制對象,編輯對象等,來創(chuàng)建和定制接口。
[0006]自動化控制和監(jiān)視系統(tǒng)中的每個部件可以使用該控制和監(jiān)視系統(tǒng)的一個或更多個對象(例如,控制程序、標簽、模塊配置和HMI屏幕)的狀態(tài)信息。有時,部件可以用于修改對象的狀態(tài)信息。因此,部件可能需要將狀態(tài)的變化傳送至控制和監(jiān)視系統(tǒng),以便其它部件可以了解控制和監(jiān)視系統(tǒng)的對象的狀態(tài)變化。實際上,在一些情況下,狀態(tài)的變化可以包括控制和監(jiān)視系統(tǒng)內(nèi)的某些對象的添加或刪除。
[0007]常規(guī)的方法依賴于集中控制和監(jiān)視。例如,常規(guī)的控制和監(jiān)視系統(tǒng)依賴于描述該控制系統(tǒng)的集中數(shù)據(jù)模型。對于集中數(shù)據(jù)模型的依賴可能導致過程效率低及對于托管集中數(shù)據(jù)模型的部件(例如,控制器)的依賴增加。通過創(chuàng)建用于控制和監(jiān)視系統(tǒng)的面向資源的架構(gòu)(R0A),系統(tǒng)可以在生產(chǎn)線上擴展功能,并且可以對系統(tǒng)的裝置或其它部件的擴展進行擴張。
【發(fā)明內(nèi)容】
[0008]以下概述與原始要求保護的發(fā)明在范圍上相當?shù)囊恍嵤├_@些實施例無意限制要求保護的發(fā)明的范圍,相反這些實施例僅意在提供本發(fā)明的可能形式的簡要概括。實際上,本發(fā)明可能包括與下面闡述的實施例相似或不同的各種形式。
[0009]本實施例提供了一種用于創(chuàng)建自動化控制和監(jiān)視系統(tǒng)內(nèi)的可擴展性的新穎的方法。面向資源的架構(gòu)(ROA)可以被創(chuàng)建為使得自動化控制和監(jiān)視系統(tǒng)能夠從小型實施容易地擴張為極大型的配置。此外,該ROA可以使得能夠以控制和監(jiān)視系統(tǒng)的許多產(chǎn)品類似的方式實施功能性。
【專利附圖】
【附圖說明】
[0010]當參考附圖閱讀以下詳細說明時,本實施例的這些和其它特征、方面和優(yōu)點將變得更容易理解,在所有附圖中相同的附圖標記表示相同的部分,其中:
[0011]圖1是根據(jù)實施例的自動化控制和監(jiān)視系統(tǒng)的部分的框架的總體概覽;
[0012]圖2是根據(jù)實施例的自動化控制和監(jiān)視系統(tǒng)的圖解概覽;
[0013]圖3是根據(jù)實施例的接口和編程終端中的某些功能部件的概覽;
[0014]圖4是根據(jù)實施例的設備要素的某些視圖或容器的概覽圖;
[0015]圖5是根據(jù)實施例的圖1的控制和監(jiān)視系統(tǒng)的示意圖,圖中示出了用于傳送狀態(tài)變化的持久對象模型的使用;
[0016]圖6示出根據(jù)實施例的在變化儀器、變化仲裁和觀眾成員之間傳送狀態(tài)變化的進展;
[0017]圖7示出根據(jù)實施例的撤消狀態(tài)變化的處理;
[0018]圖8示出根據(jù)實施例的在進行中的編輯期間發(fā)生外部變化的處理;
[0019]圖9示出根據(jù)實施例的用于中止進行中的變化的處理;
[0020]圖10示出根據(jù)實施例的用于將進行中的變化壓縮成一個變化集的處理;
[0021]圖11示出根據(jù)實施例的使用分布式執(zhí)行引擎來執(zhí)行控制命令的自動化控制和監(jiān)視系統(tǒng);
[0022]圖12示出根據(jù)實施例的通過執(zhí)行引擎執(zhí)行的處理循環(huán);
[0023]圖13示出根據(jù)實施例的用于調(diào)度命令的處理;
[0024]圖14示出根據(jù)實施例的使用可鏈接插件來修改控制和監(jiān)視系統(tǒng)的功能的自動化控制和監(jiān)視系統(tǒng);以及
[0025]圖15A?15E示出根據(jù)實施例的控制和監(jiān)視系統(tǒng)的服務,其中,該控制和監(jiān)控系統(tǒng)使用面向資源的架構(gòu)來實施。
【具體實施方式】
[0026]典型地,當傳送狀態(tài)變化時,控制和監(jiān)視系統(tǒng)嚴重依賴于諸如可編程邏輯控制器(PLC)等自動化控制器和自動化控制器編程(例如,PLC編程)來影響控制和監(jiān)視系統(tǒng)。自動化控制器編程嚴重依賴于任務和/或邏輯(例如,以編程語言編寫的機器可讀指令,諸如繼電器梯形圖)基于事件和/或基于調(diào)度的執(zhí)行,來實現(xiàn)控制和監(jiān)視系統(tǒng)中的變化。通常使用自動化控制器來消耗所有輸入數(shù)據(jù)、計算和分配輸出數(shù)據(jù)、處理數(shù)據(jù)的變化以及將數(shù)據(jù)分配至控制和監(jiān)視系統(tǒng)的部件。不幸地是,這種對于由控制和監(jiān)視系統(tǒng)(例如,自動化控制器和自動化控制器編程)的部件托管和影響的集中數(shù)據(jù)模型的嚴重依賴導致了一些效率低下。例如,隨著用于集中模型的基于調(diào)度和基于事件的任務的數(shù)量增加,由于可能產(chǎn)生對于單個模型的很多附加變化,從而可能出現(xiàn)劣化的性能。此外,集中模型(例如,經(jīng)由自動化控制器)的大量使用創(chuàng)建了處理控制邏輯的更集中的方法,從而導致控制邏輯執(zhí)行的低效率、單點故障(例如,當自動化控制器故障時,整個控制和監(jiān)視系統(tǒng)可能故障),并且可能引起在自動化控制器上的處理緊張(strain)。
[0027]根據(jù)本實施例,通過采用分布式數(shù)據(jù)模型、分布式狀態(tài)變化通信和分布式命令執(zhí)行,控制和監(jiān)視系統(tǒng)可以變得更靈活。例如,通過提供增強的協(xié)作能力、增加的數(shù)據(jù)冗余和整個控制和監(jiān)視系統(tǒng)的處理負載平衡,本實施例提出了更魯棒和靈活的自動化控制和監(jiān)視環(huán)境。此外,控制和監(jiān)視系統(tǒng)可以變得水平地(例如,從單個部件實施至具有多個部件的實施)及垂直地(例如,對平臺添加功能性,諸如運行時客戶端、運行時服務器、設計者客戶端、設計者服務器和控制器環(huán)境)均更可擴展。
[0028]魯棒控制和監(jiān)視系統(tǒng)
[0029]將通過以下討論描述很多方面、部件和處理。為了說明,整體系統(tǒng)概覽圖按照將這些創(chuàng)新放置在上下文中的順序來排序。圖1是根據(jù)本公開的實施例的用于接口的控制和監(jiān)視軟件框架10的圖解表示??蚣?0有助于通過采用基于模塊的互聯(lián)機構(gòu)12來構(gòu)建功能軟件,基于模塊的互聯(lián)機構(gòu)12本身支持動態(tài)操縱和配置。該動態(tài)操縱和配置能力有助于有效地為可配置結(jié)構(gòu)提供特征豐富的配置環(huán)境。即,如下所述,單獨的設備要素被提供為單機代碼,該單機代碼可以被單獨編程、預先寫入以使用(例如,在庫中)、在屏幕中定制其功能和外觀,并且被互聯(lián)以向用戶及控制和監(jiān)視功能提供信息。
[0030]框架10包括可以保持在單個系統(tǒng)(例如,計算機)上的兩個相關聯(lián)的軟件環(huán)境。具體地,運行時環(huán)境14使得操作者(例如,個人用戶)能夠在運行時期間(例如,使用接口期間,典型地為與操作中的處理交互的期間或觀察操作中的處理的期間)內(nèi)與諸如處理等應用交互。設計時環(huán)境16允許設計者配置接口及其部件。例如,系統(tǒng)可以經(jīng)由顯示器(例如,計算機或接口裝置屏幕)上的運行時環(huán)境14向操作者圖形地呈現(xiàn)運行時信息。此外,該系統(tǒng)可以包括用于接收操作者輸入的部件(例如,鍵盤和/或觸摸屏顯示器),其中,操作者輸入可以經(jīng)由運行時環(huán)境14檢測和管理。如下具體描述的,這些環(huán)境以創(chuàng)新的方式進行交互以在很大程度上增強接口的使用和編程。
[0031]運行時環(huán)境14包括或提供對設備要素18的訪問。設備要素18是可以包括軟件環(huán)境中的任何可訪問或可配置要素的軟件部件。例如,設備要素18包括軟件部件,諸如通過運行時環(huán)境14管理的“ActiveX”控件或NET”部件?!癆ctiveX”和NET”是指面向?qū)ο蟮母拍?、技術和工具。通常,本領域的技術人員將非常熟悉這樣的編程方法。在本文中,這樣的標準應該僅被當作是示例,并且“設備要素”應該被理解為包括任何大體上類似的部件或可以被運行為擬獨立要素(有時稱為“對象”)的自給性程序(self-sufficient programs)。針對這樣的要素存在通常被不同的公司或工業(yè)團體所支持的其它標準和平臺。
[0032]由于這樣的設備要素對于本文中陳述的某些概念來說是基本的,因此下面對該設備要素進行介紹。設備要素通常包括四個特征:屬性、方法、連接(或者接點)以及通信接口。在本文中,屬性是可以被調(diào)節(jié)以便例如定義要素在屏幕視圖中的表示或圖像以及要素在屏幕上的位置等的品質(zhì)。在本文中,方法是可執(zhí)行的函數(shù)(有時本文中稱作要素“功能性”或“狀態(tài)引擎”),并且定義通過執(zhí)行要素而進行的操作。在本文中,連接是要素之間的鏈接,并且可以被用于使(從存儲器讀取的或者寫入存儲器的)數(shù)據(jù)被發(fā)送到另一要素。
[0033]設備要素18的具體示例可以包括軟件按鈕、計時器、計量表、PLC通信服務器、可視化(例如示出自動化控制和監(jiān)視系統(tǒng)內(nèi)的部件的狀態(tài)的屏幕)以及應用。通常,幾乎任何可識別的功能都可以被配置為這樣的要素。此外,如以下所討論的,這樣的要素可以互相通信以執(zhí)行各種顯示、監(jiān)視操作和控制功能。應指出,設備要素18不需要特別限制來支持設計模式。此外,盡管與圖像相關聯(lián)的要素非常有用,尤其對于可視化而言,但是許多要素可能不具有視覺表示,而是可以執(zhí)行HMI內(nèi)的功能(例如計算,或者甚至管理以及與其它要素進行數(shù)據(jù)交換)。
[0034]運行時環(huán)境14典型地使用通信子系統(tǒng)20來進行操作。通信子系統(tǒng)20用于使設備要素18相互連接。事實上,通信子系統(tǒng)20可以看作包括設備要素18的連接。然而,通信子系統(tǒng)20可以包括用于將數(shù)據(jù)發(fā)送到外部電路(諸如自動化控制器、其它計算機、網(wǎng)絡、衛(wèi)星、傳感器和執(zhí)行機構(gòu)等)以及從外部電路接收數(shù)據(jù)的一系列軟件、硬件以及固件。
[0035]運行時環(huán)境14典型地使用行為子系統(tǒng)22來進行操作,該行為子系統(tǒng)22用于管理設備要素18的行為。例如,行為子系統(tǒng)22的職責可以包括如下:放置和移動設備要素、修改設備要素、對可互換屏幕上的設備要素分組、保存和恢復屏幕布局、管理安全性、保存和恢復連接列表,以及提供對運行時環(huán)境14的遠程訪問。再者,事實上,這樣的行為可以被稱為每個設備要素的簡檔(profile)(即,“方法”或“狀態(tài)引擎”)的一部分。
[0036]設計時環(huán)境16包括行為子系統(tǒng)22的高級實現(xiàn),行為子系統(tǒng)22的高級實現(xiàn)有助于在不妨礙或損害運行時環(huán)境16的行為的情況下直接或者間接地操縱運行時環(huán)境14。即,SP使在接口正被操作的情況下也可以設計和重新配置設備要素18。例如在常規(guī)瀏覽器中,行為子系統(tǒng)22經(jīng)由設計時環(huán)境16的遠程供應來擴展對運行時環(huán)境14的訪問。行為子系統(tǒng)22允許設計者通過將設計時環(huán)境16或設計時環(huán)境16的示象(aspect)從HMI提供到編程終端,而經(jīng)由遠程編程終端來與HMI的運行時環(huán)境14的示象交互以及改變HMI的運行時環(huán)境14的示象。例如,經(jīng)由網(wǎng)絡耦接到膝上電腦的HMI可以通過經(jīng)由網(wǎng)絡將特定的設計時環(huán)境16提供給膝上電腦來為用戶提供配置能力。
[0037]以下提供可以如何實現(xiàn)這個方案的細節(jié)和示例。在當前實施例中,設計時環(huán)境16可以是動態(tài)超文本標記語言(DHTML)和動態(tài)服務器頁面(ASP)服務器腳本的結(jié)合物,以將動態(tài)內(nèi)容提供給瀏覽器。ASP腳本是專門編寫的代碼,其包括在頁面被發(fā)送到用戶之前在服務器(例如,網(wǎng)絡服務器)上處理的一個或更多個腳本(即,小的嵌入式程序)。通常,在常規(guī)使用中,這樣的腳本提示服務器從數(shù)據(jù)庫獲取數(shù)據(jù)以及在數(shù)據(jù)庫中做出改變。接下來,在發(fā)送給請求者之前,腳本通常構(gòu)建或定制頁面。如以下所討論的,這樣的腳本以極其不同的方式用在本框架中,以便例如在事先不知道設備要素的功能性或它們的相互關系的情況下來構(gòu)建可視化。
[0038]通過促進設備要素的變化,設計時環(huán)境16允許設計者執(zhí)行行為子系統(tǒng)22的專門實現(xiàn)或可互換的設計時模型。行為子系統(tǒng)22的設計時實現(xiàn)的具體示例包括基于網(wǎng)絡的設計時環(huán)境16,該基于網(wǎng)絡的設計時環(huán)境16經(jīng)由在HMI與遠程設備之間的TCP/IP連接來擴展對HMI上的運行時環(huán)境14的訪問。基于網(wǎng)絡的設計時環(huán)境16有助于在不損害運行性能或安全的情況下管理設備要素。在一個專門的實現(xiàn)中,行為子系統(tǒng)22給予設計者使用能夠訪問相關接口或HMI的網(wǎng)絡瀏覽器來操縱運行時環(huán)境14的示象的能力。如上所述,以及如以下詳細描述的,這通過使用動態(tài)內(nèi)容、腳本以及設備要素屬性的配置的組合來實現(xiàn)。
[0039]圖2是根據(jù)本公開實施例的、實現(xiàn)上述框架的控制和監(jiān)視系統(tǒng)24(例如,用于工業(yè)自動化)的圖解表示。系統(tǒng)24包括用于與聯(lián)網(wǎng)部件及配置裝備接口的人機接口(HMI) 26。系統(tǒng)24示出為包括用于通過控制/監(jiān)視裝置30(例如,遠程計算機、自動化控制器(諸如可編程邏輯控制器(PLC)),或其它控制器)來與處理28的部件合作的HMI 26。HMI 26可以在物理上類似現(xiàn)有的硬件,例如面板、監(jiān)視器或單機設備。
[0040]可以通過使用任何適當?shù)木W(wǎng)絡策略來促進HMI 26與處理28的部件之間的合作。實際上,可以采用工業(yè)標準網(wǎng)絡(例如DeviceNet),以實現(xiàn)數(shù)據(jù)傳輸。這樣的網(wǎng)絡允許根據(jù)預定義的協(xié)議來進行數(shù)據(jù)交換,并且可以提供用于操作聯(lián)網(wǎng)要素的動力。如上所述,雖然在當前討論中參考了聯(lián)網(wǎng)系統(tǒng)以及包含控制器和其它裝備的系統(tǒng),但HMI 26和所描述的編程技術同樣可以應用于非聯(lián)網(wǎng)部件(例如,GPS顯示器、游戲顯示器、手機顯示器、平板顯示器等)以及工業(yè)自動化領域之外的聯(lián)網(wǎng)系統(tǒng)。例如,以下描述的布置和處理可以用于設施管理、汽車和車輛的接口、計算機數(shù)控(CNC)機器、銷售終端(POS)系統(tǒng)、用于商場(例如,電梯、門禁系統(tǒng))的控制接口等,僅列舉幾種。
[0041]由相應的行為子系統(tǒng)構(gòu)造和管理的運行時或操作環(huán)境14被存儲并且駐留在HMI26上。例如,這樣的行為子系統(tǒng)可以用于諸如在HMI 26的初始制造或安裝期間從存儲位置加載應用配置框架(例如,10)。當所存儲的應用程序框架被加載時,其可以用于創(chuàng)建屏幕以及在屏幕中定位用戶接口設備要素(與要素對應的實際圖像或圖形表示)。這些應用程序、屏幕以及用戶接口要素為各種類型的設備要素。如以下所描述的,HMI 26包括規(guī)定設備要素的布局和交互的存儲應用?;谶\行時引擎的基于網(wǎng)絡的設計時環(huán)境16也被加載并駐留在HMI 26上。設計時環(huán)境16可以為設計時環(huán)境和運行時環(huán)境兩者處理高級特征(例如,安全管理)。
[0042]HMI 26可以用于允許用戶與幾乎任何處理交互。例如,處理可以包括:壓縮機站、煉油廠、用于制造食品的批量生產(chǎn)、機械化裝配線等。因此,處理28可以包括各種操作部件,諸如電動機、閥、執(zhí)行機構(gòu)、傳感器,或者各種各樣的制造、加工、原料處理及其它應用程序。此外,處理28可以包括用于通過自動化和/或觀察來調(diào)節(jié)處理變量的控制和監(jiān)視裝備。示出的處理28包括傳感器34和執(zhí)行機構(gòu)36。傳感器34可以包括用于提供關于處理條件的信息的許多設備。執(zhí)行機構(gòu)36可以類似地包括用于響應于輸入信號來進行機械操作的許多設備。
[0043]如所示出的,這些傳感器34和執(zhí)行機構(gòu)36與控制/監(jiān)視裝置30(例如,自動化控制器)通信,并且可以分配有可被HMI 26訪問的、控制/監(jiān)視裝置30中的特定地址。傳感器34和執(zhí)行機構(gòu)36可以與HMI 26直接進行通信。這些設備可以用于操作處理裝備。實際上,這些設備可以用在由控制/監(jiān)視裝置30和/或HMI 26監(jiān)視和控制的處理循環(huán)中。可以基于處理輸入(例如,來自傳感器34的輸入)或直接輸入(例如,通過HMI26接收的操作者輸入)來激活該處理循環(huán)。
[0044]接口上的服務器軟件允許瀏覽開發(fā)環(huán)境并直接重新配置接口(具體為設備要素及它們的關聯(lián)的外觀和功能性),而無需專用的瀏覽或配置軟件。該益處來自于下述事實:設備要素和設計時環(huán)境本身駐留在HMI 26中,并且通過HMI 26 “提供”給編程終端46上的瀏覽器或其它通用的閱覽器。換言之,可以降低或消除對外部計算機工作站(例如,膝上電腦和臺式計算機)的必要支持。應指出,用于瀏覽和修改接口的配置的“瀏覽器”的引用不限于網(wǎng)絡瀏覽器或任何特定的瀏覽器。對于瀏覽器的引用意圖是示例性說明。更一般地,本文中采用術語“瀏覽器”來指包括任何通用閱覽器的軟件,包括可以在運行Apple? (注冊商標)或Google? (注冊商標)操作系統(tǒng)(諸如,iOS? (注冊商標)或Android?)的設備(例如,平板電腦和/或智能手機)中運行的應用或“apps”。
[0045]通過如下所述的設備要素的編程,HMI 26可以被認為包括用于呈現(xiàn)一個或更多個屏幕視圖或可視化的指令,以及通過參考屏幕視圖(例如,按壓按鈕、觸摸屏幕的位置等)在與HMI 26進行交互時執(zhí)行的設備要素??梢酝ㄟ^任何期望的軟件或軟件包來定義屏幕視圖和設備要素。例如,屏幕視圖和設備要素可以由操作系統(tǒng)38調(diào)用或執(zhí)行。如上所述,根據(jù)本實施例的設備要素可以是符合“.NET”或“ActiveX”標準的對象。操作系統(tǒng)本身可以基于任何適當?shù)钠脚_,諸如Linux? (注冊商標)、Windows?(注冊商標)、OS-X?(注冊商標)等。如本文中所引用的,設備要素和工具支持用于在網(wǎng)絡(例如,因特網(wǎng))上發(fā)送數(shù)據(jù)的網(wǎng)絡服務或技術。因此,如下所述,這些設備要素遵循關于信息共享的一系列規(guī)則并且適于與各種腳本和編程語言一起使用。這樣的設備要素使得交互內(nèi)容能夠提供給外部應用(諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)乃至萬維網(wǎng))。因此,操作系統(tǒng)38和各種設備要素通過允許對瀏覽器48的配置訪問(access)(例如,提供),經(jīng)由瀏覽器48來促進HMI 26的動態(tài)配置。
[0046]例如,這樣的配置訪問包括用于例示設備要素的訪問。換言之,實際上可以從瀏覽器48來創(chuàng)建并實現(xiàn)新的設備要素。再者,應指出,瀏覽器48不需要實際的功能訪問。實際上,在一個實施例中,經(jīng)由瀏覽器48的請求導致基于容器中設備要素的內(nèi)容和數(shù)據(jù)功能性的“繪制(draw)”操作序列,由此在實際上不提供功能示象的情況下允許示出設備要素表示和訪問它們的配置。這允許在無需對遠程工作站進行技術支持的情況下經(jīng)由遠程工作站進行配置。
[0047]除了如上所述(及如下更詳細地描述的)的操作系統(tǒng)38和設備要素之外,HMI 26包括應用或應用層40。該應用可以自身包括設備要素,并且有利于訪問HMI 26的各種設備要素并且從HMI 26的各種設備要素獲取信息。具體地,應用40表示可以是作為用于執(zhí)行的枚舉類型的多級設備要素中的第一級。實際實現(xiàn)中的應用40可以包括以XML頁面形式的用戶應用。然后,如下更詳細地描述的,用戶應用由用戶或操作者以及與設計者操作來與之進行交互。
[0048]屏幕視圖和設備要素可以被描述為獨立的可執(zhí)行軟件塊。在本實現(xiàn)中,通過以標記語言(例如,超文本標記語言或HTML)編寫的適當代碼來定義屏幕視圖。因此,可以在不使用轉(zhuǎn)換程序的情況下執(zhí)行HMI 26的圖形接口屏幕的配置。此外,通過對設備要素進行編程,可以經(jīng)由使得駐留開發(fā)環(huán)境可用于遠程訪問的駐留服務器軟件(稱為服務器42)來直接地在HMI 26上開發(fā)屏幕視圖。具體地,在一個實施例中,某些設備要素的表示(例如,ActiveX控件)被提供給瀏覽器48而不提供軟件部件本身。由于可以經(jīng)由瀏覽器48訪問開發(fā)或設計時環(huán)境,因此可以消除對于將變化下載到屏幕以及更新遠程配置軟件應用的需要。
[0049]如上所述,設備要素可以包括功能性,設備要素通過該功能性從通常在其它設備中(但是也可以在HMI內(nèi))的特定存儲器或存儲器的寄存器進行讀取或者向該特定存儲器或存儲器的寄存器寫入。例如,特定功能可以對應于寫入控制/監(jiān)視裝置30的寄存器32或者從控制/監(jiān)視裝置30的寄存器32讀取。在簡單的情況下,例如,對象訪問數(shù)據(jù)塊(例如,由傳感器確定的部件狀態(tài)),并且生成輸出信號以寫入對應于不同的聯(lián)網(wǎng)設備的狀態(tài)的值。如下將更加詳細地討論的,這樣的狀態(tài)信息可以經(jīng)由狀態(tài)A43來傳送。例如,在圖2中描述的實施例中,控制/監(jiān)視裝置30和HMI 26可以使用狀態(tài)增量43來傳送狀態(tài)信息。此外,編程終端46也可以使用狀態(tài)A 43來與控制/監(jiān)視裝置30和HMI 26通信狀態(tài)信息。
[0050]當然可以配置更加復雜的功能性。例如,在工業(yè)控制和監(jiān)視背景下,這樣的設備要素可以對各種物理部件(諸如,瞬時接觸按鈕、具有延遲輸出的按鈕、開關等)的操作進行仿真。許多預編程的設備要素可以供HMI26使用。這樣的功能模塊可以經(jīng)由網(wǎng)絡訪問,或者可以駐留在HMI 26上,或者駐留在直接鏈接到HMI 26的分離設備上。以這種方式,HMI供應商或者軟件供應商可以提供許多可能的構(gòu)建塊,根據(jù)上述構(gòu)建塊可以對屏幕以及復雜的控制與監(jiān)視功能進行編程。實際上,如下所述,可用設備要素的庫44可以駐留在HMI 26上以有助于HMI 26的配置。屏幕指令可以基于操作者輸入來調(diào)用用于執(zhí)行期望的功能的設備要素,并且這些指令可以被編程為預編程要素的版本。例如,操作者可以通過觸摸觸摸屏上的位置或者按壓鍵盤上的鍵來提供初始輸入。然后,可以基于屏幕指令和與指令關聯(lián)的設備要素(例如,利用特定位置觸發(fā)調(diào)用或者執(zhí)行預配置的設備要素)執(zhí)行期望的功能。因此,操作者能夠與處理進行交互,通常能夠改變屏幕視圖、寫入寄存器或者指示生成其它輸出或者控制信號。在單機實現(xiàn)中,交互可以是簡單地再調(diào)用或者存儲數(shù)據(jù)、改變屏幕等。
[0051]可以采用一個或更多個單獨的接口屏幕,其具有包含許多這樣的屏幕和大量設備要素的一些HMI。每個設備要素進而可以被唯一地編程,以考慮特定的輸入、執(zhí)行特定的功能以及生成用于特定輸出的信號。如下所描述的,多個這樣的設備要素可以被加載并且被托管在單個軟件“容器”(例如,ActiveX容器)中。
[0052]可以通過直接地與HMI 26本身(存在一個的情形下)上的屏幕或者面板進行交互來配置HMI 26,但是在很多情況下從遠程編程終端46來執(zhí)行配置。例如,經(jīng)由瀏覽器48或者類似的應用來直接地提供對于駐留庫44和/或操作系統(tǒng)30及應用40的訪問。在本實現(xiàn)中,在編程終端46處不需要其它專門的軟件。實際上,駐留在HMI 26上的服務器42可以提供對庫44中的設備要素的訪問。通過直接在HMI 26上存儲庫44中的設備要素,消除或者降低了版本沖突等的風險。另外,HMI 26可以直接地連接到編程終端46,或者通過參考分配給HMI 26的IP地址(互聯(lián)網(wǎng)協(xié)議地址)來訪問HMI 26。
[0053]訪問控制方案可以用于限制改變屏幕和設備要素的能力。例如,可能需要密碼或者用戶訪問狀態(tài)來獲得這樣的訪問。此外,在目前考慮的實施例中,編程終端自動地識別HMI 26或者如下終端:在該終端上,HMI 26作為耦接到編程終端46的設備(例如,類似于外部存儲器或驅(qū)動器)駐留。因此,一旦HMI 26被連接到編程終端,其可以被簡單地“識別”為可以被訪問的設備(提供下述的配置屏幕和工具)。
[0054]一旦駐留在HMI 26上的設備要素是編程終端46可訪問的,那么可以經(jīng)由來自編程終端46的通信鏈路直接在HMI 26上修改或更新HMI 26的示象。例如,用戶可能希望更新具體的HMI圖形以提供數(shù)據(jù),諸如歷史數(shù)據(jù)或者與從新安裝的傳感器34接收的信息相關的趨勢。另外,用戶可以發(fā)現(xiàn)在脫機模式(例如,不立即執(zhí)行變化)的情況下更新用于呈現(xiàn)這樣的數(shù)據(jù)的HMI圖形是期望的或者便利的。在這種情況下,用戶可以經(jīng)由編程終端46鏈接到可利用的設備要素的庫44并且使用其來在開發(fā)環(huán)境中修改HMI圖形或者功能性。
[0055]應指出,可以向庫44添加附加的設備要素。例如,如果HMI 26上沒有駐留趨勢設備要素,那么用戶可以將這樣的元素從駐留在編程終端46上的配置庫50中下載至HMI 26。替代地,用戶可以從資源庫52來存取趨勢設備要素,資源庫52可經(jīng)由網(wǎng)絡(例如,因特網(wǎng))直接被HMI 26訪問或者通過編程終端46訪問。這可能特別有益,因為可以單獨地且定期地將新的且改進的設備要素下載至HMI 26,以增加新的功能性,而無需定期地釋放新的轉(zhuǎn)換程序或HMI操作系統(tǒng)或者運行或設計時環(huán)境軟件。開發(fā)環(huán)境可以設置到這樣的庫的鏈接。此外,在使用嵌入代碼的實施例中(例如,操作系統(tǒng)、服務器軟件、設備對象等),由于嵌入代碼駐留在HMI 26上,所以可以避免與嵌入代碼的版本沖突并且可以消除編程終端軟件升級的必要性。
[0056]為了追蹤控制和監(jiān)視系統(tǒng)24的一個或更多個部件的狀態(tài)信息,控制和監(jiān)視系統(tǒng)24的部件可以使用表示控制和監(jiān)視系統(tǒng)24的各個示象的分布式數(shù)據(jù)模型。例如,分布式數(shù)據(jù)模型可以使得表示控制和監(jiān)視系統(tǒng)24的數(shù)據(jù)模型的多個高速緩存的副本能夠存在于控制和監(jiān)視系統(tǒng)24內(nèi)(例如,在控制和監(jiān)視系統(tǒng)24的部件一個或更多個部件處)。如以下更詳細地描述的,分布式數(shù)據(jù)模型可以結(jié)合增量腳本和分布式命令處理來工作。增量腳本可以使控制和監(jiān)視系統(tǒng)24的一個或更多個部件能夠確定數(shù)據(jù)模型的狀態(tài)變化、生成只包含數(shù)據(jù)模型的變化和/或整個數(shù)據(jù)模型的增量腳本并且將增量腳本提供給控制和監(jiān)視系統(tǒng)24的其它部件。其它部件可以消耗增量腳本并且將包含在增量腳本內(nèi)的數(shù)據(jù)施加到數(shù)據(jù)模型的本地高速緩存副本(例如,包含在控制和監(jiān)視系統(tǒng)24的部件之一的分布式副本)。此外,如以下將更詳細地討論的,控制和監(jiān)視系統(tǒng)24的某些部件可以采用實現(xiàn)分布式命令處理的分布式執(zhí)行引擎。這樣的分布式命令處理使得控制和監(jiān)視系統(tǒng)24的分布式部件能夠基于提供給分布式部件的事件或者調(diào)度表來處理命令執(zhí)行。
[0057]通過使用分布式數(shù)據(jù)模型、分布式增量傳通信(例如,經(jīng)由增量腳本)以及分布式命令執(zhí)行,所得到的控制和監(jiān)視系統(tǒng)24可以更魯棒和靈活。例如,代之依賴于集中式控制/監(jiān)視裝置30處的集中式數(shù)據(jù)模型,可以使用分布式數(shù)據(jù)模型的副本來影響控制和監(jiān)視系統(tǒng)24內(nèi)的變化。例如,代之依賴于控制/監(jiān)視裝置30處的集中式數(shù)據(jù)模型來影響HMI 26的變化,HMI 26可以包括分布式數(shù)據(jù)模式的副本,依賴于該副本來影響HMI 26內(nèi)的變化。此外,HMI 26可以接收下述狀態(tài)增量43(例如,經(jīng)由增量腳本),該狀態(tài)增量43由HMI 26所消耗并且通過HMI 26施加到HMI的數(shù)據(jù)模型的本地副本。此外,如以下更詳細地描述的,HMI 26可以包括下述本地執(zhí)行引擎(例如,分布在HMI 26的執(zhí)行引擎),該本地執(zhí)行引擎用于在HMI 26處執(zhí)行提供至HMI 26的命令。
[0058]此外,這種功能性使得同步數(shù)據(jù)存儲能夠遍及控制和監(jiān)視系統(tǒng)24。這些同步數(shù)據(jù)存儲可以通過使得多個用戶能夠?qū)⒁c其它數(shù)據(jù)存儲中的每個數(shù)據(jù)存儲同步的單個數(shù)據(jù)存儲做出改變而實現(xiàn)協(xié)作。此外,由于數(shù)據(jù)存儲可以高速緩存控制和監(jiān)視系統(tǒng)24的數(shù)據(jù)的各個副本,所以可以進行脫機修改。例如,即使當控制器不可用時,通過使用在數(shù)據(jù)存儲之一中高速緩存的數(shù)據(jù),用戶仍可以對控制和監(jiān)視系統(tǒng)24進行修改。當用戶恢復聯(lián)機(例如,可以訪問處理器)時,用戶在脫機情況下所做的修改可以與其它數(shù)據(jù)存儲同步。因此,用戶能夠以更相容且可靠的方式將變化提供給控制和監(jiān)視系統(tǒng)24。
[0059]例如,一個用戶可以在設計軟件(例如Rockwell自動化股份有限公司的RSLogix5000?)中對標記符定義、元數(shù)據(jù)定義進行改變,可以重命名設計要素,可以修改報警設置、改變數(shù)據(jù)類型和/或修改數(shù)據(jù)記錄情況??梢詫Ρ镜財?shù)據(jù)存儲作出由用戶提交的這些變化。聯(lián)機時,這些變化可以傳播至控制和監(jiān)視系統(tǒng)24內(nèi)的其它數(shù)據(jù)存儲,然后在整個系統(tǒng)24應用這些變化。脫機時,這些變化可以保留在本地數(shù)據(jù)存儲并且當返回聯(lián)機時(例如,重新連接到控制和監(jiān)視系統(tǒng)24的控制器)可以被同步。通過變化的自動傳播,可以避免冗余的變化進入,從而節(jié)約開發(fā)工作。此外,通過系統(tǒng)24基于自動重命名傳播可以減少調(diào)試和初始化。此外,由于這些變化可以起源于整個系統(tǒng),所以當不同用戶開發(fā)控制器和HMI時可以實現(xiàn)靈活的工作流。
[0060]如上所述,通過分布式數(shù)據(jù)模型、經(jīng)由增量腳本將變化傳播至分布式數(shù)據(jù)模型以及分布命令執(zhí)行,可以在常規(guī)控制和監(jiān)視系統(tǒng)之上極大地改進控制和監(jiān)視系統(tǒng)24。例如,可以由控制和監(jiān)視系統(tǒng)24之內(nèi)分布的數(shù)據(jù)模型的多份副本中的任何一個副本來服務控制和監(jiān)視系統(tǒng)24的客戶端(例如,請求控制和監(jiān)視系統(tǒng)24的數(shù)據(jù)模型的數(shù)據(jù)的部件)??刂坪捅O(jiān)視系統(tǒng)24可以基于許多判定因素中的一個因素確定哪一個副本來服務客戶端。例如,可以選擇具體的分布式數(shù)據(jù)模型副本以基于諸如高效網(wǎng)絡通路(例如,其中副本在本地或在網(wǎng)絡上最靠近客戶端、或者網(wǎng)絡通路具有最大帶寬等)等性能效率將數(shù)據(jù)提供至客戶端。此外,處理考慮也可以被作為該決策的考慮因素。例如,這種魯棒的控制和監(jiān)視系統(tǒng)24可以使數(shù)據(jù)能夠被提供至使用負載均衡技術的客戶端。在一個實施例中,可以從包含已知的或可能的比控制和監(jiān)視系統(tǒng)24的別的部件提供較少的請求的分布式數(shù)據(jù)模型的副本的部件向客戶端提供數(shù)據(jù)。在一個示例中,控制和監(jiān)視系統(tǒng)24可以包括兩個控制/監(jiān)視裝置30(例如,2個自動化控制器)??刂坪捅O(jiān)視系統(tǒng)24可以預測或評述第一控制/監(jiān)視裝置30比第二控制/監(jiān)視裝置30接收更多的關于數(shù)據(jù)的請求。因此,控制和監(jiān)視系統(tǒng)24可以確定從第二控制/監(jiān)視裝置30服務客戶端以避免過度利用第一控制/監(jiān)視裝置30。因而,控制和監(jiān)視系統(tǒng)24可以基于控制和監(jiān)視系統(tǒng)24之內(nèi)的部件負載通過均衡請求來避免控制/監(jiān)視裝置30的充溢。在某些實施例中,這可以包括提供來自單個部件的請求至閾請求數(shù)或閾數(shù)據(jù)量并且當達到閾值時移動至溢出源處。在一些實施例中,這基本上可以包括在提供數(shù)據(jù)時均勻分攤請求的負載或數(shù)據(jù)量。
[0061]除分布式數(shù)據(jù)模型、增量腳本以及執(zhí)行引擎可以提供的負載均衡性能之外,這些性能還可以有益于在控制和監(jiān)視系統(tǒng)24中的數(shù)據(jù)冗余。例如,控制和監(jiān)視系統(tǒng)24之內(nèi)的一個或更多個部件可以監(jiān)視一個或更多個分布式數(shù)據(jù)模型的副本?;诟北静环€(wěn)定(例如,副本沒有精確地表示分布式模型)的檢測,不穩(wěn)定副本可以由穩(wěn)定的副本(例如,精確地表示分布式模型的副本)代替??梢詮姆植荚诒淮_定為具有精確地表示數(shù)據(jù)模型的副本的控制和監(jiān)視系統(tǒng)24中的數(shù)據(jù)模型的其他副本中的任何一個副本來獲得穩(wěn)定的副本。
[0062]在一些實施例中,控制和監(jiān)視系統(tǒng)24的部件可以訪問冗余池,該冗余池為分布式數(shù)據(jù)模型的有效副本或存儲有分布式數(shù)據(jù)模型的有效副本的控制和監(jiān)視系統(tǒng)24的部件提供指針。例如,當客戶端部件請求數(shù)據(jù)模型中的數(shù)據(jù)時,其可以訪問冗余池,該冗余池傳送可獲取數(shù)據(jù)的地址。如上所述,控制和監(jiān)視系統(tǒng)24的一個或更多個部件可以監(jiān)視數(shù)據(jù)模型的副本以確定非穩(wěn)定副本。當檢測到一個或更多個非穩(wěn)定副本時,控制和監(jiān)視系統(tǒng)24的部件可以將指針移動至非穩(wěn)定副本或存儲有非穩(wěn)定副本的控制和監(jiān)視系統(tǒng)24的部件。因此,非穩(wěn)定副本不能經(jīng)由冗余池而訪問。[0063]在某些實施例中,如上所述,在從冗余池移除非穩(wěn)定副本(存儲有非穩(wěn)定副本的部件)之后,控制和監(jiān)視系統(tǒng)24的部件可以用穩(wěn)定版本替換非穩(wěn)定副本。在替換了非穩(wěn)定副本之后,控制和監(jiān)視系統(tǒng)24的部件可以將替換穩(wěn)定版本(或存儲有替換穩(wěn)定版本的部件)重新添加至冗余池以便將來使用。
[0064]為了更好地說明設計時環(huán)境與運行時環(huán)境之間的關系,圖3提供了表示HMI26和編程終端46之間的交互的高級別流程圖。下面提供關于該過程的更多細節(jié)。通常,HMI 26和編程終端46的平臺將包括操作系統(tǒng)或執(zhí)行軟件38、應用軟件40、以及任何通信軟件、微處理器、網(wǎng)絡接口、輸入/輸出硬件、通用軟件庫、數(shù)據(jù)庫管理、用戶接口軟件等等(圖3中沒有具體示出)。在所說明的實施例中,設計時平臺和運行時平臺在HMI26內(nèi)交互。設計時平臺為臺式個人計算機平臺(如,運行適當?shù)牟僮飨到y(tǒng)38,諸如Windows? XP、Windows? CE或Linux?)提供用作設計時環(huán)境16的視圖,并且運行時平臺經(jīng)由操作系統(tǒng)(如,Windows? XP^Windows? CE、Linux?)與設計時平臺協(xié)作。設計時平臺提供動態(tài)服務器內(nèi)容54,而運行時平臺在HMI 26自身上顯示視圖(在顯示屏設置在HMI 26上的情形下)。設計時環(huán)境16顯示在瀏覽器48 (如,Web瀏覽器或其他通用查看器)中。
[0065]圖3表示在很高級別上設計時環(huán)境16如何與操作系統(tǒng)38、應用40和運行時環(huán)境14交互。箭頭56表示內(nèi)容在HMI 26與編程終端46之間動態(tài)交換。通常,與設計時環(huán)境16的交互是設計者58的任務,設計者58最初配置HMI屏幕或可視化、裝置要素及其功能和交互、或者重新配置該軟件。通常,操作者60直接在HMI 26上與運行時環(huán)境14交互。應該注意,雖然在本實施例中設計時環(huán)境16具有特殊需求,但其在很大程度上取決于操作系統(tǒng)38、應用40和運行時環(huán)境14。設計時環(huán)境16和運行時環(huán)境14可以利用某些基本技術(如,DHTML、HTML、HTTP、動態(tài)服務器內(nèi)容、JavaScript、Web瀏覽器)來分別在設計時平臺和運行時平臺中進行操作。雖然在所說明的實施例中運行時環(huán)境14和設計時環(huán)境16處于分開的平臺上,但在一些實施例中它們可以處于同一平臺上。例如,設計時平臺和運行時平臺可以配置成或被視為單個平臺。
[0066]在本發(fā)明的一個實施例中`,使用設計時Web實施方式。該設計時Web實施方式通過利用Web瀏覽器(如,48),在HMI的DHTML的支持下,提供在設計時平臺上運行的軟件的速度和靈活性,如圖3中的動態(tài)服務器內(nèi)容54所示以及如以下所描述的。DHTML用于在設計時環(huán)境16中對Web內(nèi)容執(zhí)行動態(tài)操縱。此外,動態(tài)服務器內(nèi)容54用于HMI中,以使動態(tài)Web內(nèi)容服務于設計時環(huán)境16。該動態(tài)客戶端-服務器環(huán)境允許Web瀏覽器模擬在設計時平臺上運行的應用,而不需要針對有關處理器編譯的軟件。
[0067]圖4是示出了根據(jù)本技術的實施例的設計時環(huán)境中的一個或更多個裝置要素的圖。該圖包括通過顯示器100 (如,用于瀏覽器顯示的屏幕)、屬性編輯器102和HMI 26之間的關系而圖示的交互。
[0068]由配置屏幕或顯示器100表示的設計時環(huán)境包括靜態(tài)內(nèi)容104和動態(tài)內(nèi)容。動態(tài)內(nèi)容包括與任何顯示或表示的裝置要素106 (如,虛擬開/關按鈕、計量器)對應的圖像。在本技術的一個實施例中,如下文所述,圖像由HTML中的圖像標簽來指定,并且是由HMI創(chuàng)建的JPEG文件的一部分。靜態(tài)內(nèi)容104可由活動服務器頁(active server page,ASP)服務器來創(chuàng)建或其可預先存在于HTML文件中。應該注意,在一些實施例中,僅指定的設計者可以編輯靜態(tài)內(nèi)容104。
[0069]在圖4的表示中,裝置要素表示106包含在視圖容器108內(nèi)。本領域技術人員將理解,容器通常定義打開某些裝置要素以備使用的處理空間的部分。因此,容器108可以與僅包含當前屏幕內(nèi)可視的要素的第一視圖容器對應。如上所述,可以在HMI中設置很多這樣的屏幕。諸如替選的控制或接口屏幕的其他屏幕可以設置在諸如容器110的其他視圖容器中。通常,為了加速HMI的操作(如,在屏幕視圖之間變化),這樣的視圖容器通過限定與視圖容器相關聯(lián)的各個裝置要素或者內(nèi)部設置有裝置要素的表示的各個裝置要素而被預定義并彼此相關聯(lián)。全局容器112可以定義為包括各個視圖容器所需要的所有裝置要素、以及不可在任何視圖容器中表示的其他要素。如圖4所示,因此,視圖容器108包括執(zhí)行“慢移(jog)”功能且在第一屏幕中顯示為表示的虛擬按鈕106。新容器110包括若干個部件,諸如“開始”按鈕114、“停止”按鈕116、虛擬計量器118和數(shù)字讀出器120。于是,全局容器112將包括各個視圖容器的所有這些裝置要素、以及操作可視裝置要素所需要的但本身不可視的任何裝置要素122。這樣的裝置要素可以包括執(zhí)行計算、趨向、通信和許多其他功能的要素。
[0070]圖4還示出了用戶可以訪問要素106的各個屬性的屬性編輯器102。如上所述,要素106還可以包括與要素106相關聯(lián)的文本和連接,其也可以由用戶通過編輯器(類似于屬性編輯器102)來配置。
[0071]在實施例中,屬性編輯器102可以經(jīng)由從瀏覽器(如,圖2的瀏覽器48)至服務器96 (如,HTTP服務器)的查詢字符串來與HMI 26交互,服務器96位于HMI 26上。服務器96與包含諸如動態(tài)鏈接庫(DLL)的基于模塊的互聯(lián)機構(gòu)12的ASP服務器98協(xié)作,以接收并響應查詢。DLL允許將可執(zhí)行例程作為單獨的文件進行存儲,該文件可以在需要或被程序引用時進行下載。在上述示例中,當接收到調(diào)用時,ASP服務器98重載頁面,并且對查詢字符串進行初始解析,從而導致移動命令的評估。接著,服務器側(cè)腳本訪問由圖像106表示的設備要素18,并且更新其位置屬性。接著,在頁面上更新新的屬性信息,并且將頁面?zhèn)鬟f至瀏覽器48。
[0072]通信狀態(tài)變化
[0073]現(xiàn)在討論結(jié)合借助于增量(delta)腳本的分布式狀態(tài)變化通知和分布式命令執(zhí)行使用分布式數(shù)據(jù)模型優(yōu)點,將提供對分布式狀態(tài)變化通知的更詳細討論。如上所述,圖2是根據(jù)本技術的實施例的適于利用增量腳本來提供部件狀態(tài)信息的示例性控制和監(jiān)視系統(tǒng)24的圖解表示。如圖所示,控制和監(jiān)視系統(tǒng)24可以包括適于與處理28的部件進行接口連接的一個或更多個人機接口(HMI) 26和一個或更多個控制/監(jiān)視裝置30。控制/監(jiān)視裝置30可以包括用于在控制和監(jiān)視系統(tǒng)24上執(zhí)行任務(如,過程控制、遠程設備監(jiān)視、數(shù)據(jù)獲取等)的一個或更多個處理器和數(shù)據(jù)存儲裝置。此外,編程終端46可以使一個或更多個用戶能夠配置HMI 26和/或控制/監(jiān)視裝置30的屬性。
[0074]在控制環(huán)境中,控制和監(jiān)視系統(tǒng)24的各個對象(如,控制程序、標簽、模塊配置和HMI屏幕)的狀態(tài)可以存儲在控制和監(jiān)視系統(tǒng)24的各個部件(如,編程終端46、控制/監(jiān)視裝置30、I/O模塊和/或HMI終端26)的存儲器(如,硬盤、只讀存儲器和/或隨機存取存儲器)中。控制和監(jiān)視系統(tǒng)24中的每個部件能夠以松散耦合、異步的方式獨立操作。此外,部件能夠以不同的編程技術(如,C++、Java和/或C#)來實現(xiàn)。當對控制環(huán)境對象的狀態(tài)信息做出變化時,該狀態(tài)信息會需要與位于其他部件上的狀態(tài)信息同步,以使部件能夠不斷了解控制和監(jiān)視系統(tǒng)24內(nèi)的對象的狀態(tài)。根據(jù)本實施例,為了解狀態(tài)信息,存儲狀態(tài)信息的自動化部件可以接收被稱為狀態(tài)增量43的數(shù)據(jù)(如,已經(jīng)變化的狀態(tài)要素),而不接收如下狀態(tài)要素:其沒有變化,并且由此已經(jīng)存在于關于存儲有狀態(tài)信息的各個部件的被存儲的狀態(tài)信息中。例如,狀態(tài)增量43可以包括因控制和監(jiān)視系統(tǒng)24內(nèi)的動作而變化的任何數(shù)據(jù)。通過提供狀態(tài)增量43而不提供未變化的狀態(tài)信息,可以觀察到效率提高。例如,在具有100個狀態(tài)要素的傳統(tǒng)的控制和監(jiān)視系統(tǒng)24中,會將100個狀態(tài)要素中的每個提供給存儲有對象狀態(tài)信息的每個部件。通過僅提供狀態(tài)增量43,控制和監(jiān)視系統(tǒng)24的部件可以僅傳送變化的要素的數(shù)據(jù)。因此,如果100個狀態(tài)要素中的僅一個要素變化,則不傳送另外99個要素,從而相對于傳統(tǒng)系統(tǒng)減小了網(wǎng)絡流量。此外,僅提供狀態(tài)增量43可以減小無意地重寫在控制和監(jiān)視系統(tǒng)24內(nèi)的別的地方產(chǎn)生的狀態(tài)變化信息的可能性。例如,在上述100個狀態(tài)要素的情形下,當將全部100個狀態(tài)要素傳送至其他部件時,99個未變化要素會導致在別處對這99個部件中的一個所做出的變化進行重寫。通過僅提供變化的要素(如,狀態(tài)增量43)時,99個未變化要素不會受到已變化的且傳送至其他部件的該一個要素的影響。
[0075]現(xiàn)在討論狀態(tài)增量24的使用,圖5示出了控制和監(jiān)視系統(tǒng)24,控制和監(jiān)視系統(tǒng)24包括在控制和監(jiān)視系統(tǒng)24的部件之間傳達狀態(tài)變化的持久化對象模型。例如,部件可以包括控制/監(jiān)視裝置30 (如,PLC)、提供項目文件150的編程終端46、以及諸如駐留持久化對象模型152和協(xié)作會話154的控制/監(jiān)視裝置30和客戶端156的部件。如先前所討論的,控制/監(jiān)視裝置30可適于與處理28的部件進行接口連接(圖1)。項目文件150可以是計算機文件輸出,該計算機文件輸出表示被定義并且存儲在編程終端46的存儲器(如,硬盤)中的控制和監(jiān)視系統(tǒng)24的各種屬性(圖1)。持久化對象模型152可以是以持久方式保持跟蹤對控制和監(jiān)視系統(tǒng)24中的狀態(tài)數(shù)據(jù)所做的變化(如,通過將狀態(tài)數(shù)據(jù)存儲在諸如硬盤驅(qū)動器的非易失性存儲介質(zhì)上)的控制和監(jiān)視系統(tǒng)24的一個或更多個部件的狀態(tài)數(shù)據(jù)的計算機模型。持久化對象模型152可以用作變化通信授權方(authority),以使得所有提交的對對象狀態(tài)做出的變化通過持久化對象模型152來存儲和傳達。如下面將更詳細討論的,協(xié)作會話154可以是控制和監(jiān)視系統(tǒng)24的部件之間的交互式信息交換接口,其提供做出未決(pending)變化(如,一些變化僅可以在用戶選擇以提交變化之后被應用并傳達至控制和監(jiān)視系統(tǒng)24的其他部件)的環(huán)境??蛻舳?56可以是控制和監(jiān)視系統(tǒng)24中將對象的狀態(tài)信息保持在存儲器中的任何其他部件,諸如提供對象的呈現(xiàn)視圖的部件。
[0076]在所說明的實施例中,每個說明的部件(提供協(xié)作會話數(shù)據(jù)154的控制/監(jiān)視裝置
30、提供更新項目文件150的編程終端46、提供持久化對象模型152和協(xié)作會話154的控制/監(jiān)視裝置30、以及客戶端156)包括數(shù)據(jù)容器158 (如,為數(shù)據(jù)保留的存儲器)。數(shù)據(jù)容器158包含對控制和監(jiān)視系統(tǒng)24的一個或更多個對象的狀態(tài)進行定義的狀態(tài)要素160。狀態(tài)要素160可以用數(shù)據(jù)驅(qū)動方式來定義,使得不同的技術(如,C++、Java和/或C#)可以利用由狀態(tài)要素160表示的數(shù)據(jù)。如上所述,希望有效地使存儲在控制和監(jiān)視系統(tǒng)24的各個部件中的狀態(tài)信息同步。隨著存儲在數(shù)據(jù)容器158中的一個或更多個狀態(tài)要素160變化,會需要使存儲在其他部件中的數(shù)據(jù)要素160同步。
[0077]如上所述,持久化對象模型152可以是在控制和監(jiān)視系統(tǒng)24中的各個部件之間應用狀態(tài)變化時的指定授權方。持久化對象模型152可以包括針對其數(shù)據(jù)容器158中的一個或更多個對象被稱為狀態(tài)信息的黃金副本162的事物(如交叉影線所示)。黃金副本162包括總是被控制和監(jiān)視系統(tǒng)24視為正確的狀態(tài)信息副本。換句話說,黃金副本162是狀態(tài)信息的授權副本。每條狀態(tài)信息具有其自身的黃金副本162,該黃金副本162可以或不可以與其他狀態(tài)信息的黃金副本162 —起位于控制和監(jiān)視系統(tǒng)24內(nèi)(如在同一計算機系統(tǒng)上)。當一個或更多個狀態(tài)要素的變化被提交時,以增量腳本170的形式將變化的要素提供給黃金副本162,所述增量腳本基于狀態(tài)要素變化來更新。接著,狀態(tài)要素變化經(jīng)由增量腳本170從黃金副本提供至控制和監(jiān)視系統(tǒng)24內(nèi)的其他部件。
[0078]為了影響數(shù)據(jù)容器158內(nèi)的狀態(tài)變化,控制和監(jiān)視系統(tǒng)24的部件可以起到各種作用。作用可包括變化儀器164、變化仲裁器166和觀眾168。變化儀器164(如,在本實施例中經(jīng)由編輯器提供修改的項目文件150的客戶端)向變化仲裁器166發(fā)送變化請求。變化儀器164可以通過接收關于變化請求的異步變化響應和/或錯誤響應來檢驗變化的成功。變化仲裁器166 (如,駐留持久化對象模型42的服務器)查詢輸入變化、通過執(zhí)行所請求的變化來處理變化、基于請求做出其他副作用的變化、或者放棄變化。變化仲裁器166可以將變化響應提供給變化儀器164、當出現(xiàn)變化時向觀眾168 (如,客戶端156和/或協(xié)作會話154所涉及的控制/監(jiān)視裝置30)發(fā)布變化通知、和/或?qū)⒆兓瘜懙近S金副本162。觀眾168接收變化通知,并且使用通知來更新存儲在其數(shù)據(jù)容器158中的其狀態(tài)信息的本地副本。
[0079]如上所述,在控制和監(jiān)視系統(tǒng)24的各個部件中使用的編程技術可以不一致。例如,一些部件可以使用C++,而另一些部件可以使用C#或Java。因此,圖1中的設置在變化儀器164、變化仲裁器166和觀眾168之間的狀態(tài)增量43能夠以不依賴于特定技術的數(shù)據(jù)驅(qū)動增量腳本170來提供。增量腳本170能夠以創(chuàng)建、更新和/或刪除(CURD)數(shù)據(jù)的形式來描述對象狀態(tài)變化。創(chuàng)建數(shù)據(jù)可以包括用于創(chuàng)建對象的一些或所有數(shù)據(jù)(如,對于矩形來說,包括矩形的空間位置、寬度和高度)。默認值可用于未與創(chuàng)建請求一起提供的任何數(shù)據(jù)。更新數(shù)據(jù)可以包括對象中已更新的數(shù)據(jù)(如,對于具有更新的空間位置的矩形圖形而言,更新數(shù)據(jù)可以僅包括新的空間位置)。刪除數(shù)據(jù)可以標識已被移除的對象狀態(tài)數(shù)據(jù)(如,對于已被移除的矩形而言,刪除數(shù)據(jù)可以包括待刪除的矩形名稱)(例如,可以描述已被移除的對象狀態(tài)數(shù)據(jù)的標識符)。在一個示例中,利用以下C#偽代碼來創(chuàng)建變化:
[0080]
【權利要求】
1.一種面向資源的工業(yè)自動化架構(gòu)裝置,包括: 公共服務框架,其被配置成存儲在多個不同的工業(yè)自動化設備中的每個中; 多個服務模塊,其被配置成依據(jù)所選擇的工業(yè)自動化設備的功能性而存儲在所述多個不同的工業(yè)自動化設備中的所選擇的設備中,所述服務模塊在運行時與所述公共服務框架交互以執(zhí)行工業(yè)自動化任務。
2.根據(jù)權利要求1所述的架構(gòu)裝置,其中,所述公共服務框架包括容器,在所述容器內(nèi)使得存儲在任何特定設備中的所選擇的服務模塊實例化,以執(zhí)行所述工業(yè)自動化任務。
3.根據(jù)權利要求1所述的架構(gòu)裝置,包括公共應用框架和多個應用,所述公共應用框架和所選擇的應用被配置成存儲在所選擇的設備上并在所選擇的設備上運行。
4.根據(jù)權利要求3所述的架構(gòu)裝置,其中,所述應用框架包括容器,在所述容器中使得存儲在所選擇的設備上的所選擇的應用實例化,以執(zhí)行工業(yè)自動化任務。
5.根據(jù)權利要求4所述的架構(gòu)裝置,其中,由所述應用中的至少一個執(zhí)行的所述工業(yè)自動化任務包括用戶接口任務或用于應用的接口。
6.根據(jù)權利要求1所述的架構(gòu)裝置,其中,至少一個所選擇的服務模塊被配置成在所述自動化設備的制造和初始配置期間存儲在所述自動化設備中。
7.根據(jù)權利要求1所述的架構(gòu)裝置,其中,至少一個所選擇的服務模塊被配置成通過對自動化設備的現(xiàn)場修改而 被存儲在所述自動化設備中。
8.根據(jù)權利要求1所述的架構(gòu)裝置,其中,至少一個所選擇的服務模塊被配置成在工業(yè)自動化過程中的運行期間被動態(tài)地存儲在自動化設備中。
9.根據(jù)權利要求1所述的架構(gòu)裝置,其中,所述公共服務框架被配置成使用增量腳本來在自動化控制和監(jiān)視系統(tǒng)中傳送變化。
10.根據(jù)權利要求1所述的架構(gòu)裝置,其中,所述服務模塊被配置成與自動化控制和監(jiān)視系統(tǒng)的分布式數(shù)據(jù)模型進行交互。
11.根據(jù)權利要求1所述的架構(gòu)裝置,其中,所述架構(gòu)裝置被配置成在各自均存儲所述公共服務框架的運行時客戶端、運行時服務器、設計者客戶端、設計者服務器和控制器部件上執(zhí)行。
12.根據(jù)權利要求11所述的架構(gòu)裝置,其中,所述多個服務模塊被配置成在所述運行時客戶端、所述運行時服務器、所述設計者客戶端、所述設計者服務器、所述控制器部件、或其任意組合上進行操作。
13.根據(jù)權利要求1所述的架構(gòu)裝置,其中,通過在運行時服務器和客戶端、設計時服務器和客戶端、控制器、或其任意組合之間分布所述多個服務模塊的操作來實現(xiàn)垂直可擴展性。
14.一種工業(yè)自動化設備,包括: 處理電路,其被配置成在運行期間執(zhí)行工業(yè)自動化任務;以及 存儲器電路,其與所述處理電路協(xié)作,并且存儲對多個不同的工業(yè)自動化設備中的每個設備公共的服務框架以及多個服務模塊,所述多個服務模塊在運行時與所述公共的服務框架交互,以執(zhí)行所述工業(yè)自動化任務。
15.根據(jù)權利要求14所述的設備,其中,所述服務模塊選自服務模塊庫,基于所述設備的功能性選擇存儲在所述設備上且能夠在所述設備上操作的特定服務模塊。
16.根據(jù)權利要求14所述的設備,其中,所述多個服務模塊被配置成與所述公共的服務框架進行交互,而與同所述設備相關聯(lián)的操作系統(tǒng)無關。
17.根據(jù)權利要求14所述的設備,其中,所述多個服務模塊中的至少一個被配置成與使得能夠?qū)崿F(xiàn)分布式命令處理的至少一個分布式執(zhí)行引擎進行交互。
18.根據(jù)權利要求14所述的設備,其中,所述多個服務模塊中的至少一個被配置成發(fā)送、接收、或發(fā)送并接收分布式模型中的數(shù)據(jù)。
19.根據(jù)權利要求14所述的設備,其中,所述多個服務模塊中的至少一個被配置成訪問與自動化控制和監(jiān)視系統(tǒng)中的數(shù)據(jù)有關的元數(shù)據(jù)。
20.—種工業(yè)自動化設備族,包括: 多個不同的工業(yè)自動化設備,其中,每個設備在操作中具有不同的功能性以執(zhí)行不同的工業(yè)自動化任務; 其中,所述不同的工業(yè)自動化設備各自包括公共服務框架和多個服務模塊,所述公共服務框架在所述工業(yè)自動化設備族中是相同的,并且所述多個服務模塊是依據(jù)所述族的特定設備的功能性從服務模塊庫中選擇的,所述服務模塊在運行時與所述公共服務框架交互,以執(zhí)行所述族的特定設備的工業(yè)自動化任務。
21.根據(jù)權利要求20所述的工業(yè)自動化設備族,其中,所述不同的工業(yè)自動化設備包括自動化控制器設備和人機接口設備。
22.根據(jù)權利要求20所述的工業(yè)自動化設備族,其中,所述多個不同的工業(yè)自動化設備包括:運行時客戶端、運行時服務器、設計者客戶端、設計者服務器、控制器部件、或其任意組合。`
23.根據(jù)權利要求22所述的工業(yè)自動化設備族,其中,可以通過添加用于執(zhí)行相似任務的附加工業(yè)自動化設備作為所述多個不同的工業(yè)自動化設備中的至少一個來實現(xiàn)水平可擴展性。
24.一種用于制造工業(yè)自動化設備的方法,包括: 在所述工業(yè)自動化設備上存儲公共服務框架和多個服務模塊,所述公共服務框架在所述工業(yè)自動化設備所屬的工業(yè)自動化族中是相同的,并且所述多個服務模塊是依據(jù)所述工業(yè)自動化設備的功能性從服務模塊庫中選擇的,所述服務模塊在運行時與所述公共服務框架交互,以執(zhí)行所述工業(yè)自動化設備的工業(yè)自動化任務。
25.根據(jù)權利要求24所述的方法,其中,所述公共服務框架和所述服務模塊在所述工業(yè)自動化設備的初始配置期間被存儲在所述工業(yè)自動化設備上。
26.根據(jù)權利要求24所述的方法,其中,至少一個服務模塊通過對所述工業(yè)自動化設備的現(xiàn)場修改而被存儲在所述工業(yè)自動化設備上。
27.根據(jù)權利要求24所述的方法,其中,至少一個服務模塊在工業(yè)自動化過程中的運行期間被動態(tài)地存儲在所述工業(yè)自動化設備上。
28.一種通過權利要求24所述的方法制造的工業(yè)自動化設備。
29.一種用于制造工業(yè)自動化設備族的方法,包括: 對公共服務框架進行配置,所述公共服務框架被配置成存儲在所述族的多個不同的工業(yè)自動化設備中的每個中;以及 對服務模塊庫進行配置,所述服務模塊庫被配置成依據(jù)所選擇的設備的功能性而被存儲在所述族的多個不同的工業(yè)自動化設備中的所選擇的設備中,所述服務模塊在運行時與所述公共服務框架交互以執(zhí)行工業(yè)自動化任務。
30.一種工業(yè)自動化設備,包括如權利要求29所述的公共服務模塊和所述服務模塊庫中的選擇的服 務模塊。
【文檔編號】G05B19/04GK103792857SQ201210452165
【公開日】2014年5月14日 申請日期:2012年11月12日 優(yōu)先權日:2012年10月31日
【發(fā)明者】蘇比安·戈文達拉杰, 約瑟夫·布羅尼科夫斯基, 邁克爾·D·卡蘭恩, 史蒂文·約翰·科瓦爾, 塔里爾·賈斯珀, 肯尼斯·S·普拉赫, 道格拉斯·J·賴夏德, 道格拉斯·W·里德, 查爾斯·M·里斯查爾, 雷·J·斯塔龍, 大衛(wèi)·E·托馬斯, 蒂莫西·P·博普雷, 羅納德·E·布利斯, 戈登·代利 申請人:洛克威爾自動控制技術股份有限公司