專利名稱:獲得仿真系統(tǒng)瞬像的方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及處理控制系統(tǒng),尤其涉及一種仿真多結(jié)點(diǎn)處理控制系統(tǒng)的一個(gè)或多個(gè)結(jié)點(diǎn)的仿真系統(tǒng),以便提供與分布式處理控制系統(tǒng)相關(guān)的被仿真的處理控制功能。
背景技術(shù):
像那些在化學(xué)、石油中使用的分布式處理控制系統(tǒng)或其它處理系統(tǒng)典型地包括一個(gè)或多個(gè)處理控制器,該控制器經(jīng)由模擬、數(shù)字或組合模擬/數(shù)字總線可通信地連接到一個(gè)或多個(gè)現(xiàn)場(chǎng)器件(field device)。這些現(xiàn)場(chǎng)器件可以是例如閥門(mén)、閥門(mén)定位器、開(kāi)關(guān)和發(fā)送器(例如,溫度、壓強(qiáng)和流速傳感器),這些現(xiàn)場(chǎng)器件位于處理環(huán)境內(nèi),并且執(zhí)行諸如打開(kāi)或關(guān)閉閥門(mén)、測(cè)量處理參數(shù)等的功能。智能現(xiàn)場(chǎng)器件,諸如符合眾所周知的Fieldbus協(xié)議的現(xiàn)場(chǎng)器件也可以執(zhí)行控制計(jì)算、報(bào)警功能、或其它通常在控制器中執(zhí)行的控制功能。典型地位于工廠環(huán)境內(nèi)的處理控制器接收指示由現(xiàn)場(chǎng)器件做出的處理測(cè)量的信號(hào)和/或其它與現(xiàn)場(chǎng)器件相關(guān)的信息,并且執(zhí)行控制器應(yīng)用程序,該應(yīng)用程序例如運(yùn)行不同的控制模塊,做出處理控制決定、根據(jù)所接收的信息來(lái)產(chǎn)生控制信號(hào),以及與諸如HART和Fieldbus的現(xiàn)場(chǎng)器件中執(zhí)行的控制模塊或塊相互配合??刂破髦械目刂颇K經(jīng)通信線路將控制信號(hào)發(fā)送到現(xiàn)場(chǎng)器件,從而控制處理的操作。
來(lái)自現(xiàn)場(chǎng)器件和控制器的信息通常經(jīng)過(guò)數(shù)據(jù)總線而可用于一個(gè)或多個(gè)其它硬件設(shè)備,例如操作員工作站、個(gè)人計(jì)算機(jī)、數(shù)據(jù)歷史記錄、報(bào)表生成器、集中數(shù)據(jù)庫(kù)等,典型地是放在控制室或遠(yuǎn)離更惡劣的工廠環(huán)境的其它位置的硬件設(shè)備。這些硬件設(shè)備運(yùn)行應(yīng)用程序,例如可以使操作員執(zhí)行有關(guān)處理的功能,例如改變處理控制例行程序的設(shè)置、修改控制器或現(xiàn)場(chǎng)器件內(nèi)的控制模塊的操作、查看處理的當(dāng)前狀態(tài)、仿真處理操作用于培訓(xùn)員工或測(cè)試處理控制軟件、保留和更新配置數(shù)據(jù)庫(kù)等。
作為一個(gè)例子,由Fisher-Rosemount系統(tǒng)股份有限公司銷售的DeltaVTM控制系統(tǒng)包括多個(gè)應(yīng)用程序,這些應(yīng)用程序存儲(chǔ)在位于處理工廠內(nèi)的不同空間的不同器件內(nèi),并且由這些器件執(zhí)行。位于一個(gè)或多個(gè)操作員工作站中的配置應(yīng)用程序使用戶能夠創(chuàng)建或改變處理控制模塊,以及經(jīng)由數(shù)據(jù)總線將這些處理控制模塊下載到專用分布式控制器。配置應(yīng)用程序也可以允許設(shè)計(jì)者來(lái)創(chuàng)建或改變用戶接口,這些用戶接口被查看應(yīng)用程序用來(lái)向用戶顯示數(shù)據(jù),以及使用戶改變?cè)O(shè)置,諸如處理控制例行程序內(nèi)的設(shè)置點(diǎn)。每個(gè)專用控制器以及在一些情況中的現(xiàn)場(chǎng)器件存儲(chǔ)和執(zhí)行控制器應(yīng)用程序,該應(yīng)用程序運(yùn)行被分配和下載給它的控制模塊,以便執(zhí)行實(shí)際的處理控制。可以在一個(gè)或多個(gè)操作員工作站運(yùn)行的查看應(yīng)用程序經(jīng)數(shù)據(jù)總線從控制器應(yīng)用程序接收數(shù)據(jù)并且向處理控制系統(tǒng)設(shè)計(jì)者、操作員、或使用用戶接口的用戶顯示該數(shù)據(jù),其中用戶接口可以提供多種不同視圖的任意一種,例如操作員視圖、工程師視圖、技術(shù)人員視圖等。數(shù)據(jù)歷史應(yīng)用程序典型地存儲(chǔ)在數(shù)據(jù)歷史器件中并由其執(zhí)行,該數(shù)據(jù)歷史器件收集和存儲(chǔ)通過(guò)數(shù)據(jù)總線提供的一些或全部數(shù)據(jù),同時(shí)在另一個(gè)附加到數(shù)據(jù)總線的計(jì)算機(jī)設(shè)備中可以運(yùn)行配置數(shù)據(jù)庫(kù)應(yīng)用程序,以便存儲(chǔ)當(dāng)前處理控制例行程序配置及其相關(guān)的數(shù)據(jù)??商鎿Q地,可以將配置數(shù)據(jù)庫(kù)存儲(chǔ)在與配置應(yīng)用程序相同的工作站中。
可以在附加到數(shù)據(jù)總線的個(gè)人計(jì)算機(jī)上運(yùn)行仿真應(yīng)用程序,例如由密蘇里州圣路易的Don H.Munger公司銷售的Mimic應(yīng)用程序、或由加拿大卡爾加里的Hyprotech公司制造和銷售的HYSYS應(yīng)用程序。這些或其它接口應(yīng)用程序經(jīng)由數(shù)據(jù)總線與控制器應(yīng)用程序和查看應(yīng)用程序通信,以便能夠測(cè)試存儲(chǔ)在控制器中的控制模塊或用戶接口。這些仿真應(yīng)用程序也使能執(zhí)行培訓(xùn)和系統(tǒng)檢查。在一些情況中,HYSYS應(yīng)用程序是一種高保真度處理仿真產(chǎn)品,可以與Mimic應(yīng)用程序被集成到相同的計(jì)算機(jī),以便仿真用于設(shè)計(jì)的檢查的處理控制設(shè)計(jì)的精確定時(shí)以及響應(yīng)。典型地,這些仿真應(yīng)用程序使用眾所周知的諸如OPC接口或PI接口的標(biāo)準(zhǔn)接口與控制器內(nèi)的控制器應(yīng)用程序或現(xiàn)場(chǎng)器件進(jìn)行通信。
作為替換,仿真已被人工執(zhí)行,其中操作員或其它用戶利用控制器或現(xiàn)場(chǎng)器件的控制模塊內(nèi)的輸入/輸出(I/O)功能塊的仿真能力,來(lái)人工設(shè)置由I/O塊處理的值和狀態(tài)變量,以便依次使信息或控制邏輯能夠被驗(yàn)證,而不用實(shí)際上控制現(xiàn)場(chǎng)器件或使現(xiàn)場(chǎng)器件連接到控制器。在另一種情況下,在控制器或現(xiàn)場(chǎng)器件中可以創(chuàng)建和存儲(chǔ)特定的仿真模塊,以便通過(guò)向?qū)嶋H控制模塊提供基于輸出塊目標(biāo)的仿真的處理動(dòng)態(tài)而與實(shí)際控制模塊進(jìn)行交互。
在這些系統(tǒng)中,能夠驗(yàn)證在設(shè)計(jì)、分配和下載控制模塊到控制器或現(xiàn)場(chǎng)器件并使用仿真程序測(cè)試系統(tǒng)之后,由查看應(yīng)用程序產(chǎn)生的用戶顯示中示出的信息正在被控制器正確地進(jìn)行通信。在建立控制器系統(tǒng)值之前典型地執(zhí)行使用完全系統(tǒng)硬件用于配置檢查和操作員培訓(xùn),從而,可以完全測(cè)試到控制器的物理連接以及控制器與工作站之間的通信。而且,能夠檢查由配置的模塊引入到控制器的性能、存儲(chǔ)器要求、以及負(fù)載。
然而,在多數(shù)情況中,期望在處理控制系統(tǒng)已被全部配置和執(zhí)行和/或盡管處理控制系統(tǒng)正在在線運(yùn)行之后,仿真處理控制系統(tǒng)或處理控制系統(tǒng)的結(jié)點(diǎn)。例如,期望創(chuàng)建一種仿真環(huán)境,能夠仿真一種完全執(zhí)行的處理控制系統(tǒng),用于培訓(xùn)目的,諸如培訓(xùn)新的操作員,或用于測(cè)試目的,諸如測(cè)試一組新的操作參數(shù)來(lái)看看在用這些操作參數(shù)來(lái)運(yùn)行實(shí)際裝置之前是否獲得了期望的結(jié)果。
不幸的是,如果在配置完成時(shí)沒(méi)有創(chuàng)建仿真系統(tǒng),則必須從配置的實(shí)際處理中創(chuàng)建配置系統(tǒng)。這尤其意味著操作員或其它人員必須通過(guò)對(duì)要仿真的每個(gè)結(jié)點(diǎn)內(nèi)的每個(gè)控制塊安裝分離的仿真塊,來(lái)人工地創(chuàng)建仿真系統(tǒng),以及必須對(duì)于被仿真的結(jié)點(diǎn)之外的每個(gè)塊或結(jié)點(diǎn)創(chuàng)建I/O塊或參考,而不是可通信地連接到那些結(jié)點(diǎn)。該操作員也必須配置這些塊之間的通信,以仿真在處理工廠內(nèi)發(fā)生的實(shí)際通信。因?yàn)椴僮鲉T是按照逐塊來(lái)人工復(fù)制每個(gè)結(jié)點(diǎn)的,所以所創(chuàng)建的仿真系統(tǒng)可能包括操作員引入的錯(cuò)誤,因此不能準(zhǔn)確地仿真被配置的工廠。而且,這種處理非常耗時(shí),尤其是在每個(gè)結(jié)點(diǎn)中具有成百上千的不同塊的復(fù)雜的工廠中,需要?jiǎng)?chuàng)建成百上千的仿真控制塊,有時(shí)候需要更多輸入/輸出塊。
作為替換,操作員可以將對(duì)于結(jié)點(diǎn)的每個(gè)塊配置的軟件復(fù)制在仿真環(huán)境中,例如復(fù)制到仿真計(jì)算機(jī)。然而,在這種情況中,操作員仍然必須人工地創(chuàng)建仿真輸入/輸出塊或參考那些塊。如上所述,這種處理仍需要應(yīng)付操作員引入的錯(cuò)誤及時(shí)間消耗問(wèn)題。
無(wú)論如何,因?yàn)樯鲜鰡?wèn)題,一個(gè)實(shí)際操作和配置的裝置的仿真系統(tǒng)的創(chuàng)建花費(fèi)了大量的時(shí)間和操作員人力,因此是非常昂貴的,有時(shí)候花費(fèi)了數(shù)以百萬(wàn)美元。這些代價(jià)阻止了許多工廠對(duì)于配置的處理控制系統(tǒng)創(chuàng)建精確的仿真系統(tǒng),這限制了可以在工廠中提供的培訓(xùn)的數(shù)量和質(zhì)量,以及可被執(zhí)行的離線測(cè)試的數(shù)量。
另外,在從實(shí)際操作系統(tǒng)復(fù)制的仿真系統(tǒng)內(nèi)有許多信號(hào),諸如輸入/輸出塊的狀態(tài)信號(hào),可導(dǎo)致問(wèn)題。特別是,當(dāng)發(fā)送通信信號(hào)到另一個(gè)塊時(shí),每個(gè)塊通常提供一種指示信號(hào)的狀態(tài)的狀態(tài)信號(hào),例如,好的、壞的、陳舊的等。然而,在從運(yùn)行的工廠復(fù)制的仿真環(huán)境中,狀態(tài)信號(hào)將一直是舊的或壞的,因?yàn)樵诠S內(nèi)沒(méi)有真正的設(shè)備來(lái)發(fā)送和更新那個(gè)信號(hào)。結(jié)果,仿真系統(tǒng)在處理壞的狀態(tài)信號(hào)時(shí)可能陷入困境,并且不能仿真實(shí)際的控制環(huán)境或可能發(fā)送大量的錯(cuò)誤消息給操作員,而使仿真操作員厭煩。
而且,還存在這樣的情況或時(shí)間,即期望抓住或創(chuàng)建正在運(yùn)行的仿真系統(tǒng)的瞬像(snapshot),所述瞬像包括所有處理變量的值、設(shè)置點(diǎn)和其它處理參數(shù)。所仿真的裝置或裝置的結(jié)點(diǎn)的這種瞬像在診斷問(wèn)題、保存一個(gè)以后在另一個(gè)仿真中使用的特定的好的或壞的裝置條件時(shí)是有用的,以便重復(fù)相同的仿真和測(cè)試不同動(dòng)作的影響等。然而,目前,沒(méi)有已知的方法用于創(chuàng)建仿真在特定實(shí)例的瞬像,而不用實(shí)際暫停仿真的運(yùn)行相當(dāng)長(zhǎng)的時(shí)間周期和復(fù)制仿真內(nèi)的每個(gè)塊的狀態(tài)。因?yàn)榻Y(jié)點(diǎn)中已知或標(biāo)準(zhǔn)的復(fù)制塊的方法等使用比結(jié)點(diǎn)的運(yùn)行周期更長(zhǎng)的時(shí)間,執(zhí)行這些有關(guān)運(yùn)行的仿真的復(fù)制方法意味著在復(fù)制過(guò)程中變量或值將會(huì)改變,因此,捕獲的裝置或結(jié)點(diǎn)狀態(tài)將不是對(duì)于時(shí)間上的特定單一實(shí)例的,而是具有來(lái)自不同時(shí)間的不同變量值。另一方面,暫停仿真訪問(wèn)和復(fù)制所有的模塊參數(shù)的值的時(shí)間量,尤其在一個(gè)面向?qū)ο蟮木幊汰h(huán)境中對(duì)仿真操作員是非常明顯的,并且可能是破壞性的。
發(fā)明內(nèi)容
一種仿真系統(tǒng)附加到用于處理控制系統(tǒng)的一個(gè)或多個(gè)滿配置的結(jié)點(diǎn)的配置數(shù)據(jù)庫(kù),并且將這些結(jié)點(diǎn)內(nèi)的包括功能塊的模塊復(fù)制到一個(gè)或更多仿真計(jì)算機(jī)中。該仿真系統(tǒng)包括一個(gè)算法,在復(fù)制處理期間或之后,自動(dòng)創(chuàng)建每個(gè)所復(fù)制的結(jié)點(diǎn)的參考參數(shù)模塊,以存儲(chǔ)結(jié)點(diǎn)外的每個(gè)輸入或輸出參考的參考參數(shù),諸如輸入/輸出塊、其它結(jié)點(diǎn)中的其它功能塊、現(xiàn)場(chǎng)器件中的發(fā)送器塊等。在Fieldbus功能塊的情況下,仿真系統(tǒng)以控制器結(jié)點(diǎn)的協(xié)議自動(dòng)地創(chuàng)建仿真工作站內(nèi)的功能塊,所述功能塊模仿Fieldbus功能塊的操作,并且然后創(chuàng)建具有這些被模仿的Fieldbus功能塊操作的仿真系統(tǒng),就像它們已經(jīng)初始被配置在被仿真的控制器中,而不是在控制器之外的現(xiàn)場(chǎng)器件中。另外,仿真系統(tǒng)可以禁止?fàn)顟B(tài)信號(hào)或以這樣一種方式進(jìn)行操作,即忽略仿真系統(tǒng)內(nèi)的被創(chuàng)建的輸入/輸出塊的狀態(tài)信號(hào),以便阻止該狀態(tài)信號(hào)導(dǎo)致操作員可見(jiàn)的錯(cuò)誤。
而且,已知控制模塊的冗余能力可被用來(lái)在一段非常短的時(shí)間期間捕獲或存儲(chǔ)仿真系統(tǒng)的瞬像。特別是,仿真系統(tǒng)可以使用由處理控制系統(tǒng)內(nèi)的每個(gè)控制塊提供的冗余輸出,而不是更新一個(gè)冗余塊,以邏輯方式將被更新的參數(shù)簡(jiǎn)單存儲(chǔ)在仿真工作站內(nèi)的存儲(chǔ)器中。當(dāng)期望仿真結(jié)點(diǎn)的瞬像時(shí),仿真系統(tǒng)可以停止仿真模塊的操作一段時(shí)間,在這段時(shí)間可以將仿真存儲(chǔ)器內(nèi)的冗余數(shù)據(jù)復(fù)制到瞬像文件或某種緩沖器文件中。在這種快速的復(fù)制過(guò)程之后,可以重新起動(dòng)仿真系統(tǒng)。通常,該復(fù)制過(guò)程太短,以致仿真操作員注意到在仿真系統(tǒng)的操作中沒(méi)有中斷。這種處理使仿真操作員能夠在一個(gè)特定和單個(gè)時(shí)間獲取一個(gè)或多個(gè)仿真結(jié)點(diǎn)的瞬像,而不必嚴(yán)重地中斷仿真系統(tǒng)。
圖1是具有多結(jié)點(diǎn)和仿真系統(tǒng)的典型處理控制網(wǎng)絡(luò)的方框圖,所述仿真系統(tǒng)用于創(chuàng)建和執(zhí)行一個(gè)或多個(gè)結(jié)點(diǎn)的仿真;圖2是解釋由仿真操作員使用的仿真創(chuàng)建和控制屏幕顯示;圖3是解釋創(chuàng)建處理控制系統(tǒng)的單個(gè)控制器結(jié)點(diǎn)的仿真的命令的屏幕顯示;圖4是解釋為處理控制系統(tǒng)的單個(gè)控制器結(jié)點(diǎn)創(chuàng)建的仿真的屏幕顯示;圖5是解釋在仿真內(nèi)被轉(zhuǎn)換成模塊參考的一組外部參考參數(shù)的屏幕顯示;圖6是解釋被創(chuàng)建用來(lái)保持所創(chuàng)建的仿真的輸入/輸出參考的容器或參考參數(shù)模塊的屏幕顯示;圖7是解釋在捕獲仿真系統(tǒng)的瞬像時(shí)被仿真操作員使用的瞬像捕獲屏幕的屏幕顯示;以及圖8是解釋在將仿真系統(tǒng)恢復(fù)成先前捕獲的瞬像時(shí)由仿真操作員使用的恢復(fù)屏幕的屏幕顯示。
具體實(shí)施例方式
現(xiàn)在參考圖1,分布式處理控制系統(tǒng)10包括一個(gè)或多個(gè)結(jié)點(diǎn)12、14、16、18和20。在圖1的處理控制系統(tǒng)10的實(shí)例中,每個(gè)結(jié)點(diǎn)12、14和16包括通過(guò)輸入/輸出(I/O)裝置24連接到一個(gè)或多個(gè)現(xiàn)場(chǎng)器件22和23的處理控制器12a、14a、16a,該輸入/輸出(I/O)裝置可以是例如Fieldbus接口、HART接口等??刂破?2a、14a和16a通過(guò)數(shù)據(jù)總線30也被連接到結(jié)點(diǎn)18和20中的一個(gè)或多個(gè)主機(jī)或操作員工作站18a和20a,所述數(shù)據(jù)總線可以是例如以太網(wǎng)鏈接。如果期望的話,控制器結(jié)點(diǎn)12、14和16可以包括冗余控制器12R、14R和16R,用來(lái)以所熟知的方式(例如,典型地使用專用通信鏈接)跟蹤控制器12a、14a和16a的狀態(tài),并且當(dāng)所連接的主控制12a、14a和16a的一個(gè)失敗時(shí)接管作為主控制器。同時(shí),控制器結(jié)點(diǎn)12、14、16以及與之連接的輸入/輸出和現(xiàn)場(chǎng)器件22、23和24典型地位于下部,并且有時(shí)分布于較差的工廠環(huán)境中,控制器工作站結(jié)點(diǎn)18和20通常位于控制空間或其它較好的環(huán)境,容易由控制器個(gè)人訪問(wèn)。
一般來(lái)講,結(jié)點(diǎn)18和20的工作站18a和20a可以被用來(lái)存儲(chǔ)和執(zhí)行用于配置和監(jiān)視處理控制系統(tǒng)10的應(yīng)用程序。而且,數(shù)據(jù)庫(kù)32可以連接到數(shù)據(jù)總線30,并且作為數(shù)據(jù)歷史或配置數(shù)據(jù)庫(kù)來(lái)運(yùn)行,該配置數(shù)據(jù)庫(kù)存儲(chǔ)被下載到結(jié)點(diǎn)12、14、16、18和20并在其中存儲(chǔ)的處理控制系統(tǒng)10的當(dāng)前配置。
眾所周知,每個(gè)控制器12a、14a和16a,例如是由Fisher-Rosemount系統(tǒng)股份有限公司銷售的DeltaV控制器,存儲(chǔ)和執(zhí)行控制器應(yīng)用程序,該應(yīng)用程序使用大量不同的獨(dú)立執(zhí)行的控制模塊或塊來(lái)實(shí)現(xiàn)控制策略。每個(gè)控制模塊可以由通常被稱作功能塊的模塊來(lái)組成,其中每個(gè)功能塊是整個(gè)控制例行程序的一部分或子程序,并且與其它功能塊聯(lián)合(經(jīng)由稱作鏈路的通信)操作,以便實(shí)現(xiàn)處理控制系統(tǒng)10內(nèi)的處理控制環(huán)路。為大家所熟知的,功能塊典型地執(zhí)行一種例如與發(fā)送器、傳感器或其它處理參數(shù)測(cè)量器件相關(guān)的輸入功能,例如與執(zhí)行PID、模糊邏輯等的控制程序有關(guān)的控制功能、或控制一些諸如閥門(mén)的器件的操作的輸出功能,以便執(zhí)行一些處理控制系統(tǒng)10內(nèi)的物理功能。當(dāng)然,還存在混合和其它類型的功能塊。然而,盡管Fieldbus協(xié)議和DeltaV系統(tǒng)協(xié)議使用以面向?qū)ο缶幊虆f(xié)議設(shè)計(jì)和執(zhí)行的控制模塊和功能塊,控制模塊也可以使用任何期望的控制編程方案來(lái)設(shè)計(jì),例如包括序列功能塊、階梯邏輯等,并且并不限于使用功能塊或任何其它特定編程技術(shù)來(lái)設(shè)計(jì)。典型地,存儲(chǔ)在處理控制結(jié)點(diǎn)12、14和16內(nèi)的控制模塊的配置被存儲(chǔ)在配置數(shù)據(jù)庫(kù)32中,該配置數(shù)據(jù)庫(kù)對(duì)于工作站18a和20a內(nèi)的應(yīng)用程序是可存取的。
在圖1所示的系統(tǒng)中,連接到控制器12a、14a和16a的現(xiàn)場(chǎng)器件22和23可以是標(biāo)準(zhǔn)4-20ma器件,或可以是諸如HART、Profibus、或Fieldbus現(xiàn)場(chǎng)器件的智能現(xiàn)場(chǎng)器件,該智能現(xiàn)場(chǎng)器件包括處理器和存儲(chǔ)器。一些這樣的器件,諸如Fieldbus現(xiàn)場(chǎng)器件(在圖1中標(biāo)記為標(biāo)號(hào)23)可以存儲(chǔ)和執(zhí)行模塊或子模塊,例如與控制器12a、14a和16a中執(zhí)行的控制策略相關(guān)的功能塊。圖1中示出的功能塊26和27被放置在兩個(gè)不同的Fieldbus現(xiàn)場(chǎng)器件23中?,F(xiàn)場(chǎng)器件23中的功能塊26和27可以與控制器12a、14a和16a內(nèi)的模塊一起執(zhí)行,以便實(shí)現(xiàn)眾所周知的處理控制。當(dāng)然,現(xiàn)場(chǎng)器件22、23可以是任何類型的器件,諸如傳感器、閥門(mén)、發(fā)送器、定位器等,I/O器件24可以是符合任何期望通信或控制器協(xié)議的任何類型的I/O器件,例如HART、Fieldbus、Profibus等。
在圖1的處理控制系統(tǒng)10中,工作站20a包括一個(gè)仿真系統(tǒng)或應(yīng)用程序50,該應(yīng)用程序被用來(lái)對(duì)于處理控制系統(tǒng)10的一個(gè)或多個(gè)結(jié)點(diǎn),創(chuàng)建和執(zhí)行一個(gè)或多個(gè)仿真,這里被稱作仿真實(shí)例。一般來(lái)講,當(dāng)執(zhí)行時(shí),仿真應(yīng)用程序50通過(guò)從配置數(shù)據(jù)庫(kù)復(fù)制結(jié)點(diǎn)內(nèi)的每個(gè)控制模塊作為仿真模塊,對(duì)于一個(gè)或多個(gè)指定的結(jié)點(diǎn)創(chuàng)建仿真實(shí)例,并且在仿真工作站20a內(nèi)存儲(chǔ)這些仿真模塊。如果期望的話,仿真應(yīng)用程序50可以在多個(gè)工作站上分布仿真實(shí)例。然而,為了討論,假定在單個(gè)仿真工作站20a上創(chuàng)建和執(zhí)行所有的仿真模塊。在這種創(chuàng)建處理期間,仿真應(yīng)用程序50在仿真實(shí)例中對(duì)于每個(gè)結(jié)點(diǎn)創(chuàng)建一個(gè)參考參數(shù)模塊,其中每個(gè)參考參數(shù)模塊包括每個(gè)輸入/輸出參考的參考參數(shù),所述輸入/輸出參考與由那個(gè)結(jié)點(diǎn)內(nèi)的任意仿真模塊送入和送出指定結(jié)點(diǎn)的信號(hào)相關(guān)。一旦對(duì)于一個(gè)或多個(gè)結(jié)點(diǎn)創(chuàng)建了仿真實(shí)例,則可以為了任何期望的目的,例如為了測(cè)試或培訓(xùn)目的,來(lái)執(zhí)行或運(yùn)行該仿真實(shí)例。
如圖1所示,仿真應(yīng)用程序50(存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)器52中并且適于在主工作站20a的微處理器54上執(zhí)行)包括應(yīng)用程序、例行程序或其子程序56-58。第一例行程序56與創(chuàng)建和操作與仿真工作站20a連接的用戶顯示器60有關(guān),使仿真操作員創(chuàng)建、觀看和控制處理控制系統(tǒng)10的一個(gè)或多個(gè)結(jié)點(diǎn)的仿真實(shí)例。當(dāng)執(zhí)行第二例行程序57時(shí),第二例行程序通過(guò)為與每個(gè)指定結(jié)點(diǎn)相關(guān)的每個(gè)模塊(可以包括單個(gè)或多個(gè)功能塊)創(chuàng)建可通信的互相連接的仿真模塊,以及然后通過(guò)為每個(gè)結(jié)點(diǎn)自動(dòng)創(chuàng)建參考參數(shù)模塊以便存儲(chǔ)這些結(jié)點(diǎn)的輸入或輸出,來(lái)實(shí)際上創(chuàng)建一個(gè)或多個(gè)指定結(jié)點(diǎn)的仿真實(shí)例。一旦第三例行程序58被創(chuàng)建,則可被用來(lái)起動(dòng)、停止、重新配置、捕獲瞬像、恢復(fù)或者相反控制仿真實(shí)例。當(dāng)然,例行程序57和58與用戶顯示例行程序56集成,使仿真操作員采取不同的步驟創(chuàng)建、控制和查看對(duì)于處理控制系統(tǒng)10的仿真實(shí)例。
在處理控制系統(tǒng)10的運(yùn)行期間(即,在處理控制配置已經(jīng)被創(chuàng)建和下載到處理控制系統(tǒng)10并且從而到每個(gè)不同的結(jié)點(diǎn)之后),但是先于任何仿真實(shí)例的創(chuàng)建,操作員可以訪問(wèn)仿真應(yīng)用程序50。在那時(shí),顯示例行程序56可以呈現(xiàn)一個(gè)控制或仿真顯示屏幕70給操作員,如圖2所示。圖2的仿真顯示屏70例子具有多個(gè)不同的區(qū),包括在顯示屏70的左手邊的結(jié)點(diǎn)指示區(qū)72,和在顯示屏70的右手邊的信息區(qū)74。
結(jié)點(diǎn)指示區(qū)72可以指示與處理控制系統(tǒng)10的每個(gè)結(jié)點(diǎn)相關(guān)的結(jié)點(diǎn)和器件、例行程序等,并且能夠使仿真操作員以任何期望的方式,例如使用鼠標(biāo)來(lái)選擇這些結(jié)點(diǎn)的一個(gè)或多個(gè)或者一個(gè)結(jié)點(diǎn)之內(nèi)的器件,如控制器。圖2的結(jié)點(diǎn)指示區(qū)72說(shuō)明了樹(shù)狀結(jié)構(gòu),顯示了存儲(chǔ)在處理10的配置數(shù)據(jù)庫(kù)32中的不同的處理控制配置元素。當(dāng)然,可以以任何其它期望的方式來(lái)說(shuō)明處理控制系統(tǒng)10的結(jié)點(diǎn)或其它元素。另一方面,信息區(qū)74給仿真操作員提供結(jié)點(diǎn)指示區(qū)內(nèi)的有關(guān)選擇的元素的信息,例如結(jié)點(diǎn)指示區(qū)72中選擇的元素內(nèi)的子元素的圖形或文本描述。如果愿意,可以通過(guò)控制屏幕70上的下拉或彈出菜單來(lái)訪問(wèn)成組的命令,這些命令可被用來(lái)產(chǎn)生處理控制系統(tǒng)10的一個(gè)或多個(gè)結(jié)點(diǎn)的仿真實(shí)例,或運(yùn)行、控制和查看處理控制系統(tǒng)10的一個(gè)或多個(gè)結(jié)點(diǎn)的仿真實(shí)例。如果愿意,可以提供滑動(dòng)條來(lái)指定有關(guān)實(shí)際處理控制系統(tǒng)10的執(zhí)行速度或周期的仿真速度?;瑒?dòng)條可以包括一個(gè)停止位置和使仿真實(shí)例的執(zhí)行速度比實(shí)際處理控制系統(tǒng)10的執(zhí)行速度慢或快的位置。這個(gè)滑動(dòng)條也可以包括一個(gè)暫停和播放或前進(jìn)按鈕,使仿真操作員能夠快速地停止和起動(dòng)仿真實(shí)例。
圖2具體描述了結(jié)點(diǎn)指示區(qū)72中的樹(shù)狀結(jié)構(gòu),該結(jié)點(diǎn)指示區(qū)除其它事物外還包括控制策略80,其中控制策略包括一個(gè)與其相關(guān)的Area_A,該Area_A在其下面包括一組模塊Loopl-Loop6、TEST_All、TEST_AO1、TEST_DI1和TEST_DO1模塊。因?yàn)樵趫D2中選擇了Area_A,所以信息區(qū)域74示出了與Area_A相關(guān)的不同環(huán)路和其它元素,只要選擇Area_A,就會(huì)在信息區(qū)域中發(fā)生隨后的動(dòng)作。同樣,圖2的樹(shù)狀結(jié)構(gòu)包含一個(gè)控制網(wǎng)絡(luò)84,該控制網(wǎng)絡(luò)除其它事物外還包括3個(gè)控制器N_Solv_1、Sol_Man_1和Ctlr1。Ctlr1包含分配的模塊、I/O卡C01、C03、C04以及分配的遠(yuǎn)程I/O。當(dāng)然,其它入口、模塊等都與N_Solv_1和Sol_Man_1控制器相關(guān),但在圖2的樹(shù)狀結(jié)構(gòu)中未擴(kuò)展出來(lái)。
通常來(lái)說(shuō),工作站20a的仿真操作員可以使用顯示屏70上的結(jié)點(diǎn)指示區(qū)72來(lái)選擇一個(gè)或多個(gè)結(jié)點(diǎn),例如控制器,以便發(fā)生后續(xù)動(dòng)作。因此,仿真操作員可以選擇一個(gè)或多個(gè)結(jié)點(diǎn)(例如控制器)來(lái)創(chuàng)建和執(zhí)行仿真實(shí)例。例如,當(dāng)仿真操作員僅選擇一個(gè)結(jié)點(diǎn),然后例如通過(guò)下拉菜單來(lái)創(chuàng)建一個(gè)仿真實(shí)例時(shí),上述的例行程序57將對(duì)于那個(gè)單個(gè)結(jié)點(diǎn)創(chuàng)建一個(gè)仿真實(shí)例。同樣,如果仿真操作員選擇了3個(gè)結(jié)點(diǎn)(例如圖1中的結(jié)點(diǎn)12、14和16的每一個(gè))或者顯示屏70的結(jié)點(diǎn)指示區(qū)72上的整個(gè)處理控制系統(tǒng),然后選擇創(chuàng)建仿真命令,例行程序57創(chuàng)建一個(gè)這樣的仿真實(shí)例,它包含這三個(gè)結(jié)點(diǎn)的每個(gè)結(jié)點(diǎn)或整個(gè)系統(tǒng)之內(nèi)的模塊。以這種方式,仿真操作員可以簡(jiǎn)單地選擇數(shù)字和處理控制系統(tǒng)10中的特定結(jié)點(diǎn),以便創(chuàng)建和執(zhí)行一個(gè)仿真實(shí)例,從而能夠在同一時(shí)刻對(duì)于任何數(shù)量的指定結(jié)點(diǎn)創(chuàng)建一個(gè)仿真實(shí)例。而且,仿真操作員在仿真實(shí)例運(yùn)行期間可以利用結(jié)點(diǎn)指示區(qū)72選擇不同的結(jié)點(diǎn)來(lái)觀察。
當(dāng)仿真操作員選擇創(chuàng)建仿真命令時(shí),算法或例行程序57啟動(dòng),將在指定結(jié)點(diǎn)上所配置的處理控制網(wǎng)絡(luò)轉(zhuǎn)換成仿真實(shí)例。為了執(zhí)行該功能,創(chuàng)建仿真例行程序57訪問(wèn)配置數(shù)據(jù)庫(kù)32,并且為存儲(chǔ)在配置數(shù)據(jù)庫(kù)32中的每個(gè)指定結(jié)點(diǎn)的模塊和塊復(fù)制(或創(chuàng)建)一個(gè)仿真塊。如果期望的話,創(chuàng)建仿真例行程序57可以逐結(jié)點(diǎn)地進(jìn)行上述處理。作為該處理的一部分,創(chuàng)建仿真例行程序57將命令發(fā)送給數(shù)據(jù)庫(kù)32,以便獲取一個(gè)結(jié)點(diǎn)的模塊、功能塊等的一個(gè)副本。所得到的副本存儲(chǔ)于仿真工作站20a中,并且最好通過(guò)指定仿真輸入被用于輸入塊而被轉(zhuǎn)換成一個(gè)仿真模塊。
當(dāng)在仿真工作站20a中逐結(jié)點(diǎn)地創(chuàng)建仿真模塊時(shí),通過(guò)如在實(shí)際控制模塊中指定的通信鏈路將仿真模塊可通信地連接在一起。然而,作為這種創(chuàng)建處理的一部分的創(chuàng)建仿真例行程序57使用例如與實(shí)際輸入和輸出相關(guān)的路徑名稱,自動(dòng)識(shí)別指定結(jié)點(diǎn)之外的每個(gè)控制塊的輸入和輸出。為了執(zhí)行該功能,創(chuàng)建仿真例行程序57可以將創(chuàng)建的仿真塊的輸入和輸出的源或目的的路徑名稱和其它指示,與所仿真的結(jié)點(diǎn)的路徑名稱進(jìn)行比較,來(lái)確定輸入或輸出源是位于指定結(jié)點(diǎn)(例如對(duì)于仿真正在被創(chuàng)建的結(jié)點(diǎn))的內(nèi)部還是外部。如果通信信號(hào)的源或目的位于指定結(jié)點(diǎn)之外,創(chuàng)建仿真例行程序57自動(dòng)創(chuàng)建一個(gè)到仿真系統(tǒng)內(nèi)的參考參數(shù)模塊(已由例行程序57創(chuàng)建)的鏈路,以便用作輸入或輸出,并且在諸如仿真工作站20中的仿真系統(tǒng)中存儲(chǔ)該模塊。如所理解的,該參考參數(shù)模塊被用來(lái)在仿真系統(tǒng)中為實(shí)際上不存在的仿真實(shí)例提供一個(gè)鏈接或一定輸入和輸出的目的,例如到現(xiàn)場(chǎng)器件的鏈接等。
圖3舉例說(shuō)明了含有樹(shù)狀結(jié)構(gòu)92的屏幕顯示90,其中已經(jīng)選擇了一個(gè)單一控制器結(jié)點(diǎn)94(稱為Sol_Man_1)。仿真操作員已調(diào)出一個(gè)彈出菜單96(例如,通過(guò)鼠標(biāo)右擊已選擇的控制器94),以便獲取一個(gè)“仿真轉(zhuǎn)換”命令。顯示屏90的右手邊顯示了已選擇的控制器94中的模塊。選擇窗口96中的仿真轉(zhuǎn)換命令調(diào)用應(yīng)用程序57,然后如上所述的對(duì)于所選擇的控制器結(jié)點(diǎn)94創(chuàng)建一個(gè)仿真。
特別是,例行程序57對(duì)于每個(gè)指定結(jié)點(diǎn)94內(nèi)的每個(gè)控制模塊創(chuàng)建仿真模塊或塊,隨之一起創(chuàng)建參考參數(shù)模塊用于存儲(chǔ)至結(jié)點(diǎn)的輸入和輸出。圖4舉例說(shuō)明這樣的仿真實(shí)例,圖4描述了一個(gè)顯示屏100,該顯示屏示出了仿真實(shí)例創(chuàng)建后對(duì)于已選擇的控制器94的仿真實(shí)例。如顯示屏100的右手邊所示,該對(duì)于控制器結(jié)點(diǎn)94的仿真實(shí)例包括仿真模塊Loop1-Loop6(從存儲(chǔ)于配置數(shù)據(jù)庫(kù)32中的結(jié)點(diǎn)94的實(shí)際模塊Loop1-Loop6創(chuàng)建該仿真模塊)。然而,作為轉(zhuǎn)換處理的一部分,應(yīng)用程序57已創(chuàng)建一個(gè)附加模塊102(名為M_Ctlr1),此模塊作為一個(gè)容器模塊來(lái)保存控制器結(jié)點(diǎn)94的輸入和輸出參考。如上所述,在為一個(gè)結(jié)點(diǎn)創(chuàng)建已仿真的控制塊和模塊后,例行程序57確定已創(chuàng)建的仿真模塊之外的任意輸入/輸出的存在,例如對(duì)于來(lái)自不包括在仿真實(shí)例內(nèi)的其它結(jié)點(diǎn)的現(xiàn)場(chǎng)器件或模塊的塊或信號(hào)的參考。一旦檢測(cè)到這樣的輸入/輸出參考,例行程序57對(duì)于這些參考自動(dòng)地創(chuàng)建一個(gè)參考模塊,例如模塊102,從而創(chuàng)建一個(gè)仿真系統(tǒng)內(nèi)的模塊,負(fù)責(zé)對(duì)于發(fā)送至或來(lái)自不是仿真的一部分的硬件,例如現(xiàn)場(chǎng)器件的信號(hào)提供或接受仿真實(shí)例的輸入/輸出。
圖5描述了一個(gè)屏顯示105,該屏顯示示出了一個(gè)被轉(zhuǎn)換的功能塊108(具有一個(gè)已仿真的輸入)和一組外部參考110a-110f,每個(gè)所述外部參考指定了一個(gè)HART器件輸入或輸出,(因而一個(gè)外部參考)實(shí)際上指向?qū)τ诮Y(jié)點(diǎn)而創(chuàng)建的用來(lái)保存這些外部參考的一個(gè)外部參考模塊。參考框110a已經(jīng)被選擇并且其屬性被顯示在彈出窗口112中,為此參考指定路徑名稱為M_Sol_Man_1控制器結(jié)點(diǎn)(已仿真的結(jié)點(diǎn))中的C01CH01HART_PV模塊。同樣,圖6描述了一個(gè)屏顯示116,該屏顯示解釋C01CH01HART_PV模塊為包括一組已在菜單框118中命名的外部參考參數(shù)。從這些外部參考參數(shù)中選擇的一個(gè)參數(shù)(即HART_PV參數(shù))的屬性顯示在彈出窗口120中。當(dāng)然,對(duì)于與圖4的參考參數(shù)模塊102相關(guān)或存儲(chǔ)在其中的每個(gè)其它參考參數(shù)保存相似的屬性。
因而,正如所理解的,作為仿真轉(zhuǎn)換的一部分,應(yīng)用程序57創(chuàng)建外部參考參數(shù)模塊,該模塊存儲(chǔ)與每個(gè)仿真塊相關(guān)的外部參考的值和其它屬性。盡管此處所描述的應(yīng)用程序57對(duì)于每個(gè)指定的控制器結(jié)點(diǎn)創(chuàng)建單個(gè)外部參考模塊,如果愿意,外部參考參數(shù)模塊可以或多或少地保存外部參考。因此,例如,可以對(duì)于每個(gè)外部參考創(chuàng)建一個(gè)外部參考參數(shù)模塊等。此操作也避免了仿真操作員必須為仿真系統(tǒng)人工指定或創(chuàng)建外部參考,這在以前既費(fèi)時(shí)又總出現(xiàn)錯(cuò)誤。此外,因?yàn)榭梢酝ㄟ^(guò)這些外部參考模塊來(lái)處理來(lái)自仿真實(shí)例的輸入和輸出,所以這些模塊的創(chuàng)建使運(yùn)行一個(gè)仿真變得更加容易,其中這些外部參考模塊由于它們的面向?qū)ο蟮膶傩远菀妆辉L問(wèn)和改變。
盡管對(duì)于創(chuàng)建仿真例行程序57來(lái)說(shuō)識(shí)別和復(fù)制與控制器結(jié)點(diǎn)相關(guān)的控制塊和其它模塊是一件相對(duì)簡(jiǎn)單的事情,有這樣的情況出現(xiàn)一個(gè)結(jié)點(diǎn)的某些控制或其它功能塊或模塊可以存儲(chǔ)于此結(jié)點(diǎn)的控制器中且在其外部運(yùn)行。例如,F(xiàn)ieldbus現(xiàn)場(chǎng)器件能夠存儲(chǔ)和執(zhí)行控制塊和其它的與處理控制系統(tǒng)的結(jié)點(diǎn)相關(guān)的模塊。在這種情況下,創(chuàng)建仿真例行程序57可以首先通過(guò)在存儲(chǔ)于配置數(shù)據(jù)庫(kù)32中的配置方案中查找塊,來(lái)識(shí)別在結(jié)點(diǎn)內(nèi)但在控制器外的控制塊或其它模塊的存在。盡管這里描述的應(yīng)用程序57專門(mén)查找Fieldbus功能塊,也可能存在能夠在結(jié)點(diǎn)的控制器外運(yùn)行的其它類型的功能塊,并且應(yīng)用程序57也可以查找這些類型的塊。當(dāng)然,執(zhí)行這些查找的方式將依賴于結(jié)點(diǎn)的控制器中所使用的編程和文檔的類型。
一旦識(shí)別出功能塊或與結(jié)點(diǎn)相關(guān)的模塊存在但在那個(gè)結(jié)點(diǎn)的控制器之外,則創(chuàng)建仿真例行程序57可以在仿真工作站20a中復(fù)制那個(gè)塊或創(chuàng)建一個(gè)模仿那個(gè)塊的新的塊。例如,為了復(fù)制塊,創(chuàng)建仿真應(yīng)用程序57可以從配置數(shù)據(jù)庫(kù)或從實(shí)際存儲(chǔ)該塊的現(xiàn)場(chǎng)器件訪問(wèn)該塊。如果現(xiàn)場(chǎng)器件或其它器件內(nèi)的功能塊與仿真中使用的控制器塊不用相同的協(xié)議,就像通常實(shí)例一樣,那么,應(yīng)用程序57可以用控制器協(xié)議創(chuàng)建仿真塊,該控制器協(xié)議最佳模仿現(xiàn)場(chǎng)器件內(nèi)的功能塊的功能性。這種功能可以在或不在仿真操作員的輔助下執(zhí)行,該仿真操作員可被詢問(wèn)來(lái)對(duì)于現(xiàn)場(chǎng)器件中的功能塊指定控制器協(xié)議塊。作為替換,可以存儲(chǔ)并使用指定不同協(xié)議的塊之間的轉(zhuǎn)換的包括參數(shù)轉(zhuǎn)換的表格或列表,在控制器協(xié)議內(nèi)創(chuàng)建模仿現(xiàn)場(chǎng)器件內(nèi)的實(shí)際功能塊的操作的功能塊。
在對(duì)于例如Fieldbus功能塊的外部功能塊在控制器協(xié)議內(nèi)創(chuàng)建功能塊之后,創(chuàng)建仿真例行程序57然后可以以控制器協(xié)議塊或模塊執(zhí)行的相同方式將那個(gè)功能塊轉(zhuǎn)換成仿真塊。
當(dāng)前仿真中出現(xiàn)的另一個(gè)問(wèn)題是處理來(lái)自諸如輸入和輸出功能塊的源的輸入/輸出錯(cuò)誤指示的問(wèn)題,這些源不再連接到控制系統(tǒng)內(nèi)的實(shí)際器件或源,比如一個(gè)現(xiàn)場(chǎng)器件,或者沒(méi)有仿真模式,因而呈現(xiàn)為提供錯(cuò)誤或無(wú)效的數(shù)據(jù)或者導(dǎo)致診斷錯(cuò)誤。在某些情況下,產(chǎn)生這些信號(hào)的塊或源沒(méi)有被設(shè)置用來(lái)仿真,因此來(lái)自這些塊的信號(hào)導(dǎo)致產(chǎn)生錯(cuò)誤的I/O消息。而且,用對(duì)于輸入和輸出的參考參數(shù)創(chuàng)建仿真實(shí)例導(dǎo)致這樣一種情況,即,I/O故障可能被仿真控制模塊或塊檢測(cè)到,即使實(shí)際上這樣的I/O故障并不存在(因?yàn)闆](méi)有發(fā)生真正的I/O)。根據(jù)發(fā)送到或來(lái)自仿真中這些塊的數(shù)據(jù)的量,在仿真實(shí)例運(yùn)行期間,可能檢測(cè)到大量的錯(cuò)誤消息,并且這些錯(cuò)誤消息可被發(fā)送給仿真操作員作為輸入/輸出或診斷錯(cuò)誤指示。在仿真期間處理這些虛假的錯(cuò)誤消息會(huì)變得混亂和冗長(zhǎng)乏味。
為了緩解這個(gè)問(wèn)題,創(chuàng)建仿真應(yīng)用程序57相對(duì)于實(shí)際處理控制系統(tǒng)改變?cè)诜抡鎸?shí)例中處理輸入/輸出信號(hào)的方法。特別是,創(chuàng)建仿真程序57禁止對(duì)例如在模擬輸出(AO)和數(shù)字或離散輸出(DO)塊中以及在直接參考I/O通道的外部參數(shù)中,比如在上述所討論的外部參考參數(shù)模塊中的外部參數(shù)中壞的I/O的指示或檢測(cè)。為了執(zhí)行此操作,創(chuàng)建仿真應(yīng)用程序57可故意禁止這些I/O信號(hào)的狀態(tài)指示,例如,如果輸出模塊被指定在仿真工作站20a上運(yùn)行則通過(guò)不設(shè)定用于I/O錯(cuò)誤檢測(cè)或仿真的位。當(dāng)禁止這些狀態(tài)或錯(cuò)誤指示信號(hào)時(shí),盡管I/O正常,也將出現(xiàn)仿真操作員接口,這將使仿真操作員培訓(xùn)在不受虛假的錯(cuò)誤I/O指示信號(hào)的干擾下被執(zhí)行。當(dāng)然,創(chuàng)建仿真例行程序57在轉(zhuǎn)換過(guò)程期間可以在仿真系統(tǒng)內(nèi)執(zhí)行禁止來(lái)自任何其它塊或源的I/O錯(cuò)誤檢測(cè),因?yàn)檫@些數(shù)據(jù)源沒(méi)有被連接到實(shí)際的操作器件,比如現(xiàn)場(chǎng)器件,這些塊或源可能有壞的或無(wú)效的I/O數(shù)據(jù)。
在為一個(gè)或多個(gè)結(jié)點(diǎn)創(chuàng)建一個(gè)仿真實(shí)例后,可在仿真工作站20a中執(zhí)行此仿真實(shí)例用于培訓(xùn)或測(cè)試目的。在某些情況下,經(jīng)由為每個(gè)結(jié)點(diǎn)的輸入/輸出所創(chuàng)建的參考,使用諸如OPC的任何已知技術(shù),將仿真實(shí)例連接到一個(gè)標(biāo)準(zhǔn)仿真接口,例如HYSIS接口。當(dāng)然,如果愿意,創(chuàng)建仿真例行程序57可提供自己的接口比如API(應(yīng)用程序接口),使仿真操作員以任何想要的方式來(lái)指定或改變到仿真實(shí)例的輸入和輸出。
正如所理解的,可以使用單一命令通過(guò)單一接口來(lái)執(zhí)行仿真實(shí)例的初始化、和速度的控制以及仿真實(shí)例內(nèi)的信息視圖的命令,即使不止一個(gè)結(jié)點(diǎn)被影響。此視圖使仿真操作員發(fā)布單一請(qǐng)求,尋址仿真中涉及的所有結(jié)點(diǎn)。通過(guò)經(jīng)由顯示屏的結(jié)點(diǎn)指示區(qū)來(lái)選擇不同的結(jié)點(diǎn),可以影響和改變視圖。
在大型培訓(xùn)系統(tǒng)中通常需要在培訓(xùn)會(huì)話中一個(gè)先前時(shí)間提供重新起動(dòng)處理控制仿真的能力。而且也需要及時(shí)重放在從前一點(diǎn)開(kāi)始的仿真中采取的操作員動(dòng)作。這些功能可以通過(guò)應(yīng)用程序58來(lái)執(zhí)行,應(yīng)用程序58可以,例如通過(guò)圖2的顯示屏70上的下拉菜單來(lái)起動(dòng)。
在過(guò)去,捕獲正在運(yùn)行的仿真的瞬像比較困難,因?yàn)樗ǔP枰峁┮粋€(gè)從仿真實(shí)例內(nèi)的不同功能塊或模塊復(fù)制每個(gè)期望參數(shù)的請(qǐng)求。然而,因?yàn)檫@些請(qǐng)求必須單獨(dú)發(fā)送到不同的模塊,并且要花費(fèi)有限時(shí)間來(lái)執(zhí)行,因此,在不停止仿真一段擴(kuò)展的時(shí)間期間來(lái)允許這種復(fù)制發(fā)生的情況下,在同一實(shí)例中復(fù)制仿真系統(tǒng)的所有模塊的狀態(tài)實(shí)際上是不可能的。在具有許多控制模塊的大型仿真系統(tǒng)中,這種復(fù)制處理可能導(dǎo)致相當(dāng)?shù)难舆t,從而導(dǎo)致仿真中明顯的中斷。
為了加速捕獲瞬像的處理,已經(jīng)發(fā)現(xiàn)可以使用仿真系統(tǒng)內(nèi)的模塊的冗余能力。具體地,眾所周知,許多控制模塊,諸如在圖1的控制器12a、14a和16a中執(zhí)行的控制模塊和塊包括冗余能力。更具體地,這些控制模塊通常被創(chuàng)建用來(lái)定期或變化地將模塊的參數(shù)值等發(fā)送到位于冗余控制器12R、14R和16R中的冗余控制模塊。冗余控制模塊以這樣一種方式來(lái)更新它們自己,即冗余控制器12R、14R和16R在任何時(shí)候都可以在一旦控制器12a、14a或16a中的單獨(dú)一個(gè)失敗時(shí)接管處理控制系統(tǒng)的主要操作。
在創(chuàng)建仿真實(shí)例的仿真模塊的處理期間,創(chuàng)建仿真應(yīng)用程序57可以將每個(gè)由仿真模塊產(chǎn)生的冗余信號(hào)連接到一個(gè)冗余模塊或一個(gè)仿真計(jì)算機(jī)20a內(nèi)的特定存儲(chǔ)器地址,并且使這些信號(hào)被寫(xiě)入和保存在一個(gè)已知的存儲(chǔ)器位置。這樣,創(chuàng)建仿真應(yīng)用程序57不是對(duì)仿真實(shí)例內(nèi)的每個(gè)模塊創(chuàng)建冗余控制模塊,而僅需要將由仿真模塊產(chǎn)生的冗余信號(hào)連接到特定和專用的存儲(chǔ)器位置,該位置可以或可以不是分離模塊內(nèi)的存儲(chǔ)器位置。在仿真系統(tǒng)的運(yùn)行期間,然后,捕獲在仿真模塊的正常進(jìn)程中創(chuàng)建的冗余信號(hào),并且以任何邏輯方式將這些信號(hào)內(nèi)的數(shù)據(jù)保存在一個(gè)對(duì)于以后檢索容易訪問(wèn)的存儲(chǔ)器中。之后,在仿真實(shí)例的運(yùn)行過(guò)程中的任何時(shí)間,通過(guò)將以該邏輯方式存儲(chǔ)的冗余數(shù)據(jù)復(fù)制到可由操作員訪問(wèn)的緩沖器或文件中,應(yīng)用程序58可以創(chuàng)建正在運(yùn)行的仿真的瞬像。因?yàn)橛糜谌哂鄶?shù)據(jù)的存儲(chǔ)器位置是專用的并且是在容易訪問(wèn)的存儲(chǔ)器中,因此能夠快速地執(zhí)行復(fù)制處理,該復(fù)制處理可以是塊復(fù)制,與復(fù)制存儲(chǔ)在實(shí)際仿真實(shí)例的不同模塊中的數(shù)據(jù)相比,加速了捕獲仿真系統(tǒng)瞬像所用的時(shí)間。因此,當(dāng)創(chuàng)建一個(gè)特定時(shí)間的瞬像時(shí),例行程序58僅需要在特定時(shí)間暫停仿真系統(tǒng)的運(yùn)行,將專用存儲(chǔ)器位置的內(nèi)容復(fù)制到瞬像文件,然后繼續(xù)仿真系統(tǒng)的運(yùn)行,其中復(fù)制處理通常可以非常迅速地完成。
圖7解釋了屏幕顯示130,該屏幕顯示可被仿真操作員用來(lái)在一個(gè)特定時(shí)間起動(dòng)仿真系統(tǒng)的瞬像的捕獲。如所述的,仿真操作員可以保存在一個(gè)選擇的結(jié)點(diǎn)內(nèi)系統(tǒng)的瞬像,該已選擇的結(jié)點(diǎn)是由結(jié)點(diǎn)指示區(qū)72所指定的,并且仿真操作員可以命名那個(gè)瞬像以便將來(lái)參考。當(dāng)然,對(duì)于任何具有正常冗余能力的結(jié)點(diǎn),可以在逐結(jié)點(diǎn)的基礎(chǔ)上捕獲這個(gè)瞬像。如果愿意,瞬像收集應(yīng)用程序58可以指示處理控制系統(tǒng)的每個(gè)結(jié)點(diǎn)來(lái)同時(shí)捕獲瞬像,這樣就獲取了多結(jié)點(diǎn)瞬像。
相同地,如圖8所示,通過(guò)起動(dòng)恢復(fù)應(yīng)用程序(例行程序58的一部分)并選擇一個(gè)要恢復(fù)的系統(tǒng)的先前瞬像,仿真操作員可以將仿真系統(tǒng)恢復(fù)到在所保存的瞬像中捕獲的先前設(shè)置。當(dāng)然,由仿真操作員選擇的恢復(fù)文件通常是先前作為瞬像保存的文件,并且該恢復(fù)應(yīng)用程序?qū)⑷〕龌謴?fù)文件中的那個(gè)數(shù)據(jù)并且以任何標(biāo)準(zhǔn)或任何已知方法將該數(shù)據(jù)寫(xiě)入仿真模塊。在該操作期間,例行程序58將暫停仿真系統(tǒng)的運(yùn)行,訪問(wèn)由仿真操作員指定的瞬像文件,將瞬像文件的內(nèi)容復(fù)制到可通信地互相連接的仿真模塊中,并且然后繼續(xù)仿真系統(tǒng)的運(yùn)行。
盡管處理請(qǐng)求來(lái)保存或恢復(fù)仿真,相關(guān)仿真的仿真模塊的執(zhí)行停止。為此,應(yīng)當(dāng)用最小的延遲完成保存和恢復(fù)。如果愿意,可以使用OPC將有關(guān)保存和恢復(fù)的命令從應(yīng)用程序/培訓(xùn)臺(tái)傳遞到結(jié)點(diǎn)。在這種情況下,相關(guān)的應(yīng)用程序負(fù)責(zé)將保存和恢復(fù)命令發(fā)布到每個(gè)感興趣的結(jié)點(diǎn)。最好是,當(dāng)保存命令起動(dòng)時(shí),仿真控制應(yīng)用程序58將在顯示器上提供一個(gè)對(duì)話,該對(duì)話允許仿真操作員指定將要保存的結(jié)點(diǎn)。而且,仿真操作員可以提供一個(gè)將用數(shù)據(jù)文件來(lái)保存的描述。相同地,當(dāng)恢復(fù)命令起動(dòng)時(shí),仿真控制應(yīng)用程序58將呈現(xiàn)一個(gè)已經(jīng)創(chuàng)建瞬像文件的時(shí)間列表以及相關(guān)的描述。當(dāng)選擇一個(gè)特定時(shí)間時(shí),仿真操作員可使用保存的數(shù)據(jù)來(lái)選擇將被恢復(fù)的結(jié)點(diǎn)。
如果愿意,仿真控制應(yīng)用程序58支持這樣一種選擇,就是允許將保存命令自動(dòng)和定期地發(fā)布到所有的結(jié)點(diǎn)。為了起動(dòng)自動(dòng)保存,仿真操作員必須使能這種特征并且指定保存的頻率和將用文件包括的描述。在MicrosoftTMWord自動(dòng)保存Tools Option之后可以模仿這種特征的對(duì)話。作為這個(gè)特征的運(yùn)行結(jié)果,仿真控制應(yīng)用程序58將定期地發(fā)布一個(gè)捕獲和保存命令到仿真實(shí)例的結(jié)點(diǎn)。為了避免中斷培訓(xùn)會(huì)話,保存命令的處理將使仿真模塊的執(zhí)行停止,從而該命令可以毫無(wú)延遲地執(zhí)行。
當(dāng)被執(zhí)行時(shí),這里所描述的任何軟件可被存儲(chǔ)在諸如磁盤(pán)、激光盤(pán)、或其它存儲(chǔ)介質(zhì)的任一計(jì)算機(jī)可讀存儲(chǔ)器中,計(jì)算機(jī)或處理器的RAM或ROM中等。同樣地,可以使用任何已知或期望的發(fā)送方法,包括例如在計(jì)算機(jī)可讀盤(pán)上或其它可傳輸?shù)挠?jì)算機(jī)存儲(chǔ)裝置或通過(guò)諸如電話線、因特網(wǎng)、萬(wàn)維網(wǎng)、任何其它局域網(wǎng)或廣域網(wǎng)等的通信信道,這些軟件都可以被發(fā)送到用戶、處理控制系統(tǒng)或操作員工作站(發(fā)送被視為與經(jīng)由可傳遞存儲(chǔ)介質(zhì)提供這樣的軟件相同或可互換)。而且,在通過(guò)通信信道發(fā)送之前,這些軟件可不用調(diào)制直接提供或可以使用任何合適的調(diào)制載波來(lái)調(diào)制。
因此,雖然已經(jīng)參考具體實(shí)例描述了本發(fā)明,所述具體實(shí)例僅為示意性而不是對(duì)本發(fā)明的限制,但是對(duì)于本領(lǐng)域的技術(shù)人員很明顯的是,在不脫離本發(fā)明的精神和范圍的情況下,可以做出所公開(kāi)實(shí)施例的修改、增加和刪除。
權(quán)利要求
1.一種獲得處理控制系統(tǒng)的仿真系統(tǒng)的瞬像的方法,所述處理控制系統(tǒng)包括具有冗余能力的模塊,該模塊創(chuàng)建將被發(fā)送到處理控制系統(tǒng)內(nèi)的冗余模塊的冗余信號(hào),所述方法包括以下步驟創(chuàng)建仿真系統(tǒng)為多個(gè)可通信地互相連接的仿真模塊,所述仿真模塊對(duì)于其參數(shù)創(chuàng)建冗余信號(hào);在仿真系統(tǒng)的運(yùn)行期間,發(fā)送仿真系統(tǒng)內(nèi)可通信地互相連接的仿真模塊的冗余信號(hào),該冗余信號(hào)將被存儲(chǔ)在仿真計(jì)算機(jī)中的專用存儲(chǔ)器位置中;以及通過(guò)下列步驟存儲(chǔ)仿真系統(tǒng)在特定時(shí)間的瞬像在所述特定時(shí)間暫停仿真系統(tǒng)的運(yùn)行;將專用存儲(chǔ)器位置的內(nèi)容復(fù)制到一個(gè)瞬像文件中;以及繼續(xù)所述仿真系統(tǒng)的運(yùn)行。
2.如權(quán)利要求1所述的獲得仿真系統(tǒng)的瞬像的方法,還包括通過(guò)暫停所述仿真系統(tǒng)的運(yùn)行、訪問(wèn)所述瞬像文件、將所述瞬像文件的內(nèi)容復(fù)制到可通信地互相連接的仿真模塊中、以及然后繼續(xù)所述仿真系統(tǒng)的運(yùn)行,將仿真系統(tǒng)恢復(fù)成先前的狀態(tài)。
3.如權(quán)利要求1所述的獲得仿真系統(tǒng)的瞬像的方法,包括步驟在仿真系統(tǒng)的運(yùn)行期間,自動(dòng)和定期地執(zhí)行與存儲(chǔ)仿真系統(tǒng)的瞬像的步驟相關(guān)的步驟。
全文摘要
一種仿真系統(tǒng),它附加到用于處理控制系統(tǒng)的一個(gè)或更多全配置的結(jié)點(diǎn)的配置數(shù)據(jù)庫(kù),并且將這些結(jié)點(diǎn)內(nèi)的模塊復(fù)制到一個(gè)或多個(gè)仿真計(jì)算機(jī)中作為仿真模塊。該仿真系統(tǒng)包括一個(gè)算法,在復(fù)制處理過(guò)程中或之后,對(duì)于被復(fù)制的每個(gè)結(jié)點(diǎn)自動(dòng)創(chuàng)建一個(gè)參考參數(shù)模塊,該模塊對(duì)于該結(jié)點(diǎn)外部的信號(hào)的每個(gè)輸入、輸出或其它參考,例如其它結(jié)點(diǎn)中的輸入/輸出塊、其它功能塊、現(xiàn)場(chǎng)器件中的發(fā)送器塊等存儲(chǔ)參考參數(shù)。在Fieldbus功能塊的情況下,仿真系統(tǒng)在仿真工作站內(nèi)以控制器結(jié)點(diǎn)的協(xié)議自動(dòng)創(chuàng)建一個(gè)功能塊,模仿Fieldbus功能塊的操作,然后創(chuàng)建具有那些模仿的Fieldbus功能塊的仿真系統(tǒng),就像它們初始就被配置在被仿真的控制器中,而不是在控制器外部的現(xiàn)場(chǎng)器件中。
文檔編號(hào)G06F17/30GK101067750SQ200710109580
公開(kāi)日2007年11月7日 申請(qǐng)日期2003年10月21日 優(yōu)先權(quán)日2002年10月21日
發(fā)明者馬克·尼克松, 特倫斯·布萊文斯, 丹尼斯·史蒂文森, 邁克爾·盧卡斯 申請(qǐng)人:費(fèi)舍-柔斯芒特系統(tǒng)股份有限公司