用于允许在过程控制系统中故障回退到先前软件版本的装置和方法

文档序号:6455299阅读:211来源:国知局
专利名称:用于允许在过程控制系统中故障回退到先前软件版本的装置和方法
技术领域
本公开内容总体上涉及控制系统。更具体地说,本公开内容涉及一种在过程控制系统中允许故障回退(fail - back)到先前软件版本的装置和方法,可以包括在故障回退期间维持对过程的控制。
背景技术
常常使用过程控制系统来管理处理工厂。示例处理工厂包括制造厂、化工厂、原油精炼厂和矿石处理厂。连同其它操作一起,过程控制系统一般在处理工厂中管理对电动机、阀及其它工业装置的使用。在常规的过程控制系统中,控制器常常用来控制对处理工厂中工业装置的操作。所述控制器例如可以监视工业装置的操作,向所述工业装置提供控制信号,并且当检测到故障时产生警报。 在常规的过程控制系统中,常常需要或者希望更新正由控制器执行的软件。更新软件的过程通常被称为"移植(migration)"。不同的软件或不同版本的软件通常还被称为"软件版本(softwarereleases)"。过程控制系统移植到新的软件版本常常是关键操作,原因在于它可能显著地影响(或者甚至停止)处理工厂的操作。典型地,过程控制系统移植到新的软件版本还需要依照以下方式来进行,其中从一个软件版本到下 一 个软件版本保留过程控制系统的功能和行为(behavior)。

发明内容
本公开内容提供了 一种在过程控制系统中允许故障回退到先前软件版本的设备和方法,它可以包括在故障回退期间维持对过程的控制。在第一实施例中, 一种方法包括接收安装软件版本的请求,其中所述软件版本要被安装在第一装置和/或第二装置上。所述方法还包括发起在所述第二装置上安装软件版本并且确定用户是否想要继续安装所述软件版本。所述方法进一步包括如果所述用户想要继续安装那么发起在所述第一装置上安装软件版本。另外,所述方法包括如果用户不想继续安装那么在第二装置上恢复第二软件版本。在特定的实施例中,第一和第二装置表示用来控制过程的控制器。在安装软件版本和恢复第二软件版本期间,所述过程由至少一个控制器来控制。在其它特定的实施例中,第一和第二装置表示冗余的装置。在第二装置上安装软件版本期间,第 一装置充当主装置并且所述笫二装置充当后备装置。所述方法还包括在第二装置上安装软件版本之后致使所述第二装置充当主装置和第一装置充当后备装置。所述方法进一步包括在笫二装置上恢复第二软件版本期间使所述第二装置充当后备装置并且使第 一装置充当主装置。在第二实施例中, 一种设备包括用来存储软件版本的至少一个存储器。所述设备还包括可操作来接收安装软件版本的请求的至少一个处理器,其中所述软件版本要被安装在第一装置和/或第二装置上。至少一个处理器还用来在第二装置上发起软件版本的安装并且确定用户是否想要继续所述软件版本的安装。至少一个处理器进一步用来如果用户想要继续安装那么在第一装置上发起软件版本的安装。另外,至少一个处理器用来如果用户不想继续安装则在第二装置上恢复第二软件版本。在第三实施例中,计算机程序被包含在计算机可读媒体上并
且可操作来由处理器执行。计算机程序包括用来接收安装软件版本的请求的计算机可读程序代码,其中所述软件版本要被安装在第一装置和/
或第二装置上。所述计算机程序还包括用于发起在所述第二装置上安装软件版本并且确定用户是否想要继续安装所述软件版本的计算机可读
程序代码。所述计算机程序进一步包括如果所述用户想要继续安装那么在所述第一装置上发起安装所述软件版本的计算机可读程序代码。另外,所述计算机程序包括用于如果用户不想继续安装那么在第二装置上恢复第二软件版本的计算机可读程序代码。根据以下附图、描述和权利要求,对于本领域技术人员而言
其它技术特征可以是容易看得见的。


为了更完整地理解此公开内容,现在结合附图来参考下列描迷,其中图1图示了依照本公开内容的一个实施例的示例过程控制系
统;图2图示了用于在依照本公开内容的一个实施例的过程控制系统中允许故障回退到先前软件版本的示例方法;图3到6C图示了用于在依照本公开内容的一个实施例的过程控制系统中支持移植到新的软件版本的示例用户界面;和图7图示了用于在依照本公开内容的一个实施例的过程控制系统中执行移植到新的软件版本的示例性状态机。
具体实施例方式图1图示了依照本公开内容的一个实施例的示例过程控制系统100。在图1中所示出的过程控制系统100的实施例仅供举例说明之用。可以在不脱离本公开内容的范围的情况下使用过程控制系统100的其它实施例。在此示例实施例中,过程控制系统100包括一个或多个处理单元102a-102b。处理单元102a-102b表示过程或生产系统中的组件,所迷组件可以执行各种功能。例如,处理单元102a-102b可以表示生产环境中的电动机、催化裂化器、阀及其它工业装置。处理单元102a-102b可以表示任何适当的过程或生产系统中的任何其它或附加组件。每个处理单元102a-102b包括用于执行在过程或生产系统中的一个或多个功能的任何硬件、软件、固件或其组合。两个控制器104a-104b被耦合到处理单元102a-102b。控制器104a-104b控制处理单元102a-102b的操作。例如,控制器104a-104b能够定期地向处理单元102a-102b提供控制信号。每个控制器104a-104b包括用于控制一个或多个处理单元102a-102b的任何硬件、软件、固件或其组合。示例控制器104a-104b可以包括来自霍尼韦尔国际公司(HONEYWELL INTERNATIONAL INC.)的C300控制器和SERIES C醒。任选地, 一个或多个输入/输出(1/0)模块105可以在控制器104a-104b和一个或多个处理单元102a-102b (在此例子中, 一个或多个处理单元102b)之间操作。每个I/0模块105使在控制器104a-104b和(一个或多个)处理单元102b之间的通信便于进行。例如,1/CM莫块105可以表示数据获取装置,用于从控制器接收数据并且把所述数据提供到处理单元。izo模块105还可以从处理单元接收数椐并且把所述数据提供到控制器。每个I/0模块105包括用于使在控制器和处理单元之间的通信便于进行的任何硬件、软件、固件或其组合。1/O模块105例如可以表示来自霍尼韦尔国际公司的SERIES CIOM。如图l所示,1/0才莫块105还可以在冗余的组中操作。两个服务器106a-106b被耦合到控制器104a-104b。服务器106a-106b执行用于支持控制器104a-104b和处理单元102a-102b的操作和控制的各个功能。例如,服务器106a-106b可以记录由控制器104a-104b所收集或产生的信息,诸如与处理单元102a-102b的操作相关的状态信息。服务器106a-106b还可以执行用于控制控制器104a-104b的操作的应用程序,由此控制处理单元102a-102b的操作。另外,服务器106a-106b可以提供对控制器104a-104b的安全访问。每个服务器106a-106b包括用于提供对控制器104a-104b的访问或控制的任何硬件、软件、固件或其组合。每个服务器106a-106b例如可以包括一个或多个处理器107和一个或多个存储器109,所述存储器109用于存储由(一个或者多个)处理器107使用的数据和指令(诸如由控制器104a-104b执行的软件)。在特定的实施例中,服务器106a-106b可以表示用于执行MICROSOFT WINDOWS操作系统的个人计算机(诸如台式计算机)。在其它特定的实施例中,服务器106a-106b可以包括用于运行GREENHILLS INTEGRITY操作系统的POWERPC处理器系列的处理器或用于运行MICROSOFT WINDOWS操作系统的X86处理器系列的处理器。—个或多个操作者站108a-108b被耦合到服务器106a-106b,并且一个或多个操作者站108c被耦合到控制器104a-104b。操作者站108a-108b表示用于向服务器106a-106b提供用户访问的计算或通信装置,所述服务器106a-106b于是可以提供对控制器104a-104b和处理单元102a-102b的用户访问。操作者站108c表示用于向控制器104a-104b提供用户访问的计算或通信装置(在不使用服务器106a-106b的资源的情况下) 作为特定的例子,操作者站108a-108c可以允许用户使用由控制器104a-104b和/或所述服务器106a-106b所收集的信息来查阅处理 单元102a-102b的操作历史。操作者站108a-108c还可以允许用户调节 处理单元102a-102b、控制器104a-104b或服务器106a-106b的操作。每 个操作者站108a-108c包括用于支持系统100的用户访问和控制的任何 硬件、软件、固件或其组合。每个操作者站108a-108c例如可以包括一 个或多个处理器111和一个或多个存储器113,所述存储器113用于存 储由(一个或多个)处理器lll使用的数据和指令(诸如由控制器 104a-104b执行的软件)。在特定的实施例中,操作者站108a-108c可以 表示用于执行MICROSOFT WINDOWS操作系统的个人计算机。
在此例子中,至少一个操作者站108b远离于服务器 106a-106b。远程站通过网络110被耦合到服务器106a-106b。网络IIO 使在系统100中各组件之间的通信便于进行。例如,网络110可以在网 络地址之间传送因特网协议(IP)分組、帧中继帧、异步传输模式(ATM) 单元或其它适当的信息。网络110可以包括一个或多个局域网(LAN)、 城域网(MAN)、广域网(WAN)、诸如因特网之类的全球网络的全 部或一部分或者在一个或多个位置的任何其它(一个或者多个)通信系 统。在此例子中,系统100包括两个附加服务器112a-112b。服务 器112a-112b执行各种应用程序来控制系统IOO的整个操作。例如,系 统IOO可以用在处理或生产工厂或其它设施中,并且服务器112a-112b 可以执行用于控制所述工厂或其它设施的应用程序。作为特定的例子, 服务器112a-112b可以执行诸如企业资源计划(ERP)、制造执行系统 (MES)或任何其它或附加工厂或过程控制应用之类的应用程序。每个 服务器U2a-112b包括用于控制系统100的整个操作的任何硬件、软件、 固件或其组合。如图1所示,系统100包括各冗余网络114a-114b和单个网 络116a-U6b,用于支持在所述系统100中的组件之间的通信。这些网 络114a-114b、 116a-116b中的每个都表示用于使在系统100中组件之间 的通信便于进行的任何适当的网络或网络組合。网络114a-114b、 116a-116b例如可以表示以太网。依照操作的一个方面,控制器104a-104b执行采用软件形式 的逻辑。控制器104a-104b还可以作为过程控制系统100中的冗余控制
8器来操作。例如,控制器104a可以起到主控器的作用,这意味着控制 器104a起到处理单元102a-102b的主要或主控制器的作用。控制器104b 可以起到后备或次级控制器的作用,这意味着控制器104b可以与控制 器104a同步并且在必要时(诸如在控制器104a发生故障期间)接管对 处理单元102a-102b的控制。用户可能想要在控制器104a-104b上安装新的软件。在此文 档中,术语"软件"包含由处理器、控制器、服务器或其它装置所执行的 任何逻辑,包括指令或采用固件形式的其它逻辑。术语"版本"还指代不 同的软件或不同的软件版本。作为一个例子,使用操作者站108a-108c 之一的用户可以发起新的软件版本到控制器104a-104b上的下栽。依照 此公开内容,移植到新的软件版本可以如下进行。在次级或后备控制器 104b上安装新的软件版本,并且后备控制器104b被切换以便充当处理 单元102a-102b的主控制器。在这一点上,用户可以评估新的软件版本。 如果用户对新的软件版本满意,那么所述新的软件版本被加栽到另 一个 控制器104a上。否则,另一个控制器104a变为处理单元102a-102b的 主控制器,并且在控制器104b上恢复(重新安装,重新加载等)先前 的软件版本。这样,用户可以使用控制器104b来评估新的软件版本并且标 识所述新的软件版本的任何问题(诸如控制器104b的意外行为)。如 果检测到问题,那么在控制器104a控制处理单元102a-102b时用户可以 "故障回退"或返回到控制器104b上的先前软件版本。由此,处理单元 102a-102b可以由控制器104a-104b之一来连续地控制,即使当用户正在 评估新的软件版本并且可能故障回退到先前软件版本时也是如此。上述移植和故障回退功能不限于与冗余控制器一起使用。可 以使用相同或类似的功能来把新的软件版本加载到过程控制系统100中 的任何冗余装置组上,诸如1/0模块105。在特定的实施例中,上述移 植和故障回退功能还可以使用供用户使用的移植"向导"或其它应用程 序来实现。例如,移植向导可以向用户呈现用户界面,其中所述用户界 面使移植和故障回退功能便于进行。作为特定的例子,移植向导可以表 示由系统100中的一个或多个操作者站108a-108c或一个或多个服务器 (诸如服务器106a-106b)所执行或支持的应用程序。在图2到7中示 出了关于移植向导或其它应用程序操作的附加细节,如下所述。
尽管图1图示了过程控制系统IOO的一个例子,不过可以对 图l进行各种改变,例如,控制系统可以包括任意数目的处理单元、控 制器、服务器和操作者站。图l还图示了其中可以移植到新的软件版本 和故障回退到先前软件版本的一个操作环境。可以在任何其它适当的装 置或系统中使用移植和故障回退机制。图2图示了用于在依照本公开内容的一个实施例的过程控制 系统中允许故障回退到先前软件版本的示例方法200。为了便于解释,
图1的过程控制系统100的控制器104a-104b中控制软件移植。所述方 法200可以由任何适当的装置使用以及在任何适当的系统中用来支持任 何适当的软件移植。在步骤202,移植向导接收在冗余的控制器上更新软件的请 求。这例如可以包括用户从其它应用程序直接或间接地调用移植向导, 所述应用程序由所述用户用来实现其它功能。作为特定的例子,所述用 户可以从霍尼韦尔国际公司的CONTROL BUILDER应用程序调用移植 向导。在此步骤中,用户还可以标识将被加载到控制器上的软件版本。 由用户所选择的版本可以被认为是"目标,,软件版本。在步骤204,移植向导标识哪个控制器是主控制器并且哪个 控制器是次级控制器。在此例子中,控制器104a可以表示主控制器, 并且控制器104b可以表示次级控制器。在步骤206,移植向导在次级控制器上安装软件。这例如可 以包括,移植向导在网络114b上向次级控制器104b发送目标软件版本。 这还可以包括次级控制器104b接收、存储并执行目标软件版本。在步骤208,移植向导使主和次级控制器同步。可以使用任 何适当的同步技术来使控制器104a-104b同步。例如在步骤204之前, 移植向导可以发起对主控制器的数据的快照,这捕获了由所述主控制器 104a使用来控制处理单元102a-102b的当前数据值。移植向导还可以禁 止在主和次级控制器之间的数据的同步(意味着在控制器104b并不复 制在控制器104a中的数据变化)。在步骤208期间,移植向导可以把 主控制器的数椐的快照加栽到次级控制器104b中。移植向导还可以激 活(enable)在主和次级控制器之间的数据的同步。快照的加载可以使 次级控制器104b达到主控制器104a的当前状态或接近当前状态。激活
10在控制器104a-104b之间的数据的同步可以允许对主控制器的数据进行 的其它改变(诸如自从快照以来的改变)在次级控制器104b上。在步骤210,移植向导把处理系统中的控制切换到次级控制 器(现在变为主控制器)。这例如可以包括移植向导使控制器104b变 为主控制器。这还可以包括移植向导致使控制器104a变为次级控制器, 诸如通过把控制器104a置于备用或后备模式。在步骤212,向用户给出用于继续移植的选项。在这一点上, 控制器104b是主控制器并且使用目标软件版本来操作。用户可以观察 控制器104b的操作并且确定目标软件版本是否正在适当地操作。例如, 用户可以运行测试或者执行其它动作以便确定目标软件版本是否正在 适当地操作或者是否出现任何错误。在特定的实施例中,先前软件版本 (先前由控制器104b使用并且仍然由控制器104a使用)和目标软件版 本支持版本的互操作性。这允许使用不同软件版本的不同控制器依照性 能良好的、完整功能的以及或许长期的方式来相互协作。如果用户想要继续移植,那么在步骤214移植向导在新的次 级控制器上安装软件并且在步骤220使控制器同步。这例如可以包括移 植向导向控制器104a提供目标软件版本,所述控制器104a现在是处理 单元102a-102b的次级控制器。这还可以包括移植向导禁止控制器 104a-104b之间的数据的同步,升级控制器104a中的软件,和激活在控 制器104a-104b之间的数据的同步。这里,两个控制器104a-104b都使 用目标软件版本来进行操作。如果在步骤212用户不想继续移植,那么在步骤216移植向 导把处理系统中的控制切换到次级控制器(现在变为主控制器)。这例 如可以包括移植向导使控制器104a成为主控制器并且使控制器104b成 为次级控制器。在步骤218移植向导还在次级控制器上恢复先前软件并 且在步骤220使控制器同步。这例如可以包括移植向导在控制器104b 上恢复先前软件版本,所述控制器104b现在是处理单元102a-102b的次 级控制器。这还可以包括移植向导禁止控制器104b-104b之间的数据的 同步,在控制器104b上恢复软件,和激活控制器104b-104b之间的数据 的同步。这里,两个控制器104a-104b都使用先前软件版本来进行操作。这样,用户能够查看新的软件版本在过程控制系统中如何行 为的。 一旦新的软件版本被加载到控制器上并且起作用,就向用户给出在另一个控制器上安装所述新的软件版本或者返回(故障回退)到先前
软件版本的选项。所有这些可以发生在处理单元102a-102b正由控制器 104a-104b之一管理并控制时。结果是,软件移植可以在用户不用看着 或控制处理单元102a-102b的情况下发生。图3到6C图示了用于在依照本公开内容的一个实施例的过 程控制系统中支持到新的软件版本的移植的示例用户界面。为了便于解 释,在图3到6C中所示出的用户界面被描述为由在操作者站108a上所 执行的移植向导用来在图1的过程控制系统100中控制软件移植。图3 到6C中所示出的用户界面可以由任何适当的装置使用以及被用在任何 适当的系统中以支持任何适当的软件移植。如图3所示,移植向导可以向用户呈现版本选择界面300。 版本选择界面300允许用户选择要被加载到一个或多个装置(诸如控制 器104a-104b)上的目标软件版本。在此例子中,向用户给出两个选项 302 -304。在第一选项302中,用户可以选择把最新的主要软件版本加 载到装置上。在第二选项304中,用户可以从下拉菜单中选择服务包, 其中所述服务包表示先前主要软件版本的升级。—旦用户选择了目标版本,移植向导就标识与控制器 104a-104b相关联的所有模块。相关联的模块可以包括被连接到控制器 104a-104b的网关和I/O模块(诸如模块105 )。然后获得用于每个所标 识的模块的信息以便确定该模块是否具有要被移植的软件,诸如通过确 定每个模块是否使用比用户所选择的目标版本更旧的任何软件版本。在 显示界面300或单独的界面(诸如用于声明相关联的模块正被标识的窗 口 )时,移植向导可以执行此发现过程标识。因为发现过程可能花费相 对较长的时间,所以还可以向用户显示状态指示器,诸如用于标识发现 过程已经完成多少或者发现过程还剩多少的条。
—旦相关联的模块被标识,移植向导可以如图4所示向用户 呈现移植选择界面400。移植选择界面400允许用户选择要执行的移植 类型。在此例子中,向用户给出五个选项402-410。前两个选项402-404 可以由用户选择以便分别发起用于控制器或相关联的1/0模块的"过程 中(on-process),,移植。选择这些选项402 - 404可以发起上述移植和 故障回退功能。选择其它选项406 - 410可以在没有上述故障回退功能的情况 下发起软件的迁移。例如,选项406-410可以允许软件被加栽到冗余或 非冗余的装置上,但是用户可以在安装期间不用看着和控制处理单元 102a-102b。也可以不向用户给出用于故障回退到先前软件版本的选项。 这些类型的软件移植被认为是"离过程(offprocess)"移植。如果用户选择选项402 (为控制器执行"过程中"软件移植), 那么移植向导可以如图5A所示向用户呈现验证界面500。验证界面500 允许用户验证目标软件版本将被安装在适合的装置上(在这种情况下, 为冗余的控制器)。在此例子中,验证界面500标识由用户先前选择的 目标版本502。验证界面500还标识关于冗余控制器的各种信息。例如,验 证界面500标识主控制器的名称504,在主控制器上所安装的当前软件 版本506和主控制器的当前应用程序固件版本修订版(标示为"(A)") 和当前引导固件版本修订版(标示为"(B) ") 508。验证界面500还标 识次级控制器的名称510、在次级控制器上所安装的当前软件版本512 和次级控制器的当前应用程序固件版本修订版和引导固件版本修订版 514。另外,对于所标识的每个固件版本修订版来说,验证界面500可 以表明该固件是否不同于目标版本502 。在验证界面500中所呈现的信息允许用户验证所标识的控制 器的软件的移植。用户具有用于继续移植或返回以对所计划的移植做出 修改的选项。在特定的实施例中,验证界面500可以用来为诸如C300 控制器和SERIES C FIM之类的控制器验证移植。如果用户选择了选项404 (为1/0模块执行"过程中,,软件移 植),那么移植向导可以如图5B所示向用户呈现验证界面550。在此例 子中,验证界面550标识由用户所选择的目标版本552。验证界面550还标识被连接到控制器的1/0模块105以及为那些1/0模块105所计划的软件移植。在此例子中,验证界面550包括 两个不同的部分554 - 556,其中每个部分标识被连接到控制器的不同的 链路的I/0模块105。在一些实施例中,控制器(诸如控制器104b)可 以具有一个或多个链路,所述控制器在所述链路上与1/0模块105通信, 并且一个或多个1/0模块105可以被耦合到所迷控制器的每个链路。如图5B所示,每个部分554 - 556包含关于被耦合到控制器 的不同链路的1/0模块105的各种信息。在此特定的例子中,使用"主块" 名称来标识冗余的1/0模块105对,并且各个I/0模块105本身被标示 为"伙伴A"和"伙伴B"。对于每个I/O模块105来说,验证界面550标 识该I/0模块105的当前应用程序固件版本修订版和当前引导固件版本 修订版,以及当前软件版本。对于所标识的每个固件版本修订版来说, 验证界面550可以表明该固件是否不同于目标版本552。另外,验证界 面550包括复选框558。如下面所更详细地描述的,复选框558可以用 来激活或禁止各个IA3模块105的故障回退功能。呈现在验证界面550中的信息允许用户为所标识的1/0模块 105验证软件的移植。用户具有继续移植或返回以对移植做出改变的选 项。在特定的实施例中,验证界面550可以用来验证诸如SERIES C IOM 之类的I/0模块的移植。—旦用户使用验证界面500或验证界面550验证了软件移植, 就可以向所述用户呈现如图6A所示的移植状态界面600。移植状态界 面600包括列表602a,用于标识在软件移植期间所执行的不同的操作以 及每个操作的状态。在此例子中,示出了用于冗余控制器104a-104b的 软件移植的状态。移植过程的笫一步骤包括把目标软件版本加载到次级 控制器(诸如控制器104b)上。移植过程的第二步骤包括使控制器 104a-104b同步并且把过程控制转移到控制器104b (其于是成为主控制 器)。作为控制器104a-104b的同步的一部分,由控制器104a所使 用的数据的快照可以被加栽到控制器104b中。在特定的实施例中,快 照被用于C300控制器。可以向用户显示在加栽快照期间的任何错误, 从而允许所述用户决定是否继续移植。在特定的实施例中,间接同步可 以被用于C300控制器。另外,在特定的实施例中,转移控制可以包括 把主控制器104a置于备用模式(对于C300控制器而言)或者后备才莫式(对于SERIES C FIM而言)。—旦完成这些移植步骤,移植状态界面600向用户提供不同 的选项。在此例子中,采用按钮604的形式提供了所述选项。首先,用 户可以"Continue(继续)"移植,其可能会把目标软件版本安装在另 一个控 制器104a上。其次,用户可以"GoBack (返回),,,其可能会发起在控 制器104b上故障回退到先前的软件版本。如果用户在移植状态界面600中选择"继续"按钮604,那么在 所述移植状态界面600中的列表602a扩展为如图6B所示的列表602b。 在此例子中,移植过程在执行两个附加步骤之后完成。 一个附加步骤包 括把目标软件版本加载到新的次级控制器(诸如控制器104a)上。另一 附加步骤包括使控制器104a-104b同步。这里,两个控制器104a-104b 已经利用目标软件版本进行了升级并且已经被同步。如果用户在移植状态界面600中选择"返回"按钮604,那么在 所述移植状态界面600中的列表602a扩展为如图6C所示的列表602c。 在此例子中,移植向导执行三个附加步骤来在控制器104a-104b上故障 回退到先前的软件版本。在此示例实施例中,第一附加步骤包括把过程 控制切换到新的次级控制器(其先前是主控制器,诸如控制器104a)。 第二附加步骤包括把新的次级控制器104b恢复为先前的软件版本。第 三附加步骤包括使控制器104a-104b同步。在这种情况下,用户能够"故 障回退,,到先前的软件版本,并且两个控制器104a-104b使用先前的软件 版本来操作。当移植用于I/O模块105的软件时可以使用类似的移植状态 界面600。在这种情况下,图6A中的移植状态界面600可以在每个次 级I/O模块105的软件移植期间标识所述I/O模块105。当每个次级I/O 模块105被升级时,可以向用户给出"继续"移植(升级下一个次级1/0 模块105)或"返回"到先前的软件版本的选项。如果用户针对任何1/0 模块105选择了"返回"按钮604,那么该1/0模块105可以被恢复到其 先前的软件版本,并且用户可以以被询问是否继续其余的1/0模块105 或者取消剩余的移植。 一旦已经用目标软件版本升级了所有的次级1/0 模块105并且将其切换为主I/0模块105,就可以向用户给出继续移植 的选项。如果被选择,每个新的次级I/0模块105 (先前尚未升级的主 1/0模块)则被升级并且同步,如图6B所示。如果移植被取消或者用户
15表明不希望继续移植,则如图6C所示针对每个升级的1/0模块105,发 生故障回退。在整个移植过程可以使用状态指示器来标识被升级或待升 级的1/0模块105的数目。在一些实施例中,在每个I/0模块升级之后 可以不询问用户是否想要故障回退到先前的软件版本(根据用户是否在 验证界面550中选择复选框558 )。尽管图3到6C图示了用于支持在过程控制系统中移植到新 的软件版本的用户界面的例子,也可以对图3到6C进行各种改变。例 如,在系统100中或在任何其它适当的装置或系统中可以使用支持附加 功能的用户界面。在图3到6C中的用户界面的内容和布置也只是用于 说明和解释。可以使用提供相同的或类似的功能的其它用户界面,即便 那些界面具有不同的内容或布置。图7图示了依照本公开内容的一个实施例的用于在过程控制 系统中执行到新的软件版本的移植的示例状态机700。为了便于解释, 状态机700被描述为用于在图1的过程控制系统100中控制控制器 104a-104b中的软件移植。状态机700可以由任何适当的装置使用并且 被用在任何适当的系统中以用来支持任何适当的软件移植。如图7所示,状态机700包括七个状态702 -714,并且逻辑 或(or)条件被用于状态702 -714之间的转变。在此例子中,状态702 通常表明未发生过程中移植。状态704通常表明过程中移植已经开始并 且状态机700正等待在次级控制器恢复主控制器的数据的快照(如果没 有使用快照那么可以跳过此状态)。状态706通常表明状态机700正等 待发出激活主控制器和次级控制器之间的同步和切换的命令。状态708 通常表明状态机700正等待发生控制器之间的同步。状态710通常表明 状态机700正等待完成在次级控制器和任何I/O模块105之间的I/O连 接的形成。状态712通常表明动态状态数据(dynamic state data, DSD ) 正从主控制器104a被传递到次级控制器104b。状态714通常表明正请 求从主控制器104a到次级控制器104b的切换。参数INDSYNCCMD可以被特别用来控制状态702 - 714之间 的转变。在此例子中,INDSYNCCMD参数可以具有三个值之一。 "ENABLE,,值用来开始过程中移植。"SYNCSWITCH"值被用来发动 (unleash)移植,意味着可以进行从主控制器到次级控制器104b的切 换。"ABORT"值被用来终止所述移植。
16
在图7中所示出的状态机700还使用其它参数。例如,参数 SecSnapTmo和IndSyncTmo表示超时条件,用于标识是否以及何时移植 过程中的步骤花费了过长的时间。参数IndSyncFail表示在主控制器和次 级控制器之间的同步的失败。尽管图7图示了用于在过程控制系统中执行到新的软件版本 的移植的状态机700的一个例子,也可以对图7进行各种改变。例如, 其它状态机可以具有更多或更少的状态,取决于诸如在其中进行移植的 装置的类型之类的因素。代替或除状态机700之外还可以使用其它控制 机制。在一些实施例中,由计算机程序来实现或支持上述各功能, 所述计算机程序是从计算机可读程序代码形成并且包含在计算机可读 媒体中。短语"计算机可读程序代码"包括任何类型的计算机代码,包括 源代码、对象代码和可执行代码。短语"计算机可读媒体"包括能够由计 算机访问的任何类型的媒体,诸如只读存储器(ROM)、随机存取存储 器(RAM)、硬盘驱动器、压缩光盘(compactdisc, CD)、数字化视 频光盘(DVD)或任何其它类型的存储器。阐明在该整个专利文档所使用的某些词和短语的定义可能是 有利的。术语"耦合"及其衍生物指的是在两个或多个单元之间的任何直 接或间接通信,而不管那些单元是否彼此物理接触。术语"应用程序"和 "程序"指的是一个或多个计算机程序、软件组件、指令集、过程、函数、 对象、类、实例、相关数据或其适于用适当的计算机代码实现的部分(包 括源代码、对象代码或可执行代码)。术语"包括,,和"包含,,以及其衍生 物意指包括但不限制。术语"或"是包括性的,意思是和/或 短语"与相 关联"和"与其相关联"以及其衍生物可以意指包括包括在内、与之互连、 包含、包含在内、连接到或与之连接、辆合到或与之耦合、可与之通信、 与之合作、交织、并列、邻近、绑定到或与之捆绑、具有、具有其属性 等。术语"控制器"意思是控制至少一个操作的任何装置、系统或其一部 分 控制器可以用硬件、固件、软件或其中至少两种的某组合来实现。 与任何特定的控制器相关联的功能可以是集中式或分布式的,无论是本 地的还是远程的。虽然本公开内容已经描述了某些实施例以及通常相关联的方显而易见的。据此,示例实施例的以上描述并没有定义或限制本公开内 容。在不脱离由以下权利要求所定义的本公开内容的精神和范围的情况 下,还可以进行其它改变、替换和变化。
权利要求
1. 一种方法,包括接收(202)安装软件版本的请求,所述软件版本要被安装在以下至少一个装置上第一装置和第二装置;在所述第二装置上发起所述软件版本的安装(206);确定(212)用户是否想要继续所述软件版本的所述安装;如果所述用户想要继续所述安装则在所述第一装置上发起所述软件版本的安装(214);以及如果所述用户不想要继续所述安装则在所述第二装置上恢复(218)第二软件版本。
2. 根据权利要求1所述的方法,其中所述第一和第二装置包括用来控制过程的控制器(104a-104b);并且贯穿所述软件版本的安装和所述第二软件版本的恢复,所述过程由 至少一个控制器(104a-104b)来控制。
3. 根椐权利要求1所述的方法,其中 所述第一和第二装置包括冗余的装置;并且在所述第二装置上安装所述软件版本期间所述第 一装置充当主装 置并且所述第二装置充当后备装置。
4. 如权利要求3所述的方法,还包括在所述第二装置上安装所述软件版本之后致使(210)所述第二装 置充当所述主装置和所述第一装置充当后备装置;以及在所述第二装置上恢复所述第二软件版本之后期间致使(216)所 述第二装置充当所述后备装置和所述第 一装置充当所述主装置。
5. 如权利要求4所述的方法,还包括在以下至少一个之后使所述第一和第二装置同步(208, 220):在 所述第二装置上安装所述软件版本,在所述第一装置上安装所述软件版 本以及在所述笫二装置上恢复所述第二软件版本。
6. —种设备,包括至少一个存储器(109, 113),用来存储软件版本;和 至少一个处理器(107, Ul),用来接收安装所述软件版本的请求,所述软件版本将被安装在以下至少一个装置上第一装置和第二装置;在所述第二装置上发起所述软件版本的安装(206);确定用户是否想要继续所述软件版本的所述安装;如果所述用户想要继续所述安装则在所述第一装置上发起所述软 件版本的安装;并且如果所述用户不想要继续所述安装那么在所述第二装置上恢复第 二软件版本。
7. 如权利要求6所述的设备,其中所述第一和第二装置包括用来控制过程的控制器(104a-104b);和 贯穿所述软件版本的所述安装和所述第二软件版本的所述恢复,所 述过程由至少一个控制器(104a-104b)来控制。
8. 如权利要求6所述的设备,其中 所述第一和第二装置包括冗余的装置;并且在所述第二装置上安装所述软件版本期间所述第 一装置充当主装 置并且所述第二装置充当后备装置。
9. 如权利要求8所述的设备,其中所述至少一个处理器(107, 111) 进一步用来在所述第二装置上安装所述软件版本之后使导致所述笫二装置充 当所述主装置和所述第一装置充当所述后备装置;并且在所述第二装置上恢复所述第二软件版本期间致使所述笫二装置 充当所述后备装置和所述第 一装置充当主装置。
10. —种计算机程序,包含在计算机可读媒体上并且用来由处理器 执行,所述计算机程序包括用于进行以下操作的计算机可读程序代码接收安装软件版本的请求,所述软件版本要被安装在以下至少一个 装置上第一装置和第二装置;在所迷第二装置上发起所述软件版本的安装; 确定用户是否想要继续所述软件版本的所述安装; 如果所述用户想要继续所述安装则在所述第一装置上发起所述软 件版本的安装;并且如果所述用户不想要继续所述安装则在所述笫二装置上恢复笫二软 件版本。
全文摘要
一种方法包括接收(202)安装软件版本的请求,其中所述软件版本要被安装在第一装置和/或第二装置上。所述方法还包括发起在所述第二装置上安装(206)软件版本并且确定(212)用户是否想要继续安装所述软件版本。所述方法还包括如果所述用户想要继续那么发起在所述第一装置上安装(214)所述软件版本。另外,所述方法包括如果用户不想继续那么在第二装置上恢复(218)第二软件版本。第一和第二装置可以表示冗余的装置,诸如在过程控制系统中的冗余的控制器组(104a-104b)或冗余的I/O模块组(105),用来使在过程控制系统中的一个或多个控制器(104a-104b)和一个或多个处理单元(102a-102b)之间的通信便于进行。
文档编号G06F9/44GK101479702SQ200780023468
公开日2009年7月8日 申请日期2007年5月3日 优先权日2006年5月5日
发明者A·沙马, J·M·多伊尔, N·R·斯万森, P·F·麦洛克林, S·S·贝尔 申请人:霍尼韦尔国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1