专利名称:获得仿真系统瞬像的方法
技术领域:
本发明通常涉及处理控制系统,尤其涉及一种仿真多结点处理控制系统的一个或多个结点的仿真系统,以便提供与分布式处理控制系统相关的被仿真的处理控制功能。
背景技术:
像那些在化学、石油中使用的分布式处理控制系统或其它处理系统典型地包括一个或多个处理控制器,该控制器经由模拟、数字或组合模拟/数字总线可通信地连接到一个或多个现场器件(field device)。这些现场器件可以是例如阀门、阀门定位器、开关和发送器(例如,温度、压强和流速传感器),这些现场器件位于处理环境内,并且执行诸如打开或关闭阀门、测量处理参数等的功能。智能现场器件,诸如符合众所周知的Fieldbus协议的现场器件也可以执行控制计算、报警功能、或其它通常在控制器中执行的控制功能。典型地位于工厂环境内的处理控制器接收指示由现场器件做出的处理测量的信号和/或其它与现场器件相关的信息,并且执行控制器应用程序,该应用程序例如运行不同的控制模块,做出处理控制决定、根据所接收的信息来产生控制信号,以及与诸如HART和Fieldbus的现场器件中执行的控制模块或块相互配合。控制器中的控制模块经通信线路将控制信号发送到现场器件,从而控制处理的操作。
来自现场器件和控制器的信息通常经过数据总线而可用于一个或多个其它硬件设备,例如操作员工作站、个人计算机、数据历史记录、报表生成器、集中数据库等,典型地是放在控制室或远离更恶劣的工厂环境的其它位置的硬件设备。这些硬件设备运行应用程序,例如可以使操作员执行有关处理的功能,例如改变处理控制例行程序的设置、修改控制器或现场器件内的控制模块的操作、查看处理的当前状态、仿真处理操作用于培训员工或测试处理控制软件、保留和更新配置数据库等。
作为一个例子,由Fisher-Rosemount系统股份有限公司销售的DeltaVTM控制系统包括多个应用程序,这些应用程序存储在位于处理工厂内的不同空间的不同器件内,并且由这些器件执行。位于一个或多个操作员工作站中的配置应用程序使用户能够创建或改变处理控制模块,以及经由数据总线将这些处理控制模块下载到专用分布式控制器。配置应用程序也可以允许设计者来创建或改变用户接口,这些用户接口被查看应用程序用来向用户显示数据,以及使用户改变设置,诸如处理控制例行程序内的设置点。每个专用控制器以及在一些情况中的现场器件存储和执行控制器应用程序,该应用程序运行被分配和下载给它的控制模块,以便执行实际的处理控制。可以在一个或多个操作员工作站运行的查看应用程序经数据总线从控制器应用程序接收数据并且向处理控制系统设计者、操作员、或使用用户接口的用户显示该数据,其中用户接口可以提供多种不同视图的任意一种,例如操作员视图、工程师视图、技术人员视图等。数据历史应用程序典型地存储在数据历史器件中并由其执行,该数据历史器件收集和存储通过数据总线提供的一些或全部数据,同时在另一个附加到数据总线的计算机设备中可以运行配置数据库应用程序,以便存储当前处理控制例行程序配置及其相关的数据。可替换地,可以将配置数据库存储在与配置应用程序相同的工作站中。
可以在附加到数据总线的个人计算机上运行仿真应用程序,例如由密苏里州圣路易的Don H.Munger公司销售的Mimic应用程序、或由加拿大卡尔加里的Hyprotech公司制造和销售的HYSYS应用程序。这些或其它接口应用程序经由数据总线与控制器应用程序和查看应用程序通信,以便能够测试存储在控制器中的控制模块或用户接口。这些仿真应用程序也使能执行培训和系统检查。在一些情况中,HYSYS应用程序是一种高保真度处理仿真产品,可以与Mimic应用程序被集成到相同的计算机,以便仿真用于设计的检查的处理控制设计的精确定时以及响应。典型地,这些仿真应用程序使用众所周知的诸如OPC接口或PI接口的标准接口与控制器内的控制器应用程序或现场器件进行通信。
作为替换,仿真已被人工执行,其中操作员或其它用户利用控制器或现场器件的控制模块内的输入/输出(I/O)功能块的仿真能力,来人工设置由I/O块处理的值和状态变量,以便依次使信息或控制逻辑能够被验证,而不用实际上控制现场器件或使现场器件连接到控制器。在另一种情况下,在控制器或现场器件中可以创建和存储特定的仿真模块,以便通过向实际控制模块提供基于输出块目标的仿真的处理动态而与实际控制模块进行交互。
在这些系统中,能够验证在设计、分配和下载控制模块到控制器或现场器件并使用仿真程序测试系统之后,由查看应用程序产生的用户显示中示出的信息正在被控制器正确地进行通信。在建立控制器系统值之前典型地执行使用完全系统硬件用于配置检查和操作员培训,从而,可以完全测试到控制器的物理连接以及控制器与工作站之间的通信。而且,能够检查由配置的模块引入到控制器的性能、存储器要求、以及负载。
然而,在多数情况中,期望在处理控制系统已被全部配置和执行和/或尽管处理控制系统正在在线运行之后,仿真处理控制系统或处理控制系统的结点。例如,期望创建一种仿真环境,能够仿真一种完全执行的处理控制系统,用于培训目的,诸如培训新的操作员,或用于测试目的,诸如测试一组新的操作参数来看看在用这些操作参数来运行实际装置之前是否获得了期望的结果。
不幸的是,如果在配置完成时没有创建仿真系统,则必须从配置的实际处理中创建配置系统。这尤其意味着操作员或其它人员必须通过对要仿真的每个结点内的每个控制块安装分离的仿真块,来人工地创建仿真系统,以及必须对于被仿真的结点之外的每个块或结点创建I/O块或参考,而不是可通信地连接到那些结点。该操作员也必须配置这些块之间的通信,以仿真在处理工厂内发生的实际通信。因为操作员是按照逐块来人工复制每个结点的,所以所创建的仿真系统可能包括操作员引入的错误,因此不能准确地仿真被配置的工厂。而且,这种处理非常耗时,尤其是在每个结点中具有成百上千的不同块的复杂的工厂中,需要创建成百上千的仿真控制块,有时候需要更多输入/输出块。
作为替换,操作员可以将对于结点的每个块配置的软件复制在仿真环境中,例如复制到仿真计算机。然而,在这种情况中,操作员仍然必须人工地创建仿真输入/输出块或参考那些块。如上所述,这种处理仍需要应付操作员引入的错误及时间消耗问题。
无论如何,因为上述问题,一个实际操作和配置的装置的仿真系统的创建花费了大量的时间和操作员人力,因此是非常昂贵的,有时候花费了数以百万美元。这些代价阻止了许多工厂对于配置的处理控制系统创建精确的仿真系统,这限制了可以在工厂中提供的培训的数量和质量,以及可被执行的离线测试的数量。
另外,在从实际操作系统复制的仿真系统内有许多信号,诸如输入/输出块的状态信号,可导致问题。特别是,当发送通信信号到另一个块时,每个块通常提供一种指示信号的状态的状态信号,例如,好的、坏的、陈旧的等。然而,在从运行的工厂复制的仿真环境中,状态信号将一直是旧的或坏的,因为在工厂内没有真正的设备来发送和更新那个信号。结果,仿真系统在处理坏的状态信号时可能陷入困境,并且不能仿真实际的控制环境或可能发送大量的错误消息给操作员,而使仿真操作员厌烦。
而且,还存在这样的情况或时间,即期望抓住或创建正在运行的仿真系统的瞬像(snapshot),所述瞬像包括所有处理变量的值、设置点和其它处理参数。所仿真的装置或装置的结点的这种瞬像在诊断问题、保存一个以后在另一个仿真中使用的特定的好的或坏的装置条件时是有用的,以便重复相同的仿真和测试不同动作的影响等。然而,目前,没有已知的方法用于创建仿真在特定实例的瞬像,而不用实际暂停仿真的运行相当长的时间周期和复制仿真内的每个块的状态。因为结点中已知或标准的复制块的方法等使用比结点的运行周期更长的时间,执行这些有关运行的仿真的复制方法意味着在复制过程中变量或值将会改变,因此,捕获的装置或结点状态将不是对于时间上的特定单一实例的,而是具有来自不同时间的不同变量值。另一方面,暂停仿真访问和复制所有的模块参数的值的时间量,尤其在一个面向对象的编程环境中对仿真操作员是非常明显的,并且可能是破坏性的。
发明内容
一种仿真系统附加到用于处理控制系统的一个或多个满配置的结点的配置数据库,并且将这些结点内的包括功能块的模块复制到一个或更多仿真计算机中。该仿真系统包括一个算法,在复制处理期间或之后,自动创建每个所复制的结点的参考参数模块,以存储结点外的每个输入或输出参考的参考参数,诸如输入/输出块、其它结点中的其它功能块、现场器件中的发送器块等。在Fieldbus功能块的情况下,仿真系统以控制器结点的协议自动地创建仿真工作站内的功能块,所述功能块模仿Fieldbus功能块的操作,并且然后创建具有这些被模仿的Fieldbus功能块操作的仿真系统,就像它们已经初始被配置在被仿真的控制器中,而不是在控制器之外的现场器件中。另外,仿真系统可以禁止状态信号或以这样一种方式进行操作,即忽略仿真系统内的被创建的输入/输出块的状态信号,以便阻止该状态信号导致操作员可见的错误。
而且,已知控制模块的冗余能力可被用来在一段非常短的时间期间捕获或存储仿真系统的瞬像。特别是,仿真系统可以使用由处理控制系统内的每个控制块提供的冗余输出,而不是更新一个冗余块,以逻辑方式将被更新的参数简单存储在仿真工作站内的存储器中。当期望仿真结点的瞬像时,仿真系统可以停止仿真模块的操作一段时间,在这段时间可以将仿真存储器内的冗余数据复制到瞬像文件或某种缓冲器文件中。在这种快速的复制过程之后,可以重新起动仿真系统。通常,该复制过程太短,以致仿真操作员注意到在仿真系统的操作中没有中断。这种处理使仿真操作员能够在一个特定和单个时间获取一个或多个仿真结点的瞬像,而不必严重地中断仿真系统。
图1是具有多结点和仿真系统的典型处理控制网络的方框图,所述仿真系统用于创建和执行一个或多个结点的仿真;图2是解释由仿真操作员使用的仿真创建和控制屏幕显示;图3是解释创建处理控制系统的单个控制器结点的仿真的命令的屏幕显示;图4是解释为处理控制系统的单个控制器结点创建的仿真的屏幕显示;图5是解释在仿真内被转换成模块参考的一组外部参考参数的屏幕显示;图6是解释被创建用来保持所创建的仿真的输入/输出参考的容器或参考参数模块的屏幕显示;图7是解释在捕获仿真系统的瞬像时被仿真操作员使用的瞬像捕获屏幕的屏幕显示;以及图8是解释在将仿真系统恢复成先前捕获的瞬像时由仿真操作员使用的恢复屏幕的屏幕显示。
具体实施例方式
现在参考图1,分布式处理控制系统10包括一个或多个结点12、14、16、18和20。在图1的处理控制系统10的实例中,每个结点12、14和16包括通过输入/输出(I/O)装置24连接到一个或多个现场器件22和23的处理控制器12a、14a、16a,该输入/输出(I/O)装置可以是例如Fieldbus接口、HART接口等。控制器12a、14a和16a通过数据总线30也被连接到结点18和20中的一个或多个主机或操作员工作站18a和20a,所述数据总线可以是例如以太网链接。如果期望的话,控制器结点12、14和16可以包括冗余控制器12R、14R和16R,用来以所熟知的方式(例如,典型地使用专用通信链接)跟踪控制器12a、14a和16a的状态,并且当所连接的主控制12a、14a和16a的一个失败时接管作为主控制器。同时,控制器结点12、14、16以及与之连接的输入/输出和现场器件22、23和24典型地位于下部,并且有时分布于较差的工厂环境中,控制器工作站结点18和20通常位于控制空间或其它较好的环境,容易由控制器个人访问。
一般来讲,结点18和20的工作站18a和20a可以被用来存储和执行用于配置和监视处理控制系统10的应用程序。而且,数据库32可以连接到数据总线30,并且作为数据历史或配置数据库来运行,该配置数据库存储被下载到结点12、14、16、18和20并在其中存储的处理控制系统10的当前配置。
众所周知,每个控制器12a、14a和16a,例如是由Fisher-Rosemount系统股份有限公司销售的DeltaV控制器,存储和执行控制器应用程序,该应用程序使用大量不同的独立执行的控制模块或块来实现控制策略。每个控制模块可以由通常被称作功能块的模块来组成,其中每个功能块是整个控制例行程序的一部分或子程序,并且与其它功能块联合(经由称作链路的通信)操作,以便实现处理控制系统10内的处理控制环路。为大家所熟知的,功能块典型地执行一种例如与发送器、传感器或其它处理参数测量器件相关的输入功能,例如与执行PID、模糊逻辑等的控制程序有关的控制功能、或控制一些诸如阀门的器件的操作的输出功能,以便执行一些处理控制系统10内的物理功能。当然,还存在混合和其它类型的功能块。然而,尽管Fieldbus协议和DeltaV系统协议使用以面向对象编程协议设计和执行的控制模块和功能块,控制模块也可以使用任何期望的控制编程方案来设计,例如包括序列功能块、阶梯逻辑等,并且并不限于使用功能块或任何其它特定编程技术来设计。典型地,存储在处理控制结点12、14和16内的控制模块的配置被存储在配置数据库32中,该配置数据库对于工作站18a和20a内的应用程序是可存取的。
在图1所示的系统中,连接到控制器12a、14a和16a的现场器件22和23可以是标准4-20ma器件,或可以是诸如HART、Profibus、或Fieldbus现场器件的智能现场器件,该智能现场器件包括处理器和存储器。一些这样的器件,诸如Fieldbus现场器件(在图1中标记为标号23)可以存储和执行模块或子模块,例如与控制器12a、14a和16a中执行的控制策略相关的功能块。图1中示出的功能块26和27被放置在两个不同的Fieldbus现场器件23中。现场器件23中的功能块26和27可以与控制器12a、14a和16a内的模块一起执行,以便实现众所周知的处理控制。当然,现场器件22、23可以是任何类型的器件,诸如传感器、阀门、发送器、定位器等,I/O器件24可以是符合任何期望通信或控制器协议的任何类型的I/O器件,例如HART、Fieldbus、Profibus等。
在图1的处理控制系统10中,工作站20a包括一个仿真系统或应用程序50,该应用程序被用来对于处理控制系统10的一个或多个结点,创建和执行一个或多个仿真,这里被称作仿真实例。一般来讲,当执行时,仿真应用程序50通过从配置数据库复制结点内的每个控制模块作为仿真模块,对于一个或多个指定的结点创建仿真实例,并且在仿真工作站20a内存储这些仿真模块。如果期望的话,仿真应用程序50可以在多个工作站上分布仿真实例。然而,为了讨论,假定在单个仿真工作站20a上创建和执行所有的仿真模块。在这种创建处理期间,仿真应用程序50在仿真实例中对于每个结点创建一个参考参数模块,其中每个参考参数模块包括每个输入/输出参考的参考参数,所述输入/输出参考与由那个结点内的任意仿真模块送入和送出指定结点的信号相关。一旦对于一个或多个结点创建了仿真实例,则可以为了任何期望的目的,例如为了测试或培训目的,来执行或运行该仿真实例。
如图1所示,仿真应用程序50(存储在计算机可读存储器52中并且适于在主工作站20a的微处理器54上执行)包括应用程序、例行程序或其子程序56-58。第一例行程序56与创建和操作与仿真工作站20a连接的用户显示器60有关,使仿真操作员创建、观看和控制处理控制系统10的一个或多个结点的仿真实例。当执行第二例行程序57时,第二例行程序通过为与每个指定结点相关的每个模块(可以包括单个或多个功能块)创建可通信的互相连接的仿真模块,以及然后通过为每个结点自动创建参考参数模块以便存储这些结点的输入或输出,来实际上创建一个或多个指定结点的仿真实例。一旦第三例行程序58被创建,则可被用来起动、停止、重新配置、捕获瞬像、恢复或者相反控制仿真实例。当然,例行程序57和58与用户显示例行程序56集成,使仿真操作员采取不同的步骤创建、控制和查看对于处理控制系统10的仿真实例。
在处理控制系统10的运行期间(即,在处理控制配置已经被创建和下载到处理控制系统10并且从而到每个不同的结点之后),但是先于任何仿真实例的创建,操作员可以访问仿真应用程序50。在那时,显示例行程序56可以呈现一个控制或仿真显示屏幕70给操作员,如图2所示。图2的仿真显示屏70例子具有多个不同的区,包括在显示屏70的左手边的结点指示区72,和在显示屏70的右手边的信息区74。
结点指示区72可以指示与处理控制系统10的每个结点相关的结点和器件、例行程序等,并且能够使仿真操作员以任何期望的方式,例如使用鼠标来选择这些结点的一个或多个或者一个结点之内的器件,如控制器。图2的结点指示区72说明了树状结构,显示了存储在处理10的配置数据库32中的不同的处理控制配置元素。当然,可以以任何其它期望的方式来说明处理控制系统10的结点或其它元素。另一方面,信息区74给仿真操作员提供结点指示区内的有关选择的元素的信息,例如结点指示区72中选择的元素内的子元素的图形或文本描述。如果愿意,可以通过控制屏幕70上的下拉或弹出菜单来访问成组的命令,这些命令可被用来产生处理控制系统10的一个或多个结点的仿真实例,或运行、控制和查看处理控制系统10的一个或多个结点的仿真实例。如果愿意,可以提供滑动条来指定有关实际处理控制系统10的执行速度或周期的仿真速度。滑动条可以包括一个停止位置和使仿真实例的执行速度比实际处理控制系统10的执行速度慢或快的位置。这个滑动条也可以包括一个暂停和播放或前进按钮,使仿真操作员能够快速地停止和起动仿真实例。
图2具体描述了结点指示区72中的树状结构,该结点指示区除其它事物外还包括控制策略80,其中控制策略包括一个与其相关的Area_A,该Area_A在其下面包括一组模块Loopl-Loop6、TEST_All、TEST_AO1、TEST_DI1和TEST_DO1模块。因为在图2中选择了Area_A,所以信息区域74示出了与Area_A相关的不同环路和其它元素,只要选择Area_A,就会在信息区域中发生随后的动作。同样,图2的树状结构包含一个控制网络84,该控制网络除其它事物外还包括3个控制器N_Solv_1、Sol_Man_1和Ctlr1。Ctlr1包含分配的模块、I/O卡C01、C03、C04以及分配的远程I/O。当然,其它入口、模块等都与N_Solv_1和Sol_Man_1控制器相关,但在图2的树状结构中未扩展出来。
通常来说,工作站20a的仿真操作员可以使用显示屏70上的结点指示区72来选择一个或多个结点,例如控制器,以便发生后续动作。因此,仿真操作员可以选择一个或多个结点(例如控制器)来创建和执行仿真实例。例如,当仿真操作员仅选择一个结点,然后例如通过下拉菜单来创建一个仿真实例时,上述的例行程序57将对于那个单个结点创建一个仿真实例。同样,如果仿真操作员选择了3个结点(例如图1中的结点12、14和16的每一个)或者显示屏70的结点指示区72上的整个处理控制系统,然后选择创建仿真命令,例行程序57创建一个这样的仿真实例,它包含这三个结点的每个结点或整个系统之内的模块。以这种方式,仿真操作员可以简单地选择数字和处理控制系统10中的特定结点,以便创建和执行一个仿真实例,从而能够在同一时刻对于任何数量的指定结点创建一个仿真实例。而且,仿真操作员在仿真实例运行期间可以利用结点指示区72选择不同的结点来观察。
当仿真操作员选择创建仿真命令时,算法或例行程序57启动,将在指定结点上所配置的处理控制网络转换成仿真实例。为了执行该功能,创建仿真例行程序57访问配置数据库32,并且为存储在配置数据库32中的每个指定结点的模块和块复制(或创建)一个仿真块。如果期望的话,创建仿真例行程序57可以逐结点地进行上述处理。作为该处理的一部分,创建仿真例行程序57将命令发送给数据库32,以便获取一个结点的模块、功能块等的一个副本。所得到的副本存储于仿真工作站20a中,并且最好通过指定仿真输入被用于输入块而被转换成一个仿真模块。
当在仿真工作站20a中逐结点地创建仿真模块时,通过如在实际控制模块中指定的通信链路将仿真模块可通信地连接在一起。然而,作为这种创建处理的一部分的创建仿真例行程序57使用例如与实际输入和输出相关的路径名称,自动识别指定结点之外的每个控制块的输入和输出。为了执行该功能,创建仿真例行程序57可以将创建的仿真块的输入和输出的源或目的的路径名称和其它指示,与所仿真的结点的路径名称进行比较,来确定输入或输出源是位于指定结点(例如对于仿真正在被创建的结点)的内部还是外部。如果通信信号的源或目的位于指定结点之外,创建仿真例行程序57自动创建一个到仿真系统内的参考参数模块(已由例行程序57创建)的链路,以便用作输入或输出,并且在诸如仿真工作站20中的仿真系统中存储该模块。如所理解的,该参考参数模块被用来在仿真系统中为实际上不存在的仿真实例提供一个链接或一定输入和输出的目的,例如到现场器件的链接等。
图3举例说明了含有树状结构92的屏幕显示90,其中已经选择了一个单一控制器结点94(称为Sol_Man_1)。仿真操作员已调出一个弹出菜单96(例如,通过鼠标右击已选择的控制器94),以便获取一个“仿真转换”命令。显示屏90的右手边显示了已选择的控制器94中的模块。选择窗口96中的仿真转换命令调用应用程序57,然后如上所述的对于所选择的控制器结点94创建一个仿真。
特别是,例行程序57对于每个指定结点94内的每个控制模块创建仿真模块或块,随之一起创建参考参数模块用于存储至结点的输入和输出。图4举例说明这样的仿真实例,图4描述了一个显示屏100,该显示屏示出了仿真实例创建后对于已选择的控制器94的仿真实例。如显示屏100的右手边所示,该对于控制器结点94的仿真实例包括仿真模块Loop1-Loop6(从存储于配置数据库32中的结点94的实际模块Loop1-Loop6创建该仿真模块)。然而,作为转换处理的一部分,应用程序57已创建一个附加模块102(名为M_Ctlr1),此模块作为一个容器模块来保存控制器结点94的输入和输出参考。如上所述,在为一个结点创建已仿真的控制块和模块后,例行程序57确定已创建的仿真模块之外的任意输入/输出的存在,例如对于来自不包括在仿真实例内的其它结点的现场器件或模块的块或信号的参考。一旦检测到这样的输入/输出参考,例行程序57对于这些参考自动地创建一个参考模块,例如模块102,从而创建一个仿真系统内的模块,负责对于发送至或来自不是仿真的一部分的硬件,例如现场器件的信号提供或接受仿真实例的输入/输出。
图5描述了一个屏显示105,该屏显示示出了一个被转换的功能块108(具有一个已仿真的输入)和一组外部参考110a-110f,每个所述外部参考指定了一个HART器件输入或输出,(因而一个外部参考)实际上指向对于结点而创建的用来保存这些外部参考的一个外部参考模块。参考框110a已经被选择并且其属性被显示在弹出窗口112中,为此参考指定路径名称为M_Sol_Man_1控制器结点(已仿真的结点)中的C01CH01HART_PV模块。同样,图6描述了一个屏显示116,该屏显示解释C01CH01HART_PV模块为包括一组已在菜单框118中命名的外部参考参数。从这些外部参考参数中选择的一个参数(即HART_PV参数)的属性显示在弹出窗口120中。当然,对于与图4的参考参数模块102相关或存储在其中的每个其它参考参数保存相似的属性。
因而,正如所理解的,作为仿真转换的一部分,应用程序57创建外部参考参数模块,该模块存储与每个仿真块相关的外部参考的值和其它属性。尽管此处所描述的应用程序57对于每个指定的控制器结点创建单个外部参考模块,如果愿意,外部参考参数模块可以或多或少地保存外部参考。因此,例如,可以对于每个外部参考创建一个外部参考参数模块等。此操作也避免了仿真操作员必须为仿真系统人工指定或创建外部参考,这在以前既费时又总出现错误。此外,因为可以通过这些外部参考模块来处理来自仿真实例的输入和输出,所以这些模块的创建使运行一个仿真变得更加容易,其中这些外部参考模块由于它们的面向对象的属性而容易被访问和改变。
尽管对于创建仿真例行程序57来说识别和复制与控制器结点相关的控制块和其它模块是一件相对简单的事情,有这样的情况出现一个结点的某些控制或其它功能块或模块可以存储于此结点的控制器中且在其外部运行。例如,Fieldbus现场器件能够存储和执行控制块和其它的与处理控制系统的结点相关的模块。在这种情况下,创建仿真例行程序57可以首先通过在存储于配置数据库32中的配置方案中查找块,来识别在结点内但在控制器外的控制块或其它模块的存在。尽管这里描述的应用程序57专门查找Fieldbus功能块,也可能存在能够在结点的控制器外运行的其它类型的功能块,并且应用程序57也可以查找这些类型的块。当然,执行这些查找的方式将依赖于结点的控制器中所使用的编程和文档的类型。
一旦识别出功能块或与结点相关的模块存在但在那个结点的控制器之外,则创建仿真例行程序57可以在仿真工作站20a中复制那个块或创建一个模仿那个块的新的块。例如,为了复制块,创建仿真应用程序57可以从配置数据库或从实际存储该块的现场器件访问该块。如果现场器件或其它器件内的功能块与仿真中使用的控制器块不用相同的协议,就像通常实例一样,那么,应用程序57可以用控制器协议创建仿真块,该控制器协议最佳模仿现场器件内的功能块的功能性。这种功能可以在或不在仿真操作员的辅助下执行,该仿真操作员可被询问来对于现场器件中的功能块指定控制器协议块。作为替换,可以存储并使用指定不同协议的块之间的转换的包括参数转换的表格或列表,在控制器协议内创建模仿现场器件内的实际功能块的操作的功能块。
在对于例如Fieldbus功能块的外部功能块在控制器协议内创建功能块之后,创建仿真例行程序57然后可以以控制器协议块或模块执行的相同方式将那个功能块转换成仿真块。
当前仿真中出现的另一个问题是处理来自诸如输入和输出功能块的源的输入/输出错误指示的问题,这些源不再连接到控制系统内的实际器件或源,比如一个现场器件,或者没有仿真模式,因而呈现为提供错误或无效的数据或者导致诊断错误。在某些情况下,产生这些信号的块或源没有被设置用来仿真,因此来自这些块的信号导致产生错误的I/O消息。而且,用对于输入和输出的参考参数创建仿真实例导致这样一种情况,即,I/O故障可能被仿真控制模块或块检测到,即使实际上这样的I/O故障并不存在(因为没有发生真正的I/O)。根据发送到或来自仿真中这些块的数据的量,在仿真实例运行期间,可能检测到大量的错误消息,并且这些错误消息可被发送给仿真操作员作为输入/输出或诊断错误指示。在仿真期间处理这些虚假的错误消息会变得混乱和冗长乏味。
为了缓解这个问题,创建仿真应用程序57相对于实际处理控制系统改变在仿真实例中处理输入/输出信号的方法。特别是,创建仿真程序57禁止对例如在模拟输出(AO)和数字或离散输出(DO)块中以及在直接参考I/O通道的外部参数中,比如在上述所讨论的外部参考参数模块中的外部参数中坏的I/O的指示或检测。为了执行此操作,创建仿真应用程序57可故意禁止这些I/O信号的状态指示,例如,如果输出模块被指定在仿真工作站20a上运行则通过不设定用于I/O错误检测或仿真的位。当禁止这些状态或错误指示信号时,尽管I/O正常,也将出现仿真操作员接口,这将使仿真操作员培训在不受虚假的错误I/O指示信号的干扰下被执行。当然,创建仿真例行程序57在转换过程期间可以在仿真系统内执行禁止来自任何其它块或源的I/O错误检测,因为这些数据源没有被连接到实际的操作器件,比如现场器件,这些块或源可能有坏的或无效的I/O数据。
在为一个或多个结点创建一个仿真实例后,可在仿真工作站20a中执行此仿真实例用于培训或测试目的。在某些情况下,经由为每个结点的输入/输出所创建的参考,使用诸如OPC的任何已知技术,将仿真实例连接到一个标准仿真接口,例如HYSIS接口。当然,如果愿意,创建仿真例行程序57可提供自己的接口比如API(应用程序接口),使仿真操作员以任何想要的方式来指定或改变到仿真实例的输入和输出。
正如所理解的,可以使用单一命令通过单一接口来执行仿真实例的初始化、和速度的控制以及仿真实例内的信息视图的命令,即使不止一个结点被影响。此视图使仿真操作员发布单一请求,寻址仿真中涉及的所有结点。通过经由显示屏的结点指示区来选择不同的结点,可以影响和改变视图。
在大型培训系统中通常需要在培训会话中一个先前时间提供重新起动处理控制仿真的能力。而且也需要及时重放在从前一点开始的仿真中采取的操作员动作。这些功能可以通过应用程序58来执行,应用程序58可以,例如通过图2的显示屏70上的下拉菜单来起动。
在过去,捕获正在运行的仿真的瞬像比较困难,因为它通常需要提供一个从仿真实例内的不同功能块或模块复制每个期望参数的请求。然而,因为这些请求必须单独发送到不同的模块,并且要花费有限时间来执行,因此,在不停止仿真一段扩展的时间期间来允许这种复制发生的情况下,在同一实例中复制仿真系统的所有模块的状态实际上是不可能的。在具有许多控制模块的大型仿真系统中,这种复制处理可能导致相当的延迟,从而导致仿真中明显的中断。
为了加速捕获瞬像的处理,已经发现可以使用仿真系统内的模块的冗余能力。具体地,众所周知,许多控制模块,诸如在图1的控制器12a、14a和16a中执行的控制模块和块包括冗余能力。更具体地,这些控制模块通常被创建用来定期或变化地将模块的参数值等发送到位于冗余控制器12R、14R和16R中的冗余控制模块。冗余控制模块以这样一种方式来更新它们自己,即冗余控制器12R、14R和16R在任何时候都可以在一旦控制器12a、14a或16a中的单独一个失败时接管处理控制系统的主要操作。
在创建仿真实例的仿真模块的处理期间,创建仿真应用程序57可以将每个由仿真模块产生的冗余信号连接到一个冗余模块或一个仿真计算机20a内的特定存储器地址,并且使这些信号被写入和保存在一个已知的存储器位置。这样,创建仿真应用程序57不是对仿真实例内的每个模块创建冗余控制模块,而仅需要将由仿真模块产生的冗余信号连接到特定和专用的存储器位置,该位置可以或可以不是分离模块内的存储器位置。在仿真系统的运行期间,然后,捕获在仿真模块的正常进程中创建的冗余信号,并且以任何逻辑方式将这些信号内的数据保存在一个对于以后检索容易访问的存储器中。之后,在仿真实例的运行过程中的任何时间,通过将以该逻辑方式存储的冗余数据复制到可由操作员访问的缓冲器或文件中,应用程序58可以创建正在运行的仿真的瞬像。因为用于冗余数据的存储器位置是专用的并且是在容易访问的存储器中,因此能够快速地执行复制处理,该复制处理可以是块复制,与复制存储在实际仿真实例的不同模块中的数据相比,加速了捕获仿真系统瞬像所用的时间。因此,当创建一个特定时间的瞬像时,例行程序58仅需要在特定时间暂停仿真系统的运行,将专用存储器位置的内容复制到瞬像文件,然后继续仿真系统的运行,其中复制处理通常可以非常迅速地完成。
图7解释了屏幕显示130,该屏幕显示可被仿真操作员用来在一个特定时间起动仿真系统的瞬像的捕获。如所述的,仿真操作员可以保存在一个选择的结点内系统的瞬像,该已选择的结点是由结点指示区72所指定的,并且仿真操作员可以命名那个瞬像以便将来参考。当然,对于任何具有正常冗余能力的结点,可以在逐结点的基础上捕获这个瞬像。如果愿意,瞬像收集应用程序58可以指示处理控制系统的每个结点来同时捕获瞬像,这样就获取了多结点瞬像。
相同地,如图8所示,通过起动恢复应用程序(例行程序58的一部分)并选择一个要恢复的系统的先前瞬像,仿真操作员可以将仿真系统恢复到在所保存的瞬像中捕获的先前设置。当然,由仿真操作员选择的恢复文件通常是先前作为瞬像保存的文件,并且该恢复应用程序将取出恢复文件中的那个数据并且以任何标准或任何已知方法将该数据写入仿真模块。在该操作期间,例行程序58将暂停仿真系统的运行,访问由仿真操作员指定的瞬像文件,将瞬像文件的内容复制到可通信地互相连接的仿真模块中,并且然后继续仿真系统的运行。
尽管处理请求来保存或恢复仿真,相关仿真的仿真模块的执行停止。为此,应当用最小的延迟完成保存和恢复。如果愿意,可以使用OPC将有关保存和恢复的命令从应用程序/培训台传递到结点。在这种情况下,相关的应用程序负责将保存和恢复命令发布到每个感兴趣的结点。最好是,当保存命令起动时,仿真控制应用程序58将在显示器上提供一个对话,该对话允许仿真操作员指定将要保存的结点。而且,仿真操作员可以提供一个将用数据文件来保存的描述。相同地,当恢复命令起动时,仿真控制应用程序58将呈现一个已经创建瞬像文件的时间列表以及相关的描述。当选择一个特定时间时,仿真操作员可使用保存的数据来选择将被恢复的结点。
如果愿意,仿真控制应用程序58支持这样一种选择,就是允许将保存命令自动和定期地发布到所有的结点。为了起动自动保存,仿真操作员必须使能这种特征并且指定保存的频率和将用文件包括的描述。在MicrosoftTMWord自动保存Tools Option之后可以模仿这种特征的对话。作为这个特征的运行结果,仿真控制应用程序58将定期地发布一个捕获和保存命令到仿真实例的结点。为了避免中断培训会话,保存命令的处理将使仿真模块的执行停止,从而该命令可以毫无延迟地执行。
当被执行时,这里所描述的任何软件可被存储在诸如磁盘、激光盘、或其它存储介质的任一计算机可读存储器中,计算机或处理器的RAM或ROM中等。同样地,可以使用任何已知或期望的发送方法,包括例如在计算机可读盘上或其它可传输的计算机存储装置或通过诸如电话线、因特网、万维网、任何其它局域网或广域网等的通信信道,这些软件都可以被发送到用户、处理控制系统或操作员工作站(发送被视为与经由可传递存储介质提供这样的软件相同或可互换)。而且,在通过通信信道发送之前,这些软件可不用调制直接提供或可以使用任何合适的调制载波来调制。
因此,虽然已经参考具体实例描述了本发明,所述具体实例仅为示意性而不是对本发明的限制,但是对于本领域的技术人员很明显的是,在不脱离本发明的精神和范围的情况下,可以做出所公开实施例的修改、增加和删除。
权利要求
1.一种获得处理控制系统的仿真系统的瞬像的方法,所述处理控制系统包括具有冗余能力的模块,该模块创建将被发送到处理控制系统内的冗余模块的冗余信号,所述方法包括以下步骤创建仿真系统为多个可通信地互相连接的仿真模块,所述仿真模块对于其参数创建冗余信号;在仿真系统的运行期间,发送仿真系统内可通信地互相连接的仿真模块的冗余信号,该冗余信号将被存储在仿真计算机中的专用存储器位置中;以及通过下列步骤存储仿真系统在特定时间的瞬像在所述特定时间暂停仿真系统的运行;将专用存储器位置的内容复制到一个瞬像文件中;以及继续所述仿真系统的运行。
2.如权利要求1所述的获得仿真系统的瞬像的方法,还包括通过暂停所述仿真系统的运行、访问所述瞬像文件、将所述瞬像文件的内容复制到可通信地互相连接的仿真模块中、以及然后继续所述仿真系统的运行,将仿真系统恢复成先前的状态。
3.如权利要求1所述的获得仿真系统的瞬像的方法,包括步骤在仿真系统的运行期间,自动和定期地执行与存储仿真系统的瞬像的步骤相关的步骤。
全文摘要
一种仿真系统,它附加到用于处理控制系统的一个或更多全配置的结点的配置数据库,并且将这些结点内的模块复制到一个或多个仿真计算机中作为仿真模块。该仿真系统包括一个算法,在复制处理过程中或之后,对于被复制的每个结点自动创建一个参考参数模块,该模块对于该结点外部的信号的每个输入、输出或其它参考,例如其它结点中的输入/输出块、其它功能块、现场器件中的发送器块等存储参考参数。在Fieldbus功能块的情况下,仿真系统在仿真工作站内以控制器结点的协议自动创建一个功能块,模仿Fieldbus功能块的操作,然后创建具有那些模仿的Fieldbus功能块的仿真系统,就像它们初始就被配置在被仿真的控制器中,而不是在控制器外部的现场器件中。
文档编号G06F17/30GK101067750SQ200710109580
公开日2007年11月7日 申请日期2003年10月21日 优先权日2002年10月21日
发明者马克·尼克松, 特伦斯·布莱文斯, 丹尼斯·史蒂文森, 迈克尔·卢卡斯 申请人:费舍-柔斯芒特系统股份有限公司