首页> 中国专利> 带有用户可修改输出配置数据库的状态机功能块

带有用户可修改输出配置数据库的状态机功能块

摘要

制炼厂内的控制系统、安全系统等等可各自使用一个或更多状态机功能块,所述状态机功能块可容易地集成于功能块图解编程环境中。这种状态机功能块可包括一个或更多输入,其可造成或不造成由状态机功能块实施的状态机改变状态。该状态机功能块还可包括多个输出。与功能块关联的输出配置数据可指示状态机的每个状态下的功能块的输出值。该状态机功能块可使用此输出配置数据,来确定当它处在特定状态中时的输出。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-04-01

    授权

    授权

  • 2006-10-25

    实质审查的生效

    实质审查的生效

  • 2005-05-25

    公开

    公开

说明书

技术领域

本公开一般涉及制炼厂(process plants)中使用的功能块,并特别涉及配置和实施与制炼厂关联的状态机。

背景技术

如用于化工、石油或其它工艺中的过程控制系统通常包括一个或更多过程控制器,其经模拟、数字或组合的模拟/数字总线或线路而通信地耦合到至少一台主机或操作员工作站以及一个或更多现场设备。可以是例如阀门、阀门定位器、开关和发送器(例如温度、压力和流速传感器)等的现场设备在制炼厂内执行打开或关闭阀门以及测量过程参数等功能。该过程控制器接收指示由现场设备做出的过程测量的信号和/或其它与现场设备有关的信息,使用此信息来实施控制例程并接着生成控制信号,通过总线或线路将该控制信号发送至现场设备以控制过程的操作。通常使来自现场设备和控制器的信息对操作员工作站执行的一个或更多应用程序可用,以使操作员能够执行关于该过程的任何期望的功能,例如配置过程、查看过程的当前状态、修改过程的操作等等。

此外,在许多过程中,提供了一个单独的安全系统,以便当出现了如有毒化学品的外溢、爆炸等可能在工厂内导致或造成严重灾难的问题时,检测制炼厂内与重大安全相关的问题,并自动关闭阀门、给设备断电、切换工厂内的流,等等。这些安全系统通常在标准过程控制控制器以外还具有一个或更多单独的控制器,称作逻辑解算器,它们经安装在制炼厂内的分离的总线或通信线路连接至安全现场设备。逻辑解算器使用安全现场设备以检测与重大事件关联的过程条件,如某些安全开关或关机阀门的位置、过程中的上溢或下溢、重要的能量生成或控制设备的操作、故障检测设备的操作等等,从而检测制炼厂内的“事件”。当检测到事件(通常称作“原因”)时,安全控制器采取如关闭阀门、切断设备、给工厂的部分断电等等一些行动(通常称作“效果”)以限制事件的有害性质。一般地,这些行动或效果包括将安全设备切换成跳闸或“安全”操作模式,它被设计成防止制炼厂内的严重或灾难性条件。

例如过程控制系统和安全系统等制炼厂内的系统通常可跟踪各种过程和/或系统本身的状态。输入系统的信号可造成系统所跟踪的状态的改变,而由系统生成的输出信号可依赖系统的当前状态以及输入系统的信号。当前,系统的状态可使用以编程语言书写的例程来跟踪。书写这种例程可能很枯燥、费时和充满错误。在安全系统中,这种错误可能很严重,因为安全系统不能正确操作可导致工厂人员的部分重伤或甚至死亡、并毁坏多达数百万美元的工厂内的器材和材料。

而且,可使用由国际电气技术委员会(IEC)标准化的可编程控制器的编程技术,通常称作“顺序功能图”(在IEC 61131-3标准中规定),来跟踪系统的状态。但正如本领域的普通技术人员所知,使用顺序功能图来跟踪系统的状态可能很难。此外,与以编程语言书写的例程相同,创建顺序功能图可能很枯燥、费时和充满错误。

发明内容

制炼厂内的控制系统、安全系统等等可各自使用一个或更多状态机功能块,所述状态机功能块可容易地集成于功能块图解编程环境中。这种状态机功能块可包括一个或更多输入,其可造成或不造成由状态机功能块实施的状态机改变状态。该状态机功能块还可包括多个输出。与功能块关联的输出配置数据可指示状态机的每个状态下的功能块的输出值。该状态机功能块可使用此输出配置数据,来确定当它处在特定状态中时的输出。状态机功能块的输入可与例如过程控制系统或安全系统关联,而输出可用于例如过程控制系统或安全系统中的现场设备的控制。

该状态机功能块可至少部分地经图形用户界面机制而配置。图形用户界面机制可包括多个图形元素,其中至少一些图形元素可用来指定在状态机的各种状态下的功能块的输出值。在一例中,图形元素可包括多个单元,其中每个单元对应于输出和状态的相应对。多个单元可排列成例如矩阵,其中矩阵的行对应于状态机的可能状态,而矩阵的列对应于状态机的输出(或反之)。在对应于特定状态和特定输出的单元中,当状态机处于对应的状态中时,程序员可使用计算机的输入设备来录入指示输出的期望值的配置数据。

这里所提出的状态机功能块的实施例与跟踪与控制系统或安全系统相关的状态的现有技术相比,更容易配置。例如,一些或全部配置可使用例如如上所述机制的图形用户界面机制来实现。此外,状态机功能块的实施例容易集成于使用功能块逻辑的控制器、逻辑解算器、现场设备等等中,因为状态机功能块可通过将状态机功能块的输入和输出与控制策略内的其它功能块、元素等等相互连接,而以与其它类型的功能块相同或类似的方式集成。进而,状态机功能的操作可容易记入文档,因为其操作可至少部分地以矩阵形式等图形方式描绘。状态机功能块或用来配置状态机功能块的机制的实施例可提供上述优点的一个或多个、或没有。

附图说明

通过参照以下详细的说明和附图,这里描述的方法、设备、和系统的特征和优点将会被更好地理解,其中:

图1是示例制炼厂的方框图;

图2是图1中原理性所示的示例工作站的方框图;

图3是描绘了控制模块的显示的例子;

图4是状态机逻辑块的代表的示例;

图5是用来录入状态机功能块的输出配置数据的示例矩阵;

图6是图5的示例矩阵,其中在矩阵中显示输出配置数据;

图7是状态机功能块的示例操作方法的流程图;

图8是示例状态机功能块的方框图;

图9是状态机功能块的另一示例操作方法的流程图;

图10是用来处理状态机功能块的使能输入的示例例程的流程图;

图11是用来改变状态机功能块的状态和设置输出的示例例程的流程图;

图12是用来设置状态机功能块的合适输出值的示例例程的流程图;和

图13是另一示例状态机功能块的方框图。

具体实施方式

制炼厂实例

图1是示例制炼厂10的方框图,其包括一个或更多节点12、16、18和20。在图1的示例制炼厂10中,各节点12和16都包括经例如FoundationFieldbus接口、HART接口等输入/输出(I/O)设备24而连接至一个或更多现场设备22和23的过程控制器12a、16a。控制器12a和16a也经可包括例如1条或更多总线、以太LAN等有线局域网(LAN)、无线LAN、广域网(WAN)、内联网等的网络30而耦合至节点18和20中的一台或更多主机或操作员工作站18a和20a。尽管控制器节点12、16和I/O设备24及其关联的现场设备22、23通常位于并遍布于有时很严酷的工厂环境中,但操作员工作站节点18和20却通常位于控制室或其它可由控制人员容易到达的不太严酷的环境中。

一般说来,节点18和20的工作站18a和20a可用来存储和执行用于配置和监视制炼厂10的应用程序,和/或管理制炼厂10中的设备22、23、24和控制器12a、16a。进而,数据库32可连接至网络30并充当数据历史记录和/或存储制炼厂10的当前配置的配置数据库,所述当前配置下载至和/或存储于节点12、16、18、20、22、23、24、50和70。

可以是例如由爱默生过程管理销售的DeltaVTM控制器的各控制器12a和16a可存储和执行控制器应用程序,所述应用程序使用一些不同的、独立执行的控制模块或块来实施控制策略。控制模块的每一个可由通常所称的功能块构成,其中每个功能块都是整个控制例程的一部分或子例程,并结合其它功能块(经称作链路的通信)而操作以实施制炼厂10内的过程控制闭环。众所周知,功能块通常执行输入功能(如与发送器、传感器或其它过程参数测量设备关联的输入功能)、控制功能(如与执行PID、模糊逻辑等等控制的控制例程关联的控制功能)、或控制某些设备(如阀门)操作的输出功能之一,以执行制炼厂10内的某些物理功能。当然也存在并可利用混合型和其它类型的功能块。尽管现场总线协议和Delta VTM系统协议可使用以面向对象编程协议而设计和实施的控制模块和功能块,但控制模块可使用任何期望的控制编程方案来设计,包括例如顺序功能块、阶梯逻辑等等,而不限于使用功能块或任何其它特别编程技术来设计。按照典型,存储在过程控制节点12和16内的控制模块的配置可存储于配置数据库32中,其容易访问由工作站18a和20a执行的应用程序。功能块可存储于例如控制器12a、16a中并由其执行,这通常是当这些功能块用于或关联于标准的4~20ma设备和例如HART设备的某些类型的智能现场设备时,或功能块也可存储于现场设备自身并由其实施的情形,这也可以是Fieldbus设备的情形。

在图1所示的系统中,耦合至控制器12a和16a的现场设备22和23可以是标准的4~20ma设备、或可以是HART、ProfiBus、或Foundation Fieldbus现场设备等智能现场设备,其包括处理器和存储器。这些设备中的某些、像Foundation Fieldbus现场设备(图1中被标以附图标记23)等可存储和执行例如与控制器12a和16a中实施的控制策略关联的功能块的模块或子模块。当然,现场设备22、23可以是传感器、阀门、发送器、定位器等任何类型的设备,而I/O设备24可以是符合任何期望的通信或例如HART、FoundationFieldbus、ProfiBus的控制器协议的任何类型的I/O设备。

控制器12a和16a各包括一个处理器,用于实施或检查一个或更多存储于存储器中的过程控制例程,其包括存储于其中或要么与其关联的控制闭环。控制器12a和16a与现场设备22、23通信,工作站18a、20a和数据库32以任何期望方式来控制过程。控制器12a和16a的每一个可被配置成以任何期望的方式来实施控制策略或控制例程。

制炼厂10还可包括与过程控制节点12和16集成的安全系统14(如虚线所示)。安全系统14一般充当安全仪器系统(SIS)以监视和取舍(override)由过程控制节点12和16提供的控制,从而最大化制炼厂10的可能的安全操作。

每个节点12和16可包括一个或更多安全系统逻辑解算器50。每个逻辑解算器50都是具有处理器和存储器的I/O设备,并被配置成执行存储于存储器中的安全逻辑模块。每个逻辑解算器50都被可通信地耦合以将控制信号提供给安全系统现场设备60和62和/或从安全系统现场设备60和62接收信号。此外,每个节点12和16都包括至少一个消息传播设备(MPD)70,其经环形或总线连接74(图1中仅描绘了它的一部分)可通信地耦合至其它MPD 70。安全系统逻辑解算器50、安全系统现场设备60和62、MPD 70、和总线74一般构成了图1的安全系统14。

图1的逻辑解算器50可以是任何期望类型的安全系统控制设备,其包括处理器和存储了适于在处理器上执行的安全逻辑模块的存储器,以便使用现场设备60和62来提供与安全系统14关联的控制功能。当然,安全现场设备60和62可以是符合或使用如上述的任何已知或期望的通信协议的任何期望类型的现场设备。特别地,现场设备60和62可以是这种类型的安全相关的现场设备:即传统上受单独、专用的安全相关的控制系统所控制的类型。在图1所示的制炼厂10中,安全现场设备60被描绘成使用专用或点对点通信协议,例如HART或4~20ma协议等,而安全现场设备62则被描绘成使用Fieldbus协议等总线通信协议。安全现场设备60可执行关闭阀门、切断开关等等任何期望的功能。

在每个节点12和16中可使用共同的底板(未图示),以将控制器12a和16a通信地耦合至处理器控制I/O卡24、安全逻辑解算器50、和MPD 70。控制器12a和16a也通信耦合到网络30。控制器12a和16a、I/O设备24、逻辑解算器50、和MPD 70可经网络30与节点18和20通信。

如本领域的普通技术人员所知,节点12和16中的底板(未图示)使得逻辑解算器50能彼此在本地通信,以协调由这些设备实施的安全功能、彼此通信数据、和/或执行其它集成功能。类似地,节点16中的底板(未图示)使得逻辑解算器50能彼此在本地通信,以协调由这些设备实施的安全功能、彼此通信数据、和/或执行其它集成功能。另一方面,MPD 70操作以使得置于制炼厂10的明显不同位置处的安全系统14的部分仍旧能够彼此通信,以在制炼厂10的不同节点处提供协调的安全操作。具体说,与总线74结合的MPD 70使得与制炼厂10的不同节点12和16关联的逻辑解算器50通信地级联在一起,从而根据分配的优先级而允许制炼厂10内安全相关的功能的级联。MPD 70和总线74将通信链路作为网络30的替代而提供给安全系统。

可替换地,制炼厂10内位置不同的2个或更多安全相关的功能可被互锁或互连,而毋需运行一条到工厂10的分离区域或节点内的各个安全现场设备的专线。换言之,使用MPD 70和72以及总线74使得安全工程师可设计和配置这样的安全系统14:其实际上遍布于制炼厂10,但具有通信互连的不同组件,以使得迥异的安全相关的硬件按需要彼此通信。此特征还提供了安全系统14的可量测性,因为它使得附加的安全逻辑解算器按需要或随着新过程控制节点被添加至制炼厂10而添加至安全系统14。

图2是示例工作站18a(工作站20a可包括相同或类似设备)的方框图。工作站18a可包括至少一个处理器100、易失性存储器104、和非易失性存储器108。易失性存储器104可包括例如随机存取存储器(RAM)。在某些实施例中,RAM可由一个或更多电池来支持,从而数据不会在掉电事件中丢失。非易失性存储器108可包括例如一个或更多硬盘、只读存储器(ROM)、光盘ROM(CD-ROM)、可编程ROM(PROM)、可擦写可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、数字多功能盘(DVD)、闪存等等。工作站18a还可包括工作站I/O设备112。处理器100、易失性存储器104、非易失性存储器108、和工作站I/O设备112可经地址/数据总线116而互连。工作站18a还可包括至少一台显示设备120和至少一台用户输入设备124,其可以是例如键盘、袖珍键盘、鼠标、轨迹球、触摸屏、光笔等等的一个或多个。在某些实施例中,一个或更多易失性存储器104、非易失性存储器108、和工作站I/O设备112可经与地址/数据总线116分离的总线(未图示)耦合至处理器100,或可直接耦合至处理器100。

显示设备120和用户输入设备124与工作站I/O设备112耦合。此外,工作站18a经工作站I/O设备112耦合至网络30。尽管在图2中将工作站I/O设备112图示成一台设备,但它可包括几台设备。此外,在某些实施例中,一台或更多显示设备120和用户输入设备124可直接耦合至地址/数据总线116或至处理器100。

现在参照图1和2,与一个或更多控制节点12、16关联的过程控制配置应用程序可存储于一台或更多工作站18a和20a并由其执行。例如,过程控制配置应用程序可存储于非易失性存储器108和/或易失性存储器104,并由处理器100执行。然而,如果期望,此应用程序可在与制炼厂10关联的其它计算机中存储和执行。一般说来,该过程控制配置应用程序允许程序员创建和配置控制例程、控制模块、功能块、程序、逻辑等等,以便由控制器12a、16a、I/O设备24、和/或现场设备22、23来实施。这些控制例程、控制模块、功能块、程序、逻辑等等可接着经网络30被下载至控制器12a、16a、I/O设备24、和/或现场设备22、23的合适的一个。

类似地,与安全系统14关联的安全系统配置应用程序可存储于一台或更多工作站18a和20a并由其执行。例如,安全系统配置应用程序可存储于非易失性存储器108和/或易失性存储器104,并由处理器100执行。然而,如果期望,此应用程序可存储并执行于与制炼厂10关联的其它计算机。一般说来,安全系统配置应用程序允许程序员创建和配置控制例程、控制模块、功能块、程序、逻辑等等,以便由控制器12a、16a、逻辑解算器50、和/或设备60、62来实施。这些控制例程、控制模块、功能块、程序、逻辑等等可接着经网络30被下载至控制器12a、16a、逻辑解算器50、和/或设备60、62的合适之一。

状态机功能块

控制系统或安全系统配置应用程序可允许使用功能块编程范例来编程控制模块和/或控制例程。图3图示了描绘了控制模块154的示例显示器150。显示器150可以是与配置应用程序关联的用户界面的一部分,而显示器150可例如经工作站18a的显示设备120呈现给程序员。显示器150画出了控制模块154,其具有一组通信地互连的功能块,可被创建并经网络30下载至控制器12a、16a、I/O设备24、逻辑解算器50、和/或设备22、23、60、62的合适之一,用于制炼厂的操作期间的实施。如图3所示,控制模块154包括状态机功能块(SMFB)160、多个模拟输入(AI)和数字输入(DI)功能块、多个模拟输出(AO)和数字输出(DO)功能块、和其它功能块(FB)。SMFB 160具有与功能块114通信地互连的输入,该功能块114可以是例如DI功能块或其它FB。SMFB 160还具有连接至功能块118的输出,该功能块118可以是例如DO功能块或其它FB。控制模块154可以控制或可以是一起控制开关、阀门等等设备的多个控制模块之一,作为控制系统、安全系统等等的一部分。当然,控制模块154仅是采用SMFB的一个示例控制模块。一般地,控制模块可按任何期望方式来编程,以便包括按任何期望方式与任何数量的SMFB通信地耦合的任何类型的功能块,并按任何期望或有用的方式来配置,以执行任何期望的功能。若用于例如Fieldbus网络,则控制模块可包括任何现场总线类型功能块。

在某些实施例中,从功能块以外可接收到一个或更多SMFB 160的输入。例如,SMFB 160的一个或更多输入可被通信地耦合以经例如操作员界面从操作员接收输入。例如使用在节点18或20等节点上实现的操作员界面的操作员可将输入提供给SMFB 160。

SMFB可以是实现状态机的功能块。在某些实施例中,状态机可包括处于多种状态之一的实体(例如,设备、由处理器实施的软件等等)。若出现了状态机的某一输入,则状态机可从一个状态迁移到另一状态。SMFB可提供基于状态机的当前状态的输出。仅作为一个例子,SMFB可提供指示状态机的当前状态的一个或更多输出。更一般地,状态机可包括实体(例如,设备、由处理器实施的软件,等等),其存储了该实体或某些其它实体(例如,制炼厂、制炼厂的子部分、制炼厂的组件,等等)在给定时刻的状态,并且其可基于状态机的输入而改变状态和/或造成行动或输出的发生。

利用与配置应用程序关联的用户界面,程序员可设计控制模块154等控制模块。仅作为一例,用户界面可为程序员提供机制、以从例如包括多种标准或定制的功能块字模的字模或调色板中选择期望的功能块。此外,用户界面可提供符号图,程序员可将功能块的绘画插入或放置在其上。程序员可使用例如鼠标、轨迹球、键盘、袖珍键盘、触摸屏等等,以从字模或调色板中选择功能块,再接着将该功能块“拖放”至符号图上。程序员可使用例如鼠标、轨迹球、键盘、袖珍键盘、触摸屏等等、在一个功能块的输出和另一功能块的输入间画一条线,从而附加地通信地耦合功能块。

一旦配置了,则控制模块154可例如由控制器12a、14a、16a、I/O设备24、逻辑解算器50、和/或设备22、23、60、62的一个或多个来实施。

图4是SMFB 200的代表的一个例子,其可显示在例如图3的显示器150等用户界面显示器上。SMFB 200的代表指示SMFB 200包括几个输入和输出。输入包括INCREMENT输入,可用来使得SMFB 200实施的状态机递增状态(例如,若在状态4,则迁移到状态5)。类似地,DECREMENT输入可用来使得状态机递减状态(例如,若在状态4,则迁移到状态3)。SMFB 200可随意地包括WRAP输入。WRAP输入指示当状态机处于最高使能状态时状态机应如何管理INCREMENT输入,以及当状态机处于最低使能状态时状态机应如何管理DECREMENT输入。作为一例,若断言了WRAP输入,若状态机处于最高使能状态,并且又断言了INCREMENT输入,则状态机应迁移到最低使能状态(例如,若在状态6,则迁移到状态1)。但若未断言WRAP输入,若状态机处于最高使能状态,并且又断言了INCREMENT输入,则状态机不会迁移到另一状态(例如,若在状态6,则保留在状态6)。类似地,如果断言了WRAP输入,若状态机处于最低使能状态,并又断言了DECREMENT输入,则状态机应迁移到最高使能状态(例如,若在状态1,则迁移到状态6)。但若未断言WRAP输入,若状态机处于最低使能状态,并且也断言了DECREMENT输入,则状态机不会迁移到另一状态(例如,若在状态1,则保留在状态1)。

SMFB 200还可包括STATE_IN输入和STATE_IN_D输入,可用来强迫由SMFB 200实施的状态机处于期望状态。同样,ENABLE输入可用来强迫状态机处于禁用状态和/或初始状态。这些输入将在下面更详细地说明。

SMFB 200还包括STATE输出,其是状态机的状态(例如,状态1、状态2、状态3,等等)的指示器。而且,输出OUT_D1、OUT_D2、...、OUT_D6是基于状态机的当前状态的输出。输出OUT_D1、OUT_D2、...、OUT_D6的生成将在下面更详细地说明。

SMFB 200仅是状态机功能块的一例。其它实例可包括SMFB 200的输入和输出的一些、无或全部。此外,也可提供其它输入和/或输出。输入和输出的类型和/或数量可以或不可以配置。在一个实例中,输出OUT_Dx的数量可配置。在另一个实例中,输出OUT_Dx的数量不可配置。例如,若需要的输出少于由SMFB 200提供的输出OUT_Dx的数量,则额外的OUT_Dx输出可留着不用(例如,不连接至其它功能块、连接至哑(dummy)功能块,等等)。

使用与配置程序关联的图形用户界面,程序员可配置例如SMFB 200的一个或更多功能块。关于配置例如SMFB 200的SMFB,程序员可指定由SMFB实施的状态机的状态数量。而且,程序员可指定输出OUT_Dx的数量,以及那些输出对于状态机的各种状态应采取什么值。为了允许程序员配置SMFB,配置应用程序可在显示设备120上显示与功能块关联的例如配置窗口、屏幕等的用户界面机制。

图5是用户界面机制的一个例子,可用来至少部分地配置例如图4的SMFB 200的SMFB。该用户界面机制包括表格或矩阵300(以下称作“矩阵300”),其可显示为与SMFB关联的配置窗口、屏幕等的一部分。矩阵300包括排列成行和列的多个单元304。每一行对应于状态机的多个可能状态之一,而每一列对应于状态机的输出OUT_Dx。于是,每个单元304对应于状态和输出。尽管该示例矩阵300包括7个状态的行和6个输出的列,但具有不同状态和输出数量的类似矩阵可用于具有不同输出和状态数量的SMFB。例如,单元304A对应于状态1和输出OUT_D5。单元304B对应于状态2和输出OUT_D3,而单元304C对应于状态2和输出OUT_D5。

输出和状态的数量可以配置。在其它实例中,每一列可对应于状态机的多个可能状态之一,而每一行可对应于状态机的输出。

参照图4,矩阵300的输出“1”至“6”分别对应于图4的SMFB 200的输出OUT_D1至OUT_D6。此外,在此实例中程序员能够标记每个可能状态和/或每个输出。例如,在图5中,“状态1”被标记成“关火炉”,而输入1被标记成“打开阀门101”。标记输出和/或状态可有助于理解状态机的操作。

程序员可通过将配置信息录入单元304而配置SMFB。特别地,对于对应于状态之一和输出之一的单元304,程序员可将配置数据录入单元,其指示了当状态机处于对应状态时对应输出应取的值。图6是将配置数据录入某些单元304的矩阵300的一个例子。例如,单元304A包括配置数据,其指示当状态机处于状态“关火炉”时输出“风扇145”的值。特别地,单元304A包括“X”。这可指示应断言对应的输出。不包括“X”的单元304可指示在对应的状态中不应断言这些输出。可替换地,“X”可指示不应断言对应的输出,而没有“X”则指示应断言对应的输出。在某些实例中,不同的配置数据可指示输出应被断言还是不断言。例如,“0”、“FALSE”、“DEASSERT”等值指示输出不应断言,和/或“1”、“TRUE”、“ASSERT”等值指示输出应被断言。在其它实例中,配置数据可指示输出应被设置成3个或更多值之一。除了“X”以外还可使用任何合适的指示器,例如其它字母、单词、数字、符号、图案、图标、填满的单元等等。

类似地,单元304B包括配置数据,指示当状态机处于状态2时,应断言“打开排气口120”输出。而且,单元304C包括配置数据,指示当状态机处于状态2时,应断言“风扇145”输出。

程序员可使用各种技术的任一种将配置数据录入矩阵300,包括本领域的普通技术人员所熟知的技术。例如,为了将配置数据录入单元304,程序员可使用鼠标、轨迹球、触摸屏等来选择单元304。接着,用户可经例如键盘将配置数据直接录入单元304。或者,程序员可选择单元304再接着从下拉菜单中选择“编辑”、“修改”等选项,或选择“编辑”按钮、“修改”按钮等等。接着,用户界面可经下拉菜单、窗口、显示屏等等向程序员显示输出值列表。接下来,程序员可使用例如键盘、鼠标、轨迹球、触摸屏等等选择输出值之一。

使用包括矩阵300等矩阵的用户界面来配置SMFB与使用例如顺序功能图或C++等编程语言比较,可使状态机更容易实施。例如,使用C++程序来实施状态机可能包括首先创建状态迁移图再接着将其变换成程序。接着,程序必须经过测试和调试。然而,使用矩阵300等矩阵而配置的SMFB,则不需要书写程序。反之,“编程”可仅涉及填写矩阵。此外,因为不需要书写软件代码,故不需要调试和测试代码。反之,测试可仅涉及测试状态、输入、和输出的各种组合,以验证SMFB进入正确的下一状态,和对于每个状态生成正确的输出。

进而,通过简单检查矩阵300可容易地理解SMFB的功能。于是,所配置的SMFB的功能可通过例如打印出矩阵的表示而容易地记入文档。

根据例如矩阵300的矩阵而配置的SMFB可用于例如安全系统或过程控制系统。仅作为一个例子,根据例如矩阵300的矩阵而配置的SMFB可用作安全系统的一部分,来管理制炼厂中的燃炉。参照图6,例如,SMFB可包括“正常操作”、“关煤气”和“排气口”等状态。若检测到燃炉火焰熄灭,则可控制SMFB以从“正常操作”状态递增到“关煤气”状态。在“关煤气”状态中,SMFB可生成输出OUT_D2以关闭燃气。接着,可控制SMFB变成“排气口”状态,其可生成输出OUT_D3和OUT_D5以打开排气口并接通风扇。这可用来排出燃炉中的任何废气。

根据例如矩阵300的矩阵而配置的SMFB可由控制器12a、16a、I/O设备24、逻辑解算器50、和/或设备22、23、60、62的一个或多个来实施。在某些实施例中,SMFB可由根据软件而配置的处理器、由例如包括门阵列、标准单元、现场可编程门阵列(FPGA)、PROM、EPROM、EEPROM、可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)等的一个或多个的器件的可编程逻辑器件来实施。

与SMFB关联的配置数据(例如,录入例如矩阵300的矩阵的数据和任选的其它配置数据)可存储于例如硬盘、RAM、ROM、CD-ROM、EPROM、EEPROM、DVD、快闪存储器等计算机可读介质和/或与处理器关联的存储器中。

图7是所配置的SMFB的操作的示例方法的流程图。方法350可周期性地实施和/或响应于例如触发事件。在块354处,SMFB从例如其它功能块、操作界面、控制策略等等接收输入。例如参照图4,SMFB接收例如INCREMENT、DECREMENT、STATE_IN、STATE_IN_D等的输入。在块358处,如果必须,则SMFB可从其当前状态变成不同的状态。任何状态改变可基于在块354处接收的输入,并可选择地同样基于其它因素。例如,在某些实施例中,SMFB的输入可包括状态(例如GOOD状态或BAD状态)。于是,确定下一状态也可基于例如这样的配置数据:其指示如何管理具有BAD状态的输入。带有状态信息的输入将在下面更详细地说明。

接着,在块362处,SMFB可基于状态机的当前状态而生成输出(例如OUT_D1、OUT_D2等等)。任选地,也可基于其它因素而生成输出。例如,在某些实施例中,可配置SMFB从而迫使某些或全部输出为某一值,而不论状态机的状态如何。

再参照图4,SMFB可任选地包括“ENABLE”输入。在某些实施例中,若不断言ENABLE输入,则SMFB可被强迫至禁用状态(例如,状态0)并保持在该状态,直到断言了ENABLE输入。当接着断言了ENABLE输入时,SMFB可被强迫至初始状态(例如,状态1),此后SMFB可基于SMFB的输入和任选的其它因素而迁移至其它状态。

SMFB可附加地包括一个或多个输入以迫使状态机处于期望状态。例如,SMFB 200包括STATE_IN_D输入和STATE_IN输入。当断言了STATE_IN_D输入时,SMFB可被强迫至由STATE_IN输入指定的状态。例如,若STATE_IN输入是“6”并断言了STATE_IN_D输入,则SMFB可被强迫至状态“6”。

SMFB可任选地通过其他方式来配置。例如,SMFB可包括输出“屏蔽”,其指示任何输出OUT_D1、OUT_D2等是否应被强迫至特别的状态,而不论状态机的状态和录入配置矩阵的配置数据如何。例如,输出屏蔽可用来强迫输出OUT_D1、OUT_D2等的一个或多个总是被不断言。而且,可配置SMFB以响应可具有多个状态的输入。例如,SMFB的一个或全部输入可具有“好”状态或“坏”状态,并可配置SMFB以根据输入的状态而不同地响应。在一个具体实例中,可配置SMFB以忽略“坏”的输入,即使“坏”也使用该输入,或使用该输入的上一个“好”的值。进而,SMFB可包括RESET参数,当其为真时,强迫SMFB处于“1”状态。

图8是SMFB的一个例子的方框图。SMFB 400包括逻辑404,其至少部分基于输入INCREMENT、DECREMENT、和WRAP以及SMFB 400的当前状态来确定下一状态。例如,若断言了INCREMENT输入,则逻辑404可将当前状态递增至下一更高状态。若当前状态早已是最高使能状态并断言了WRAP输入,则逻辑404可将当前状态设置成最低使能状态(例如,若当前状态是7,则将状态设置成1)。若当前状态早已是最高使能状态而不断言WRAP输入,则逻辑404不改变状态(例如,若当前状态是7,则保持在7)。类似地,若断言了DECREMENT输入,则逻辑404可将当前状态递减至下一较低状态。若当前状态早已是最低使能状态并断言了WRAP输入,则逻辑404可将当前状态设置成最高使能状态(例如,若当前状态是1,则将状态设成7)。若当前状态早已是最低使能状态而不断言WRAP输入,则逻辑404不改变状态(例如,若当前状态是1,则保持在1)。

逻辑404的输出被提供给开关逻辑408。开关逻辑408基于STATE_IN_D输入而在逻辑404的输出和输入STATE_IN之间选择。例如,若断言了STATE_IN_D输入,则开关逻辑408可选择STATE_IN输入。否则,开关逻辑408可选择逻辑404的输出。

开关逻辑408的输出被提供给开关逻辑412,其基于使能和复位逻辑416的输出而在开关逻辑408的输出、值0和值1之间选择。该使能和复位逻辑416的输出指示状态应被强迫至禁用状态(例如状态0)还是初始状态(例如状态1)。该使能和复位逻辑416基于ENABLE输入而生成此输出。例如,若不断言ENABLE输入,则该使能和复位逻辑416的输出可指示该状态应被强迫至状态0。若ENABLE输入从不断言变成断言,则使能和复位逻辑416的输出可指示该状态应被强迫至状态1。若ENABLE输入被断言并先前也被断言,则使能和复位逻辑416的输出可指示该状态不应被强迫至状态0或1。

开关逻辑412的输出是SMFB 400的当前状态,并可作为SMFB 400的输出。开关逻辑412的输出还可提供给逻辑420,其基于状态机的当前状态而设置合适的输出OUT_D1、OUT_D2等等。具体说,逻辑420存取输出配置数据库424中存储的输出配置数据。该数据库424可存储于例如硬盘、RAM、ROM、CD-ROM、EPROM、EEPROM、DVD、快闪存储器等的计算机可读介质和/或与处理器关联的存储器中。该输出配置数据可包括录入例如图5的矩阵300的矩阵的配置数据。

各块404、408、412、416、和420可由硬件、软件和固件的一个或多个来实施。此外,某些块可被组合、排序、修改或省略,并可添加附加的块。仅作为一例,块408和412可被组合成单一块。

图9是SMFB 400的示例的操作方法的流程图。图9的方法450可周期性地和/或在触发事件后实施。在块454处,SMFB 400的ENABLE输入被处理。例如,可确定ENABLE输入是否被断言和/或在先前处理之后是否已改变。

在块458处,如果必要,可改变SMFB 400的状态。在块262处,如果必要,可改变SMFB 400的一个或更多数据输出。例如,可确定SMFB 400的一个或更多数据输出是否因为SMFB 400的状态改变而改变。

下面将说明可用来至少部分地实施方法450的几个示例例程。例如,图10是示例例程500的流程图,其可用来处理SMFB的ENABLE输入。在块504处,可确定变量LASTENABLE的值是否与ENABLE输入的值相同。LASTENABLE变量通常指示在先前时刻的ENABLE值(例如,ENABLE变量在先前运行例程500期间的值)。若LASTENABLE与ENABLE的值相同,则例程500可结束。否则,例程可前进至块508,在此可确定是否断言ENABLE输入。若断言ENABLE输入,则在块512处可将变量RESET设置成TRUE。若在块508处确定不断言ENABLE输入,则在块516处,全部输出OUT_D1、OUT_D2等都不断言。接着,例程可前进至块520,在此将STATE变量设置成0。

在块512和520后,例程可前进至块524,在此将变量LASTENABLE设置成ENABLE输入的值。在块524之后,例程可结束。

图11是示例例程600的流程图,如果必要,其可用于改变SMFB的状态和设置SMFB的输出。在块604处,可确定是否断言ENABLE输入。若不断言,则例程可结束。若断言ENABLE输入,则例程可前进至块608,在此可确定是否断言STATE_IN_D输入。若断言,则例程可前进至块612,在此将STATE变量设置成STATE_IN输入的值。若在块608处确定不断言STATE_IN_D输入,则例程可前进至块616。

在块616处,可确定变量RESET是否为真。若为真,则例程可前进至块620,在此将变量STATE设成1。接着,在块624处,将RESET变量设成FALSE。若在块616处确定变量RESET不为真,则例程可前进至块628。

在块628处,可确定是否断言INCREMENT输入。若断言,则例程可前进至块632,在此适当地递增变量STATE。例如,变量STATE可基于先前说明的WRAP输入的值而适当地递增。若在块628处确定不断言INCREMENT输入,则例程可前进至块636。在块636,适当地递减变量STATE。例如,变量STATE可基于先前说明的WRAP输入的值而适当地递减。

在块612、624、632和640后,并若在块636处确定不断言DECREMENT输入,则例程可前进至块644。在块644处,可设置SMFB的输出。在图12中提供了用来实施块644的例程700的例子。接着,例程600可结束。

图12是可用于设置SMFB的输出的示例例程700的流程图。在块704处,x变量z被设成1。在块708处,输出OUT_Dz(例如,若z=1,则OUT_Dz=OUT_D1)被设置成由变量STATE所指向的阵列变量OUTPUT的元素比特数z的值。OUTPUT阵列的每个元素可以是对于对应的状态之一而指示SMFB的输出值的变量。具体说,阵列的元素可对应于状态机的状态。例如,OUTPUT[1]可对应于状态1,OUTPUT[2]可对应于状态2,等等。此外,每个元素的每一比特可对应于SMFB的输出OUT_D1、OUT_D2等等。例如,第1至5比特可分别对应于输出OUT_D1至OUT_D5。参照图6,例如对于矩阵300,OUTPUT阵列可具有7个元素,而元素OUTPUT[1]可以是0×10。

在块712处,变量z被递增,而在块716处可确定z的值是否大于输出OUT_D1、OUT_D2等等的数量。若z不大于输出OUT_D1、OUT_D2等等的数量,则例程可返回块708。否则,例程可结束。

应当理解图9的方法450和图10~12的例程仅是示例,而在其它例子中,可修改块、添加新块、重新排序块、省略块、和/或组合块。

参照图4和8,SMFB的其它例子可具有其它类型的输入,以附加于或取代INCREMENT和DECREMENT输入。例如,图13是另一示例SMFB的方框图。SMFB 800包括输入IN_D1、IN_D2等等。这些输入可用来确定是否应发生状态改变,而若有改变,则确定状态机应迁移到哪个状态。SMFB800包括逻辑804,其接收输入IN_D1、IN_D2等等,并至少部分地基于输入IN_D1、IN_D2等等以及状态机的当前状态而确定状态机的下一状态。具体说,逻辑804访问存储于数据库808中的下一状态配置数据。数据库808可存储于如上所述的计算机可读介质上。数据库808和数据库424可存储于同一计算机可读介质,或不同计算机可读介质上。下一状态配置数据可包括配置数据,其对于至少某些状态和输入的组合的每一个、指示当状态机处于对应状态并且当对应输入是某一值时,状态机应迁移到哪个状态。配置数据可被图形用户接口接收,该图形用户接口提供例如状态迁移矩阵或状态迁移图。在这些示例中,程序员可经状态迁移矩阵或状态迁移图录入状态迁移数据。

一般地,SMFB可由软件、固件、或硬件、或软件、固件、和/或硬件的某些组合来实施。参照图1,SMFB可由例如控制器12a、16a、I/O设备24、逻辑解算器50、和/或设备22、23、60、62的一个或多个来实施。作为另一例子,SMFB可由一个或更多工作站18a和20a来实施。例如,SMFB可由工作站18a和/或工作站20a来实施作为仿真的一部分,以测试制炼厂的操作或提供操作员培训。在某些实施例中,SMFB可由根据软件而配置的处理器、由例如包括门阵列、标准单元、现场可编程门阵列(FPGA)、PROM、EPROM、EEPROM、可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)等的一个或多个的器件的可编程逻辑器件来实施。

图8的各块404、408、412、416和420以及图13的块804可由软件、固件、或硬件、或软件、固件、和/或硬件的某些组合来实施。此外,尽管图10~12的流程图被描述为例程,但这些流程图可由软件、硬件、固件、或软件、固件、和/或硬件的组合来实施。

例如上述用户界面的用户界面的实施例可整体或部分地由例如根据软件程序而配置的处理器来实施。例如,工作站18a或20a、或某些其它计算机可整体或部分地由上述用户界面来实施。用来实施用户界面的实施例的软件程序可包含在例如硬盘、RAM、电池备份RAM、ROM、CD-ROM、PROM、EPROM、EEPROM、DVD、快闪存储器等的有形介质或与处理器关联的例如RAM的存储器上存储的软件中,但本领域的普通技术人员容易明白:整个程序或其部分可替换地由处理器以外的器件来执行,和/或以公知方式包含在固件和/或专用硬件中。

尽管本发明容易进行各种修改和替换构造,但图中示出了并在这里详细描述了其某些示意实施例。然而,应当理解:无意将本公开限制于所公开的具体形式,相反,本发明将覆盖落入由所附权利要求限定的本公开的精神和范围内的全部修改、替换构造和等效。

相关申请的交叉引用

本申请涉及美国专利申请号——(代理卷号第06005/39537),标题为“带有用户可修改状态迁移配置数据库的状态机功能块”,其被共同拥有,并且为了全部目的而通过引用在此全部合并。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号