非冗余输入/输出(I/O)固件的过程中迁移的制作方法

文档序号:17439237发布日期:2019-04-17 04:32阅读:147来源:国知局
非冗余输入/输出(I/O)固件的过程中迁移的制作方法

本公开整体涉及工业过程控制和自动化系统。更具体地讲,本公开涉及非冗余输入/输出(i/o)固件的过程中迁移。



背景技术:

工业过程控制和自动化系统通常用于使大型且复杂的工业过程自动化。这些类型的控制和自动化系统例行地包括过程控制器和现场设备,比如传感器和致动器。过程控制器典型地从传感器接收测量值并且生成用于致动器的控制信号。在许多系统中,过程控制器包括一个或多个输入/输出(i/o)模块或与其一起使用,模块中的每个可用于向一个或多个现场设备提供信号并且从一个或多个现场设备接收信号。

用于i/o模块的一种流行的硬件体系结构使用单个微处理器。在i/o模块的微处理器的固件升级期间或者在固件升级之后i/o模块的微处理器的重置期间,i/o模块的微处理器不能发送或接收信号。不幸的是,这可能导致对其相关联现场设备完全丧失观察或控制。除其他问题之外,包括单个微处理器i/o模块的非冗余过程控制器在i/o模块的微处理器的引导故障期间不能执行故障保护动作,这可能在固件升级后微处理器无法引导时发生。因此,在过程控制器的i/o模块的固件升级期间,通常需要关闭部分或全部工业过程,从而导致生产损失和相关联的金钱损失。虽然可以在控制和自动化系统中合并多个冗余过程控制器或i/o模块,但这会增加整个系统的复杂性和成本,并且在系统中并不总是可以具有冗余过程控制器或i/o模块。



技术实现要素:

本公开提供非冗余输入/输出(i/o)固件的过程中迁移。

在第一实施方案中,方法包括在输入/输出模块(iom)的第一处理设备处接收iom的新固件数据。该方法还包括从第一处理设备向iom的第二处理设备发送输出保持命令。该方法还包括使用第一处理设备利用新固件数据来升级iom的固件,并且尝试重新引导第一处理设备。此外,该方法包括,响应于输出保持命令并且在固件的升级和第一处理设备的重新引导期间,使用第二处理设备使iom的场电路为一个或多个外部设备保持至少一个先前输出信号。

在第二实施方案中,装置被配置用于与iom的第一处理设备一起使用。装置包括第二处理设备,该第二处理设备被配置为从第一处理设备接收输出保持命令。第二处理设备还被配置为,响应于输出保持命令并且在通过第一处理设备升级iom中的固件期间以及在第一处理设备的重新引导期间,使iom的场电路为一个或多个外部设备保持至少一个先前输出信号。

在第三实施方案中,系统包括iom,该iom被配置为从至少一个外部设备接收一个或多个输入信号并且/或者向至少一个外部设备提供一个或多个输出信号。iom包括第一处理设备、第二处理设备、以及场电路,该场电路被配置为接收一个或多个输入信号并且/或者提供一个或多个输出信号。第一处理设备被配置为接收iom的新固件数据,向第二处理设备发送输出保持命令,利用新固件数据升级iom的固件,并且尝试重新引导。第二处理设备被配置为,响应于输出保持命令并且在固件的升级和第一处理设备的重新引导期间,使场电路为至少一个外部设备保持至少一个先前输出信号。

在第四实施方案中,非暂态计算机可读介质包含用于结合iom的第一处理设备使用的指令。当由iom的第二处理设备执行时,指令被配置为使第二处理设备从第一处理设备接收输出保持命令。当由iom的第二处理设备执行时,指令还被配置为使得第二处理设备,响应于输出保持命令并且在通过第一处理设备升级iom中的固件期间以及在第一处理设备的重新引导期间,使iom的场电路为一个或多个外部设备保持至少一个先前输出信号。

从以下附图、描述和权利要求,其他技术特征对于本领域技术人员而言可以是显而易见的。

附图说明

为了更完整地理解本公开及其特征,现在参考以下结合附图来进行的描述,其中:

图1示出了根据本公开的示例性工业过程控制和自动化系统;

图2和图3示出了根据本公开的支持非冗余i/o固件的过程中迁移的示例性i/o模块;

图4示出了根据本公开的在非冗余过程控制器中的成功固件升级期间的示例性过程;并且

图5示出了根据本公开的在非冗余过程控制器中的失败固件升级期间的示例性过程。

具体实施方式

下文讨论的图1至图5,以及用于描述本发明在该专利文献中的原理的各种示例仅以例证的方式进行,并且不应理解为限制本发明的范围。本领域的技术人员将理解,本发明的原理可以以任何合适的方式并且在任何类型的适当布置的设备或系统中实现。

图1示出了根据本公开的示例性工业过程控制和自动化系统100。如图1所示,系统100包括促进生产或加工至少一种产品或其他材料的各种部件。例如,系统100在此处用于促进对一个或多个厂房101a-101n中的部件的控制。每个厂房101a-101n表示一个或多个加工设施(或其一个或多个部分),诸如用于生产至少一种产品或其他材料的一个或多个制造设施。一般来讲,每个厂房101a-101n可实现一个或多个过程并且可以单独地或共同地称为过程系统。过程系统通常表示被配置为以某种方式加工一种或多种产品或其他材料的任何系统或其部分。

在图1中,系统100使用过程控制的purdue模型实现。在purdue模型中,“0级”可包括一个或多个传感器102a和一个或多个致动器102b。传感器102a和致动器102b表示过程系统中可执行多种功能中的任一种功能的部件。例如,传感器102a可测量过程系统中的多种特性,诸如温度、压力、或流量。另外,致动器102b可改变过程系统中的多种特性。传感器102a和致动器102b可表示任何合适的过程系统中的任何其他或附加部件。传感器102a中的每个传感器包括用于测量过程系统中的一个或多个特性的任何合适的结构。致动器102b中的每个致动器包括用于在过程系统中操作或影响一个或多个条件的任何合适的结构。

至少一个网络104耦接到传感器102a和致动器102b。网络104有利于与传感器102a和致动器102b的交互。例如,网络104可传输来自传感器102a的测量数据并向致动器102b提供控制信号。网络104可表示任何合适的网络或网络的组合。作为特定示例,网络104可表示以太网网络、电信号网络(诸如hart或基金会现场总线网络)、气动控制信号网络,或任何其他或附加类型(一种或多种)的网络(一个或多个)。

在purdue模型中,“1级”可包括一个或多个控制器106,该控制器耦接到网络104。除了其他以外,每个控制器106可使用来自一个或多个传感器102a的测量值以控制一个或多个致动器102b的操作。例如,控制器106可从一个或多个传感器102a接收测量数据,并且使用测量数据为一个或多个致动器102b生成控制信号。每个控制器106包括用于与一个或多个传感器102a交互并且控制一个或多个致动器102b的任何合适的结构。每个控制器106可例如表示多变量控制器,例如鲁棒多变量预测控制技术(rmpct)控制器或实现模型预测控制(mpc)或其他高级预测控制(apc)的其他类型的控制器。作为特定示例,每个控制器106可表示运行实时操作系统的计算设备。

两个网络108耦接到控制器106。网络108促进与控制器106的交互,诸如通过向控制器106传输数据以及从控制器106传输数据。网络108可表示任何合适的网络或网络的组合。作为特定示例,网络108可表示一对以太网网络或一对冗余的以太网网络,诸如来自霍尼韦尔国际公司(honeywellinternationalinc.)的容错以太网(fte)网络。

至少一个交换机/防火墙110将网络108耦接到两个网络112。交换机/防火墙110可将流量从一个网络传输到另一个网络。交换机/防火墙110还可以阻止一个网络上的流量到达另一个网络。交换机/防火墙110包括用于在网络之间提供通信的任何合适的结构,诸如霍尼韦尔控制防火墙(cf9)设备。网络112可表示任何合适的网络,诸如一对以太网网络或fte网络。

在purdue模型中,“2级”可包括耦接到网络112的一个或多个机器级控制器114。机器级控制器114执行各种功能以支持可与特定的工业设备(诸如锅炉或其他机器)相关联的控制器106、传感器102a和致动器102b的操作和控制。例如,机器级控制器114可记录由控制器106收集或生成的信息,诸如来自传感器102a的测量数据或用于致动器102b的控制信号。机器级控制器114还可以执行控制控制器106的操作的应用程序,从而控制致动器102b的操作。此外,机器级控制器114可提供对控制器106的安全访问。机器级控制器114中的每个包括用于提供对机器或其他单独设备的访问、控制、或与其相关的操作的任何合适的结构。机器级控制器114中的每个可例如表示运行microsoftwindows操作系统的服务器计算设备。尽管未示出,但是不同的机器级控制器114可用于控制过程系统中的不同设备(其中每个设备与一个或多个控制器106、传感器102a和致动器102b相关联)。

一个或多个操作员站116耦接到网络112。操作员站116表示提供对机器级控制器114的用户访问的计算或通信设备,该设备然后可提供对控制器106(以及可能的传感器102a和致动器102b)的用户访问。作为特定示例,操作员站116可允许用户使用由控制器106和/或机器级控制器114收集的信息来查看传感器102a和致动器102b的操作历史。操作员站116还可允许用户调整传感器102a、致动器102b、控制器106或机器级控制器114的操作。此外,操作员站116可接收并显示由控制器106或机器级控制器114生成的警告、警示或其他消息或显示。操作员站116中的每个包括用于支持对系统100中的一个或多个部件的用户访问和控制的任何合适的结构。操作员站116中的每个可例如表示运行microsoftwindows操作系统的计算设备。

至少一个路由器/防火墙118将网络112耦接到两个网络120。路由器/防火墙118包括用于在网络之间提供通信的任何合适的结构,诸如安全路由器或组合路由器/防火墙。网络120可表示任何合适的网络,诸如一对以太网网络或fte网络。

在purdue模型中,“3级”可包括耦接到网络120的一个或多个单元级控制器122。每个单元级控制器122典型地与过程系统中的单元相关联,该单元表示一起操作以实现过程的至少一部分的不同机器的集合。单元级控制器122执行各种功能以支持较低级别中的部件的操作和控制。例如,单元级控制器122可记录由较低级别中的部件收集或生成的信息,执行控制较低级别中的部件的应用程序,并且提供对较低级别中的部件的安全访问。单元级控制器122中的每个包括用于提供对处理单元中的一个或多个机器或其他设备的访问、控制、或与其相关的操作的任何合适的结构。单元级控制器122中的每个可例如表示运行microsoftwindows操作系统的服务器计算设备。尽管未示出,但是不同的单元级控制器122可用于控制过程系统中的不同单元(其中每个单元与一个或多个机器级控制器114、控制器106、传感器102a和致动器102b相关联)。

可由一个或多个操作员站124提供对单元级控制器122的访问。操作员站124中的每个包括用于支持对系统100中的一个或多个部件的用户访问和控制的任何合适的结构。操作员站124中的每个可例如表示运行microsoftwindows操作系统的计算设备。

至少一个路由器/防火墙126将网络120耦接到两个网络128。路由器/防火墙126包括用于在网络之间提供通信的任何合适的结构,诸如安全路由器或组合路由器/防火墙。网络128可表示任何合适的网络,诸如一对以太网网络或fte网络。

在purdue模型中,“4级”可包括耦接到网络128的一个或多个厂房级控制器130。每个厂房级控制器130典型地与厂房101a-101n中的一个相关联,该厂房可包括实现相同、相似或不同过程的一个或多个处理单元。厂房级控制器130执行各种功能以支持对较低级别中的部件的操作和控制。作为特定示例,厂房级控制器130可执行一个或多个制造执行系统(mes)应用程序、调度应用程序、或者其他或附加厂房或过程控制应用程序。厂房级控制器130中的每个包括用于提供对加工厂房中的一个或多个处理单元的访问、控制、或与其相关的操作的任何合适的结构。厂房级控制器130中的每个可例如表示运行microsoftwindows操作系统的服务器计算设备。

可由一个或多个操作员站132提供对厂房级控制器130的访问。操作员站132中的每个包括用于支持对系统100中的一个或多个部件的用户访问和控制的任何合适的结构。操作员站132中的每个可例如表示运行microsoftwindows操作系统的计算设备。

至少一个路由器/防火墙134将网络128耦接到一个或多个网络136。路由器/防火墙134包括用于在网络之间提供通信的任何合适的结构,诸如安全路由器或组合路由器/防火墙。网络136可表示任何合适的网络,诸如企业型以太网或其他网络,或者更大型网络(诸如互联网)的全部或一部分。

在purdue模型中,“5级”可包括耦接到网络136的一个或多个企业级控制器138。每个企业级控制器138典型地能够执行多个厂房101a-101n的规划操作并控制厂房101a-101n的各个方面。企业级控制器138还可执行各种功能以支持对厂房101a-101n中的部件的操作和控制。作为特定示例,企业级控制器138可执行一个或多个订单处理应用程序、企业资源规划(erp)应用程序、高级规划和调度(aps)应用程序、或者任何其他或附加企业控制应用程序。企业级控制器138中的每个包括用于提供对一个或多个厂房的控制的访问、控制、或与其相关的操作的任何合适的结构。企业级控制器138中的每个可例如表示运行microsoftwindows操作系统的服务器计算设备。在该文献中,术语“企业”是指具有要管理的一个或多个厂房或其他加工设施的组织。应当注意,如果要管理单个厂房101a,则企业级控制器138的功能可被结合到厂房级控制器130中。

可由一个或多个操作员站140提供对企业级控制器138的访问。操作员站140中的每个包括用于支持对系统100中的一个或多个部件的用户访问和控制的任何合适的结构。操作员站140中的每个可例如表示运行microsoftwindows操作系统的计算设备。

purdue模型的各个级别可包括其他部件,诸如一个或多个数据库。与每个级别相关联的一个或多个数据库可存储与该级别或系统100的一个或多个其他级别相关联的任何合适的信息。例如,数据库141可被耦接到网络136。数据库141可表示存储关于系统100的各种信息的部件。数据库141可例如存储在生产调度和优化期间使用的信息。数据库141表示用于存储和促进信息检索的任何合适的结构。虽然被示为耦接到网络136的单个集中式部件,但数据库141可位于系统100中的其他位置,或多个数据库可分布于系统100中的不同位置。

在特定实施方案中,图1中的各种控制器和操作员站可表示计算设备。例如,控制器中的每个可包括一个或多个处理设备142以及用于存储由一个或多个处理设备142使用、生成或收集的指令和数据的一个或多个存储器144。控制器中的每个还可包括至少一个网络接口146,诸如一个或多个以太网接口或无线收发器。另外,操作员站中的每个可包括一个或多个处理设备148以及用于存储由一个或多个处理设备148使用、生成或收集的指令和数据的一个或多个存储器150。操作员站中的每个还可包括至少一个网络接口152,诸如一个或多个以太网接口或无线收发器。

如上所述,各种类型的过程控制器用于与现场设备交互并且控制现场设备。过程控制器通常包括输入/输出(i/o)模块或者与输入/输出(i/o)模块一起使用,该输入/输出模块用于从现场设备接收输入信号并向现场设备提供输出信号。用于i/o模块的一种流行的硬件体系结构使用单个微处理器。然而,对于非冗余过程控制器,通常难以或不可能用单个微处理器体系结构升级i/o模块的固件,同时保持对相关联现场设备的观察或控制。

根据本公开,系统100中的至少一个控制器(诸如控制器106中的一个或多个)包括支持非冗余i/o固件的过程中迁移的一个或多个i/o模块154或与其一起使用。如下更详细地所述,每个i/o模块154可包括中央处理单元(cpu)或其他处理设备、场电路和场控制器。场电路与一个或多个现场设备通信,并且处理设备与过程控制器通信。场控制器指示i/o模块154内的独立处理实体,并且用于在i/o模块的处理设备重新引导到新固件时保持i/o模块154的输出。i/o模块154的场电路可因此由i/o模块154的处理设备和场控制器控制。

在i/o模块的处理设备的固件升级期间或在固件升级之后i/o模块的处理设备的重置期间,i/o模块的处理设备可能无法发送或接收信号。因此,i/o模块的处理设备可能无法与i/o模块154的场电路交互。然而,i/o模块154的场控制器继续与场电路通信,并且可控制由场电路输出的一个或多个信号。以这种方式,i/o模块154的场控制器可在为i/o模块的处理设备提供固件升级时间的同时执行故障保护或其他动作。这使得过程控制器能够保持在“过程中”状态,并且避免依赖于该过程控制器关闭部分或全部工业过程。下面提供了关于i/o模块的该过程中迁移的附加细节。

虽然图1示出了工业过程控制和自动化系统100的一个示例,但可对图1作出各种改变。例如,控制系统可包括任何数量的传感器、致动器、控制器、服务器、操作员站、网络和其他部件。另外,图1中的系统100的组成和布置方式仅用于例示。部件可根据特定需要添加、省略、组合、或以任何其他合适的配置放置。此外,特定功能已被描述为由系统100的特定部件执行。这仅用于例示。一般来讲,过程控制和自动化系统是高度可配置的,并且可根据特定需要以任何合适的方式配置。此外,虽然图1示出了其中可使用非冗余i/o固件的过程中迁移的一个示例性环境,但是该功能可用于任何其他合适的设备或系统中,并且不要求设备或系统用于工业过程控制。

图2和图3示出了根据本公开的支持非冗余i/o固件的过程中迁移的示例性i/o模块154。为了便于解释,图2和图3中的i/o模块154被示为与现场设备(传感器102a和致动器102b)和图1的过程控制器106一起使用。在特定实施方案中,过程控制器106可指示非冗余可编程逻辑控制器(plc),该控制器通常用于一个或多个工业过程的自动化。然而,i/o模块154可与任何其他合适的设备一起使用,并且用于任何其他合适的系统中。另外,应当注意,虽然i/o模块154在此示出为驻留在过程控制器106外部,但是过程控制器106还可包括一个或多个i/o模块154。

如图2所示,i/o模块154包括场电路202,该场电路与一个或多个现场设备通信并且将场信号204交换到一个或多个现场设备而且从一个或多个现场设备交换场信号204。场信号204可包括输入信号,诸如来自一个或多个传感器的传感器测量值。场信号204还可包括输出信号,诸如用于一个或多个致动器的控制信号。场信号204可采取各种形式,诸如模拟输入(ai)信号、模拟输出(ao)信号、数字输入(di)信号和数字输出(di)信号。根据其实现和使用,场电路202可传输或接收任何数量的输入信号和/或任何数量的输出信号。

场电路202包括用于发送和接收场信号204的电路。例如,场电路202可包括用于从一个或多个现场设备接收ai或di信号的电路以及用于将ao或do信号传输到一个或多个现场设备的电路。当然,任何其他或附加信号可由场电路202支持。在一些实施方案中,诸如当场电路202包括用于ai、ao、di和do信号的专用电路时,场电路202中使用的电路可根据要从场电路202发送或由场电路202接收的信号(一个或多个)的类型(一种或多种)而变化。在其他实施方案中,场电路202可包括可重新配置的电路(诸如通用i/o或“uio”电路),该电路允许相同电路用于传输或接收不同类型的信号。例如,相同电路可被重新配置为支持ai、ao、di和do信号。可重新配置i/o电路的示例性类型在美国专利8,072,098、美国专利8,392,626、美国专利8,656,065,以及美国专利公开2015/0278144中示出(所有专利据此全文以引用方式并入)。支持霍尼韦尔国际公司(honeywellinternationalinc)的通用信道技术的i/o模块也适用于此处。

i/o模块154也包括cpu或其他处理设备206。处理设备206支持过程控制器106和现场设备之间的数据通信。例如,处理设备206可从过程控制器106接收信号,对信号执行任何必要的处理,并且将信号提供给场电路202以便传输到现场设备。处理设备206还可从现场设备接收信号,对信号执行任何必要的处理,并且将信号提供给过程控制器106。处理设备206可通过至少一个通信接口208与过程控制器106通信,并且通过至少一个通信接口210与场电路202通信。在一些实施方案中,通信接口208可用于将新固件下载到处理设备206。处理设备206包括被配置为在i/o模块中操作并控制i/o模块的任何合适的结构,诸如微处理器、微控制器、现场可编程门阵列(fpga)、或专用集成电路(asic)。另外,此处可使用任何合适的通信接口208-210。

场电路202由处理设备206控制,因此场电路202可以不是自主的并且可能不具有任何计算机处理能力。因此,在没有任何其他事项的情况下,当处理设备206断电、重启或以其他方式不能向场电路202发送信号或从场电路202接收信号时,场电路202可能无法执行任何功能(诸如驱动输出或采样输入)。由于i/o模块154可包括单个处理设备206,因此处理设备206的任何固件升级都可能导致通过i/o模块154与现场设备通信的能力完全丧失。此外,如果固件无法成功升级(诸如当处理设备在固件下载后无法引导),则过程中固件升级过程可能要求i/o模块的输出进入故障保护条件。由于没有其他元件来控制场电路,因此在常规单个微处理器i/o模块中的引导故障期间执行故障保护动作可能是不可能的。

为了补救该问题或其他问题,i/o模块154将i/o控制功能划分为(i)由处理设备206处理的功能和(ii)由场控制器212处理的功能。场控制器212连接在处理设备206和场电路202之间。场控制器212表示i/o模块154内的独立处理实体,并且可执行诸如输出保持或故障保护操作之类的功能。例如,当处理设备206升级其固件并重新引导到新固件中时,场控制器212可通过场电路202将输出驱动到致动器102b,并且场控制器212可从传感器102a接收和/或采样输入。如果处理设备206无法成功引导到新固件中,则场控制器212可通过场电路202将适当的输出驱动到现场设备。

以这种方式,处理设备206有时间执行固件升级和重新引导,或者如果处理设备206在固件升级后未能正确引导,则可以采取其他合适的动作。例如,场控制器212允许i/o模块154重新引导,防止场电路202的输出在处理设备206重新引导时被关断,并且在重新引导期间驱动或保持场电路202的输出而且直到处理设备206重新建立其导通状态(这意味着其成功地执行新固件)。由于此,在固件升级期间对工业过程的控制可能几乎没有中断或没有中断。此外,这可在无需使用冗余过程控制器或i/o模块的情况下实现。

场控制器212包括被配置为执行与i/o模块相关的一些i/o功能的任何合适的处理设备。例如,场控制器212可指示fpga或asic。在其中i/o模块支持使用通用i/o或uio信道的一些实施方案中,i/o模块可包括fpga、asic、或用于控制i/o信道的配置的其他设备。在这些实施方案中,可补充fpga、asic或其他设备以执行场控制器212的i/o功能。这可以允许场控制器212更容易且低成本地并入i/o模块中。

场控制器212通过通信接口210与处理设备206通信,并通过至少一个通信接口214与场电路202通信。通信接口214包括任何合适的接口,诸如串行外围接口(spi)接口或通用i/o(gpio)接口。

在操作期间,场控制器212可驱动场电路202以将其输出保持在某些状态,同时处理设备206升级其固件并重新引导。场控制器212还可包括故障保护定时器216,该定时器可用于检测固件升级期间何时经过了指定的时间段。故障保护定时器216允许场控制器212检测处理设备206是否已在指定的时间段内成功地重新引导,并且如果没有成功地引导设备则执行相同或附加故障保护操作。

如图3所示,多个i/o模块154也可与相同的过程控制器106一起使用。在一些实施方案中,图3中所示的i/o模块154中的每个可具有相同或相似的结构。在其他实施方案中,图3中所示的不同i/o模块154可具有不同的结构。例如,不同i/o模块154可以具有限定不同类型的输入或输出的场电路202。作为另一个示例,并非所有i/o模块154都可能需要使用场控制器212。

尽管图2和图3示出了支持非冗余i/o固件的过程中迁移的i/o模块154的示例,但是可以对图2和图3进行各种改变。例如,图2和图3中所示的每个部件可以通过任何合适的硬件或硬件和软件/固件指令的组合来实现。另外,诸如当i/o模块154的一个或多个部件放置在过程控制器106内时,可以根据需要或期望重新布置各种部件。此外,虽然被示为与传感器、致动器和过程控制器一起使用,但i/o模块154可与任何其他合适的外部设备一起使用。

图4示出了根据本公开的在非冗余过程控制器中的成功固件升级期间的示例性过程400。为了便于解释,过程400被描述为使用图2和图3的i/o模块154与图1的系统100中的过程控制器106来实现。然而,过程400可与任何其他合适的设备一起使用,并且用于任何其他合适的系统中。

如图4所示,在开始固件升级之前,过程控制器106操作以控制工业过程。在该时间期间,过程控制器106(周期性地或在其他时间)将输出命令402发送到i/o模块154。i/o模块154的处理设备206将对应的输出命令404发送到场控制器212,该场控制器将输出控制信号406发送到场电路202以便递送到一个或多个现场设备。在任何时间长度的过程期间,这可能会发生任何次数。

在某一时刻,i/o模块154从过程控制器106接收一个或多个固件升级命令408(可能还有一个或多个输出命令),并且i/o模块154的处理设备206作为响应进入固件升级模式。在该示例中,固件升级模式包括两个阶段,即下载新固件,然后将处理设备206重置到新下载的固件中。在第一阶段期间,处理设备206可继续从过程控制器106接收输出命令,并且处理设备206和场控制器212可根据i/o模块154的旧固件分别继续发送输出命令410和输出控制信号412。

固件升级命令408可包括新固件数据,该新固件数据由处理设备206保存414。新固件数据的保存可在任何合适的时间进行。可从固件升级命令408中提取新固件并将其存储在诸如处理设备206的内部存储器中或i/o模块154的另一存储器中。任选地,处理设备206可向过程控制器106发送指示,确认固件数据是否被成功保存。同样,应当注意,在该时间期间i/o模块154仍然使用旧固件运行。

过程控制器106最终将固件升级保存命令416发送到i/o模块154。在一些实施方案中,过程控制器106响应于从处理设备206接收到确认新固件数据成功保存在i/o模块154处的指示而发送固件升级保存命令416。固件升级保存命令416使处理设备206重置和升级其固件。

响应于接收到固件升级保存命令416,处理设备206将输出保持命令418发送到场控制器212,并且场控制器212将保持输出控制信号420发送到场电路202。处理设备206执行固件升级过程422以升级到新固件并尝试重新引导。在一些实施方案中,一旦发送输出保持命令418,处理设备206就开始固件升级过程422。在特定实施方案中,固件升级过程422包括将新固件写入闪存存储器或处理设备206的其他存储器。输出保持命令418使场控制器212进入模式424,其中场控制器212停止更新输出控制命令并保持(继续应用)最后接收的输出控制命令。场控制器212可将保持输出维持一段时间,诸如处理设备206重新引导到新下载的固件中的时段。尽管未示出(因为此处固件升级成功),但是场控制器212的故障保护定时器216可用于验证处理设备206是否在期望的时间段内成功地重新引导。

一旦处理设备206成功地重新引导到新下载的固件中,过程控制器106便将附加输出命令426发送到i/o模块154。作为响应,处理设备206将对应的输出命令428发送到场控制器212,该场控制器停止保持其输出并将新的输出控制信号430发送到场电路202。在一些实施方案中,在发送附加输出命令426之前,过程控制器106可等待一段时间(诸如处理设备206重新引导到新下载的固件中的预期时段)。在其他实施方案中,在发送附加输出命令426之前,过程控制器106可查验或以其他方式查询i/o模块154以查看处理设备206是否已成功地重新引导。在该时段期间使用新固件进行由i/o模块154执行的功能。

图5示出了根据本公开的在非冗余过程控制器中的失败固件升级期间的示例性过程500。为了便于解释,过程500被描述为使用图2和图3的i/o模块154与图1的系统100中的过程控制器106来实现。然而,过程500可与任何其他合适的设备一起使用,并且用于任何其他合适的系统中。

在图5中,除了图5中的固件升级过程522不成功之外,操作502-524可以以与图4中的对应操作402-424相同或相似的方式进行。这可能出于多种原因而发生,诸如不能将新固件正确地存储在处理设备206的存储器中或者处理设备206不能成功地重新引导。因此,固件升级失败526,并且来自过程控制器106的附加输出命令528不能由处理设备206转发530。

如图5所示,在某一时刻532(诸如响应于接收到输出保持命令518并且在升级过程522之前),场控制器212启动故障保护定时器216并且将故障保护标志设置为off值。如上所述,这些相同的操作可在图4中进行,但是为了清楚起见省略,因为图4示出了成功的固件升级。故障保护定时器216可被配置为在指定的时间段到期时超时,诸如处理设备206将重新引导到新下载的固件中的预期时段。

场控制器212然后等待并检测534在故障保护定时器216超时之前没有从处理设备206接收到新的输出命令。场控制器212因此可确定固件升级尚未成功。因此,场控制器212确定536其需要将故障保护标志设置为on值并且通过场电路202驱动故障保护输出控制信号538。当场控制器212输出故障保护控制信号538时,这使得现场设备进入将不会危及生命或财产的状态。可以以任何合适的方式控制场控制器212的确切故障保护配置,诸如通过使处理设备206将故障保护配置和故障保护超时编程到场控制器212中。应当注意,场控制器212可保持在故障保护模式中,直到该模式被用户或更高级别的设备覆盖。

尽管图4和图5示出了在非冗余过程控制器中成功和不成功的固件升级期间的过程400和500的示例,但是可以对图4和图5进行各种改变。例如,虽然示出为一系列步骤,但是每个图中的各个步骤可以重叠、并行发生、以不同顺序发生,或者发生任何次数。

在一些实施方案中,本专利文献中描述的各种功能由计算机程序实现或支持,该计算机程序由计算机可读程序代码形成并且体现在计算机可读介质中。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(rom)、随机存取存储器(ram)、硬盘驱动器、压缩光盘(cd)、数字视频光盘(dvd)、或任何其他类型的存储器。“非暂态”计算机可读介质排除了传输瞬时电信号或其他信号的有线、无线、光学或其他通信链路。非暂态计算机可读介质包括其中可永久存储数据的介质以及其中可存储和稍后重写数据的介质,诸如可重写光盘或可擦除存储器设备。

阐述本专利文献中通篇使用的某些字词和短语的定义可能是有利的。术语“应用程序”和“程序”是指适于以合适的计算机代码(包括源代码、目标代码或可执行代码)实现的一个或多个计算机程序、软件部件、指令集、过程、功能、对象、类、实例、相关数据、或其一部分。术语“通信”及其派生词涵盖直接通信和间接通信两者。术语“包括”和“包含”及其派生词意指包含但不限于此。术语“或”是包含性的,意指和/或。短语“与…相关联”及其派生词可意指包括、包括在…内、与…互连、包含、包含在…内、连接到…或与…连接、耦接到…或与…耦接、与…通信、与…配合、交错、并置、与…接近、结合到…或与…结合、具有、具有…的特性、具有与…的关系或与…具有关系等。当与项目列表一起使用时,短语“…中的至少一个”意指可使用所列项目中的一个或多个的不同组合,并且可能仅需要列表中的一个项目。例如,“a、b和c中的至少一个”包括以下组合中的任一个:a,b,c,a和b,a和c,b和c,以及a和b和c。

不应将本申请中的描述解读为暗示任何特定元件、步骤或功能是必须包括在权利要求范围内的必要或关键要素。专利保护的主题的范围仅由允许的权利要求定义。此外,权利要求都未关于所附权利要求或权利要求要素中的任何一项援引35u.s.c.§112(f),除非在特定权利要求中明确使用后面是标识功能的分词短语的“用于…的装置”或“用于…的步骤”的确切字词。在权利要求中使用术语,诸如(但不限于)“机制”、“模块”、“设备”、“单元”、“部件”、“元件”、“构件”、“装置”、“机器”、“系统、“处理器”或“控制器”被理解为并且旨在指代相关领域的技术人员已知的结构,如通过权利要求本身的特征进一步修改或增强的,并且不旨在援引35u.s.c.§112(f)。

虽然本公开已经描述了某些实施方案和通常相关联的方法,但是这些实施方案和方法的改变和置换对于本领域的技术人员而言将是显而易见的。因此,示例性实施方案的以上描述不限定或约束本公开。在不脱离如以下权利要求限定的本公开的实质和范围的情况下,其他改变、替换和改变也是可能的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1