欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

具有有限的存儲器資源的低成本可編程hvac控制器的制作方法

文檔序號:6292265閱讀:241來源:國知局
專利名稱:具有有限的存儲器資源的低成本可編程hvac控制器的制作方法
技術(shù)領(lǐng)域
本發(fā)明總體上涉及可編程控制器,更具體來說,本發(fā)明涉及只需要有限的隨機存取存儲器資源的低成本可編程控制器。

背景技術(shù)
許多可編程控制器(其中包括許多HVAC控制器)具有執(zhí)行被存儲在存儲器中的軟件程序的微控制器或微處理器。在許多情況下,所述軟件程序是利用解釋器引擎來執(zhí)行的。解釋器引擎通常取得用元語言或類似語言而存儲的程序,編譯并解釋所述程序,以及隨后執(zhí)行所解釋的指令。在許多情況下,所述解釋器引擎完全地或部分地從隨機存取存儲器(RAM)執(zhí)行所述軟件程序。
許多可編程控制器的一個常見問題在于,即使是為了執(zhí)行相對簡單的軟件程序,所述可編程控制器也可能需要大量的RAM存儲器。當所述可編程控制器使用解釋器引擎來執(zhí)行程序代碼時尤其會出現(xiàn)這種情況。RAM作為相對昂貴的存儲器形式,其會大大增加制造及生產(chǎn)可編程控制器的成本。最便宜的處理器形式常常是微控制器,其通常只具有有限數(shù)量的板上RAM。因此,期望有一種能夠僅僅利用最少數(shù)量的RAM資源來執(zhí)行相對復(fù)雜的軟件程序的低成本可編程控制器。


發(fā)明內(nèi)容
下面提供的本發(fā)明的概要是為了便于理解本發(fā)明所獨有的一些創(chuàng)造性特征,而不是打算作為完全的描述??梢酝ㄟ^把整個說明書、權(quán)利要求書、附圖和摘要作為一個整體來獲得對本發(fā)明的完全認識。
本發(fā)明總體上涉及可編程控制器,更具體來說,本發(fā)明涉及諸如HVAC控制器之類的低成本可編程控制器,其能夠僅僅利用最少數(shù)量的RAM資源來執(zhí)行相對復(fù)雜的軟件程序。在一個說明性實施例中,所述可編程HVAC控制器包括用于執(zhí)行至少一個程序的函數(shù)塊引擎。所述函數(shù)塊引擎可以駐留在所述控制器的非易失性存儲器中,并且可以索引塊執(zhí)行列表。所述塊執(zhí)行列表也可以駐留在非易失性存儲器中,并且可以識別函數(shù)塊的順序列表,當所述函數(shù)塊被執(zhí)行時,其執(zhí)行所期望的控制器功能。
在一些情況下,所述塊執(zhí)行列表可以是現(xiàn)場可編程的,從而允許現(xiàn)場對所述可編程控制器進行編程或重新編程。所述控制器可以包括駐留在RAM存儲器內(nèi)的參數(shù)和/或變量存儲空間,其可以由所述函數(shù)塊來訪問。在一些情況下,可以通過所述參數(shù)和/或變量存儲空間在各函數(shù)塊之間傳遞參數(shù)和/或變量。



考慮到下面結(jié)合附圖對本發(fā)明的各說明性實施例的詳細描述,可以更加全面地理解本發(fā)明,其中 圖1是具有說明性分區(qū)HVAC系統(tǒng)的建筑物或結(jié)構(gòu)的透視圖; 圖2是說明性可編程HVAC控制器的方框圖; 圖3是根據(jù)本發(fā)明一個說明性實施例的可編程控制器的說明性應(yīng)用框架的示意圖; 圖4是圖3的一些說明性應(yīng)用配置模塊的示意圖,其中包括所述說明性的塊執(zhí)行列表;以及 圖5是圖3的一個或多個說明性執(zhí)行模塊的示意圖,其中包括所述函數(shù)塊引擎。

具體實施例方式 應(yīng)當參照附圖來閱讀下面的描述,其中相同的附圖標記在各視圖中始終表示相同的元件。下面的詳細描述和附圖示出打算說明要求保護的本發(fā)明的幾個實施例。
本發(fā)明總體上涉及可編程控制器,更具體來說,本發(fā)明涉及可以僅僅利用最少數(shù)量的RAM資源來執(zhí)行相對復(fù)雜的軟件程序的低成本可編程控制器。下面給出HVAC控制器作為一個例子,以便幫助讀者清楚地理解本發(fā)明的各方面,但是本發(fā)明并不限于此。然而應(yīng)當認識到,根據(jù)具體應(yīng)用,本發(fā)明可以被應(yīng)用于任何類型的控制器。
圖1是具有說明性HVAC系統(tǒng)的建筑物或結(jié)構(gòu)10的透視圖,所述說明性HVAC系統(tǒng)在該特定實例中是分區(qū)HVAC系統(tǒng)。通過允許基于各單獨區(qū)域的加熱或冷卻需求對所述各單獨區(qū)域進行加熱及冷卻,分區(qū)HVAC系統(tǒng)可以在建筑物或結(jié)構(gòu)10內(nèi)提供更高的靈活性和舒適度。在一些情況下,這可以通過允許對一個區(qū)域而不是整個建筑物或結(jié)構(gòu)10進行加熱或冷卻而幫助提高所述HVAC系統(tǒng)的效率。另外,對各區(qū)域的單獨加熱或冷卻可以通過把更多的已加熱或已冷卻空氣集中到該區(qū)域而幫助提高對每一個區(qū)域進行加熱或冷卻的速度。
所述說明性分區(qū)HVAC系統(tǒng)包括強制空氣HVAC裝置(其例如是強制熱空氣爐12)、通風系統(tǒng)或管道系統(tǒng)14和16、一個或多個控制器18和24、多個恒溫器22和28、以及多個風門20和26。所述建筑物10中的每一個區(qū)域可以包括至少一個恒溫器22和28以及至少一個風門20和26。按照期望,HVAC系統(tǒng)中的一個區(qū)域可以包括所述建筑物或結(jié)構(gòu)10內(nèi)的單個房間、所述建筑物或結(jié)構(gòu)10內(nèi)的多個房間、或者所述建筑物或結(jié)構(gòu)10內(nèi)的任何區(qū)域。此外,可以根據(jù)所期望的那樣按照任何布置在所述建筑物或結(jié)構(gòu)10內(nèi)布置各區(qū)域。僅僅出于說明性目的,所示出的建筑物10具有兩個區(qū)域,即區(qū)域1和區(qū)域2。然而應(yīng)當理解,本發(fā)明可以被結(jié)合到一個建筑物或結(jié)構(gòu)10內(nèi)的任何數(shù)目的區(qū)域中,其中包括單個區(qū)域。
所述強制熱空氣爐12可以通過遍及所述建筑物10或結(jié)構(gòu)的管道系統(tǒng)提供已加熱空氣。可以設(shè)想,所述HVAC系統(tǒng)可以包括任何爐12或鍋爐,或者可以包括能夠提供按照期望對所述建筑物或結(jié)構(gòu)10提供加熱(或冷卻)的任何其他裝置。所述強制熱空氣爐12可以通過所述管道系統(tǒng)與所述建筑物10或結(jié)構(gòu)內(nèi)的每一個區(qū)域(例如區(qū)域1和區(qū)域2)進行流體連通。當HVAC控制器(未示出)接收到熱量需求信號時,可以激活所述強制熱空氣爐12,以便通過供氣管道14為所述建筑物10或結(jié)構(gòu)內(nèi)的一個或多個區(qū)域提供已加熱空氣。在該例中,來自每一個區(qū)域的較冷空氣可以通過回氣管道16返回所述強制熱空氣爐12以供加熱。
所述HVAC控制器可以控制所述強制熱空氣爐12的操作,比如控制鼓風機/風扇以及/或者所述強制熱空氣爐12的燃燒。所述HVAC控制器可以耦合到每一個區(qū)域內(nèi)的恒溫器22和28,并且當所述恒溫器22和28發(fā)送針對熱量的需求信號時,所述HVAC控制器可以激活所述強制熱空氣爐12以便提供加熱。
在區(qū)域1內(nèi),控制器18可以耦合到風門20和恒溫器22。同樣,在區(qū)域2內(nèi),控制器24可以耦合到風門26和恒溫器28。所述控制器18和24可以是單獨的控制器,或者可以是統(tǒng)一控制器(比如統(tǒng)一HVAC控制器)的一部分。所述控制器18和24可以基于來自恒溫器22和28的輸入把所述風門20和26與所述強制熱空氣爐12相協(xié)調(diào),以便在需要加熱時為適當?shù)膮^(qū)域提供加熱。例如,如果區(qū)域1希望加熱而區(qū)域2不希望加熱,則區(qū)域1內(nèi)的控制器18可以把風門20致動到打開位置,同時區(qū)域2內(nèi)的控制器24可以把風門26致動到關(guān)閉位置。因此,由所述強制熱空氣爐提供的已加熱空氣可以被提供到區(qū)域1并且不被提供到區(qū)域2。類似地,如果區(qū)域2希望加熱而區(qū)域1不希望加熱,則控制器18可以把風門20致動到關(guān)閉位置,并且控制器24可以把風門26致動到打開位置。于是,由所述強制熱空氣爐12提供的已加熱空氣可以被提供到區(qū)域2并且不被提供到區(qū)域1。另外,如果在區(qū)域1和區(qū)域2內(nèi)都希望加熱,則控制器18和24可以把風門20和26都致動到打開位置,從而可以從所述強制熱空氣爐12同時為兩個區(qū)域提供所期望的已加熱空氣。這僅僅是典型的HVAC系統(tǒng)的一個例子。
圖2是根據(jù)本發(fā)明一個說明性實施例的說明性可編程HVAC控制器的方框圖。所述說明性HVAC控制器可以是一個可編程恒溫器,或者可以與所述恒溫器分開。在任一種情況下,所述HVAC控制器都可以提供影響所述HVAC系統(tǒng)的操作的一個或多個控制信號。
所述說明性HVAC控制器包括微控制器30,其具有非易失性存儲器34和隨機存取存儲器(RAM)36。另外,所述說明性微控制器30包括中央處理單元(CPU)32、模數(shù)轉(zhuǎn)換器(A/D)38、輸入端/輸出端(I/O)42、以及時鐘40或定時器。取決于具體情況,所述說明性微控制器30可以包括比所示出的這些組件更多或更少的組件。如圖所示,可以把前面提到的組件提供在所述微控制器30的內(nèi)部而無需任何外部組件,但這不是必需的。
在一些情況下,最便宜的處理器形式是微控制器。微控制器通常包含所有的存儲器34和36以及I/O 42接口,其被集成在單個芯片或設(shè)備上而無需外部組件。如上所述,使用微控制器30的一個優(yōu)點是與典型的微處理器的成本相比時的低成本。另外,微控制器30可以被設(shè)計成用于特定任務(wù)(比如HVAC任務(wù)),這可以幫助簡化所述控制器并且減少所需部件的數(shù)目,從而進一步降低成本。雖然使用微控制器可能有一些好處,但是可以設(shè)想,按照期望可以結(jié)合微處理器或者任何其他合適的控制器來使用本發(fā)明。
在所述說明性微控制器30中,所述非易失性存儲器34可以是閃速存儲器。然而可以設(shè)想,按照期望,所述非易失性存儲器34也可以是只讀存儲器(ROM)、可編程只讀存儲器(PROM)、電可擦除可編程只讀存儲器(EEPROM)、具有備用電池的隨機存取存儲器(RAM)、或者任何其他合適的非易失性存儲器34。在所述說明性實施例中,閃速存儲器的數(shù)量可以少于100Kb。在一種情況下,閃速存儲器的數(shù)量可以是大約60Kb,然而可以設(shè)想,根據(jù)每個應(yīng)用的要求可以使用任何數(shù)量的閃速存儲器。
在一些說明性實施例中,所述非易失性存儲器34可以被配置成具有至少兩個部分,其中包括等效于ROM的第一部分和等效于EEPROM的第二部分。非易失性存儲器34的第一部分常常被稱作固件部分,其可以被用來至少部分地存儲一個或多個執(zhí)行模塊,比如函數(shù)塊引擎。在一些情況下,所述非易失性存儲器34的該部分可以在工廠中被編程,并且后來不改變。另外,被存儲在所述固件部分中的所述一個或多個執(zhí)行模塊(例如函數(shù)塊引擎)在一些情況下可以執(zhí)行也被存儲在所述非易失性存儲器34中的一個或多個函數(shù)塊。
所述非易失性存儲器34的第二部分可以包括應(yīng)用配置模塊或數(shù)據(jù),其中例如包括塊執(zhí)行列表。在一些情況下,在該第二部分中的所述非易失性存儲器34可以被進一步劃分成包含數(shù)據(jù)片段。所述非易失性存儲器34的該部分可能在出廠后能夠被重新配置,比如在把所述控制器安裝到建筑物或結(jié)構(gòu)內(nèi)的HVAC系統(tǒng)中期間重新配置。換句話說,在一些說明性實施例中,所述非易失性存儲器的第二部分可以是現(xiàn)場可編程的。在一些情況下,為所述第二部分所分配的非易失性存儲器34的數(shù)量可以是大約5Kb。然而可以設(shè)想按照期望提供任何數(shù)量的現(xiàn)場可編程存儲器。
可以進一步設(shè)想,所述非易失性存儲器34還可以具有專用于存儲常數(shù)值的部分。按照期望,這部分存儲器例如可以被存儲在所述固件部分和/或所述現(xiàn)場可編程部分內(nèi)。
在所述說明性微控制器30中,所述RAM 36可以被用于變量存儲。在一些情況下,所述RAM 36可以是一個相對較小的儲存庫,其用于在執(zhí)行被存儲于所述非易失性存儲器34內(nèi)的一個或多個程序或子例程的過程中交換信息。所述RAM 36還可以被用于寄放所述微控制器30的操作系統(tǒng)和/或通信能力(比如外部接口)。在所述說明性微控制器30中,所包括的RAM 36的數(shù)量可以是大約5Kb或更少、2Kb或更少、或者任何其他合適數(shù)量的RAM。在一些情況下,所述操作系統(tǒng)和通信能力可以消耗大約1Kb的RAM 36,從而留下大約1Kb用于其他功能,比如存儲用于所述一個或多個程序的變量和/或其他數(shù)據(jù)。
所述說明性微控制器30的CPU 32可以解釋并執(zhí)行指令,并且可以按照期望控制該微控制器30的其他部件。在一些情況下,所述CPU 32可以包括被包含在一塊芯片上的控制單元和算術(shù)-邏輯單元。所述時鐘40可以為所述微控制器30提供穩(wěn)定的定時脈沖流,其例如可以被用作該微控制器30的內(nèi)部定時設(shè)備并且可以作為操作的基礎(chǔ)。所述I/O 42可以在所述微控制器30與外部組件之間傳送數(shù)據(jù)。在一些情況下,對于每一個輸入,可以有相應(yīng)的輸出過程并且反之亦然。所述A/D 38轉(zhuǎn)換器可以把模擬輸入轉(zhuǎn)換成數(shù)字輸入格式,從而有助于使得所述微處理器能夠讀取及解釋模擬輸入信號。在一些情況下,還可以按照期望提供D/A轉(zhuǎn)換器,以便允許把數(shù)字信號提供為模擬輸出。
圖3是根據(jù)本發(fā)明一個說明性實施例的可編程控制器50的說明性應(yīng)用框架的示意圖。所述說明性控制器50包括一個或多個執(zhí)行模塊、一個或多個應(yīng)用配置模塊、以及參數(shù)和變量存儲空間。所述執(zhí)行模塊由圖3中的圓形示出,其可以包括函數(shù)塊引擎52、內(nèi)建函數(shù)執(zhí)行模塊70、輸入變換模塊78、網(wǎng)絡(luò)變換模塊76、以及輸出變換模塊80。所述應(yīng)用配置模塊由圓柱形示出,其可以包括塊執(zhí)行列表54、內(nèi)建函數(shù)配置60、輸入配置72、網(wǎng)絡(luò)接口配置74、以及輸出配置84。所述參數(shù)和變量存儲空間包括循環(huán)RAM空間56和循環(huán)閃存常數(shù)空間58。另外,所述說明性控制器50可以包括用于通信能力的一個或多個外部接口,其中包括本地輸入62、網(wǎng)絡(luò)文件傳送66、網(wǎng)絡(luò)對象輸入和輸出64、以及本地輸出82。在一些情況下,所述控制器50還可以包括操作系統(tǒng)(OS)任務(wù)調(diào)度器68。
所述一個或多個執(zhí)行模塊可以駐留在所述微控制器50的非易失性存儲器中,比如駐留在閃速存儲器中。更具體來說,在一些情況下,所述一個或多個執(zhí)行模塊可以駐留在所述非易失性存儲器的ROM等效部分或固件部分中。至少其中一個所述執(zhí)行模塊可以包括一個或多個程序,所述一個或多個程序當中的一些涉及所述HVAC系統(tǒng)的操作。所述一個或多個程序可以包括一個子例程集合,其中所述一個或多個執(zhí)行模塊可以順序地執(zhí)行該子例程集合。所述一個或多個執(zhí)行模塊可以從所述非易失性存儲器執(zhí)行所述一個或多個程序。
所述一個或多個應(yīng)用配置模塊也可以駐留在所述微控制器50的所述非易失性存儲器(比如所述閃速存儲器)中。更具體來說,所述一個或多個應(yīng)用配置模塊可以駐留在所述非易失性存儲器的EEPROM等效部分或現(xiàn)場可編程部分中。按照期望,可以針對標準HVAC應(yīng)用來預(yù)先配置這些模塊,或者可以針對定制HVAC應(yīng)用來配置這些模塊。另外,所述一個或多個應(yīng)用配置模塊可以是現(xiàn)場可編程的。例如,在一些情況下,可以在把所述控制器安裝到HVAC系統(tǒng)中的過程中或者在這之后對所述一個或多個應(yīng)用配置模塊進行編程及配置。
在一些情況下,所述一個或多個應(yīng)用配置模塊可以包括塊執(zhí)行列表54。所述塊執(zhí)行列表54的配置可以指導(dǎo)所述一個或多個執(zhí)行模塊(例如函數(shù)塊)的執(zhí)行。在一些情況下,該配置可以由用戶或安裝者來決定。在一些情況下,可以與適當?shù)呐渲靡黄鹗褂镁幊坦ぞ邅韴?zhí)行特定的HVAC應(yīng)用,所述編程工具允許安裝者選擇適當?shù)暮瘮?shù)塊來創(chuàng)建定制塊執(zhí)行列表54。這樣可以幫助在逐項作業(yè)的基礎(chǔ)上配置所述一個或多個應(yīng)用配置模塊,從而又可以在逐項作業(yè)的基礎(chǔ)上指導(dǎo)所述執(zhí)行模塊的執(zhí)行。在一些情況下,所述一個或多個應(yīng)用配置模塊可以包括參數(shù)或者指向存儲器中的數(shù)據(jù)位置的索引(比如指向所述參數(shù)和變量存儲空間)。
所述參數(shù)和變量存儲空間可以被提供在所述控制器50中,以供所述一個或多個執(zhí)行模塊以及/或者一個或多個應(yīng)用配置模塊向/從存儲空間索引數(shù)據(jù)或值。在該說明性實施例中,所述變量參數(shù)存儲空間(或者說循環(huán)RAM空間56)可以駐留在RAM中。該存儲空間可以被用于臨時存儲變量或參數(shù),比如函數(shù)塊輸出以及/或者來自所述控制器50的輸入(本地輸入或網(wǎng)絡(luò)輸入)的臨時值。
此外,在該說明性實施例中,所述常數(shù)參數(shù)存儲空間(或者說循環(huán)閃存常數(shù)58)可以是用于存儲由程序員或用戶確定的常數(shù)值的存儲空間。該存儲空間可以駐留在諸如所述閃速存儲器之類的非易失性存儲器中。按照期望,特定設(shè)置點和操作參數(shù)可以被指定為由應(yīng)用設(shè)計者、安裝者或用戶選擇的常數(shù)參數(shù)值,并且可以被存儲在所述循環(huán)閃存常數(shù)58存儲空間內(nèi)。
所述HVAC控制器50還可以包括外部接口,比如本地輸入62和本地輸出82。所述本地輸入62可以根據(jù)由所述輸入變換模塊78執(zhí)行的輸入配置72而被存儲。這些模塊可以指導(dǎo)存儲所述輸入值,從而使其可由其他執(zhí)行模塊使用,比如所述函數(shù)塊引擎52。所述本地輸出82可以根據(jù)由所述輸出變換模塊80執(zhí)行的輸出配置84而被配置。這可以把所述值或數(shù)據(jù)輸出到外部HVAC組件,比如風門、恒溫器、HVAC控制器、或者所期望的任何其他HVAC組件。
所述OS任務(wù)調(diào)度器68可以決定所述HVAC控制器50內(nèi)的各執(zhí)行模塊的操作和執(zhí)行。例如,可以按照以下順序來執(zhí)行所述各執(zhí)行模塊離散輸入;包括輸入變換78和網(wǎng)絡(luò)變換76;內(nèi)建函數(shù)執(zhí)行60;函數(shù)塊執(zhí)行52;物理輸出處理80;以及最后是網(wǎng)絡(luò)輸出處理76。然而可以設(shè)想,可以按照期望采用任何合適的順序。
圖4是圖3的一些說明性應(yīng)用配置模塊的示意圖,其中包括說明性塊執(zhí)行列表54。如上所示,按照期望,所述塊執(zhí)行列表54可以駐留在諸如閃速存儲器之類的非易失性存儲器中,更具體來說是駐留在所述閃速存儲器的現(xiàn)場可編程部分中。所述說明性塊執(zhí)行列表54包括一個或多個函數(shù)塊55和57的列表,并且被用來指導(dǎo)由所述函數(shù)塊引擎52根據(jù)其配置執(zhí)行的那些函數(shù)塊以及所述函數(shù)塊的執(zhí)行順序。
所述塊執(zhí)行列表54可以在工廠中被編程或者由用戶或安裝者編程,以便配置將對于特定應(yīng)用而執(zhí)行的函數(shù)塊55和57的順序和類型。在一些情況下,所述用戶或安裝者可以具有編程工具,其允許該用戶或安裝者選擇適當?shù)暮瘮?shù)塊55和57以及配置,以便執(zhí)行對應(yīng)于所述特定應(yīng)用的所期望的任務(wù)。因此,在一些實施例中,可以在逐項作業(yè)的基礎(chǔ)上為所述控制器提供所述塊執(zhí)行列表54配置。在一些情況下,這可以允許在現(xiàn)場對所述塊執(zhí)行列表54進行編程及配置并且根據(jù)所述控制器的所期望的應(yīng)用和功能做出改變。
在該說明性實施例中,所述函數(shù)塊55和57是通過讀取輸入、對所述輸入進行操作、并且輸出一個或多個值來執(zhí)行特定任務(wù)的模塊。所述函數(shù)塊55和57可以根據(jù)所述塊執(zhí)行列表54被定義,所述塊執(zhí)行列表54可以由工廠、用戶、安裝者或者應(yīng)用設(shè)計者來編程。在該說明性實施例中,函數(shù)塊55和57可以被分類成6個類別模擬函數(shù)塊、邏輯函數(shù)塊、數(shù)學函數(shù)塊、控制函數(shù)塊、區(qū)域控制函數(shù)塊、以及數(shù)據(jù)函數(shù)塊。在附錄A中示出一些說明性函數(shù)塊。
從附錄A中可以看出,所述函數(shù)塊55和57可以執(zhí)行更高級別的功能,比如對應(yīng)于HVAC操作的更高級別功能。另外,所述控制器可以包括用于執(zhí)行一些基本應(yīng)用的一些更為通用的函數(shù)塊,但是在許多情況下可以將這些函數(shù)塊與其他函數(shù)塊相組合,以便執(zhí)行更高級別的HVAC應(yīng)用。
回來參照圖4,函數(shù)塊55和57可以包括多個函數(shù)調(diào)用或者指向存儲器內(nèi)的特定位置的指針。在該說明性實施例中,每一個函數(shù)塊55和57可以包括函數(shù)塊類型55a和57a以及多個參數(shù)或索引55b-m和57b-m。所述索引和參數(shù)55b-m和57b-m可以指向被存儲在所述參數(shù)和變量存儲空間內(nèi)(比如在所述函數(shù)塊變量空間56或所述函數(shù)塊常數(shù)空間58內(nèi))的變量或常數(shù)。另外,在一些情況下,按照期望,所述索引和參數(shù)55b-m和57b-m可以與其他函數(shù)塊輸出、輸入(本地的或網(wǎng)絡(luò)的)或者指向任何其他數(shù)據(jù)的指針有關(guān)。
在一個說明性實施例中,每一個函數(shù)塊可以是大約22字節(jié)長。每一個函數(shù)塊可以包括所述函數(shù)塊類型55a和57a,其可以是1字節(jié)。每一個函數(shù)塊還可以包括9個索引或變量55e-m和57e-m,其中每一個索引或變量被分配2字節(jié)的字(WORD)增量,總共是18字節(jié)。此外,每一個函數(shù)塊55和57可以包括3個參數(shù)或配置55b-d和57b-d,每一個是1字節(jié),從而總共是3字節(jié)。然而,這些字節(jié)僅僅是為了說明性的目的,并且不打算以任何方式做出限制。
可以設(shè)想,可以使用任何尺寸的函數(shù)塊55和57以及/或者任何數(shù)目或尺寸的函數(shù)塊類型55a和57a、索引或變量55e-m和57e-m、以及參數(shù)或配置55b-d和57b-d。此外,可以設(shè)想,所述順序可以是函數(shù)塊類型55a和57a、隨后是一個參數(shù)55b和57b、隨后是9個索引55e-m和57e-m、隨后是兩個剩余的參數(shù)55c-d和57c-d。更一般來說,可以設(shè)想根據(jù)所期望的那樣按照任何順序來配置所述函數(shù)塊55和57,并且所述函數(shù)塊可以具有任何數(shù)目的索引和參數(shù)。
所述函數(shù)塊類型55a和57a可以被用來指定所述函數(shù)塊55和57所執(zhí)行的功能。函數(shù)塊類型55a和57a所能執(zhí)行的函數(shù)的例子包括但不限于以下各項當中的一項或多項確定最小值;確定最大值;確定平均值;執(zhí)行比較函數(shù);執(zhí)行模擬鎖存函數(shù);執(zhí)行優(yōu)先級選擇函數(shù);執(zhí)行滯后中繼函數(shù);執(zhí)行開關(guān)函數(shù);執(zhí)行選擇函數(shù);執(zhí)行與/與非函數(shù);執(zhí)行或/或非函數(shù);執(zhí)行異或/異或非函數(shù);執(zhí)行單觸發(fā)函數(shù);執(zhí)行加法函數(shù);執(zhí)行減法函數(shù);執(zhí)行乘法函數(shù);執(zhí)行除法函數(shù);執(zhí)行平方根函數(shù);執(zhí)行指數(shù)函數(shù);執(zhí)行數(shù)字濾波器函數(shù);執(zhí)行焓計算函數(shù);執(zhí)行比例函數(shù);執(zhí)行極限函數(shù);執(zhí)行重置函數(shù);執(zhí)行流速計算函數(shù);執(zhí)行比例積分微分(PID)函數(shù);執(zhí)行自適應(yīng)積分動作(AIA)函數(shù);執(zhí)行分級器/恒溫器循環(huán)器函數(shù);執(zhí)行級驅(qū)動器函數(shù);執(zhí)行級驅(qū)動器加法函數(shù);執(zhí)行速率限制函數(shù);執(zhí)行可變空氣體積(VAV)風門流量控制函數(shù);執(zhí)行占有率仲裁器函數(shù);執(zhí)行一般設(shè)置點計算器函數(shù);執(zhí)行溫度設(shè)置點計算器函數(shù);執(zhí)行設(shè)置溫度模式函數(shù);執(zhí)行調(diào)度覆蓋函數(shù);執(zhí)行運行時間累計函數(shù);執(zhí)行計數(shù)器函數(shù);以及執(zhí)行警報函數(shù)。在附錄A中進一步描述了這些函數(shù)當中的一些。更一般來說,可以按照期望通過函數(shù)塊類型55a和57a來執(zhí)行任何合適的函數(shù)。
函數(shù)塊索引55e-m和57e-m可以是指向能夠指定由所述函數(shù)塊55和57所使用的輸入、輸出和/或其他數(shù)據(jù)的變量的指針。這些變量可以包括由所述函數(shù)塊55和57在執(zhí)行期間所使用的數(shù)據(jù)輸入。在該說明性實施例中可以有多個變量類型索引,所述變量類型索引可以分別具有到存儲器類的唯一映射。在圖4中示出的說明性實施例中有9種不同的變量類型輸入、參數(shù)、輸入/參數(shù)、參數(shù)/輸入、輸出浮點數(shù)、非易失性輸出浮點數(shù)、輸出數(shù)字、靜態(tài)浮點數(shù)、以及靜態(tài)數(shù)字。所述輸入變量可以包括被存儲在例如RAM存儲器中的函數(shù)塊55和57的輸入索引。所述參數(shù)變量可以是函數(shù)塊55和57將要使用的值,其在一些情況下可以被存儲在RAM或閃速存儲器中。所述輸入/參數(shù)變量可以是對輸入或參數(shù)的索引,其默認地是輸入,并且在一些情況下可以被存儲在閃速存儲器或RAM存儲器中。所述參數(shù)/輸入變量可以是參數(shù)或輸入,其默認地是參數(shù),并且在一些情況下可以被存儲在閃速存儲器中。所述輸出浮點數(shù)變量可以是所述函數(shù)塊55和57的輸出,其可以被調(diào)用作為到隨后被執(zhí)行的另一個函數(shù)塊的輸入。在一些情況下,所述輸出浮點數(shù)變量可以被存儲在易失性RAM存儲器中。所述非易失性輸出浮點數(shù)變量可以是所述函數(shù)塊55和57的輸出,其可以被調(diào)用作為到另一個函數(shù)塊的輸入。在一些情況下,非易失性輸出浮點數(shù)變量可以被存儲在非易失性RAM存儲器中,從而使其在斷電時保留其值。所述輸出數(shù)字變量可以是所述函數(shù)塊55和57的輸出,其可以被調(diào)用作為到另一個函數(shù)塊的輸入。在一些情況下,所述輸出數(shù)字變量可以被存儲在RAM存儲器中。所述靜態(tài)浮點數(shù)變量可以允許函數(shù)塊55和57使用浮點數(shù)作為靜態(tài)RAM變量。所述靜態(tài)數(shù)字變量可以允許函數(shù)塊55和57使用數(shù)字作為靜態(tài)RAM變量。另外還可以有未使用的索引,其指示這些索引/變量未被使用。更一般來說,可以設(shè)想,按照期望可以有任何數(shù)目的變量類型索引。
函數(shù)塊55和57的輸出在一些情況下可以被存儲在所述RAM中以供后來由所述函數(shù)塊引擎使用。如上所示,在一些情況下,函數(shù)塊55和57的輸出可以被用作到另一個函數(shù)塊55和57的輸入索引。另外,在一些情況下,在適當時可以把輸出索引到相同的函數(shù)塊55和57的輸入。然而,如果一個輸入被索引到其輸出,那么由于在一個說明性實施例中的各函數(shù)塊的順序執(zhí)行,在所述函數(shù)塊的輸入處接收到所述輸出信號之前可能會有延遲(例如一個循環(huán)或一次迭代)。在一些情況下,對于所述函數(shù)塊55和57的執(zhí)行可能花費大約1秒,但這不是必需的。
所述參數(shù)55b-d和57b-d可以包括所述函數(shù)塊55和57執(zhí)行所需要的設(shè)計時間配置信息。例如,所述參數(shù)55b-d和57b-d可以指示相應(yīng)的函數(shù)塊55和57如何初始化其自身。在所述說明性實施例中,每一個函數(shù)塊55和57可以具有3個參數(shù)55b-d和57b-d,其中的每一個參數(shù)包括1字節(jié)的配置信息以用于該目的。然而可以設(shè)想,按照期望可以使用任何合適數(shù)目的具有任何合適尺寸的參數(shù)。在一些情況下,按照期望,所述參數(shù)信息可以由應(yīng)用設(shè)計者、現(xiàn)場的安裝者、或者用戶輸入。取決于應(yīng)用,所述參數(shù)55b-d和57b-d可以被配置成適用于僅僅一種特定函數(shù)塊類型、一個特定函數(shù)塊實例、或者多個函數(shù)塊。在一些情況下,所述參數(shù)55b-d和57b-d可以被存儲在所述函數(shù)塊常數(shù)存儲空間58內(nèi),但這不是必需的。
所述函數(shù)塊變量空間56和所述函數(shù)塊常數(shù)空間58可以被提供在所述控制器內(nèi)。例如,可能會發(fā)生改變的所述函數(shù)塊變量空間56可以駐留在所述控制器的RAM存儲器中。在一些情況下,所述RAM可以具有易失性部分和非易失性部分。在所述易失性RAM中,在發(fā)生斷電時所述數(shù)據(jù)將被丟失或重置,而在所述非易失性RAM中,在發(fā)生斷電時所述數(shù)據(jù)將被保留。因此,可以把期望在發(fā)生斷電時保持的數(shù)據(jù)存儲在所述非易失性RAM中,同時可以把其他數(shù)據(jù)存儲在所述易失性RAM中。
所述函數(shù)塊常數(shù)空間58可以是用于由應(yīng)用設(shè)計者、安裝者或用戶確定的數(shù)據(jù)(比如參數(shù))的常數(shù)值存儲空間。所述常數(shù)值存儲空間可以駐留在諸如閃速存儲器之類的非易失性存儲器中。這可以包括被指定為由應(yīng)用設(shè)計者在設(shè)計時選擇的、由安裝者或者由用戶選擇的常數(shù)參數(shù)值的特定設(shè)置點和操作參數(shù)。為了改變常數(shù)參數(shù),在一些情況下可能必須把新的函數(shù)塊配置下載到所述控制器中。另外,在一些情況下,可以由用戶、程序員以及/或者安裝者獲得的函數(shù)塊描述可以提供關(guān)于哪些參數(shù)是可變的以及哪些參數(shù)是固定的細節(jié)。通過提供所述函數(shù)塊常數(shù)空間58可以幫助提高所述控制器的效率,這是通過保持可以由所述函數(shù)塊55和57使用的參數(shù)和/或變量而實現(xiàn)的。
諸如所述網(wǎng)絡(luò)輸入/輸出和本地輸入/輸出之類的外部接口還可以使用所述函數(shù)塊55和57變量空間來把數(shù)據(jù)映射入以及映射出所述控制器。為了把數(shù)據(jù)輸入到所述控制器中,可以提供輸入配置72來適當?shù)嘏渲盟鲚斎?,從而使得在所述塊執(zhí)行列表54中識別的函數(shù)塊可以適當?shù)厮饕鰯?shù)據(jù)。在一些情況下,所述輸入配置72可以包括輸入號73a、名稱73b、變換73c、單位73d、校準73e、線性化73f、以及索引73g。所述輸入索引可以把所述輸入映射到駐留在所述RAM存儲器內(nèi)的所述函數(shù)塊變量空間56。還可以提供輸出配置84來配置可以被映射出所述控制器的輸出。所述輸出配置84可以包括輸出號85a、名稱85b、變換85c、單位85d、校準85e、驅(qū)動類型85f、以及索引85g。所述輸出索引可以從駐留在所述RAM內(nèi)的所述函數(shù)塊變量空間56映射數(shù)據(jù)。
圖5是圖3的一個或多個說明性執(zhí)行模塊的示意圖,其中包括所述函數(shù)塊引擎52。如前面所討論的那樣,所述函數(shù)塊引擎52可以駐留在所述微控制器的非易失性存儲器內(nèi),更具體來說是駐留在所述非易失性存儲器的固件部分內(nèi)。所述函數(shù)塊引擎52可以包括一個或多個程序,比如一個或多個HVAC應(yīng)用程序。所述函數(shù)塊引擎52可以是一個子例程集合,其可以順序地執(zhí)行由所述塊執(zhí)行列表所識別的各函數(shù)塊。在一些情況下,所述函數(shù)塊引擎52可以按照由所述塊執(zhí)行列表提供的順序每秒執(zhí)行所述函數(shù)塊。
在執(zhí)行期間,所述函數(shù)塊引擎52可以遵循所述函數(shù)塊的塊執(zhí)行列表。這可以包括讀取被存儲在所述函數(shù)塊變量集合56和/或所述循環(huán)閃存常數(shù)58中的變量和/或參數(shù),正如所述函數(shù)塊和/或塊執(zhí)行列表所指導(dǎo)的那樣。所述函數(shù)塊引擎52可以利用從所述參數(shù)和/或變量讀取的數(shù)據(jù)從所述非易失性存儲器(比如閃速存儲器)執(zhí)行所述函數(shù)塊。在一些情況下,所述函數(shù)塊引擎52還可以把值或數(shù)據(jù)寫到所述函數(shù)塊變量集合56。在一些情況下,這些寫入的值僅僅被臨時存儲在所述函數(shù)塊變量集合56中以供在執(zhí)行其他函數(shù)塊時使用或者被用作所述控制器的輸出。
所述函數(shù)塊引擎52可以允許應(yīng)用設(shè)計者對所述控制器進行編程,以便執(zhí)行多種功能,比如HVAC功能。所述函數(shù)塊引擎52順序地執(zhí)行應(yīng)用設(shè)計者在所述塊執(zhí)行列表中已經(jīng)配置的每一個函數(shù)塊。在一些情況下,從可以駐留在RAM中的所述函數(shù)塊變量集合56索引到所述函數(shù)塊的輸入。在一些情況下,在所述函數(shù)塊變量集合56中可以僅有一個小堆??臻g,其可以被所述函數(shù)塊重復(fù)使用來進行本地的臨時變量存儲。另外在一些情況下,可以為本地物理和網(wǎng)絡(luò)輸入提供對于所述變量空間的訪問。
所述內(nèi)建函數(shù)配置和執(zhí)行塊60可以提供翻譯(本地的和網(wǎng)絡(luò)的)輸入以及把值提供為可以被用作到任何的或者所選的功能塊的輸入的變量的手段。換句話說,在一些情況下,所述函數(shù)塊不知曉到某一函數(shù)塊的輸入是來自物理輸入、網(wǎng)絡(luò)輸入、參數(shù)還是作為來自另一個函數(shù)塊的輸出。來自所述內(nèi)建函數(shù)執(zhí)行塊60的輸入可以被存儲在所述函數(shù)塊變量集合56中(在一些情況下僅僅是臨時存儲),以供所述函數(shù)塊引擎52使用。
在如上描述了本發(fā)明的優(yōu)選實施例之后,本領(lǐng)域技術(shù)人員將認識到,在附于此的權(quán)利要求書的范圍內(nèi)可以設(shè)計并使用其他實施例。在上面的描述中闡述了本文獻所覆蓋的本發(fā)明的許多優(yōu)點。然而將會理解,本公開內(nèi)容在許多方面僅僅是說明性的。在不超出本發(fā)明的范圍的情況下可以在細節(jié)方面做出改變,特別是在部件的形狀、尺寸和布置方面。本發(fā)明的范圍當然由表述所附權(quán)利要求的語言來限定。
附錄A 1、示例模擬函數(shù)塊 1.1 最小值 此函數(shù)計算8個輸入當中的最小值。輸出被設(shè)置為最小的輸入。

1.2 最大值 此函數(shù)計算8個輸入當中的最大值。輸出被設(shè)置為最大的輸入。

1.3 平均值 此函數(shù)計算8個輸入的平均值。輸出被設(shè)置為這些輸入的平均值。

1.4 比較 此函數(shù)對兩個輸入進行相互比較。把輸入1與輸入2相比較,從而得到相等、小于或大于的結(jié)果。存在可選的開和關(guān)滯后。注意,有可能通過組合輸入2與開和關(guān)滯后的大值而產(chǎn)生無效數(shù)。其行為取決于所選擇的運算、輸入1的值、以及編譯器。

小于的比較 如果輸入1<輸入2-開滯后,則輸出被設(shè)置為真。
如果輸入1>=輸入2+關(guān)滯后,則輸出被設(shè)置為假。
如果(輸入2-開滯后)<=輸入1<(輸入2+關(guān)滯后),則輸出不改變。

大于的比較 如果輸入1>輸入2+開滯后,則輸出被設(shè)置為真。
如果輸入1<=輸入2-關(guān)滯后,則輸出被設(shè)置為假。
如果輸入1<=輸入2+開滯后&&輸入1>輸入2-關(guān)滯后,則輸出不改變。

等于的比較 如果((輸入1<=輸入2+關(guān)滯后)&&(輸入1>=輸入2-開滯后)),則輸出被設(shè)置為真。

不管所述比較函數(shù)的類型如何,其輸出都存在可選的求反。當反輸出為真時,在如上面所指定的那樣執(zhí)行了所述邏輯之后對輸出求反。所述滯后設(shè)置的意義不發(fā)生改變。當選擇了求反時,通過對輸出的當前值求反而確定(來自前一循環(huán)的)舊的輸出。
1.5 模擬鎖存 當鎖存輸入從假過渡到真時,此函數(shù)把Y輸出鎖存到X輸入上的值。輸出被保持在該值,直到下一次從假到真的過渡。在每一次從假到真的過渡時,Y輸出都被鎖存到當前的X輸入。如果X輸入和鎖存輸入都未連接,則輸出Y將為零(0)。如果輸入無效,則當鎖存輸入從假到真時,輸出將過渡到無效。鎖存輸入可以被求反,從而導(dǎo)致從真到假的過渡,以便把X鎖存到Y(jié)。對于所述函數(shù)塊的逐次迭代,模擬鎖存跟蹤鎖存輸入的最后狀態(tài),從而其知道從假到真的過渡何時發(fā)生。在加電/重置時,最后的鎖存值被設(shè)置為假,而不管求反配置如何。

1.6 優(yōu)先級選擇 此函數(shù)允許按照任何組合單獨使能1到4個輸入,以便覆蓋默認值。輸出是其最高優(yōu)先級使能為真的輸入。如果沒有使能為真,則輸出被設(shè)置為默認值。

1.7 滯后中繼 此函數(shù)取得模擬輸入,并且在OnVal下設(shè)置輸出為真,在OffVal下設(shè)置輸出為假,同時遵循最小開關(guān)時間。對于逐次迭代,所述函數(shù)塊跟蹤當前的最小開或關(guān)時間。在加電/重置時,該定時器被清除。

1.8 開關(guān) 此函數(shù)取得枚舉類型輸入并且減去用戶定義的偏移量,以便確定把哪一個輸出設(shè)置為真,同時把所有其他輸出保持為假。輸入減去偏移量的有效范圍是0-7。如果輸入-偏移量=X,則輸出
為真,否則其為假。

1.9 選擇 此函數(shù)選擇6個輸入值當中的一個以便傳送到輸出。所選擇的輸入取決于x和偏移量的值。默認輸入允許通過把一個塊的輸出鏈接到下一個塊的默認輸入而把多個選擇函數(shù)塊綁在一起。當各選擇函數(shù)塊被鏈接在一起時,所有鏈接的塊都接收相同的輸入但是接收不同的偏移量,從而其檢查輸入值的不同范圍。當[x-偏移量]選擇了6個輸入的其中之一時,輸出等于輸入[x-偏移量]上的值。否則,輸出等于默認輸入上的值。如果什么都沒有連接,則輸出無效。

2、示例邏輯函數(shù)塊 2.1 與/與非 此函數(shù)是6輸入與或與非。每一個輸入可以被單獨反相(非)。未連接的或無效的輸入默認為真而沒有求反,以便對結(jié)果沒有影響。對于逐次迭代,所述函數(shù)塊跟蹤最后計算的輸出值以及當前的真或假延遲時間。這些在加電/重置時被清除。

2.2 或/或非 此函數(shù)是6輸入或或者或非。每一個輸入可以被單獨反相(非)。未連接的或無效的輸入默認為假而沒有求反,以便對結(jié)果沒有影響。對于逐次迭代,所述函數(shù)塊跟蹤最后計算的輸出值以及當前的真或假延遲時間。這些在加電/重置時被清除。

2.3 異或/異或非 此函數(shù)是6輸入異或或者異或非。每一個輸入可以被單獨反相(非)。未連接的或無效的輸入默認為假而沒有求反,以便對結(jié)果沒有影響。對于逐次迭代,所述函數(shù)塊跟蹤最后計算的輸出值以及當前的真或假延遲時間。這些在加電/重置時被清除。

2.4 單觸發(fā) 此函數(shù)是單觸發(fā)。當x從假過渡到真時,y將被設(shè)置為真(1)一個接通時間表示的秒。接通時間被限制為0-65535秒。如果接通時間為零則將保持輸出為關(guān)斷,而不管在X輸入處發(fā)生了什么改變。X輸入和Y輸出都具有被求反的選項。對于逐次迭代,所述函數(shù)塊跟蹤最后的輸入和接通時間。這些在加電/重置時被清除。

3、示例數(shù)學函數(shù)塊 數(shù)學函數(shù)對單精度浮點數(shù)進行運算并且產(chǎn)生單精度浮點數(shù)。在沒有任何其他限制的情況下,如果結(jié)果溢出單精度浮點數(shù)的范圍(近似為-3.4e38到3.4e38),則返回的結(jié)果無效。
3.1 加法 此函數(shù)把各輸入上的值相加。如果結(jié)果溢出單精度浮點數(shù)的范圍(近似為-3.4e38到3.4e38),則返回的結(jié)果無效。

3.2 減法 此函數(shù)從一個輸入中減去另一個輸入。Y=x1-x2。如果結(jié)果溢出單精度浮點數(shù)的范圍(近似為-3.4e38到3.4e38),則返回的結(jié)果無效。

3.3 乘法 此函數(shù)把一個輸入與另一個輸入相乘。y=x1*x2。如果結(jié)果溢出單精度浮點數(shù)的范圍(近似為-3.4e38到3.4e38),則返回的結(jié)果無效。

3.4 除法 此函數(shù)把一個輸入除以另一個輸入。Y=x1/x2。除以0導(dǎo)致無效輸出。如果結(jié)果溢出單精度浮點數(shù)的范圍(近似為-3.4e38到3.4e38),則返回的結(jié)果無效。

3.5 平方根 此函數(shù)得到輸入的平方根。Y=√X。負X輸入的行為受到參數(shù)負無效的控制。

3.6 指數(shù)(也叫作冪) 此函數(shù)得到x的y次冪。x和y是浮點數(shù)。對于每個設(shè)備,應(yīng)用設(shè)計者被限制到兩個這種功能塊。未分配的輸入被視為0。無效輸入導(dǎo)致無效輸出。負無效輸入決定應(yīng)當對于負底數(shù)和非整數(shù)指數(shù)繼續(xù)運算、對底數(shù)的絕對值進行運算還是返回無效。

3.7 數(shù)字濾波器 此函數(shù)對輸入進行數(shù)字濾波。Ynew=Y(jié)old+(X-Yold)*(1-exp(-t/τ))。其中,t=1秒并且τ以秒計。輸出可以被初始化為零(零初始化=真)或者第一個有效輸入值(零初始化=假)。對于逐次迭代,所述函數(shù)塊跟蹤τ乘數(shù)(1-exp(-t/τ))。其在加電/重置時被重新計算。

3.8 焓 此函數(shù)基于溫度(℉)和相對濕度(%)輸入來計算焓(BTU/LB)。相對濕度(rh)被限制為0-100%。溫度以℉計并且被限制為0-120℉。

3.9 比值 此函數(shù)基于由x1、y1和x2、y2限定的線而把輸入X變換到輸出Y。Y=y(tǒng)1+(((x-x1)*(y2-y1))/(x2-x1))。如果x、x1、x2、y1或y2無效,則y無效。運算枚舉如下UNLIMITED=0,VAV_FLOW_BAL=1,ENDPT_LIMITED=2。為了使得VAV_FLOW_BAL正確工作,(X2,Y2)必須大于(X1,Y1),并且這兩個點必須如下圖所示都處在第一象限內(nèi)。如果不是,結(jié)果將由偽代碼指定。

運算選擇決定如何計算輸出
3.10 極限 此函數(shù)把輸入限制到下限與上限之間。

3.11 重置 此函數(shù)基于輸入與重置參數(shù)的關(guān)系來計算重置值。

//重置傳感器值在zeroPctResetVal與hundredPctResetVal之間
3.12 流速(從壓力計算) 此函數(shù)基于所測量的壓力和K因數(shù)來計算流量和速度。
以及 其中 K=流量系數(shù)(K因數(shù)),其表示對應(yīng)于1”w.g.的速度壓力傳感器輸出的以ft^3/min計的實際流量。
ΔP=以英寸水位表(inW)計的流量傳感器輸出壓力。
Offset=用于針對零進行調(diào)節(jié)的校正壓力(inW)。
Flow=以ft^3/min(CFM)計的空氣流量。
vel=以ft/min計的流速。
Area=以ft^2計的管道面積。
K因數(shù)常常被用在終端單元控制中以計算實際的空氣流量。
把autoSetOffset設(shè)置為非零的數(shù)將導(dǎo)致把當前壓力存儲為將從當前壓力中減去的偏移量??梢酝ㄟ^把clearOffset設(shè)置為非零的數(shù)而清除上述偏移量。如果所述壓力在零的0.002425inW(近似為50fpm)內(nèi),則把輸出流量和速度設(shè)置為0。
應(yīng)當使用一致的單位。例如,如果p是1.02英寸水柱、所述偏移量是.02英寸水柱、K是1015并且所述面積是0.54平方英尺(10英寸直徑),則流量將是1015英尺每分鐘,速度將是1879英尺每分鐘。
對于逐次迭代,所述函數(shù)塊跟蹤所述自動設(shè)置偏移量的最后狀態(tài)。其在加電/重置時被設(shè)置為真,從而無法在重置或加電時執(zhí)行自動偏移量。

4、示例控制函數(shù)塊 所有的控制函數(shù)塊都可以具有將在加電期間發(fā)生的默認初始化行為。PID和其他函數(shù)具有初始化輸入,從而其可以在函數(shù)塊控制下進行初始化。
4.1 PID(比例積分微分) 此函數(shù)是比例積分微分控制器(PID)。
Err=傳感器-設(shè)置點 Kp=(比例區(qū))/100 Ti=積分時間(秒) Td=微分時間(秒) Bias=比例偏移量(%)
當禁用/初始化輸入為真時,輸出和積分被設(shè)置為0,并且所述塊停止運行。如果直接/反轉(zhuǎn)被設(shè)置為反轉(zhuǎn),則Err項被設(shè)置為-Err。
當Err<死區(qū)時,Err被設(shè)置為零,直到死區(qū)延遲時間已經(jīng)過去,并且Err仍然處在所述死區(qū)中。為了防止積分終止,總誤差輸出的積分部分被限制為100%。
對于逐次迭代,所述函數(shù)塊跟蹤舊的比例誤差、積分誤差和死區(qū)定時器。這些在加電/重置時被清除。

4.2 AIA(自適應(yīng)積分動作) 此函數(shù)是自適應(yīng)積分動作控制器(AIA)。在一些情況下,這可以代替PID而被使用。當所控制的過程中的延遲導(dǎo)致積分終止從而又導(dǎo)致會引起不穩(wěn)定性的下沖或過沖時,這種控制比PID工作更好。Err=傳感器-設(shè)置點。如果直接/反轉(zhuǎn)被設(shè)置為反轉(zhuǎn),則Err項被設(shè)置為-Err。Tr(節(jié)流范圍)是一個誤差值,其導(dǎo)致從一個步驟到下一步驟的最大值的輸出改變(MaxAOchange)。MaxAOchange是輸出對于單個控制循環(huán)(1秒)將改變的最大數(shù)量(%)。這通常被設(shè)置為100%/(致動器速度(秒/全程))。死區(qū)是誤差必須比輸出將改變之前更大的絕對值。
EffErr=Err-死區(qū) 如果Err>0,則ErrSign=1,否則ErrSign=-1 如果|Err|<死區(qū),則AbsErr=0 否則(|Err|>死區(qū)),AbsErr=|Err|-死區(qū) Output=output+ ErrSig*NonLin(AbsErr,ThrottlingRange,MaxAOchange,MinAOchange)。
對于逐次迭代,所述函數(shù)塊跟蹤舊的比例誤差。這在加電/重置時被清除。

4.3 分級器/恒溫器循環(huán)器 取決于所述CPH參數(shù)的值,此函數(shù)是通用的級驅(qū)動器或恒溫器級循環(huán)器(cph=0意味著分級器功能,以及cph=1-60給出恒溫器循環(huán)器功能)。
循環(huán)器函數(shù)是用在Honeywell恒溫器中的傳統(tǒng)的預(yù)感器循環(huán)算法。輸入是以%(0-100)計的P或PI空間溫度誤差。標準(推薦的)設(shè)置是cph=3對應(yīng)于冷卻,cph=6對應(yīng)于加熱,anticAuth=100%,hyst=100%/maxstages/2。還要注意,對于多級循環(huán)器來說,對該函數(shù)塊進行饋給的PID塊應(yīng)當具有適當大的節(jié)流范圍以便實現(xiàn)平滑的行為。


所述分級器函數(shù)取得0-100%(通常是PID誤差)輸入,并且確定要接通多少級。所述0-100%的輸入范圍被均分在配置于MaxStages中的級數(shù)之間。第一級在CmdPercent>0時被接通,并且在CmdPercent<-Hyst時被關(guān)斷。如下面的圖18.1中所示,對應(yīng)于接通第N級的一般標準是 CmdPercent>(N-1)*100%/MaxStages。
對應(yīng)于關(guān)斷第N級的標準是 CmdPercent<(N-1)*100%/MaxStages-Hyst。
對于逐次迭代,所述函數(shù)塊跟蹤接通定時器、關(guān)斷定時器、預(yù)感器以及CPH乘數(shù)。在加電/重置時,所述關(guān)斷定時器和預(yù)感器被清除,所述接通定時器被設(shè)置成等于級間接通時間,并且所述CPH乘數(shù)被重新計算。

當覆蓋為真時,基于最小接通定時器和級間定時器脫出(關(guān)斷)各激活級,而不管所述CmdPercent輸入如何。輸出是激活的級數(shù)(0-MaxStages),其可以被發(fā)送到級驅(qū)動器函數(shù)塊。
配置參數(shù)包括 -MaxStages是可以接通的最大級數(shù)。
-CPH(非零)是當輸入處于可用的各級中間并且AnticAuth處在默認值(100%)時的以每小時循環(huán)數(shù)計的最大循環(huán)速率。CPH=0意味著執(zhí)行分級器邏輯并且沒有其他效果。
-Hyst是以%誤差計的開關(guān)點附近的開關(guān)差分。(范圍0<Hyst<100/Maxstgs。) -AnticAuth(僅有循環(huán)器(CPH?。?))是預(yù)感器權(quán)威,其允許調(diào)節(jié)循環(huán)行為。該參數(shù)表示以%計的“偽”誤差的最大數(shù)量,其在MaxStages接通時被輸入到所述開關(guān)邏輯。(范圍0<AnticAuth<200。) -MinOnTime是級在被接通之后必須保持接通的最小時間。
-MinOffTime是級在被關(guān)斷之后必須保持關(guān)斷的最小時間。
-InterstageOn是在前一級被接通之后能夠接通下一級之前的最小時間。
-InterstageOff是在前一級被關(guān)斷之后能夠關(guān)斷下一級之前的最小時間。

4.4 級驅(qū)動器 級驅(qū)動器主函數(shù)取得激活的級數(shù)作為輸入,并且基于所選擇的超前/滯后策略來決定給哪些級通電或斷電。級驅(qū)動器與級驅(qū)動器添加一起工作,以便在級驅(qū)動器中所提供的那些級之外分配附加的各級。級驅(qū)動器還保持對應(yīng)于每一級的非易失性總運行時間和數(shù)字級狀態(tài)信息。
4.5 級驅(qū)動器添加 所述級驅(qū)動器添加函數(shù)取得來自級驅(qū)動器的命令作為輸入,并且基于所選擇的超前/滯后策略來決定給哪些級通電或斷電。級驅(qū)動器添加與級驅(qū)動器一起工作來分配各級。例如,如果級驅(qū)動器控制第1-6級,則到級驅(qū)動器添加的第一連接可以被配置成處理第7-14級,并且第二級驅(qū)動器添加可以被配置成處理第15-22級。
4.6 速率限制 此函數(shù)產(chǎn)生遵循輸入的輸出,但是根據(jù)方向來防止所述輸出的改變快于所指定的速率。
StartInterval(秒)的值限制在所述速率限制函數(shù)被啟用(禁用輸入被設(shè)置為0)之后并且所述StartInterval時間仍然在過程中時的輸出。速率限制使用startVal輸入作為禁用期間的默認輸出。
如果所述速率限制函數(shù)被禁用(禁用輸入被設(shè)置為1),則輸出將被設(shè)置為StartVal。
在速率限制被啟用(禁用被設(shè)置為0)之后,所述StartInterval定時器將從StartInterval秒數(shù)遞減計數(shù),并且在此時間期間,輸出將受到速率限制。
當所述定時器到期(并且速率限制被啟用)時,輸出值將恰好是輸入被設(shè)置的值,并且將不再有速率限制。
如果所述StartInterval秒數(shù)被設(shè)置為0(并且速率限制被啟用),則輸出將受到速率限制。
在速率限制期間,輸出將每秒在最大允許速率下朝著新輸入值移動。
UpRate在更加正的方向上控制速率,DownRate在更加負的方向上控制速率。UpRate被設(shè)置為零意味著不強加向上的速率極限。DownRate被設(shè)置為零意味著不強加向下的速率極限。
在啟用速率限制(禁用被設(shè)置為0)之前,輸出被設(shè)置為StartVal。
對于逐次迭代,所述函數(shù)塊跟蹤啟動定時器。這在加電/上電/重置時被設(shè)置為StartInterval。

4.7 VAV風門流量控制 此函數(shù)是可變空氣體積(VAV)風門流量控制器。傳統(tǒng)上,這是獨立于壓力的VAV盒級聯(lián)控制策略的后一半,其中輸入通常來自控制空間溫度的PID塊的輸出。此函數(shù)計算有效流量控制設(shè)置點(effFlowSetPt),并且輸出一個0-100%命令以驅(qū)動VAV盒風門。來自溫度控制信號的所命令的流量設(shè)置點(以百分比計)被映射到所述有效流量設(shè)置點中,從而使得0%映射到最小流量設(shè)置點,并且100%映射到最大流量設(shè)置點。sensedFlowVol輸入是到所述盒中的體積流量,如果其是無效的(傳感器故障),則將在“壓力相關(guān)”模式下驅(qū)動所述風門,從而把cmdFlowPercent直接映射到輸出。Units參數(shù)設(shè)置對于流量傳感器、設(shè)置點和管道面積所使用的單位,其中0=cfm(流量)和ft2(面積),1=L/s(流量)和m2(面積),2=m3/hr(流量)和m2(面積)。cmdFlowPercent輸入是以百分比計的輸入,其來自所述溫度控制邏輯。DuctArea是具有根據(jù)所述Units參數(shù)選擇的單位的管道面積。motorSpeed參數(shù)是以秒計的所使用的致動器行經(jīng)一個完整的90度行程所花費的時間(其被用來自動調(diào)節(jié)控制增益)。manFlowOverride輸入允許基于下面的代碼選擇性地覆蓋所述流量設(shè)置點(取自snvt_hvac_overid) 0和所有其他未列出的值=?jīng)]有覆蓋(正常操作) 2=effFlowSetPt被設(shè)置為ManFlowValue輸入 6=effFlowSetPt被設(shè)置為minFlowSetPt輸入 7=effFlowSetPt被設(shè)置為maxFlowSetPt輸入 在嘗試使得所述盒易于平衡時,人工流量覆蓋是特別有用的。


5、示例區(qū)域控制函數(shù)塊 5.1 占有率仲裁器 此函數(shù)計算當前的有效占有率當前狀態(tài)和人工覆蓋狀態(tài)。

5.2 一般設(shè)置點計算器 此函數(shù)進行一般設(shè)置點計算,其中包括重置。它使用3個配置參數(shù)(即有效占有率、當前狀態(tài)和重置輸入)來計算有效設(shè)置點。

5.3 溫度設(shè)置點計算器 此函數(shù)基于當前調(diào)度信息、占有率覆蓋和智能恢復(fù)信息來計算當前有效加熱設(shè)置點和有效冷卻設(shè)置點。

5.4 設(shè)置溫度模式 此函數(shù)自動基于控制類型、系統(tǒng)開關(guān)設(shè)置、網(wǎng)絡(luò)模式命令、溫度設(shè)置點、供應(yīng)溫度和空間溫度來計算有效溫度控制模式。對于逐次迭代,所述函數(shù)塊跟蹤前一個應(yīng)用模式和有效溫度模式。這些在加電/重置時被清除。

effTempMode表示由輸入狀態(tài)決定并且由控制邏輯仲裁的當前模式。SetTempMode不會生成所有可能的可用模式。有效的枚舉值具有以下含義 6、示例數(shù)據(jù)函數(shù)塊 6.1 覆蓋 此函數(shù)把輸出設(shè)置為非無效的最高優(yōu)先級輸入。最高優(yōu)先級輸入是prioritylValue,最低優(yōu)先級輸入是cntrlInput。如果所有的輸入都無效或者未連接,則輸出被設(shè)置為默認值。此函數(shù)塊對應(yīng)于BACnet優(yōu)先級數(shù)組實施方式,其中用“無效”替換了BACnet“空”狀態(tài)。

6.2 運行時間累計 此函數(shù)累計每當輸入為真(非零)并且使能為真時的運行時間。如果預(yù)置為真,則把運行時間設(shè)置成等于預(yù)置值。在秒、分鐘、小時和天的4個輸出中提供運行時間。對于逐次迭代,所述函數(shù)塊跟蹤以秒計的運行時間。這在加電/重置時被清除。

6.3 計數(shù)器 此函數(shù)對輸入的前沿過渡進行計數(shù)。如果使能為真并且輸入從假過渡到真,則計數(shù)值遞增或遞減計數(shù)。計數(shù)值上的正值遞增計數(shù)。負值遞減計數(shù)。如果預(yù)置為真,則計數(shù)被設(shè)置為預(yù)置值。對于逐次迭代,所述函數(shù)塊跟蹤輸入的前一個狀態(tài),從而其可以檢測到過渡。這在加電/重置時被清除。

6.4 警報 此函數(shù)基于輸入與上限和下限相比的值而產(chǎn)生警報。用戶可以創(chuàng)建多達32個將映射到nvoError中的警報函數(shù)塊。對于逐次迭代,所述函數(shù)塊跟蹤警報狀況和延遲定時器。這些在加電/重置時被清除。


權(quán)利要求
1、一種具有非易失性存儲器和隨機存取存儲器(RAM)的可編程HVAC控制器,包括
具有至少一個程序的函數(shù)塊引擎,所述函數(shù)塊引擎駐留在所述非易失性存儲器中;
識別一個或多個函數(shù)塊的塊執(zhí)行列表,所述塊執(zhí)行列表駐留在所述非易失性存儲器中;以及
駐留在所述RAM中的參數(shù)和/或變量存儲空間;
其中,從所述非易失性存儲器執(zhí)行所述函數(shù)塊引擎程序。
2、根據(jù)權(quán)利要求1所述的可編程HVAC控制器,其中,所述塊執(zhí)行列表是現(xiàn)場可編程的。
3、根據(jù)權(quán)利要求1所述的可編程HVAC控制器,其中,所述塊執(zhí)行列表對于特定應(yīng)用是可編程的。
4、根據(jù)權(quán)利要求2所述的可編程HVAC控制器,其中,所述一個或多個函數(shù)塊當中的至少一些實施一個或多個更高級別的HVAC功能。
5、根據(jù)權(quán)利要求4所述的可編程HVAC控制器,其中,所述函數(shù)塊包括一個或多個參數(shù)以及/或者一個或多個索引。
6、根據(jù)權(quán)利要求5所述的可編程HVAC控制器,其中,所述一個或多個參數(shù)以及/或者一個或多個索引當中的至少一些包括指向被存儲在存儲器中的數(shù)據(jù)的指針。
7、根據(jù)權(quán)利要求6所述的可編程HVAC控制器,其中,所述函數(shù)塊引擎根據(jù)所述塊執(zhí)行列表順次執(zhí)行所述函數(shù)塊。
8、根據(jù)權(quán)利要求1所述的可編程HVAC控制器,其中,RAM被用于向所述函數(shù)塊以及/或者在所述函數(shù)塊之間傳遞變量和參數(shù)。
9、根據(jù)權(quán)利要求8所述的可編程HVAC控制器,其中,總的RAM是大約5k或更少。
10、根據(jù)權(quán)利要求1所述的可編程HVAC控制器,其中,所述非易失性存儲器是閃速存儲器。
11、根據(jù)權(quán)利要求1所述的可編程HVAC控制器,其中,所述非易失性存儲器是可編程只讀存儲器(PROM)。
12、根據(jù)權(quán)利要求11所述的可編程HVAC控制器,其中,所述非易失性存儲器是電可擦除可編程只讀存儲器(EEPROM)。
13、根據(jù)權(quán)利要求1所述的可編程HVAC控制器,其中,所述非易失性存儲器和RAM被提供在單個微控制器上。
14、一種具有非易失性存儲器和隨機存取存儲器(RAM)的可編程HVAC控制器,其中,所述非易失性存儲器具有至少兩個部分,即用于存儲固件的第一部分和用戶可編程的第二部分,所述控制器包括
駐留在所述非易失性存儲器的所述第一部分中的函數(shù)塊引擎;
駐留在所述非易失性存儲器的所述第二部分中的塊執(zhí)行列表;以及
駐留在所述RAM中的參數(shù)和/或變量存儲空間;
其中,所述塊執(zhí)行列表是現(xiàn)場可編程的。
15、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,還包括駐留在所述非易失性存儲器的至少一部分中的常數(shù)值存儲空間。
16、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,其中,所述非易失性存儲器是閃速存儲器。
17、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,其中,所述非易失性存儲器是電可擦除可編程只讀存儲器(EEPROM)。
18、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,其中,所述非易失性存儲器是具有備用電池的RAM。
19、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,其中,所述非易失性存儲器和所述RAM被提供在單個微控制器上。
20、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,其中,總的RAM是大約5k或更少。
21、根據(jù)權(quán)利要求19所述的可編程HVAC控制器,其中,所述微控制器包括CPU、一個或多個輸入端和輸出端、以及A/D轉(zhuǎn)換器。
22、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,其中,所述函數(shù)塊引擎執(zhí)行一個或多個程序,所述一個或多個程序主要是從所述非易失性存儲器被執(zhí)行的。
23、根據(jù)權(quán)利要求14所述的可編程HVAC控制器,其中,所述塊執(zhí)行列表識別一個或多個函數(shù)塊,其中所述一個或多個函數(shù)塊當中的至少一些實施更高級別的HVAC功能。
24、根據(jù)權(quán)利要求23所述的可編程HVAC控制器,其中,所述一個或多個函數(shù)塊包括作為對于被存儲在所述存儲器中的數(shù)據(jù)的索引的一個或多個參數(shù)以及/或者一個或多個變量。
25、一種操作具有非易失性存儲器和隨機存取存儲器(RAM)的HVAC控制器的方法,所述方法包括
把函數(shù)塊列表存儲在非易失性存儲器中;
根據(jù)所配置的函數(shù)塊列表來執(zhí)行程序;
在執(zhí)行函數(shù)塊時
從所述非易失性存儲器執(zhí)行所述函數(shù)塊;
從所述RAM讀取所存儲的變量;以及
把值寫入到所述RAM。
26、根據(jù)權(quán)利要求25所述的方法,還包括把所述HVAC控制器安裝在HVAC系統(tǒng)中,其中在安裝之后存儲及配置所述函數(shù)塊。
27、根據(jù)權(quán)利要求25所述的方法,還包括為每一個函數(shù)塊提供函數(shù)塊類型、一個或多個參數(shù)、以及一個或多個索引,其中至少一些所述參數(shù)和/或索引包括指向所述RAM或者指向所述非易失性存儲器中的常數(shù)存儲空間的指針。
28、根據(jù)權(quán)利要求25所述的方法,其中,所述非易失性存儲器和RAM被提供在單個微控制器上。
29、根據(jù)權(quán)利要求25所述的方法,其中,所述非易失性存儲器是閃速存儲器。
30、一種具有非易失性存儲器和隨機存取存儲器(RAM)的可編程HVAC控制器,包括
駐留在所述非易失性存儲器中的一個或多個執(zhí)行模塊;
駐留在所述非易失性存儲器中的一個或多個應(yīng)用配置模塊;以及
駐留在所述RAM中的參數(shù)存儲空間;
其中,所述一個或多個執(zhí)行模塊從所述非易失性存儲器執(zhí)行至少一個程序;
其中,所述一個或多個應(yīng)用配置模塊是現(xiàn)場可編程的。
31、根據(jù)權(quán)利要求30所述的HVAC控制器,其中,所述非易失性存儲器和RAM被提供在單個微控制器上。
32、根據(jù)權(quán)利要求30所述的HVAC控制器,其中,所述非易失性存儲器是閃速存儲器。
全文摘要
提供一種可編程控制器以及操作可編程控制器的方法。在一個說明性實施例中,所述可編程控制器可以具有非易失性存儲器和隨機存取存儲器(RAM),所述非易失性存儲器和隨機存取存儲器(RAM)在一些情況下可以被實施在單個微控制器中。所述說明性可編程控制器可以包括駐留在所述非易失性存儲器中的函數(shù)塊引擎、駐留在所述非易失性存儲器中的塊執(zhí)行列表、以及駐留在RAM中的參數(shù)和/或變量存儲空間。所述函數(shù)塊引擎可以根據(jù)在所述塊執(zhí)行列表中識別的函數(shù)塊列表來執(zhí)行程序。在一些情況下,可以從所述非易失性存儲器執(zhí)行所述程序,所述非易失性存儲器在一些情況下可以是閃速存儲器。另外,在一些情況下,所述非易失性存儲器可以包括固件部分和用戶可編程部分。所述塊執(zhí)行列表可以被存儲在所述用戶可編程部分中,從而允許所述函數(shù)塊的現(xiàn)場可編程性和配置。
文檔編號G05B19/042GK101535907SQ200780032220
公開日2009年9月16日 申請日期2007年6月26日 優(yōu)先權(quán)日2006年6月29日
發(fā)明者P·C·沃克 申請人:霍尼韋爾國際公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
大悟县| 祁东县| 乐至县| 高雄县| 河北区| 广饶县| 家居| 卢湾区| 肇庆市| 临颍县| 新津县| 鄂温| 黔西县| 揭阳市| 青田县| 临颍县| 察哈| 台湾省| 资源县| 扶风县| 海丰县| 容城县| 秀山| 珲春市| 潼关县| 贵港市| 蒙阴县| 伽师县| 尼木县| 山阴县| 龙陵县| 资中县| 孙吴县| 伊金霍洛旗| 上饶市| 汤阴县| 乐安县| 富川| 安康市| 晋城| 视频|