具有在狀態(tài)間轉(zhuǎn)換的用戶可定義的動(dòng)作的狀態(tài)機(jī)功能塊的制作方法
【專利摘要】過(guò)程工廠內(nèi)的控制系統(tǒng)、安全系統(tǒng)等可以每個(gè)都使用能夠被容易地集成到功能塊圖表編程環(huán)境中的一個(gè)或多個(gè)狀態(tài)機(jī)功能塊。這種狀態(tài)機(jī)功能塊可以包括一個(gè)或多個(gè)輸入,其可以使得由狀態(tài)機(jī)功能塊實(shí)現(xiàn)的狀態(tài)機(jī)識(shí)別下一狀態(tài)以及根據(jù)從當(dāng)前狀態(tài)轉(zhuǎn)換至下一狀態(tài)而執(zhí)行的一個(gè)或多個(gè)轉(zhuǎn)換動(dòng)作??梢曰跔顟B(tài)機(jī)的當(dāng)前狀態(tài)和下一狀態(tài)以及至少一個(gè)輸入從數(shù)據(jù)庫(kù)獲得與轉(zhuǎn)換動(dòng)作相關(guān)聯(lián)的配置數(shù)據(jù)。狀態(tài)機(jī)功能塊還可以包括基于狀態(tài)轉(zhuǎn)換而產(chǎn)生的一個(gè)或多個(gè)輸出。
【專利說(shuō)明】具有在狀態(tài)間轉(zhuǎn)換的用戶可定義的動(dòng)作的狀態(tài)機(jī)功能塊
【技術(shù)領(lǐng)域】
[0001]本公開(kāi)涉及用于過(guò)程工廠的功能塊,更具體地,涉及配置和實(shí)現(xiàn)與過(guò)程工廠相關(guān)聯(lián)的狀態(tài)機(jī)。
【背景技術(shù)】
[0002]過(guò)程控制系統(tǒng),如在化學(xué)、石油或其它過(guò)程中使用的那些,通常包括通過(guò)模擬的、數(shù)字的或組合模擬/數(shù)字總線或線路通信地耦接到至少一個(gè)主機(jī)或操作員工作站并耦接到一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備的一個(gè)或多個(gè)過(guò)程控制器??梢允抢玳y、閥定位器、開(kāi)關(guān)和發(fā)送機(jī)(例如,溫度、壓力和流速傳感器)的現(xiàn)場(chǎng)設(shè)備在過(guò)程工廠內(nèi)執(zhí)行諸如打開(kāi)或關(guān)閉閥以及測(cè)量過(guò)程參數(shù)的功能。過(guò)程控制器接收指示由現(xiàn)場(chǎng)設(shè)備所做的過(guò)程測(cè)量的信號(hào)和/或其它與現(xiàn)場(chǎng)設(shè)備相關(guān)的信息,使用這些信息來(lái)實(shí)現(xiàn)控制例程,然后產(chǎn)生經(jīng)總線或線路發(fā)送到現(xiàn)場(chǎng)設(shè)備的控制信號(hào),以控制過(guò)程的運(yùn)行。通常使由操作員工作站執(zhí)行的一個(gè)或多個(gè)應(yīng)用能夠得到來(lái)自現(xiàn)場(chǎng)設(shè)備和控制器的信息,以使操作員能夠相對(duì)于過(guò)程執(zhí)行任何期望的功能,諸如配置過(guò)程、察看過(guò)程的當(dāng)前狀態(tài)、修改過(guò)程的運(yùn)行等。
[0003]另外,在許多過(guò)程中,提供單獨(dú)的安全系統(tǒng)以檢測(cè)過(guò)程工廠內(nèi)與安全相關(guān)的重大問(wèn)題,并且當(dāng)發(fā)生可能造成或?qū)е鹿S中的嚴(yán)重危害問(wèn)題時(shí),諸如有毒化學(xué)物質(zhì)泄漏、爆炸等時(shí),自動(dòng)地關(guān)閉閥、對(duì)設(shè)備斷電,切換工廠內(nèi)的流程等。這些安全系統(tǒng)通常具有遠(yuǎn)離標(biāo)準(zhǔn)過(guò)程控制控制器的一個(gè)或多個(gè)單獨(dú)的控制器,稱為邏輯求解器,它們通過(guò)安裝在過(guò)程工廠內(nèi)的單獨(dú)的總線或通信線路連接到安全現(xiàn)場(chǎng)設(shè)備。邏輯求解器使用安全現(xiàn)場(chǎng)設(shè)備來(lái)檢測(cè)與重大事件相關(guān)聯(lián)的過(guò)程狀況,諸如特定安全開(kāi)關(guān)或關(guān)閉閥的位置、過(guò)程中的上溢或下溢、重要的功率產(chǎn)生或控制設(shè)備的操作、故障檢測(cè)設(shè)備的操作等,從而檢測(cè)過(guò)程工廠內(nèi)的“事件”。當(dāng)檢測(cè)到一事件(通常稱為“起因”)時(shí),安全控制器采取一些動(dòng)作(通常稱為“結(jié)果”)以限制事件的破壞性,諸如關(guān)閉閥、關(guān)掉設(shè)備、對(duì)工廠的一些部件斷電等。一般地,這些動(dòng)作或結(jié)果包括將安全設(shè)備切換到被設(shè)計(jì)為防止過(guò)程工廠內(nèi)的嚴(yán)重或危險(xiǎn)狀況的跳閘或“安全”操作模式。
[0004]諸如過(guò)程控制系統(tǒng)和安全系統(tǒng)的過(guò)程工廠內(nèi)的系統(tǒng)通常可以保持跟蹤各種過(guò)程和/或系統(tǒng)本身的狀態(tài)。系統(tǒng)的輸入信號(hào)可能會(huì)導(dǎo)致由系統(tǒng)所跟蹤的狀態(tài)發(fā)生變化,由系統(tǒng)產(chǎn)生的輸出信號(hào)除了系統(tǒng)的輸入信號(hào)之外可能會(huì)依賴于系統(tǒng)的當(dāng)前狀態(tài)。專利號(hào)為7,730,415的美國(guó)專利,在此以整體并入作為參考,詳細(xì)描述了過(guò)程工廠內(nèi)的控制系統(tǒng),其使用集成到功能塊圖表編程環(huán)境中的狀態(tài)機(jī)功能塊。特別地,這種狀態(tài)機(jī)功能塊包括一個(gè)或多個(gè)輸入,其用于使由狀態(tài)機(jī)功能塊實(shí)現(xiàn)的狀態(tài)機(jī)改變狀態(tài)。進(jìn)一步地,該狀態(tài)機(jī)功能塊基于指示下一狀態(tài)的狀態(tài)轉(zhuǎn)換配置數(shù)據(jù)來(lái)確定它要轉(zhuǎn)換的下一種狀態(tài)。狀態(tài)轉(zhuǎn)換配置數(shù)據(jù)基于狀態(tài)機(jī)的當(dāng)前狀態(tài)和至少一個(gè)輸入從數(shù)據(jù)庫(kù)獲得。狀態(tài)機(jī)功能塊還包括基于狀態(tài)機(jī)的狀態(tài)而產(chǎn)生的一個(gè)或多個(gè)輸出。狀態(tài)機(jī)功能塊的輸入與例如過(guò)程控制系統(tǒng)或安全系統(tǒng)相關(guān)聯(lián),輸出可以用于例如過(guò)程控制系統(tǒng)或安全系統(tǒng)中的現(xiàn)場(chǎng)設(shè)備的控制。
[0005]然而,當(dāng)前的過(guò)程控制系統(tǒng)不具有自動(dòng)地執(zhí)行與轉(zhuǎn)換出當(dāng)前狀態(tài)或轉(zhuǎn)換入下一狀態(tài)相關(guān)聯(lián)的各種動(dòng)作或功能的能力。替代地,當(dāng)前的過(guò)程控制系統(tǒng)的用戶或管理員在狀態(tài)轉(zhuǎn)換期間必須手動(dòng)地執(zhí)行或?qū)崿F(xiàn)動(dòng)作或功能。因此,當(dāng)前的過(guò)程控制系統(tǒng)在其執(zhí)行特定的安全測(cè)量,控制技術(shù)或者與狀態(tài)轉(zhuǎn)換相關(guān)聯(lián)的其他特性的能力上是有限的。
【發(fā)明內(nèi)容】
[0006]在此描述的系統(tǒng)和方法涉及管理過(guò)程控制環(huán)境的狀態(tài)之間的轉(zhuǎn)換。過(guò)程控制系統(tǒng)和方法可以實(shí)現(xiàn)狀態(tài)機(jī),其包括基于置為有效的輸入識(shí)別狀態(tài)機(jī)的各種狀態(tài)之間的轉(zhuǎn)換的轉(zhuǎn)換表格。轉(zhuǎn)換表格還可以指定用于過(guò)程控制系統(tǒng)的一個(gè)或多個(gè)轉(zhuǎn)換動(dòng)作和執(zhí)行的與從當(dāng)前狀態(tài)轉(zhuǎn)換至下一狀態(tài)相關(guān)聯(lián)的方法。根據(jù)實(shí)施例,轉(zhuǎn)換動(dòng)作可以是轉(zhuǎn)換入動(dòng)作和/或轉(zhuǎn)換出動(dòng)作的形式。過(guò)程控制系統(tǒng)和方法可以執(zhí)行與轉(zhuǎn)換出當(dāng)前狀態(tài)相關(guān)聯(lián)的轉(zhuǎn)換出動(dòng)作以及可以在適應(yīng)于下一狀態(tài)之前執(zhí)行轉(zhuǎn)換入動(dòng)作。在一些實(shí)施例中,過(guò)程控制系統(tǒng)和方法可以將與轉(zhuǎn)換動(dòng)作相關(guān)聯(lián)的配置數(shù)據(jù)提供給另一功能塊用于該功能塊來(lái)執(zhí)行。過(guò)程控制系統(tǒng)和方法可以額外地設(shè)置對(duì)應(yīng)于當(dāng)前狀態(tài)和轉(zhuǎn)換動(dòng)作的輸出。
[0007]根據(jù)一些實(shí)施例,過(guò)程控制系統(tǒng)和方法能夠通過(guò)由圖形用戶接口顯示的矩陣來(lái)管理轉(zhuǎn)換表格。矩陣的各種單元能夠指示狀態(tài)轉(zhuǎn)換數(shù)據(jù),該狀態(tài)轉(zhuǎn)換數(shù)據(jù)識(shí)別與置為有效的輸入相關(guān)聯(lián)的各種狀態(tài)轉(zhuǎn)換,以及與狀態(tài)轉(zhuǎn)換相關(guān)聯(lián)的將要執(zhí)行轉(zhuǎn)換動(dòng)作。矩陣能夠經(jīng)由計(jì)算機(jī)或其用戶完全地可配置的,以執(zhí)行狀態(tài)轉(zhuǎn)換及與其相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作。因此,功能塊能夠訪問(wèn)適當(dāng)?shù)木仃囈杂兄跔顟B(tài)轉(zhuǎn)換,自動(dòng)地執(zhí)行相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作和設(shè)置適當(dāng)?shù)妮敵觥?br>
[0008]與傳統(tǒng)的過(guò)程控制技術(shù)相比,在此描述的過(guò)程控制系統(tǒng)和方法的實(shí)施例可以導(dǎo)致更有效和高效率的過(guò)程控制技術(shù)。例如,轉(zhuǎn)換動(dòng)作使得過(guò)程控制系統(tǒng)和方法能夠自動(dòng)地執(zhí)行與轉(zhuǎn)換出當(dāng)前狀態(tài)和轉(zhuǎn)換入下一狀態(tài)相關(guān)聯(lián)的動(dòng)作,由此減少對(duì)用戶手動(dòng)地執(zhí)行與狀態(tài)轉(zhuǎn)換相關(guān)聯(lián)的過(guò)程的需求。
【專利附圖】
【附圖說(shuō)明】
[0009]通過(guò)參考下面詳細(xì)說(shuō)明和附圖將更好地理解下文所述的方法、裝置和系統(tǒng)的特點(diǎn)和優(yōu)點(diǎn),在附圖中:
[0010]圖1是一個(gè)示例過(guò)程工廠的方框圖;
[0011]圖2是示意地在圖1中說(shuō)明的一個(gè)示例工作站的方框圖;
[0012]圖3是描述控制模塊的顯示的一個(gè)示例;
[0013]圖4是狀態(tài)機(jī)功能塊的示例表示;
[0014]圖5是用于輸入狀態(tài)機(jī)功能塊的狀態(tài)配置數(shù)據(jù)及與其相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作數(shù)據(jù)的示例矩陣;
[0015]圖6是其中在矩陣中顯示狀態(tài)配置數(shù)據(jù)及與其相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作數(shù)據(jù)的圖5的示例矩陣;
[0016]圖7是具有轉(zhuǎn)換動(dòng)作功能的狀態(tài)機(jī)功能塊的操作的示例方法的流程圖;
[0017]圖8是并入轉(zhuǎn)換動(dòng)作功能的示例狀態(tài)機(jī)功能塊的方框圖;
[0018]圖9是具有轉(zhuǎn)換動(dòng)作功能的狀態(tài)機(jī)功能塊的操作的另一示例方法的流程圖;
[0019]圖10是用于處理到狀態(tài)機(jī)功能塊的數(shù)據(jù)輸入的一個(gè)示例例程的流程圖;
[0020]圖11是用于處理到狀態(tài)機(jī)功能塊的使能輸入的一個(gè)示例例程的流程圖;
[0021]圖12是用于改變狀態(tài)和設(shè)置包括狀態(tài)機(jī)功能塊的轉(zhuǎn)換動(dòng)作輸出的輸出的示例例程的流程圖;
[0022]圖13是輸入用于狀態(tài)機(jī)功能塊的包括轉(zhuǎn)換動(dòng)作的輸出配置數(shù)據(jù)的示例矩陣;
[0023]圖14是另一示例狀態(tài)機(jī)功能塊的方框圖;
[0024]圖15是輸入用于狀態(tài)機(jī)功能塊的狀態(tài)配置數(shù)據(jù)及與其相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作數(shù)據(jù)的示例狀態(tài)轉(zhuǎn)換圖。
【具體實(shí)施方式】
[0025]過(guò)程工廠示例
[0026]圖1是包括一個(gè)或多個(gè)節(jié)點(diǎn)12、16、18和20的一個(gè)示例過(guò)程工廠10的方框圖。在圖1的示例過(guò)程工廠10中,節(jié)點(diǎn)12和16的每一個(gè)包括通過(guò)輸入/輸出(I/O)設(shè)備24連接到一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備22和23的過(guò)程控制器12a、16a,其中輸入/輸出(I/O)設(shè)備24可以是例如Foundat1n Field bus接口、HART接口等??刂破?2a和16a還通過(guò)網(wǎng)絡(luò)30耦接到節(jié)點(diǎn)18和20中的一個(gè)或多個(gè)主機(jī)或操作員工作站18a和20a,其中網(wǎng)絡(luò)30可以包含,例如一個(gè)或多個(gè)總線、諸如Ethernet LAN的有線局域網(wǎng)(LAN)、無(wú)線LAN、廣域網(wǎng)(WAN)、內(nèi)聯(lián)網(wǎng)等。盡管與之相關(guān)聯(lián)的控制器節(jié)點(diǎn)12、16和I/O設(shè)備24和現(xiàn)場(chǎng)設(shè)備22、23通常在有時(shí)惡劣的工廠環(huán)境內(nèi)由中心向遠(yuǎn)處放置和分布在有時(shí)惡劣的工廠環(huán)境中,但操作員工作站節(jié)點(diǎn)18和20經(jīng)常位于控制器人員容易到達(dá)的控制房中或其它不很惡劣的環(huán)境中。
[0027]一般而言,節(jié)點(diǎn)18和20的工作站18a和20a可用來(lái)存儲(chǔ)和執(zhí)行用于配置和監(jiān)視過(guò)程工廠10、和/或管理過(guò)程工廠10中的設(shè)備22、23、24和控制器12a、16a的應(yīng)用程序。并且,數(shù)據(jù)庫(kù)32可以連接到網(wǎng)絡(luò)30并作為數(shù)據(jù)歷史和/或配置數(shù)據(jù)庫(kù)運(yùn)行,該數(shù)據(jù)庫(kù)存儲(chǔ)下載到和/或存儲(chǔ)在節(jié)點(diǎn)12、16、18、20、22、23、24、50和70內(nèi)的過(guò)程工廠10的當(dāng)前配置。
[0028]例如可以是由Emerson Process Management銷售的DeltaV?控制器的每個(gè)控制器12a和16a可以存儲(chǔ)和執(zhí)行通過(guò)使用數(shù)個(gè)不同的獨(dú)立執(zhí)行的控制模塊或塊來(lái)實(shí)現(xiàn)控制策略的控制器應(yīng)用。每個(gè)控制模塊可以由通常被稱為功能塊的塊構(gòu)成,其中每個(gè)功能塊是整個(gè)控制例程的一部分或一個(gè)子例程,并與其它功能模塊相結(jié)合(經(jīng)由被稱為鏈路的通信)進(jìn)行操作以實(shí)現(xiàn)過(guò)程工廠10內(nèi)的過(guò)程控制環(huán)。如熟知的那樣,功能塊通常執(zhí)行輸入功能(諸如與發(fā)送器、傳感器或其它過(guò)程參數(shù)測(cè)量設(shè)備相關(guān)聯(lián)的輸入功能)、控制功能(諸如與執(zhí)行譬如PID、模糊邏輯等各種控制的控制例程相關(guān)聯(lián)的控制功能)或控制一些設(shè)備(諸如閥)的操作的輸出功能之一,以執(zhí)行過(guò)程工廠10內(nèi)的一些物理功能。當(dāng)然存在和可以使用混合的和其它類型的功能塊。盡管fieldbus協(xié)議和DeltaV?系統(tǒng)協(xié)議可使用以面向?qū)ο蟮木幊虆f(xié)議設(shè)計(jì)和實(shí)現(xiàn)的控制模塊和功能塊,也可使用包括例如順序功能塊、階梯邏輯等的任何期望的控制編程方案來(lái)設(shè)計(jì)控制模塊,并且不限于使用功能塊或任何其它特定編程技術(shù)來(lái)進(jìn)行設(shè)計(jì)。作為典型,存儲(chǔ)在過(guò)程控制節(jié)點(diǎn)12和16內(nèi)的控制模塊的配置可被存儲(chǔ)在可由工作站18a和20a執(zhí)行的應(yīng)用訪問(wèn)的配置數(shù)據(jù)庫(kù)32中。通常當(dāng)功能塊用于或與標(biāo)準(zhǔn)4-20mA設(shè)備和諸如HART設(shè)備的一些類型智能現(xiàn)場(chǎng)設(shè)備相關(guān)聯(lián)的情況下,這些功能塊可以存儲(chǔ)在例如控制器12a、16a中并由控制器12a、16a執(zhí)行,或者在Fieldbus設(shè)備的情況下,可以存儲(chǔ)在現(xiàn)場(chǎng)設(shè)備本身中并由現(xiàn)場(chǎng)備本身來(lái)實(shí)現(xiàn)。
[0029]在圖1中說(shuō)明的系統(tǒng)中,耦接到控制器12a和16a的現(xiàn)場(chǎng)設(shè)備22和23可以是標(biāo)準(zhǔn)4-20mA設(shè)備,或可以是諸如HART、Profibus、或Foundat1n Fieldbus現(xiàn)場(chǎng)設(shè)備的包括處理器和存儲(chǔ)器的智能現(xiàn)場(chǎng)設(shè)備。這些設(shè)備的一些,諸如Foundat1n Fieldbus現(xiàn)場(chǎng)設(shè)備(圖1中以附圖標(biāo)記23標(biāo)示)可以存儲(chǔ)和執(zhí)行與在控制器12a和16a中實(shí)現(xiàn)的控制策略相關(guān)聯(lián)的諸如功能塊的模塊、或子模塊。當(dāng)然,現(xiàn)場(chǎng)設(shè)備22、23可以是任何類型的設(shè)備,諸如傳感器、閥、發(fā)送器、定位器等。I/O設(shè)備24可以是符合諸如HART、Foundat1n Fieldbus、Profibus等的任何期望的通信或控制器協(xié)議的任何類型的I/O設(shè)備。
[0030]控制器12a和16a的每個(gè)包括實(shí)現(xiàn)或監(jiān)視存儲(chǔ)在存儲(chǔ)器中的一個(gè)或多個(gè)過(guò)程控制例程的處理器,該過(guò)程控制例程可以包括控制環(huán)路,存儲(chǔ)于其中或與之相關(guān)聯(lián)??刂破?2a和16a與現(xiàn)場(chǎng)設(shè)備22、23,工作站18a、20a和數(shù)據(jù)庫(kù)32進(jìn)行通信,從而以任何期望的方式來(lái)控制過(guò)程??刂破?2a和16a的每個(gè)可以配置為以任何期望的方式來(lái)實(shí)現(xiàn)控制策略或控制例程。應(yīng)當(dāng)理解的是,控制器12a和16a可以經(jīng)由無(wú)線連接與現(xiàn)場(chǎng)設(shè)備22,23,工作站18a,20a和數(shù)據(jù)庫(kù)32進(jìn)行通信。
[0031]過(guò)程工廠1/0還可以包括與過(guò)程控制節(jié)點(diǎn)12和16集成的安全系統(tǒng)14(由點(diǎn)劃線表示)。安全系統(tǒng)系統(tǒng)14 一般地可以作為安全測(cè)量系統(tǒng)(SIS, Safety InstrumentedSystem)運(yùn)行,以監(jiān)視和超控(override)由過(guò)程控制節(jié)點(diǎn)12和16提供的控制,從而最大化過(guò)程工廠10的可能安全操作。
[0032]節(jié)點(diǎn)12和16的每一個(gè)可以包括一個(gè)或多個(gè)安全系統(tǒng)邏輯求解器50。每個(gè)邏輯求解器50是具有處理器和存儲(chǔ)器的1/0設(shè)備,并被配置為執(zhí)行存儲(chǔ)在存儲(chǔ)器中的安全邏輯模塊??赏ㄐ诺伛罱又撩總€(gè)邏輯求解器50,以向安全系統(tǒng)現(xiàn)場(chǎng)設(shè)備60和62提供控制信號(hào)和/或從安全系統(tǒng)現(xiàn)場(chǎng)設(shè)備60和62接收信號(hào)。另外,節(jié)點(diǎn)12和16的每一個(gè)包括至少一個(gè)消息廣播設(shè)備(MPD) 70,它通過(guò)環(huán)或總線連接74 (僅其一部分在圖1中說(shuō)明)通信地耦接到其它MPD70。一般地安全系統(tǒng)邏輯求解器50、安全系統(tǒng)現(xiàn)場(chǎng)設(shè)備60和62、MPD70和總線74構(gòu)成圖1的安全系統(tǒng)14。
[0033]圖1的邏輯求解器50可以是包括處理器和存儲(chǔ)安全邏輯模塊的存儲(chǔ)器的任何期望類型的安全系統(tǒng)控制設(shè)備,其中該安全邏輯模塊適合于在處理器上執(zhí)行以提供與使用現(xiàn)場(chǎng)設(shè)備60和62的安全系統(tǒng)14相關(guān)聯(lián)的控制功能。當(dāng)然,安全現(xiàn)場(chǎng)設(shè)備60和62可以是符合或使用任何或期望通信協(xié)議,諸如上面提及的那些的任何期望類型的現(xiàn)場(chǎng)設(shè)備。特別地,現(xiàn)場(chǎng)設(shè)備60和62可以是傳統(tǒng)上由單獨(dú)的、專用的與安全相關(guān)的控制系統(tǒng)控制的那種類型的與安全相關(guān)的現(xiàn)場(chǎng)設(shè)備。在圖1所示的過(guò)程工廠10中,安全現(xiàn)場(chǎng)設(shè)備60被描述為使用諸如HART或4-20mA協(xié)議的專用或點(diǎn)到點(diǎn)通信協(xié)議,而安全現(xiàn)場(chǎng)設(shè)備62被說(shuō)明為使用諸如Fieldbus協(xié)議的總線通信協(xié)議。安全現(xiàn)場(chǎng)設(shè)備60可以執(zhí)行諸如關(guān)閉閥、關(guān)閉開(kāi)關(guān)等的任何期望功能。
[0034]在每個(gè)節(jié)點(diǎn)12和16中可以使用公用底板(未示出),以通信地將控制器12a和16a耦接到過(guò)程控制1/0卡24、耦接到安全邏輯求解器50和耦接到MPD70??刂破?2a和16a還通信地耦接到網(wǎng)絡(luò)30。控制器12a和16a、1/0設(shè)備24、邏輯求解器50和MPD70可以通過(guò)網(wǎng)絡(luò)30與節(jié)點(diǎn)18和20進(jìn)行通信。
[0035]如本領(lǐng)域的普通技術(shù)人員將會(huì)理解的,節(jié)點(diǎn)12、16中的底板(未示出)使邏輯求解器50能夠在本地互相通信以協(xié)調(diào)由這些設(shè)備實(shí)現(xiàn)的安全功能、互相傳送數(shù)據(jù)、和/或執(zhí)行其它集成的功能。相似地,節(jié)點(diǎn)16中的底板(未示出)能夠使邏輯求解器50在本地互相通信以協(xié)調(diào)由這些設(shè)備實(shí)現(xiàn)的安全功能、互相傳送數(shù)據(jù)、和/或執(zhí)行其它集成的功能。另一方面,MPD70進(jìn)行操作以使得設(shè)置在工廠10的非常不同位置的安全系統(tǒng)14的部件仍能夠互相通信,以在過(guò)程工廠10的不同節(jié)點(diǎn)提供協(xié)調(diào)的安全操作。特別地,MPD70與總線74相結(jié)合使與過(guò)程工廠10的不同節(jié)點(diǎn)12和16相關(guān)聯(lián)的邏輯求解器50能夠通信地級(jí)聯(lián)在一起,以允許根據(jù)所分配的優(yōu)先級(jí)來(lái)級(jí)聯(lián)過(guò)程工廠10內(nèi)與安全相關(guān)的功能。MPD70和總線74為安全系統(tǒng)提供作為網(wǎng)絡(luò)30的替代物的通信鏈路。
[0036]替代地,過(guò)程工廠10內(nèi)不同位置上的兩個(gè)或多個(gè)與安全相關(guān)的功能可以互鎖或互連,而不用在工廠10的單獨(dú)區(qū)域或節(jié)點(diǎn)內(nèi)向單獨(dú)的安全現(xiàn)場(chǎng)設(shè)備布設(shè)專用線路。換言之,MPD70和72和總線74的使用使得安全工程師能夠設(shè)計(jì)和配置在特性上遍及過(guò)程工廠10分布但其不同組件通信地互連的安全系統(tǒng)14,從而使與安全相關(guān)的不同硬件能夠按需互相通信。該特征還提供了安全系統(tǒng)14的可縮放性,當(dāng)需要額外的安全邏輯求解器時(shí)或當(dāng)新的過(guò)程控制節(jié)點(diǎn)被添加到過(guò)程工廠10時(shí),它使額外的安全邏輯求解器能夠被添加到安全系統(tǒng)14。
[0037]圖2是示例工作站18a (工作站20a可以包括相同或相似的設(shè)備)的方框圖。工作站18a可以包括至少一個(gè)處理器100,易失性存儲(chǔ)器104和非易失性存儲(chǔ)器108。易失性存儲(chǔ)器104可以包括,例如隨機(jī)存取存儲(chǔ)器(RAM)。在一些實(shí)施例中,可以由一個(gè)或多個(gè)電池來(lái)備份RAM,以便在掉電時(shí)不丟失數(shù)據(jù)。非易失性存儲(chǔ)器108可以包括,例如一個(gè)或多個(gè)硬盤、只讀存儲(chǔ)器(ROM)、高密度盤ROM(CD-ROM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電子可擦除可編程ROM(EEPROM)、數(shù)字多用途盤(DVD)、閃存等。工作站18a還可以包括工作站1/0設(shè)備112。處理器100、易失性存儲(chǔ)器104、非易失性存儲(chǔ)器108和工作站1/0設(shè)備112可以通過(guò)地址/數(shù)據(jù)總線116互連。工作站18a還可以包括至少一個(gè)顯示設(shè)備120和至少一個(gè)用戶輸入設(shè)備124,其可以是,例如一個(gè)或多個(gè)鍵盤、鍵區(qū)、鼠標(biāo)、跟蹤球、觸摸屏、光筆等。在一些實(shí)施例中,易失性存儲(chǔ)器104、非易失性存儲(chǔ)器108和工作站1/0設(shè)備112中的一個(gè)或多個(gè)可以通過(guò)與地址/數(shù)據(jù)總線116分離的總線(未示出)耦接到處理器100,或可以直接地耦接到處理器100。
[0038]顯示設(shè)備120和用戶輸入設(shè)備124與工作站1/0設(shè)備112耦接。另外,工作站18a通過(guò)工作站I/o設(shè)備112耦接到網(wǎng)絡(luò)30。盡管在圖2中將工作站1/0設(shè)備112說(shuō)明為一個(gè)設(shè)備,它也可以包括幾個(gè)設(shè)備。另外,在一些實(shí)施例中,一個(gè)或多個(gè)顯示設(shè)備120和用戶輸入設(shè)備124可以直接地耦接到地址/數(shù)據(jù)總線116或耦接到處理器100。
[0039]現(xiàn)在參考圖1和圖2,與一個(gè)或多個(gè)控制節(jié)點(diǎn)12、16相關(guān)聯(lián)的過(guò)程控制配置應(yīng)用可以存儲(chǔ)在一個(gè)或多個(gè)工作站18a和20a上并由一個(gè)或多個(gè)工作站18a和20a執(zhí)行。例如,過(guò)程控制配置應(yīng)用可以存儲(chǔ)在非易失性存儲(chǔ)器108和/或易失性存儲(chǔ)器104,并由處理器100執(zhí)行。然而,如果希望,該應(yīng)用可以在與過(guò)程工廠10相關(guān)聯(lián)的其它計(jì)算機(jī)中存儲(chǔ)和執(zhí)行。一般而言,過(guò)程控制配置應(yīng)用允許程序員創(chuàng)建和配置將由控制器12a、16a,1/0設(shè)備24和/或現(xiàn)場(chǎng)設(shè)備22、23實(shí)現(xiàn)的控制例程、控制模塊、功能模塊、程序、邏輯等。這些控制例程、控制模塊、功能模塊、程序、邏輯等然后可以通過(guò)網(wǎng)絡(luò)30下載到控制器12a、16a,1/0設(shè)備24和/或現(xiàn)場(chǎng)設(shè)備22、23中的適當(dāng)?shù)脑O(shè)備。
[0040]相似地,與安全系統(tǒng)14相關(guān)聯(lián)的安全系統(tǒng)配置應(yīng)用可以存儲(chǔ)在一個(gè)或多個(gè)工作站18a和20a并由一個(gè)或多個(gè)工作站18a和20a執(zhí)行。例如,安全系統(tǒng)配置應(yīng)用可以存儲(chǔ)在非易失性存儲(chǔ)器108和/或易失性存儲(chǔ)器104中,并由處理器100執(zhí)行。然而,如果希望,該應(yīng)用可以在與過(guò)程工廠10相關(guān)聯(lián)的其它計(jì)算機(jī)中存儲(chǔ)和執(zhí)行。一般而言,安全系統(tǒng)配置應(yīng)用允許程序員創(chuàng)建和配置將由控制囂12a、16a,邏輯求解器50和/或設(shè)備60、62實(shí)現(xiàn)的控制例程、控制模塊、功能模塊、程序、邏輯等。這些控制例程、控制模塊、功能模塊、程序、邏輯等然后可以通過(guò)網(wǎng)絡(luò)30下載到控制器12a、16a,邏輯求解器50和/或設(shè)備60、62中的適當(dāng)?shù)脑O(shè)備。
[0041]狀態(tài)機(jī)功能塊
[0042]控制系統(tǒng)或安全系統(tǒng)配置應(yīng)用可以允許編程控制模塊和/或控制例程使用功能塊編程范例。圖3說(shuō)明了描述控制模塊154的顯示150的一個(gè)示例。顯示150可以是與配置應(yīng)用相關(guān)聯(lián)的用戶接口的一部分,并且顯示150可以,例如通過(guò)工作站18a的顯示設(shè)備120呈現(xiàn)給程序員。顯示150描述了具有一組通信地互連的功能塊的控制模塊154,所述功能塊可以被創(chuàng)建并通過(guò)網(wǎng)絡(luò)30下載到控制器12a、16a,I/O設(shè)備24,邏輯求解器50和/或設(shè)備22、23、60、62中的適當(dāng)?shù)脑O(shè)備,用于在過(guò)程工廠的操作期間實(shí)施。如圖3中所示的,控制模塊154包括狀態(tài)機(jī)功能塊(SMFB)160、多個(gè)模擬輸入(AI)和數(shù)字輸入(DI)功能塊、多個(gè)模擬輸出(A0)和數(shù)字輸出(D0)功能塊和其它功能塊(FB)。SMFB160具有通信地與可以是,例如DI功能塊或其它FB的功能塊114互連的輸入。SMFB160還具有連接到可以是,例如D0功能塊或其它FB的功能塊118的輸出。控制模塊154可以控制,或可以是一起控制的多個(gè)控制模塊之一,控制諸如開(kāi)關(guān)、閥等的設(shè)備,作為控制系統(tǒng),安全系統(tǒng)等的一部分。當(dāng)然,控制模塊154僅僅是利用SMFB的控制模塊的一個(gè)示例。一般地,可以用任何期望的方式來(lái)編程控制模塊,以包含以任何期望的方式通信地連接到任何數(shù)目的SMFB的任何類型的功能塊,以及可以用任何期望的或有用的方式配置控制模塊,以執(zhí)行任何期望的功能。如果,例如在Fieldbus網(wǎng)絡(luò)中使用,則控制模塊可以包括任何fieldbus類型功能塊。
[0043]在一些實(shí)施例中,到SMFB160的一個(gè)或多個(gè)輸入可以從一個(gè)功能塊之外接收。例如,到SMFB160的一個(gè)或多個(gè)輸入可以通信地耦接以通過(guò),例如操作員接口從操作員接收輸入。例如,使用在諸如節(jié)點(diǎn)18或20上實(shí)現(xiàn)的操作員接口的操作員可以提供到SMFB160的輸入。
[0044]SMFB可以是實(shí)現(xiàn)狀態(tài)機(jī)的功能塊。在一些實(shí)施例中,狀態(tài)機(jī)可以包括能夠處于多種狀態(tài)之一的實(shí)體(例如,設(shè)備、由處理器實(shí)現(xiàn)的軟件等)。如果至狀態(tài)機(jī)的特定輸入發(fā)生,則狀態(tài)機(jī)可以從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)。SMFB可以提供基于狀態(tài)機(jī)的當(dāng)前狀態(tài)的輸出。僅作為一個(gè)示例,SMFB可以提供指示狀態(tài)機(jī)的當(dāng)前狀態(tài)的一個(gè)或多個(gè)輸出。更一般而言,狀態(tài)機(jī)可以包括實(shí)體(例如,設(shè)備、由處理器實(shí)現(xiàn)的軟件等),其中存儲(chǔ)該實(shí)體的狀態(tài),或在給定時(shí)間包括一些其它實(shí)體(例如,過(guò)程工廠、過(guò)程工廠的子部分、過(guò)程工廠的組件等),并且可以改變狀態(tài)和/或基于至狀態(tài)機(jī)的輸入引起動(dòng)作或?qū)⒁l(fā)生的輸出。
[0045]使用與配置應(yīng)用相關(guān)聯(lián)的用戶接口,程序員可以設(shè)計(jì)諸如控制模塊154的控制模塊。僅僅作為一個(gè)示例,用戶接口可以向程序員提供從例如模板或包括多個(gè)標(biāo)準(zhǔn)化或自定義功能塊模板的選項(xiàng)板中選擇期望的功能塊的機(jī)制。另外,用戶接口可以提供程序員在其上可以插入或放置功能塊描述的圖形圖表。程序員可以使用,例如鼠標(biāo)、跟蹤球、鍵盤,鍵區(qū)、觸摸屏等以從模板或選項(xiàng)板中選擇功能塊,然后將功能塊“拖和放”到圖形圖表上。程序員還可以使用例如鼠標(biāo)、跟蹤球、鍵盤、鍵區(qū)、觸摸屏等,通過(guò)例如在一個(gè)功能塊的輸出和另一個(gè)功能塊的輸入之間劃一條線來(lái)通信地耦接功能塊。
[0046]—旦被配置,控制模塊154可以由,例如控制器12a、14a、16a、I/O設(shè)備24、邏輯求解器50和設(shè)備22、23、60、62中的一個(gè)或多個(gè)來(lái)實(shí)現(xiàn)。
[0047]圖4是可以在例如,諸如圖3的顯示150的用戶接口顯示上顯示的SMFB200的表示的一個(gè)示例。SMFB200的表示指示SMFB200包括7個(gè)數(shù)據(jù)輸入(IN_D1至IN_D7)和9個(gè)數(shù)據(jù)輸出(TRANS_0UT,TRANS_IN, STATE和0UT_D1至0UT_D6)。數(shù)據(jù)輸入一般可以指示過(guò)程工廠內(nèi)的狀況,指示操作員命令等,并可以使得由SMFB200實(shí)現(xiàn)的狀態(tài)機(jī)改變狀態(tài)。數(shù)據(jù)輸出可包括對(duì)應(yīng)于SMFB200的狀態(tài)機(jī)的狀態(tài)的一個(gè)或多個(gè)指示符,以及對(duì)應(yīng)于將基于該狀態(tài)被執(zhí)行的功能或動(dòng)作的配置項(xiàng)目(item)。例如,STATE輸出可以是狀態(tài)機(jī)的狀態(tài)(例如,狀態(tài)1、狀態(tài)2、狀態(tài)3等)的指示符。輸出0UT_D1可以是狀態(tài)機(jī)是否處于狀態(tài)“狀態(tài)1”的指示符。類似地,輸出0UT_D2、0UT_D3、...0UT_D6可以分別是狀態(tài)機(jī)是否處于狀態(tài)“狀態(tài)2”、“狀態(tài)3”...、“狀態(tài)6”的指示符。另外地,輸出TRANS_0UT可以根據(jù)狀態(tài)機(jī)轉(zhuǎn)換出給定狀態(tài),指示將被執(zhí)行的配置項(xiàng)目,以及輸入TRANS_IN可以根據(jù)狀態(tài)機(jī)轉(zhuǎn)換入給定狀態(tài),指示將被執(zhí)行的配置項(xiàng)目。在一些實(shí)施例中,SMFB200可包括多個(gè)TRANS_0UT輸出和多個(gè)TRANS_IN輸出。例如,SMFB200可以包括數(shù)目等于狀態(tài)的數(shù)目的數(shù)個(gè)TRANS_0UT輸出和數(shù)個(gè)TRANS_IN輸出(也即,每個(gè)狀態(tài)一個(gè)TRANS_0UT輸出和一個(gè)TRANS_IN輸出)。應(yīng)當(dāng)理解的是,SMFB200可以包括任何數(shù)目的TRANS_0UT和TRANS_IN輸出。
[0048]SMFB200還可以包括除數(shù)據(jù)輸入外的其它輸入,諸如ENABLE輸入、TRK_VAL輸入和TRK_IN_D輸入。例如SMFB200可以包括來(lái)自另一個(gè)SMFB的輸入。進(jìn)一步地,SMFB200還可包括除指示狀態(tài)或與其相關(guān)聯(lián)的配置項(xiàng)目的輸出外的其它輸出。將在下面更詳細(xì)地描述ENABLE、TRK_VAL和TRK_IN_D輸入。盡管圖4中示出SMFB200具有7個(gè)數(shù)據(jù)輸入和9個(gè)數(shù)據(jù)輸出,但其它實(shí)施例可以包括任何期望數(shù)目的數(shù)據(jù)輸入和數(shù)據(jù)輸出。SMFB200的數(shù)據(jù)輸入的數(shù)目和數(shù)據(jù)輸出的數(shù)目可以配置或不可以配置。在一個(gè)實(shí)施例中,輸出0UT_Dx的數(shù)目一般對(duì)應(yīng)于由SMFB200實(shí)現(xiàn)的狀態(tài)機(jī)的可能狀態(tài)的數(shù)目,并且可能的狀態(tài)數(shù)目可以是可配置的。然而,輸出0UT_D1、0UT_D2等的數(shù)目不需要對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)的數(shù)目。例如,如果有少于輸出0UT_D1、0UT_D2等的數(shù)目的狀態(tài),則額外的輸出可以留置不用。
[0049]使用與配置程序相關(guān)聯(lián)的用戶接口,程序員可以配置一個(gè)或多個(gè)功能塊,諸如SMFB200。關(guān)于配置SMFB200,程序員可以指定數(shù)個(gè)可能的狀態(tài),輸入如何引起狀態(tài)機(jī)在狀態(tài)間進(jìn)行轉(zhuǎn)換,以及狀態(tài)機(jī)在狀態(tài)之間轉(zhuǎn)換之前,期間或之后執(zhí)行的任何功能或動(dòng)作。為允許程序員配置SMFB200,配置應(yīng)用可以在顯示設(shè)備120上顯示用戶接口機(jī)制,諸如與功能塊相關(guān)聯(lián)的配置窗口、屏幕等。
[0050]圖5是可以用于至少部分地配置諸如圖4的SMFB200的SMFB的用戶接口機(jī)制的一個(gè)示例。該用戶接口機(jī)制包括可以顯示為與SMFB相關(guān)聯(lián)的配置窗口、屏幕等的一部分的表格或矩陣300 (下文中稱為“矩陣300”)。矩陣300包括以行和列排列的多個(gè)單元(302,303,304)。如所示出的,列被設(shè)置為3個(gè)分組,其中每個(gè)分組能夠?qū)?yīng)于狀態(tài)機(jī)的多個(gè)可能狀態(tài)之一。特別地,每個(gè)分組中的中間列對(duì)應(yīng)于狀態(tài)機(jī)的特定狀態(tài),如包括在傳統(tǒng)狀態(tài)圖表中的。例如,如圖5中示出的,標(biāo)記為“1”的狀態(tài)是“跳閘(TRIPPED)”狀態(tài),標(biāo)記為“2”的狀態(tài)是“等待復(fù)位(WAIT FOR RESET)”,等等。根據(jù)實(shí)施例,每個(gè)分組中的左側(cè)列對(duì)應(yīng)于當(dāng)轉(zhuǎn)換入下一狀態(tài)(“轉(zhuǎn)換入動(dòng)作,transit1n-1n act1n”)時(shí)狀態(tài)機(jī)執(zhí)行的配置項(xiàng)目,每個(gè)分組中的右側(cè)列對(duì)應(yīng)于當(dāng)轉(zhuǎn)換出當(dāng)前狀態(tài)(“轉(zhuǎn)換出動(dòng)作,transit1n-out act1n”)時(shí)狀態(tài)機(jī)執(zhí)行的配置項(xiàng)目。進(jìn)一步地,每一行對(duì)應(yīng)于至狀態(tài)機(jī)的輸入(例如,“初始(INITIAL)”,“復(fù)位允許(RESET PERMIT)”等)。因此,單元302中的每一個(gè)(對(duì)于每一行以及列的分組重復(fù))指定轉(zhuǎn)換入動(dòng)作,單元303的每一個(gè)(對(duì)于每一行以及列的分組重復(fù))指定輸入/狀態(tài)對(duì),以及單元304的每一個(gè)(對(duì)于每一行以及列的分組重復(fù))指定轉(zhuǎn)換出動(dòng)作。應(yīng)當(dāng)理解的是,單元302,303,304的分組可以集合成單個(gè)單元。進(jìn)一步地,應(yīng)當(dāng)理解的是,單元302,303,304中的每一個(gè)可以是對(duì)應(yīng)于特定狀態(tài)的單元的子單元。盡管示例矩陣300包括對(duì)于7個(gè)輸入的行以及6個(gè)狀態(tài)的分組,具有不同數(shù)目的狀態(tài)和輸出的分組的類似矩陣可以用于具有不同數(shù)目的輸入和狀態(tài)的分組的SMFB。輸入和狀態(tài)的分組的數(shù)目可以是可配置的。在其他示例中,行可以對(duì)應(yīng)于狀態(tài)機(jī)的多個(gè)可能狀態(tài)之一(以及與其相關(guān)聯(lián)的轉(zhuǎn)換入和轉(zhuǎn)換出動(dòng)作),以及每一列可以對(duì)應(yīng)于至狀態(tài)機(jī)的輸入。
[0051]在運(yùn)行中,當(dāng)狀態(tài)機(jī)處于當(dāng)前狀態(tài)時(shí),狀態(tài)機(jī)能夠基于在該狀態(tài)機(jī)上被置為有效(assert)的輸入而從當(dāng)前狀態(tài)轉(zhuǎn)換至下一狀態(tài)。例如,矩陣300能夠指定如果狀態(tài)機(jī)處于“正常運(yùn)作(NORMAL OPERAT1N) ”狀態(tài)(當(dāng)前狀態(tài))并且“請(qǐng)求跳閘(TRIPPED REQUESTED)”輸入被置為有效,那么狀態(tài)機(jī)應(yīng)當(dāng)轉(zhuǎn)換至“跳閘(TRIPPED) ”狀態(tài)(下一狀態(tài))。在一些情況下,某些狀態(tài)可以不指定對(duì)于某一輸入的下一狀態(tài)轉(zhuǎn)換。
[0052]根據(jù)實(shí)施例,由每一分組中的右邊列指定的轉(zhuǎn)換出動(dòng)作可以是SMFB根據(jù)轉(zhuǎn)換出當(dāng)前狀態(tài)而執(zhí)行的一個(gè)或多個(gè)配置項(xiàng)目,以及由每一分組中的左邊列指定的轉(zhuǎn)換入動(dòng)作可以是SMFB根據(jù)轉(zhuǎn)換入下一狀態(tài)而執(zhí)行的一個(gè)或多個(gè)配置項(xiàng)目。在一些實(shí)施例中,一個(gè)或多個(gè)配置項(xiàng)目可以是邏輯的,以定義執(zhí)行的動(dòng)作的結(jié)構(gòu)化文本或更高層計(jì)算機(jī)構(gòu)造(例如,C,C++,JAVA等)的形式。應(yīng)當(dāng)理解的是,一個(gè)或多個(gè)配置項(xiàng)目可以是以任何類型的編碼或可執(zhí)行邏輯的形式。一個(gè)或多個(gè)配置項(xiàng)目可以是SMFB在當(dāng)前狀態(tài)至下一狀態(tài)的轉(zhuǎn)換上執(zhí)行的單個(gè)一次性的項(xiàng)目,由此,在一些情形下,一旦到達(dá)下一狀態(tài),一個(gè)或多個(gè)配置項(xiàng)目不再繼續(xù)運(yùn)行。SMFB首先可以執(zhí)行轉(zhuǎn)換出動(dòng)作(也即,離開(kāi)當(dāng)前狀態(tài)使得SMFB執(zhí)行轉(zhuǎn)換出動(dòng)作),而不管SMFB正在向哪一狀態(tài)轉(zhuǎn)換,以及SMFB可以在穩(wěn)定于下一狀態(tài)之前執(zhí)行轉(zhuǎn)換入動(dòng)作(也即,輸入下一狀態(tài)使得SMFB執(zhí)行轉(zhuǎn)換入動(dòng)作),而不管SMFB正從哪一狀態(tài)轉(zhuǎn)換來(lái)。在一些情形下,配置項(xiàng)目(也即,轉(zhuǎn)換入和轉(zhuǎn)換出動(dòng)作)可以作用于SMFB之外的其他元件或?qū)嶓w(例如,另一功能塊)。應(yīng)當(dāng)理解的是,可以構(gòu)想出與轉(zhuǎn)換入動(dòng)作,轉(zhuǎn)換出動(dòng)作和狀態(tài)改變相關(guān)聯(lián)的其他時(shí)間上的元件。
[0053]參考圖4,矩陣300的輸入“ 1 ”至“7”分別對(duì)應(yīng)于SMFB200的輸入IN_D1至IN_D7。相似地,矩陣300的狀態(tài)“ 1”至“6”分別對(duì)應(yīng)于SMFB200的輸出0UT_D1至0UT_D6。另外,在該示例中程序員可以標(biāo)記每個(gè)可能狀態(tài)和/或每個(gè)輸入。例如,在圖5中,“狀態(tài)1”被標(biāo)記為“跳閘(TRIPPED) ”,輸入1被標(biāo)記為“初始(INITIAL) ”。標(biāo)記輸入和/或狀態(tài)可以幫助理解狀態(tài)機(jī)的操作。
[0054]程序員可以通過(guò)將配置信息輸入到單元302,303,304中來(lái)配置SMFB200。特別地,對(duì)于對(duì)應(yīng)于輸入/狀態(tài)對(duì)的一個(gè)特定單元,程序員可以將指示SMFB200應(yīng)該向其轉(zhuǎn)換的狀態(tài)的配置數(shù)據(jù)輸入到特定單元中。進(jìn)一步地,對(duì)于對(duì)應(yīng)于轉(zhuǎn)換入動(dòng)作的特定單元,程序員可以將指示當(dāng)轉(zhuǎn)換入下一狀態(tài)時(shí)SMFB200執(zhí)行的動(dòng)作的配置數(shù)據(jù)輸入到特定單元中。仍進(jìn)一步地,對(duì)于對(duì)應(yīng)于轉(zhuǎn)換出動(dòng)作的特定單元,程序員可以將指示當(dāng)從當(dāng)前狀態(tài)轉(zhuǎn)換時(shí)SMFB200執(zhí)行的動(dòng)作的配置數(shù)據(jù)輸入到特定單元。
[0055]SMFB200可以在狀態(tài)機(jī)轉(zhuǎn)換出當(dāng)前狀態(tài)之后,基于相應(yīng)的轉(zhuǎn)換出配置數(shù)據(jù)將TRANS_0UT輸出置為有效,以執(zhí)行功能。在一些實(shí)施例中,SMFB200可以在狀態(tài)機(jī)轉(zhuǎn)換出當(dāng)前狀態(tài)之前,將TRANS_0UT輸出置為有效。SMFB200可以在狀態(tài)機(jī)轉(zhuǎn)換出當(dāng)前狀態(tài)之后(或者否則在轉(zhuǎn)換出當(dāng)前狀態(tài)之前)以及在狀態(tài)機(jī)適應(yīng)于下一狀態(tài)之前,基于相應(yīng)的轉(zhuǎn)換入配置數(shù)據(jù)將TRANS_IN輸出置為有效。在一些實(shí)施例中,SMFB200可以在狀態(tài)機(jī)適應(yīng)于下一狀態(tài)之后,將TRANS_IN輸出置為有效。在一些情形下,SMFB200可以將對(duì)應(yīng)于轉(zhuǎn)換出動(dòng)作或轉(zhuǎn)換入動(dòng)作的配置項(xiàng)目作為輸入提供給額外的SMFB或過(guò)程控制設(shè)備以使得額外的SMFB或過(guò)程控制設(shè)備執(zhí)行功能,而與此同時(shí)SMFB200要么轉(zhuǎn)換出當(dāng)前狀態(tài)要么轉(zhuǎn)換入下一狀態(tài)。因此,第一 SMFB的TRANS_0UT輸出的激活可以引起第二 SMFB轉(zhuǎn)換至下一狀態(tài)。例如,在第一SMFB控制蒸汽鍋爐的過(guò)程工廠中,指示第一 SMFB從關(guān)閉狀態(tài)轉(zhuǎn)換至點(diǎn)燃狀態(tài)的第一 SMFB的TRANS_0UT輸出可以在第一 SMFB點(diǎn)燃鍋爐之前,使得控制鍋爐排氣風(fēng)扇的第二 SMFB從風(fēng)扇關(guān)閉狀態(tài)轉(zhuǎn)換至風(fēng)扇運(yùn)行狀態(tài)一段時(shí)間。因此,在鍋爐被點(diǎn)燃之前,鍋爐內(nèi)建立的任何爆炸氣體都被排放掉了。
[0056]圖6是具有輸入到單元的一些中的配置數(shù)據(jù)的矩陣300的一個(gè)示例。例如,單元303A包括指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)并且將“復(fù)位允許(RESET PERMIT) ”輸入置為有效時(shí)狀態(tài)機(jī)應(yīng)該轉(zhuǎn)換至的下一狀態(tài)的配置數(shù)據(jù)。特別地,單元303A的配置數(shù)據(jù)指示狀態(tài)機(jī)應(yīng)該轉(zhuǎn)換到“準(zhǔn)備好復(fù)位(READY FOR RESET)”狀態(tài)。進(jìn)一步地,單元302A包括對(duì)應(yīng)于當(dāng)轉(zhuǎn)換入“準(zhǔn)備好復(fù)位”狀態(tài)時(shí)SMFB應(yīng)當(dāng)執(zhí)行的“動(dòng)作A (ACT1N A) ”的配置數(shù)據(jù),以及單元304A包括對(duì)應(yīng)于當(dāng)從“跳閘”狀態(tài)轉(zhuǎn)換時(shí)SMFB應(yīng)當(dāng)執(zhí)行的“動(dòng)作B (ACT1N B) ”的配置數(shù)據(jù)。類似地,單元303B包括指示當(dāng)“復(fù)位(RESET)”輸入被置為有效時(shí)狀態(tài)機(jī)應(yīng)當(dāng)(從“準(zhǔn)備好復(fù)位”)轉(zhuǎn)換至“等待開(kāi)始(WAITING FOR START) ”狀態(tài)的配置數(shù)據(jù),單元302B包括對(duì)應(yīng)于當(dāng)轉(zhuǎn)換入“等待開(kāi)始”狀態(tài)時(shí)狀態(tài)機(jī)應(yīng)當(dāng)執(zhí)行的“動(dòng)作C(ACT10N C) ”的配置數(shù)據(jù),以及單元304B包括對(duì)應(yīng)于當(dāng)從“準(zhǔn)備好復(fù)位”狀態(tài)轉(zhuǎn)換時(shí)狀態(tài)機(jī)應(yīng)當(dāng)執(zhí)行的“動(dòng)作D(ACT1ND) ”的配置數(shù)據(jù)。應(yīng)當(dāng)理解的是,動(dòng)作A,動(dòng)作B,動(dòng)作C,動(dòng)作D等可以對(duì)應(yīng)于在此描述的可由SMFB或其他元件執(zhí)行的任何功能或動(dòng)作。
[0057]此外,特定單元或單元組可以包括轉(zhuǎn)換入動(dòng)作而不包括轉(zhuǎn)換出動(dòng)作,反之亦然。例如,單元303C包括指示當(dāng)在“請(qǐng)求跳閘”輸入被置為有效時(shí)狀態(tài)機(jī)應(yīng)當(dāng)(從“等待開(kāi)始”狀態(tài))轉(zhuǎn)換至“跳閘”狀態(tài)的配置數(shù)據(jù),以及單元302C包括對(duì)應(yīng)于當(dāng)轉(zhuǎn)換入“跳閘”狀態(tài)時(shí)狀態(tài)機(jī)應(yīng)當(dāng)執(zhí)行的“動(dòng)作E (ACT1N E) ”的配置數(shù)據(jù)。然而,單元303C不具有相應(yīng)的TRANS_OUT配置項(xiàng)目。因此,如果狀態(tài)機(jī)處于“等待開(kāi)始”狀態(tài)并且“請(qǐng)求跳閘”輸入被置為有效,那么SMFB可以根據(jù)從“等待開(kāi)始”轉(zhuǎn)換至“跳閘”來(lái)執(zhí)行動(dòng)作E (ACT1N E) ”。類似地,輸入/狀態(tài)對(duì)(例如在單元303D中的輸入/狀態(tài)對(duì))可以不具有相應(yīng)的TRANS_IN或TRANS_OUT配置項(xiàng)目的任一個(gè)。因此,狀態(tài)機(jī)可以從當(dāng)前狀態(tài)轉(zhuǎn)換至下一狀態(tài),而無(wú)需執(zhí)行相應(yīng)的TRANS_IN或TRANS_0UT配置項(xiàng)目的任一個(gè)。
[0058]在一些實(shí)施例中,如果程序員沒(méi)有輸入配置數(shù)據(jù)到單元中,則可以假定對(duì)于那個(gè)特定狀態(tài)和輸入,不應(yīng)發(fā)生狀態(tài)轉(zhuǎn)換。例如,單元302E,303E和304E不包括配置數(shù)據(jù),指示當(dāng)狀態(tài)機(jī)處于“跳閘(TRIPPED)”狀態(tài)并且將“開(kāi)始恢復(fù)(START RECOVER) ”輸入置為有效時(shí),狀態(tài)機(jī)應(yīng)保留在“跳閘(TRIPPED)”狀態(tài)并且不應(yīng)當(dāng)執(zhí)行任何動(dòng)作。在另一個(gè)實(shí)施例中,程序員可以輸入指示對(duì)于那個(gè)特定狀態(tài)/輸入組合,狀態(tài)機(jī)不應(yīng)改變狀態(tài)的配置數(shù)據(jù)。
[0059]程序員可以使用包括本領(lǐng)域的普通技術(shù)人員所熟知的技術(shù)的任何類型的技術(shù),將配置數(shù)據(jù)輸入到矩陣300中。例如,為了將配置數(shù)據(jù)輸入到單元中,程序員可以使用鼠標(biāo)、跟蹤球、觸摸屏等來(lái)選擇單元。然后,用戶可以通過(guò),例如鍵盤或其他輸入設(shè)備直接將配置數(shù)據(jù)輸入到單元中。替代地,程序員可以選擇單元,然后從下拉菜單選擇“編輯”、“修改”等選項(xiàng),或選擇“編輯”按鈕、“修改”按鈕等。然后,用戶接口可以通過(guò)下拉菜單、窗口、顯示屏等向程序員顯示狀態(tài)列表??蛇x地,該狀態(tài)列表可以包括單元對(duì)應(yīng)的狀態(tài)或“不轉(zhuǎn)換(N0TRANSIT1N) ”選項(xiàng)。然后,程序員可以使用,例如鍵盤、鼠標(biāo)、跟蹤球、觸摸屏等選擇狀態(tài)之一。如果程序員選擇單元對(duì)應(yīng)的狀態(tài)或“不轉(zhuǎn)換(NO TRANSIT1N)”選項(xiàng),則配置數(shù)據(jù)將指示對(duì)于該狀態(tài)和輸入組合,不應(yīng)發(fā)生轉(zhuǎn)換。
[0060]與使用例如順序功能圖表或諸如C++的編程語(yǔ)言相比,使用包括諸如矩陣300的矩陣的用戶接口來(lái)配置SMFB可以使實(shí)現(xiàn)狀態(tài)機(jī)更容易。例如,使用C++程序等實(shí)現(xiàn)狀態(tài)機(jī)將涉及首先創(chuàng)建具有相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作的狀態(tài)轉(zhuǎn)換圖表,然后編寫實(shí)現(xiàn)該圖表的程序。然后,在一些情形下,在過(guò)程控制系統(tǒng)中實(shí)現(xiàn)之前,必須對(duì)程序進(jìn)行測(cè)試和調(diào)試。然而,使用諸如矩陣300的矩陣來(lái)配置SMFB,不需要編寫程序。并且,“編程”僅僅涉及以與其相關(guān)聯(lián)的狀態(tài)和轉(zhuǎn)換動(dòng)作來(lái)填寫矩陣。另外,由于不需要編寫軟件代碼,因此也不需要調(diào)試和測(cè)試代碼。并且,測(cè)試僅僅涉及測(cè)試狀態(tài)、轉(zhuǎn)換入動(dòng)作、轉(zhuǎn)換出動(dòng)作和輸入的各種組合以驗(yàn)證SMFB進(jìn)入到正確的下一狀態(tài)且執(zhí)行期望的轉(zhuǎn)換動(dòng)作。在一些情形下,僅通過(guò)檢查矩陣300就可容易地理解SMFB的功能。因此,配置后的SMFB的功能可以例如通過(guò)打印出矩陣的表示來(lái)容易地進(jìn)行文檔記錄。
[0061]例如,根據(jù)諸如矩陣300的矩陣來(lái)配置的SMFB可以用在安全系統(tǒng)或過(guò)程控制系統(tǒng)中。僅僅作為一個(gè)示例,根據(jù)諸如矩陣300的矩陣來(lái)配置的SMFB可以用作安全系統(tǒng)的一部分,用于管理過(guò)程工廠中的燃燒爐。例如,SMFB可以包括諸如“點(diǎn)火(IGNITE) ”、“關(guān)氣(SHUTOFF GAS)”和“排出(VENT)”的狀態(tài)。當(dāng)啟動(dòng)燃燒爐時(shí),SMFB可以首先進(jìn)入到排出狀態(tài)以使燃燒爐中的任何氣體排放。然后,SMFB可以進(jìn)入到點(diǎn)火狀態(tài)以點(diǎn)燃燃燒爐。并且,如果燃燒爐的火焰出來(lái)的話,SMFB可以進(jìn)入到關(guān)氣狀態(tài)以關(guān)閉至燃燒爐的氣體。然后,SMFB可以進(jìn)入到排出狀態(tài)。另外,SMFB可以包括轉(zhuǎn)換入和轉(zhuǎn)換出動(dòng)作以有助于安全系統(tǒng)。例如,SMFB200B可以包括與轉(zhuǎn)換入排出狀態(tài)相關(guān)聯(lián)的轉(zhuǎn)換入動(dòng)作,由此該轉(zhuǎn)換入動(dòng)作激活操作員指示符以通知操作員該燃燒爐正在排氣。此外,SMFB可以包括與轉(zhuǎn)換出排出狀態(tài)相關(guān)聯(lián)的轉(zhuǎn)換出動(dòng)作,由此,該轉(zhuǎn)換出動(dòng)作通知操作員燃燒爐被完全排氣。替換地,第一 SMFB(例如,燃燒爐控制SMFB)的TRANS_0UT或TRANS_IN輸出可以作為輸入提供給另一 SMFB(例如,燃燒爐通風(fēng)系統(tǒng)控制SMFB)或其他過(guò)程控制設(shè)備以引起其他SMFB或過(guò)程控制設(shè)備執(zhí)行功能,而與此同時(shí)第一 SMFB正轉(zhuǎn)換出當(dāng)前狀態(tài)和/或轉(zhuǎn)換入下一狀態(tài)。
[0062]根據(jù)諸如矩陣300的矩陣來(lái)配置的SMFB可以由一個(gè)或多個(gè)控制器12a、16a、1/0設(shè)備24、邏輯求解器50和設(shè)備22、23、60、62來(lái)實(shí)現(xiàn)。在一些實(shí)施例中,可以由根據(jù)軟件由可編程邏輯設(shè)備配置的處理器來(lái)實(shí)現(xiàn)SMFB,該可編程邏輯設(shè)備可以是例如包括門陣列、標(biāo)準(zhǔn)單元、現(xiàn)場(chǎng)可編程門陣列(FPGA)、PR0M、EPR0M、EEPR0M、可編程陣列邏輯(PAL)、可編程邏輯陣列(PLA)等中的一個(gè)或多個(gè)的設(shè)備。
[0063]與SMFB相關(guān)聯(lián)的配置數(shù)據(jù)(例如,輸入到諸如矩陣300的矩陣的數(shù)據(jù)和可選地其它配置數(shù)據(jù))可以存儲(chǔ)在諸如硬盤、RAM、ROM、CD-ROM、EPROM、EEPROM、DVD、閃存等的計(jì)算機(jī)可讀介質(zhì)上,和/或與處理器相關(guān)聯(lián)的存儲(chǔ)器上。
[0064]圖7是配置的SMFB的操作的示例方法350的流程圖??梢灾芷诘睾?或響應(yīng)于例如觸發(fā)事件來(lái)實(shí)現(xiàn)方法350。在塊354中,SMFB接收其數(shù)據(jù)輸入。例如參考圖4A,SMFB接收輸入IN_D1至IN_D7。在塊356,SMFB基于當(dāng)前狀態(tài)和/或數(shù)據(jù)輸入,執(zhí)行適當(dāng)?shù)霓D(zhuǎn)換出動(dòng)作。特別地,SMFB能夠使用存儲(chǔ)在配置數(shù)據(jù)庫(kù)中的相關(guān)聯(lián)的轉(zhuǎn)換出配置數(shù)據(jù)執(zhí)行轉(zhuǎn)換出動(dòng)作。在塊357中,SMFB基于下一狀態(tài)(由當(dāng)前狀態(tài)和數(shù)據(jù)輸入所指示的)執(zhí)行適當(dāng)?shù)霓D(zhuǎn)換入動(dòng)作。特別地,SMFB能夠使用存儲(chǔ)在配置數(shù)據(jù)庫(kù)中的相關(guān)聯(lián)的轉(zhuǎn)換入配置數(shù)據(jù)執(zhí)行轉(zhuǎn)換入動(dòng)作。
[0065]在塊358,如果需要,SMFB基于數(shù)據(jù)輸入、SMFB的當(dāng)前狀態(tài)和存儲(chǔ)在配置數(shù)據(jù)庫(kù)中的配置數(shù)據(jù)來(lái)改變其狀態(tài)機(jī)的狀態(tài)。例如,SMFB將當(dāng)前狀態(tài)設(shè)置為確定的下一狀體。配置數(shù)據(jù)庫(kù)的數(shù)據(jù)可以包括通過(guò)諸如矩陣300的矩陣輸入的數(shù)據(jù)。狀態(tài)也可以基于其它因素而被改變。例如,如將在下面詳述的那樣,SMFB可以被配置為忽略一個(gè)或多個(gè)數(shù)據(jù)輸入。因此,如果有的話,改變狀態(tài)也可以基于指示哪些數(shù)據(jù)輸入將要被忽略的配置數(shù)據(jù)。作為另一個(gè)示例,兩個(gè)或多個(gè)數(shù)據(jù)輸入可以指示應(yīng)該從當(dāng)前狀態(tài)到兩個(gè)或多個(gè)下一狀態(tài)發(fā)生狀態(tài)改變。因此,SMFB可以選擇數(shù)據(jù)輸入之一,以基于對(duì)數(shù)據(jù)輸入授予優(yōu)先級(jí)的優(yōu)先級(jí)數(shù)據(jù),確定SMFB應(yīng)當(dāng)轉(zhuǎn)換到可能的下一狀態(tài)中的哪一個(gè)。作為另一個(gè)示例,在一些實(shí)施例中,到SMFB的數(shù)據(jù)輸入可以包括狀態(tài)(例如,好(GOOD)狀態(tài)或壞(BAD)狀態(tài))。因此,改變狀態(tài)也可以基于,例如指示應(yīng)如何處理具有壞狀態(tài)的輸入的配置數(shù)據(jù)。
[0066]然后,在塊366中,SMFB可以基于狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置其數(shù)據(jù)輸出。例如,SMFB可以將STATE輸出(以及適當(dāng)?shù)?UT_Dx)設(shè)置為狀態(tài)機(jī)的當(dāng)前狀態(tài)。進(jìn)一步地,SMFB可以設(shè)置TRANS_0UT輸出,用于指示根據(jù)狀態(tài)機(jī)轉(zhuǎn)換出當(dāng)前狀態(tài)將要執(zhí)行的轉(zhuǎn)換出動(dòng)作,以及可以設(shè)置TRANS_IN輸出,用于指示根據(jù)狀態(tài)機(jī)轉(zhuǎn)換入下一狀態(tài)將要執(zhí)行的轉(zhuǎn)換入動(dòng)作。
[0067]再次參考圖4,SMFB可以可選地包括“使能(ENABLE) ”輸入。在一個(gè)實(shí)施例中,如果將ENABLE輸入置為無(wú)效(deassert),則SMFB被強(qiáng)制進(jìn)入禁用狀態(tài)(例如,狀態(tài)0)并應(yīng)保留在該狀態(tài)直到將ENABLE輸入置為有效。當(dāng)隨后將ENABLE輸入置為有效時(shí),SMFB可以被強(qiáng)制進(jìn)入初始狀態(tài)(例如,狀態(tài)1),其后SMFB可以根據(jù)輸入到諸如圖5的矩陣300的配置矩陣中的配置數(shù)據(jù)而轉(zhuǎn)換到其它狀態(tài)。
[0068]SMFB可以另外地包括強(qiáng)制狀態(tài)機(jī)進(jìn)入期望狀態(tài)的一個(gè)輸入或多個(gè)輸入。例如,SMFB200包括TRK_IN_D輸入和TRK_VAL輸入。當(dāng)將TRK_IN_D輸入置為有效時(shí),可以強(qiáng)制SMFB進(jìn)入由TRK_VAL輸入指定的狀態(tài)。例如,如果TRK_VAL輸入為“6”并且將TRK_IN_D輸入置為有效,則可以強(qiáng)制SMFB進(jìn)入狀態(tài)“6”。
[0069]SMFB可以可選地以另外的方式來(lái)配置。例如,SMFB可以包括指示如果有的話,是否應(yīng)該忽略輸入IN_D1,IN_D2等中的一個(gè)或多個(gè)的輸入(或轉(zhuǎn)換)屏蔽。而且,SMFB可以被配置為對(duì)可以具有多種狀態(tài)的輸入作出響應(yīng)。例如,到SMFB的一個(gè)或所有輸入可以具有“好”狀態(tài)或“壞”狀態(tài),SMFB可以被配置為根據(jù)輸入的狀態(tài)作出不同響應(yīng)。在一個(gè)特定示例中,SMFB可以被配置為忽略是“壞”的輸入、即使是“壞”也使用該輸入、或使用該輸入的最后一個(gè)“好”值。進(jìn)一步地,SMFB可以包括復(fù)位(RESET)參數(shù),當(dāng)該參數(shù)為真時(shí),強(qiáng)制SMFB進(jìn)入“1”狀態(tài)。
[0070]上述各種配置數(shù)據(jù)和下一狀態(tài)配置數(shù)據(jù)可以存儲(chǔ)在同一計(jì)算機(jī)可讀介質(zhì)上或不同的計(jì)算機(jī)可讀介質(zhì)上。
[0071]圖8是SMFB400的一個(gè)示例的方框圖。SMFB400包括邏輯404,其至少部分地基于輸入IN_D1,IN_D2等和SMFB400的當(dāng)前狀態(tài)來(lái)確定下一狀態(tài)。特別地,邏輯404訪問(wèn)存儲(chǔ)在下一狀態(tài)配置數(shù)據(jù)庫(kù)406中的下一狀態(tài)配置數(shù)據(jù)。邏輯404還確定將由SMFB400執(zhí)行的轉(zhuǎn)換入和轉(zhuǎn)換出動(dòng)作功能。轉(zhuǎn)換入動(dòng)作可以至少部分地基于來(lái)自轉(zhuǎn)換出配置數(shù)據(jù)庫(kù)405的轉(zhuǎn)換入配置數(shù)據(jù)。轉(zhuǎn)換出動(dòng)作可以至少部分地基于來(lái)自轉(zhuǎn)換出配置數(shù)據(jù)庫(kù)407的轉(zhuǎn)換出配置數(shù)據(jù)。根據(jù)在此描述的實(shí)施例,轉(zhuǎn)換入配置數(shù)據(jù)可以定義在SMFB適應(yīng)于下一狀態(tài)之前SMFB執(zhí)行的功能,以及轉(zhuǎn)換出配置數(shù)據(jù)可以定義在轉(zhuǎn)換出當(dāng)前狀態(tài)之前(或者否則在轉(zhuǎn)換入下一狀態(tài)之前)SMFB執(zhí)行的功能。數(shù)據(jù)庫(kù)405,406,407可以存儲(chǔ)在諸如在此描述的計(jì)算機(jī)可讀介質(zhì)上。下一狀態(tài),轉(zhuǎn)換入和轉(zhuǎn)換出配置數(shù)據(jù)可以包括輸入到諸如圖5的矩陣300的矩陣中的配置數(shù)據(jù)。應(yīng)當(dāng)理解的是,各種元件,邏輯或模塊可以執(zhí)行轉(zhuǎn)換入和/或轉(zhuǎn)換出配置數(shù)據(jù)。例如,SMFB400可以執(zhí)行轉(zhuǎn)換入和/或轉(zhuǎn)換出配置數(shù)據(jù)。又例如,SMFB400可以發(fā)送命令至單獨(dú)的元件或模塊以執(zhí)行轉(zhuǎn)換入和/或轉(zhuǎn)換出配置數(shù)據(jù)。
[0072]根據(jù)一些實(shí)施例,邏輯404的輸出被提供到切換邏輯408。切換邏輯408基于TRK_IN_D輸入在邏輯404的輸出和TRK_VAL輸入之間進(jìn)行選擇。例如,如果將TRK_IN_D輸入置為有效,則切換邏輯408可以選擇TRK_VAL輸入。否則,切換邏輯408可以選擇邏輯404的輸出。
[0073]切換邏輯408的輸出被提供到切換邏輯412,該切換邏輯412基于使能和復(fù)位邏輯416的輸出在切換邏輯408的輸出、值0和值1之間進(jìn)行選擇。使能和復(fù)位邏輯416的輸出指示是否應(yīng)強(qiáng)制狀態(tài)進(jìn)入禁用狀態(tài)(狀態(tài)0)或初始狀態(tài)(狀態(tài)1)。使能和復(fù)位邏輯416基于ENABLE輸入產(chǎn)生該輸出。例如,如果將ENABLE輸入置為無(wú)效,則使能和復(fù)位邏輯416的輸出可以指示狀態(tài)應(yīng)被強(qiáng)制為0。如果將ENABLE輸入從無(wú)效改變到有效,則使能和復(fù)位邏輯416的輸出可以指示狀態(tài)應(yīng)被強(qiáng)制為1。如果將ENABLE置為有效并且是在先前有效的,使能和復(fù)位邏輯416的輸出可以指示狀態(tài)不應(yīng)被強(qiáng)制為0或1。
[0074]切換邏輯412的輸出是SMFB400的當(dāng)前狀態(tài),并可被提供為SMFB400的輸出。切換邏輯412的輸出還可以被提供到設(shè)置對(duì)應(yīng)于SMFB的當(dāng)前狀態(tài)的適當(dāng)輸出0UT_D1,0UT_D2,TRANS_IN,TRANS_0UT等的邏輯420。如圖8中描繪的,邏輯420可選地可以訪問(wèn)存儲(chǔ)在可選的輸出配置數(shù)據(jù)庫(kù)458中的狀態(tài)/輸出配置數(shù)據(jù)。數(shù)據(jù)庫(kù)458和數(shù)據(jù)庫(kù)460可以存儲(chǔ)在相同的計(jì)算機(jī)可讀介質(zhì)或不同的計(jì)算機(jī)可讀介質(zhì)上。數(shù)據(jù)配置數(shù)據(jù)可以包括被輸入至諸如圖13的矩陣700的矩陣中的配置數(shù)據(jù),如在此描述的。
[0075]塊404、408、412、416和420中的每個(gè)都可以由一個(gè)或多個(gè)硬件、軟件和固件來(lái)實(shí)現(xiàn)。另外,一些塊可以被組合、重新排序、修改或省略,并且可以添加額外的塊。僅僅作為一個(gè)示例,塊408和412可以組合到單個(gè)塊中。
[0076]圖9是示例SMFB400的操作的方法450的流程圖??梢岳缰芷诘睾?或基于觸發(fā)事件來(lái)實(shí)現(xiàn)圖9的方法450。在塊454,處理SMFB400的數(shù)據(jù)輸入。例如,可以確定是否已將任何數(shù)據(jù)輸入IN_D1,IN_D2等置為有效。作為另一個(gè)示例,如果一個(gè)或多個(gè)數(shù)據(jù)輸入具有“BAD(壞)”狀態(tài),可以確定如何處理“BAD”輸入。在塊458,處理SMFB400的ENABLE輸入。例如,可以確定是否將ENABLE輸入置為有效和/或自其先前被處理起它是否已改變。
[0077]在塊459,SMFB例如通過(guò)訪問(wèn)存儲(chǔ)在配置數(shù)據(jù)庫(kù)中的相關(guān)聯(lián)的轉(zhuǎn)換出配置數(shù)據(jù)來(lái)基于當(dāng)前狀態(tài)和/或數(shù)據(jù)輸入執(zhí)行適當(dāng)?shù)霓D(zhuǎn)換出動(dòng)作。在塊460,SMFB例如通過(guò)訪問(wèn)存儲(chǔ)在配置數(shù)據(jù)庫(kù)中的相關(guān)聯(lián)的轉(zhuǎn)換入配置數(shù)據(jù)來(lái)基于下一狀態(tài)和/或數(shù)據(jù)輸入執(zhí)行適當(dāng)?shù)霓D(zhuǎn)換入動(dòng)作。例如,SMFB可以被配置為控制過(guò)程工廠中的一件設(shè)備。當(dāng)該件設(shè)備處于關(guān)閉狀態(tài)(也即,當(dāng)前狀態(tài))時(shí),可以在設(shè)備啟動(dòng)輸入被激活且該件設(shè)備將轉(zhuǎn)換至運(yùn)行狀態(tài)(也即,下一狀態(tài))時(shí),執(zhí)行下一狀態(tài)配置數(shù)據(jù)。在真正地轉(zhuǎn)換出關(guān)閉狀態(tài)之前,SMFB可以執(zhí)行轉(zhuǎn)換出配置數(shù)據(jù)以激活指示該件設(shè)備將啟動(dòng)的警報(bào)。此外,在適應(yīng)于運(yùn)行狀態(tài)之前,SMFB可以執(zhí)行轉(zhuǎn)換入配置數(shù)據(jù)以使警報(bào)安靜下來(lái)。
[0078]又例如,SMFB可以被配置為控制倉(cāng)庫(kù)中的多件加熱設(shè)備。當(dāng)過(guò)程工廠處于加熱狀態(tài)(也即,當(dāng)前狀態(tài)),可以將輸入置為有效以啟動(dòng)對(duì)應(yīng)于轉(zhuǎn)換至通風(fēng)狀態(tài)的通風(fēng)設(shè)備。在從加熱狀態(tài)轉(zhuǎn)換期間,SMFB可以自動(dòng)地鎖住熔爐或者其他加熱源以阻止加熱源產(chǎn)生更多的熱量。因此,在轉(zhuǎn)換至通風(fēng)狀態(tài)后,可以阻止熔爐運(yùn)作。進(jìn)一步地,在轉(zhuǎn)換入通風(fēng)狀態(tài)之前,SMFB可以自動(dòng)地激活與通風(fēng)設(shè)備相關(guān)聯(lián)的一系列排氣口,用于幫助相應(yīng)的機(jī)器的排氣。
[0079]在塊462,如果需要,可以改變SMFB400的狀態(tài)。另外,如果需要,可以改變或設(shè)置SMFB400的一個(gè)或多個(gè)數(shù)據(jù)輸出。例如,可以確定數(shù)據(jù)輸入中的變化指示應(yīng)該改變SMFB400的狀態(tài)。另外,如果狀態(tài)改變,可以是應(yīng)該改變SMFB400的一個(gè)或多個(gè)數(shù)據(jù)輸出,例如TRANS_IN 和 TRANS_0UT 輸出。
[0080]現(xiàn)在將描述至少部分地可用于實(shí)現(xiàn)方法450的幾個(gè)示例例程。例如,圖10是可用于處理至SMFB的數(shù)據(jù)輸入IN_D1,IN_D2等的示例例程500的流程圖。在塊504,將變量z設(shè)置為I。在塊508,確定數(shù)據(jù)輸入IN_Dz的狀態(tài)是否為“BAD (壞)”。如果該狀態(tài)不是壞的,則將變量TRANSIT1NS的比特號(hào)z設(shè)置為數(shù)據(jù)輸入IN_Dz的值。如果該狀態(tài)是壞的,則可以確定將要如何處理該數(shù)據(jù)輸入。在一個(gè)示例中,SMFB可以以三種方式之一處理“BAD”輸入:可以任意使用BAD輸入(ALWAYS_USE),可以忽略它(IGN0RE_IF_BAD),或可使用最后一個(gè)“GOOD”輸入(USE_LAST_G00D)。因此,在塊516,可以確定SMFB是否要使用最后一個(gè)“GOOD”數(shù)據(jù)輸入。如果SMFB要使用最后一個(gè)“GOOD”值,則可以跳過(guò)塊512。否則,其后可以在塊520確定是否SMFB要忽略BAD輸入值。如果SMFB不忽略BAD值,則例程會(huì)進(jìn)行到塊512。如果SMFB要忽略BAD值,則例程會(huì)進(jìn)行到塊524。在塊524,將變量TRANSIT1NS的比特號(hào)“z”設(shè)置為O。
[0081 ] 在塊528,遞增變量z,并且在塊532,可以確定變量z是否大于至SMFB的數(shù)據(jù)輸入的數(shù)目。如果z不大于至SMFB的數(shù)據(jù)輸入的數(shù)目,則例程可以回到塊508以處理下一數(shù)據(jù)輸入。否則,例程結(jié)束。
[0082]圖11是可用于處理到SMFB的ENABLE輸入的示例例程545的流程圖。在塊550,可以確定變量LASTENABLE的值是否與ENABLE輸入的值相同。LASTENABLE變量一般指示在前一時(shí)間的ENABLE的值(例如,在例程545的前一運(yùn)行期間ENABLE變量的值)。如果LASTENABLE和ENABLE的值相同,則例程545結(jié)束。否則,例程進(jìn)行到塊554,在該塊554可以確定是否將ENABLE輸入置為有效。如果將ENABLE輸入置為有效,則在塊558可將變量RESET 設(shè)置為 TRUE。
[0083]如果在塊554確定沒(méi)有將ENABLE輸入置為有效,則在塊562,將對(duì)應(yīng)于STATE變量的當(dāng)前值的榆出0UT_D1,0UT_D2等置為無(wú)效。然后,在塊566,將STATE變量設(shè)置為O。在塊558和566之后,例程進(jìn)行到塊570,在塊570將變量LASTENABLE設(shè)置為ENABLE輸入的值。在塊570之后,例程結(jié)束。
[0084]圖12是可用于確定SMFB的下一狀態(tài)和如果需要可用于設(shè)置適當(dāng)?shù)?UT_D1,0UT_D2,TRANS_IN, TRANS_0UT等的示例例程600的流程圖。在塊604,可以確定是否將ENABLE輸入置為有效。如果沒(méi)有,則例程結(jié)束。如果將ENABLE輸入置為有效,則例程進(jìn)行到塊608,在塊608將變量NEWSTATE設(shè)置為O。然后,在塊612,可以確定是否將輸入TRK_IN_D置為有效。如果將輸入TRK_IN_D置為有效,則例程進(jìn)行到塊616,在塊616將NEWSTATE變量設(shè)置為輸入TRK_VAL的值。
[0085]如果在塊612確定沒(méi)有將TRK_IN_D輸入置為有效,則例程可以進(jìn)行到塊620。在塊620,可以確定變量RESET是否為TRUE。如果是TRUE,則例程進(jìn)行到塊624,在塊624可將NEWSTATE變量設(shè)置為I。然后,在塊626,將RESET變量設(shè)置為FALSE。
[0086]如果在塊620確定變量RESET不是TRUE,則例程進(jìn)行到塊632。在塊632,可以通過(guò)按比特對(duì)TRANSIT1N_MASK變量、TRANSIT1NS變量和由變量STATE指向的陣列STATECHANGEMASK的元素進(jìn)行“邏輯與(ANDing) ”運(yùn)算來(lái)確定變量TEMP。TRANSIT1N_MASK變量可以是能夠用于防止某輸入IN_Dx引起狀態(tài)變化發(fā)生的可配置變量。例如,如果程序員希望防止輸入IN_D3引起狀態(tài)機(jī)改變狀態(tài),則該程序員可將變量TRANSIT1N_MASK的第三比特設(shè)置為O。如果該程序員希望輸入D3引起狀態(tài)機(jī)改變狀態(tài),則該程序員可將變量TRANSIT1N_MASK的第三比特設(shè)置為I。
[0087]STATECHANGEMASK陣列的每個(gè)元素可以是指示對(duì)于一個(gè)相應(yīng)的狀態(tài)哪個(gè)輸入IN_Dl, IN_D2等將引起狀態(tài)改變的變量。特別地,陣列的每個(gè)元素對(duì)應(yīng)于狀態(tài)機(jī)的一種狀態(tài)。例如,STATECHANGEMASK [I]可對(duì)應(yīng)于狀態(tài)1,STATECHANGEMASK [2]可對(duì)應(yīng)于狀態(tài)2等。另夕卜,每個(gè)元素的每比特可對(duì)應(yīng)于輸入IN_D1,IN_D2等中的一個(gè)。例如,比特I可對(duì)應(yīng)于IN_Dll,比特2可對(duì)應(yīng)于IN_D2等。例如參考圖6,對(duì)于矩陣300,STATECHANGEMASK陣列具有6個(gè)元素,并且元素STATECHANGEMASK[3]將為0X44。
[0088]在塊628之后,例程進(jìn)行到塊632,在塊632可確定變量TEMP是否為O。如果不是0,則例程進(jìn)行到塊636,在塊636可將變量z設(shè)置為變量TEMP中不是O的第一個(gè)比特(即,從最低有效比特開(kāi)始)的編號(hào)。實(shí)際上,這根據(jù)它們的次序設(shè)置了輸入的優(yōu)先級(jí),從而IN_Dl具有最高優(yōu)先級(jí),IN_D2具有次高優(yōu)先級(jí),IN_D3具有再次高優(yōu)先級(jí)等。在其它實(shí)施例中,可以使用其它優(yōu)先級(jí)方案。例如,可允許程序員對(duì)輸入指定優(yōu)先級(jí),或可使用不同的優(yōu)先級(jí)次序(例如,IN_D1具有最低優(yōu)先級(jí),IN_D2具有次低優(yōu)先級(jí)等)。這些優(yōu)先級(jí)可以作為整體為SMFB設(shè)置或?qū)τ诿糠N狀態(tài)設(shè)置。然后,在塊640,可以將變量NEWSTATE設(shè)置為處于行z和列STATE的狀態(tài)轉(zhuǎn)換矩陣的值。
[0089]在塊616、626和640后,例程可進(jìn)行到塊644。如果在塊632,確定變量TEMP為0,則例程進(jìn)行到塊644。在塊644,可確定變量NEWSTATE是否為O。如果為0,則例程結(jié)束。如果不為0,則例程進(jìn)行到塊645,在塊645可以執(zhí)行轉(zhuǎn)換出動(dòng)作。然后,在塊646,可以執(zhí)行轉(zhuǎn)換入動(dòng)作。在塊648,將對(duì)應(yīng)于STATE變量的輸出0UT_D1,0UT_D2, TRANS_IN, TRANS_0UT等置為無(wú)效。應(yīng)當(dāng)理解的是,被置為無(wú)效的輸出不必對(duì)應(yīng)于STATE變量。在塊652,將變量STATE設(shè)置為變量NEWSTATE的值。在塊656,將對(duì)應(yīng)于STATE變量的輸出0UT_D1,0UT_D2,TRANS_IN, TRANS_OUT等置為有效,并且例程結(jié)束。應(yīng)當(dāng)理解的是,被置為有效的輸出不必對(duì)應(yīng)于STATE變量。
[0090]應(yīng)當(dāng)理解圖9的方法450和圖10-12的例程僅僅是示例,在其它示例中,可以修改塊、添加新塊、重新排序塊、省略塊、和/或組合塊。參考圖10,僅作為一個(gè)示例,如果不需要或不希望對(duì)具有“BAD”狀態(tài)的輸入的特別處理,則可省略塊508、516、520和524。
[0091]作為另一個(gè)不例,可以修改塊636,以便將變量z設(shè)置為TEMP中不為O的最后一個(gè)比特的編號(hào)。作為另一個(gè)示例,可以修改塊636以基于一些優(yōu)先級(jí)數(shù)據(jù)將z設(shè)置為對(duì)應(yīng)于TEMP中不為O的一個(gè)比特的編號(hào)。
[0092]再次參考圖4,所有數(shù)據(jù)輸出不必是對(duì)應(yīng)于SMFB200的狀態(tài)機(jī)的狀態(tài)的指示符。例如,在一個(gè)實(shí)施例中,對(duì)應(yīng)于狀態(tài)機(jī)的各種狀態(tài)的輸出0UT_D1,0UT_D2等的值可以是可配置的。因此,例如對(duì)于特定狀態(tài),可以將多個(gè)輸出0UT_D1,0UT_D2等置為有效。為允許程序員配置SMFB,配置應(yīng)用可以在顯示設(shè)備120上顯示用戶接口機(jī)制,諸如與功能塊相關(guān)聯(lián)的配置窗口,屏幕等。
[0093]圖13是可用于至少部分地配置諸如圖4的SMFB200的SMFB的用戶接口機(jī)制的一個(gè)示例。該用戶接口機(jī)制包括可以顯示為與SMFB相關(guān)聯(lián)的配置窗口、屏幕等的一部分的表格或矩陣700 (下文中稱為“矩陣700”)。矩陣700包括以行和列排列的多個(gè)單元704。每列對(duì)應(yīng)于狀態(tài)機(jī)功能塊的多個(gè)輸出0UT_D1,0UT_D2, TRANS_IN, TRANS_0UT等中的一個(gè),每行對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)中的一個(gè)。因此,每個(gè)單元704對(duì)應(yīng)于一種狀態(tài)和一個(gè)輸出。在其它示例中,每行可對(duì)應(yīng)于多個(gè)輸出之一,每列可對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)之一。
[0094]矩陣700的輸出“ I”至“4”可分別對(duì)應(yīng)于SMFB的輸出0UT_D1至0UT_D4,且輸出“5”和“6”可分別對(duì)應(yīng)于輸出TRANS_IN和TRANS_0UT。相似地,矩陣700的狀態(tài)“I”至“6”可對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)。另外,在該示例中用戶可以標(biāo)記每個(gè)輸出。例如,在圖13中,將“輸出I”標(biāo)記為“打開(kāi)閥門VLV-101 (OPEN VALVE VLV-101) 標(biāo)記輸出可以幫助理解狀態(tài)機(jī)的操作和/或?qū)顟B(tài)機(jī)與過(guò)程工廠接口。
[0095]程序員可以通過(guò)將配置信息輸入到單元704中來(lái)配置SMEB。特別地,對(duì)于對(duì)應(yīng)于一種狀態(tài)和一個(gè)輸出的一個(gè)特定單元704,程序員可以將指示當(dāng)狀態(tài)機(jī)處于那種狀態(tài)時(shí)應(yīng)該將輸出置為有效的配置數(shù)據(jù)輸入到單元中。在示例矩陣700中,配置數(shù)據(jù)已被輸入到一些單元704中。例如,單元704A包括指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)時(shí)應(yīng)該將輸出0UT_D3置為有效的配置數(shù)據(jù),單元704B包括指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)時(shí)應(yīng)該將輸出TRANS_IN置為有效的配置數(shù)據(jù),以及單元704C包括指示當(dāng)狀態(tài)機(jī)處于“恢復(fù)(RECOVERED) ”狀態(tài)時(shí)應(yīng)該將輸出TRANS_0UT置為有效的配置數(shù)據(jù)。
[0096]在該特定示例中,如果程序員不將配置數(shù)據(jù)榆入到單元704中,則可以假定對(duì)于該特定狀態(tài)不應(yīng)將相應(yīng)輸出置為有效。例如,單元704D和704E不包括X,指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)時(shí),不應(yīng)將輸出0UT_D1和0UT_D2置為有效。在其它實(shí)施例中,程序員可以輸入指示如果處于特定狀態(tài),狀態(tài)機(jī)不應(yīng)將特定輸出置為有效的配置數(shù)據(jù)。相似地,也可以指示對(duì)于特定狀態(tài)和輸出,將輸出置為有效還是將輸出置為無(wú)效無(wú)關(guān)緊要。
[0097]程序員可以使用包括本領(lǐng)域的普通技術(shù)人員所熟知的技術(shù)的任何類型的技術(shù)將配置數(shù)據(jù)輸入到矩陣700中。例如,為了將配置數(shù)據(jù)輸入到單元704中,程序員可以使用鼠標(biāo)、跟蹤球、觸摸屏等來(lái)選擇單元704。然后,用戶可以通過(guò),例如鍵盤直接將配置數(shù)據(jù)輸入到單元704中。替代地,程序員可以選擇單元704,然后從下拉菜單選擇“編輯”、“修改”等選項(xiàng)、或選擇“編輯”按鈕、“修改”按鈕等。然后,用戶接口可以通過(guò)下拉菜單、窗口、顯示屏等向程序員顯示選項(xiàng)列表。例如,該選項(xiàng)列表包括“將輸出置為有效”選項(xiàng)、“將輸出置為無(wú)效”選項(xiàng),和可選地“不理會(huì)”選項(xiàng)。然后,程序員可以使用,例如鍵盤、鼠標(biāo)、跟蹤球、觸摸屏等來(lái)選擇選項(xiàng)之一。如果程序員選擇“將輸出置為有效”選項(xiàng),則配置數(shù)據(jù)指示對(duì)于相應(yīng)狀態(tài)應(yīng)該將相應(yīng)輸出置為有效。例如,“X”可以被顯示在單元中。“I”可以被顯示在單元中,字“TRUE”可以被顯示在單元中,字“ASSERT”可以被顯示在單元中等。如果程序員選擇“將輸出置為無(wú)效”選項(xiàng),則配置數(shù)據(jù)指示對(duì)于相應(yīng)狀態(tài)不應(yīng)將相應(yīng)輸出置為有效。例如,單元可以被留置為空,“O”可以被顯示在單元中,字“FALSE”可以被顯示在單元中,字“DEASSERT”可以被顯示在單元中等。
[0098]盡管示例矩陣700包括用于6種狀態(tài)的行和6個(gè)輸出,可以使用具有不同狀態(tài)和輸出數(shù)目的相似矩陣用于具有不同狀態(tài)和輸出數(shù)目的SMFB。狀態(tài)和輸出的數(shù)目可以是可配置的。
[0099]再一次參考圖7,如前所述,在已確定當(dāng)前狀態(tài)后,可以基于當(dāng)前狀態(tài)來(lái)設(shè)置SMFB的數(shù)據(jù)輸出(塊366)。例如,可以根據(jù)輸入到諸如圖13的矩陣700的矩陣的配置數(shù)據(jù)來(lái)設(shè)置數(shù)據(jù)輸出。
[0100]圖14是可用于將適當(dāng)?shù)妮敵?UT_D1,0UT_D2等置為有效的示例例程850的流程圖。在塊854,將變量z設(shè)置為I。在塊858,將輸出0UT_Dz設(shè)置為由變量STATE指向的陣列變量OUTPUT的元素的比特號(hào)的值z(mì)。OUTPUT陣列的每個(gè)元素可以是指示對(duì)于相應(yīng)一種狀態(tài)的輸出0UT_D1,0UT_D2等的值的變量。例如,OUTPUT [I]可對(duì)應(yīng)于狀態(tài)1,OUTPUT [2]可對(duì)應(yīng)于狀態(tài)2等。另外,每個(gè)元素的每個(gè)比特對(duì)應(yīng)于輸出0UT_D1,0UT_D2等中的一個(gè)。例如,比特I可對(duì)應(yīng)于0UT_D1、比特2可對(duì)應(yīng)于0UT_D2等。例如參考圖13,對(duì)于矩陣700,OUTPUT陣列具有6個(gè)元素,并且元素OUTPUT [I]可以是0X06。
[0101]在塊862,遞增變量Z,在塊866,可確定Z的值是否大于輸出0UT_D1,0UT_D2等的數(shù)目。如果z不大于輸出0UT_D1,0UT_D2等的數(shù)目,則例程回到塊858。否則,例程結(jié)束。
[0102]除了上面所述的那些外,可通過(guò)其它類型的圖形用戶接口來(lái)輸入用于SMFB的配置數(shù)據(jù)。例如,可以通過(guò)與狀態(tài)轉(zhuǎn)換圖相似的圖形用戶接口來(lái)輸入配置數(shù)據(jù)。圖15是可用于配置諸如參照?qǐng)D4描述的SMFB200的SMFB的一個(gè)示例狀態(tài)轉(zhuǎn)換圖900。圖900包括多個(gè)圖形元素904、908、912、916、920、924、928和932。元素904,908和912分別表示狀態(tài)機(jī)的狀態(tài)1、2和3。元素916指示當(dāng)狀態(tài)機(jī)處于狀態(tài)I時(shí),如果將INPUT2置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)2。元素920指示當(dāng)狀態(tài)機(jī)處于狀態(tài)I時(shí),如果將INPUT3置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)3。元素924指示當(dāng)狀態(tài)機(jī)處于狀態(tài)2時(shí),如果將INPUTl置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)1,以及元素928指示當(dāng)狀態(tài)機(jī)處于狀態(tài)3時(shí),如果將INPUTl置為有效,它應(yīng)轉(zhuǎn)換到狀態(tài)I。相似地,元素932指示當(dāng)狀態(tài)機(jī)處于狀態(tài)3時(shí),如果將INPUT4置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)2。
[0103]該狀態(tài)轉(zhuǎn)換表900還包括與狀態(tài)I相關(guān)聯(lián)的轉(zhuǎn)換入元素902,903和轉(zhuǎn)換出元素905,與狀態(tài)2相關(guān)聯(lián)的轉(zhuǎn)換入元素906,907和轉(zhuǎn)換出元素909,以及與狀態(tài)3相關(guān)聯(lián)的轉(zhuǎn)換入元素911和轉(zhuǎn)換出元素913,914。特別地,如果狀態(tài)機(jī)處于狀態(tài)I且INPUT3被置為有效,狀態(tài)機(jī)應(yīng)當(dāng)執(zhí)行轉(zhuǎn)換出元素905,轉(zhuǎn)換至狀態(tài)3,并且執(zhí)行狀態(tài)3的轉(zhuǎn)換入元素911。進(jìn)一步地,如果狀態(tài)機(jī)處于狀態(tài)2且INPUTl被置為有效,狀態(tài)機(jī)應(yīng)當(dāng)執(zhí)行轉(zhuǎn)換出元素909,轉(zhuǎn)換至狀態(tài)1,并且執(zhí)行轉(zhuǎn)換入元素902。應(yīng)當(dāng)理解的是,在任一狀態(tài)之間或任一狀態(tài)中,轉(zhuǎn)換入元素和/或轉(zhuǎn)換出元素可以是共同的。例如,轉(zhuǎn)換入元素902,903可以是相同的,由此狀態(tài)機(jī)響應(yīng)于狀態(tài)機(jī)從狀態(tài)2或狀態(tài)3之一轉(zhuǎn)換至狀態(tài)I而執(zhí)行相關(guān)聯(lián)的轉(zhuǎn)換入動(dòng)作。又例如,轉(zhuǎn)換出元素913,914可以是相同的,由此狀態(tài)機(jī)響應(yīng)于狀態(tài)機(jī)轉(zhuǎn)換至狀態(tài)I (響應(yīng)于INPUTl被置為有效)或狀態(tài)2(響應(yīng)于INPUT4被置為有效)之一而執(zhí)行相關(guān)聯(lián)的轉(zhuǎn)換出動(dòng)作。
[0104]一般地,可以由軟件、固件或硬件或者軟件,固件和/或硬件的一些組合來(lái)實(shí)現(xiàn)SMFB。例如,可以由控制器12a、16a,I/O設(shè)備24,邏輯求解器50和設(shè)備22、23、60、62中的一個(gè)或多個(gè)來(lái)實(shí)現(xiàn)SMFB。作為另一個(gè)示例,可以由一個(gè)或多個(gè)工作站18a和20a來(lái)實(shí)現(xiàn)SMFB。例如,可以由工作站18a和/或工作站20a來(lái)實(shí)現(xiàn)SMFB,作為測(cè)試過(guò)程工廠的操作或提供操作員訓(xùn)練的仿真的一部分。在一些實(shí)施例中,SMFB可以由根據(jù)軟件由可編程邏輯設(shè)備配置的處理器來(lái)實(shí)現(xiàn),該可編程邏輯設(shè)備可以是例如包括一個(gè)或多個(gè)門陣列、標(biāo)準(zhǔn)單元、現(xiàn)場(chǎng)可編程門陣列(FPGA)、PROM、EPROM、EEPROM、可編程陣列邏輯(PAL)、可編程邏輯陣列(PLA)等的設(shè)備。
[0105]圖8的塊404、408,412,416,420和458中的每一個(gè)可以由軟件、固件、或硬件或者軟件、固件和/或硬件的一些組合來(lái)實(shí)現(xiàn)。另外,盡管將圖10-12和圖14的流程圖描述為例程,但這些流程圖也可以由軟件、固件、或硬件或者軟件、固件和/或硬件的一些組合來(lái)實(shí)現(xiàn)。
[0106]諸如上述用戶接口的用戶接口的實(shí)施例可以整個(gè)地或部分地由例如根據(jù)軟件程序配置的處理器來(lái)實(shí)現(xiàn)。例如,工作站18a或20a、或一些其它計(jì)算機(jī)可以整個(gè)地或部分地實(shí)現(xiàn)上述用戶接口。用于實(shí)現(xiàn)用戶接口的實(shí)施例的軟件程序可以體現(xiàn)為存儲(chǔ)在諸如硬盤、RAM、電池備份RAM、ROM、CD-ROM、PROM、EPROM、EEPROM、DVD、閃存等的有形介質(zhì)上、或存儲(chǔ)在諸如與處理器相關(guān)聯(lián)的RAM的存儲(chǔ)器上,但是本領(lǐng)域的普通技術(shù)人員將很容易地理解其整個(gè)程序或部分程序可替代地可以由除處理器之外的設(shè)備來(lái)執(zhí)行,和/或以熟知的方式體現(xiàn)在固件和/或?qū)S糜布稀?br>
[0107]盡管本發(fā)明可進(jìn)行各種修改和替換構(gòu)造,在此已在附圖中示出并詳細(xì)描述了本發(fā)明的特定說(shuō)明性實(shí)施例。但是,應(yīng)該理解并非企圖限制本公開(kāi)于所公開(kāi)的特定形式,而是相反,本發(fā)明覆蓋落入由所附權(quán)利要求書定義的本公開(kāi)的精神和范圍內(nèi)的所有修改、替換構(gòu)造和等同物。
【權(quán)利要求】
1.一種用于經(jīng)由具有顯示設(shè)備和輸入設(shè)備的計(jì)算設(shè)備來(lái)配置與過(guò)程工廠相關(guān)聯(lián)的功能塊的方法,所述功能塊用于實(shí)現(xiàn)狀態(tài)機(jī),所述方法包括: 提供由所述顯示設(shè)備顯示的圖形用戶接口,所述圖形用戶接口指示與所述功能塊相關(guān)聯(lián)的且被設(shè)置在具有第一維度和第二維度的矩陣中的第一多個(gè)單元,其中沿著所述第一維度的位置指示狀態(tài)機(jī)狀態(tài)和與其相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作標(biāo)識(shí)符,以及沿著所述第二維度的位置對(duì)應(yīng)于狀態(tài)機(jī)輸入,以使得所述第一多個(gè)單元基于所述第一多個(gè)單元相對(duì)于所述第一和第二維度的所述位置,定義輸入/狀態(tài)對(duì)及其轉(zhuǎn)換動(dòng)作; 經(jīng)由所述輸入設(shè)備接收與所述第一多個(gè)單元的一個(gè)單元相關(guān)聯(lián)的狀態(tài)轉(zhuǎn)換數(shù)據(jù),所述狀態(tài)轉(zhuǎn)換數(shù)據(jù)依循所述過(guò)程工廠中的對(duì)應(yīng)于由所述單元定義的所述輸入/狀態(tài)對(duì)的狀況,識(shí)別所述狀態(tài)機(jī)轉(zhuǎn)換至的下一狀態(tài); 經(jīng)由所述輸入設(shè)備接收轉(zhuǎn)換動(dòng)作數(shù)據(jù),所述轉(zhuǎn)換動(dòng)作數(shù)據(jù)根據(jù)所述狀態(tài)轉(zhuǎn)換數(shù)據(jù),識(shí)別將要執(zhí)行的至少一個(gè)轉(zhuǎn)換動(dòng)作;以及 將所述狀態(tài)轉(zhuǎn)換數(shù)據(jù)和所述轉(zhuǎn)換動(dòng)作數(shù)據(jù)存儲(chǔ)在與所述功能塊相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)上。
2.根據(jù)權(quán)利要求1所述的方法,其中所述轉(zhuǎn)換動(dòng)作數(shù)據(jù)識(shí)別I)當(dāng)從對(duì)應(yīng)于所述單元的所述狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換時(shí)將要執(zhí)行的轉(zhuǎn)換出動(dòng)作和2)當(dāng)轉(zhuǎn)換入所述下一狀態(tài)時(shí)將要執(zhí)行的轉(zhuǎn)換入動(dòng)作中的至少一個(gè)。
3.根據(jù)權(quán)利要求2所述的方法,還包括: 在所述顯示設(shè)備上顯示所述第一多個(gè)單元;以及 在所述單元中顯示所述下一狀態(tài)的指示,所述轉(zhuǎn)換出動(dòng)作的指示和所述轉(zhuǎn)換入動(dòng)作的指示。
4.根據(jù)權(quán)利要求3所述的方法,其中在所述單元中顯示所述下一狀態(tài)的所述指示,所述轉(zhuǎn)換出動(dòng)作的所述指示和所述轉(zhuǎn)換入動(dòng)作的所述指示包括: 在所述單元的第一子單元中顯示所述下一狀態(tài)的所述指示; 在所述單元的第二子單元中顯示所述轉(zhuǎn)換出動(dòng)作的所述指示;以及 在所述單元的第三子單元中顯示所述轉(zhuǎn)換入動(dòng)作的所述指示。
5.根據(jù)權(quán)利要求3所述的方法,其中在所述顯示設(shè)備上顯示所述第一多個(gè)單元包括:顯示所述矩陣,其中所述第一維度對(duì)齊至少一行單元以及所述第二維度對(duì)齊多列單元,以使得所述至少一行單元中的每一行與所述狀態(tài)機(jī)輸入中的一個(gè)相關(guān)聯(lián),并且所述多列單元中的每一列與所述狀態(tài)機(jī)狀態(tài)中的一個(gè)以及所述轉(zhuǎn)換動(dòng)作標(biāo)識(shí)符中的一個(gè)相關(guān)聯(lián)。
6.根據(jù)權(quán)利要求3所述的方法,其中在所述顯示設(shè)備上顯示所述第一多個(gè)單元包括:顯示所述矩陣,其中所述第一維度對(duì)齊至少一列單元以及所述第二維度對(duì)齊多行單元,以使得所述多行單元中的每一行與所述狀態(tài)機(jī)狀態(tài)中的一個(gè)以及所述轉(zhuǎn)換動(dòng)作標(biāo)識(shí)符中的一個(gè)相關(guān)聯(lián),并且所述至少一列單兀中的每一列與所述狀態(tài)機(jī)輸入中的一個(gè)相關(guān)聯(lián)。
7.根據(jù)權(quán)利要求1所述的方法,其中所述狀態(tài)機(jī)輸入中的每一個(gè)的特定值是邏輯1,邏輯O,邏輯TRUE或邏輯FALSE中的一個(gè)。
8.根據(jù)權(quán)利要求1所述的方法,其中所述圖形用戶接口還包括與所述功能塊相關(guān)聯(lián)的第二多個(gè)單元,其中所述第二多個(gè)單元中的每一個(gè)對(duì)應(yīng)于所述功能塊的多個(gè)輸出中的各自的一個(gè)和所述狀態(tài)機(jī)狀態(tài)中的各自的一個(gè),以及其中所述方法還包括: 經(jīng)由所述輸入設(shè)備接收與所述第二多個(gè)單元中的額外單元相關(guān)聯(lián)的輸出配置數(shù)據(jù),其中所述輸出配置數(shù)據(jù)指示當(dāng)所述狀態(tài)機(jī)處于對(duì)應(yīng)于所述額外單元的所述狀態(tài)機(jī)狀態(tài)時(shí)對(duì)應(yīng)于所述額外單元的輸出值,以及與所述額外單元相關(guān)聯(lián)的至少一個(gè)輸出轉(zhuǎn)換動(dòng)作。
9.根據(jù)權(quán)利要求1所述的方法,其中所述至少一個(gè)轉(zhuǎn)換動(dòng)作將由所述功能塊來(lái)執(zhí)行。
10.根據(jù)權(quán)利要求1所述的方法,還包括: 接收與所述狀態(tài)機(jī)輸入相關(guān)聯(lián)的優(yōu)先級(jí)數(shù)據(jù); 存儲(chǔ)與所述狀態(tài)機(jī)輸入相關(guān)聯(lián)的所述優(yōu)先級(jí)數(shù)據(jù)。
11.根據(jù)權(quán)利要求1所述的方法,還包括: 接收指示所述狀態(tài)機(jī)輸入中的一個(gè)或多個(gè),如果有的話,是否應(yīng)當(dāng)被所述狀態(tài)機(jī)忽略的數(shù)據(jù); 存儲(chǔ)指示所述狀態(tài)機(jī)輸入中的一個(gè)或多個(gè),如果有的話,是否應(yīng)當(dāng)被所述狀態(tài)機(jī)忽略的所述數(shù)據(jù)。
12.根據(jù)權(quán)利要求1所述的方法,其中所述狀態(tài)機(jī)輸入與過(guò)程控制系統(tǒng),過(guò)程控制系統(tǒng)的模擬,安全系統(tǒng)和安全系統(tǒng)的模擬中的至少一個(gè)相關(guān)聯(lián)。
13.根據(jù)權(quán)利要求1所述的方法,還包括從與所述過(guò)程工廠相關(guān)聯(lián)的額外功能塊或操作員接口中的一個(gè)接收所述狀態(tài)機(jī)輸入。
14.存儲(chǔ)機(jī)器可讀指令的有形介質(zhì),包括: 第一代碼,用于經(jīng)由顯示設(shè)備提供圖形用戶接口,以用于配置狀態(tài)機(jī)在狀態(tài)機(jī)狀態(tài)中的轉(zhuǎn)換,所述圖形用戶接口指示設(shè)置在具有第一維度和第二維度的矩陣中的第一多個(gè)單元,其中沿著所述第一維度的位置指示所述狀態(tài)機(jī)狀態(tài)和與其相關(guān)聯(lián)的轉(zhuǎn)換動(dòng)作標(biāo)識(shí)符,以及沿著所述第二維度的位置對(duì)應(yīng)于狀態(tài)機(jī)輸入,以使得所述第一多個(gè)單元基于所述第一多個(gè)單元相對(duì)于所述第一和第二維度的所述位置,定義輸入/狀態(tài)對(duì)及其轉(zhuǎn)換動(dòng)作; 第二代碼,用于經(jīng)由所述圖形用戶接口接收與所述第一多個(gè)單元的一個(gè)單元相關(guān)聯(lián)的狀態(tài)轉(zhuǎn)換數(shù)據(jù),所述狀態(tài)轉(zhuǎn)換數(shù)據(jù)根據(jù)由所述單元定義的所述輸入/狀態(tài)對(duì),識(shí)別所述狀態(tài)機(jī)轉(zhuǎn)換至的下一狀態(tài); 第三代碼,用于經(jīng)由所述圖形用戶接口接收轉(zhuǎn)換動(dòng)作數(shù)據(jù),所述轉(zhuǎn)換動(dòng)作數(shù)據(jù)根據(jù)所述狀態(tài)轉(zhuǎn)換數(shù)據(jù),識(shí)別將要執(zhí)行的至少一個(gè)轉(zhuǎn)換動(dòng)作;以及 第四代碼,用于將所述狀態(tài)轉(zhuǎn)換數(shù)據(jù)和所述轉(zhuǎn)換動(dòng)作數(shù)據(jù)存儲(chǔ)在與實(shí)現(xiàn)過(guò)程工廠中的所述狀態(tài)機(jī)的所述功能塊相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)上,以使得當(dāng)所述過(guò)程工廠中的狀況對(duì)應(yīng)于與所述單元相關(guān)聯(lián)的所述輸入/狀態(tài)對(duì)時(shí),所述狀態(tài)機(jī)轉(zhuǎn)換至所述下一狀態(tài)。
15.根據(jù)權(quán)利要求14所述的有形介質(zhì),其中所述轉(zhuǎn)換動(dòng)作數(shù)據(jù)識(shí)別I)當(dāng)從對(duì)應(yīng)于所述單元的所述狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換時(shí)將要執(zhí)行的轉(zhuǎn)換出動(dòng)作和2)當(dāng)轉(zhuǎn)換入所述下一狀態(tài)時(shí)將要執(zhí)行的轉(zhuǎn)換入動(dòng)作中的至少一個(gè)。
16.根據(jù)權(quán)利要求15所述的有形介質(zhì),還包括: 第五代碼,用于在所述顯示設(shè)備上顯示所述第一多個(gè)單元;以及 第六代碼,用于在所述單元中顯示所述下一狀態(tài)的指示,所述轉(zhuǎn)換出動(dòng)作的指示和所述轉(zhuǎn)換入動(dòng)作的指示。
17.根據(jù)權(quán)利要求16所述的有形介質(zhì),其中所述第六代碼通過(guò)以下方式在所述單元中顯示所述下一狀態(tài)的所述指示,所述轉(zhuǎn)換出動(dòng)作的所述指示和所述轉(zhuǎn)換入動(dòng)作的所述指示: 在所述單元的第一子單元中顯示所述下一狀態(tài)的所述指示; 在所述單元的第二子單元中顯示所述轉(zhuǎn)換出動(dòng)作的所述指示;以及 在所述單元的第三子單元中顯示所述轉(zhuǎn)換入動(dòng)作的所述指示。
18.根據(jù)權(quán)利要求16所述的有形介質(zhì),其中所述第五代碼通過(guò)以下方式在所述顯示設(shè)備上顯示所述第一多個(gè)單元:顯示所述矩陣,其中所述第一維度對(duì)齊至少一行單元以及所述第二維度對(duì)齊多列單元,以使得所述至少一行單元中的每一行與所述狀態(tài)機(jī)輸入中的一個(gè)相關(guān)聯(lián),并且所述多列單元中的每一列與所述狀態(tài)機(jī)狀態(tài)中的一個(gè)以及所述轉(zhuǎn)換動(dòng)作標(biāo)識(shí)符中的一個(gè)相關(guān)聯(lián)。
19.根據(jù)權(quán)利要求16所述的有形介質(zhì),其中所述第五代碼通過(guò)以下方式在所述顯示設(shè)備上顯示所述第一多個(gè)單元:顯示所述矩陣,其中所述第一維度對(duì)齊至少一列單元以及所述第二維度對(duì)齊多行單元,以使得所述多行單元中的每一行與所述狀態(tài)機(jī)狀態(tài)中的一個(gè)以及所述轉(zhuǎn)換動(dòng)作標(biāo)識(shí)符中的一個(gè)相關(guān)聯(lián),并且所述至少一列單元中的每一列與所述狀態(tài)機(jī)輸入中的一個(gè)相關(guān)聯(lián)。
20.根據(jù)權(quán)利要求14所述的有形介質(zhì),其中所述狀態(tài)機(jī)輸入中的每一個(gè)的特定值是邏輯I,邏輯0,邏輯TRUE或邏輯FALSE中的一個(gè)。
21.根據(jù)權(quán)利要求14所述的有形介質(zhì),其中所述圖形用戶接口還包括與所述功能塊相關(guān)聯(lián)的第二多個(gè)單元,其中所述第二多個(gè)單元中的每一個(gè)對(duì)應(yīng)于所述功能塊的多個(gè)輸出中的各自的一個(gè)和所述狀態(tài)機(jī)狀態(tài)中的各自的一個(gè),以及其中所述有形介質(zhì)還包括: 第五代碼,用于經(jīng)由所述輸入設(shè)備接收與所述第二多個(gè)單元中的額外單元相關(guān)聯(lián)的輸出配置數(shù)據(jù),其中所述輸出配置數(shù)據(jù)指示當(dāng)所述狀態(tài)機(jī)處于對(duì)應(yīng)于所述額外單元的所述狀態(tài)機(jī)狀態(tài)時(shí)對(duì)應(yīng)于所述額外單元的輸出值,以及與所述額外單元相關(guān)聯(lián)的至少一個(gè)輸出轉(zhuǎn)換動(dòng)作。
22.根據(jù)權(quán)利要求14所述的有形介質(zhì),其中所述狀態(tài)機(jī)輸入與過(guò)程控制系統(tǒng),過(guò)程控制系統(tǒng)的模擬,安全系統(tǒng)和安全系統(tǒng)的模擬中的至少一個(gè)相關(guān)聯(lián)。
23.根據(jù)權(quán)利要求14所述的有形介質(zhì),還包括第五代碼,用于從與所述過(guò)程工廠相關(guān)聯(lián)的額外功能塊或操作員接口中的一個(gè)接收所述狀態(tài)機(jī)輸入。
24.一種用于運(yùn)行與過(guò)程工廠相關(guān)聯(lián)的第一功能塊的方法,所述第一功能塊實(shí)現(xiàn)具有轉(zhuǎn)換表格和當(dāng)前狀態(tài)的狀態(tài)機(jī),所述方法包括: 接收用于所述狀態(tài)機(jī)的輸入,所述輸入指示所述過(guò)程工廠中的狀況; 檢查所述轉(zhuǎn)換表格,以基于所述當(dāng)前狀態(tài)和所述輸入識(shí)別下一狀態(tài)和至少一個(gè)轉(zhuǎn)換動(dòng)作; 由所述第一功能塊啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作; 將所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài);以及 將功能塊輸出提供給第二功能塊以用于控制現(xiàn)場(chǎng)設(shè)備,其中所述功能塊輸出基于所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)。
25.根據(jù)權(quán)利要求24所述的方法,其中所述至少一個(gè)轉(zhuǎn)換動(dòng)作指定轉(zhuǎn)換出動(dòng)作和轉(zhuǎn)換入動(dòng)作,并且其中啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作包括: 由所述第一功能塊啟動(dòng)所述轉(zhuǎn)換出動(dòng)作;以及 由所述第一功能塊啟動(dòng)所述轉(zhuǎn)換入動(dòng)作。
26.根據(jù)權(quán)利要求25所述的方法,其中所述第一功能塊在啟動(dòng)所述轉(zhuǎn)換入動(dòng)作之前啟動(dòng)所述轉(zhuǎn)換出動(dòng)作。
27.根據(jù)權(quán)利要求25所述的方法,其中所述第一功能塊在將所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài)之前啟動(dòng)所述轉(zhuǎn)換入動(dòng)作。
28.根據(jù)權(quán)利要求25所述的方法,其中所述第一功能塊在將所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài)之前啟動(dòng)所述轉(zhuǎn)換出動(dòng)作。
29.根據(jù)權(quán)利要求24所述的方法,其中啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作包括:將額外功能塊輸出提供給第三功能塊,所述額外功能塊輸出指示所述至少一個(gè)轉(zhuǎn)換動(dòng)作。
30.根據(jù)權(quán)利要求24所述的方法,其中啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作包括: 從數(shù)據(jù)庫(kù)獲取與所述至少一個(gè)轉(zhuǎn)換動(dòng)作相關(guān)聯(lián)的至少一個(gè)轉(zhuǎn)換配置項(xiàng)目;以及 執(zhí)行所述至少一個(gè)轉(zhuǎn)換配置項(xiàng)目。
31.根據(jù)權(quán)利要求24所述的方法,還包括: 響應(yīng)于將所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài),設(shè)置與所述當(dāng)前狀態(tài)相關(guān)聯(lián)的至少一個(gè)輸出。
32.根據(jù)權(quán)利要求31所述的方法,其中設(shè)置所述至少一個(gè)輸出包括:設(shè)置狀態(tài)指示輸出和轉(zhuǎn)換輸出中的至少一個(gè)。
33.用于過(guò)程系統(tǒng)的狀態(tài)機(jī)控制器單元,所述狀態(tài)機(jī)控制器單元可通信地耦接至現(xiàn)場(chǎng)設(shè)備并實(shí)現(xiàn)具有轉(zhuǎn)換表格和當(dāng)前狀態(tài)的狀態(tài)機(jī),所述狀態(tài)機(jī)控制器單元包括: 輸入模塊,用于接收指示所述過(guò)程系統(tǒng)中的狀況的輸入; 執(zhí)行模塊,其被配置為: 檢查所述轉(zhuǎn)換表格,以基于所述當(dāng)前狀態(tài)和所述輸入識(shí)別下一狀態(tài)和至少一個(gè)轉(zhuǎn)換動(dòng)作; 啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作; 將所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài);以及 提供輸出以用于控制所述現(xiàn)場(chǎng)設(shè)備,其中所述輸出基于所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)。
34.根據(jù)權(quán)利要求33所述的狀態(tài)機(jī)控制器單元,其中所述至少一個(gè)轉(zhuǎn)換動(dòng)作指定轉(zhuǎn)換出動(dòng)作和轉(zhuǎn)換入動(dòng)作,其中所述執(zhí)行模塊通過(guò)啟動(dòng)所述轉(zhuǎn)換出動(dòng)作和啟動(dòng)所述轉(zhuǎn)換入動(dòng)作來(lái)啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作。
35.根據(jù)權(quán)利要求34所述的狀態(tài)機(jī)控制器單元,其中所述執(zhí)行模塊在啟動(dòng)所述轉(zhuǎn)換入動(dòng)作之前啟動(dòng)所述轉(zhuǎn)換出動(dòng)作。
36.根據(jù)權(quán)利要求34所述的狀態(tài)機(jī)控制器單元,其中所述執(zhí)行模塊在將所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài)之前啟動(dòng)所述轉(zhuǎn)換入動(dòng)作。
37.根據(jù)權(quán)利要求34所述的狀態(tài)機(jī)控制器單元,其中所述執(zhí)行模塊在將所述狀態(tài)機(jī)的所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài)之前啟動(dòng)所述轉(zhuǎn)換出動(dòng)作。
38.根據(jù)權(quán)利要求33所述的狀態(tài)機(jī)控制器單元,其中所述執(zhí)行模塊通過(guò)將額外輸出提供給額外模塊來(lái)啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作,所述額外輸出指示所述至少一個(gè)轉(zhuǎn)換動(dòng)作。
39.根據(jù)權(quán)利要求33所述的狀態(tài)機(jī)控制器單元,其中所述執(zhí)行模塊通過(guò)以下方式來(lái)啟動(dòng)所述至少一個(gè)轉(zhuǎn)換動(dòng)作: 從數(shù)據(jù)庫(kù)獲取與所述至少一個(gè)轉(zhuǎn)換動(dòng)作相關(guān)聯(lián)的至少一個(gè)轉(zhuǎn)換配置項(xiàng)目;以及 執(zhí)行所述至少一個(gè)轉(zhuǎn)換配置項(xiàng)目。
40.根據(jù)權(quán)利要求33所述的狀態(tài)機(jī)控制器單元,其中所述執(zhí)行模塊進(jìn)一步地被配置為響應(yīng)于將所述當(dāng)前狀態(tài)設(shè)置為所述下一狀態(tài),設(shè)置與所述當(dāng)前狀態(tài)相關(guān)聯(lián)的至少一個(gè)輸出。
41.根據(jù)權(quán)利要求40所述的狀態(tài)機(jī)控制器單元,其中所述執(zhí)行模塊通過(guò)設(shè)置狀態(tài)指示輸出和轉(zhuǎn)換輸出中的至少一個(gè)來(lái)設(shè)置所述至少一個(gè)輸出。
【文檔編號(hào)】G08C17/02GK104298189SQ201410332331
【公開(kāi)日】2015年1月21日 申請(qǐng)日期:2014年7月8日 優(yōu)先權(quán)日:2013年7月9日
【發(fā)明者】G·K·勞, G·R·謝里夫 申請(qǐng)人:費(fèi)希爾-羅斯蒙特系統(tǒng)公司