比较方法、自动化系统以及控制器

申请号 CN200780007222.4 申请日 2007-02-28 公开(公告)号 CN101395576B 公开(公告)日 2012-01-04
申请人 ABB公司; 发明人 艾伯特·诺贝格; 斯特凡·泽尔贝格;
摘要 本 发明 涉及一种用于比较从自动化系统中的应用程序的不同版本获得的变量值的方法。从自动化过程获得的输入 信号 被输入到驻留于同一 控制器 内的应用程序的至少两个不同版本。针对不同版本、基于 输入信号 执行相同任务,并且在控制器已知的 存储器 位置 存储从版本的执行中获得的与过程有关的变量值。从存储器位置取回来自不同版本并且从版本的对应执行步骤中得到的变量值,并且在空闲时间中进行比较。由此实现了一种修正自动化系统的改进方式。本发明也涉及这样的控制器和一种自动化系统。
权利要求

1.一种用于比较从自动化系统中的应用程序的不同版本获得的变量值的方法,所述系统包括用于借助存储于其中的所述应用程序使过程自动化的控制器,其特征在于所述方法包括以下步骤:
-向驻留于同一控制器内的所述应用程序的所有至少两个不同版本输入从所述过程获得的输入信号
-在所述控制器中,针对所述应用程序的所述至少两个不同版本,基于所述输入信号执行相同任务,
-在存储器位置存储从所述至少两个版本的执行中获得的与过程有关的变量值,所述存储器位置为所述控制器所知,
-从所述存储器位置取回从所述不同版本获得的变量值,所取回的变量值是从所述版本的对应执行步骤中得到的,以及
-当所述控制器空闲时,比较所取回的变量值。
2.如权利要求1所述的方法,其中所述比较所取回的变量值的步骤是在任务循环之间执行的。
3.如权利要求1或者2所述的方法,其中所述比较步骤在新任务扫描将要开始时暂停,而在所述控制器再次空闲时从暂停之处恢复。
4.如权利要求1或者2所述的方法,还包括如果发现在来自所述不同版本的所述变量值之间的差异,则在单独的存储器位置存储所述不同变量值的步骤。
5.如权利要求4所述的方法,其中所述方法还包括在发现在来自所述不同版本的所述变量值之间的差异时,向用户呈现所发现的差异的步骤。
6.如权利要求1或者2所述的方法,其中执行所述比较以便在实际过程环境下确定所述应用的新版本的功能。
7.一种用于比较从自动化系统中的应用程序的不同版本获得的变量值的自动化系统,所述系统包括用于借助存储于其中的所述应用程序使过程自动化的控制器,其特征在于所述系统包括:
-用于向驻留于同一控制器内的所述应用程序的所有至少两个不同版本输入从所述过程获得的输入信号的装置,
-用于在所述控制器中,针对所述应用程序的所述至少两个不同版本,基于所述输入信号执行相同任务的装置,
-用于在存储器位置存储从所述至少两个版本对相同任务的执行中获得的与过程有关的变量值的装置,所述存储器位置为所述控制器所知,
-用于从所述存储器位置取回从所述不同版本获得的变量值的装置,所取回的变量值是从所述版本的对相同任务的对应执行中得到的,以及
-用于当所述控制器空闲时,比较所取回的变量值的装置。
8.如权利要求7所述的自动化系统,还包括用于在另外的存储器位置存储不同变量值的装置。
9.如权利要求7或者8所述的自动化系统,还包括用于在发现在来自所述不同版本的所述变量值之间的差异时,向用户呈现所发现的差异的装置。
10.一种用于在自动化系统内控制过程的控制器(2),所述控制器包括应用程序和输入/输出装置(3,5),其特征在于所述控制器(2)包括:
-所述应用程序的至少两个不同版本,向所述应用程序的所有至少两个不同版本输入从所述过程获得的输入信号,
-用于针对所述应用程序的所述至少两个不同版本,基于所述输入信号来执行相同任务的装置,
-用于在存储器位置存储从所述至少两个版本对相同任务的执行中获得的与过程有关的变量值的装置,所述存储器位置为所述控制器所知,
-用于从所述存储器位置取回从所述不同版本获得的变量值的装置,所取回的变量值是从所述版本的对相同任务的对应执行中得到的,以及
-用于在所述控制器空闲时,比较所取回的变量值的装置。
11.如权利要求10所述的控制器,其中所述输入/输出装置包括将所述控制器连接到位于所述自动化系统内并且与其中的过程有关的传感器和激励器的连接装置。

说明书全文

比较方法、自动化系统以及控制器

技术领域

[0001] 本发明涉及自动化领域,具体而言,涉及一种用于比较从自动化系统内的应用程序的不同版本获得的变量值的方法、自动化系统以及控制器。

背景技术

[0002] 例如为了在生产线中消除单调任务和减少有害元素,自动控制或者自动化在工业生产中非常重要。一般而言,自动化还提高过程的效率以及质量,并且是一种满足当今对非环境影响和经济生产的需求的优良手段。
[0003] 如今,多数过程工业如食品处理、能量生产厂或者发电厂、制药和化工业确实或多或少地自动化,即,具有自动、计算机化的控制、操作和管理。在这些计算机化的机器和过程中使用的程序代码不断被开发以满足变化的需求。系统软件的定期更新因此对于改进现有例程以及对于纠正所用例程的不足是必要的。
[0004] 当要进行这样的更新时,当前使用的版本由新的更新版本重写。如果新版本没有被充分下载、如果新版本包含错误或者如果它包含不可预知的与系统的不兼容性从而例如造成系统内的不稳定,则该重写可能带来严重问题。如果需要恢复到旧版本,则必须再次下载该先前代码。于是生产可能会暂停,直到旧版本准备好并且再次运行。这样的生产中断开销很大,或者根据所讨论的产业,甚至可能是危险的。

发明内容

[0005] 一种用以执行应用或者应用程序的版本升级的改进方式是如在向与本发明相同的申请人转让并且在与本发明同一日提交的标题为“Methodfor evaluating,an automation system,and a controller”的共同未决专利申请中描述的那样,在同一控制器中执行两个版本。
[0006] 本发明的一个目的在于提供一种用于保证当在同一控制器中执行应用程序的两个版本并且比较从不同版本输出的值时,对进行中的控制器应用执行没有中断或者干扰的方法。
[0007] 本发明的另一目的在于提供一种执行比较的高效方式。更具体地,目的在于提供一种不以任何方式影响进行中的过程或者从重要的任务扫描(task scan)中占用处理时间或者容量的方法。
[0008] 除了别的以外,这些目的通过如下的方法、系统以及控制器来实现。
[0009] 根据本发明,提供了一种用于比较从自动化系统中的应用程序的不同版本获得的变量值的方法。可以在其中实施该方法的系统包括用于借助存储于其中的应用程序使过程自动化的控制器。应用程序的至少两个不同版本存储于同一控制器内。该方法包括以下步骤:向应用程序的所有不同版本输入从过程获得的输入信号;在控制器中,针对不同版本、基于输入信号执行相同任务;在存储器位置存储从不同版本的执行中获得的与过程有关的变量值,其中存储器位置为控制器所知;从存储器位置取回来自不同版本的变量值,其中取回的变量值是从不同版本的对应执行步骤中得到的;以及当控制器空闲时比较所取回的变量值。可以与当前使用的版本并行地执行应用的新升级版本,并在利用实际输入信号的真实生产环境下评价应用的新升级版本,由此消除停产险。借助本发明,当控制器空闲时进行比较,由此应用程序的执行不受干扰并且进行中的过程不受影响。另外,借助本发明保证有目的的比较得以进行,因为保证了待比较的值来自同一任务扫描。
[0010] 根据本发明的一个实施例,在任务扫描之间执行所取回的变量值的比较。在任务扫描过程中经常有一些空闲时间,因而这是用于执行比较的适当时间段。
[0011] 根据本发明的另一实施例,比较在新任务扫描将要开始时暂停,并且如果没有足够空闲时间运行所有变量值,则所述比较在后续空闲时间中恢复。借助这一特征,循环地比较应当比较的所有变量值。这是保证与过程有关的任务不受干扰并且不会由于比较而引起对生产的干扰的另一方面。
[0012] 根据本发明的又一实施例,如果发现变量值的差异,则可以在单独的存储器位置存储不同变量值。由此如果需要,则可以建立所有登记的不同变量值的完整列表。例如,用户能够确定不同值是收敛、发散还是有可能保持恒定差异,并且由此确定版本之一是否有故障和需要修正。
[0013] 根据本发明的又一实施例,该方法还包括向用户呈现所发现的差异的步骤。该呈现可以用任何期望的方式来实现,例如以图形、数字或者图表的形式来实现。
[0014] 根据本发明的又一实施例,执行不同版本的比较以便在实际过程环境下确定应用的新版本的功能。本发明的其它应用也是可以想到的,比如跟踪故障等。本发明因此提供一种适用于不同目的的通用评价方法。
[0015] 本发明还涉及一种自动化系统和一种控制器,由此实现与以上所述内容对应的优点。附图说明
[0016] 图1示意性地图示了一种自动化系统。
[0017] 图2按时间标度示意性地图示了不同应用的执行。
[0018] 图3示出了根据本发明的方法的实施例中包括的步骤的流程图

具体实施方式

[0019] 一种用以对控制过程的应用执行版本升级的方式是如在向与本申请相同的申请人转让并且通过引用结合于此的标题为“Method forevaluating,an automation system,and a controller”的共同未决专利申请中描述的那样,在单个控制器中依次或者以准并行方式执行两个版本。简言之,根据引用的共同未决专利申请,提供了一种用于评价用于在自动化系统内控制过程的应用的方法。两个或者更多应用程序驻留于同一控制器内,并且从过程获得的输入信号被输入到所有应用程序。应用版本之一控制所述过程而其它应用版本不控制所述过程。在控制器中,针对应用的所有不同版本、基于输入信号执行相同任务。随后生成报告,该报告包括由应用的不同版本生成的输出的比较。最后,基于生成的报告来评价未用于控制所述过程的一个或者多个版本。由于是在同一控制器中并且在相同环境下依次执行控制程序的不同版本,所以可以在部署新版本之前比较不同版本的行为。由此保证新版本真正在它被启动之前在实际环境中工作,并且可以避免大开销的生产中断。如果比较因某种原因而显示出对立的结果,例如不同版本指示待执行相反的切换操作,则新版本可以在最终被安装之前很容易地被修正。由此实现了一种修正自动化系统的改进方式。
[0020] 然而,当依次或者以准并行方式执行两个或者更多应用程序时,以高效方式执行比较是重要的。更具体地,比较不应以任何方式影响进行中的过程或者从重要任务扫描中占用处理时间或者容量。本发明提供一种实现这一点的方法。
[0021] 图1示出了自动化系统1的示意性略图,该自动化系统包括在系统1内控制一些过程6的一个或者多个控制器2。控制器2可以是任何适当的控制器,例如过程控制器或者可编程逻辑控制器(PLC)。控制器2包括用于输入和输出与过程有关的变量以便控制系统1的输入/输出装置3、5。控制器2还包括执行控制程序指令的中央处理单元(CPU)以及用于存储指令和数据的存储器。CPU还负责与其它设备(未示出)的通信和控制应用的执行。
[0022] 图1示出了自动化系统1的示意性略图,该自动化系统包括在系统1内控制一些过程6的一个或者多个控制器2。控制器2包括用于输入和输出与过程有关的变量以便控制系统1的输入/输出装置3、5。CPU还负责与其它设备(未示出)的通信和控制应用的执行。
[0023] 控制程序或者应用循环地读取过程输入和外部变量的值(例如来自另一控制器的值),基于这些值并且还基于内部变量的值(例如在处理或者内部状态过程中获得的值)来执行计算,并且作为结果而生成过程输出和外部变量的值。每个这样的执行称为扫描循环或者任务扫描。控制器包括存储和执行控制程序指令的中央处理单元(CPU)。CPU还负责与其它设备的通信和控制程序的执行。
[0024] 如先前提到的,应用程序的至少两个不同版本V旧和V新被下载到控制器。为方便起见,在下文中使用仅两个版本来描述本发明,但是应理解也可以同样良好地使用数个版本。应用的两个版本V旧和V新存储于控制器中,而来自I/O单元的输入信号被复制到这两个版本。输入信号由两个版本处理,并且相应的输出信号值存储于两个相应的存储器位置。来自当前所用版本的通常是旧版本的输出信号值被复制回到I/O单元并且用于控制过程。通过针对同一任务同时运行两个版本,保证了比较是准确的并且值是实际上可比较的,即来自同一任务扫描。
[0025] 现在可以比较在执行应用的不同版本V旧、V新时接收的值,以便检验对控制器进行控制的版本的功能,并且因此检验控制器的功能。即,通过比较变量值,可以检测和评价差异,并且由此可以确定新版本V新的功能。操作者或者用户可以比较两个版本V旧、V新,并且根据结果继续或者放弃新版本V新的安装。
[0026] 控制器知道或者被告知每个变量值的存储器位置,即每个变量值的位置被编程到控制器中。如果要比较任意值,则必须生成关于它们的存储器位置的信息并且将该信息与应用程序一起发送到控制器。根据本发明,控制器知道比如与I/O装置有联系的变量、存取变量以及报警等的变量的存储器位置。比如变量所代表的SFC步骤这样的其它变量的存储器位置将在别处生成,优选地在工程工具中(创建应用之处)生成,并且应当与应用程序一起发送到控制器。如果要比较来自同一应用程序的两个版本的值,则控制器一般无需关于比较哪些对值的信息。然而,如果用户想要进行其它不明显的比较,则必须在工程工具中生成关于比较哪些对值及其相应存储器位置的信息。由于控制器知道每个相应版本的变量值的位置,所以没有因两个版本的变量而造成混淆的风险,并且在过程中也不造成干扰。
[0027] 现在知道变量的存储器位置并且知道比较哪些变量,控制器中的背景子系统遍历应当比较的每一项的结构。取待比较的两个值,即从它们的相应存储器位置取回它们,并且进行比较。对于模拟值,使用所谓的“死区(deadband)”,也就是,如果值在这样的死区内则认为它们不同。实现这一点是为了控制器不对信号噪声作出反应。死区可以设置为特定百分比,例如:如果值之间的差异在0.5%内则不报告差异。或者,死区也可以被实施为预定的绝对值。优选地,如果值不同,则复制它们并且在独立结构中存储它们。使与比较有关的所有处理作为原子操作,即不得中断所述操作。这是为了保证所比较的值源于同一扫描任务。
[0028] 在另一实施例中,从一个或者多个“哑”版本或者被动版本(passiveversion)获得的值不与从控制过程的版本获得的值做比较。替代地,将来自被动版本的值与预定值、例如期望的目标值进行比较。
[0029] 在图2中图示了两个不同任务的执行及其相互的时间关系。如上所述地执行应用的两个版本并且存储值。然后,在执行用于第一任务的下一循环之前可以执行另一任务。应理解,可以执行并且通常是执行比图示出的两个任务多得多的任务。另外,任务可以相互重叠,即特定任务在具有较高优先级的另一任务被安排执行的情况下可以被中途中断。然而在任务之间有短暂的空闲时间 和 在这些空闲时间中可以执行根据本发明的比较。通过在任务扫描之间(也就是当控制器空闲时)执行比较,对值的处理不中断任务并且不影响过程。所有任务优选地具有比这样的比较更高的优先级,因为它们涉及进行中的过程。
[0030] 在单个空闲时间例如 中可能没有足够时间用以比较所有存储值或者变量值对。比较就在下一空闲时间 中继续,并且优选地从最后比较的一对值起继续。换言之,只要没有要开始新任务扫描就比较这些值,而当要开始新任务扫描时暂停比较,直到出现新的空闲时间。当新空闲时间开始时,在暂停比较之处继续进行比较。以此方式,循环地比较应当比较的所有变量值对。
[0031] 如果两个值的比较表明它们不同,则可以比其它值更频繁地比较这些值,因为通常很有可能这些值将继续不同。这可以通过将不同的变量对放入特殊列表中来实现,该特殊列表是将比变量对的整个结构更频繁被遍历的高意向表。
[0032] 通常,当执行某个任务时在特定存储器位置存储对应值,而当下次执行同一任务时用新值重写这些值。在一个实施例中,来自任务扫描的值还存储于另一存储器位置,由此使历史或者记录能够被存储。用户于是可以确定值是发散、收敛或者它们是否保持同一差异,并且采取适当行为。
[0033] 优选地在控制器中进行比较,从而在控制器与在操作者的工作站如PC等之间的通信负荷将明显比在PC中比较这些值时的通信负荷小。不同值的传递也在任务扫描之间进行,以免干扰应用的执行。
[0034] 当已经在控制器中发现差异时,应向系统的用户呈现这些差异。已经发现不同的值被封装或者编码成通信电报或者封包,从而实现按照请求或者自动地发送到PC。如果出现特别需要报警的差异,则可突出显示该差异,例如将其呈现为闪烁值或者触发可听见的报警。
[0035] 在替选实施例中,所有的值被存储、封装并显示给用户。
[0036] 应用的最关键值是对应用的环境、特别是过程有影响的值,即与I/O输出通道有联系的变量的值、向对象报警的条件、与存取变量有联系的变量(也就是,可从其它应用看到和存取的通信变量)的值以及SFC步骤的状态。然而,应理解可以比较应用中的任何值。也可以在故障跟踪过程中使用来自应用的不同版本的值的比较。
[0037] 在图3中以流程图的形式示出了根据本发明的方法中包括的步骤的总结。将理解并非必然包括所有步骤。用于评价在自动化系统内控制过程的应用的方法100从将输入信号输入到应用的不同版本、即步骤110开始。接着,执行(120)应用的两个版本。这是在控制器中执行的并且针对两个版本依次执行两个版本。接着,在存储器位置存储(130)从两个版本的执行中获得的与过程有关的变量值。在下一步骤中,从存储器位置取回(140)来自不同版本的变量值。随后比较(150)所取回的变量值。通常,待比较的变量值是从不同版本的对应执行步骤中得到的变量值,但是当然可以比较任一对值。在比较步骤之后,确定值是否不同并且在另一独立的存储器位置存储(160)任何检测到的差异。最后向用户呈现(170)差异,由此用户可以决定是放弃新版本还是继续并且用该新版本取代当前版本,该决定因此是基于差异是否可接受。由此保证新版本真正在它被启动之前的实际环境中工作,并且避免了大开销的生产中断。如果比较因某种原因而显示出对立的结果,例如不同版本指示待执行相反的切换操作,则新版本可以在最终被安装之前很容易地被修正。
[0038] 在说明书中已经描述了应用的两个版本,但是在替选实施例中可以执行三个或者更多版本。例如,如果有两个不同的新版本V新1和V新2,其中之一用以替代应用的当前版本,则所有三个版本即两个版本V新1、V新2和当前所用版本V旧可以并行运行。
[0039] 总而言之,本发明的方法提供了一种用以在同一控制器中执行不同版本时比较与过程有关的变量值的高效方式。所提出的用于比较值并且生产差异报告的方法不干扰进行中的过程,因为它们是在任务扫描之间进行的,并且在控制器内的容量为过程所需要时并不占用这样的容量。该方法还描述如何以适当方式组织和取回数据。
[0040] 由此实现了一种修正自动化系统的改进方式。
QQ群二维码
意见反馈