具有有限的存储器资源的低成本可编程hvac控制器的制作方法

文档序号:6292265阅读:221来源:国知局
专利名称:具有有限的存储器资源的低成本可编程hvac控制器的制作方法
技术领域
本发明总体上涉及可编程控制器,更具体来说,本发明涉及只需要有限的随机存取存储器资源的低成本可编程控制器。

背景技术
许多可编程控制器(其中包括许多HVAC控制器)具有执行被存储在存储器中的软件程序的微控制器或微处理器。在许多情况下,所述软件程序是利用解释器引擎来执行的。解释器引擎通常取得用元语言或类似语言而存储的程序,编译并解释所述程序,以及随后执行所解释的指令。在许多情况下,所述解释器引擎完全地或部分地从随机存取存储器(RAM)执行所述软件程序。
许多可编程控制器的一个常见问题在于,即使是为了执行相对简单的软件程序,所述可编程控制器也可能需要大量的RAM存储器。当所述可编程控制器使用解释器引擎来执行程序代码时尤其会出现这种情况。RAM作为相对昂贵的存储器形式,其会大大增加制造及生产可编程控制器的成本。最便宜的处理器形式常常是微控制器,其通常只具有有限数量的板上RAM。因此,期望有一种能够仅仅利用最少数量的RAM资源来执行相对复杂的软件程序的低成本可编程控制器。


发明内容
下面提供的本发明的概要是为了便于理解本发明所独有的一些创造性特征,而不是打算作为完全的描述。可以通过把整个说明书、权利要求书、附图和摘要作为一个整体来获得对本发明的完全认识。
本发明总体上涉及可编程控制器,更具体来说,本发明涉及诸如HVAC控制器之类的低成本可编程控制器,其能够仅仅利用最少数量的RAM资源来执行相对复杂的软件程序。在一个说明性实施例中,所述可编程HVAC控制器包括用于执行至少一个程序的函数块引擎。所述函数块引擎可以驻留在所述控制器的非易失性存储器中,并且可以索引块执行列表。所述块执行列表也可以驻留在非易失性存储器中,并且可以识别函数块的顺序列表,当所述函数块被执行时,其执行所期望的控制器功能。
在一些情况下,所述块执行列表可以是现场可编程的,从而允许现场对所述可编程控制器进行编程或重新编程。所述控制器可以包括驻留在RAM存储器内的参数和/或变量存储空间,其可以由所述函数块来访问。在一些情况下,可以通过所述参数和/或变量存储空间在各函数块之间传递参数和/或变量。



考虑到下面结合附图对本发明的各说明性实施例的详细描述,可以更加全面地理解本发明,其中 图1是具有说明性分区HVAC系统的建筑物或结构的透视图; 图2是说明性可编程HVAC控制器的方框图; 图3是根据本发明一个说明性实施例的可编程控制器的说明性应用框架的示意图; 图4是图3的一些说明性应用配置模块的示意图,其中包括所述说明性的块执行列表;以及 图5是图3的一个或多个说明性执行模块的示意图,其中包括所述函数块引擎。

具体实施例方式 应当参照附图来阅读下面的描述,其中相同的附图标记在各视图中始终表示相同的元件。下面的详细描述和附图示出打算说明要求保护的本发明的几个实施例。
本发明总体上涉及可编程控制器,更具体来说,本发明涉及可以仅仅利用最少数量的RAM资源来执行相对复杂的软件程序的低成本可编程控制器。下面给出HVAC控制器作为一个例子,以便帮助读者清楚地理解本发明的各方面,但是本发明并不限于此。然而应当认识到,根据具体应用,本发明可以被应用于任何类型的控制器。
图1是具有说明性HVAC系统的建筑物或结构10的透视图,所述说明性HVAC系统在该特定实例中是分区HVAC系统。通过允许基于各单独区域的加热或冷却需求对所述各单独区域进行加热及冷却,分区HVAC系统可以在建筑物或结构10内提供更高的灵活性和舒适度。在一些情况下,这可以通过允许对一个区域而不是整个建筑物或结构10进行加热或冷却而帮助提高所述HVAC系统的效率。另外,对各区域的单独加热或冷却可以通过把更多的已加热或已冷却空气集中到该区域而帮助提高对每一个区域进行加热或冷却的速度。
所述说明性分区HVAC系统包括强制空气HVAC装置(其例如是强制热空气炉12)、通风系统或管道系统14和16、一个或多个控制器18和24、多个恒温器22和28、以及多个风门20和26。所述建筑物10中的每一个区域可以包括至少一个恒温器22和28以及至少一个风门20和26。按照期望,HVAC系统中的一个区域可以包括所述建筑物或结构10内的单个房间、所述建筑物或结构10内的多个房间、或者所述建筑物或结构10内的任何区域。此外,可以根据所期望的那样按照任何布置在所述建筑物或结构10内布置各区域。仅仅出于说明性目的,所示出的建筑物10具有两个区域,即区域1和区域2。然而应当理解,本发明可以被结合到一个建筑物或结构10内的任何数目的区域中,其中包括单个区域。
所述强制热空气炉12可以通过遍及所述建筑物10或结构的管道系统提供已加热空气。可以设想,所述HVAC系统可以包括任何炉12或锅炉,或者可以包括能够提供按照期望对所述建筑物或结构10提供加热(或冷却)的任何其他装置。所述强制热空气炉12可以通过所述管道系统与所述建筑物10或结构内的每一个区域(例如区域1和区域2)进行流体连通。当HVAC控制器(未示出)接收到热量需求信号时,可以激活所述强制热空气炉12,以便通过供气管道14为所述建筑物10或结构内的一个或多个区域提供已加热空气。在该例中,来自每一个区域的较冷空气可以通过回气管道16返回所述强制热空气炉12以供加热。
所述HVAC控制器可以控制所述强制热空气炉12的操作,比如控制鼓风机/风扇以及/或者所述强制热空气炉12的燃烧。所述HVAC控制器可以耦合到每一个区域内的恒温器22和28,并且当所述恒温器22和28发送针对热量的需求信号时,所述HVAC控制器可以激活所述强制热空气炉12以便提供加热。
在区域1内,控制器18可以耦合到风门20和恒温器22。同样,在区域2内,控制器24可以耦合到风门26和恒温器28。所述控制器18和24可以是单独的控制器,或者可以是统一控制器(比如统一HVAC控制器)的一部分。所述控制器18和24可以基于来自恒温器22和28的输入把所述风门20和26与所述强制热空气炉12相协调,以便在需要加热时为适当的区域提供加热。例如,如果区域1希望加热而区域2不希望加热,则区域1内的控制器18可以把风门20致动到打开位置,同时区域2内的控制器24可以把风门26致动到关闭位置。因此,由所述强制热空气炉提供的已加热空气可以被提供到区域1并且不被提供到区域2。类似地,如果区域2希望加热而区域1不希望加热,则控制器18可以把风门20致动到关闭位置,并且控制器24可以把风门26致动到打开位置。于是,由所述强制热空气炉12提供的已加热空气可以被提供到区域2并且不被提供到区域1。另外,如果在区域1和区域2内都希望加热,则控制器18和24可以把风门20和26都致动到打开位置,从而可以从所述强制热空气炉12同时为两个区域提供所期望的已加热空气。这仅仅是典型的HVAC系统的一个例子。
图2是根据本发明一个说明性实施例的说明性可编程HVAC控制器的方框图。所述说明性HVAC控制器可以是一个可编程恒温器,或者可以与所述恒温器分开。在任一种情况下,所述HVAC控制器都可以提供影响所述HVAC系统的操作的一个或多个控制信号。
所述说明性HVAC控制器包括微控制器30,其具有非易失性存储器34和随机存取存储器(RAM)36。另外,所述说明性微控制器30包括中央处理单元(CPU)32、模数转换器(A/D)38、输入端/输出端(I/O)42、以及时钟40或定时器。取决于具体情况,所述说明性微控制器30可以包括比所示出的这些组件更多或更少的组件。如图所示,可以把前面提到的组件提供在所述微控制器30的内部而无需任何外部组件,但这不是必需的。
在一些情况下,最便宜的处理器形式是微控制器。微控制器通常包含所有的存储器34和36以及I/O 42接口,其被集成在单个芯片或设备上而无需外部组件。如上所述,使用微控制器30的一个优点是与典型的微处理器的成本相比时的低成本。另外,微控制器30可以被设计成用于特定任务(比如HVAC任务),这可以帮助简化所述控制器并且减少所需部件的数目,从而进一步降低成本。虽然使用微控制器可能有一些好处,但是可以设想,按照期望可以结合微处理器或者任何其他合适的控制器来使用本发明。
在所述说明性微控制器30中,所述非易失性存储器34可以是闪速存储器。然而可以设想,按照期望,所述非易失性存储器34也可以是只读存储器(ROM)、可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、具有备用电池的随机存取存储器(RAM)、或者任何其他合适的非易失性存储器34。在所述说明性实施例中,闪速存储器的数量可以少于100Kb。在一种情况下,闪速存储器的数量可以是大约60Kb,然而可以设想,根据每个应用的要求可以使用任何数量的闪速存储器。
在一些说明性实施例中,所述非易失性存储器34可以被配置成具有至少两个部分,其中包括等效于ROM的第一部分和等效于EEPROM的第二部分。非易失性存储器34的第一部分常常被称作固件部分,其可以被用来至少部分地存储一个或多个执行模块,比如函数块引擎。在一些情况下,所述非易失性存储器34的该部分可以在工厂中被编程,并且后来不改变。另外,被存储在所述固件部分中的所述一个或多个执行模块(例如函数块引擎)在一些情况下可以执行也被存储在所述非易失性存储器34中的一个或多个函数块。
所述非易失性存储器34的第二部分可以包括应用配置模块或数据,其中例如包括块执行列表。在一些情况下,在该第二部分中的所述非易失性存储器34可以被进一步划分成包含数据片段。所述非易失性存储器34的该部分可能在出厂后能够被重新配置,比如在把所述控制器安装到建筑物或结构内的HVAC系统中期间重新配置。换句话说,在一些说明性实施例中,所述非易失性存储器的第二部分可以是现场可编程的。在一些情况下,为所述第二部分所分配的非易失性存储器34的数量可以是大约5Kb。然而可以设想按照期望提供任何数量的现场可编程存储器。
可以进一步设想,所述非易失性存储器34还可以具有专用于存储常数值的部分。按照期望,这部分存储器例如可以被存储在所述固件部分和/或所述现场可编程部分内。
在所述说明性微控制器30中,所述RAM 36可以被用于变量存储。在一些情况下,所述RAM 36可以是一个相对较小的储存库,其用于在执行被存储于所述非易失性存储器34内的一个或多个程序或子例程的过程中交换信息。所述RAM 36还可以被用于寄放所述微控制器30的操作系统和/或通信能力(比如外部接口)。在所述说明性微控制器30中,所包括的RAM 36的数量可以是大约5Kb或更少、2Kb或更少、或者任何其他合适数量的RAM。在一些情况下,所述操作系统和通信能力可以消耗大约1Kb的RAM 36,从而留下大约1Kb用于其他功能,比如存储用于所述一个或多个程序的变量和/或其他数据。
所述说明性微控制器30的CPU 32可以解释并执行指令,并且可以按照期望控制该微控制器30的其他部件。在一些情况下,所述CPU 32可以包括被包含在一块芯片上的控制单元和算术-逻辑单元。所述时钟40可以为所述微控制器30提供稳定的定时脉冲流,其例如可以被用作该微控制器30的内部定时设备并且可以作为操作的基础。所述I/O 42可以在所述微控制器30与外部组件之间传送数据。在一些情况下,对于每一个输入,可以有相应的输出过程并且反之亦然。所述A/D 38转换器可以把模拟输入转换成数字输入格式,从而有助于使得所述微处理器能够读取及解释模拟输入信号。在一些情况下,还可以按照期望提供D/A转换器,以便允许把数字信号提供为模拟输出。
图3是根据本发明一个说明性实施例的可编程控制器50的说明性应用框架的示意图。所述说明性控制器50包括一个或多个执行模块、一个或多个应用配置模块、以及参数和变量存储空间。所述执行模块由图3中的圆形示出,其可以包括函数块引擎52、内建函数执行模块70、输入变换模块78、网络变换模块76、以及输出变换模块80。所述应用配置模块由圆柱形示出,其可以包括块执行列表54、内建函数配置60、输入配置72、网络接口配置74、以及输出配置84。所述参数和变量存储空间包括循环RAM空间56和循环闪存常数空间58。另外,所述说明性控制器50可以包括用于通信能力的一个或多个外部接口,其中包括本地输入62、网络文件传送66、网络对象输入和输出64、以及本地输出82。在一些情况下,所述控制器50还可以包括操作系统(OS)任务调度器68。
所述一个或多个执行模块可以驻留在所述微控制器50的非易失性存储器中,比如驻留在闪速存储器中。更具体来说,在一些情况下,所述一个或多个执行模块可以驻留在所述非易失性存储器的ROM等效部分或固件部分中。至少其中一个所述执行模块可以包括一个或多个程序,所述一个或多个程序当中的一些涉及所述HVAC系统的操作。所述一个或多个程序可以包括一个子例程集合,其中所述一个或多个执行模块可以顺序地执行该子例程集合。所述一个或多个执行模块可以从所述非易失性存储器执行所述一个或多个程序。
所述一个或多个应用配置模块也可以驻留在所述微控制器50的所述非易失性存储器(比如所述闪速存储器)中。更具体来说,所述一个或多个应用配置模块可以驻留在所述非易失性存储器的EEPROM等效部分或现场可编程部分中。按照期望,可以针对标准HVAC应用来预先配置这些模块,或者可以针对定制HVAC应用来配置这些模块。另外,所述一个或多个应用配置模块可以是现场可编程的。例如,在一些情况下,可以在把所述控制器安装到HVAC系统中的过程中或者在这之后对所述一个或多个应用配置模块进行编程及配置。
在一些情况下,所述一个或多个应用配置模块可以包括块执行列表54。所述块执行列表54的配置可以指导所述一个或多个执行模块(例如函数块)的执行。在一些情况下,该配置可以由用户或安装者来决定。在一些情况下,可以与适当的配置一起使用编程工具来执行特定的HVAC应用,所述编程工具允许安装者选择适当的函数块来创建定制块执行列表54。这样可以帮助在逐项作业的基础上配置所述一个或多个应用配置模块,从而又可以在逐项作业的基础上指导所述执行模块的执行。在一些情况下,所述一个或多个应用配置模块可以包括参数或者指向存储器中的数据位置的索引(比如指向所述参数和变量存储空间)。
所述参数和变量存储空间可以被提供在所述控制器50中,以供所述一个或多个执行模块以及/或者一个或多个应用配置模块向/从存储空间索引数据或值。在该说明性实施例中,所述变量参数存储空间(或者说循环RAM空间56)可以驻留在RAM中。该存储空间可以被用于临时存储变量或参数,比如函数块输出以及/或者来自所述控制器50的输入(本地输入或网络输入)的临时值。
此外,在该说明性实施例中,所述常数参数存储空间(或者说循环闪存常数58)可以是用于存储由程序员或用户确定的常数值的存储空间。该存储空间可以驻留在诸如所述闪速存储器之类的非易失性存储器中。按照期望,特定设置点和操作参数可以被指定为由应用设计者、安装者或用户选择的常数参数值,并且可以被存储在所述循环闪存常数58存储空间内。
所述HVAC控制器50还可以包括外部接口,比如本地输入62和本地输出82。所述本地输入62可以根据由所述输入变换模块78执行的输入配置72而被存储。这些模块可以指导存储所述输入值,从而使其可由其他执行模块使用,比如所述函数块引擎52。所述本地输出82可以根据由所述输出变换模块80执行的输出配置84而被配置。这可以把所述值或数据输出到外部HVAC组件,比如风门、恒温器、HVAC控制器、或者所期望的任何其他HVAC组件。
所述OS任务调度器68可以决定所述HVAC控制器50内的各执行模块的操作和执行。例如,可以按照以下顺序来执行所述各执行模块离散输入;包括输入变换78和网络变换76;内建函数执行60;函数块执行52;物理输出处理80;以及最后是网络输出处理76。然而可以设想,可以按照期望采用任何合适的顺序。
图4是图3的一些说明性应用配置模块的示意图,其中包括说明性块执行列表54。如上所示,按照期望,所述块执行列表54可以驻留在诸如闪速存储器之类的非易失性存储器中,更具体来说是驻留在所述闪速存储器的现场可编程部分中。所述说明性块执行列表54包括一个或多个函数块55和57的列表,并且被用来指导由所述函数块引擎52根据其配置执行的那些函数块以及所述函数块的执行顺序。
所述块执行列表54可以在工厂中被编程或者由用户或安装者编程,以便配置将对于特定应用而执行的函数块55和57的顺序和类型。在一些情况下,所述用户或安装者可以具有编程工具,其允许该用户或安装者选择适当的函数块55和57以及配置,以便执行对应于所述特定应用的所期望的任务。因此,在一些实施例中,可以在逐项作业的基础上为所述控制器提供所述块执行列表54配置。在一些情况下,这可以允许在现场对所述块执行列表54进行编程及配置并且根据所述控制器的所期望的应用和功能做出改变。
在该说明性实施例中,所述函数块55和57是通过读取输入、对所述输入进行操作、并且输出一个或多个值来执行特定任务的模块。所述函数块55和57可以根据所述块执行列表54被定义,所述块执行列表54可以由工厂、用户、安装者或者应用设计者来编程。在该说明性实施例中,函数块55和57可以被分类成6个类别模拟函数块、逻辑函数块、数学函数块、控制函数块、区域控制函数块、以及数据函数块。在附录A中示出一些说明性函数块。
从附录A中可以看出,所述函数块55和57可以执行更高级别的功能,比如对应于HVAC操作的更高级别功能。另外,所述控制器可以包括用于执行一些基本应用的一些更为通用的函数块,但是在许多情况下可以将这些函数块与其他函数块相组合,以便执行更高级别的HVAC应用。
回来参照图4,函数块55和57可以包括多个函数调用或者指向存储器内的特定位置的指针。在该说明性实施例中,每一个函数块55和57可以包括函数块类型55a和57a以及多个参数或索引55b-m和57b-m。所述索引和参数55b-m和57b-m可以指向被存储在所述参数和变量存储空间内(比如在所述函数块变量空间56或所述函数块常数空间58内)的变量或常数。另外,在一些情况下,按照期望,所述索引和参数55b-m和57b-m可以与其他函数块输出、输入(本地的或网络的)或者指向任何其他数据的指针有关。
在一个说明性实施例中,每一个函数块可以是大约22字节长。每一个函数块可以包括所述函数块类型55a和57a,其可以是1字节。每一个函数块还可以包括9个索引或变量55e-m和57e-m,其中每一个索引或变量被分配2字节的字(WORD)增量,总共是18字节。此外,每一个函数块55和57可以包括3个参数或配置55b-d和57b-d,每一个是1字节,从而总共是3字节。然而,这些字节仅仅是为了说明性的目的,并且不打算以任何方式做出限制。
可以设想,可以使用任何尺寸的函数块55和57以及/或者任何数目或尺寸的函数块类型55a和57a、索引或变量55e-m和57e-m、以及参数或配置55b-d和57b-d。此外,可以设想,所述顺序可以是函数块类型55a和57a、随后是一个参数55b和57b、随后是9个索引55e-m和57e-m、随后是两个剩余的参数55c-d和57c-d。更一般来说,可以设想根据所期望的那样按照任何顺序来配置所述函数块55和57,并且所述函数块可以具有任何数目的索引和参数。
所述函数块类型55a和57a可以被用来指定所述函数块55和57所执行的功能。函数块类型55a和57a所能执行的函数的例子包括但不限于以下各项当中的一项或多项确定最小值;确定最大值;确定平均值;执行比较函数;执行模拟锁存函数;执行优先级选择函数;执行滞后中继函数;执行开关函数;执行选择函数;执行与/与非函数;执行或/或非函数;执行异或/异或非函数;执行单触发函数;执行加法函数;执行减法函数;执行乘法函数;执行除法函数;执行平方根函数;执行指数函数;执行数字滤波器函数;执行焓计算函数;执行比例函数;执行极限函数;执行重置函数;执行流速计算函数;执行比例积分微分(PID)函数;执行自适应积分动作(AIA)函数;执行分级器/恒温器循环器函数;执行级驱动器函数;执行级驱动器加法函数;执行速率限制函数;执行可变空气体积(VAV)风门流量控制函数;执行占有率仲裁器函数;执行一般设置点计算器函数;执行温度设置点计算器函数;执行设置温度模式函数;执行调度覆盖函数;执行运行时间累计函数;执行计数器函数;以及执行警报函数。在附录A中进一步描述了这些函数当中的一些。更一般来说,可以按照期望通过函数块类型55a和57a来执行任何合适的函数。
函数块索引55e-m和57e-m可以是指向能够指定由所述函数块55和57所使用的输入、输出和/或其他数据的变量的指针。这些变量可以包括由所述函数块55和57在执行期间所使用的数据输入。在该说明性实施例中可以有多个变量类型索引,所述变量类型索引可以分别具有到存储器类的唯一映射。在图4中示出的说明性实施例中有9种不同的变量类型输入、参数、输入/参数、参数/输入、输出浮点数、非易失性输出浮点数、输出数字、静态浮点数、以及静态数字。所述输入变量可以包括被存储在例如RAM存储器中的函数块55和57的输入索引。所述参数变量可以是函数块55和57将要使用的值,其在一些情况下可以被存储在RAM或闪速存储器中。所述输入/参数变量可以是对输入或参数的索引,其默认地是输入,并且在一些情况下可以被存储在闪速存储器或RAM存储器中。所述参数/输入变量可以是参数或输入,其默认地是参数,并且在一些情况下可以被存储在闪速存储器中。所述输出浮点数变量可以是所述函数块55和57的输出,其可以被调用作为到随后被执行的另一个函数块的输入。在一些情况下,所述输出浮点数变量可以被存储在易失性RAM存储器中。所述非易失性输出浮点数变量可以是所述函数块55和57的输出,其可以被调用作为到另一个函数块的输入。在一些情况下,非易失性输出浮点数变量可以被存储在非易失性RAM存储器中,从而使其在断电时保留其值。所述输出数字变量可以是所述函数块55和57的输出,其可以被调用作为到另一个函数块的输入。在一些情况下,所述输出数字变量可以被存储在RAM存储器中。所述静态浮点数变量可以允许函数块55和57使用浮点数作为静态RAM变量。所述静态数字变量可以允许函数块55和57使用数字作为静态RAM变量。另外还可以有未使用的索引,其指示这些索引/变量未被使用。更一般来说,可以设想,按照期望可以有任何数目的变量类型索引。
函数块55和57的输出在一些情况下可以被存储在所述RAM中以供后来由所述函数块引擎使用。如上所示,在一些情况下,函数块55和57的输出可以被用作到另一个函数块55和57的输入索引。另外,在一些情况下,在适当时可以把输出索引到相同的函数块55和57的输入。然而,如果一个输入被索引到其输出,那么由于在一个说明性实施例中的各函数块的顺序执行,在所述函数块的输入处接收到所述输出信号之前可能会有延迟(例如一个循环或一次迭代)。在一些情况下,对于所述函数块55和57的执行可能花费大约1秒,但这不是必需的。
所述参数55b-d和57b-d可以包括所述函数块55和57执行所需要的设计时间配置信息。例如,所述参数55b-d和57b-d可以指示相应的函数块55和57如何初始化其自身。在所述说明性实施例中,每一个函数块55和57可以具有3个参数55b-d和57b-d,其中的每一个参数包括1字节的配置信息以用于该目的。然而可以设想,按照期望可以使用任何合适数目的具有任何合适尺寸的参数。在一些情况下,按照期望,所述参数信息可以由应用设计者、现场的安装者、或者用户输入。取决于应用,所述参数55b-d和57b-d可以被配置成适用于仅仅一种特定函数块类型、一个特定函数块实例、或者多个函数块。在一些情况下,所述参数55b-d和57b-d可以被存储在所述函数块常数存储空间58内,但这不是必需的。
所述函数块变量空间56和所述函数块常数空间58可以被提供在所述控制器内。例如,可能会发生改变的所述函数块变量空间56可以驻留在所述控制器的RAM存储器中。在一些情况下,所述RAM可以具有易失性部分和非易失性部分。在所述易失性RAM中,在发生断电时所述数据将被丢失或重置,而在所述非易失性RAM中,在发生断电时所述数据将被保留。因此,可以把期望在发生断电时保持的数据存储在所述非易失性RAM中,同时可以把其他数据存储在所述易失性RAM中。
所述函数块常数空间58可以是用于由应用设计者、安装者或用户确定的数据(比如参数)的常数值存储空间。所述常数值存储空间可以驻留在诸如闪速存储器之类的非易失性存储器中。这可以包括被指定为由应用设计者在设计时选择的、由安装者或者由用户选择的常数参数值的特定设置点和操作参数。为了改变常数参数,在一些情况下可能必须把新的函数块配置下载到所述控制器中。另外,在一些情况下,可以由用户、程序员以及/或者安装者获得的函数块描述可以提供关于哪些参数是可变的以及哪些参数是固定的细节。通过提供所述函数块常数空间58可以帮助提高所述控制器的效率,这是通过保持可以由所述函数块55和57使用的参数和/或变量而实现的。
诸如所述网络输入/输出和本地输入/输出之类的外部接口还可以使用所述函数块55和57变量空间来把数据映射入以及映射出所述控制器。为了把数据输入到所述控制器中,可以提供输入配置72来适当地配置所述输入,从而使得在所述块执行列表54中识别的函数块可以适当地索引所述数据。在一些情况下,所述输入配置72可以包括输入号73a、名称73b、变换73c、单位73d、校准73e、线性化73f、以及索引73g。所述输入索引可以把所述输入映射到驻留在所述RAM存储器内的所述函数块变量空间56。还可以提供输出配置84来配置可以被映射出所述控制器的输出。所述输出配置84可以包括输出号85a、名称85b、变换85c、单位85d、校准85e、驱动类型85f、以及索引85g。所述输出索引可以从驻留在所述RAM内的所述函数块变量空间56映射数据。
图5是图3的一个或多个说明性执行模块的示意图,其中包括所述函数块引擎52。如前面所讨论的那样,所述函数块引擎52可以驻留在所述微控制器的非易失性存储器内,更具体来说是驻留在所述非易失性存储器的固件部分内。所述函数块引擎52可以包括一个或多个程序,比如一个或多个HVAC应用程序。所述函数块引擎52可以是一个子例程集合,其可以顺序地执行由所述块执行列表所识别的各函数块。在一些情况下,所述函数块引擎52可以按照由所述块执行列表提供的顺序每秒执行所述函数块。
在执行期间,所述函数块引擎52可以遵循所述函数块的块执行列表。这可以包括读取被存储在所述函数块变量集合56和/或所述循环闪存常数58中的变量和/或参数,正如所述函数块和/或块执行列表所指导的那样。所述函数块引擎52可以利用从所述参数和/或变量读取的数据从所述非易失性存储器(比如闪速存储器)执行所述函数块。在一些情况下,所述函数块引擎52还可以把值或数据写到所述函数块变量集合56。在一些情况下,这些写入的值仅仅被临时存储在所述函数块变量集合56中以供在执行其他函数块时使用或者被用作所述控制器的输出。
所述函数块引擎52可以允许应用设计者对所述控制器进行编程,以便执行多种功能,比如HVAC功能。所述函数块引擎52顺序地执行应用设计者在所述块执行列表中已经配置的每一个函数块。在一些情况下,从可以驻留在RAM中的所述函数块变量集合56索引到所述函数块的输入。在一些情况下,在所述函数块变量集合56中可以仅有一个小堆栈空间,其可以被所述函数块重复使用来进行本地的临时变量存储。另外在一些情况下,可以为本地物理和网络输入提供对于所述变量空间的访问。
所述内建函数配置和执行块60可以提供翻译(本地的和网络的)输入以及把值提供为可以被用作到任何的或者所选的功能块的输入的变量的手段。换句话说,在一些情况下,所述函数块不知晓到某一函数块的输入是来自物理输入、网络输入、参数还是作为来自另一个函数块的输出。来自所述内建函数执行块60的输入可以被存储在所述函数块变量集合56中(在一些情况下仅仅是临时存储),以供所述函数块引擎52使用。
在如上描述了本发明的优选实施例之后,本领域技术人员将认识到,在附于此的权利要求书的范围内可以设计并使用其他实施例。在上面的描述中阐述了本文献所覆盖的本发明的许多优点。然而将会理解,本公开内容在许多方面仅仅是说明性的。在不超出本发明的范围的情况下可以在细节方面做出改变,特别是在部件的形状、尺寸和布置方面。本发明的范围当然由表述所附权利要求的语言来限定。
附录A 1、示例模拟函数块 1.1 最小值 此函数计算8个输入当中的最小值。输出被设置为最小的输入。

1.2 最大值 此函数计算8个输入当中的最大值。输出被设置为最大的输入。

1.3 平均值 此函数计算8个输入的平均值。输出被设置为这些输入的平均值。

1.4 比较 此函数对两个输入进行相互比较。把输入1与输入2相比较,从而得到相等、小于或大于的结果。存在可选的开和关滞后。注意,有可能通过组合输入2与开和关滞后的大值而产生无效数。其行为取决于所选择的运算、输入1的值、以及编译器。

小于的比较 如果输入1<输入2-开滞后,则输出被设置为真。
如果输入1>=输入2+关滞后,则输出被设置为假。
如果(输入2-开滞后)<=输入1<(输入2+关滞后),则输出不改变。

大于的比较 如果输入1>输入2+开滞后,则输出被设置为真。
如果输入1<=输入2-关滞后,则输出被设置为假。
如果输入1<=输入2+开滞后&&输入1>输入2-关滞后,则输出不改变。

等于的比较 如果((输入1<=输入2+关滞后)&&(输入1>=输入2-开滞后)),则输出被设置为真。

不管所述比较函数的类型如何,其输出都存在可选的求反。当反输出为真时,在如上面所指定的那样执行了所述逻辑之后对输出求反。所述滞后设置的意义不发生改变。当选择了求反时,通过对输出的当前值求反而确定(来自前一循环的)旧的输出。
1.5 模拟锁存 当锁存输入从假过渡到真时,此函数把Y输出锁存到X输入上的值。输出被保持在该值,直到下一次从假到真的过渡。在每一次从假到真的过渡时,Y输出都被锁存到当前的X输入。如果X输入和锁存输入都未连接,则输出Y将为零(0)。如果输入无效,则当锁存输入从假到真时,输出将过渡到无效。锁存输入可以被求反,从而导致从真到假的过渡,以便把X锁存到Y。对于所述函数块的逐次迭代,模拟锁存跟踪锁存输入的最后状态,从而其知道从假到真的过渡何时发生。在加电/重置时,最后的锁存值被设置为假,而不管求反配置如何。

1.6 优先级选择 此函数允许按照任何组合单独使能1到4个输入,以便覆盖默认值。输出是其最高优先级使能为真的输入。如果没有使能为真,则输出被设置为默认值。

1.7 滞后中继 此函数取得模拟输入,并且在OnVal下设置输出为真,在OffVal下设置输出为假,同时遵循最小开关时间。对于逐次迭代,所述函数块跟踪当前的最小开或关时间。在加电/重置时,该定时器被清除。

1.8 开关 此函数取得枚举类型输入并且减去用户定义的偏移量,以便确定把哪一个输出设置为真,同时把所有其他输出保持为假。输入减去偏移量的有效范围是0-7。如果输入-偏移量=X,则输出
为真,否则其为假。

1.9 选择 此函数选择6个输入值当中的一个以便传送到输出。所选择的输入取决于x和偏移量的值。默认输入允许通过把一个块的输出链接到下一个块的默认输入而把多个选择函数块绑在一起。当各选择函数块被链接在一起时,所有链接的块都接收相同的输入但是接收不同的偏移量,从而其检查输入值的不同范围。当[x-偏移量]选择了6个输入的其中之一时,输出等于输入[x-偏移量]上的值。否则,输出等于默认输入上的值。如果什么都没有连接,则输出无效。

2、示例逻辑函数块 2.1 与/与非 此函数是6输入与或与非。每一个输入可以被单独反相(非)。未连接的或无效的输入默认为真而没有求反,以便对结果没有影响。对于逐次迭代,所述函数块跟踪最后计算的输出值以及当前的真或假延迟时间。这些在加电/重置时被清除。

2.2 或/或非 此函数是6输入或或者或非。每一个输入可以被单独反相(非)。未连接的或无效的输入默认为假而没有求反,以便对结果没有影响。对于逐次迭代,所述函数块跟踪最后计算的输出值以及当前的真或假延迟时间。这些在加电/重置时被清除。

2.3 异或/异或非 此函数是6输入异或或者异或非。每一个输入可以被单独反相(非)。未连接的或无效的输入默认为假而没有求反,以便对结果没有影响。对于逐次迭代,所述函数块跟踪最后计算的输出值以及当前的真或假延迟时间。这些在加电/重置时被清除。

2.4 单触发 此函数是单触发。当x从假过渡到真时,y将被设置为真(1)一个接通时间表示的秒。接通时间被限制为0-65535秒。如果接通时间为零则将保持输出为关断,而不管在X输入处发生了什么改变。X输入和Y输出都具有被求反的选项。对于逐次迭代,所述函数块跟踪最后的输入和接通时间。这些在加电/重置时被清除。

3、示例数学函数块 数学函数对单精度浮点数进行运算并且产生单精度浮点数。在没有任何其他限制的情况下,如果结果溢出单精度浮点数的范围(近似为-3.4e38到3.4e38),则返回的结果无效。
3.1 加法 此函数把各输入上的值相加。如果结果溢出单精度浮点数的范围(近似为-3.4e38到3.4e38),则返回的结果无效。

3.2 减法 此函数从一个输入中减去另一个输入。Y=x1-x2。如果结果溢出单精度浮点数的范围(近似为-3.4e38到3.4e38),则返回的结果无效。

3.3 乘法 此函数把一个输入与另一个输入相乘。y=x1*x2。如果结果溢出单精度浮点数的范围(近似为-3.4e38到3.4e38),则返回的结果无效。

3.4 除法 此函数把一个输入除以另一个输入。Y=x1/x2。除以0导致无效输出。如果结果溢出单精度浮点数的范围(近似为-3.4e38到3.4e38),则返回的结果无效。

3.5 平方根 此函数得到输入的平方根。Y=√X。负X输入的行为受到参数负无效的控制。

3.6 指数(也叫作幂) 此函数得到x的y次幂。x和y是浮点数。对于每个设备,应用设计者被限制到两个这种功能块。未分配的输入被视为0。无效输入导致无效输出。负无效输入决定应当对于负底数和非整数指数继续运算、对底数的绝对值进行运算还是返回无效。

3.7 数字滤波器 此函数对输入进行数字滤波。Ynew=Yold+(X-Yold)*(1-exp(-t/τ))。其中,t=1秒并且τ以秒计。输出可以被初始化为零(零初始化=真)或者第一个有效输入值(零初始化=假)。对于逐次迭代,所述函数块跟踪τ乘数(1-exp(-t/τ))。其在加电/重置时被重新计算。

3.8 焓 此函数基于温度(℉)和相对湿度(%)输入来计算焓(BTU/LB)。相对湿度(rh)被限制为0-100%。温度以℉计并且被限制为0-120℉。

3.9 比值 此函数基于由x1、y1和x2、y2限定的线而把输入X变换到输出Y。Y=y1+(((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),并且这两个点必须如下图所示都处在第一象限内。如果不是,结果将由伪代码指定。

运算选择决定如何计算输出
3.10 极限 此函数把输入限制到下限与上限之间。

3.11 重置 此函数基于输入与重置参数的关系来计算重置值。

//重置传感器值在zeroPctResetVal与hundredPctResetVal之间
3.12 流速(从压力计算) 此函数基于所测量的压力和K因数来计算流量和速度。
以及 其中 K=流量系数(K因数),其表示对应于1”w.g.的速度压力传感器输出的以ft^3/min计的实际流量。
ΔP=以英寸水位表(inW)计的流量传感器输出压力。
Offset=用于针对零进行调节的校正压力(inW)。
Flow=以ft^3/min(CFM)计的空气流量。
vel=以ft/min计的流速。
Area=以ft^2计的管道面积。
K因数常常被用在终端单元控制中以计算实际的空气流量。
把autoSetOffset设置为非零的数将导致把当前压力存储为将从当前压力中减去的偏移量。可以通过把clearOffset设置为非零的数而清除上述偏移量。如果所述压力在零的0.002425inW(近似为50fpm)内,则把输出流量和速度设置为0。
应当使用一致的单位。例如,如果p是1.02英寸水柱、所述偏移量是.02英寸水柱、K是1015并且所述面积是0.54平方英尺(10英寸直径),则流量将是1015英尺每分钟,速度将是1879英尺每分钟。
对于逐次迭代,所述函数块跟踪所述自动设置偏移量的最后状态。其在加电/重置时被设置为真,从而无法在重置或加电时执行自动偏移量。

4、示例控制函数块 所有的控制函数块都可以具有将在加电期间发生的默认初始化行为。PID和其他函数具有初始化输入,从而其可以在函数块控制下进行初始化。
4.1 PID(比例积分微分) 此函数是比例积分微分控制器(PID)。
Err=传感器-设置点 Kp=(比例区)/100 Ti=积分时间(秒) Td=微分时间(秒) Bias=比例偏移量(%)
当禁用/初始化输入为真时,输出和积分被设置为0,并且所述块停止运行。如果直接/反转被设置为反转,则Err项被设置为-Err。
当Err<死区时,Err被设置为零,直到死区延迟时间已经过去,并且Err仍然处在所述死区中。为了防止积分终止,总误差输出的积分部分被限制为100%。
对于逐次迭代,所述函数块跟踪旧的比例误差、积分误差和死区定时器。这些在加电/重置时被清除。

4.2 AIA(自适应积分动作) 此函数是自适应积分动作控制器(AIA)。在一些情况下,这可以代替PID而被使用。当所控制的过程中的延迟导致积分终止从而又导致会引起不稳定性的下冲或过冲时,这种控制比PID工作更好。Err=传感器-设置点。如果直接/反转被设置为反转,则Err项被设置为-Err。Tr(节流范围)是一个误差值,其导致从一个步骤到下一步骤的最大值的输出改变(MaxAOchange)。MaxAOchange是输出对于单个控制循环(1秒)将改变的最大数量(%)。这通常被设置为100%/(致动器速度(秒/全程))。死区是误差必须比输出将改变之前更大的绝对值。
EffErr=Err-死区 如果Err>0,则ErrSign=1,否则ErrSign=-1 如果|Err|<死区,则AbsErr=0 否则(|Err|>死区),AbsErr=|Err|-死区 Output=output+ ErrSig*NonLin(AbsErr,ThrottlingRange,MaxAOchange,MinAOchange)。
对于逐次迭代,所述函数块跟踪旧的比例误差。这在加电/重置时被清除。

4.3 分级器/恒温器循环器 取决于所述CPH参数的值,此函数是通用的级驱动器或恒温器级循环器(cph=0意味着分级器功能,以及cph=1-60给出恒温器循环器功能)。
循环器函数是用在Honeywell恒温器中的传统的预感器循环算法。输入是以%(0-100)计的P或PI空间温度误差。标准(推荐的)设置是cph=3对应于冷却,cph=6对应于加热,anticAuth=100%,hyst=100%/maxstages/2。还要注意,对于多级循环器来说,对该函数块进行馈给的PID块应当具有适当大的节流范围以便实现平滑的行为。


所述分级器函数取得0-100%(通常是PID误差)输入,并且确定要接通多少级。所述0-100%的输入范围被均分在配置于MaxStages中的级数之间。第一级在CmdPercent>0时被接通,并且在CmdPercent<-Hyst时被关断。如下面的图18.1中所示,对应于接通第N级的一般标准是 CmdPercent>(N-1)*100%/MaxStages。
对应于关断第N级的标准是 CmdPercent<(N-1)*100%/MaxStages-Hyst。
对于逐次迭代,所述函数块跟踪接通定时器、关断定时器、预感器以及CPH乘数。在加电/重置时,所述关断定时器和预感器被清除,所述接通定时器被设置成等于级间接通时间,并且所述CPH乘数被重新计算。

当覆盖为真时,基于最小接通定时器和级间定时器脱出(关断)各激活级,而不管所述CmdPercent输入如何。输出是激活的级数(0-MaxStages),其可以被发送到级驱动器函数块。
配置参数包括 -MaxStages是可以接通的最大级数。
-CPH(非零)是当输入处于可用的各级中间并且AnticAuth处在默认值(100%)时的以每小时循环数计的最大循环速率。CPH=0意味着执行分级器逻辑并且没有其他效果。
-Hyst是以%误差计的开关点附近的开关差分。(范围0<Hyst<100/Maxstgs。) -AnticAuth(仅有循环器(CPH!=0))是预感器权威,其允许调节循环行为。该参数表示以%计的“伪”误差的最大数量,其在MaxStages接通时被输入到所述开关逻辑。(范围0<AnticAuth<200。) -MinOnTime是级在被接通之后必须保持接通的最小时间。
-MinOffTime是级在被关断之后必须保持关断的最小时间。
-InterstageOn是在前一级被接通之后能够接通下一级之前的最小时间。
-InterstageOff是在前一级被关断之后能够关断下一级之前的最小时间。

4.4 级驱动器 级驱动器主函数取得激活的级数作为输入,并且基于所选择的超前/滞后策略来决定给哪些级通电或断电。级驱动器与级驱动器添加一起工作,以便在级驱动器中所提供的那些级之外分配附加的各级。级驱动器还保持对应于每一级的非易失性总运行时间和数字级状态信息。
4.5 级驱动器添加 所述级驱动器添加函数取得来自级驱动器的命令作为输入,并且基于所选择的超前/滞后策略来决定给哪些级通电或断电。级驱动器添加与级驱动器一起工作来分配各级。例如,如果级驱动器控制第1-6级,则到级驱动器添加的第一连接可以被配置成处理第7-14级,并且第二级驱动器添加可以被配置成处理第15-22级。
4.6 速率限制 此函数产生遵循输入的输出,但是根据方向来防止所述输出的改变快于所指定的速率。
StartInterval(秒)的值限制在所述速率限制函数被启用(禁用输入被设置为0)之后并且所述StartInterval时间仍然在过程中时的输出。速率限制使用startVal输入作为禁用期间的默认输出。
如果所述速率限制函数被禁用(禁用输入被设置为1),则输出将被设置为StartVal。
在速率限制被启用(禁用被设置为0)之后,所述StartInterval定时器将从StartInterval秒数递减计数,并且在此时间期间,输出将受到速率限制。
当所述定时器到期(并且速率限制被启用)时,输出值将恰好是输入被设置的值,并且将不再有速率限制。
如果所述StartInterval秒数被设置为0(并且速率限制被启用),则输出将受到速率限制。
在速率限制期间,输出将每秒在最大允许速率下朝着新输入值移动。
UpRate在更加正的方向上控制速率,DownRate在更加负的方向上控制速率。UpRate被设置为零意味着不强加向上的速率极限。DownRate被设置为零意味着不强加向下的速率极限。
在启用速率限制(禁用被设置为0)之前,输出被设置为StartVal。
对于逐次迭代,所述函数块跟踪启动定时器。这在加电/上电/重置时被设置为StartInterval。

4.7 VAV风门流量控制 此函数是可变空气体积(VAV)风门流量控制器。传统上,这是独立于压力的VAV盒级联控制策略的后一半,其中输入通常来自控制空间温度的PID块的输出。此函数计算有效流量控制设置点(effFlowSetPt),并且输出一个0-100%命令以驱动VAV盒风门。来自温度控制信号的所命令的流量设置点(以百分比计)被映射到所述有效流量设置点中,从而使得0%映射到最小流量设置点,并且100%映射到最大流量设置点。sensedFlowVol输入是到所述盒中的体积流量,如果其是无效的(传感器故障),则将在“压力相关”模式下驱动所述风门,从而把cmdFlowPercent直接映射到输出。Units参数设置对于流量传感器、设置点和管道面积所使用的单位,其中0=cfm(流量)和ft2(面积),1=L/s(流量)和m2(面积),2=m3/hr(流量)和m2(面积)。cmdFlowPercent输入是以百分比计的输入,其来自所述温度控制逻辑。DuctArea是具有根据所述Units参数选择的单位的管道面积。motorSpeed参数是以秒计的所使用的致动器行经一个完整的90度行程所花费的时间(其被用来自动调节控制增益)。manFlowOverride输入允许基于下面的代码选择性地覆盖所述流量设置点(取自snvt_hvac_overid) 0和所有其他未列出的值=没有覆盖(正常操作) 2=effFlowSetPt被设置为ManFlowValue输入 6=effFlowSetPt被设置为minFlowSetPt输入 7=effFlowSetPt被设置为maxFlowSetPt输入 在尝试使得所述盒易于平衡时,人工流量覆盖是特别有用的。


5、示例区域控制函数块 5.1 占有率仲裁器 此函数计算当前的有效占有率当前状态和人工覆盖状态。

5.2 一般设置点计算器 此函数进行一般设置点计算,其中包括重置。它使用3个配置参数(即有效占有率、当前状态和重置输入)来计算有效设置点。

5.3 温度设置点计算器 此函数基于当前调度信息、占有率覆盖和智能恢复信息来计算当前有效加热设置点和有效冷却设置点。

5.4 设置温度模式 此函数自动基于控制类型、系统开关设置、网络模式命令、温度设置点、供应温度和空间温度来计算有效温度控制模式。对于逐次迭代,所述函数块跟踪前一个应用模式和有效温度模式。这些在加电/重置时被清除。

effTempMode表示由输入状态决定并且由控制逻辑仲裁的当前模式。SetTempMode不会生成所有可能的可用模式。有效的枚举值具有以下含义 6、示例数据函数块 6.1 覆盖 此函数把输出设置为非无效的最高优先级输入。最高优先级输入是prioritylValue,最低优先级输入是cntrlInput。如果所有的输入都无效或者未连接,则输出被设置为默认值。此函数块对应于BACnet优先级数组实施方式,其中用“无效”替换了BACnet“空”状态。

6.2 运行时间累计 此函数累计每当输入为真(非零)并且使能为真时的运行时间。如果预置为真,则把运行时间设置成等于预置值。在秒、分钟、小时和天的4个输出中提供运行时间。对于逐次迭代,所述函数块跟踪以秒计的运行时间。这在加电/重置时被清除。

6.3 计数器 此函数对输入的前沿过渡进行计数。如果使能为真并且输入从假过渡到真,则计数值递增或递减计数。计数值上的正值递增计数。负值递减计数。如果预置为真,则计数被设置为预置值。对于逐次迭代,所述函数块跟踪输入的前一个状态,从而其可以检测到过渡。这在加电/重置时被清除。

6.4 警报 此函数基于输入与上限和下限相比的值而产生警报。用户可以创建多达32个将映射到nvoError中的警报函数块。对于逐次迭代,所述函数块跟踪警报状况和延迟定时器。这些在加电/重置时被清除。


权利要求
1、一种具有非易失性存储器和随机存取存储器(RAM)的可编程HVAC控制器,包括
具有至少一个程序的函数块引擎,所述函数块引擎驻留在所述非易失性存储器中;
识别一个或多个函数块的块执行列表,所述块执行列表驻留在所述非易失性存储器中;以及
驻留在所述RAM中的参数和/或变量存储空间;
其中,从所述非易失性存储器执行所述函数块引擎程序。
2、根据权利要求1所述的可编程HVAC控制器,其中,所述块执行列表是现场可编程的。
3、根据权利要求1所述的可编程HVAC控制器,其中,所述块执行列表对于特定应用是可编程的。
4、根据权利要求2所述的可编程HVAC控制器,其中,所述一个或多个函数块当中的至少一些实施一个或多个更高级别的HVAC功能。
5、根据权利要求4所述的可编程HVAC控制器,其中,所述函数块包括一个或多个参数以及/或者一个或多个索引。
6、根据权利要求5所述的可编程HVAC控制器,其中,所述一个或多个参数以及/或者一个或多个索引当中的至少一些包括指向被存储在存储器中的数据的指针。
7、根据权利要求6所述的可编程HVAC控制器,其中,所述函数块引擎根据所述块执行列表顺次执行所述函数块。
8、根据权利要求1所述的可编程HVAC控制器,其中,RAM被用于向所述函数块以及/或者在所述函数块之间传递变量和参数。
9、根据权利要求8所述的可编程HVAC控制器,其中,总的RAM是大约5k或更少。
10、根据权利要求1所述的可编程HVAC控制器,其中,所述非易失性存储器是闪速存储器。
11、根据权利要求1所述的可编程HVAC控制器,其中,所述非易失性存储器是可编程只读存储器(PROM)。
12、根据权利要求11所述的可编程HVAC控制器,其中,所述非易失性存储器是电可擦除可编程只读存储器(EEPROM)。
13、根据权利要求1所述的可编程HVAC控制器,其中,所述非易失性存储器和RAM被提供在单个微控制器上。
14、一种具有非易失性存储器和随机存取存储器(RAM)的可编程HVAC控制器,其中,所述非易失性存储器具有至少两个部分,即用于存储固件的第一部分和用户可编程的第二部分,所述控制器包括
驻留在所述非易失性存储器的所述第一部分中的函数块引擎;
驻留在所述非易失性存储器的所述第二部分中的块执行列表;以及
驻留在所述RAM中的参数和/或变量存储空间;
其中,所述块执行列表是现场可编程的。
15、根据权利要求14所述的可编程HVAC控制器,还包括驻留在所述非易失性存储器的至少一部分中的常数值存储空间。
16、根据权利要求14所述的可编程HVAC控制器,其中,所述非易失性存储器是闪速存储器。
17、根据权利要求14所述的可编程HVAC控制器,其中,所述非易失性存储器是电可擦除可编程只读存储器(EEPROM)。
18、根据权利要求14所述的可编程HVAC控制器,其中,所述非易失性存储器是具有备用电池的RAM。
19、根据权利要求14所述的可编程HVAC控制器,其中,所述非易失性存储器和所述RAM被提供在单个微控制器上。
20、根据权利要求14所述的可编程HVAC控制器,其中,总的RAM是大约5k或更少。
21、根据权利要求19所述的可编程HVAC控制器,其中,所述微控制器包括CPU、一个或多个输入端和输出端、以及A/D转换器。
22、根据权利要求14所述的可编程HVAC控制器,其中,所述函数块引擎执行一个或多个程序,所述一个或多个程序主要是从所述非易失性存储器被执行的。
23、根据权利要求14所述的可编程HVAC控制器,其中,所述块执行列表识别一个或多个函数块,其中所述一个或多个函数块当中的至少一些实施更高级别的HVAC功能。
24、根据权利要求23所述的可编程HVAC控制器,其中,所述一个或多个函数块包括作为对于被存储在所述存储器中的数据的索引的一个或多个参数以及/或者一个或多个变量。
25、一种操作具有非易失性存储器和随机存取存储器(RAM)的HVAC控制器的方法,所述方法包括
把函数块列表存储在非易失性存储器中;
根据所配置的函数块列表来执行程序;
在执行函数块时
从所述非易失性存储器执行所述函数块;
从所述RAM读取所存储的变量;以及
把值写入到所述RAM。
26、根据权利要求25所述的方法,还包括把所述HVAC控制器安装在HVAC系统中,其中在安装之后存储及配置所述函数块。
27、根据权利要求25所述的方法,还包括为每一个函数块提供函数块类型、一个或多个参数、以及一个或多个索引,其中至少一些所述参数和/或索引包括指向所述RAM或者指向所述非易失性存储器中的常数存储空间的指针。
28、根据权利要求25所述的方法,其中,所述非易失性存储器和RAM被提供在单个微控制器上。
29、根据权利要求25所述的方法,其中,所述非易失性存储器是闪速存储器。
30、一种具有非易失性存储器和随机存取存储器(RAM)的可编程HVAC控制器,包括
驻留在所述非易失性存储器中的一个或多个执行模块;
驻留在所述非易失性存储器中的一个或多个应用配置模块;以及
驻留在所述RAM中的参数存储空间;
其中,所述一个或多个执行模块从所述非易失性存储器执行至少一个程序;
其中,所述一个或多个应用配置模块是现场可编程的。
31、根据权利要求30所述的HVAC控制器,其中,所述非易失性存储器和RAM被提供在单个微控制器上。
32、根据权利要求30所述的HVAC控制器,其中,所述非易失性存储器是闪速存储器。
全文摘要
提供一种可编程控制器以及操作可编程控制器的方法。在一个说明性实施例中,所述可编程控制器可以具有非易失性存储器和随机存取存储器(RAM),所述非易失性存储器和随机存取存储器(RAM)在一些情况下可以被实施在单个微控制器中。所述说明性可编程控制器可以包括驻留在所述非易失性存储器中的函数块引擎、驻留在所述非易失性存储器中的块执行列表、以及驻留在RAM中的参数和/或变量存储空间。所述函数块引擎可以根据在所述块执行列表中识别的函数块列表来执行程序。在一些情况下,可以从所述非易失性存储器执行所述程序,所述非易失性存储器在一些情况下可以是闪速存储器。另外,在一些情况下,所述非易失性存储器可以包括固件部分和用户可编程部分。所述块执行列表可以被存储在所述用户可编程部分中,从而允许所述函数块的现场可编程性和配置。
文档编号G05B19/042GK101535907SQ200780032220
公开日2009年9月16日 申请日期2007年6月26日 优先权日2006年6月29日
发明者P·C·沃克 申请人:霍尼韦尔国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1