CN1598723A - 具有用户可修改的状态转换配置数据库的状态机功能块 - Google Patents

具有用户可修改的状态转换配置数据库的状态机功能块 Download PDF

Info

Publication number
CN1598723A
CN1598723A CNA2004100686722A CN200410068672A CN1598723A CN 1598723 A CN1598723 A CN 1598723A CN A2004100686722 A CNA2004100686722 A CN A2004100686722A CN 200410068672 A CN200410068672 A CN 200410068672A CN 1598723 A CN1598723 A CN 1598723A
Authority
CN
China
Prior art keywords
input
state
functional block
code
state machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004100686722A
Other languages
English (en)
Other versions
CN1598723B (zh
Inventor
加里·K·劳
迈克尔·G·奥特
肯特·A·伯尔
戈弗雷·R·谢里夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of CN1598723A publication Critical patent/CN1598723A/zh
Application granted granted Critical
Publication of CN1598723B publication Critical patent/CN1598723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/045Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23289State logic control, finite state, tasks, machine, fsm
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

进程工厂内的控制系统、安全系统等可以每个都使用能够被容易地集成到功能块图表编程环境中的一个或多种状态机功能块。这种状态机功能块可以包括一个或多个输入,用于使由状态机功能块实现的状态机改变状态。该状态机功能块可以至少部分地基于,如果有的话,指示要转换的下一种状态的数据来确定它要转换的下一种状态。可以基于状态机的当前状态和至少一个输入从数据库获得配置数据。状态机功能块还可以包括基于状态机的状态而产生的一个或多个输出。

Description

具有用户可修改的状态转换配置数据库的状态机功能块
技术领域
本发明一般地涉及用于进程工厂的功能块,尤其涉及配置和实现与进程工厂相关的状态机。
背景技术
进程控制系统,如在化学、石油或其它加工进程中使用的那些,通常包括通过模拟的、数字的或组合模拟/数字总线或线路通信地连接到至少一个主机或操作员工作站并连接到一个或多个现场设备的一个或多个进程控制器。可以是例如阀门、阀门定位器、开关和发送机(例如,温度、压力和流速传感器)的现场设备在进程工厂内执行诸如打开或关闭阀门以及测量进程参数的功能。进程控制器接收指示由现场设备所做的进程测量的信号和/或其它与现场设备相关的信息,使用这些信息来实现控制例程,然后产生经总线或线路发送到现场设备的控制信号,以控制进程的运行。通常使由操作员工作站执行的一个或多个应用程序能够得到来自现场设备和控制器的信息,以使操作员能够相对于进程执行任何期望的功能,诸如配置进程、察看进程的当前状态、修改进程的运行等。
另外,在许多进程中,提供单独的安全系统以检测进程工厂内与安全相关的重大问题,当发生可能造成或导致工厂中的严重危害问题时,诸如有毒化学物质泄漏、爆炸等时,自动地关闭阀门、对设备关电、切换工厂内的流程等。这些安全系统通常具有远离标准进程控制控制器的一个或多个单独控制器,称为逻辑解算器(solver),它们通过安装在进程工厂内的单独总线或通信线路连接到安全现场设备。逻辑解算器使用安全现场设备来检测与重大事件相关的进程状况,诸如特定安全开关或关闭阀门的位置、进程中的上溢或下溢、重要的功率产生或控制设备的操作、故障检测设备的操作等,从而检测进程工厂内的“事件”。当检测到一事件(通常称为“起因”)时,安全控制器采取一些动作(通常称为“结果”)以限制事件的破坏性,诸如关闭阀门、关掉设备、对工厂的一些部件关电等。一般地,这些动作或结果包括将安全设备切换到被设计用来防止进程工厂内的严重或危险状况的跳闸或“安全”操作模式。
诸如进程控制系统和安全系统的进程工厂内的系统通常可以保持跟踪各种进程和/或系统本身的状态。系统的输入信号会导致由系统所跟踪的状态发生变化,由系统产生的输出信号除系统的输入信号外会依赖于系统的当前状态。目前,可以使用编程语言写的例程来跟踪系统的状态。编写这些例程是乏味、费时和充满错误的。在安全系统中,这种错误会是很严重的,因为安全系统正确操作的失败会导致工厂员工方的严重受伤或甚至是死亡以及导致工厂内装备和材料潜在的成百万元的破坏。
而且,可以使用用于可编程控制器的编程技术来跟踪系统的状态,该编程技术由国际电工委员会(International Electrotechnical Commission,IEC、)标准化,通常称为“顺序功能图表”(在IEC 61131-3标准中提出)。但如本领域普通技术人员所已知的那样,使用顺序功能图表来保持跟踪系统的状态会是很困难的。另外,与用编程语言写的例程相似,创建顺序功能图表会是乏味、费时和充满错误的。
发明内容
进程工厂内的控制系统、安全系统等可以每个都使用能够容易地集成到功能块图表编程环境中的一个或多种状态机功能块。这种状态机功能块可以包括一个或多个输入,用于使由状态机功能块实现的状态机改变状态。如果有的话,该状态机功能块可以基于指示下一状态的状态转换配置数据来确定它要转换的下一种状态。可以基于状态机的当前状态和至少一个输入从数据库获得所述状态转换配置数据。状态机功能块还可以包括基于状态机的状态而产生的一个或多个输出。状态机功能块的输入可以与,例如进程控制系统或安全系统相关联,输出可以用于例如进程控制系统或安全系统中的现场设备的控制。
状态机功能块可以,至少部分地通过图形用户接口机制来进行配置。图形用户接口机制可以包括多个图形元素(element),其中至少一些图形元素可用于指定状态机应当如何在状态间进行转换。在一个示例中,可以在计算机的显示设备上显示多个单元(cell),其中第一多个单元的每个单元对应于至少一个输入和状态机的多种状态的至少一些可能配对之一。该多个单元可以排列在一个矩阵中,例如,其中矩阵的列对应于状态机的多个可能状态,而矩阵的行对应于至状态机的输入(或与之相反)。在对应于一特定状态和一特定输入的单元中,编程者可以使用计算机的输入设备来输入指示下一状态的配置数据。当状态机处于对应于该单元的状态并且对应于该单元的输入是特定值时,下一状态配置数据指示状态机应转换的下一状态。
作为另一示例,图形用户接口可以包括一个图表,该图表上的对象表示状态机的状态。编程者可以,例如将箭头从一种状态放到另一种状态并将输入与该箭头相关联。这可以指示当指定输入是特定值时状态机应从一种状态转换到另一状态。
与保持跟踪与控制系统或安全系统相关的状态的现有技术相比,如下文中所述的状态机功能块的实施例可更容易配置。例如,可以用诸如上述机制的图形用户接口机制来实现一些或所有的配置。另外,状态机功能块的实施例可以容易地集成到使用功能块逻辑的控制器、逻辑解算器、现场设备等中,因为可以通过互连状态机功能块的输入和输出到其它功能块、控制策略内的元素、操作员接口等,用与其它类型的功能块相同或相似的方式来集成状态机功能块。并且,状态机功能的操作可以容易地进行文档记录,因为其操作可以至少部分地以诸如矩阵的形式图形地进行说明。状态机功能块或用于配置状态机功能块的机制的不同实施例可以提供一个或多个上述优点,或不提供上述任何优点。
附图说明
通过参考下面详细说明和附图将更好地理解下文所述的方法、装置和系统的特点和优点,在附图中:
图1是一个示例进程工厂的方框图;
图2是示意地在图1中说明的一个示例工作站的方框图;
图3是描述控制模块的显示器的一个示例;
图4是状态机功能块的表示的一个示例;
图5是用于输入状态机功能块的下一状态配置数据的一个示例矩阵;
图6是其中在矩阵中显示下一状态配置数据的图5的所述示例矩阵;
图7是状态机功能块的操作的示例方法的流程图;
图8是一个示例状态机功能块的方框图;
图9是状态机功能块的操作的另一示例方法的流程图;
图10是用于处理到状态机功能块的数据输入的一个示例例程的流程图;
图11是用于处理到状态机功能块的使能输入的一个示例例程的流程图;
图12是用于改变状态机功能块的状态和设置其输出的一个示例例程的流程图;
图13是输入用于状态机功能块的输出配置数据的一个示例矩阵;
图14是另一示例状态机功能块的方框图;
图15是用于改变状态机功能块的状态和设置其输出的另一个示例例程的流程图;
图16是用于设置状态机功能块的适当输出值的一个示例例程的流程图;和
图17是输入用于状态机功能块的下一状态配置数据的一个示例状态转换图。
具体实施方式
图1是包括一个或多个节点12、16、18和20的一个示例进程工厂10的方框图。在图1的示例进程工厂10中,节点12和16的每一个包括通过输入/输出(I/O)设备24连接到一个或多个现场设备22和23的进程控制器12a、16a,其中输入/输出(I/O)设备24可以是例如Foundation Fieldbus接口、HART接口等。控制器12a和16a还通过网络30连接到节点18和20中的一个或多个主机或操作员工作站18a和20a,其中网络30可以包含,例如一个或多个总线、诸如Ethernet LAN的有线局域网(LAN)、无线LAN、广域网(WAN)、内联网等。尽管与之连接的控制节点12、16和I/O设备24和现场设备22、23通常在有时恶劣的工厂环境内由中心向远处放置和分布在有时恶劣的工厂环境中,但操作员工作站节点18和20经常位于控制器人员容易到达的控制房中或其它不很恶劣的环境中。
一般而言,节点18和20的工作站18a和20a可用来存储和执行用于配置和监视进程工厂10、和/或管理进程工厂10中的设备22、23、24和控制器12a、16a的应用程序。并且,数据库32可以连接到网络30并作为数据历史和/或配置数据库运行,该数据库存储下载到和/或存储在节点12、16、18、20、22、23、24、50和70内的进程工厂10的当前配置。
例如可以是由Emerson Process Management销售的DeltaVTM控制器的每个控制器12a和16a可以存储和执行通过使用数个不同的独立执行的控制模块或块来实现控制策略的控制器应用程序。每个控制模块可以由通常被称为功能块的块构成,其中每个功能块是整个控制例程的一部分或一个子例程并与其它功能模块相结合(经由被称为链路的通信)进行操作以实现进程工厂10内的进程控制环。如熟知的那样,功能块通常执行输入功能(诸如与发送器、传感器或其它进程参数测量设备相关联的输入功能)、控制功能(诸如与执行PID、模糊逻辑等控制的控制例程相关联的控制功能)或控制一些设备(诸如阀门)的操作的输出功能之一,以执行进程工厂10内的一些物理功能。当然存在和可以使用混合的和其它类型的功能块。尽管fieldbus协议和DeltaVTM系统协议可使用以面向对象的编程协议设计和实现的控制模块和功能块,也可使用包括例如顺序功能块、阶梯逻辑等的任何期望的控制编程方案来设计控制模块,并不限于使用功能块或任何其它特定编程技术来进行设计。作为典型,存储在进程控制节点12和16内的控制模块的配置可被存储在可由工作站18a和20a执行的应用程序访问的配置数据库32中。通常当功能块用于或与标准4-20ma设备和诸如HART设备的一些类型智能现场设备相关联的情况下,这些功能块可以存储在例如控制器12a、16a中并由控制器12a、16a执行,或者在Fieldbus设备的情况下,可以存储在现场设备本身中并由现场设备本身来实现。
在图1中说明的系统中,连接到控制器12a和16a的现场设备22和23可以是标准4-20ma设备,或可以是诸如HART、Profibus、或FoundationFieldbus现场设备的包括处理器和存储器的智能现场设备。这些设备的一些,诸如Foundation Fieldbus现场设备(图1中标以标号23)可以存储和执行与由控制器12a和16a实现的控制策略相关联的诸如功能块的模块、或子模块。当然,现场设备22、23可以是任何类型的设备,诸如传感器、阀门、发送器、定位器等,I/O设备24可以是符合诸如HART、Foundation Fieldbus、Profibus等的任何期望的通信或控制器协议的任何类型的I/O设备。
控制器12a和16a的每个包括实现或监视存储在存储器中的一个或多个进程控制例程的处理器,所述进程控制例程可以包括控制环路,存储于其中或与之相关联。控制器12a和16a与现场设备22、23、工作站18a、20a和数据库32进行通信,从而以任何期望的方式来控制进程。控制器12a和16a的每个可以配置为以任何期望的方式来实现控制策略或控制例程。
进程工厂10还可以包括与进程控制节点12和16集成的安全系统14(,由点划线表示)。安全系统系统14一般地可以作为安全测量系统(SIS,SafetyInstrucmented System)运行,以监视和超控(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的不同节点提供协调的安全操作。特别是,MPD 70与总线74相结合使与进程工厂10的不同节点12和16相关联的逻辑解算器50能够通信地级联在一起,以允许根据所分配的优先级来级联进程工厂10内与安全相关的功能。MPD 70和总线74为安全系统提供作为网络30的替代物的通信链路。
或者,进程工厂10内不同位置上的两个或多个与安全相关的功能可以互锁或互连,而不用在工厂10的单独区域或节点内向单独的安全现场设备布设专用线路。换句话说,MPD 70和72和总线74的使用使得安全工程师能够设计和配置在特性上遍及进程工厂10分布但其不同组件通信地互连的安全系统14,从而使与安全相关的不同硬件能够按需互相通信。该特征还提供了安全系统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,它可以是,例如一个或多个键盘、键区、鼠标、跟踪球、触摸屏、光电笔(light pen)等。在一些实施例中,一个或多个易失性存储器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并由一个或多个工作站18a和20a执行。例如,进程控制配置应用程序可以存储在非易失性存储器108和/或易失性存储器104,并由处理器100执行。然而,如果希望,该应用程序可以在与进程工厂10相关联的其它计算机中存储和执行。一般而言,进程控制配置应用程序允许程序员创建和配置将由控制器12a、16a,I/O设备24和/或现场设备22、23实现的控制例程、控制模块、功能模块、程序、逻辑等。这些控制例程、控制模块、功能模块、程序、逻辑等然后可以通过网络30下载到控制器12a、16a,I/O设备24和/或现场设备22、23中适当的设备。
相似地,与安全系统14相关联的安全系统配置应用程序可以存储在一个或多个工作站18a和20a并由一个或多个工作站18a和20a执行。例如,安全系统配置应用程序可以存储在非易失性存储器108和/或易失性存储器104中,并由处理器100执行。然而,如果希望,该应用程序可以在与进程工厂10相关联的其它计算机中存储和执行。一般而言,安全系统配置应用程序允许程序员创建和配置将由控制器12a、16a、逻辑解算器50和/或设备60、62实现的控制例程、控制模块、功能模块、程序、逻辑等。这些控制例程、控制模块、功能模块、程序、逻辑等然后可以通过网络30下载到控制器12a、16a,逻辑解算器50和/或设备60、62中适当的设备。
状态机功能块
控制系统或安全系统配置应用程序可以允许编程控制模块和/或控制例程使用功能块编程范例。图3说明了描述控制模块154的显示150的一个示例。显示150可以是与配置应用程序相关联的用户接口的一部分,并且显示150可以,例如通过工作站18a的显示设备120呈现给程序员。显示1 50描述了具有一组通信互连的功能块的控制模块154,所述功能块可以被创建并通过网络30下载到控制器12a、16a、I/O设备24、逻辑解算器50和/或设备22、23、60、62中适当的设备,用于在进程工厂的操作期间实施。如图3中所示的,控制模块154包括状态机功能块(SMFB,state machine function block)160、多个模拟输入(AI)和数字输入(DI)功能块、多个模拟输出(AO)和数字输出(DO)功能块和其它功能块(FB)。SMFB 160具有通信地与可以是,例如DI功能块或其它FB的功能块114互连的输入。SMFB 160还具有连接到可以是,例如DO功能块或其它FB的功能块118的输出。控制模块154可以控制,或可以是一起控制的多个控制模块之一,控制诸如开关、阀门等的设备,作为控制系统、安全系统等的一部分。当然,控制模块154仅仅是利用SMFB的控制模块的一个示例。一般地,可以用任何期望的方式来编程控制模块,以包含以任何期望的方式通信地连接到任何数目的SMFB的任何类型的功能块,以及以任何期望的或有用的方式进行配置以执行任何期望的功能。如果,例如在Fieldbus网络中使用,则控制模块可以包括任何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是可以在例如,诸如图3的显示150的用户接口显示器上显示的SMFB 200的表示的一个示例。SMFB 200的表示指示SMFB 200包括7个数据输入(IN_D1至IN_D7)和7个数据输出(STATE和OUT_D1至OUT_D6)。数据输入一般指示进程工厂内的状况,指示操作员命令等,并可以引起由SMFB 200实现的状态机改变状态。数据输出可包括对应于SMFB 200的状态机的状态的一个或多个指示符。例如,STATE输出可以是状态机的状态(例如,状态1、状态2、状态3等)的指示符。输出OUT_D1可以是状态机是否处于状态“状态1”的指示符。相似地,输出OUT_D2、OUT_D3、...OUT_D6可以分别是状态机是否处于状态“状态2”、“状态3”...、“状态6”的指示符。SMFB还可以包括数据输入外的其它输入,诸如ENABLE输入、TRK_VAL输入和TRK_IN_D输入,并可包括指示状态的输出外的其它输出。将在下面更详细地描述ENABLE、TRK_VAL和TRK_IN_D输入。尽管图4中示出SMFB200具有7个数据输入和7个数据输出,但其它实施例可以包括任何期望数目的数据输入和数据输出。SMFB 200的数据输入的数目和数据输出的数目可以配置或不可以配置。在一个实施例中,输出OUT_Dx的数目一般对应于由SMFB实现的状态机的可能状态的数目,并且可能的状态数目可以是可配置的。然而,输出OUT_D1、OUT_D2等的数目不需要对应于状态机的可能状态的数目。例如,如果有少于输出OUT_D1、OUT_D2等的数目的状态,则额外的输出可以留置不用。
使用与配置程序相关联的用户接口,程序员可以配置一个或多个功能块,诸如SMFB 200。关于配置SMFB,程序员可以指定数个可能的状态,以及输入如何引起状态机在状态间进行转换。为允许程序员配置SMFB,配置应用程序可以显示于用户接口机制的显示设备120上,诸如与功能块相关联的配置窗口、屏幕等。
图5是可以用于至少部分地配置诸如图4的SMFB 200的SMFB的用户接口机制的一个示例。该用户接口机制包括可以显示为与SMFB相关联的配置窗口、屏幕等的一部分的表或矩阵300(下文中称为“矩阵300”)。矩阵300包括以行和列排列的多个单元304。每列对应于状态机的多个可能状态之一,每行对应于至状态机的输入。因此,每个单元304对应于一种状态和一个输入。尽管示例矩阵300包括用于7个输入的行和6种状态,可以对于具有不同输入和状态数目的SMFB使用具有不同状态和输出数目的相似矩阵。输入和状态的数目是可配置的。在另一个示例中,每行可以对应于状态机的多个可能状态之一,每列可以对应于至状态机的输入。
参考图4,矩阵300的输入“1”至“7”分别对应于SMFB 200的输入IN_D1至IN_D7。相似地,矩阵300的状态“1”至“6”分别对应于SMFB 200的输出OUT_D1至OUT_D6。另外,在该示例中程序员可以标记每个可能状态和/或每个输入。例如,在图5中,“状态1”被标记为“跳闸”,输入1被标记为“初始”。标记输入和/或状态可以帮助理解状态机的操作。
程序员可以通过将配置信息输入到单元304中来配置SMFB。特别是,对于对应于一种状态和一个输入的一个特定单元304,程序员可以将指示SMFB应该向其转换的状态的配置数据输入到单元中。图6是具有输入到单元304的一些中的配置数据的矩阵300的一个示例。例如,单元304A包括指示当状态机处于“跳闸”状态并且将“初始”输入置为有效(assert)时状态机应该向其转换的下一状态的配置数据。特别是,单元304A的配置数据指示状态机应该转换到“等待复位”状态。相似地,单元304B包括指示当状态机处于“等待复位”状态并且“复位允许”输入被置为有效时状态机应该转换到“准备好复位”状态的配置数据。而且,单元304C包括指示当状态机处于“等待复位”状态并且将“请求跳闸”输入置为有效时状态机应该转换到“跳闸”状态的配置数据。
在特定的示例中,如果程序员没有输入配置数据到单元304中,则可以假定对于那个特定状态和输入,不应发生状态转换。例如,单元304D不包括配置数据,指示当状态机处于“跳闸”状态并且将“开始恢复”输入置为有效时,状态机应保留在“跳闸”状态。在另一个实施例中,程序员可以输入指示对于那个特定状态/输入组合,状态机不应改变状态的配置数据。
程序员可以使用包括本领域的普通技术人员所熟知的技术的任何类型的技术,将配置数据输入到矩阵300中。例如,为了将配置数据输入到单元304中,程序员可以使用鼠标、跟踪球、触摸屏等来选择单元304。然后,用户可以通过,例如键盘直接将配置数据输入到单元304中。或者,程序员可以选择单元304,然后选择“编辑”、“修改”等,从下拉菜单选择、或选择“编辑”按钮、“修改”按钮等。然后,用户接口可以通过下拉菜单、窗口、显示屏等向程序员显示状态列表。可选地,该状态列表包括单元对应的状态或“不转换”选项。然后,程序员可以使用,例如键盘、鼠标、跟踪球、触摸屏等选择状态之一。如果程序员选择单元对应的状态或“不转换”选项,则配置数据指示对于该状态和输入组合,不应发生转换。
与使用,例如顺序功能图表或诸如C++的编程语言相比,使用包括诸如矩阵300的矩阵的用户接口来配置SMFB可以使实现状态机更容易。例如,使用C++程序等实现状态机将涉及首先创建状态转换图表,然后编写实现该图表的程序。然后,必须对程序进行测试和调试。然而,使用诸如矩阵300的矩阵来配置SMFB,不需要编写程序。并且,“编程”仅仅涉及填写矩阵。另外,由于不需要编写软件代码,故也不需要调试和测试代码。并且,测试仅仅涉及测试状态和输入的各种组合以验证SMFB进行到正确的下一状态。
并且,仅通过检查矩阵300就可容易地理解SMFB的功能。因此,配置后的SMFB的功能可以容易地进行文档记录,例如通过打印出矩阵的表示。
例如,根据诸如矩阵300的矩阵配置的SMFB可以用在安全系统或进程控制系统中。仅仅作为一个示例,根据诸如矩阵300的矩阵配置的SMFB可以用作安全系统的一部分,用于管理进程工厂中的燃烧炉。例如,SMFB可以包括诸如“点火”、“关气”和“排出”的状态。当启动燃烧炉时,SMFB可以首先进行到排出状态以使燃烧炉中的任何气体排放。然后,SMFB可以进行到点火状态以点燃燃烧炉。并且,如果燃烧炉的火焰出来的话,SMFB可以进行到关气状态以关闭到燃烧炉的气体。然后,SMFB可以进行到排出状态。
可以由一个或多个控制器12a、16a、I/O设备24、逻辑解算器50和设备22、23、60、62来实现根据诸如矩阵300的矩阵配置的SMFB。在一些实施例中,可以由根据软件由可编程逻辑设备配置的处理器来实现SMFB,该可编程逻辑设备可以是例如包括一个或多个门阵列、标准单元、现场可编程门阵列(FPGA)、PROM、EPROM、EEPROM、可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)等的设备。
与SMFB相关联的配置数据(例如,输入到诸如矩阵300的矩阵的数据和,可选的其它配置数据)可以存储在诸如硬盘、RAM、ROM、CD-ROM、EPROM、EEPROM、DVD、闪存等的计算机可读介质上,和/或与处理器相关联的存储器上。
图7是配置的SMFB的操作的示例方法的流程图。可以周期地和/或响应于例如触发事件来实现方法350。在块354中,SMFB接收其数据输入。例如参考图4,SMFB接收输入IN_D1至IN_D7。在块358,如果需要,SMFB基于数据输入、SMFB的当前状态和存储在配置数据库中的配置数据来改变其状态机的状态。配置数据库的数据可以包括通过诸如矩阵300的矩阵输入的数据。状态也可以基于其它因素而被改变。例如,如将在下面详述的那样,SMFB可以被配置为忽略一个或多个数据输入。因此,如果有的话,改变状态也会基于指示哪些数据输入将要被忽略的配置数据。作为另一个示例,两个或多个数据输入可以指示应该从当前状态到两个或多个下一状态发生状态改变。因此,SMFB可以选择该数据输入之一以确定SMFB应当基于对数据输入授于优先级的优先级数据,转换到可能的下一状态中的哪一个。作为另一个示例,在一些实施例中到SMFB的输入可以包括状态(例如,好状态或坏状态)。因此,改变状态也可以基于,例如指示应如何处理具有坏状态的输入的配置数据。
然后,在块366中,SMFB可以基于状态机的当前状态设置其数据输出。例如,如果数据输出要指示当前状态,则可以相应地设置数据输出。
再次参考图4,SMFB可以可选地包括“ENABLE”输入。在一个实施例中,如果将ENABLE输入置为无效(deassert),则强制SMFB进入禁用状态(例如,状态0)并应保留在该状态直到将ENABLE输入置为有效。当随后将ENABLE输入置为有效时,将强制SMFB进入初始状态(例如,状态1),其后SMFB可以根据输入到诸如图5的矩阵300的配置矩阵中的配置数据而转换到其它状态。
SMFB可以另外地包括强制状态机进行期望状态的一个输入或多个输入。例如,SMFB 200包括TRK_IN_D输入和TRK_VAL输入。当将TRK_IN_D输入置为有效时,可以强制SMFB进入由TRK_VAL输入指定的状态。例如,如果TRK_VAL输入为“6”并且将TRK_IN_D输入置为有效,则可以强制SMFB进入状态“6”。
SMFB可以可选地以另外的方式来配置。例如,SMFB可以包括指示如果有的话,是否应该忽略输入IN_D1、IN_D2等的一个或多个的输入(或转换)屏蔽。而且,SMFB可以被配置为对可以具有多种状态的输入作出响应。例如,到SMFB的一个或所有输入可以具有“好”状态或“坏”状态,SMFB可以被配置为根据输入的状态作出不同响应。在一个特定示例中,SMFB可以被配置为忽略为“坏”的输入、即使为“坏”也使用该输入、或使用该输入的最后的“好”值。并且,SMFB可以包括RESET参数,当该参数为真时,强制SMFB进入“1”状态。
上述各种配置数据和下一状态配置数据可以存储在同一计算机可读介质上或不同的计算机可读介质上。
图8是SMFB的一个示例的方框图。SMFB 400包括逻辑404,它至少部分地基于输入IN_D1、IN_D2等和SMFB 400的当前状态来确定下一状态。特别是,逻辑404访问存储在下一状态配置数据库406中的下一状态配置数据。数据库406可以存储在诸如上述的计算机可读介质上。下一状态配置数据可以包括输入到诸如图5的矩阵300的矩阵中的配置数据。
逻辑404的输出被提供到切换逻辑408。切换逻辑408基于TRK_IN_D输入而在逻辑404的输出和TRK_VAL输入之间进行选择。例如,如果将TRK_IN_D输入置为有效,则切换逻辑408会选择TRK_VAL输入。否则,切换逻辑408会选择逻辑404的输出。
切换逻辑408的输出被提供到切换逻辑412,该切换逻辑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的输出还可以被提供到设置对应于SMFB的当前状态的适当输出OUT_D1、OUT_D2等的逻辑420。
块404、408、412、416和420的每个都可以由一个或多个硬件、软件和固件来实现。另外,一些块可以被组合、重新排序、修改或省略,并且可以添加额外的块。仅仅作为一个示例,块408和412可以组合到单个块中。
图9是示例SMFB 400的操作的方法的流程图。可以,例如周期地和/或基于触发事件来实现图9的方法450。在块454,处理SMFB 400的数据输入。例如,可以确定是否已将任何数据输入IN_D1、IN_D2等置为有效。作为另一个示例,如果一个或多个数据输入具有“BAD”状态,可以确定如何处理“BAD”输入。在块458,处理SMFB 400的ENABLE输入。例如,可以确定是否将ENABLE输入置为有效和/或自其先前被处理起它是否已改变。
在块462,如果需要,可以改变SMFB 400的状态。另外,如果需要,可以SMFB 400的改变一个或多个数据输出。例如,可以确定数据输入中的变化指示应该改变SMFB 400的状态。另外,如果状态改变,可能是应该改变SMFB 400的一个或多个数据输出。
现在将说明,至少部分地可用于实现方法450的几个示例例程。例如,图10是可用于处理至SMFB的数据输入IN_D1、IN_D2等的示例例程500的流程图。在块504,将变量z设置为1。在块508,确定数据输入IN_Dz的状态是否为“BAD”。如果该状态不是坏的,则将变量TRANSITIONS的比特号z设置为数据输入IN_Dz的值。如果该状态是坏的,则会确定要如何处理该数据输入。在一个示例中,SMFB可以以三种方式之一处理“BAD”输入:可以任意使用BAD输入(ALWAYS_USE),可以忽略它(IGNORE_IF_BAD),或可使用最后的“GOOD”输入(USE_LAST_GOOD)。因此,在块516,可以确定SMFB是否要使用最后的“GOOD”数据输入。如果SMFB要使用最后的“GOOD”值,则可以跳过块512。否则,其后会在块520确定是否SMFB要忽略BAD输入值。如果SMFB不忽略BAD值,则例程会进行到块512。如果SMFB要忽略BAD值,则例程会进行到块524。在块524,将变量TRANSITIONS的比特号“x”设置为0。
在块528,递增变量z,并且在块532,确定变量z是否大于至SMFB的数据输入的数目。如果z不大于至SMFB的数据输入的数目,则例程会回到块508以处理下一数据输入。否则,例程结束。
图11是可用于处理到SMFB的ENABLE输入的示例例程545的流程图。在块550,可以确定变量LASTENABLE的值是否与ENABLE输入的值相同。LASTENABLE变量一般指示在前一时间的ENABLE的值(例如,在例程545的前一运行期间ENABLE变量的值)。如果LASTENABLE和ENABLE的值相同,则例程545结束。否则,例程进行到块554,在该块确定是否将ENABLE输入置为有效。如果将ENABLE输入置为有效,则在块558可将变量RESET设置为TRUE。
如果在块554确定没有将ENABLE输入置为有效,则在块562,将对应于STATE变量的当前值的输出OUT_D1、OUT_D2等置为无效。然后,在块566,将STATE变量设置为0。在块558和566之后,例程进行到块570,在此将变量LASTENABLE设置为ENABLE输入的值。在块570之后,例程结束。
图12是可用于确定SMFB的下一状态和如果需要可用于设置适当的OUT_D1、OUT_D2等的示例例程600的流程图。在块604,可以确定是否将ENABLE输入置为有效。如果没有,例程结束。如果将ENABLE输入置为有效,则例程进行到块608,在此将变量NEWSTATE设置为0。接下来,在块612,可以确定是否将输入TRK_IN_D置为有效。如果将输入TRK_IN_D置为有效,则例程进行到块616,在此将NEWSTATE变量设置为输入TRK_VAL的值。
如果在块612确定没有将TRK_IN_D输入置为有效,则例程进行到块620。在块620,可以确定变量RESET是否为TRUE。如果是TRUE,则例程进行到块624,在此可将NEWSTATE变量设置为1。然后,在块626,将RESET变量设置为FALSE。
如果在块620确定变量RESET不是TRUE,则例程进行到块632。在块632,可以通过按比特对TRNASITION_MASK变量、TRNASITIONS变量和由变量STATE指向的阵列STATECHANGEMASK的元素进行逻辑与运算来确定变量TEMP。TRNASITION_MASK变量可以是可用于防止某输入IN_Dx引起状态变化发生的可配置变量。例如,如果程序员希望防止输入IN_D3引起状态机改变状态,则该程序员可将变量TRNASITION_MASK的第三比特设置为0。如果该程序员希望输入D3引起状态机改变状态,则该程序员可将变量TRNASITION_MASK的第三比特设置为1。
STATECHANGEMASK阵列的每个元素可以是指示对于一个相应的状态哪个输入IN_D1、IN_D2等将引起状态改变的变量。特别是,阵列的每个元素对应于状态机的一种状态。例如,STATECHANGEMASK[1]对应于状态1,STATECHANGEMASK[2]对应于状态2等。另外,每个元素的每比特对应于输入IN_D1、IN_D2等之一。例如比特1对应于IN_D1,比特2对应于IN_D2等。例如参考图6,对于矩阵300,STATECHANGEMASK阵列具有6个元素,并且元素STATECHANGEMASK[3]为0x44。
在块628之后,例程进行到块632,在此可确定变量TEMP是否为0。如果不是0,则例程进行到块636,在此可将变量z设置为变量TEMP中不是0的第一个比特(即,从最低有效比特开始)的编号。实际上,这根据它们的次序设置了输入的优先级,从而IN_D1具有最高优先级,IN_D2具有次高优先级,IN_D3具有再次高优先级等。在其它实施例中,可以使用其它优先级方案。例如,可允许程序员对输入指定优先级,或可使用不同的优先级次序(例如,IN_D1具有最低优先级,IN_D2具有次低优先级等)。这些优先级可以作为整体为SMFB设置或对于每种状态设置。
然后,在块640,可以将变量NEWSTATE设置为处于行z和列STATE的状态转换矩阵的值。
在块616、626和640后,例程可进行到块644。如果在块632,确定变量TEMP为0,则例程进行到块644。在块644,可确定变量NEWSTATE是否为0。如果为0,则例程结束。如果不为0,则例程进行到块648,在此将对应于STATE变量的输出OUT_D1、OUT_D2等置为无效。然后,在块652,将变量STATE设置为变量NEWSTATE的值。在块656,将对应于STATE变量的输出OUT_D1、OUT_D2等置为有效,并且例程结束。
应当理解图9的方法450和图10-12的例程仅仅是示例,在其它示例中,可以修改块、添加新块、重新排序块、忽略块、和/或组合块。参考图10,仅作为一个示例,如果不需要或不希望对具有“BAD”状态的输入的特别处理,则可忽略块508、516、520和524。
作为另一个示例,可以修改块636,以便将变量z设置为TEMP中不为0的最后一个比特的编号。作为另一个示例,可以修改块636以基于一些优先级数据将z设置为对应于TEMP中不为0的一个比特的编号。
再次参考图4,所有数据输出不必是对应于SMFB 200的状态机的状态的指示符。例如,在一个实施例中,对应于状态机的各种状态的输出OUT_D1、OUT_D2等的值可以是可配置的。因此,例如对于特定状态,可以将多个输出OUT_D1、OUT_D2等置为有效。为允许程序员配置SMFB,配置应用程序可以在显示设备120上显示用户接口机制,诸如与功能块相关联的配置窗口、屏幕等。
图13是可用于至少部分地配置诸如图4的SMFB 200的SMFB的用户接口机制的一个示例。该用户接口机制包括可以显示为与SMFB相关联的配置窗口、屏幕等的一部分的表或矩阵700(下文中称为“矩阵700”)。矩阵700包括以行和列排列的多个单元704。每列对应于状态机功能块的多个输出OUT_D1、OUT_D2等之一,每行对应于状态机的可能状态之一。因此,每个单元704对应于一种状态和一个输出。在其它示例中,每行可对应于多个输出之一,每列可对应于状态机的可能状态之一。
矩阵700的输出“1”至“4”可分别对应于SMFB的输出OUT_D1至OUT_D4。相似地,矩阵700的状态“1”至“6”可对应于状态机的可能状态。另外,在该示例中用户可以标记每个输出。例如,在图13中,将“输出1”标记为“打开阀门VLV-101”。标记输出可以帮助理解状态机的操作和/或将状态机与进程工厂接口。
程序员可以通过将配置信息输入到单元704中来配置SMFB。特别是,对于对应于一种状态和一个输出的一个特定单元704,程序员可以将指示当状态机处于那种状态时应该将输出置为有效的配置数据输入到单元中。在示例矩阵700中,配置数据已被输入到一些单元704中。例如,单元704A包括指示当状态机处于“跳闸”状态时应该将输出OUT_D3置为有效的配置数据。相似地,单元704B包括指示当状态机处于“跳闸”状态时应该将输出OUT_D4置为有效的配置数据。
在该特定示例中,如果程序员不将配置数据输入到单元704中,则可以假定对于该特定状态不应将相应输出置为有效。例如,单元704C和704D不包括X,指示当状态机处于“跳闸”状态时,不应将输出OUT_D1和OUT_D2置为有效。在其它实施例中,程序员可以输入指示如果处于特定状态,状态机不应将特定输出置为有效的配置数据。相似地,也可以指示对于特定状态和输出,将输出置为有效还是将输出置为无效无关紧要。
程序员可以使用包括本领域的普通技术人员所熟知的技术的任何类型的技术将配置数据输入到矩阵700中。例如,为了将配置数据输入到单元704中,程序员可以使用鼠标、跟踪球、触摸屏等来选择单元704。然后,用户可以通过,例如键盘直接将配置数据输入到单元704中。或者,程序员可以选择单元704,然后选择“编辑”、“修改”等,从下拉菜单选择、或选择“编辑”按钮、“修改”按钮等。然后,用户接口可以通过下拉菜单、窗口、显示屏等向程序员显示选项列表。例如,该选项列表包括“将输出置为有效”选项、“将输出置为无效”选项,和可选地“不理会”选项。然后,程序员可以使用,例如键盘、鼠标、跟踪球、触摸屏等来选择这些选项之一。如果程序员选择“将输出置为有效”选项,则配置数据指示对于相应状态应该将相应输出置为有效。例如,“X”会显示在单元中,“1”会显示在单元中,字“TRUE”会显示在单元中,字“ASSERT”会显示在单元中等。如果程序员选择“将输出置为无效”选项,则配置数据指示对于相应状态不应将相应输出置为有效。例如,单元会留置为空,“0”会显示在单元中,字“FALSE”会显示在单元中,字“DEASSERT”会显示在单元中等。
尽管示例矩阵700包括用于6种状态的行和4个输出,可以使用具有不同状态和输出数目的相似矩阵用于具有不同状态和输出数目的SMFB。状态和输出的数目可以是可配置的。
再一次参考图7,如前所述,在块362已确定当前状态后,可以基于当前状态来设置SMFB的数据输出(块366)。例如,可以根据输入到诸如图13的矩阵700的矩阵的配置数据来设置数据输出。图14是SMFB的另一个示例的方框图。SMFB 750与图8的SMFB 400相似,但是包括基于状态机的当前状态设置适当的输出OUT_D1、OUT_D2等的逻辑754。特别是,逻辑754访问存储在输出配置数据库758中的状态/输出配置数据。数据库758和数据库406可以存储在相同计算机可读介质上或存储在不同计算机可读介质上。输出配置数据可以包括输入到诸如图13的矩阵700的矩阵的配置数据。
图15是可用于确定SMFB的下一状态和如果需要可用于将适当的输出OUT_D1、OUT_D2等有效的示例例程800的流程图。例程800与图12的例程600相似。但是在块652之后,流程进行到块804,在此可以将适当的输出OUT_D1、OUT_D2等置为有效。
图16是可用于将适当的输出OUT_D1、OUT_D2等置为有效的示例例程850的流程图。在块854,将变量z设置为1。在块858,将输出OUT_Dz设置为由变量STATE指向的阵列变量OUTPUT的元素的比特数目值z。OUTPUT阵列的每个元素可以是指示对于相应一种状态的输出OUT_D1、OUT_D2等的值的变量。例如,OUTPUT[1]对应于状态1,OUTPUT[2]对应于状态2等。另外,每个元素的每个比特对应于输出OUT_D1、OUT_D2等中的一个。例如,比特1对应于OUT_D1、比特2对应于OUT_D2等。例如参考图13,对于矩阵700,OUTPUT阵列具有6个元素,并且元素OUTPUT[1]是0x06。
在块862,递增变量z,在块866,可确定z的值是否大于输出OUT_D1、OUT_D2等的数目。如果z不大于输出OUT_D1、OUT_D2等的数目,则例程回到块858。否则,例程结束。
除了上面所述的那些外,可通过其它类型的图形用户接口来输入用于SMFB的配置数据。例如,可以通过与状态转换图相似的图形用户接口来输入配置数据。图17是可用于配置SMFB的一个示例状态转换图900。图900包括多个图形元素904、908、912、916、920、924、928和932。元素904、908和912分别表示状态机的状态1、2和3。元素916指示当状态机处于状态1时,如果将INPUT 2置为有效,则它应转换到状态2。元素920指示当状态机处于状态1时,如果将INPUT 3置为有效,则它应转换到状态3。元素924指示当状态机处于状态2时,如果将INPUT 1置为有效,则它应转换到状态1,以及元素928指示当状态机处于状态3时,如果将INPUT 1置为有效,它应转换到状态1。相似地,元素932指示当状态机处于状态3时,如果将INPUT 4置为有效,则它应转换到状态2。
一般地,可以由软件、固件、或硬件或者软件、固件和/或硬件的一些组合来实现SMFB。例如,可以由一个或多个控制器12a、16a,I/O设备24,逻辑解算器50和设备22、23、60、62来实现SMFB。作为另一个示例,可以由一个或多个工作站18a和20a来实现SMFB。例如,可以由工作站18a和/或工作站20a来实现SMFB,作为测试进程工厂的操作或提供操作员训练的仿真的一部分。在一些实施例中,SMFB可以由根据软件由可编程逻辑设备配置的处理器来实现,该可编程逻辑设备可以是例如包括一个或多个门阵列、标准单元、现场可编程门阵列(FPGA)、PROM、EPROM、EEPROM、可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)等的设备。
每个图8的块404、408、412、416和420及图14的块754可以由软件、固件、或硬件或者软件、固件和/或硬件的一些组合来实现。另外,尽管将图10-12、图15和图16的流程图描述为例程,但这些流程图也可以由软件、固件、或硬件或者软件、固件和/或硬件的一些组合来实现。
诸如上述用户接口的用户接口的实施例可以整个地或部分地由例如根据软件程序配置的处理器来实现。例如,工作站18a或20a、或一些其它计算机可以整个地或部分地实现上述用户接口。用于实现用户接口的实施例的软件程序可以体现为存储在诸如硬盘、RAM、电池备份RAM、ROM、CD-ROM、PROM、EPROM、EEPROM、DVD、闪存等的可触介质上、或诸如与处理器相关联的RAM的存储器上的软件,但是本领域的普通技术人员将很容易地理解其整个程序或部分程序或者可以由处理器之外的设备执行,和/或以熟知的方式体现在固件和/或专用硬件上。
尽管本发明可进行各种修改和替换构造,在此已在附图中示出并详细描述了本发明的特定说明性实施例。但是,应该理解并非启图限制本公开于所公开的特定形式,而是相反,本发明覆盖落入由所附权利要求书定义的本公开的精神和范围内的所有修改、替换构造和等同物。
本发明涉及美国专利申请号为__(代理方文件号06005/39538)、名为“STATE MACHINE FUNCTION BLOCK WITH A USER MODIFIABLEOUTPUT CONFIGURATION DATABASE”的专利申请,该申请为共有的,其全文通过引用包含于此。

Claims (79)

1.一种用于通过具有显示设备和输入设备的计算设备来配置与进程工厂相关联的功能块的方法,该功能块用于实现状态机,该方法包括下列步骤:
通过显示设备提供图形用户接口,用于至少部分地配置状态机如何在多种状态之间进行转换,其中,该图形用户接口包括多个图形元素,其中至少一些图形元素可用于指示期望的状态间转换;
其中至少一个输入与进程工厂相关联;
通过所述图形用户接口来接收状态转换数据;和
将状态转换数据存储在与所述功能块相关联的第一计算机可读介质上。
2.根据权利要求1所述的方法,其中,所述多个图形元素包括与功能块相关联的第一多个单元,所述第一多个单元的每个单元对应于至少一个输入和状态机的多种状态的至少一些可能配对之一;和
其中,接收状态转换数据的步骤包括:经由所述输入设备接收与所述第一多个单元的至少一些的每个相关联的的各个数据,所述各个数据指示当状态机处于对应于所述单元的状态并且对应于所述单元的输入是特定值时,状态机应该转换到的下一状态。
3.根据权利要求2所述的方法,还包括:在显示设备上显示所述第一多个单元的适当单元中的状态转换数据的指示。
4.根据权利要求2所述的方法,其中,在显示设备上显示所述第一多个单元的步骤包括:在显示设备上显示包括所述第一多个单元的矩阵,该矩阵包括至少一个单元行和多个单元列,所述至少一行的每一行与至少一个输入的相应输入相关联,所述多个列的每一列与多种状态的相应状态相关联。
5.根据权利要求2所述的方法,其中,在显示设备上显示所述第一多个单元的步骤包括:在显示设备上显示包括所述第一多个单元的矩阵,该矩阵包括多个单元行和至少一个单元列,所述多个行的每一行与多种状态的相应状态相关联,所述至少一列的每一列与至少一个输入的相应输入相关联。
6.根据权利要求2所述的方法,其中,所述特定值是逻辑1、逻辑0、逻辑TRUE值和逻辑FALSE值之一。
7.根据权利要求2所述的方法,还包括:
经由输入设备接收指示至少一个输入中的输入编号的数据;和
基于所述输入编号来确定所述第一多个单元中的单元编号。
8.根据权利要求7所述的方法,还包括:
经由输入设备接收指示所述多种状态中的状态编号的数据;
其中,确定所述第一多个单元中的单元编号的步骤包括:基于所述输入编号和所述状态编号来确定所述单元编号。
9.根据权利要求2所述的方法,还包括:
经由输入设备接收指示所述多种状态中的状态编号的数据;和
基于所述状态编号来确定所述第一多个单元中的单元编号。
10.根据权利要求2所述的方法,其中,所述多个图形元素还包括与功能块相关联的第二多个单元,该第二多个单元的每个单元对应于功能块的多个输出中的相应一个和状态机的多种状态中的相应一个;
经由输入设备接收与所述第二多个单元的至少一些相关联的输出配置数据,与所述第二多个单元的至少一些的每个单元相关联的各个输出配置数据包括指示当状态机处于对应于所述单元的状态时对应于所述单元的输出的输出值的数据;和
在与功能块相关联的第二计算机可读介质上存储所述输出配置数据。
11.根据权利要求10所述的方法,其中,所述第一计算机可读介质包括所述第二计算机可读介质。
12.根据权利要求1所述的方法,还包括:
接收指示如何处理具有BAD状态的输入的数据;和
存储指示如何处理具有BAD状态的输入的数据。
13.根据权利要求1所述的方法,其中所述至少一个输入包括多个输入,该方法还包括:
经由所述图形用户接口接收指示与所述多个输入相关联的优先级的数据;和
存储指示如何处理具有BAD状态的输入的数据。
14.根据权利要求1所述的方法,还包括接收指示状态机是否应该忽略,如果有的话,所述至少一个输入的一个或多个的数据;和
存储所述指示状态机是否应该忽略,如果有的话,所述至少一个输入的一个或多个的数据。
15.根据权利要求1所述的方法,其中,所述至少一个输入与进程控制系统、进程控制系统的仿真、安全系统和安全系统的仿真中的至少一个相关联。
16.根据权利要求1所述的方法,其中,从与进程工厂相关联的至少一个其它功能块接收所述至少一个输入。
17.根据权利要求1所述的方法,其中,从操作员接口接收所述至少一个输入。
18.一种存储机器可读指令的有形介质,包括:
第一代码,用于通过显示设备提供图形用户接口,用于至少部分地配置状态机如何在多种状态之间进行转换,其中,该图形用户接口包括多个图形元素,其中至少一些图形元素可用于指示期望的状态间转换;
其中至少一个输入与进程工厂相关联;
第二代码,用于通过所述图形用户接口接收状态转换数据;和
第三代码,用于将状态转换数据存储在与所述功能块相关联的计算机可读介质上。
19.根据权利要求18所述的有形介质,其中,所述多个图形元素包括与功能块相关联的第一多个单元,所述第一多个单元的每个单元对应于至少一个输入和状态机的多种状态的至少一些可能配对之一;和
其中,所述第二代码包括第四代码,用于经由计算设备的输入设备接收与所述第一多个单元的至少一些的每个相关联的的各个数据,所述各个数据指示当状态机处于对应于所述单元的状态并且对应于所述单元的输入是特定值时,状态机应该转换到的下一状态。
20.根据权利要求19所述的有形介质,还包括第五代码,用于在显示设备上显示所述第一多个单元的适当单元中的状态转换数据的指示。
21.根据权利要求19所述的有形介质,其中,所述第一代码包括第五代码,用于在显示设备上显示包括所述第一多个单元的矩阵,该矩阵包括至少一个单元行和多个单元列,其中该至少一行的每一行与至少一个输入的相应输入相关联,该多个列的每一列与多种状态的相应状态相关联。
22.根据权利要求19所述的有形介质,其中,所述第一代码包括第五代码,用于在显示设备上显示包括所述第一多个单元的矩阵,该矩阵包括多个单元行和至少一个单元列,其中该多个行的每一行与多种状态的相应状态相关联,该至少一列的每一列与至少一个输入的相应输入相关联。
23.根据权利要求19所述的有形介质,其中,所述特定值是逻辑1、逻辑0、逻辑TRUE值和逻辑FALSE值之一。
24.根据权利要求19所述的有形介质,还包括:
第五代码,用于经由输入设备接收指示至少一个输入中的输入编号的数据;和
第六代码,用于基于所述输入编号来确定所述第一多个单元中的单元编号。
25.根据权利要求24所述的有形介质,还包括:
第七代码,用于经由输入设备接收指示所述多种状态中的状态编号的数据;
其中,所述第六代码包括用于基于所述输入编号和所述状态编号来确定所述单元编号的代码。
26.根据权利要求19所述的有形介质,还包括:
第五代码,用于经由输入设备接收指示所述多种状态中的状态编号的数据;和
第六代码,用于基于所述状态编号来确定所述第一多个单元中的单元编号。
27.根据权利要求19所述的有形介质,其中,所述多个图形元素包括与功能块相关联的第二多个单元,该第二多个单元的每个单元对应于功能块的多个输出中的相应一个和状态机的多种状态中的相应一个;
第六代码,用于经由输入设备接收与所述第二多个单元的至少一些相关联的输出配置数据,与所述第二多个单元的至少一些的每个单元相关联的各个输出配置数据包括指示当状态机处于对应于所述单元的状态时对应于所述单元的输出的输出值的数据;和
第七代码,用于存储所述输出配置数据。
28.根据权利要求18所述的有形介质,其中,所述至少一个输入包括多个输入,该有形介质还包括:
第四代码,用于经由所述输入设备接收指示与所述多个输入相关联的优先级的数据;和
第五代码,用于存储所述指示优先级的数据。
29.根据权利要求18所述的有形介质,还包括:
第四代码,用于接收指示如何处理具有BAD状态的输入的数据;和
第五代码,用于存储指示如何处理具有BAD状态的输入的数据。
30.根据权利要求18所述的有形介质,还包括:
第四代码,用于接收指示是否应该忽略,如果有的话,所述至少一个输入的一个或多个的数据;和
第五代码,用于存储所述指示是否应该忽略,如果有的话,所述至少一个输入的一个或多个的数据。
31.根据权利要求18所述的有形介质,其中,所述至少一个输入与进程控制系统、进程控制系统的仿真、安全系统和安全系统的仿真中的至少一个相关联。
32.根据权利要求18所述的有形介质,其中,从与进程工厂相关联的至少一个其它功能块接收所述至少一个输入。
33.根据权利要求18所述的有形介质,其中,从操作员接口接收所述至少一个输入。
34.一种实现用于控制进程工厂中的一个或多个现场设备或用于仿真进程工厂中的一个或多个现场设备的控制的功能块的方法,该方法包括下列步骤:
通过显示设备提供图形用户接口,用于至少部分地配置状态机如何在多种状态之间进行转换,其中,该图形用户接口包括多个图形元素,其中至少一些图形元素可用于指示期望的状态间转换;
其中至少一个输入指示进程工厂内的状况;
通过该图形用户接口接收状态转换数据;
将状态转换数据存储在与所述功能块相关联的第一计算机可读介质上;
接收所述至少一个输入,其中所述至少一个输入与进程工厂相关联;
至少部分地基于所述至少一个输入、当前状态和存储在第一计算机可读介质上的状态转换数据中的至少一个来确定下一状态;
将状态机的当前状态设置为下一状态;和
将用于控制所述一个或多个现场设备的至少一个功能块输出提供到至少第二其它功能块,其中,所述至少一个功能块输出是基于状态机的当前状态。
35.根据权利要求34所述的方法,其中,所述至少一个输入包括多个输入;
其中确定下一状态的步骤包括:进一步基于与所述多个输入相关联的优先级来确定下一状态。
36.根据权利要求35所述的方法,其中,进一步基于与所述多个输入相关联的优先级来确定下一状态的步骤包括:进一步基于与所述多个输入相关联的次序来确定下一状态。
37.根据权利要求34所述的方法,还包括:
基于所述至少一个输入和存储在所述第一计算机可读介质上的状态转换数据中的至少一个来确定是否要发生状态转换;
确定下一状态的步骤包括:如果要发生状态转换,则确定下一状态;和
将状态机的当前状态设置为下一状态的步骤包括:如果要发生状态转换,则将状态机的当前状态设置为下一状态。
38.根据权利要求34所述的方法,其中,确定下一状态的步骤包括:确定,如果有的话,为特定值的至少一个输入的一个或多个。
39.根据权利要求38所述的方法,其中,确定下一状态的步骤进一步包括:确定,如果有的话,为特定值并且还对应于基于存储在所述第一计算机可读介质上的状态转换数据的状态改变的至少一个输入的一个或多个的一个或多个。
40.根据权利要求39所述的方法,还包括:选择,如果有的话,为特定值并对应于状态改变的至少一个输入的一个或多个中的一个。
41.根据权利要求40所述的方法,其中,所述至少一个输入包括多个输入;
其中,选择,如果有的话,为特定值并对应于状态改变的至少一个输入的一个或多个中的一个的步骤包括:基于与所述多个输入相关联的优先级进行选择。
42.根据权利要求41所述的方法,其中,选择,如果有的话,为特定值并对应于状态改变的至少一个输入的一个或多个中的一个的步骤包括:基于与所述多个输入相关联的次序进行选择。
43.根据权利要求34所述的方法,其中,确定下一状态的步骤包括:基于存储在所述第一计算机可读介质上的状态转换数据来确定,如果有的话,与从当前状态的潜在状态改变相关联的至少一个输入的一个或多个。
44.根据权利要求43所述的方法,其中,确定下一状态的步骤还包括:确定,如果有的话,与从当前状态的潜在状态改变相关联并还是特定值的至少一个输入的一个或多个的一个或多个。
45.根据权利要求34所述的方法,其中,提供至少一个功能块输出的步骤包括:提供多个功能块输出。
46.根据权利要求45所述的方法,其中,所述多个功能块输出中的至少一些的每一个指示状态机的当前状态是否对应于状态机的多个可能状态的相应一个。
47.根据权利要求45所述的方法,其中,提供所述多个功能块输出的步骤包括:
基于至少当前状态,从输出配置数据库中得到指示用于所述多种状态机功能块输出的至少一些的适当值的数据;和
将所述多个功能块输出的至少一些设置为所述适当值。
48.根据权利要求45所述的方法,其中,提供所述多个功能块输出的步骤包括:提供指示状态机的当前状态的一个功能块输出。
49.根据权利要求34所述的方法,其中,所述至少一个功能块输出包括指示状态机的当前状态的一个功能块输出。
50.根据权利要求34所述的方法,还包括:
接收指示是否要禁用状态机功能块的输入;和
如果指示是否要禁用状态机功能块的输入指示要禁用状态机功能块,则将状态机的当前状态设置为禁用状态。
51.根据权利要求50所述的方法,还包括:
接收指示是否要强制状态机功能块进入初始状态的输入;和
如果指示是否要强制状态机功能块进入初始状态的输入指示应该强制状态机功能块进入初始状态,则将状态机的当前状态设置为初始状态;
其中,指示是否要使能状态机功能块的输入和指示是否要强制状态机功能块进入初始状态的输入构成单个输入。
52.根据权利要求34所述的方法,还包括:
接收指示是否要强制状态机功能块进入初始状态的输入;和
如果指示是否要强制状态机功能块进入初始状态的输入指示应该强制状态机功能块进入初始状态,则将状态机的当前状态设置为初始状态。
53.根据权利要求34所述的方法,其中,接收至状态机功能块的至少一个数据输入的步骤包括:接收与进程控制系统、进程控制系统的仿真、安全系统和安全系统的仿真中的至少一个相关联的至少一个信号。
54.根据权利要求34所述的方法,其中,从与进程工厂相关联的至少一个其它功能块接收所述至少一个输入。
55.根据权利要求34所述的方法,其中,从操作员接收所述至少一个输入。
56.根据权利要求34所述的方法,其中,提供所述至少一个功能块输出的步骤包括:将所述至少一个功能块输出提供到进程控制系统的一部分,其中,所述进程控制系统的一部分至少部分地基于所述至少一个功能块输出来控制所述一个或多个现场设备。
57.根据权利要求34所述的方法,其中,提供所述至少一个功能块输出的步骤包括:将所述至少一个功能块输出提供到安全系统的一部分,其中,所述安全系统的一部分至少部分地基于所述至少一个功能块输出来控制所述一个或多个现场设备。
58.一种功能块实体,用于具有适用于控制一个或多个现场设备或适用于仿真对一个或多个现场设备的控制的处理器的进程工厂,该功能块实体包括:
用户可修改状态机配置数据库,其包含指示由功能块实现的状态机如何在多种状态之间进行转换的状态转换数据,其中,对于所述多种状态的至少一些的每个和至功能块的至少一个输入的一些的每个的至少一些可能配对的每一个,所述状态转换数据包括指示当状态机处于相应状态和相应输入为特定值时状态机应转换到的下一状态的数据;
第一计算机可读介质;
存储在所述第一计算机可读介质上的第一代码,用于接收所述至少一个输入,其中所述至少一个输入包括与进程工厂相关联的数据;
存储在所述第一计算机可读介质上的第二代码,用于确定状态机的下一状态,其中确定是至少部分地基于所述至少一个输入、状态机的当前状态和状态转换数据中的至少一个,所述第二代码是固定的;
存储在所述第一计算机可读介质上的第三代码,用于将状态机的当前状态设置到下一状态,其中所述第三代码是固定的;和
存储在所述第一计算机可读介质上的第四代码,用于提供用于控制所述一个或多个现场设备的至少一个功能块输出。
59.根据权利要求58所述的功能块实体,其中,所述状态机配置数据库存储在所述第一计算机可读介质上。
60.根据权利要求58所述的功能块实体,其中,所述状态机配置数据库存储在不同于所述第一计算机可读介质的第二计算机可读介质上。
61.根据权利要求58所述的功能块实体,其中,所述至少一个输入包括多个输入;
所述第二代码包括存储在所述第一计算机可读介质上的第五代码,用于进一步基于与所述多个输入相关联的优先级来确定下一状态。
62.根据权利要求61所述的功能块实体,其中,所述第五代码包括用于进一步基于与所述多个输入相关联的次序来确定下一状态的代码。
63.根据权利要求58所述的功能块实体,还包括:
存储在所述第一计算机可读介质上的第五代码,用于基于所述至少一个输入和状态转换数据中的至少一个来确定是否要发生状态转换;
其中,所述第二代码包括当要发生状态转换时确定下一状态的代码;和
所述第三代码包括当要发生状态转换时将状态机的当前状态设置为下一状态的代码。
64.根据权利要求58所述的功能块实体,其中所述第二代码包括存储在所述第一计算机可读介质上的第五代码,用于确定,如果有的话,为特定值的所述至少一个输入中的一个或多个。
65.根据权利要求64所述的功能块实体,其中,所述第二代码还包括存储在所述第一计算机可读介质上的第六代码,用于确定,如果有的话,为特定值并且还对应于至少部分地基于状态转换数据的状态改变的所述至少一个输入中的一个或多个的一个或多个。
66.根据权利要求65所述的功能块实体,还包括存储在所述第一计算机可读介质上的第七代码,用于如果存在为特定值并对应于从当前状态的状态改变的所述至少一个输入的至少一个,则选择,如果有的话,为特定值并对应于状态改变的所述至少一个输入的一个或多个之一。
67.根据权利要求66所述的功能块实体,其中,所述至少一个输入包括多个输入;
所述第七代码包括存储在所述第一计算机可读介质上的第八代码,用于基于与所述多个输入相关联的优先级来选择所述至少一个输入之一。
68.根据权利要求67所述的功能块实体,其中,所述第八代码包括基于与所述多个输入相关联的次序来选择所述多个输入之一的代码。
69.根据权利要求58所述的功能块实体,其中,所述第二代码包括存储在所述第一计算机可读介质上的第五代码,用于确定,如果有的话,可能基于存储在所述第二计算机可读介质上的状态转换数据引起从当前状态的状态改变的至少一个输入中的一个或多个。
70.根据权利要求69所述的功能块实体,其中,所述第二代码还包括存储在所述第一计算机可读介质上的第六代码,用于确定,如果有的话,可能引起状态改变并且也为特定值的至少一个输入的一个或多个的一个或多个。
71.根据权利要求58所述的功能块实体,其中,所述第四代码包括存储在所述第一计算机可读介质上的第五代码,用于提供多个功能块输出。
72.根据权利要求71所述的功能块实体,其中,所述第五代码包括用于提供指示状态机的当前状态是否对应于状态机的多个可能状态中的相应一个的多个功能块输出的至少一些的每个的代码。
73.根据权利要求71所述的功能块实体,其中,所述第五代码包括:
存储在所述第一计算机可读介质上的第六代码,用于基于至少当前状态从用户可配置输出配置数据库得到指示用于多种状态机功能块输出的至少一些的适当值的数据;和
存储在所述第一计算机可读介质上的第七代码,用于将多种状态机功能块输出的至少一些设置为所述适当值。
74.根据权利要求73所述的功能块实体,其中所述状态机配置数据库和输出配置数据库存储在同一计算机可读介质上。
75.根据权利要求73所述的功能块实体,其中所述状态机配置数据库和输出配置数据库存储在不同计算机可读介质上。
76.根据权利要求58所述的功能块实体,还包括:
存储在所述第一计算机可读介质上的第五代码,用于接收指示是否要禁用状态机功能块的输入;和
存储在所述第一计算机可读介质上的第六代码,用于如果指示是否要禁用状态机功能块的输入指示要禁用状态机功能块,则将状态机的当前状态设置为禁用状态。
77.根据权利要求58所述的功能块实体,还包括:
存储在所述第一计算机可读介质上的第五代码,用于接收指示是否要强制状态机功能块进入初始状态的输入;和
存储在所述第一计算机可读介质上的第六代码,用于如果指示是否要强制状态机功能块进入初始状态的输入指示要强制状态机功能块进入初始状态,则将状态机的当前状态设置为初始状态。
78.根据权利要求58所述的功能块实体,其中,所述至少一个数据输入包括与进程控制系统、进程控制系统的仿真、安全系统和安全系统的仿真中的至少一个相关联的至少一个信号。
79.根据权利要求58所述的功能块实体,还包括存储在所述第一计算机可读介质上的第五代码用于屏蔽,如果有的话,至少一个输入的一个或多个。
CN200410068672.2A 2003-09-05 2004-09-03 具有用户可修改的状态转换配置数据库的状态机功能块 Active CN1598723B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/656,005 US7730415B2 (en) 2003-09-05 2003-09-05 State machine function block with a user modifiable state transition configuration database
US10/656,005 2003-09-05

Publications (2)

Publication Number Publication Date
CN1598723A true CN1598723A (zh) 2005-03-23
CN1598723B CN1598723B (zh) 2014-07-09

Family

ID=33160005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410068672.2A Active CN1598723B (zh) 2003-09-05 2004-09-03 具有用户可修改的状态转换配置数据库的状态机功能块

Country Status (6)

Country Link
US (2) US7730415B2 (zh)
JP (1) JP4885435B2 (zh)
CN (1) CN1598723B (zh)
DE (1) DE102004042550B4 (zh)
GB (2) GB2405705B (zh)
HK (1) HK1074083A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009915B (zh) * 2006-01-26 2011-04-13 华为技术有限公司 媒体无关切换功能设备及其状态迁移方法
CN101408761B (zh) * 2007-10-09 2011-09-28 研华股份有限公司 输入/输出模块系统利用图形操作设定的方法
CN103728957A (zh) * 2014-01-15 2014-04-16 浙江大学 一种基于实时数据库的hart现场设备管理方法及系统
CN104298189A (zh) * 2013-07-09 2015-01-21 费希尔-罗斯蒙特系统公司 具有在状态间转换的用户可定义的动作的状态机功能块
CN104407591A (zh) * 2014-11-27 2015-03-11 杭州优稳自动化系统有限公司 一种基于实时数据库的Modbus设备主从站通讯管理方法及系统

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730415B2 (en) 2003-09-05 2010-06-01 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
US7500209B2 (en) * 2005-09-28 2009-03-03 The Mathworks, Inc. Stage evaluation of a state machine
US20070233865A1 (en) * 2006-03-30 2007-10-04 Garbow Zachary A Dynamically Adjusting Operating Level of Server Processing Responsive to Detection of Failure at a Server
US7496579B2 (en) * 2006-03-30 2009-02-24 International Business Machines Corporation Transitioning of database service responsibility responsive to server failure in a partially clustered computing environment
JP4671131B2 (ja) 2006-08-10 2011-04-13 横河電機株式会社 安全計装システム
US7761171B2 (en) 2006-09-29 2010-07-20 Fisher-Rosemount Systems, Inc. Methods and apparatus to generate schedules to execute functions in a process control system
US8005553B2 (en) 2006-09-29 2011-08-23 Fisher-Rosemount Systems, Inc. Automatic configuration of synchronous block execution for control modules run in fieldbus networks
US8656350B2 (en) * 2007-02-06 2014-02-18 Software Ag Event-based process configuration
US8812052B2 (en) 2007-02-27 2014-08-19 Qualcomm Incorporated SPS receiver with adjustable linearity
EP2183690A1 (en) * 2007-09-07 2010-05-12 ABB Technology AG Configuration of intelligent electronic device
DE102007043328A1 (de) * 2007-09-12 2009-03-19 Endress + Hauser Process Solutions Ag Verfahren zur Überwachung einer Prozessanlage mit einem Feldbus der Prozessautomatisierungstechnik
EP2169489B1 (en) * 2008-09-30 2012-08-01 Siemens Aktiengesellschaft Method for implementing production processes
US9231630B2 (en) * 2009-05-05 2016-01-05 San Diego, CA Radio device having dynamic intermediate frequency scaling
US9256219B2 (en) * 2009-08-11 2016-02-09 Fisher-Rosemount Systems, Inc. System configuration using templates
DE102009054230A1 (de) * 2009-11-23 2011-05-26 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Manipulatoren
US20110258125A1 (en) * 2010-04-16 2011-10-20 Vinay Rama Iyer Collaborative Social Event Planning and Execution
JP6038959B2 (ja) 2012-02-15 2016-12-07 ザ マスワークス, インクThe Mathworks, Inc. 状態機械モデルを記述する統合状態遷移表
WO2013123376A1 (en) * 2012-02-15 2013-08-22 The Mathworks, Inc. Unified state transition table describing a state machine model
JP2013207385A (ja) * 2012-03-27 2013-10-07 Toshiba Corp 状態遷移処理装置
US8744604B2 (en) * 2012-05-09 2014-06-03 Fisher Controls International Llc Method and apparatus for configuring a blackout period for scheduled diagnostic checks of a field device in a process plant
US20140280528A1 (en) * 2013-03-12 2014-09-18 Rockwell Automation Technologies, Inc. State machine configurator
US9777856B2 (en) 2013-12-12 2017-10-03 Regulator Technologies Tulsa, Llc Pressure vacuum relief valve
US9130566B1 (en) * 2014-09-24 2015-09-08 Xilinx, Inc. Programmable IC with power fault tolerance
US20160116894A1 (en) * 2014-10-28 2016-04-28 Flow Data, Inc. Control system with a network of controllers using linked cause-and-effect matrices
US10438144B2 (en) 2015-10-05 2019-10-08 Fisher-Rosemount Systems, Inc. Method and apparatus for negating effects of continuous introduction of risk factors in determining the health of a process control system
JP7227002B2 (ja) * 2015-10-09 2023-02-21 フィッシャー-ローズマウント システムズ,インコーポレイテッド プロセス制御システムの安全イベントの視覚化を経時的に提供するためのシステム及び方法
GB2545719B (en) * 2015-12-23 2018-06-06 Moog Unna Gmbh System and method for controlling a wind turbine
US10447078B2 (en) 2017-10-02 2019-10-15 Fisher-Rosemount Systems, Inc. Smart function block for integration of PLCS into a control system and methods for the same
US10545470B2 (en) 2017-11-10 2020-01-28 Rockwell Automation Technologies, Inc. Configurable mode model
KR102412088B1 (ko) * 2021-11-08 2022-06-22 (주) 바우디움 상태 기계에 의하여 작업의 진행 상황을 관리하는 방법 및 이를 이용한 장치

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4607256A (en) * 1983-10-07 1986-08-19 Honeywell, Inc. Plant management system
JPS61253503A (ja) 1985-05-02 1986-11-11 Mitsubishi Electric Corp シ−ケンス制御装置
JPS63293604A (ja) 1987-05-27 1988-11-30 Fuji Electric Co Ltd シ−ケンステ−ブル式制御装置
JPS6419170A (en) 1987-07-10 1989-01-23 Shinnensho System Kenkyusho High pressure air supply device for internal combustion engine
JPS6441004A (en) * 1987-08-07 1989-02-13 Mitsubishi Electric Corp Programmable sequence controller
GB9011700D0 (en) * 1990-05-25 1990-07-18 Inmos Ltd Communication interface
JPH0589069A (ja) * 1991-09-30 1993-04-09 Toshiba Corp 分散形制御システム
JPH05346810A (ja) * 1991-10-09 1993-12-27 Yaskawa Electric Corp プログラマブルコントローラの出力異常処理方式
JP3275450B2 (ja) 1993-04-30 2002-04-15 オムロン株式会社 故障診断方法および装置
US5594858A (en) * 1993-07-29 1997-01-14 Fisher-Rosemount Systems, Inc. Uniform control template generating system and method for process control programming
US5530643A (en) * 1993-08-24 1996-06-25 Allen-Bradley Company, Inc. Method of programming industrial controllers with highly distributed processing
JPH0798561A (ja) * 1993-09-29 1995-04-11 Yokogawa Electric Corp 分散形制御装置
US5576946A (en) * 1993-09-30 1996-11-19 Fluid Air, Inc. Icon based process design and control system
JPH08328613A (ja) * 1995-05-30 1996-12-13 Meidensha Corp シーケンス・プログラムの作成・データ設定方法
JPH09148852A (ja) * 1995-11-24 1997-06-06 Matsushita Electric Ind Co Ltd 送信出力可変装置
US5838563A (en) * 1996-04-12 1998-11-17 Fisher-Rosemont Systems, Inc. System for configuring a process control environment
US5768119A (en) * 1996-04-12 1998-06-16 Fisher-Rosemount Systems, Inc. Process control system including alarm priority adjustment
JP3550460B2 (ja) * 1996-04-25 2004-08-04 株式会社日立製作所 サーバレスプラント監視・制御装置
US5903886A (en) * 1996-04-30 1999-05-11 Smartlynx, Inc. Hierarchical adaptive state machine for emulating and augmenting software
US5845063A (en) * 1996-09-11 1998-12-01 Elsag International N.V. Signal status propagation in a distributed control system
US6029181A (en) * 1996-09-26 2000-02-22 Honeywell, Inc. System and method for translating visual display object files from non-component object model (COM) objects to COM objects
US5818736A (en) * 1996-10-01 1998-10-06 Honeywell Inc. System and method for simulating signal flow through a logic block pattern of a real time process control system
US6421069B1 (en) * 1997-07-31 2002-07-16 Sony Corporation Method and apparatus for including self-describing information within devices
US6219628B1 (en) * 1997-08-18 2001-04-17 National Instruments Corporation System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations
US6526566B1 (en) * 1997-11-14 2003-02-25 National Instruments Corporation Graphical programming system and method including nodes for programmatically accessing data sources and targets
US6239800B1 (en) * 1997-12-15 2001-05-29 International Business Machines Corporation Method and apparatus for leading a user through a software installation procedure via interaction with displayed graphs
JP3651742B2 (ja) * 1998-01-21 2005-05-25 株式会社東芝 プラント監視システム
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6448982B1 (en) * 1998-04-23 2002-09-10 Siemens Energy & Automation, Inc. System for graphically generating logic for a cause and effects matrix
US6157864A (en) * 1998-05-08 2000-12-05 Rockwell Technologies, Llc System, method and article of manufacture for displaying an animated, realtime updated control sequence chart
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
US6263255B1 (en) * 1998-05-18 2001-07-17 Advanced Micro Devices, Inc. Advanced process control for semiconductor manufacturing
US6289252B1 (en) 1998-08-31 2001-09-11 Fisher-Rosemount Systems, Inc. Distributed batch processing system and methods
US6505341B1 (en) * 1998-11-10 2003-01-07 Scientronix, Inc. System and method for programming a logic control unit
US6442512B1 (en) * 1998-10-26 2002-08-27 Invensys Systems, Inc. Interactive process modeling system
JP2002531899A (ja) * 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド プロセス監視用の状態モデル
US6369836B1 (en) * 1998-12-23 2002-04-09 Triconex Cause effect diagram program
US6718533B1 (en) * 1999-02-26 2004-04-06 Real-Time Innovations, Inc. Method for building a real-time control system with mode and logical rate
AU5025600A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US6577323B1 (en) * 1999-07-01 2003-06-10 Honeywell Inc. Multivariable process trend display and methods regarding same
US6901560B1 (en) * 1999-07-01 2005-05-31 Honeywell Inc. Process variable generalized graphical device display and methods regarding same
US6834370B1 (en) * 1999-07-08 2004-12-21 Osi Software, Inc. Method for creating master recipes
JP3819639B2 (ja) 1999-07-09 2006-09-13 株式会社東芝 プログラミング装置
US6993456B2 (en) * 1999-09-30 2006-01-31 Rockwell Automation Technologies, Inc. Mechanical-electrical template based method and apparatus
US6556950B1 (en) * 1999-09-30 2003-04-29 Rockwell Automation Technologies, Inc. Diagnostic method and apparatus for use with enterprise control
US6489971B1 (en) * 1999-12-07 2002-12-03 International Business Machines Corporation Graphical programming environment for deterministic finite state automata
CA2402280C (en) * 2000-03-10 2008-12-02 Cyrano Sciences, Inc. Control for an industrial process using one or more multidimensional variables
US7613599B2 (en) * 2000-06-02 2009-11-03 Synopsys, Inc. Method and system for virtual prototyping
JP3494215B2 (ja) * 2000-06-23 2004-02-09 栗田工業株式会社 プログラム制御装置
US6742165B2 (en) * 2001-03-28 2004-05-25 Mips Technologies, Inc. System, method and computer program product for web-based integrated circuit design
US6931288B1 (en) * 2001-04-16 2005-08-16 Rockwell Automation Technologies, Inc. User interface and system for creating function block diagrams
US6668203B1 (en) * 2001-04-26 2003-12-23 Sandia Corporation State machine analysis of sensor data from dynamic processes
US6735596B2 (en) * 2001-06-07 2004-05-11 Guy Charles Corynen Computer method and user interface for decision analysis and for global system optimization
WO2003003235A1 (en) 2001-06-27 2003-01-09 4 Media, Inc. Improved media delivery platform
JP2003177804A (ja) * 2001-09-28 2003-06-27 Nippon Koei Power Systems Co Ltd シーケンス制御プログラム生成方法、その方法をコンピュータに実行させるプログラムおよびシーケンス制御プログラム生成装置
US20030086520A1 (en) * 2001-11-07 2003-05-08 Russell William Earl System and method for continuous optimization of control-variables during operation of a nuclear reactor
US6993706B2 (en) * 2002-01-15 2006-01-31 International Business Machines Corporation Method, apparatus, and program for a state machine framework
US6941301B2 (en) * 2002-01-18 2005-09-06 Pavilion Technologies, Inc. Pre-processing input data with outlier values for a support vector machine
ATE328308T1 (de) 2002-04-23 2006-06-15 Tokyo Electron Ltd Verfahren und vorrichtung zur vereinfachten systemkonfiguration
US7050863B2 (en) 2002-09-11 2006-05-23 Fisher-Rosemount Systems, Inc. Integrated model predictive control and optimization within a process control system
US6915235B2 (en) * 2003-03-13 2005-07-05 Csi Technology, Inc. Generation of data indicative of machine operational condition
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7730415B2 (en) 2003-09-05 2010-06-01 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable state transition configuration database
US7269468B2 (en) * 2003-09-05 2007-09-11 Fisher-Rosemount Systems, Inc. State machine function block with a user modifiable output configuration database
US7487076B2 (en) * 2003-10-31 2009-02-03 The Mathworks, Inc. Simplified data signal support for diagramming environment languages

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009915B (zh) * 2006-01-26 2011-04-13 华为技术有限公司 媒体无关切换功能设备及其状态迁移方法
CN101408761B (zh) * 2007-10-09 2011-09-28 研华股份有限公司 输入/输出模块系统利用图形操作设定的方法
CN104298189A (zh) * 2013-07-09 2015-01-21 费希尔-罗斯蒙特系统公司 具有在状态间转换的用户可定义的动作的状态机功能块
US10274926B2 (en) 2013-07-09 2019-04-30 Fisher-Rosemount Systems, Inc. State machine function block with user-definable actions on a transition between states
CN104298189B (zh) * 2013-07-09 2019-09-27 费希尔-罗斯蒙特系统公司 具有在状态间转换的用户可定义的动作的状态机功能块
CN103728957A (zh) * 2014-01-15 2014-04-16 浙江大学 一种基于实时数据库的hart现场设备管理方法及系统
CN103728957B (zh) * 2014-01-15 2017-02-01 浙江大学 一种基于实时数据库的hart现场设备管理方法及系统
CN104407591A (zh) * 2014-11-27 2015-03-11 杭州优稳自动化系统有限公司 一种基于实时数据库的Modbus设备主从站通讯管理方法及系统

Also Published As

Publication number Publication date
CN1598723B (zh) 2014-07-09
GB2405705B (en) 2009-10-28
JP2005085271A (ja) 2005-03-31
GB0419583D0 (en) 2004-10-06
JP4885435B2 (ja) 2012-02-29
US20110270418A1 (en) 2011-11-03
US8600524B2 (en) 2013-12-03
GB2405705A (en) 2005-03-09
US20050055695A1 (en) 2005-03-10
DE102004042550B4 (de) 2023-03-09
DE102004042550A1 (de) 2005-05-19
GB0724070D0 (en) 2008-01-16
US7730415B2 (en) 2010-06-01
HK1074083A1 (en) 2005-10-28

Similar Documents

Publication Publication Date Title
CN1598723A (zh) 具有用户可修改的状态转换配置数据库的状态机功能块
CN1619443A (zh) 带有用户可修改输出配置数据库的状态机功能块
JP6820306B2 (ja) 有形媒体
JP4769427B2 (ja) ブール論理機能ブロック
US7853336B2 (en) Dynamic versioning utilizing multiple controller engine instances to limit complications
US7778713B2 (en) Construction of an industrial control system using multiple instances of industrial control engines
US20140280528A1 (en) State machine configurator
CN1720526A (zh) 将设备数据输入到加工厂中的数据库系统的方法和装置
CN108139726A (zh) 用于提供过程控制系统随时间的安全事件的可视化的系统和方法
CN111095195B (zh) 控制器、控制方法以及存储介质
CN111095194B (zh) 控制系统、控制器以及控制方法
US7778714B2 (en) On-line editing associated with controller engine instances
JP4324960B2 (ja) 多変数予測制御システム
CN101750992B (zh) 一种应用于可编程序控制器的通用顺序控制算法
CN116700134B (zh) 一种可以简化代码的工业数控方法
Fay A knowledge-based system to translate control system applications
Guo et al. Software design and modules development of the expressway tunnel monitoring system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant