專利名稱:具有用戶可修改的狀態(tài)轉(zhuǎn)換配置數(shù)據(jù)庫(kù)的狀態(tài)機(jī)功能塊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及用于進(jìn)程工廠的功能塊,尤其涉及配置和實(shí)現(xiàn)與進(jìn)程工廠相關(guān)的狀態(tài)機(jī)。
背景技術(shù):
進(jìn)程控制系統(tǒng),如在化學(xué)、石油或其它加工進(jìn)程中使用的那些,通常包括通過模擬的、數(shù)字的或組合模擬/數(shù)字總線或線路通信地連接到至少一個(gè)主機(jī)或操作員工作站并連接到一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備的一個(gè)或多個(gè)進(jìn)程控制器??梢允抢玳y門、閥門定位器、開關(guān)和發(fā)送機(jī)(例如,溫度、壓力和流速傳感器)的現(xiàn)場(chǎng)設(shè)備在進(jìn)程工廠內(nèi)執(zhí)行諸如打開或關(guān)閉閥門以及測(cè)量進(jìn)程參數(shù)的功能。進(jìn)程控制器接收指示由現(xiàn)場(chǎng)設(shè)備所做的進(jìn)程測(cè)量的信號(hào)和/或其它與現(xiàn)場(chǎng)設(shè)備相關(guān)的信息,使用這些信息來實(shí)現(xiàn)控制例程,然后產(chǎn)生經(jīng)總線或線路發(fā)送到現(xiàn)場(chǎng)設(shè)備的控制信號(hào),以控制進(jìn)程的運(yùn)行。通常使由操作員工作站執(zhí)行的一個(gè)或多個(gè)應(yīng)用程序能夠得到來自現(xiàn)場(chǎng)設(shè)備和控制器的信息,以使操作員能夠相對(duì)于進(jìn)程執(zhí)行任何期望的功能,諸如配置進(jìn)程、察看進(jìn)程的當(dāng)前狀態(tài)、修改進(jìn)程的運(yùn)行等。
另外,在許多進(jìn)程中,提供單獨(dú)的安全系統(tǒng)以檢測(cè)進(jìn)程工廠內(nèi)與安全相關(guān)的重大問題,當(dāng)發(fā)生可能造成或?qū)е鹿S中的嚴(yán)重危害問題時(shí),諸如有毒化學(xué)物質(zhì)泄漏、爆炸等時(shí),自動(dòng)地關(guān)閉閥門、對(duì)設(shè)備關(guān)電、切換工廠內(nèi)的流程等。這些安全系統(tǒng)通常具有遠(yuǎn)離標(biāo)準(zhǔn)進(jìn)程控制控制器的一個(gè)或多個(gè)單獨(dú)控制器,稱為邏輯解算器(solver),它們通過安裝在進(jìn)程工廠內(nèi)的單獨(dú)總線或通信線路連接到安全現(xiàn)場(chǎng)設(shè)備。邏輯解算器使用安全現(xiàn)場(chǎng)設(shè)備來檢測(cè)與重大事件相關(guān)的進(jìn)程狀況,諸如特定安全開關(guān)或關(guān)閉閥門的位置、進(jìn)程中的上溢或下溢、重要的功率產(chǎn)生或控制設(shè)備的操作、故障檢測(cè)設(shè)備的操作等,從而檢測(cè)進(jìn)程工廠內(nèi)的“事件”。當(dāng)檢測(cè)到一事件(通常稱為“起因”)時(shí),安全控制器采取一些動(dòng)作(通常稱為“結(jié)果”)以限制事件的破壞性,諸如關(guān)閉閥門、關(guān)掉設(shè)備、對(duì)工廠的一些部件關(guān)電等。一般地,這些動(dòng)作或結(jié)果包括將安全設(shè)備切換到被設(shè)計(jì)用來防止進(jìn)程工廠內(nèi)的嚴(yán)重或危險(xiǎn)狀況的跳閘或“安全”操作模式。
諸如進(jìn)程控制系統(tǒng)和安全系統(tǒng)的進(jìn)程工廠內(nèi)的系統(tǒng)通??梢员3指櫢鞣N進(jìn)程和/或系統(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)。目前,可以使用編程語言寫的例程來跟蹤系統(tǒng)的狀態(tài)。編寫這些例程是乏味、費(fèi)時(shí)和充滿錯(cuò)誤的。在安全系統(tǒng)中,這種錯(cuò)誤會(huì)是很嚴(yán)重的,因?yàn)榘踩到y(tǒng)正確操作的失敗會(huì)導(dǎo)致工廠員工方的嚴(yán)重受傷或甚至是死亡以及導(dǎo)致工廠內(nèi)裝備和材料潛在的成百萬元的破壞。
而且,可以使用用于可編程控制器的編程技術(shù)來跟蹤系統(tǒng)的狀態(tài),該編程技術(shù)由國(guó)際電工委員會(huì)(International Electrotechnical Commission,IEC、)標(biāo)準(zhǔn)化,通常稱為“順序功能圖表”(在IEC 61131-3標(biāo)準(zhǔn)中提出)。但如本領(lǐng)域普通技術(shù)人員所已知的那樣,使用順序功能圖表來保持跟蹤系統(tǒng)的狀態(tài)會(huì)是很困難的。另外,與用編程語言寫的例程相似,創(chuàng)建順序功能圖表會(huì)是乏味、費(fèi)時(shí)和充滿錯(cuò)誤的。
發(fā)明內(nèi)容
進(jìn)程工廠內(nèi)的控制系統(tǒng)、安全系統(tǒng)等可以每個(gè)都使用能夠容易地集成到功能塊圖表編程環(huán)境中的一個(gè)或多種狀態(tài)機(jī)功能塊。這種狀態(tài)機(jī)功能塊可以包括一個(gè)或多個(gè)輸入,用于使由狀態(tài)機(jī)功能塊實(shí)現(xiàn)的狀態(tài)機(jī)改變狀態(tài)。如果有的話,該狀態(tài)機(jī)功能塊可以基于指示下一狀態(tài)的狀態(tài)轉(zhuǎn)換配置數(shù)據(jù)來確定它要轉(zhuǎn)換的下一種狀態(tài)??梢曰跔顟B(tài)機(jī)的當(dāng)前狀態(tài)和至少一個(gè)輸入從數(shù)據(jù)庫(kù)獲得所述狀態(tài)轉(zhuǎn)換配置數(shù)據(jù)。狀態(tài)機(jī)功能塊還可以包括基于狀態(tài)機(jī)的狀態(tài)而產(chǎn)生的一個(gè)或多個(gè)輸出。狀態(tài)機(jī)功能塊的輸入可以與,例如進(jìn)程控制系統(tǒng)或安全系統(tǒng)相關(guān)聯(lián),輸出可以用于例如進(jìn)程控制系統(tǒng)或安全系統(tǒng)中的現(xiàn)場(chǎng)設(shè)備的控制。
狀態(tài)機(jī)功能塊可以,至少部分地通過圖形用戶接口機(jī)制來進(jìn)行配置。圖形用戶接口機(jī)制可以包括多個(gè)圖形元素(element),其中至少一些圖形元素可用于指定狀態(tài)機(jī)應(yīng)當(dāng)如何在狀態(tài)間進(jìn)行轉(zhuǎn)換。在一個(gè)示例中,可以在計(jì)算機(jī)的顯示設(shè)備上顯示多個(gè)單元(cell),其中第一多個(gè)單元的每個(gè)單元對(duì)應(yīng)于至少一個(gè)輸入和狀態(tài)機(jī)的多種狀態(tài)的至少一些可能配對(duì)之一。該多個(gè)單元可以排列在一個(gè)矩陣中,例如,其中矩陣的列對(duì)應(yīng)于狀態(tài)機(jī)的多個(gè)可能狀態(tài),而矩陣的行對(duì)應(yīng)于至狀態(tài)機(jī)的輸入(或與之相反)。在對(duì)應(yīng)于一特定狀態(tài)和一特定輸入的單元中,編程者可以使用計(jì)算機(jī)的輸入設(shè)備來輸入指示下一狀態(tài)的配置數(shù)據(jù)。當(dāng)狀態(tài)機(jī)處于對(duì)應(yīng)于該單元的狀態(tài)并且對(duì)應(yīng)于該單元的輸入是特定值時(shí),下一狀態(tài)配置數(shù)據(jù)指示狀態(tài)機(jī)應(yīng)轉(zhuǎn)換的下一狀態(tài)。
作為另一示例,圖形用戶接口可以包括一個(gè)圖表,該圖表上的對(duì)象表示狀態(tài)機(jī)的狀態(tài)。編程者可以,例如將箭頭從一種狀態(tài)放到另一種狀態(tài)并將輸入與該箭頭相關(guān)聯(lián)。這可以指示當(dāng)指定輸入是特定值時(shí)狀態(tài)機(jī)應(yīng)從一種狀態(tài)轉(zhuǎn)換到另一狀態(tài)。
與保持跟蹤與控制系統(tǒng)或安全系統(tǒng)相關(guān)的狀態(tài)的現(xiàn)有技術(shù)相比,如下文中所述的狀態(tài)機(jī)功能塊的實(shí)施例可更容易配置。例如,可以用諸如上述機(jī)制的圖形用戶接口機(jī)制來實(shí)現(xiàn)一些或所有的配置。另外,狀態(tài)機(jī)功能塊的實(shí)施例可以容易地集成到使用功能塊邏輯的控制器、邏輯解算器、現(xiàn)場(chǎng)設(shè)備等中,因?yàn)榭梢酝ㄟ^互連狀態(tài)機(jī)功能塊的輸入和輸出到其它功能塊、控制策略內(nèi)的元素、操作員接口等,用與其它類型的功能塊相同或相似的方式來集成狀態(tài)機(jī)功能塊。并且,狀態(tài)機(jī)功能的操作可以容易地進(jìn)行文檔記錄,因?yàn)槠洳僮骺梢灾辽俨糠值匾灾T如矩陣的形式圖形地進(jìn)行說明。狀態(tài)機(jī)功能塊或用于配置狀態(tài)機(jī)功能塊的機(jī)制的不同實(shí)施例可以提供一個(gè)或多個(gè)上述優(yōu)點(diǎn),或不提供上述任何優(yōu)點(diǎn)。
通過參考下面詳細(xì)說明和附圖將更好地理解下文所述的方法、裝置和系統(tǒng)的特點(diǎn)和優(yōu)點(diǎn),在附圖中圖1是一個(gè)示例進(jìn)程工廠的方框圖;圖2是示意地在圖1中說明的一個(gè)示例工作站的方框圖;圖3是描述控制模塊的顯示器的一個(gè)示例;圖4是狀態(tài)機(jī)功能塊的表示的一個(gè)示例;圖5是用于輸入狀態(tài)機(jī)功能塊的下一狀態(tài)配置數(shù)據(jù)的一個(gè)示例矩陣;圖6是其中在矩陣中顯示下一狀態(tài)配置數(shù)據(jù)的圖5的所述示例矩陣;圖7是狀態(tài)機(jī)功能塊的操作的示例方法的流程圖;圖8是一個(gè)示例狀態(tài)機(jī)功能塊的方框圖;
圖9是狀態(tài)機(jī)功能塊的操作的另一示例方法的流程圖;圖10是用于處理到狀態(tài)機(jī)功能塊的數(shù)據(jù)輸入的一個(gè)示例例程的流程圖;圖11是用于處理到狀態(tài)機(jī)功能塊的使能輸入的一個(gè)示例例程的流程圖;圖12是用于改變狀態(tài)機(jī)功能塊的狀態(tài)和設(shè)置其輸出的一個(gè)示例例程的流程圖;圖13是輸入用于狀態(tài)機(jī)功能塊的輸出配置數(shù)據(jù)的一個(gè)示例矩陣;圖14是另一示例狀態(tài)機(jī)功能塊的方框圖;圖15是用于改變狀態(tài)機(jī)功能塊的狀態(tài)和設(shè)置其輸出的另一個(gè)示例例程的流程圖;圖16是用于設(shè)置狀態(tài)機(jī)功能塊的適當(dāng)輸出值的一個(gè)示例例程的流程圖;和圖17是輸入用于狀態(tài)機(jī)功能塊的下一狀態(tài)配置數(shù)據(jù)的一個(gè)示例狀態(tài)轉(zhuǎn)換圖。
具體實(shí)施例方式
圖1是包括一個(gè)或多個(gè)節(jié)點(diǎn)12、16、18和20的一個(gè)示例進(jìn)程工廠10的方框圖。在圖1的示例進(jìn)程工廠10中,節(jié)點(diǎn)12和16的每一個(gè)包括通過輸入/輸出(I/O)設(shè)備24連接到一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備22和23的進(jìn)程控制器12a、16a,其中輸入/輸出(I/O)設(shè)備24可以是例如Foundation Fieldbus接口、HART接口等??刂破?2a和16a還通過網(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)、無線LAN、廣域網(wǎng)(WAN)、內(nèi)聯(lián)網(wǎng)等。盡管與之連接的控制節(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)境中。
一般而言,節(jié)點(diǎn)18和20的工作站18a和20a可用來存儲(chǔ)和執(zhí)行用于配置和監(jiān)視進(jìn)程工廠10、和/或管理進(jìn)程工廠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)的進(jìn)程工廠10的當(dāng)前配置。
例如可以是由Emerson Process Management銷售的DeltaVTM控制器的每個(gè)控制器12a和16a可以存儲(chǔ)和執(zhí)行通過使用數(shù)個(gè)不同的獨(dú)立執(zhí)行的控制模塊或塊來實(shí)現(xiàn)控制策略的控制器應(yīng)用程序。每個(gè)控制模塊可以由通常被稱為功能塊的塊構(gòu)成,其中每個(gè)功能塊是整個(gè)控制例程的一部分或一個(gè)子例程并與其它功能模塊相結(jié)合(經(jīng)由被稱為鏈路的通信)進(jìn)行操作以實(shí)現(xiàn)進(jìn)程工廠10內(nèi)的進(jìn)程控制環(huán)。如熟知的那樣,功能塊通常執(zhí)行輸入功能(諸如與發(fā)送器、傳感器或其它進(jìn)程參數(shù)測(cè)量設(shè)備相關(guān)聯(lián)的輸入功能)、控制功能(諸如與執(zhí)行PID、模糊邏輯等控制的控制例程相關(guān)聯(lián)的控制功能)或控制一些設(shè)備(諸如閥門)的操作的輸出功能之一,以執(zhí)行進(jìn)程工廠10內(nèi)的一些物理功能。當(dāng)然存在和可以使用混合的和其它類型的功能塊。盡管fieldbus協(xié)議和DeltaVTM系統(tǒng)協(xié)議可使用以面向?qū)ο蟮木幊虆f(xié)議設(shè)計(jì)和實(shí)現(xiàn)的控制模塊和功能塊,也可使用包括例如順序功能塊、階梯邏輯等的任何期望的控制編程方案來設(shè)計(jì)控制模塊,并不限于使用功能塊或任何其它特定編程技術(shù)來進(jìn)行設(shè)計(jì)。作為典型,存儲(chǔ)在進(jìn)程控制節(jié)點(diǎn)12和16內(nèi)的控制模塊的配置可被存儲(chǔ)在可由工作站18a和20a執(zhí)行的應(yīng)用程序訪問的配置數(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)設(shè)備本身來實(shí)現(xiàn)。
在圖1中說明的系統(tǒng)中,連接到控制器12a和16a的現(xiàn)場(chǎng)設(shè)備22和23可以是標(biāo)準(zhǔn)4-20ma設(shè)備,或可以是諸如HART、Profibus、或FoundationFieldbus現(xiàn)場(chǎng)設(shè)備的包括處理器和存儲(chǔ)器的智能現(xiàn)場(chǎng)設(shè)備。這些設(shè)備的一些,諸如Foundation Fieldbus現(xiàn)場(chǎng)設(shè)備(圖1中標(biāo)以標(biāo)號(hào)23)可以存儲(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、Foundation Fieldbus、Profibus等的任何期望的通信或控制器協(xié)議的任何類型的I/O設(shè)備。
控制器12a和16a的每個(gè)包括實(shí)現(xiàn)或監(jiān)視存儲(chǔ)在存儲(chǔ)器中的一個(gè)或多個(gè)進(jìn)程控制例程的處理器,所述進(jìn)程控制例程可以包括控制環(huán)路,存儲(chǔ)于其中或與之相關(guān)聯(lián)。控制器12a和16a與現(xiàn)場(chǎng)設(shè)備22、23、工作站18a、20a和數(shù)據(jù)庫(kù)32進(jìn)行通信,從而以任何期望的方式來控制進(jìn)程??刂破?2a和16a的每個(gè)可以配置為以任何期望的方式來實(shí)現(xiàn)控制策略或控制例程。
進(jìn)程工廠10還可以包括與進(jìn)程控制節(jié)點(diǎn)12和16集成的安全系統(tǒng)14(,由點(diǎn)劃線表示)。安全系統(tǒng)系統(tǒng)14一般地可以作為安全測(cè)量系統(tǒng)(SIS,SafetyInstrucmented System)運(yùn)行,以監(jiān)視和超控(override)由進(jìn)程控制節(jié)點(diǎn)12和16提供的控制,從而最大化進(jìn)程工廠10的可能安全操作。
節(jié)點(diǎn)12和16的每一個(gè)可以包括一個(gè)或多個(gè)安全系統(tǒng)邏輯解算器50。每個(gè)邏輯解算器50是具有處理器和存儲(chǔ)器的I/O設(shè)備,并被配置為執(zhí)行存儲(chǔ)在存儲(chǔ)器中的安全邏輯模塊??赏ㄐ诺剡B接每個(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,它通過環(huán)或總線連接74(僅其一部分在圖1中說明)通信地連接到其它MPD 70。一般地安全系統(tǒng)邏輯解算器50、安全系統(tǒng)現(xiàn)場(chǎng)設(shè)備60和62、MPD 70和總線74構(gòu)成圖1的安全系統(tǒng)14。
圖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所示的進(jìn)程工廠10中,安全現(xiàn)場(chǎng)設(shè)備60被描述為使用諸如HART或4-20ma協(xié)議的專用或點(diǎn)到點(diǎn)通信協(xié)議,而安全現(xiàn)場(chǎng)設(shè)備62被說明為使用諸如Fieldbus協(xié)議的總線通信協(xié)議。安全現(xiàn)場(chǎng)設(shè)備60可以執(zhí)行諸如關(guān)閉閥門、關(guān)閉開關(guān)等的任何期望功能。
在每個(gè)節(jié)點(diǎn)12和16中可以使用公用底板(未示出),以通信地將控制器12a和16a連接到進(jìn)程控制I/O卡24、連接到安全邏輯解算器50和連接到MPD 70。控制器12a和16a還通信地連接到網(wǎng)絡(luò)30。控制器12a和16a、I/O設(shè)備24、邏輯解算器50、MPD 70可以通過網(wǎng)絡(luò)30與節(jié)點(diǎn)18和20進(jìn)行通信。
如本領(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í)行其它集成的功能。另一方面,MPD 70進(jìn)行操作以使安排在工廠10的非常不同位置的安全系統(tǒng)14的部件仍能夠互相通信,以在進(jìn)程工廠10的不同節(jié)點(diǎn)提供協(xié)調(diào)的安全操作。特別是,MPD 70與總線74相結(jié)合使與進(jìn)程工廠10的不同節(jié)點(diǎn)12和16相關(guān)聯(lián)的邏輯解算器50能夠通信地級(jí)聯(lián)在一起,以允許根據(jù)所分配的優(yōu)先級(jí)來級(jí)聯(lián)進(jìn)程工廠10內(nèi)與安全相關(guān)的功能。MPD 70和總線74為安全系統(tǒng)提供作為網(wǎng)絡(luò)30的替代物的通信鏈路。
或者,進(jìn)程工廠10內(nèi)不同位置上的兩個(gè)或多個(gè)與安全相關(guān)的功能可以互鎖或互連,而不用在工廠10的單獨(dú)區(qū)域或節(jié)點(diǎn)內(nèi)向單獨(dú)的安全現(xiàn)場(chǎng)設(shè)備布設(shè)專用線路。換句話說,MPD 70和72和總線74的使用使得安全工程師能夠設(shè)計(jì)和配置在特性上遍及進(jìn)程工廠10分布但其不同組件通信地互連的安全系統(tǒng)14,從而使與安全相關(guān)的不同硬件能夠按需互相通信。該特征還提供了安全系統(tǒng)14的可縮放性,當(dāng)需要額外的安全邏輯解算器時(shí)或當(dāng)新的進(jìn)程控制節(jié)點(diǎn)被添加到進(jìn)程工廠10時(shí),它使額外的安全邏輯解算器能夠被添加到安全系統(tǒng)14。
圖2是示例工作站18a(工作站20a可以包括相同或相似的設(shè)備)的方框圖。工作站18a可以包括至少一個(gè)處理器100、易失性存儲(chǔ)器104和非易失性存儲(chǔ)器108。易失性存儲(chǔ)器104可以包括,例如隨機(jī)存取存儲(chǔ)器(RAM)。在一些實(shí)施例中,可以由一個(gè)或多個(gè)電池來備份RAM,以便在掉電時(shí)不丟失數(shù)據(jù)。非易失性存儲(chǔ)器108可以包括,例如一個(gè)或多個(gè)硬盤、只讀存儲(chǔ)器(ROM)、高密度盤ROM(CD-ROM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電子可擦除可編程ROM(EEPROM)、數(shù)字多用途盤(DVD)、閃存等。工作站18a還可以包括工作站I/O設(shè)備112。處理器100、易失性存儲(chǔ)器104、非易失性存儲(chǔ)器108和工作站I/O設(shè)備112可以通過地址/數(shù)據(jù)總線116互連。工作站18a還可以包括至少一個(gè)顯示設(shè)備120和至少一個(gè)用戶輸入設(shè)備124,它可以是,例如一個(gè)或多個(gè)鍵盤、鍵區(qū)、鼠標(biāo)、跟蹤球、觸摸屏、光電筆(light pen)等。在一些實(shí)施例中,一個(gè)或多個(gè)易失性存儲(chǔ)器104、非易失性存儲(chǔ)器108和工作站I/O設(shè)備112可以通過與地址/數(shù)據(jù)總線116分離的總線(未示出)連接到處理器100,或可以直接地連接到處理器100。
顯示設(shè)備120和用戶輸入設(shè)備124連接到工作站I/O設(shè)備112。另外,工作站18a通過工作站I/O設(shè)備112連接到網(wǎng)絡(luò)30。盡管在圖2中將工作站I/O設(shè)備112說明為一個(gè)設(shè)備,它也可以包括幾個(gè)設(shè)備。另外,在一些實(shí)施例中,一個(gè)或多個(gè)顯示設(shè)備120和用戶輸入設(shè)備124可以直接連接到地址/數(shù)據(jù)總線116或連接到處理器100。
現(xiàn)在參考圖1和圖2,與一個(gè)或多個(gè)控制節(jié)點(diǎn)12、16相關(guān)聯(lián)的進(jìn)程控制配置應(yīng)用程序可以存儲(chǔ)在一個(gè)或多個(gè)工作站18a和20a并由一個(gè)或多個(gè)工作站18a和20a執(zhí)行。例如,進(jìn)程控制配置應(yīng)用程序可以存儲(chǔ)在非易失性存儲(chǔ)器108和/或易失性存儲(chǔ)器104,并由處理器100執(zhí)行。然而,如果希望,該應(yīng)用程序可以在與進(jìn)程工廠10相關(guān)聯(lián)的其它計(jì)算機(jī)中存儲(chǔ)和執(zhí)行。一般而言,進(jìn)程控制配置應(yīng)用程序允許程序員創(chuàng)建和配置將由控制器12a、16a,I/O設(shè)備24和/或現(xiàn)場(chǎng)設(shè)備22、23實(shí)現(xiàn)的控制例程、控制模塊、功能模塊、程序、邏輯等。這些控制例程、控制模塊、功能模塊、程序、邏輯等然后可以通過網(wǎng)絡(luò)30下載到控制器12a、16a,I/O設(shè)備24和/或現(xiàn)場(chǎng)設(shè)備22、23中適當(dāng)?shù)脑O(shè)備。
相似地,與安全系統(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)用程序可以在與進(jìn)程工廠10相關(guān)聯(lián)的其它計(jì)算機(jī)中存儲(chǔ)和執(zhí)行。一般而言,安全系統(tǒng)配置應(yīng)用程序允許程序員創(chuàng)建和配置將由控制器12a、16a、邏輯解算器50和/或設(shè)備60、62實(shí)現(xiàn)的控制例程、控制模塊、功能模塊、程序、邏輯等。這些控制例程、控制模塊、功能模塊、程序、邏輯等然后可以通過網(wǎng)絡(luò)30下載到控制器12a、16a,邏輯解算器50和/或設(shè)備60、62中適當(dāng)?shù)脑O(shè)備。
狀態(tài)機(jī)功能塊控制系統(tǒng)或安全系統(tǒng)配置應(yīng)用程序可以允許編程控制模塊和/或控制例程使用功能塊編程范例。圖3說明了描述控制模塊154的顯示150的一個(gè)示例。顯示150可以是與配置應(yīng)用程序相關(guān)聯(lián)的用戶接口的一部分,并且顯示150可以,例如通過工作站18a的顯示設(shè)備120呈現(xiàn)給程序員。顯示1 50描述了具有一組通信互連的功能塊的控制模塊154,所述功能塊可以被創(chuàng)建并通過網(wǎng)絡(luò)30下載到控制器12a、16a、I/O設(shè)備24、邏輯解算器50和/或設(shè)備22、23、60、62中適當(dāng)?shù)脑O(shè)備,用于在進(jìn)程工廠的操作期間實(shí)施。如圖3中所示的,控制模塊154包括狀態(tài)機(jī)功能塊(SMFB,state machine function block)160、多個(gè)模擬輸入(AI)和數(shù)字輸入(DI)功能塊、多個(gè)模擬輸出(AO)和數(shù)字輸出(DO)功能塊和其它功能塊(FB)。SMFB 160具有通信地與可以是,例如DI功能塊或其它FB的功能塊114互連的輸入。SMFB 160還具有連接到可以是,例如DO功能塊或其它FB的功能塊118的輸出??刂颇K154可以控制,或可以是一起控制的多個(gè)控制模塊之一,控制諸如開關(guān)、閥門等的設(shè)備,作為控制系統(tǒng)、安全系統(tǒng)等的一部分。當(dāng)然,控制模塊154僅僅是利用SMFB的控制模塊的一個(gè)示例。一般地,可以用任何期望的方式來編程控制模塊,以包含以任何期望的方式通信地連接到任何數(shù)目的SMFB的任何類型的功能塊,以及以任何期望的或有用的方式進(jìn)行配置以執(zhí)行任何期望的功能。如果,例如在Fieldbus網(wǎng)絡(luò)中使用,則控制模塊可以包括任何fieldbus類型功能塊。
在一些實(shí)施例中,到SMFB 160的一個(gè)或多個(gè)輸入可以從一個(gè)功能塊之外接收。例如,到SMFB 160的一個(gè)或多個(gè)輸入可以通信地連接以通過,例如操作員接口從操作員接收輸入。例如,使用在諸如節(jié)點(diǎn)18或20上實(shí)現(xiàn)的操作員接口的操作員可以提供到SMFB 160的輸入。
SMFB可以是實(shí)現(xiàn)狀態(tài)機(jī)的功能塊。在一些實(shí)施例中,狀態(tài)機(jī)可以包括能夠處于多種狀態(tài)之一的實(shí)體(例如,設(shè)備、由處理器實(shí)現(xiàn)的軟件等)。如果發(fā)生至狀態(tài)機(jī)的特定輸入,則狀態(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í)體(例如,進(jìn)程工廠、進(jìn)程工廠的子部分、進(jìn)程工廠的組件等),并且可以改變狀態(tài)和/或基于至狀態(tài)機(jī)的輸入引起動(dòng)作或?qū)⒁l(fā)生的輸出。
使用與配置應(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ū)、觸摸屏等在一個(gè)功能塊的輸出和另一個(gè)功能塊的輸入之間劃一條線來通信地連接功能塊。
一旦被配置,控制模塊154可以由,例如一個(gè)或多個(gè)控制器12a、14a、16a、I/O設(shè)備24、邏輯解算器50和設(shè)備22、23、60、62來實(shí)現(xiàn)。
圖4是可以在例如,諸如圖3的顯示150的用戶接口顯示器上顯示的SMFB 200的表示的一個(gè)示例。SMFB 200的表示指示SMFB 200包括7個(gè)數(shù)據(jù)輸入(IN_D1至IN_D7)和7個(gè)數(shù)據(jù)輸出(STATE和OUT_D1至OUT_D6)。數(shù)據(jù)輸入一般指示進(jìn)程工廠內(nèi)的狀況,指示操作員命令等,并可以引起由SMFB 200實(shí)現(xiàn)的狀態(tài)機(jī)改變狀態(tài)。數(shù)據(jù)輸出可包括對(duì)應(yīng)于SMFB 200的狀態(tài)機(jī)的狀態(tài)的一個(gè)或多個(gè)指示符。例如,STATE輸出可以是狀態(tài)機(jī)的狀態(tài)(例如,狀態(tài)1、狀態(tài)2、狀態(tài)3等)的指示符。輸出OUT_D1可以是狀態(tài)機(jī)是否處于狀態(tài)“狀態(tài)1”的指示符。相似地,輸出OUT_D2、OUT_D3、...OUT_D6可以分別是狀態(tài)機(jī)是否處于狀態(tài)“狀態(tài)2”、“狀態(tài)3”...、“狀態(tài)6”的指示符。SMFB還可以包括數(shù)據(jù)輸入外的其它輸入,諸如ENABLE輸入、TRK_VAL輸入和TRK_IN_D輸入,并可包括指示狀態(tài)的輸出外的其它輸出。將在下面更詳細(xì)地描述ENABLE、TRK_VAL和TRK_IN_D輸入。盡管圖4中示出SMFB200具有7個(gè)數(shù)據(jù)輸入和7個(gè)數(shù)據(jù)輸出,但其它實(shí)施例可以包括任何期望數(shù)目的數(shù)據(jù)輸入和數(shù)據(jù)輸出。SMFB 200的數(shù)據(jù)輸入的數(shù)目和數(shù)據(jù)輸出的數(shù)目可以配置或不可以配置。在一個(gè)實(shí)施例中,輸出OUT_Dx的數(shù)目一般對(duì)應(yīng)于由SMFB實(shí)現(xiàn)的狀態(tài)機(jī)的可能狀態(tài)的數(shù)目,并且可能的狀態(tài)數(shù)目可以是可配置的。然而,輸出OUT_D1、OUT_D2等的數(shù)目不需要對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)的數(shù)目。例如,如果有少于輸出OUT_D1、OUT_D2等的數(shù)目的狀態(tài),則額外的輸出可以留置不用。
使用與配置程序相關(guān)聯(lián)的用戶接口,程序員可以配置一個(gè)或多個(gè)功能塊,諸如SMFB 200。關(guān)于配置SMFB,程序員可以指定數(shù)個(gè)可能的狀態(tài),以及輸入如何引起狀態(tài)機(jī)在狀態(tài)間進(jìn)行轉(zhuǎn)換。為允許程序員配置SMFB,配置應(yīng)用程序可以顯示于用戶接口機(jī)制的顯示設(shè)備120上,諸如與功能塊相關(guān)聯(lián)的配置窗口、屏幕等。
圖5是可以用于至少部分地配置諸如圖4的SMFB 200的SMFB的用戶接口機(jī)制的一個(gè)示例。該用戶接口機(jī)制包括可以顯示為與SMFB相關(guān)聯(lián)的配置窗口、屏幕等的一部分的表或矩陣300(下文中稱為“矩陣300”)。矩陣300包括以行和列排列的多個(gè)單元304。每列對(duì)應(yīng)于狀態(tài)機(jī)的多個(gè)可能狀態(tài)之一,每行對(duì)應(yīng)于至狀態(tài)機(jī)的輸入。因此,每個(gè)單元304對(duì)應(yīng)于一種狀態(tài)和一個(gè)輸入。盡管示例矩陣300包括用于7個(gè)輸入的行和6種狀態(tài),可以對(duì)于具有不同輸入和狀態(tài)數(shù)目的SMFB使用具有不同狀態(tài)和輸出數(shù)目的相似矩陣。輸入和狀態(tài)的數(shù)目是可配置的。在另一個(gè)示例中,每行可以對(duì)應(yīng)于狀態(tài)機(jī)的多個(gè)可能狀態(tài)之一,每列可以對(duì)應(yīng)于至狀態(tài)機(jī)的輸入。
參考圖4,矩陣300的輸入“1”至“7”分別對(duì)應(yīng)于SMFB 200的輸入IN_D1至IN_D7。相似地,矩陣300的狀態(tài)“1”至“6”分別對(duì)應(yīng)于SMFB 200的輸出OUT_D1至OUT_D6。另外,在該示例中程序員可以標(biāo)記每個(gè)可能狀態(tài)和/或每個(gè)輸入。例如,在圖5中,“狀態(tài)1”被標(biāo)記為“跳閘”,輸入1被標(biāo)記為“初始”。標(biāo)記輸入和/或狀態(tài)可以幫助理解狀態(tài)機(jī)的操作。
程序員可以通過將配置信息輸入到單元304中來配置SMFB。特別是,對(duì)于對(duì)應(yīng)于一種狀態(tài)和一個(gè)輸入的一個(gè)特定單元304,程序員可以將指示SMFB應(yīng)該向其轉(zhuǎn)換的狀態(tài)的配置數(shù)據(jù)輸入到單元中。圖6是具有輸入到單元304的一些中的配置數(shù)據(jù)的矩陣300的一個(gè)示例。例如,單元304A包括指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)并且將“初始”輸入置為有效(assert)時(shí)狀態(tài)機(jī)應(yīng)該向其轉(zhuǎn)換的下一狀態(tài)的配置數(shù)據(jù)。特別是,單元304A的配置數(shù)據(jù)指示狀態(tài)機(jī)應(yīng)該轉(zhuǎn)換到“等待復(fù)位”狀態(tài)。相似地,單元304B包括指示當(dāng)狀態(tài)機(jī)處于“等待復(fù)位”狀態(tài)并且“復(fù)位允許”輸入被置為有效時(shí)狀態(tài)機(jī)應(yīng)該轉(zhuǎn)換到“準(zhǔn)備好復(fù)位”狀態(tài)的配置數(shù)據(jù)。而且,單元304C包括指示當(dāng)狀態(tài)機(jī)處于“等待復(fù)位”狀態(tài)并且將“請(qǐng)求跳閘”輸入置為有效時(shí)狀態(tài)機(jī)應(yīng)該轉(zhuǎn)換到“跳閘”狀態(tài)的配置數(shù)據(jù)。
在特定的示例中,如果程序員沒有輸入配置數(shù)據(jù)到單元304中,則可以假定對(duì)于那個(gè)特定狀態(tài)和輸入,不應(yīng)發(fā)生狀態(tài)轉(zhuǎn)換。例如,單元304D不包括配置數(shù)據(jù),指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)并且將“開始恢復(fù)”輸入置為有效時(shí),狀態(tài)機(jī)應(yīng)保留在“跳閘”狀態(tài)。在另一個(gè)實(shí)施例中,程序員可以輸入指示對(duì)于那個(gè)特定狀態(tài)/輸入組合,狀態(tài)機(jī)不應(yīng)改變狀態(tài)的配置數(shù)據(jù)。
程序員可以使用包括本領(lǐng)域的普通技術(shù)人員所熟知的技術(shù)的任何類型的技術(shù),將配置數(shù)據(jù)輸入到矩陣300中。例如,為了將配置數(shù)據(jù)輸入到單元304中,程序員可以使用鼠標(biāo)、跟蹤球、觸摸屏等來選擇單元304。然后,用戶可以通過,例如鍵盤直接將配置數(shù)據(jù)輸入到單元304中?;蛘?,程序員可以選擇單元304,然后選擇“編輯”、“修改”等,從下拉菜單選擇、或選擇“編輯”按鈕、“修改”按鈕等。然后,用戶接口可以通過下拉菜單、窗口、顯示屏等向程序員顯示狀態(tài)列表??蛇x地,該狀態(tài)列表包括單元對(duì)應(yīng)的狀態(tài)或“不轉(zhuǎn)換”選項(xiàng)。然后,程序員可以使用,例如鍵盤、鼠標(biāo)、跟蹤球、觸摸屏等選擇狀態(tài)之一。如果程序員選擇單元對(duì)應(yīng)的狀態(tài)或“不轉(zhuǎn)換”選項(xiàng),則配置數(shù)據(jù)指示對(duì)于該狀態(tài)和輸入組合,不應(yīng)發(fā)生轉(zhuǎn)換。
與使用,例如順序功能圖表或諸如C++的編程語言相比,使用包括諸如矩陣300的矩陣的用戶接口來配置SMFB可以使實(shí)現(xiàn)狀態(tài)機(jī)更容易。例如,使用C++程序等實(shí)現(xiàn)狀態(tài)機(jī)將涉及首先創(chuàng)建狀態(tài)轉(zhuǎn)換圖表,然后編寫實(shí)現(xiàn)該圖表的程序。然后,必須對(duì)程序進(jìn)行測(cè)試和調(diào)試。然而,使用諸如矩陣300的矩陣來配置SMFB,不需要編寫程序。并且,“編程”僅僅涉及填寫矩陣。另外,由于不需要編寫軟件代碼,故也不需要調(diào)試和測(cè)試代碼。并且,測(cè)試僅僅涉及測(cè)試狀態(tài)和輸入的各種組合以驗(yàn)證SMFB進(jìn)行到正確的下一狀態(tài)。
并且,僅通過檢查矩陣300就可容易地理解SMFB的功能。因此,配置后的SMFB的功能可以容易地進(jìn)行文檔記錄,例如通過打印出矩陣的表示。
例如,根據(jù)諸如矩陣300的矩陣配置的SMFB可以用在安全系統(tǒng)或進(jìn)程控制系統(tǒng)中。僅僅作為一個(gè)示例,根據(jù)諸如矩陣300的矩陣配置的SMFB可以用作安全系統(tǒng)的一部分,用于管理進(jìn)程工廠中的燃燒爐。例如,SMFB可以包括諸如“點(diǎn)火”、“關(guān)氣”和“排出”的狀態(tài)。當(dāng)啟動(dòng)燃燒爐時(shí),SMFB可以首先進(jìn)行到排出狀態(tài)以使燃燒爐中的任何氣體排放。然后,SMFB可以進(jìn)行到點(diǎn)火狀態(tài)以點(diǎn)燃燃燒爐。并且,如果燃燒爐的火焰出來的話,SMFB可以進(jìn)行到關(guān)氣狀態(tài)以關(guān)閉到燃燒爐的氣體。然后,SMFB可以進(jìn)行到排出狀態(tài)。
可以由一個(gè)或多個(gè)控制器12a、16a、I/O設(shè)備24、邏輯解算器50和設(shè)備22、23、60、62來實(shí)現(xiàn)根據(jù)諸如矩陣300的矩陣配置的SMFB。在一些實(shí)施例中,可以由根據(jù)軟件由可編程邏輯設(shè)備配置的處理器來實(shí)現(xiàn)SMFB,該可編程邏輯設(shè)備可以是例如包括一個(gè)或多個(gè)門陣列、標(biāo)準(zhǔn)單元、現(xiàn)場(chǎng)可編程門陣列(FPGA)、PROM、EPROM、EEPROM、可編程陣列邏輯(PAL)、可編程邏輯陣列(PLA)等的設(shè)備。
與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ǔ)器上。
圖7是配置的SMFB的操作的示例方法的流程圖??梢灾芷诘睾?或響應(yīng)于例如觸發(fā)事件來實(shí)現(xiàn)方法350。在塊354中,SMFB接收其數(shù)據(jù)輸入。例如參考圖4,SMFB接收輸入IN_D1至IN_D7。在塊358,如果需要,SMFB基于數(shù)據(jù)輸入、SMFB的當(dāng)前狀態(tài)和存儲(chǔ)在配置數(shù)據(jù)庫(kù)中的配置數(shù)據(jù)來改變其狀態(tài)機(jī)的狀態(tài)。配置數(shù)據(jù)庫(kù)的數(shù)據(jù)可以包括通過諸如矩陣300的矩陣輸入的數(shù)據(jù)。狀態(tài)也可以基于其它因素而被改變。例如,如將在下面詳述的那樣,SMFB可以被配置為忽略一個(gè)或多個(gè)數(shù)據(jù)輸入。因此,如果有的話,改變狀態(tài)也會(huì)基于指示哪些數(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ù)輸入之一以確定SMFB應(yīng)當(dāng)基于對(duì)數(shù)據(jù)輸入授于優(yōu)先級(jí)的優(yōu)先級(jí)數(shù)據(jù),轉(zhuǎn)換到可能的下一狀態(tài)中的哪一個(gè)。作為另一個(gè)示例,在一些實(shí)施例中到SMFB的輸入可以包括狀態(tài)(例如,好狀態(tài)或壞狀態(tài))。因此,改變狀態(tài)也可以基于,例如指示應(yīng)如何處理具有壞狀態(tài)的輸入的配置數(shù)據(jù)。
然后,在塊366中,SMFB可以基于狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置其數(shù)據(jù)輸出。例如,如果數(shù)據(jù)輸出要指示當(dāng)前狀態(tài),則可以相應(yīng)地設(shè)置數(shù)據(jù)輸出。
再次參考圖4,SMFB可以可選地包括“ENABLE”輸入。在一個(gè)實(shí)施例中,如果將ENABLE輸入置為無效(deassert),則強(qiáng)制SMFB進(jìn)入禁用狀態(tài)(例如,狀態(tài)0)并應(yīng)保留在該狀態(tài)直到將ENABLE輸入置為有效。當(dāng)隨后將ENABLE輸入置為有效時(shí),將強(qiáng)制SMFB進(jìn)入初始狀態(tài)(例如,狀態(tài)1),其后SMFB可以根據(jù)輸入到諸如圖5的矩陣300的配置矩陣中的配置數(shù)據(jù)而轉(zhuǎn)換到其它狀態(tài)。
SMFB可以另外地包括強(qiáng)制狀態(tài)機(jī)進(jìn)行期望狀態(tài)的一個(gè)輸入或多個(gè)輸入。例如,SMFB 200包括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”。
SMFB可以可選地以另外的方式來配置。例如,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可以被配置為忽略為“壞”的輸入、即使為“壞”也使用該輸入、或使用該輸入的最后的“好”值。并且,SMFB可以包括RESET參數(shù),當(dāng)該參數(shù)為真時(shí),強(qiáng)制SMFB進(jìn)入“1”狀態(tài)。
上述各種配置數(shù)據(jù)和下一狀態(tài)配置數(shù)據(jù)可以存儲(chǔ)在同一計(jì)算機(jī)可讀介質(zhì)上或不同的計(jì)算機(jī)可讀介質(zhì)上。
圖8是SMFB的一個(gè)示例的方框圖。SMFB 400包括邏輯404,它至少部分地基于輸入IN_D1、IN_D2等和SMFB 400的當(dāng)前狀態(tài)來確定下一狀態(tài)。特別是,邏輯404訪問存儲(chǔ)在下一狀態(tài)配置數(shù)據(jù)庫(kù)406中的下一狀態(tài)配置數(shù)據(jù)。數(shù)據(jù)庫(kù)406可以存儲(chǔ)在諸如上述的計(jì)算機(jī)可讀介質(zhì)上。下一狀態(tài)配置數(shù)據(jù)可以包括輸入到諸如圖5的矩陣300的矩陣中的配置數(shù)據(jù)。
邏輯404的輸出被提供到切換邏輯408。切換邏輯408基于TRK_IN_D輸入而在邏輯404的輸出和TRK_VAL輸入之間進(jìn)行選擇。例如,如果將TRK_IN_D輸入置為有效,則切換邏輯408會(huì)選擇TRK_VAL輸入。否則,切換邏輯408會(huì)選擇邏輯404的輸出。
切換邏輯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輸入置為無效,則使能和復(fù)位邏輯416的輸出會(huì)指示狀態(tài)應(yīng)被強(qiáng)制為0。如果將ENABLE輸入從無效改變到有效,則使能和復(fù)位邏輯416的輸出會(huì)指示狀態(tài)應(yīng)被強(qiáng)制為1。如果將ENABLE置為有效并且是在先前有效的,使能和復(fù)位邏輯416的輸出會(huì)指示狀態(tài)不應(yīng)被強(qiáng)制為0或1。
切換邏輯412的輸出是SMFB 400的當(dāng)前狀態(tài),并可被提供為SMFB 400的輸出。切換邏輯412的輸出還可以被提供到設(shè)置對(duì)應(yīng)于SMFB的當(dāng)前狀態(tài)的適當(dāng)輸出OUT_D1、OUT_D2等的邏輯420。
塊404、408、412、416和420的每個(gè)都可以由一個(gè)或多個(gè)硬件、軟件和固件來實(shí)現(xiàn)。另外,一些塊可以被組合、重新排序、修改或省略,并且可以添加額外的塊。僅僅作為一個(gè)示例,塊408和412可以組合到單個(gè)塊中。
圖9是示例SMFB 400的操作的方法的流程圖??梢?,例如周期地和/或基于觸發(fā)事件來實(shí)現(xiàn)圖9的方法450。在塊454,處理SMFB 400的數(shù)據(jù)輸入。例如,可以確定是否已將任何數(shù)據(jù)輸入IN_D1、IN_D2等置為有效。作為另一個(gè)示例,如果一個(gè)或多個(gè)數(shù)據(jù)輸入具有“BAD”狀態(tài),可以確定如何處理“BAD”輸入。在塊458,處理SMFB 400的ENABLE輸入。例如,可以確定是否將ENABLE輸入置為有效和/或自其先前被處理起它是否已改變。
在塊462,如果需要,可以改變SMFB 400的狀態(tài)。另外,如果需要,可以SMFB 400的改變一個(gè)或多個(gè)數(shù)據(jù)輸出。例如,可以確定數(shù)據(jù)輸入中的變化指示應(yīng)該改變SMFB 400的狀態(tài)。另外,如果狀態(tài)改變,可能是應(yīng)該改變SMFB 400的一個(gè)或多個(gè)數(shù)據(jù)輸出。
現(xiàn)在將說明,至少部分地可用于實(shí)現(xiàn)方法450的幾個(gè)示例例程。例如,圖10是可用于處理至SMFB的數(shù)據(jù)輸入IN_D1、IN_D2等的示例例程500的流程圖。在塊504,將變量z設(shè)置為1。在塊508,確定數(shù)據(jù)輸入IN_Dz的狀態(tài)是否為“BAD”。如果該狀態(tài)不是壞的,則將變量TRANSITIONS的比特號(hào)z設(shè)置為數(shù)據(jù)輸入IN_Dz的值。如果該狀態(tài)是壞的,則會(huì)確定要如何處理該數(shù)據(jù)輸入。在一個(gè)示例中,SMFB可以以三種方式之一處理“BAD”輸入可以任意使用BAD輸入(ALWAYS_USE),可以忽略它(IGNORE_IF_BAD),或可使用最后的“GOOD”輸入(USE_LAST_GOOD)。因此,在塊516,可以確定SMFB是否要使用最后的“GOOD”數(shù)據(jù)輸入。如果SMFB要使用最后的“GOOD”值,則可以跳過塊512。否則,其后會(huì)在塊520確定是否SMFB要忽略BAD輸入值。如果SMFB不忽略BAD值,則例程會(huì)進(jìn)行到塊512。如果SMFB要忽略BAD值,則例程會(huì)進(jìn)行到塊524。在塊524,將變量TRANSITIONS的比特號(hào)“x”設(shè)置為0。
在塊528,遞增變量z,并且在塊532,確定變量z是否大于至SMFB的數(shù)據(jù)輸入的數(shù)目。如果z不大于至SMFB的數(shù)據(jù)輸入的數(shù)目,則例程會(huì)回到塊508以處理下一數(shù)據(jù)輸入。否則,例程結(jié)束。
圖11是可用于處理到SMFB的ENABLE輸入的示例例程545的流程圖。在塊550,可以確定變量LASTENABLE的值是否與ENABLE輸入的值相同。LASTENABLE變量一般指示在前一時(shí)間的ENABLE的值(例如,在例程545的前一運(yùn)行期間ENABLE變量的值)。如果LASTENABLE和ENABLE的值相同,則例程545結(jié)束。否則,例程進(jìn)行到塊554,在該塊確定是否將ENABLE輸入置為有效。如果將ENABLE輸入置為有效,則在塊558可將變量RESET設(shè)置為TRUE。
如果在塊554確定沒有將ENABLE輸入置為有效,則在塊562,將對(duì)應(yīng)于STATE變量的當(dāng)前值的輸出OUT_D1、OUT_D2等置為無效。然后,在塊566,將STATE變量設(shè)置為0。在塊558和566之后,例程進(jìn)行到塊570,在此將變量LASTENABLE設(shè)置為ENABLE輸入的值。在塊570之后,例程結(jié)束。
圖12是可用于確定SMFB的下一狀態(tài)和如果需要可用于設(shè)置適當(dāng)?shù)腛UT_D1、OUT_D2等的示例例程600的流程圖。在塊604,可以確定是否將ENABLE輸入置為有效。如果沒有,例程結(jié)束。如果將ENABLE輸入置為有效,則例程進(jìn)行到塊608,在此將變量NEWSTATE設(shè)置為0。接下來,在塊612,可以確定是否將輸入TRK_IN_D置為有效。如果將輸入TRK_IN_D置為有效,則例程進(jìn)行到塊616,在此將NEWSTATE變量設(shè)置為輸入TRK_VAL的值。
如果在塊612確定沒有將TRK_IN_D輸入置為有效,則例程進(jìn)行到塊620。在塊620,可以確定變量RESET是否為TRUE。如果是TRUE,則例程進(jìn)行到塊624,在此可將NEWSTATE變量設(shè)置為1。然后,在塊626,將RESET變量設(shè)置為FALSE。
如果在塊620確定變量RESET不是TRUE,則例程進(jìn)行到塊632。在塊632,可以通過按比特對(duì)TRNASITION_MASK變量、TRNASITIONS變量和由變量STATE指向的陣列STATECHANGEMASK的元素進(jìn)行邏輯與運(yùn)算來確定變量TEMP。TRNASITION_MASK變量可以是可用于防止某輸入IN_Dx引起狀態(tài)變化發(fā)生的可配置變量。例如,如果程序員希望防止輸入IN_D3引起狀態(tài)機(jī)改變狀態(tài),則該程序員可將變量TRNASITION_MASK的第三比特設(shè)置為0。如果該程序員希望輸入D3引起狀態(tài)機(jī)改變狀態(tài),則該程序員可將變量TRNASITION_MASK的第三比特設(shè)置為1。
STATECHANGEMASK陣列的每個(gè)元素可以是指示對(duì)于一個(gè)相應(yīng)的狀態(tài)哪個(gè)輸入IN_D1、IN_D2等將引起狀態(tài)改變的變量。特別是,陣列的每個(gè)元素對(duì)應(yīng)于狀態(tài)機(jī)的一種狀態(tài)。例如,STATECHANGEMASK[1]對(duì)應(yīng)于狀態(tài)1,STATECHANGEMASK[2]對(duì)應(yīng)于狀態(tài)2等。另外,每個(gè)元素的每比特對(duì)應(yīng)于輸入IN_D1、IN_D2等之一。例如比特1對(duì)應(yīng)于IN_D1,比特2對(duì)應(yīng)于IN_D2等。例如參考圖6,對(duì)于矩陣300,STATECHANGEMASK陣列具有6個(gè)元素,并且元素STATECHANGEMASK[3]為0x44。
在塊628之后,例程進(jìn)行到塊632,在此可確定變量TEMP是否為0。如果不是0,則例程進(jìn)行到塊636,在此可將變量z設(shè)置為變量TEMP中不是0的第一個(gè)比特(即,從最低有效比特開始)的編號(hào)。實(shí)際上,這根據(jù)它們的次序設(shè)置了輸入的優(yōu)先級(jí),從而IN_D1具有最高優(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)換矩陣的值。
在塊616、626和640后,例程可進(jìn)行到塊644。如果在塊632,確定變量TEMP為0,則例程進(jìn)行到塊644。在塊644,可確定變量NEWSTATE是否為0。如果為0,則例程結(jié)束。如果不為0,則例程進(jìn)行到塊648,在此將對(duì)應(yīng)于STATE變量的輸出OUT_D1、OUT_D2等置為無效。然后,在塊652,將變量STATE設(shè)置為變量NEWSTATE的值。在塊656,將對(duì)應(yīng)于STATE變量的輸出OUT_D1、OUT_D2等置為有效,并且例程結(jié)束。
應(yīng)當(dāng)理解圖9的方法450和圖10-12的例程僅僅是示例,在其它示例中,可以修改塊、添加新塊、重新排序塊、忽略塊、和/或組合塊。參考圖10,僅作為一個(gè)示例,如果不需要或不希望對(duì)具有“BAD”狀態(tài)的輸入的特別處理,則可忽略塊508、516、520和524。
作為另一個(gè)示例,可以修改塊636,以便將變量z設(shè)置為TEMP中不為0的最后一個(gè)比特的編號(hào)。作為另一個(gè)示例,可以修改塊636以基于一些優(yōu)先級(jí)數(shù)據(jù)將z設(shè)置為對(duì)應(yīng)于TEMP中不為0的一個(gè)比特的編號(hào)。
再次參考圖4,所有數(shù)據(jù)輸出不必是對(duì)應(yīng)于SMFB 200的狀態(tài)機(jī)的狀態(tài)的指示符。例如,在一個(gè)實(shí)施例中,對(duì)應(yīng)于狀態(tài)機(jī)的各種狀態(tài)的輸出OUT_D1、OUT_D2等的值可以是可配置的。因此,例如對(duì)于特定狀態(tài),可以將多個(gè)輸出OUT_D1、OUT_D2等置為有效。為允許程序員配置SMFB,配置應(yīng)用程序可以在顯示設(shè)備120上顯示用戶接口機(jī)制,諸如與功能塊相關(guān)聯(lián)的配置窗口、屏幕等。
圖13是可用于至少部分地配置諸如圖4的SMFB 200的SMFB的用戶接口機(jī)制的一個(gè)示例。該用戶接口機(jī)制包括可以顯示為與SMFB相關(guān)聯(lián)的配置窗口、屏幕等的一部分的表或矩陣700(下文中稱為“矩陣700”)。矩陣700包括以行和列排列的多個(gè)單元704。每列對(duì)應(yīng)于狀態(tài)機(jī)功能塊的多個(gè)輸出OUT_D1、OUT_D2等之一,每行對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)之一。因此,每個(gè)單元704對(duì)應(yīng)于一種狀態(tài)和一個(gè)輸出。在其它示例中,每行可對(duì)應(yīng)于多個(gè)輸出之一,每列可對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)之一。
矩陣700的輸出“1”至“4”可分別對(duì)應(yīng)于SMFB的輸出OUT_D1至OUT_D4。相似地,矩陣700的狀態(tài)“1”至“6”可對(duì)應(yīng)于狀態(tài)機(jī)的可能狀態(tài)。另外,在該示例中用戶可以標(biāo)記每個(gè)輸出。例如,在圖13中,將“輸出1”標(biāo)記為“打開閥門VLV-101”。標(biāo)記輸出可以幫助理解狀態(tài)機(jī)的操作和/或?qū)顟B(tài)機(jī)與進(jìn)程工廠接口。
程序員可以通過將配置信息輸入到單元704中來配置SMFB。特別是,對(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)該將輸出OUT_D3置為有效的配置數(shù)據(jù)。相似地,單元704B包括指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)時(shí)應(yīng)該將輸出OUT_D4置為有效的配置數(shù)據(jù)。
在該特定示例中,如果程序員不將配置數(shù)據(jù)輸入到單元704中,則可以假定對(duì)于該特定狀態(tài)不應(yīng)將相應(yīng)輸出置為有效。例如,單元704C和704D不包括X,指示當(dāng)狀態(tài)機(jī)處于“跳閘”狀態(tài)時(shí),不應(yīng)將輸出OUT_D1和OUT_D2置為有效。在其它實(shí)施例中,程序員可以輸入指示如果處于特定狀態(tài),狀態(tài)機(jī)不應(yīng)將特定輸出置為有效的配置數(shù)據(jù)。相似地,也可以指示對(duì)于特定狀態(tài)和輸出,將輸出置為有效還是將輸出置為無效無關(guān)緊要。
程序員可以使用包括本領(lǐng)域的普通技術(shù)人員所熟知的技術(shù)的任何類型的技術(shù)將配置數(shù)據(jù)輸入到矩陣700中。例如,為了將配置數(shù)據(jù)輸入到單元704中,程序員可以使用鼠標(biāo)、跟蹤球、觸摸屏等來選擇單元704。然后,用戶可以通過,例如鍵盤直接將配置數(shù)據(jù)輸入到單元704中?;蛘撸绦騿T可以選擇單元704,然后選擇“編輯”、“修改”等,從下拉菜單選擇、或選擇“編輯”按鈕、“修改”按鈕等。然后,用戶接口可以通過下拉菜單、窗口、顯示屏等向程序員顯示選項(xiàng)列表。例如,該選項(xiàng)列表包括“將輸出置為有效”選項(xiàng)、“將輸出置為無效”選項(xiàng),和可選地“不理會(huì)”選項(xiàng)。然后,程序員可以使用,例如鍵盤、鼠標(biāo)、跟蹤球、觸摸屏等來選擇這些選項(xiàng)之一。如果程序員選擇“將輸出置為有效”選項(xiàng),則配置數(shù)據(jù)指示對(duì)于相應(yīng)狀態(tài)應(yīng)該將相應(yīng)輸出置為有效。例如,“X”會(huì)顯示在單元中,“1”會(huì)顯示在單元中,字“TRUE”會(huì)顯示在單元中,字“ASSERT”會(huì)顯示在單元中等。如果程序員選擇“將輸出置為無效”選項(xiàng),則配置數(shù)據(jù)指示對(duì)于相應(yīng)狀態(tài)不應(yīng)將相應(yīng)輸出置為有效。例如,單元會(huì)留置為空,“0”會(huì)顯示在單元中,字“FALSE”會(huì)顯示在單元中,字“DEASSERT”會(huì)顯示在單元中等。
盡管示例矩陣700包括用于6種狀態(tài)的行和4個(gè)輸出,可以使用具有不同狀態(tài)和輸出數(shù)目的相似矩陣用于具有不同狀態(tài)和輸出數(shù)目的SMFB。狀態(tài)和輸出的數(shù)目可以是可配置的。
再一次參考圖7,如前所述,在塊362已確定當(dāng)前狀態(tài)后,可以基于當(dāng)前狀態(tài)來設(shè)置SMFB的數(shù)據(jù)輸出(塊366)。例如,可以根據(jù)輸入到諸如圖13的矩陣700的矩陣的配置數(shù)據(jù)來設(shè)置數(shù)據(jù)輸出。圖14是SMFB的另一個(gè)示例的方框圖。SMFB 750與圖8的SMFB 400相似,但是包括基于狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置適當(dāng)?shù)妮敵鯫UT_D1、OUT_D2等的邏輯754。特別是,邏輯754訪問存儲(chǔ)在輸出配置數(shù)據(jù)庫(kù)758中的狀態(tài)/輸出配置數(shù)據(jù)。數(shù)據(jù)庫(kù)758和數(shù)據(jù)庫(kù)406可以存儲(chǔ)在相同計(jì)算機(jī)可讀介質(zhì)上或存儲(chǔ)在不同計(jì)算機(jī)可讀介質(zhì)上。輸出配置數(shù)據(jù)可以包括輸入到諸如圖13的矩陣700的矩陣的配置數(shù)據(jù)。
圖15是可用于確定SMFB的下一狀態(tài)和如果需要可用于將適當(dāng)?shù)妮敵鯫UT_D1、OUT_D2等有效的示例例程800的流程圖。例程800與圖12的例程600相似。但是在塊652之后,流程進(jìn)行到塊804,在此可以將適當(dāng)?shù)妮敵鯫UT_D1、OUT_D2等置為有效。
圖16是可用于將適當(dāng)?shù)妮敵鯫UT_D1、OUT_D2等置為有效的示例例程850的流程圖。在塊854,將變量z設(shè)置為1。在塊858,將輸出OUT_Dz設(shè)置為由變量STATE指向的陣列變量OUTPUT的元素的比特?cái)?shù)目值z(mì)。OUTPUT陣列的每個(gè)元素可以是指示對(duì)于相應(yīng)一種狀態(tài)的輸出OUT_D1、OUT_D2等的值的變量。例如,OUTPUT[1]對(duì)應(yīng)于狀態(tài)1,OUTPUT[2]對(duì)應(yīng)于狀態(tài)2等。另外,每個(gè)元素的每個(gè)比特對(duì)應(yīng)于輸出OUT_D1、OUT_D2等中的一個(gè)。例如,比特1對(duì)應(yīng)于OUT_D1、比特2對(duì)應(yīng)于OUT_D2等。例如參考圖13,對(duì)于矩陣700,OUTPUT陣列具有6個(gè)元素,并且元素OUTPUT[1]是0x06。
在塊862,遞增變量z,在塊866,可確定z的值是否大于輸出OUT_D1、OUT_D2等的數(shù)目。如果z不大于輸出OUT_D1、OUT_D2等的數(shù)目,則例程回到塊858。否則,例程結(jié)束。
除了上面所述的那些外,可通過其它類型的圖形用戶接口來輸入用于SMFB的配置數(shù)據(jù)。例如,可以通過與狀態(tài)轉(zhuǎn)換圖相似的圖形用戶接口來輸入配置數(shù)據(jù)。圖17是可用于配置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)1時(shí),如果將INPUT 2置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)2。元素920指示當(dāng)狀態(tài)機(jī)處于狀態(tài)1時(shí),如果將INPUT 3置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)3。元素924指示當(dāng)狀態(tài)機(jī)處于狀態(tài)2時(shí),如果將INPUT 1置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)1,以及元素928指示當(dāng)狀態(tài)機(jī)處于狀態(tài)3時(shí),如果將INPUT 1置為有效,它應(yīng)轉(zhuǎn)換到狀態(tài)1。相似地,元素932指示當(dāng)狀態(tài)機(jī)處于狀態(tài)3時(shí),如果將INPUT 4置為有效,則它應(yīng)轉(zhuǎn)換到狀態(tài)2。
一般地,可以由軟件、固件、或硬件或者軟件、固件和/或硬件的一些組合來實(shí)現(xiàn)SMFB。例如,可以由一個(gè)或多個(gè)控制器12a、16a,I/O設(shè)備24,邏輯解算器50和設(shè)備22、23、60、62來實(shí)現(xiàn)SMFB。作為另一個(gè)示例,可以由一個(gè)或多個(gè)工作站18a和20a來實(shí)現(xiàn)SMFB。例如,可以由工作站18a和/或工作站20a來實(shí)現(xiàn)SMFB,作為測(cè)試進(jìn)程工廠的操作或提供操作員訓(xùn)練的仿真的一部分。在一些實(shí)施例中,SMFB可以由根據(jù)軟件由可編程邏輯設(shè)備配置的處理器來實(shí)現(xiàn),該可編程邏輯設(shè)備可以是例如包括一個(gè)或多個(gè)門陣列、標(biāo)準(zhǔn)單元、現(xiàn)場(chǎng)可編程門陣列(FPGA)、PROM、EPROM、EEPROM、可編程陣列邏輯(PAL)、可編程邏輯陣列(PLA)等的設(shè)備。
每個(gè)圖8的塊404、408、412、416和420及圖14的塊754可以由軟件、固件、或硬件或者軟件、固件和/或硬件的一些組合來實(shí)現(xiàn)。另外,盡管將圖10-12、圖15和圖16的流程圖描述為例程,但這些流程圖也可以由軟件、固件、或硬件或者軟件、固件和/或硬件的一些組合來實(shí)現(xiàn)。
諸如上述用戶接口的用戶接口的實(shí)施例可以整個(gè)地或部分地由例如根據(jù)軟件程序配置的處理器來實(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ì)上、或諸如與處理器相關(guān)聯(lián)的RAM的存儲(chǔ)器上的軟件,但是本領(lǐng)域的普通技術(shù)人員將很容易地理解其整個(gè)程序或部分程序或者可以由處理器之外的設(shè)備執(zhí)行,和/或以熟知的方式體現(xiàn)在固件和/或?qū)S糜布稀?br>
盡管本發(fā)明可進(jìn)行各種修改和替換構(gòu)造,在此已在附圖中示出并詳細(xì)描述了本發(fā)明的特定說明性實(shí)施例。但是,應(yīng)該理解并非啟圖限制本公開于所公開的特定形式,而是相反,本發(fā)明覆蓋落入由所附權(quán)利要求書定義的本公開的精神和范圍內(nèi)的所有修改、替換構(gòu)造和等同物。
本發(fā)明涉及美國(guó)專利申請(qǐng)?zhí)枮椋撸?代理方文件號(hào)06005/39538)、名為“STATE MACHINE FUNCTION BLOCK WITH A USER MODIFIABLEOUTPUT CONFIGURATION DATABASE”的專利申請(qǐng),該申請(qǐng)為共有的,其全文通過引用包含于此。
權(quán)利要求
1.一種用于通過具有顯示設(shè)備和輸入設(shè)備的計(jì)算設(shè)備來配置與進(jìn)程工廠相關(guān)聯(lián)的功能塊的方法,該功能塊用于實(shí)現(xiàn)狀態(tài)機(jī),該方法包括下列步驟通過顯示設(shè)備提供圖形用戶接口,用于至少部分地配置狀態(tài)機(jī)如何在多種狀態(tài)之間進(jìn)行轉(zhuǎn)換,其中,該圖形用戶接口包括多個(gè)圖形元素,其中至少一些圖形元素可用于指示期望的狀態(tài)間轉(zhuǎn)換;其中至少一個(gè)輸入與進(jìn)程工廠相關(guān)聯(lián);通過所述圖形用戶接口來接收狀態(tài)轉(zhuǎn)換數(shù)據(jù);和將狀態(tài)轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)在與所述功能塊相關(guān)聯(lián)的第一計(jì)算機(jī)可讀介質(zhì)上。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述多個(gè)圖形元素包括與功能塊相關(guān)聯(lián)的第一多個(gè)單元,所述第一多個(gè)單元的每個(gè)單元對(duì)應(yīng)于至少一個(gè)輸入和狀態(tài)機(jī)的多種狀態(tài)的至少一些可能配對(duì)之一;和其中,接收狀態(tài)轉(zhuǎn)換數(shù)據(jù)的步驟包括經(jīng)由所述輸入設(shè)備接收與所述第一多個(gè)單元的至少一些的每個(gè)相關(guān)聯(lián)的的各個(gè)數(shù)據(jù),所述各個(gè)數(shù)據(jù)指示當(dāng)狀態(tài)機(jī)處于對(duì)應(yīng)于所述單元的狀態(tài)并且對(duì)應(yīng)于所述單元的輸入是特定值時(shí),狀態(tài)機(jī)應(yīng)該轉(zhuǎn)換到的下一狀態(tài)。
3.根據(jù)權(quán)利要求2所述的方法,還包括在顯示設(shè)備上顯示所述第一多個(gè)單元的適當(dāng)單元中的狀態(tài)轉(zhuǎn)換數(shù)據(jù)的指示。
4.根據(jù)權(quán)利要求2所述的方法,其中,在顯示設(shè)備上顯示所述第一多個(gè)單元的步驟包括在顯示設(shè)備上顯示包括所述第一多個(gè)單元的矩陣,該矩陣包括至少一個(gè)單元行和多個(gè)單元列,所述至少一行的每一行與至少一個(gè)輸入的相應(yīng)輸入相關(guān)聯(lián),所述多個(gè)列的每一列與多種狀態(tài)的相應(yīng)狀態(tài)相關(guān)聯(lián)。
5.根據(jù)權(quán)利要求2所述的方法,其中,在顯示設(shè)備上顯示所述第一多個(gè)單元的步驟包括在顯示設(shè)備上顯示包括所述第一多個(gè)單元的矩陣,該矩陣包括多個(gè)單元行和至少一個(gè)單元列,所述多個(gè)行的每一行與多種狀態(tài)的相應(yīng)狀態(tài)相關(guān)聯(lián),所述至少一列的每一列與至少一個(gè)輸入的相應(yīng)輸入相關(guān)聯(lián)。
6.根據(jù)權(quán)利要求2所述的方法,其中,所述特定值是邏輯1、邏輯0、邏輯TRUE值和邏輯FALSE值之一。
7.根據(jù)權(quán)利要求2所述的方法,還包括經(jīng)由輸入設(shè)備接收指示至少一個(gè)輸入中的輸入編號(hào)的數(shù)據(jù);和基于所述輸入編號(hào)來確定所述第一多個(gè)單元中的單元編號(hào)。
8.根據(jù)權(quán)利要求7所述的方法,還包括經(jīng)由輸入設(shè)備接收指示所述多種狀態(tài)中的狀態(tài)編號(hào)的數(shù)據(jù);其中,確定所述第一多個(gè)單元中的單元編號(hào)的步驟包括基于所述輸入編號(hào)和所述狀態(tài)編號(hào)來確定所述單元編號(hào)。
9.根據(jù)權(quán)利要求2所述的方法,還包括經(jīng)由輸入設(shè)備接收指示所述多種狀態(tài)中的狀態(tài)編號(hào)的數(shù)據(jù);和基于所述狀態(tài)編號(hào)來確定所述第一多個(gè)單元中的單元編號(hào)。
10.根據(jù)權(quán)利要求2所述的方法,其中,所述多個(gè)圖形元素還包括與功能塊相關(guān)聯(lián)的第二多個(gè)單元,該第二多個(gè)單元的每個(gè)單元對(duì)應(yīng)于功能塊的多個(gè)輸出中的相應(yīng)一個(gè)和狀態(tài)機(jī)的多種狀態(tài)中的相應(yīng)一個(gè);經(jīng)由輸入設(shè)備接收與所述第二多個(gè)單元的至少一些相關(guān)聯(lián)的輸出配置數(shù)據(jù),與所述第二多個(gè)單元的至少一些的每個(gè)單元相關(guān)聯(lián)的各個(gè)輸出配置數(shù)據(jù)包括指示當(dāng)狀態(tài)機(jī)處于對(duì)應(yīng)于所述單元的狀態(tài)時(shí)對(duì)應(yīng)于所述單元的輸出的輸出值的數(shù)據(jù);和在與功能塊相關(guān)聯(lián)的第二計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)所述輸出配置數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的方法,其中,所述第一計(jì)算機(jī)可讀介質(zhì)包括所述第二計(jì)算機(jī)可讀介質(zhì)。
12.根據(jù)權(quán)利要求1所述的方法,還包括接收指示如何處理具有BAD狀態(tài)的輸入的數(shù)據(jù);和存儲(chǔ)指示如何處理具有BAD狀態(tài)的輸入的數(shù)據(jù)。
13.根據(jù)權(quán)利要求1所述的方法,其中所述至少一個(gè)輸入包括多個(gè)輸入,該方法還包括經(jīng)由所述圖形用戶接口接收指示與所述多個(gè)輸入相關(guān)聯(lián)的優(yōu)先級(jí)的數(shù)據(jù);和存儲(chǔ)指示如何處理具有BAD狀態(tài)的輸入的數(shù)據(jù)。
14.根據(jù)權(quán)利要求1所述的方法,還包括接收指示狀態(tài)機(jī)是否應(yīng)該忽略,如果有的話,所述至少一個(gè)輸入的一個(gè)或多個(gè)的數(shù)據(jù);和存儲(chǔ)所述指示狀態(tài)機(jī)是否應(yīng)該忽略,如果有的話,所述至少一個(gè)輸入的一個(gè)或多個(gè)的數(shù)據(jù)。
15.根據(jù)權(quán)利要求1所述的方法,其中,所述至少一個(gè)輸入與進(jìn)程控制系統(tǒng)、進(jìn)程控制系統(tǒng)的仿真、安全系統(tǒng)和安全系統(tǒng)的仿真中的至少一個(gè)相關(guān)聯(lián)。
16.根據(jù)權(quán)利要求1所述的方法,其中,從與進(jìn)程工廠相關(guān)聯(lián)的至少一個(gè)其它功能塊接收所述至少一個(gè)輸入。
17.根據(jù)權(quán)利要求1所述的方法,其中,從操作員接口接收所述至少一個(gè)輸入。
18.一種存儲(chǔ)機(jī)器可讀指令的有形介質(zhì),包括第一代碼,用于通過顯示設(shè)備提供圖形用戶接口,用于至少部分地配置狀態(tài)機(jī)如何在多種狀態(tài)之間進(jìn)行轉(zhuǎn)換,其中,該圖形用戶接口包括多個(gè)圖形元素,其中至少一些圖形元素可用于指示期望的狀態(tài)間轉(zhuǎn)換;其中至少一個(gè)輸入與進(jìn)程工廠相關(guān)聯(lián);第二代碼,用于通過所述圖形用戶接口接收狀態(tài)轉(zhuǎn)換數(shù)據(jù);和第三代碼,用于將狀態(tài)轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)在與所述功能塊相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)上。
19.根據(jù)權(quán)利要求18所述的有形介質(zhì),其中,所述多個(gè)圖形元素包括與功能塊相關(guān)聯(lián)的第一多個(gè)單元,所述第一多個(gè)單元的每個(gè)單元對(duì)應(yīng)于至少一個(gè)輸入和狀態(tài)機(jī)的多種狀態(tài)的至少一些可能配對(duì)之一;和其中,所述第二代碼包括第四代碼,用于經(jīng)由計(jì)算設(shè)備的輸入設(shè)備接收與所述第一多個(gè)單元的至少一些的每個(gè)相關(guān)聯(lián)的的各個(gè)數(shù)據(jù),所述各個(gè)數(shù)據(jù)指示當(dāng)狀態(tài)機(jī)處于對(duì)應(yīng)于所述單元的狀態(tài)并且對(duì)應(yīng)于所述單元的輸入是特定值時(shí),狀態(tài)機(jī)應(yīng)該轉(zhuǎn)換到的下一狀態(tài)。
20.根據(jù)權(quán)利要求19所述的有形介質(zhì),還包括第五代碼,用于在顯示設(shè)備上顯示所述第一多個(gè)單元的適當(dāng)單元中的狀態(tài)轉(zhuǎn)換數(shù)據(jù)的指示。
21.根據(jù)權(quán)利要求19所述的有形介質(zhì),其中,所述第一代碼包括第五代碼,用于在顯示設(shè)備上顯示包括所述第一多個(gè)單元的矩陣,該矩陣包括至少一個(gè)單元行和多個(gè)單元列,其中該至少一行的每一行與至少一個(gè)輸入的相應(yīng)輸入相關(guān)聯(lián),該多個(gè)列的每一列與多種狀態(tài)的相應(yīng)狀態(tài)相關(guān)聯(lián)。
22.根據(jù)權(quán)利要求19所述的有形介質(zhì),其中,所述第一代碼包括第五代碼,用于在顯示設(shè)備上顯示包括所述第一多個(gè)單元的矩陣,該矩陣包括多個(gè)單元行和至少一個(gè)單元列,其中該多個(gè)行的每一行與多種狀態(tài)的相應(yīng)狀態(tài)相關(guān)聯(lián),該至少一列的每一列與至少一個(gè)輸入的相應(yīng)輸入相關(guān)聯(lián)。
23.根據(jù)權(quán)利要求19所述的有形介質(zhì),其中,所述特定值是邏輯1、邏輯0、邏輯TRUE值和邏輯FALSE值之一。
24.根據(jù)權(quán)利要求19所述的有形介質(zhì),還包括第五代碼,用于經(jīng)由輸入設(shè)備接收指示至少一個(gè)輸入中的輸入編號(hào)的數(shù)據(jù);和第六代碼,用于基于所述輸入編號(hào)來確定所述第一多個(gè)單元中的單元編號(hào)。
25.根據(jù)權(quán)利要求24所述的有形介質(zhì),還包括第七代碼,用于經(jīng)由輸入設(shè)備接收指示所述多種狀態(tài)中的狀態(tài)編號(hào)的數(shù)據(jù);其中,所述第六代碼包括用于基于所述輸入編號(hào)和所述狀態(tài)編號(hào)來確定所述單元編號(hào)的代碼。
26.根據(jù)權(quán)利要求19所述的有形介質(zhì),還包括第五代碼,用于經(jīng)由輸入設(shè)備接收指示所述多種狀態(tài)中的狀態(tài)編號(hào)的數(shù)據(jù);和第六代碼,用于基于所述狀態(tài)編號(hào)來確定所述第一多個(gè)單元中的單元編號(hào)。
27.根據(jù)權(quán)利要求19所述的有形介質(zhì),其中,所述多個(gè)圖形元素包括與功能塊相關(guān)聯(lián)的第二多個(gè)單元,該第二多個(gè)單元的每個(gè)單元對(duì)應(yīng)于功能塊的多個(gè)輸出中的相應(yīng)一個(gè)和狀態(tài)機(jī)的多種狀態(tài)中的相應(yīng)一個(gè);第六代碼,用于經(jīng)由輸入設(shè)備接收與所述第二多個(gè)單元的至少一些相關(guān)聯(lián)的輸出配置數(shù)據(jù),與所述第二多個(gè)單元的至少一些的每個(gè)單元相關(guān)聯(lián)的各個(gè)輸出配置數(shù)據(jù)包括指示當(dāng)狀態(tài)機(jī)處于對(duì)應(yīng)于所述單元的狀態(tài)時(shí)對(duì)應(yīng)于所述單元的輸出的輸出值的數(shù)據(jù);和第七代碼,用于存儲(chǔ)所述輸出配置數(shù)據(jù)。
28.根據(jù)權(quán)利要求18所述的有形介質(zhì),其中,所述至少一個(gè)輸入包括多個(gè)輸入,該有形介質(zhì)還包括第四代碼,用于經(jīng)由所述輸入設(shè)備接收指示與所述多個(gè)輸入相關(guān)聯(lián)的優(yōu)先級(jí)的數(shù)據(jù);和第五代碼,用于存儲(chǔ)所述指示優(yōu)先級(jí)的數(shù)據(jù)。
29.根據(jù)權(quán)利要求18所述的有形介質(zhì),還包括第四代碼,用于接收指示如何處理具有BAD狀態(tài)的輸入的數(shù)據(jù);和第五代碼,用于存儲(chǔ)指示如何處理具有BAD狀態(tài)的輸入的數(shù)據(jù)。
30.根據(jù)權(quán)利要求18所述的有形介質(zhì),還包括第四代碼,用于接收指示是否應(yīng)該忽略,如果有的話,所述至少一個(gè)輸入的一個(gè)或多個(gè)的數(shù)據(jù);和第五代碼,用于存儲(chǔ)所述指示是否應(yīng)該忽略,如果有的話,所述至少一個(gè)輸入的一個(gè)或多個(gè)的數(shù)據(jù)。
31.根據(jù)權(quán)利要求18所述的有形介質(zhì),其中,所述至少一個(gè)輸入與進(jìn)程控制系統(tǒng)、進(jìn)程控制系統(tǒng)的仿真、安全系統(tǒng)和安全系統(tǒng)的仿真中的至少一個(gè)相關(guān)聯(lián)。
32.根據(jù)權(quán)利要求18所述的有形介質(zhì),其中,從與進(jìn)程工廠相關(guān)聯(lián)的至少一個(gè)其它功能塊接收所述至少一個(gè)輸入。
33.根據(jù)權(quán)利要求18所述的有形介質(zhì),其中,從操作員接口接收所述至少一個(gè)輸入。
34.一種實(shí)現(xiàn)用于控制進(jìn)程工廠中的一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備或用于仿真進(jìn)程工廠中的一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備的控制的功能塊的方法,該方法包括下列步驟通過顯示設(shè)備提供圖形用戶接口,用于至少部分地配置狀態(tài)機(jī)如何在多種狀態(tài)之間進(jìn)行轉(zhuǎn)換,其中,該圖形用戶接口包括多個(gè)圖形元素,其中至少一些圖形元素可用于指示期望的狀態(tài)間轉(zhuǎn)換;其中至少一個(gè)輸入指示進(jìn)程工廠內(nèi)的狀況;通過該圖形用戶接口接收狀態(tài)轉(zhuǎn)換數(shù)據(jù);將狀態(tài)轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)在與所述功能塊相關(guān)聯(lián)的第一計(jì)算機(jī)可讀介質(zhì)上;接收所述至少一個(gè)輸入,其中所述至少一個(gè)輸入與進(jìn)程工廠相關(guān)聯(lián);至少部分地基于所述至少一個(gè)輸入、當(dāng)前狀態(tài)和存儲(chǔ)在第一計(jì)算機(jī)可讀介質(zhì)上的狀態(tài)轉(zhuǎn)換數(shù)據(jù)中的至少一個(gè)來確定下一狀態(tài);將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為下一狀態(tài);和將用于控制所述一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備的至少一個(gè)功能塊輸出提供到至少第二其它功能塊,其中,所述至少一個(gè)功能塊輸出是基于狀態(tài)機(jī)的當(dāng)前狀態(tài)。
35.根據(jù)權(quán)利要求34所述的方法,其中,所述至少一個(gè)輸入包括多個(gè)輸入;其中確定下一狀態(tài)的步驟包括進(jìn)一步基于與所述多個(gè)輸入相關(guān)聯(lián)的優(yōu)先級(jí)來確定下一狀態(tài)。
36.根據(jù)權(quán)利要求35所述的方法,其中,進(jìn)一步基于與所述多個(gè)輸入相關(guān)聯(lián)的優(yōu)先級(jí)來確定下一狀態(tài)的步驟包括進(jìn)一步基于與所述多個(gè)輸入相關(guān)聯(lián)的次序來確定下一狀態(tài)。
37.根據(jù)權(quán)利要求34所述的方法,還包括基于所述至少一個(gè)輸入和存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的狀態(tài)轉(zhuǎn)換數(shù)據(jù)中的至少一個(gè)來確定是否要發(fā)生狀態(tài)轉(zhuǎn)換;確定下一狀態(tài)的步驟包括如果要發(fā)生狀態(tài)轉(zhuǎn)換,則確定下一狀態(tài);和將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為下一狀態(tài)的步驟包括如果要發(fā)生狀態(tài)轉(zhuǎn)換,則將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為下一狀態(tài)。
38.根據(jù)權(quán)利要求34所述的方法,其中,確定下一狀態(tài)的步驟包括確定,如果有的話,為特定值的至少一個(gè)輸入的一個(gè)或多個(gè)。
39.根據(jù)權(quán)利要求38所述的方法,其中,確定下一狀態(tài)的步驟進(jìn)一步包括確定,如果有的話,為特定值并且還對(duì)應(yīng)于基于存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的狀態(tài)轉(zhuǎn)換數(shù)據(jù)的狀態(tài)改變的至少一個(gè)輸入的一個(gè)或多個(gè)的一個(gè)或多個(gè)。
40.根據(jù)權(quán)利要求39所述的方法,還包括選擇,如果有的話,為特定值并對(duì)應(yīng)于狀態(tài)改變的至少一個(gè)輸入的一個(gè)或多個(gè)中的一個(gè)。
41.根據(jù)權(quán)利要求40所述的方法,其中,所述至少一個(gè)輸入包括多個(gè)輸入;其中,選擇,如果有的話,為特定值并對(duì)應(yīng)于狀態(tài)改變的至少一個(gè)輸入的一個(gè)或多個(gè)中的一個(gè)的步驟包括基于與所述多個(gè)輸入相關(guān)聯(lián)的優(yōu)先級(jí)進(jìn)行選擇。
42.根據(jù)權(quán)利要求41所述的方法,其中,選擇,如果有的話,為特定值并對(duì)應(yīng)于狀態(tài)改變的至少一個(gè)輸入的一個(gè)或多個(gè)中的一個(gè)的步驟包括基于與所述多個(gè)輸入相關(guān)聯(lián)的次序進(jìn)行選擇。
43.根據(jù)權(quán)利要求34所述的方法,其中,確定下一狀態(tài)的步驟包括基于存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的狀態(tài)轉(zhuǎn)換數(shù)據(jù)來確定,如果有的話,與從當(dāng)前狀態(tài)的潛在狀態(tài)改變相關(guān)聯(lián)的至少一個(gè)輸入的一個(gè)或多個(gè)。
44.根據(jù)權(quán)利要求43所述的方法,其中,確定下一狀態(tài)的步驟還包括確定,如果有的話,與從當(dāng)前狀態(tài)的潛在狀態(tài)改變相關(guān)聯(lián)并還是特定值的至少一個(gè)輸入的一個(gè)或多個(gè)的一個(gè)或多個(gè)。
45.根據(jù)權(quán)利要求34所述的方法,其中,提供至少一個(gè)功能塊輸出的步驟包括提供多個(gè)功能塊輸出。
46.根據(jù)權(quán)利要求45所述的方法,其中,所述多個(gè)功能塊輸出中的至少一些的每一個(gè)指示狀態(tài)機(jī)的當(dāng)前狀態(tài)是否對(duì)應(yīng)于狀態(tài)機(jī)的多個(gè)可能狀態(tài)的相應(yīng)一個(gè)。
47.根據(jù)權(quán)利要求45所述的方法,其中,提供所述多個(gè)功能塊輸出的步驟包括基于至少當(dāng)前狀態(tài),從輸出配置數(shù)據(jù)庫(kù)中得到指示用于所述多種狀態(tài)機(jī)功能塊輸出的至少一些的適當(dāng)值的數(shù)據(jù);和將所述多個(gè)功能塊輸出的至少一些設(shè)置為所述適當(dāng)值。
48.根據(jù)權(quán)利要求45所述的方法,其中,提供所述多個(gè)功能塊輸出的步驟包括提供指示狀態(tài)機(jī)的當(dāng)前狀態(tài)的一個(gè)功能塊輸出。
49.根據(jù)權(quán)利要求34所述的方法,其中,所述至少一個(gè)功能塊輸出包括指示狀態(tài)機(jī)的當(dāng)前狀態(tài)的一個(gè)功能塊輸出。
50.根據(jù)權(quán)利要求34所述的方法,還包括接收指示是否要禁用狀態(tài)機(jī)功能塊的輸入;和如果指示是否要禁用狀態(tài)機(jī)功能塊的輸入指示要禁用狀態(tài)機(jī)功能塊,則將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為禁用狀態(tài)。
51.根據(jù)權(quán)利要求50所述的方法,還包括接收指示是否要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài)的輸入;和如果指示是否要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài)的輸入指示應(yīng)該強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài),則將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為初始狀態(tài);其中,指示是否要使能狀態(tài)機(jī)功能塊的輸入和指示是否要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài)的輸入構(gòu)成單個(gè)輸入。
52.根據(jù)權(quán)利要求34所述的方法,還包括接收指示是否要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài)的輸入;和如果指示是否要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài)的輸入指示應(yīng)該強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài),則將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為初始狀態(tài)。
53.根據(jù)權(quán)利要求34所述的方法,其中,接收至狀態(tài)機(jī)功能塊的至少一個(gè)數(shù)據(jù)輸入的步驟包括接收與進(jìn)程控制系統(tǒng)、進(jìn)程控制系統(tǒng)的仿真、安全系統(tǒng)和安全系統(tǒng)的仿真中的至少一個(gè)相關(guān)聯(lián)的至少一個(gè)信號(hào)。
54.根據(jù)權(quán)利要求34所述的方法,其中,從與進(jìn)程工廠相關(guān)聯(lián)的至少一個(gè)其它功能塊接收所述至少一個(gè)輸入。
55.根據(jù)權(quán)利要求34所述的方法,其中,從操作員接收所述至少一個(gè)輸入。
56.根據(jù)權(quán)利要求34所述的方法,其中,提供所述至少一個(gè)功能塊輸出的步驟包括將所述至少一個(gè)功能塊輸出提供到進(jìn)程控制系統(tǒng)的一部分,其中,所述進(jìn)程控制系統(tǒng)的一部分至少部分地基于所述至少一個(gè)功能塊輸出來控制所述一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備。
57.根據(jù)權(quán)利要求34所述的方法,其中,提供所述至少一個(gè)功能塊輸出的步驟包括將所述至少一個(gè)功能塊輸出提供到安全系統(tǒng)的一部分,其中,所述安全系統(tǒng)的一部分至少部分地基于所述至少一個(gè)功能塊輸出來控制所述一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備。
58.一種功能塊實(shí)體,用于具有適用于控制一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備或適用于仿真對(duì)一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備的控制的處理器的進(jìn)程工廠,該功能塊實(shí)體包括用戶可修改狀態(tài)機(jī)配置數(shù)據(jù)庫(kù),其包含指示由功能塊實(shí)現(xiàn)的狀態(tài)機(jī)如何在多種狀態(tài)之間進(jìn)行轉(zhuǎn)換的狀態(tài)轉(zhuǎn)換數(shù)據(jù),其中,對(duì)于所述多種狀態(tài)的至少一些的每個(gè)和至功能塊的至少一個(gè)輸入的一些的每個(gè)的至少一些可能配對(duì)的每一個(gè),所述狀態(tài)轉(zhuǎn)換數(shù)據(jù)包括指示當(dāng)狀態(tài)機(jī)處于相應(yīng)狀態(tài)和相應(yīng)輸入為特定值時(shí)狀態(tài)機(jī)應(yīng)轉(zhuǎn)換到的下一狀態(tài)的數(shù)據(jù);第一計(jì)算機(jī)可讀介質(zhì);存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第一代碼,用于接收所述至少一個(gè)輸入,其中所述至少一個(gè)輸入包括與進(jìn)程工廠相關(guān)聯(lián)的數(shù)據(jù);存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第二代碼,用于確定狀態(tài)機(jī)的下一狀態(tài),其中確定是至少部分地基于所述至少一個(gè)輸入、狀態(tài)機(jī)的當(dāng)前狀態(tài)和狀態(tài)轉(zhuǎn)換數(shù)據(jù)中的至少一個(gè),所述第二代碼是固定的;存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第三代碼,用于將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置到下一狀態(tài),其中所述第三代碼是固定的;和存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第四代碼,用于提供用于控制所述一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備的至少一個(gè)功能塊輸出。
59.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,其中,所述狀態(tài)機(jī)配置數(shù)據(jù)庫(kù)存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上。
60.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,其中,所述狀態(tài)機(jī)配置數(shù)據(jù)庫(kù)存儲(chǔ)在不同于所述第一計(jì)算機(jī)可讀介質(zhì)的第二計(jì)算機(jī)可讀介質(zhì)上。
61.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,其中,所述至少一個(gè)輸入包括多個(gè)輸入;所述第二代碼包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼,用于進(jìn)一步基于與所述多個(gè)輸入相關(guān)聯(lián)的優(yōu)先級(jí)來確定下一狀態(tài)。
62.根據(jù)權(quán)利要求61所述的功能塊實(shí)體,其中,所述第五代碼包括用于進(jìn)一步基于與所述多個(gè)輸入相關(guān)聯(lián)的次序來確定下一狀態(tài)的代碼。
63.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,還包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼,用于基于所述至少一個(gè)輸入和狀態(tài)轉(zhuǎn)換數(shù)據(jù)中的至少一個(gè)來確定是否要發(fā)生狀態(tài)轉(zhuǎn)換;其中,所述第二代碼包括當(dāng)要發(fā)生狀態(tài)轉(zhuǎn)換時(shí)確定下一狀態(tài)的代碼;和所述第三代碼包括當(dāng)要發(fā)生狀態(tài)轉(zhuǎn)換時(shí)將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為下一狀態(tài)的代碼。
64.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,其中所述第二代碼包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼,用于確定,如果有的話,為特定值的所述至少一個(gè)輸入中的一個(gè)或多個(gè)。
65.根據(jù)權(quán)利要求64所述的功能塊實(shí)體,其中,所述第二代碼還包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第六代碼,用于確定,如果有的話,為特定值并且還對(duì)應(yīng)于至少部分地基于狀態(tài)轉(zhuǎn)換數(shù)據(jù)的狀態(tài)改變的所述至少一個(gè)輸入中的一個(gè)或多個(gè)的一個(gè)或多個(gè)。
66.根據(jù)權(quán)利要求65所述的功能塊實(shí)體,還包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第七代碼,用于如果存在為特定值并對(duì)應(yīng)于從當(dāng)前狀態(tài)的狀態(tài)改變的所述至少一個(gè)輸入的至少一個(gè),則選擇,如果有的話,為特定值并對(duì)應(yīng)于狀態(tài)改變的所述至少一個(gè)輸入的一個(gè)或多個(gè)之一。
67.根據(jù)權(quán)利要求66所述的功能塊實(shí)體,其中,所述至少一個(gè)輸入包括多個(gè)輸入;所述第七代碼包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第八代碼,用于基于與所述多個(gè)輸入相關(guān)聯(lián)的優(yōu)先級(jí)來選擇所述至少一個(gè)輸入之一。
68.根據(jù)權(quán)利要求67所述的功能塊實(shí)體,其中,所述第八代碼包括基于與所述多個(gè)輸入相關(guān)聯(lián)的次序來選擇所述多個(gè)輸入之一的代碼。
69.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,其中,所述第二代碼包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼,用于確定,如果有的話,可能基于存儲(chǔ)在所述第二計(jì)算機(jī)可讀介質(zhì)上的狀態(tài)轉(zhuǎn)換數(shù)據(jù)引起從當(dāng)前狀態(tài)的狀態(tài)改變的至少一個(gè)輸入中的一個(gè)或多個(gè)。
70.根據(jù)權(quán)利要求69所述的功能塊實(shí)體,其中,所述第二代碼還包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第六代碼,用于確定,如果有的話,可能引起狀態(tài)改變并且也為特定值的至少一個(gè)輸入的一個(gè)或多個(gè)的一個(gè)或多個(gè)。
71.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,其中,所述第四代碼包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼,用于提供多個(gè)功能塊輸出。
72.根據(jù)權(quán)利要求71所述的功能塊實(shí)體,其中,所述第五代碼包括用于提供指示狀態(tài)機(jī)的當(dāng)前狀態(tài)是否對(duì)應(yīng)于狀態(tài)機(jī)的多個(gè)可能狀態(tài)中的相應(yīng)一個(gè)的多個(gè)功能塊輸出的至少一些的每個(gè)的代碼。
73.根據(jù)權(quán)利要求71所述的功能塊實(shí)體,其中,所述第五代碼包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第六代碼,用于基于至少當(dāng)前狀態(tài)從用戶可配置輸出配置數(shù)據(jù)庫(kù)得到指示用于多種狀態(tài)機(jī)功能塊輸出的至少一些的適當(dāng)值的數(shù)據(jù);和存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第七代碼,用于將多種狀態(tài)機(jī)功能塊輸出的至少一些設(shè)置為所述適當(dāng)值。
74.根據(jù)權(quán)利要求73所述的功能塊實(shí)體,其中所述狀態(tài)機(jī)配置數(shù)據(jù)庫(kù)和輸出配置數(shù)據(jù)庫(kù)存儲(chǔ)在同一計(jì)算機(jī)可讀介質(zhì)上。
75.根據(jù)權(quán)利要求73所述的功能塊實(shí)體,其中所述狀態(tài)機(jī)配置數(shù)據(jù)庫(kù)和輸出配置數(shù)據(jù)庫(kù)存儲(chǔ)在不同計(jì)算機(jī)可讀介質(zhì)上。
76.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,還包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼,用于接收指示是否要禁用狀態(tài)機(jī)功能塊的輸入;和存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第六代碼,用于如果指示是否要禁用狀態(tài)機(jī)功能塊的輸入指示要禁用狀態(tài)機(jī)功能塊,則將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為禁用狀態(tài)。
77.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,還包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼,用于接收指示是否要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài)的輸入;和存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第六代碼,用于如果指示是否要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài)的輸入指示要強(qiáng)制狀態(tài)機(jī)功能塊進(jìn)入初始狀態(tài),則將狀態(tài)機(jī)的當(dāng)前狀態(tài)設(shè)置為初始狀態(tài)。
78.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,其中,所述至少一個(gè)數(shù)據(jù)輸入包括與進(jìn)程控制系統(tǒng)、進(jìn)程控制系統(tǒng)的仿真、安全系統(tǒng)和安全系統(tǒng)的仿真中的至少一個(gè)相關(guān)聯(lián)的至少一個(gè)信號(hào)。
79.根據(jù)權(quán)利要求58所述的功能塊實(shí)體,還包括存儲(chǔ)在所述第一計(jì)算機(jī)可讀介質(zhì)上的第五代碼用于屏蔽,如果有的話,至少一個(gè)輸入的一個(gè)或多個(gè)。
全文摘要
進(jìn)程工廠內(nèi)的控制系統(tǒng)、安全系統(tǒng)等可以每個(gè)都使用能夠被容易地集成到功能塊圖表編程環(huán)境中的一個(gè)或多種狀態(tài)機(jī)功能塊。這種狀態(tài)機(jī)功能塊可以包括一個(gè)或多個(gè)輸入,用于使由狀態(tài)機(jī)功能塊實(shí)現(xiàn)的狀態(tài)機(jī)改變狀態(tài)。該狀態(tài)機(jī)功能塊可以至少部分地基于,如果有的話,指示要轉(zhuǎn)換的下一種狀態(tài)的數(shù)據(jù)來確定它要轉(zhuǎn)換的下一種狀態(tài)??梢曰跔顟B(tài)機(jī)的當(dāng)前狀態(tài)和至少一個(gè)輸入從數(shù)據(jù)庫(kù)獲得配置數(shù)據(jù)。狀態(tài)機(jī)功能塊還可以包括基于狀態(tài)機(jī)的狀態(tài)而產(chǎn)生的一個(gè)或多個(gè)輸出。
文檔編號(hào)G05B19/045GK1598723SQ20041006867
公開日2005年3月23日 申請(qǐng)日期2004年9月3日 優(yōu)先權(quán)日2003年9月5日
發(fā)明者加里·K·勞, 邁克爾·G·奧特, 肯特·A·伯爾, 戈弗雷·R·謝里夫 申請(qǐng)人:費(fèi)舍-柔斯芒特系統(tǒng)股份有限公司