动态可重用类的制造方法与工艺

文档序号:11409888阅读:181来源:国知局
动态可重用类的制造方法与工艺
动态可重用类相关申请的交叉引用本申请要求2012年10月8日提交的、名称为“ProcessPlantConfigurationsUsingFlexibleObjects”的美国临时申请No.61/711,110的权益,将其全部内容引入于此以供参考。此外,本申请要求2012年10月8日提交的、名称为“ConfigurableUserDisplaysinaProcessControlSystem”的美国临时申请No.61/711,105的权益,将其全部内容引入于此以供参考。此外,本申请与同时提交的、名称为“MethodandApparatusforManagingProcessControlConfiguration”的美国申请No.____有关,将其全部内容引入于此以供参考。本申请还与同时提交的、名称为“DerivedandLinkedDefinitionswithOverride”的美国申请No._____有关,将其全部内容引入于此以供参考。此外,本申请与同时提交的、名称为“DynamicallyReusableClasses”的美国申请No._____有关,将其全部内容引入于此以供参考。技术领域本发明概括而言涉及过程工厂,更具体而言,涉及在配置和查看过程工厂或过程控制系统的操作时使用灵活的对象。

背景技术:
分布式过程控制系统,如用于化工、石油或其他过程工厂中的分布式过程控制系统,通常包括一个或多个过程控制器,该过程控制器经由模拟、数字或组合的模拟/数字总线可通信地耦接到一个或多个现场设备。现场设备可以例如是阀、阀定位器、开关和发射器(例如温度、压强、液位和流速传感器),其位于过程环境内并且执行诸如打开或关闭阀、测量过程参数等过程功能。智能现场设备,例如符合已知的现场总线协议的现场设备还可以执行控制计算、报警功能和其他通常实现在控制器内的控制功能。过程控制器也通常位于工厂环境内,其接收指示由现场设备做出的过程测量值的信号和/或与现场设备有关的其他信息,并且执行控制器应用,该控制器应用例如运行不同的控制模块,这些控制模块做出过程控制决策、基于接收的信息产生控制信号以及与现场设备(例如HART和现场总线现场设备)中正在执行的控制模块或块进行协作。控制器中的控制模块通过通信线路向现场设备发送控制信号,从而控制过程工厂的操作。来自现场设备和控制器的信息通常可以通过数据高速通道被一个或多个其他硬件设备所用,这些硬件设备如通常放置在远离严苛的工厂环境的控制室或其他位置中的操作者工作站、个人计算机、数据历史库、报告产生器、集中式数据库等。这些硬件设备运行例如使得操作者能够执行针对过程的功能的应用,例如改变过程控制例程的设置,修改控制器或现场设备内的控制模块的操作,查看过程的当前状态,查看由现场设备和控制器生成的警报,出于训练人员或者测试过程控制软件的目的而仿真过程的操作,保持和更新配置数据库,等等。例如,爱默生过程管理公司所销售的DeltaVTM控制系统包括存储在位于过程工厂内的不同位置处的不同设备中所存储和运行的多个应用。位于一个或多个操作者工作站中的配置应用使得用户能够创建或改变过程控制模块并且经由数据高速通道将这些过程控制模块下载到专用的分布式控制器。通常,这些控制模块由可通信地互连的功能块构成,它们是面向对象的编程协议中的对象,用于基于输入来执行控制方案中的功能以及向控制方案中的其他功能块提供输出。该配置应用还允许配置设计者创建或改变由查看应用所使用的操作者界面以向操作者显示数据,以及使得操作者能够改变过程控制例程中的设置,例如设置点。每个专用的控制器,以及在某些情况下,一个或多个现场设备,存储并执行相应的控制器应用,该控制器应用运行分发给它并下载给它的控制模块,以实现实际的过程控制功能。查看应用可以在一个或多个操作者工作站(或者与操作者工作站和数据高速通道可通信地连接的一个或多个远程计算设备)上运行,经由数据高速通道从控制器应用接收数据并且将该数据显示给过程控制系设计者、操作者或者使用该用户界面的用户,并且可以提供任意数量的不同视图,例如操作者视图,工程师视图,技术人员视图,等等。数据历史库应用通常存储在数据历史库设备中并且由其运行,该数据历史库设备收集并存储跨数据高速通道提供的部分或所有数据,而配置数据库应用可以在附接到该数据高速通道的另一个计算机中运行,以存储当前过程控制例程配置和与其相关联的数据。或者,配置数据库可以位于与配置应用相同的工作站中。当前,配置应用通常包括模板对象或项目的库,如功能块模板对象,以及在一些情况下,包括控制模块模板对象。这些配置应用用于配置过程工厂的控制策略并且在过程工厂的用户接口处提供显示视图。模板对象都具有与其相关联的缺省性质、设置和方法。使用配置应用的工程师可以选择这些模板对象并且基本上将所选择的模板对象的副本放置在配置屏幕中以开发模块,例如控制模块。在选择和将模板对象放置在配置屏幕的过程期间,工程师将这些对象的输入和输出互连并且改变它们的参数、名称、标签和其他性质以创建特定控制模块用于过程工厂中的特定应用。在创建了一个或多个这种控制模块之后,工程师可以将所创建的模块存储在库中或者存储在配置数据存储区域中。工程师然后可以实例化控制模块(例如使得创建与控制模块相对应的可扩展文件)并且将其下载到适当的一个或多个控制器、现场设备和其他过程元素以在过程工厂的运行期间执行。其后,工程师通常通过在显示创建应用中选择和构建显示对象来为过程工厂内的操作者、维护人员等创建一个或多个显示。这些显示通常以系统级实现在一个或多个工作站中,并且向操作者或维护人员提供关于控制系统或工厂中的设备的操作状态的预先配置的显示。通常,这些显示采取报警显示、控制显示、维护显示等形式,其中报警显示用于接收和显示由过程工厂内的控制器或设备产生的警报,控制显示指示在过程工厂内受控的控制器和其他设备的操作状态,维护显示指示过程工厂内的设备的功能状态。这些显示通常被预先配置为以已知方式显示从过程工厂内的过程控制模块、设备或其他过程元素接收的信息或数据。在一些已知的系统中,通过使用对象来创建显示,其中每个对象具有与物理或逻辑元素相关联的图形,并且每个对象可通信地关联到物理或逻辑元素以接收关于该物理或逻辑元素的数据。对象可以基于接收到的数据改变显示屏上的图形以例如显示罐是半满的,显示流量传感器测量的流体流量,等等。与控制配置应用类似,显示创建应用可以具有模板图形显示项目,如罐、阀、传感器、类似滑杆、开/关开关的操作者控制按钮等,其可以以任何希望的配置放置在屏幕上以创建操作者显示、维护显示等。模板图形显示项目可以与配置对象一起存储在模板库中或者可以存储在不同的模板库中。当放置在屏幕上时,各个图形项目可以在屏幕上以向不同用户提供过程工厂的交互工作的一些信息或显示的形式来互连。然而,为了以动画展示图形显示,显示创建者必须通过指定图形项目和过程工厂内的有关数据源之间的通信链接来手动将每个图形项目与过程工厂内产生的数据(如传感器测量的数据或者指示阀位置的数据等)关联起来。该过程非常冗长、耗时并且可能产生错误。此外,一旦创建了显示,其在其配置和布局中保持静态。虽然控制配置应用内的控制模板对象和显示创建应用内的显示项目由于能够被复制和使用来创建不同的控制模块和图形显示而非常方便,但是常常需要为过程工厂内的不同设备和显示创建大量的相同控制模块和图形显示。例如,许多中到大型的过程工厂具有相同或类似设备的大量实例,这些实例可以使用相同的基本通用控制模块和显示来控制和查看。为了解决这一问题,美国专利No.7,043,311(其全部内容被引入于此以供参考)公开了一种过程工厂配置系统,其使用类对象(也称为模型类对象,并且在这里统称为类对象或类)来使得用户能够从一个公共的模块类对象创建大量控制模块、单元或设备模块,或显示模块。这些控制、设备或显示模块被创建为模块类或类对象的实例,并且包括模块类对象的所有特征和性质,从而使得更容易从单个或公共类模块对象创建多个类似的控制、设备或显示对象。实例又可以具有它们自身的子类,使得对象可以具有多代或多级关系。其后,从模块类对象创建的每个实例、子类或多层子类可以通过对其相应的父对象(parentobject)进行改变并存储这些改变而自动改变。例如,模块实例保留它们到模块类对象的连接并在类模块改变或更新时自动更新。类似的,从不是类对象的父对象创建的子对象和多级子对象可以通过对父对象进行改变并存储这些改变而自动改变。在一种实施方式中,子对象中的至少一些存储在与库逻辑和/或物理分离的系统配置数据存储区域或其他数据存储区域中。然而,在例如过程工厂中使用的典型的控制系统中,可能有数百个类似的项目(如控制模块或显示元素)必须被定义。这些项目包括与例如流量或压强的控制相关联的控制策略,以及用于在图形显示中呈现这些控制策略的显示组件。现在,实现一个使用类或模块类对象来配置这些公共项目的配置系统非常常见,其中该配置系统包括模块类对象的库,并且使得用户能够产生任意特定模块类对象的许多副本或实例以供工厂中使用。在这些系统中,对对象的修改必须首先对模型类对象进行,这然后使得这些改变自动传播到该模块类对象的所有实例、子对象和多级子对象(如果有的话)。事实上,这些配置系统被设计为仅允许直接对模型实例进行少量调整,如改变模型实例中的参数值。例如,控制策略的典型类行为使得仅在参数级别上并且仅在特定参数被授权改变从模块类内进行的访问时才能够修改类项目的实例。结果,可以开发许多不同的模块类对象以配置彼此仅有少量或微小差别的过程工厂项目(如工厂设备)。不幸地,随着定义的这些模块类对象越来越多,通过使用配置类对象获得的原始生产力提高反而降低。更进一步,如上所述,使用基于类的配置项目的当前配置系统通常被设计为保证当对类项目进行改变时,该改变立即传播到该类的所有模块实例。这一特征被设计到配置系统中,因为实例出于它们的定义而实际上共享或指向它们的相应的父项目或对象(例如,该类项目或对象)。虽然这种自动改变传播特征使得控制系统设计更加简单并且在设计的早期阶段更加有效,但是一旦控制系统在工厂中安装并运行,同时改变与特定模块类对象相关联的所有实例是不可接受的或者不现实的。重要的是,给定的模块类对象通常在其生命周期期间经历许多改变。在模块类对象创建之后,对模块类的后续改变(可能是结构性改变或者参数值改变)导致修改过的模块类,其改变需要被分发给模块实例、分发给一个或多个子对象和/或分发给其他模块类,如派生的模块类。然而,实际上,在工厂中运行的每个受影响的子对象可能需要在实际的过程设备上进行单独测试和验证,并且因此用户可能需要将对模块类对象的改变延迟几个月或几年以等待适当的时间来更新该类对象的所有模块实例。此外,由于对模块类对象的改变被自动分发给派生的对象,所以对模块类的简单改变将影响数百个,甚至可能数千个模块实例和子对象。许多过程工业不能处理在工厂操作阶段期间扩展该工厂的多个区域所需要的破坏性下载。结果是,控制系统被初始设计具有关联到模块类对象的模块实例,只用于在系统进入工厂操作阶段之前被最终转换到无类控制模块的这些实例。出于上述各种原因,类实例在许多情况中被中断或者与原始的类对象解除关联以使得能够对类实例进行改变,这从而创建了新的类模块或者允许对类对象进行改变而不被立即传播给所有实例。然而,这一操作首先破坏了使用基于类的配置对象的优点。即使在类/实例连接不被切断的较小系统中,仍然难以在不影响该类中的所有实例的情况下定义或调试对控制对象的新改变,因为一方面,不可能在实例上实现新改变,另一方面,当对类对象做出任何改变时,该改变将自动应用于类对象的每个实例。这里,再次,子对象中的一个(例如一个实例)必须被从类对象暂时断开,以使得能够在该实例上设计和测试新改变。在这种情况下,一旦改变完成,将必须手动对类对象进行改变,并且用户必须清除用于测试的实例并将该实例重新附接到其适当的类对象。这样,实际上,为了处理这些问题,用户必须创建整个单独的类对象以通过将越来越多的类与用于测试目的的原始类对象断开来处理实例之间的轻微改变,或者必须完全放弃类概念。进一步的,当前市场中使用的大多数配置系统不使用类来配置控制系统的图形显示。典型的,图形与控制策略单独地定义,并且一个图形项目通常与多个不同的控制策略类一起使用。因此,当对特定图形项目作出改变时,用户必须核实改变后的图形项目与所有策略实例在所有显示上一起工作。当以上述方式出现对控制策略的改变并且控制策略类激增时,每个实例的每个图形项目需要被验证,这非常耗时并且不实用。虽然图形使用可以用于更新类似的图形项目,然而该使用将使得所有所选的图形项目相同。这样,最终,该方案类似于使用图形项目的类。此外,设计图形形式的实例差很困难并且需要编程技巧。由于各种各样的改变都是允许的并且事实上在图形项目中是希望的,因此需要使用特殊形式设计指定了在从公共图形对象创建的每个图形显示项目中以覆盖(override)结构允许或支持哪些改变。这些改变例如包括指定诸如允许一个实例上的用户为该项目的一部分定义旋转、选择必须在显示中示出哪些串和变量,以及哪些是可选的,之类的改变。没有这些预先设计,图形对象甚至不能对其作出微小的改变。不幸的是,试图设计或预先指定图形项目中的可允许的改变的配置系统很快变得不可用,因为对图形项目的改变非常普遍。结果是,有效地维持图形成本是控制系统中正在进行的问题,并且只在维持图形的步骤必须与对控制配置系统中使用的控制模块类做出的改变相协调时才加剧。更概括而言,用户想要使用可重用的图形组件配置显示,并且能够看到他们做出的与原始图形定义的改变。此外,他们想要能够在一个地方对定义做出改变,并且使得这些改变应用于图形定义所用于的显示,其后维持他们对各种显示做出的特定改变。当前,在一些显示系统中,显示组件可以分组为动态模型(dynamo),其是基本图形的组合,如配置有动画和事件句柄行为的矩形和文本块。这些基本形状可被配置为各种组合以代表来自工厂部分的设备或数据。一些动态模型通常作为显示配置系统的一部分而立即可用,而其他动态模型被项目工程创建和维持,并且还有一些其他动态模型被顾客配置。当前,当这些动态模型在显示上使用时,完整的副本被放置在使用原始动态模型的每个实例的显示中。然而,并没有回到原始动态模型的硬链接。然而,每个实例可以改变动态模型的若干个方面,如动画表达路径、位置朝向或允许该特定显示匹配在使用显示元素的用户接口的当前显示域内的其他可视方面。该方案有几个问题和限制。概括而言,顾客试图使得财务成本最小化并且试图使得显示的质量和可靠性最大化。然而,动态模型定义总是需要一个或多个改变。在对主或原始动态模型做出改变之后,顾客需要通过更新使用该特定动态模型的所有显示来将那些改变投入生产。然而,由于正被改变的原始动态模型及其副本之间没有硬链接,因此确定动态模型用在哪里是一个严重的问题。通常,创建的每个动态模型包括串域,用于存储动态模型名称和版本。然而,不是所有顾客都使用该技术,并且在任意情况下,该域可能在编辑会话期间被用户不经意地清除或删除,从而失去回到原始动态模型的命名连接。此外,如果新的动态模型从已有的动态模型创建,并且该参考值没有更新,则串将具有到原始动态模型名称和版本的不正确参考。此外,如果差是显示上的改变或对动态模型的改变,则只可能知道动态模型中什么是不同的,但是不知道为什么。因此,用户难以确定当对原始动态模型做出改变时是否需要向特定显示中正使用的特定动态模型结合该改变。进一步的,虽然用户能够将实例更新到新的动态模型并且保持实例特定改变,但是用户通常不知道哪些改变在新的主控中,以及哪些是特定于实例的,因此不能确定显示项目内的哪些差应当留在原处。当前,更新到动态模型的新版本需要完全重新拷贝动态模型以代替在显示上配置的值。该过程重写了显示项目上的任何特定于实例的改变。结果是,用户然后必须手动重新应用之前对显示项目或实例做出的所有改变,并且如果用户忘掉了一些改变,则这些改变将丢失。这一操作不利的影响操作者显示的质量并且还消耗更长时间,因为其实现了一个手动的过程。更进一步的,原始动态模型级别只是一级深度的。结果是,动态模型只能从基本图形构造而来而不能从其他动态模型构造而来,这防止了构建用于其他动态模型的基础的一组动态模型。

技术实现要素:
配置系统使用灵活的或可修改的对象(例如模块类对象、模块实例对象和子对象)技术来使得基于类的配置在开发新的控制策略或显示元素时以及在当这些元素在工厂环境中运行或执行时对这些元素做出改变时能够更有用和更有利。这种配置系统在这里可交换地称为“灵活配置系统”或“配置系统”。更具体而言,使用新的灵活对象降低了类对象的扩散并且通过允许从类对象做出的实例之间的更多改变而使得单个类对象可以应用于各种各样的应用(使用)。具有新的灵活对象的配置系统允许用户根据特定需要例如向基于类的实例(或其他子对象)添加项目,但是以不迫使实例或子对象从类移除或解除关联的形式并且以不会影响同一个类的其他实例的形式,除非用户希望对其他实例或父对象本身做出那种改变。类似的,添加到实例或子对象的项目可以在实例或子对象内被标记,并且可以被附加标签以不干扰在父级别上以及出于文档清理目的而添加的任何事物。进一步的,具有新的灵活对象的配置系统支持子级别处的父内容的禁用和/或子级别处的父内容的删除。在子级别禁用或删除父内容例如允许用户更好地处理比剩余类实例具有更少功能的实例,同时仍然使得核心类功能保留类的一部分。如果希望,子级别处被禁用的任何内容可以被可视地变为无色或者在支持查看子级别的配置使用中变得不可见,并且能够被用户在任意时间重新启用。禁用的内容在运行时将不再使用,但是仍然保留在配置环境中。如果用户决定在子对象内包括之前禁用的父对象的部分,则该子对象可以被标记用于下载以更新控制系统中的运行时版本。此外,使用灵活对象的配置系统通过允许将改变或更新以分阶段形式分发给实例和子对象而使得类在运行工厂中更加有用。例如,用户或配置工程师可以通过允许用户对类对象做出改变并且决定该类对象的哪个实例以及在什么时间应当接收那些改变来将类改变向下传播到实例,这导致工厂性能提高并且运行时支持更好,而不是迫使所有类改变立刻传递给该类的所有实例。这种分阶段特征允许用户做出类改变并且将该改变仅传播到需要改变的实例。用户然后可以稍后返回并且将该改变传播给更多实例或者剩余实例。更具体地,这种分阶段特征允许用户基于当前工厂操作考虑决定哪个实例可以使得向其下载配置更新并且可以在流体时间线上分阶段引入类改变,这在过程操作中是有意义的,而不是必须手动管理下载或者同时向所有实例执行自动下载。作为另一个特征,使用灵活对象的配置系统通过选择性地将实例改变传播给类对象而提高了用户递增地做出和验证改变的能力。例如,配置系统使得用户能够采取在一个实例上做出的改变并且将该改变传播回类对象以分发回剩余实例。该特征向用户提供了内置的测试环境,其中用户能够在将一个改变转出(rollout)到类对象的所有其他实例之前改变和测试一个实例。可以理解,本文描述的配置系统保持了基于类的行为的优点,同时该系统提供了使得用户能够控制将改变从模块类和其他父对象转出到控制器、设备、显示器或过程工厂或过程控制系统内的其他过程元素中运行的模块实例和其他子对象,例如在过程工厂或系统的运行时操作环境中。这样,本文描述的配置系统允许将对模块类和其他父对象的改变结合到过程工厂或过程控制系统的(对应于父对象和相应的子对象的)过程元素中,从而以受控的、随时间分阶段的形式改变工厂或系统操作和/或行为,使得过程工厂或者过程控制系统的一部分中(或者在一些情况下,在整个工厂或者系统中)的实时操作不被不利地影响。在一些情况下,对父对象的改变不被传播给子对象。此外,由于改变可以以受控的形式递增地应用于过程工厂或者系统的过程元素(例如,代替等待直到与所改变的父对象的子对象相对应的所有过程元素都适合的更新的时间),所以在将改变应用于过程工厂或者过程控制系统的一部分(或者在一些情况下,应用于整个工厂或者系统)时的不必要的延迟的出现被减少,从而提高了过程工厂或者系统随着时间的总体效率和生产率。此外,本文描述的技术、系统和方法允许用户安全地在父或子对象的临时副本上进行工作,并且使得父或子对象准备好仅在接收到适当的批准时部署(下载)到控制器、设备或其他过程元素。这样,在过程工厂或者控制系统的运行时环境中批准过程元素中应用的或者实例化的修改或改变的草案(来自改变的父对象或者改变的子对象)降低了向工厂或者系统中不利地结合不完整的或者不正确的修改或改变的机会。也就是说,通过使用本文所描述的草案和批准技术,配置系统提高了结合到过程工厂或者系统的改变的准确性,并且从而提高了过程工厂或者系统的操作质量。在一种情况下,配置系统可以通过使用可能松散地基于图书发布模型的编辑和分发机制来执行分阶段,其中用户对最终批准的草案进行工作,产生被分发给工厂内的各个位置的版本。一些控制器、显示或其他工厂资产将在最新的版本发布时得到或使用该最新的版本,而其他可以仅在其非常希望或者方便这么做时才结合或更新到新版本。进一步的,使用该系统,用户能够对配置库和系统配置项目作出改变而不会触发下载并且不可能影响运行中的系统。用户可以将对项目或对象的修改保存为草案,并且一旦改变被批准,能够创建被分发和下载给运行中的系统的版本。更具体而言,在配置系统中,模块实例(和其他子对象)被连接到模块类或父对象的特定版本,这使得模块类或父对象有可能经过附加的改变(版本)而不立即影响其子。这样,在示例性例子中,该特征使得不必每次对模块类做出改变时都下载模块实例,而是使得用户能够控制模块实例被更新以链接到模块类的最新版本的时间。事实上,不管父对象是否是库项目,子对象被连接到它们的父对象的特定版本,从而允许父对象的改变或修改不立即影响其所有子对象。因此,使用本文所述的配置系统的分阶段技术,用户可以选择对库项目或父对象的改变是否被自动分发给子对象,或者用户是否将手动管理该分发。此外,父库和系统配置项目可能经历草案、版本和(对于系统配置项目)下载版本的多个阶段。这里,用户可以创建父对象的临时副本(草案),并且仅当获得适当的批准时将修改后的项目版本下载到运行中的系统,这表示可以在不影响运行的系统的情况下对草案项目进行测试。类似的,为了改进用户体验以及使得用户控制时感觉更好,用户可以看到草案、当前版本和已下载的版本之间的差异。在特定项目的情况下,用户可以选择查看草案和当前版本之间、草案和已下载的版本之间、当前版本和已下载的版本之间等的差异。此外,库和系统配置项目可以支持参考,在这种情况下有可能查看哪些系统配置项目使用了库项目,以及系统配置项目是否在使用该库项目的最新版本。更进一步的,在模块类和实例结构中使用版本使得有可能创建包,其是特定父项目版本的基本版本集合,并且分发这些包以供同时下载。该特征使得能够定义与特定方案或问题有关的库包,并且根据该库包可以创建大多数或者所有必需的工厂配置。其后,当包被更新以纠正问题或提高功能时,可以通过安装与包同时包含的库项目的新版本来安装包的新版本。然后用户可以根据工厂场景的允许来自由更新系统配置,这消除或降低了当前配置系统中产生的需要对父项目进行更新以立即用于更新其子项目的逻辑问题。例如,本文描述的配置系统可以用于管理库和系统配置项目,包括工程单元、警报设置和全局值、安全对象(如用户账户、功能和参数安全性以及授权策略),并且还可以应用于用户产生的文档,如标准操作过程(SOP)、启动/停止过程、警报帮助等。在显示项目的情况下,配置系统的灵活对象使得用户能够创建链接的图形可配置形状(例如图形元素模块(GraphicalElementModules)或GEM),该图形可配置形状可重用并且将其他形状与行为进行组合。GEM提供了可配置形状的一个或多个可视化表示或视图。GEM的定义存储与该GEM在特定显示和其他对象中的使用/实例分开存储(例如以使得能够共享GEM定义)。此外,配置系统的灵活对象支持定义图形定义或者从其他图形定义派生出图形定义(例如显示和GEM)。例如,一个GEM可以使用其他GEM构建。典型的,对父对象的覆盖、改变或修改导致对实例或子对象的相应改变。配置系统的灵活对象扩展了该覆盖概念以允许使用控制策略功能块所支持的简单参数覆盖来对显示项目的内部结构进行改变。这些附加的覆盖例如可以包括对性质、动画和事件句柄的覆盖,支持添加图形形状、动画或事件句柄的覆盖,支持图形形状的移动的覆盖和/或支持图形形状、动画或事件句柄的移除的覆盖。特定显示实例的覆盖可以与实例一起而与GEM定义分开地存储,以使得有可能知道与显示实例中使用的GEM定义中已经做出的改变相比,哪些改变是特定于显示实例的。这样,对GEM和其他显示对象(父或子对象)的覆盖可以包括对GEM和其他显示对象的内容的修改和改变。此外,当加载显示时,GEM定义可以用于定义显示项目的初始表示、动画和事件处理行为。其后,可以根据需要将覆盖应用于显示项目的特定显示实例或者类对象以提供特定于实例的改变。该特征可以使用简单性质覆盖来实现以改变形状的朝向或位置,或者移除形状,或者用一个形状替换另一个形状,如移除原文地显示值的文本框和添加图形地将值显示为填充百分比的矩形。或者,覆盖可以添加动画或事件句柄或者通过改变已有的动画或事件句柄的一个或多个性质来改变已有的动画或事件句柄。在一个实施例中,修改后的覆盖的GEM可以存储或维护为GEM定义的子对象。此外,显示配置系统使得能够在其他GEM上构建GEM,这允许针对特定功能、产业组或者顾客容易地创建更通用的项目。在一个例子中,可以通过派生来扩展GEM,在这种情况下,可以在派生的GEM中应用相同的覆盖结构,从而允许将显示项目扩展为库中的新的显示类对象,或者扩展为要由操作者在运行时打开的实例。显示配置系统还可以包括使得用户能够容易地确定GEM的(其中使用了GEM的)所有实例并且容易地确定哪些显示是从其他显示派生的的机制。类似的,显示配置系统可以包括使得用户能够决定性地确定派生的定义或用法上已经改变了什么、能够覆盖(调整(tweak))复合图形(例如GEM)的内部结构同时保持到原始GEM定义的链接的关系、能够添加和移除形状、能够添加和移除数据(动画)、能够添加和移除事件句柄、以及能够覆盖形状、动画、事件句柄和GEM定义中的任意其他对象类型的性质的机制。进一步的,显示配置系统可以包括使得用户能够将定义或派生的定义(显示类项目)更新到新的版本并将那些改变应用到实例而不失去实例的覆盖的机制。显示配置系统还可以包括使得用户能够通过组合其他GEM定义来创建GEM、能够从一个显示派生出另一个显示、能够从一个GEM派生出另一个GEM以及能够指示对显示实例做出的调整和覆盖的机制。显示配置系统提供的图形元素和显示的灵活配置允许对过程工厂或过程控制系统更加安全有效地实时监控、控制和/或操作。具体而言,显示配置系统允许操作者在工厂的实时或者运行时操作环境中以及在配置环境中,配置为过程控制系统或工厂的一个或多个部分的特定监控、控制和/或操作特别定做或定制的图形元素和/或显示。该图形元素和/或显示可以附加地或者替换地被特别定做或定制用于特定操作者、操作者组、组织实体、商业或其他实体。显示配置实体还允许操作者存储定制的图形元素和/或定制的显示以用于一般性(例如工厂级或系统级、实时环境或配置环境)的访问、使用、重用和结合。因此,由于在过程工厂或系统的多种环境中图形元素和/或图形显示的配置是流线型的并且是可以完全定制的,因此使得操作者能够有效安全地操作过程工厂或系统。进一步的,由于图形元素和/或显示被定制用于过程工厂或系统的特定部分或实体的特定目的,因此使用定制的图形元素和/或显示能够容易地、快速地识别由过程工厂或系统的特定部分或实体(例如在控制一个或多个过程时)产生的并且需要必要的人工和/或自动干预的实时数据。在一个例子中,在定制的图形元素和/或显示处接收和识别实时数据,并且基于识别的数据的内容,手动和/或自动地产生更新的控制算法并将其发送给过程工厂以执行。在其他例子中,基于接收和识别的数据的内容,恢复动作指令被手动或自动发送给过程工厂或系统的一个或多个过程元素以执行,和/或关闭或初始化指令被发送给过程工厂或系统的一个或多个过程元素以执行。当然,基于接收到的和识别的实时数据向过程工厂或系统发送和/或由其执行其他数据、配置和/或指令也是可能的。在一些情况下,基于识别的实时数据而传递给过程工厂或系统的数据、配置和/或指令导致对过程工厂或系统的改变(例如对过程元素的更新的或新的配置)或者造成对其操作的改变。在一些情况下,所传递的数据、配置和/或指令使得过程工厂或控制系统执行一个动作(例如,从操作中移除特定过程元素、将一个源产生的数据重新路由到另一个源,等等)。因此,由于显示配置系统允许图形元素和/或显示产生更加定制和详细的信息(更具体而言,针对过程工厂或系统产生的实时数据),对过程工厂或过程控制系统的一个或多个部分的控制和/或操作进行的任何必要修改被更快地确定并结合到过程工厂或控制系统的运行时环境中。因此,利用本文描述的技术、方法和系统,过程工厂或系统的效率和安全性能够进一步提高。附图说明图1是位于过程工厂或者过程控制系统内的示例性分布式过程控制网络的方框图,包括实现配置应用的工作站,该配置应用使用模块类对象来配置过程工厂或者过程控制系统的控制和显示活动;图2是图1的反应器单元的图;图3是图2的反应器单元中使用的累加器装置实体的图;图4是图2的反应器单元中使用的出口阀系统的图;图5是示出了模块类对象和针对该模块类对象的单元、装置、控制和显示类型的相关联的模块对象之间的相互关系的示例性逻辑图;图6是反应器单元模块类对象的示例性逻辑图,其可以用于执行图1的工厂中的反应器的配置活动;图7是可以由配置操作者用来使用模块类对象配置过程工厂的配置屏幕的示例性图示;图8是用户修改图1的过程控制系统的库中存储的模块对象的示例性场景的方框图;图9是用户修改图1的过程控制系统的库中存储的模块对象的第二示例性场景的方框图;图10是包括附加动作的图9的第二示例性场景的方框图;图11是用户修改图1的过程控制系统的系统配置数据存储区中存储的模块对象的第三示例性场景的方框图;图12是示例性阀图形元素的第三可能视图;图13示出了示例性的定义使用模式的图;图14示出了示例性的嵌套定义使用模式的类图;图15示出了抽象的嵌套定义使用的实例;图16示出了示例性派生模式的图;图17示出了嵌套派生模式的实例的图;图18示出了基于定义创建的形状使用的实例;图19示出了应用于用法模式上的域值覆盖调整的实例;图20示出了应用于派生模式上的域值覆盖调整的实例;以及图21示出了多个基本上对对象的多个修改或调整的实例。具体实施方式现在参考图1,过程工厂10包括经由例如以太网连接或总线15耦接到多个工作站14的一个或多个过程控制器12。控制器12还经由多组通信线路或总线18耦接到过程工厂10内的设备或装置,其中图1中仅示出了连接到控制器12a的一组通信线路18。通信线路或总线18例如可以是有线连接、无线连接或者有线和无线连接的组合。控制器12可以利用仅使用Fisher-RosemountSystems公司销售的DeltaVTM控制器来实现,其能够与控制元素(如分布在整个过程工厂10内的现场设备和现场设备中的功能块)进行通信以执行一个或多个过程控制例程,从而实现过程工厂10或者过程工厂10中操作的一个或多个过程的希望的控制。工作站14(其例如可以是个人计算机)可以由一个或多个配置工程师使用来设计要由控制器12执行的过程控制例程19以及要由工作站14或其他计算机执行的显示例程,并且与控制器12通信以将这样的过程控制例程19下载到控制器12。此外,工作站14可以执行用于接收和显示与过程工厂10或过程工厂10运行期间的元素有关的信息的显示例程。每个工作站14包括用于存储诸如配置设计应用和显示或查看应用之类的应用以及用于存储诸如与过程工厂10的配置有关的配置数据的数据的存储器20。每个工作站14还包括执行应用以使得配置工程师能够设计过程控制例程和其他例程以及将这些过程控制例程下载到控制器12或其他计算机,或者在过程工厂10的操作期间采集并向用户显示信息。在一些实施例中,远程计算设备与工作站14可通信地连接(例如经由基于网络或web的接口)以使得配置工程师可以从工作站14远程地执行应用。更进一步的,每个控制器12包括以任意已知形式存储控制和通信应用的存储器22和执行该控制和通信应用的处理器24。在一种情况下,每个控制器12存储和执行用于使用多个不同的、独立执行的控制模块或块19来实现控制策略的控制器应用。每个控制模块19可以由通常称为功能块的东西构成,其中每个功能块是整体控制例程的一部分或子例程,并且与其他功能块(经由称为链路的通信)联合操作以在过程工厂10内实现过程控制环路,例如以控制过程工厂10执行的一个或多个过程的操作。如公知的,功能块(其可以是面向对象的编程协议中的对象)通常执行输入功能(如与诸如发射器、传感器或其他过程参数测量设备之类的现场设备相关联的输入功能)、控制功能(如与执行PID、模糊逻辑等控制的控制例程相关联的控制功能)或者用于控制某些设备(如阀或其他现场设备)的操作的输出功能中的一种,以在过程工厂10中执行某些物理功能。当然,还存在混合的以及其他类型的复合功能块,如模型预测控制器(MPC)、优化器等等。虽然现场总线协议和DeltaV系统协议使用以面向对象的编程协议设计和实现的控制模块和功能块,但是也可以使用任意希望的控制编程方案,例如包括序列功能图、梯形逻辑等,来设计控制模块,而不限于使用功能块或任意其他特定编程技术来设计。工作站14可以经由示出了过程控制例程19内的控制元素的显示屏向用户提供控制器12内的过程控制例程19的图形表示以及这些控制元素被配置来提供对过程工厂10的控制的形式。在图1的系统中,配置数据库25连接到以太网总线15以存储控制器12和工作站14所使用的配置数据,并且在一些情况下,通过采集和存储过程工厂10中产生的数据以供未来使用来作为数据历史库。在一个实施例中,配置数据库25可以包括与配置数据相对应的库项目(例如模板和类模块)和系统配置项目(例如从库项目创建的对象)。这样,配置数据库25可以逻辑和/或物理地分为库数据存储区和系统配置存储区。在图1所示的过程工厂10中,控制器12a经由总线18可通信地连接到三组类似配置的反应器(其是工厂10内的复制设备),这里分别称为反应器01、反应器02和反应器03。反应器01包括反应器容器或罐100、三个输入阀系统(其是设备实体)101、102和103和一个出口阀系统104,其中三个输入阀系统连接以控制流体入口线路分别向反应器容器100提供酸、碱和水,出口阀系统连接以控制流体流出反应器容器100。传感器105可以是任意希望类型的传感器,如液位传感器、温度传感器、压强传感器等,其布置在反应器容器100中或反应器容器100附近。出于讨论的目的,传感器105假设为是液位传感器。此外,共享的总管阀系统110连接在每个反应器01、反应器02和反应器03的水位上游以提供用于控制水向每个反应器的流动的主控制。类似地,反应器02包括反应器容器200、三个输入阀系统201、202和203、输出阀系统204和液位传感器205,而反应器03包括反应器容器300、三个输入阀系统301、302和303、输出阀系统304和液位传感器305。在图1的例子中,反应器01、反应器02和反应器03可以产生盐,输入阀系统101、201和301提供酸,输入阀系统102、202和302提供碱,输入阀系统103、203和303与共享的水总管一起向反应器容器100提供水。输出阀系统104、204和302可以操作来将产品发送出指向图1右侧的流线并且将废水或其他不希望的材料排出指向图1底部的流线。控制器12a经由总线18可通信地耦接到阀系统101-104、110、201-204和301-304,以及到传感器105、205和305,以控制这些元素的操作以相对于反应器单元,即反应器01、反应器02和反应器03,执行一个或多个操作。这种操作通常称为阶段,可以包括例如注入反应器容器100、200和300,加热反应器容器100、200和300内的材料,倾倒反应器容器100、200和300,清理反应器容器100、200和300,等等。图1中所示的阀、传感器和其他设备可以是任何希望的类型或种类的设备,例如包括现场总线设备、标准4-20ma设备、HART设备、无线HART设备,等等,并且可以使用任何已知的或希望的通信协议,如现场总线协议、HART协议、无线HART协议或其他无线协议、4-20ma模拟协议等,与控制器12(例如控制器12或12a中的任一个)。通常,位于过程环境内并且执行直接影响过程的控制的功能(例如诸如打开或关闭阀之类的物理功能、用于控制算法或环路中的测量功能和/或其他功能)的设备在本文中被称为“现场设备”。更进一步的,根据本文描述的原则,其他类型的设备可以连接到控制器12并且被控制器12控制。例如,控制器12可以连接到一个或多个输入/输出(I/O)设备(未示出),其又可以连接到一个或多个现场设备。I/O设备通常由控制器12使用来支持一个或多个现场设备、控制器12和/或过程控制系统之间的通信。这样,I/O设备还可以是控制算法或环路的直接执行中的参与者以控制过程。因此,在本文中控制器、I/O设备和现场设备被统称并且直接称为“过程控制设备”。当然,术语“过程控制设备”不仅限于控制器、I/O设备和现场设备,还可以包括参与控制算法和/或环路或者控制算法和/或环路所需的其他设备,该控制算法和/或环路要被执行来控制过程工厂或过程控制系统中的过程。此外,工厂10内可以连接其他数量或类型的控制器以控制与过程工厂10相关联的其他设备或区域,并且这种附加的控制器的操作可以以任意希望的方式与图1中所示的控制器12a的操作进行协作。在一些实施例中,图1的过程工厂10包括过程工厂10内的用于无线通信的一个或多个节点(未示出),如接入点、工厂10内的无线和有线网络之间的网关、到其他网络的网关、工厂10内部或外部的中继器、路由器等等。这些用于无线通信的节点可以(使用有线协议、无线协议或者其组合)可通信地耦接到控制器12、工作站14、配置数据库25、现场设备、其他支持无线的节点和其他数据库或数据存储设备。概括而言,图1的过程工厂10可以用于实现批处理过程,其中,例如工作站14或控制器12a中的一个执行批执行例程,批执行例程是一个高级控制例程,其指导反应器单元(以及其他设备)中的一个或多个的操作,以执行产生产品(如特定类型的盐)所需的一系列不同步骤(通常称为阶段)。为了实现不同阶段,批执行例程使用通常称为配方的东西,配方指定了要执行的步骤、与步骤相关联的量和事件以及步骤的顺序。一个配方的步骤可以包括,例如使用适当的材料或作料填充反应器容器、混合反应器容器内的原料、将反应器容器内的材料加热到某个温度达某个时间量、清空反应器容器,然后清理反应器容器以准备下一个批处理运行。每个步骤限定了批处理运行的阶段,控制器12a内的批执行例程将为这些阶段中的每一个执行不同的控制算法。当然,每个配方的特定材料、材料的量、加热温度、时间等可以不同,并且从而这些参数可以取决于正在制造或生产的产品和正在使用的配方而在不同批处理运行之间不同。本领域技术人员可以理解,虽然本文针对图1中所示的反应器中的批处理运行描述了控制例程和配置,但是该控制例程可以用于控制其他希望的设备以根据需要执行任意其他希望的批处理运行或者执行连续的处理运行。还可以理解,可以同时或在不同时间在图1的每个不同的反应器单元上实现批处理的相同阶段或步骤。此外,由于图1的反应器单元通常包括相同数量和类型的设备,所以特定阶段的相同的一般性阶段控制例程可以用于控制不同的反应器单元中的每一个,除了该一般性阶段控制例程必须被修改以控制与不同的反应器单元相关联的不同硬件或设备。例如,为了实现反应器01的填充阶段(其中该反应器单元被填充),填充控制例程将与输入阀系统101、102和103相关联的一个或多个阀打开特定时间量,例如直到液位计105感测到容器100满了。然后,该相同的控制例程可以通过仅仅将输入阀的指定改变到与阀系统201、202和203相关联的那些而不是与阀系统101、102和103相关联的那些并且将液位计的指定改变到液位计205而不是液位计105,来用于实现反应器02的填充阶段。图2更详细地示出了图1的反应器中的一个,更具体地,反应器01。如图1中类似示出的,图2的反应器01包括反应器罐100、用于向罐100输入酸、碱和水的输入阀系统101、102和103、用于从罐100移除材料的输出阀系统104以及液位传感器105。如图2中进一步示出的,每个输入阀系统101、102和103使用类似的设备实体,称为累加器,其包括彼此平行设置的两个阀和设置在这两个阀的下游的流量测量设备。输入阀系统101的累加器在图3中更详细地示出,其包括称为开/关型阀的粗糙阀101a、称为开/关型阀的精细阀101b和设置在阀101a和101b下游的流量计101c。累加器101具有与其相关联的一个或多个控制模块或例程,用于使用流量计101c做出的测量控制酸的输入。第一个这样的控制例程可以使用粗糙阀101a和精细阀101b通过累加器101执行快速流量控制,而第二个这样的控制例程可以使用粗糙阀101a和精细阀101b通过累加器101执行精确的流量控制。从图2中可以理解,碱输入阀系统102包括粗糙阀102a、精细阀102b和流量计102c,共享的水输入阀系统110包括粗糙阀110a、精细阀110b和流量计110c。每个累加器101、102和110具有相同类型的复制设备,但是它们用在同一单元(即,反应器01单元)上的不同位置中。类似的,反应器02和反应器03也在输入阀系统201、202、301和302处包括累加器。类似的,输出阀系统104是包括这三个阀的另一件复制设备。如图4中示出的,输出阀系统104包括主出口阀104a、产品阀104b和排出阀104c,主出口阀104a必须打开以从罐100释放任何材料,产品阀104b必须与主出口阀104a一起打开以从罐100交付产品,排出阀104c必须与主出口阀104a一起打开以从罐100向排出或庇护系统排出材料,如废品、清洗液等。当然,一个或多个控制例程与出口阀系统104相关联以控制阀104a、104b和104c的状态以关闭罐100、排出罐100或从罐100中清空产品。为了创建和改变过程配置,存储在图1的一个工作站14中的配置应用50包括一组模块类对象52,用于配置过程控制工厂10。模块类对象在配置具有许多组复制设备的工厂时尤其有用。概括而言,可以为过程工厂10内复制或使用的每个不同类型的物理单元或设备、为过程工厂10内复制或使用的每种类型的控制活动、为过程工厂10中复制或使用的每种不同类型的显示应用等创建不同的模块类对象52。在创建之后,模块类对象52可以用于配置过程工厂10的与模块类对象相对应的元素。模块类对象52本质上是过程实体的一般性版本并且不关联于任何特定过程实体,能够具有与其相关联的更低级对象或实例53、54、55和56(这里称为模块对象或模块块)。本文使用的术语“过程实体”通常是指过程工厂10或环境的子集,其可以被整体识别、分类或分组。例如,过程实体可以是工厂的物理区域、设备的类型、控制功能的类型、或其他类别。过程实体可以包括其他过程实体。例如,与“阀”相对应的过程实体可以包括更低级的过程实体,如“气阀”或“水阀”,并且更低级的过程实体“水阀”可以包括进一步低级的过程实体,如“单向水阀”和“双向水阀”。如上所述,在本文中所使用的模块类对象通常是过程实体的一般性的或者分类的指示。模块对象53、54、55、56可以从模块类对象创建或派生,因此可以继承与其所创建或派生的模块类对象相同的结构和性质。然而,每个模块类对象关联于过程工厂10内的特定实体。因此,可以创建单个模块类对象52以代表特定类型的反应器单元(不管工厂10内存在多少那些反应器单元),同时可以为工厂10内实际存在的那种类型的不同的反应器单元中的每一个存在或创建不同的模块对象53。从模块类对象创建或派生的模块对象与模块类对象相关联或由模块类对象拥有。结果是,对模块类对象做出的改变可以反映在或传播到与该模块类对象相关联的每个模块对象。因此,当已经从特定模块类对象创建了多个模块对象,并且每个不同的模块对象关联于不同的过程实体时,可以通过简单地改变模块类对象并将该改变向下传播到相关联的模块对象来改变不同的模块对象中的每一个。如下面讨论的,该传播可以在模块类对象改变时自动发生,或者可以选择传播的时间。图1的模块类对象可以是在面向对象的编程环境或语言中通常称为对象的东西。结果是,这些对象能够拥有或指向其他对象。概括而言,模块类对象52是高级对象,其可以包括单独的元素的指示或定义,如与过程实体相关联的控制例程、设备或其他元素,以及那些单独的元素彼此交互的方式的定义或指示,如物理元素互连的方式或者逻辑元素与物理元素相结合地操作的方式。换句话说,模块类对象可以是例如面向对象的编程语言内的对象,该对象提供了控制和查看过程工厂10内的特定件设备或设备组、控制元素、显示器等的基础并且可以用于创建该元素的要被用于在过程控制工厂10内配置不同的复制设备的许多实例。基本上,每个模块类对象是以所有不同的控制和/或显示应用或例程的形式包括过程实体的一般性定义的配置容器,该不同的控制和/或显示应用或例程可应用于该实体以被控制器12使用以控制该实体或者由工作站14使用来执行针对该实体的显示动作。模块类对象可以表示任意本性的过程实体,如单元、一件设备、控制实体、显示应用等。在过程工厂10的配置期间,模块类对象可以用于为任意数量的不同的过程实体创建符合模块类对象所提供的定义的过程实体的配置实例,每个配置实例(从模块类对象创建的模块对象)与不同的实际过程实体相关联或关联于不同的实际过程实体。这些不同的模块对象除了其他内容外还包括限制于过程工厂10内设置的特定过程实体的控制例程和/或显示例程,这些控制例程能够下载并在图1的控制器12内使用以对过程实体执行实际的控制活动,并且显示例程能够下载到工作站14以在过程工厂10的操作期间执行针对实体的实际显示活动。不同类型的模块类对象可以反映不同范围的过程实体,并且因此包含配置来对或针对不同范围的过程实体进行操作的控制和/或显示例程。过程实体(如单元)的范围越大,控制和/或显示例程通常与模块类对象的关联越多,并且使用那些模块类对象来配置工厂的不同部分越容易。然而,与模块类对象相关联的过程实体的范围越大,过程包括该范围的复制设备的可能性越小,因此模块类对象在大范围上有用的可能性越小。相反,与模块类对象相关联的过程实体的范围越低,模块类对象能够用于工厂的各种不同位置的可能性越大,但是在任意特定实例中使用该模块类对象时执行的配置的量越少。在任一情况下,模块类对象使得能够针对不同的复制设备在比控制模块级别更高的抽象级别上执行配置,这使得配置具有复制单元和其他设备的过程工厂更加容易并且在使用模块类对象,尤其是大范围的模块类对象(如单元级别)时消耗的时间更少。因此,多个对象级别是可能的。例如,从模块类对象52创建的与实例53、54、55、56相对应的对象(例如“实例对象”)本身可以是一个或多个实例子对象的集合(未示出)的父对象。一个或多个实例子对象可以是另一个级别的子对象的父对象,等等。如本文中使用的,“过程元素对象”一般是指最低级别的对象,其对应于向其下载了配置的基本过程实体,如阀、传感器、图形形状或者控制器。因此,过程元素对象可以是没有子对象的实例对象。在一个例子中,当配置过程控制系统时,配置工程师可以为过程工厂内复制的不同元素(例如为图1的不同反应器)创建单个模块类对象。其后,配置工程师可以为图1的每个实际反应器创建该模块类对象的实例(模块对象)。每个这样创建的模块对象将包括控制器12a操作图1的一个反应器所使用的控制例程,并且特别关联于或联系于图1的一个反应器内的设备。这些控制例程然后可以下载到控制器12a并在过程工厂10的操作期间使用。然而,在创建之后,每个模块对象仍关联于模块类对象并且可以被模块类对象控制以改变、向模块对象提供访问或拒绝访问等等。虽然在过程工厂内可以创建和使用许多不同的可能类型的模块类对象来执行过程工厂内的配置活动,但是这里作为例子讨论的四种具体类型包括单元模块类对象、设备模块类对象、控制模块类对象和显示模块类对象。概括而言,每种不同类型的模块类对象被设计或意图用于过程工厂10内的不同范围的控制或使用。单元模块类对象意图用于表示(并且配置)过程工厂内的宽范围设备的活动。具体而言,单元模块类对象意图用于建模或用于配置互相相关的设备集合(典型的是复制设备),例如图1的反应器,这些设备具有以某种已知方式互相合作的各自的元素。设备模块类对象意图用于表示(并且配置)过程工厂内的不那么宽范围的物理设备的控制活动。与设备模块类对象相关联的设备通常是构成单元的子系统的一个或多个物理实体,如阀、流量计等,并且设备模块类对象可以包括要在该设备上执行的一个或多个命令或算法,其可以是命令驱动的算法(CDA)、状态驱动的算法(SDA)、序列功能图(SFC)算法、功能块图(FBD)算法、阶段算法等等。因此,设备模块类对象的目标在于配置单元内的多个低级组件或实体的控制,以提供关于该单元内所使用的该设备的一组基础功能。如所知的,当低级组件必须在多个步骤之间协调以完成一个功能时,使用命令驱动的算法(命令驱动的控制逻辑)。例如,阀可能需要打开一段特定时间量,然后闭合,而另一个阀打开然后闭合。图3的累加器101使用这种类型的命令驱动的算法来基于流量计的读数首先启动然后操作粗糙阀和精细阀,以提供通过累加器的希望的总流量。状态驱动的算法(状态驱动的控制逻辑)可以指定可以在单个步骤操纵的不同的低级组件的状态。这种状态驱动的算法可以用于图4的出口阀系统104,其中基于出口阀系统104的希望状态,不同的阀的状态被区别地控制(但是在单个步骤中),以关闭罐100、排出罐100或从罐100交付产品。控制模块类对象意图用于表示(并且配置)过程工厂内的各个控制元素或控制模块。控制模块类对象提供或指定要在过程实体(如阀、表等)、一件设备或者甚至一个单元上执行的特定类型的控制。概括而言,控制模块类对象提供特定类型的控制编程,如限定了要在控制器中执行的某些控制模块的一组通信互连的功能块,用于执行过程工厂内的复制控制活动。在大多数情况下,控制模块类对象可以提供一般性控制策略来操纵单个设备或一组相关的设备。显示模块类对象意图用于表示(并且配置)在过程工厂10的操作期间由用户(如控制操作者)查看的显示活动。这样,显示模块类对象可以指定在图1的操作者工作站14内产生某种类型的显示所需的编程以及要在一个或多个工作站14(以及过程工厂10内的任何其他设备)中运行所需的编程,以使得该显示能够在工厂10的操作期间从工厂获取适当的信息。显示类模块的类型例如包括警报显示、配置查看显示、操作查看显示、诊断显示等。当然,显示模块类对象可以提供表示或关联于过程工厂内的物理元素或实体的任何希望的范围的显示。例如,显示模块类对象可以显示关于过程工厂10内的整个区域、单元、一件设备、控制元素或者这些元素的组合的信息。参考图5,分级图示出了图1的配置应用50中使用的不同类型的模块类对象之间的互连以及模块类对象与从这些模块类对象开发的模块对象之间的相互关系。在图5的图的顶部开始,模块类对象(或在本文中可替换地称为“类对象”)通过模块类类型区分为单元模块类类型400、设备模块类类型402、控制模块类类型404和显示模块类类型406中的一种。当然,也可以提供或使用其他类型的模块类对象,这里所示的四种类型仅仅是示例性的模块类类型。各个模块类对象(其可以例如是面向对象的编程语言中的高级对象,并且出于清楚起见在图5中用双轮廓线表示)落入不同类型的模块类400、402、404和406中的每一种。具体而言,对于过程工厂10内的不同单元或单元类型,可以有许多不同的单元模块类对象。例如,反应器单元类模块对象410可以表示过程工厂10内的反应器的特定类型或配置。类似的,打包者(packager)单元模块类对象412可以表示过程工厂10内的包单元的额定类型或配置,烘干机单元类模块对象414可以表示过程工厂10内的烘干机单元的特定类型或配置。当然,可以有多个反应器单元模块类对象来表示在物理组成上彼此不同的反应器。此外,这里并未试图列出工厂内可以用单元模块类对象表示或建模的所有不同类型的单元,并且本领域技术人员可以认识到,在不同类型的工厂中有许多可以使用单元模块类对象建模或表示的不同类型的单元。类似的,可以有许多不同的设备模块类对象用于表示、建模和配置过程工厂10内的不同类型的设备。图5中示出的例子包括累加器设备模块类对象416和出口阀设备模块类对象418,每个与过程工厂10内的不同类型的设备(并且优选地是复制设备)相关联。按照相同方式,可以有图5中示出的许多不同类型的控制模块类对象作为开/关阀控制模块类对象422、液位传感器控制模块类对象424和流量计控制模块类对象426。此外,图5中将显示模块类对象显示为警报显示模块类对象432、查看显示模块类对象434和诊断显示模块类对象436。当然,根据本文描述的原理,可以在过程工厂10的配置应用50中创建和使用任意其他希望的单元、设备、控制和显示模块类对象。每个模块类对象可以具有与其相关联的或者由其拥有的子对象。这些子对象可以本身是模块类对象,或者,如图5中所示,可以是作为它们所属于的模块类对象的实例所创建的模块对象。这种实例在本文中可互换地称为它们所基于或者它们根据其创建的模块类对象的“模块对象”、“实例”、“实例对象”或“模块实例对象”。图5示出了反应器单元模块类对象410具有与其相关联的三个反应器模块对象,称为反应器01(参考标记440a)、反应器02(参考标记440b)和反应器03(参考标记440c),这些反应器模块对象对应于(即,关联于)图1的相应的反应器类对象410。图5还示出了累加器设备模块类对象416具有或拥有5个不同的子模块对象,称为水1、酸1、酸2、碱1和碱2(参考标记440d-440h)。类似的,开/关阀控制模块类对象422被示出为包括子模块对象,称为粗糙阀1、粗糙阀2、粗糙阀3、精细阀1、精细阀2和精细阀3(参考标号440i-440n)。此外,图5示出了基于警报显示模块对象432的警报A图形元素对象440o、基于查看显示模块类434的温度传感器B图形元素440p和控制模块C图形元素440q,以及基于诊断显示模块436的测试模块D图形元素440r和泵E图形元素440s。通过类似的方式,图5的其他单元、设备、控制和显示模块类对象中的每一个可以具有与其相关联的一个或多个模块对象。然而,出于简单起见,这些模块对象未在图5中示出。在图5的图中,反应器01、反应器02和反应器03单元模块对象、酸1、酸2、碱1、碱2和水1累加器(设备)模块对象(参考标号440a-h)、粗糙阀1、粗糙阀2、粗糙阀3、精细阀1、精细阀2和精细阀3控制模块对象(参考标号440i-440n)、警报A、温度传感器B、控制模块C、测试模块D、泵E图形元素对象(参考标号440o-440s)和其他单元、设备、控制和显示模块对象中的每一个是关联于过程工厂10内的实际的过程元素(如过程工厂10内的单元、设备、控制模块、显示应用和图像或图形显示元素)的单独的对象。这样,对象440a-440s在这里可互换地称为“过程元素对象”、“过程元素模块对象”或“元素对象”。类似的,每个对象440a-440s是其相应的“父”或“父对象”410-436的“子”或“子对象”。例如,由于工厂10中使用多个物理酸累加器,所以在配置例程中将创建多个酸累加器过程元素模块对象,对于工厂10内存在的每个单独的酸累加器都存在一个单独的子酸累加器过程元素模块对象。然而,每个子单独累加器过程元素模块对象关联于同一父累加器模块类对象416或由同一父累加器模块类对象416拥有。当然,图5的图仅示出了有限个与其相关联的模块类对象、模块对象、实例对象和过程元素对象,并且可以理解,可以提供其他类型的模块类对象,并且可以从每个不同的模块类对象创建任意希望数目的模块对象、实例对象和过程元素对象。此外,作为父对象的子对象的对象本身可以具有子对象。例如,类对象流量计控制模块426可以包括两个子实例对象,例如“水流量计模块”和“溶剂流量计模块”(未示出)。水流量计模块可以包括与过程工厂10内的相应的实际流量计元素(如“水流量计1”和“水流量计2”)相对应的相应的子过程元素模块对象。这样,过程元素对象“水流量计1”和“水流量计2”基于“水流量计模块”,并且其基于流量计控制模块426。作为对象的一部分,图5的每个模块类对象(并且因此图5的每个模块对象)可以包括定义或构成该模块的物理或逻辑过程元素的定义或指示,并且根据需要还包括那些过程元素物理或逻辑地彼此交互以执行过程工厂10内的某些活动的方式。例如,单元模块类对象典型地包括被定义为单元的过程实体内或者构成被定义为单元的过程实体的所有物理和控制元素的指示。单元模块类对象还可以定义各个部分的特定组成以及那些部分如何物理的关联在一起以作为一个单元操作。类似的,设备模块类对象将典型地包括用于控制被定义为该件设备的实体的控制例程或控制模块以及使用该控制例程或控制模块来定义各个部分物理或逻辑地交互的方式的命令,以在设置在工厂10内时操作为一件设备。类似的,每个控制模块类对象将典型地以某种形式的控制算法的形式定义要在工厂内执行的控制活动。并且,每个显示模块类对象还可以定义显示屏配置、要显示的信息和表示过程工厂的各个元素并且要在显示屏上显示的图形或图像元素,以及针对工厂10内的指定类型的单元、设备、工厂区域或者任何其他物理或逻辑实体要采集的数据和要在所采集的数据上执行的数据操作。作为模块类定义的一部分,模块类对象可以指示或定义要结合在其中或在其中使用的其他模块类对象。在这种情况下,从该模块类对象创建的模块对象将结合、指向或包括根据模块类级别上定义的关系而从其他模块类对象创建的其他模块对象。虽然不严格必需,但是单元模块类对象可以结合其他单元模块类对象、设备模块类对象、控制模块类对象和显示模块类对象,而设备模块类对象可以结合其他设备模块类对象、控制模块类对象和显示模块类对象。控制模块类对象可以结合或指向其他控制模块类对象和显示模块类对象。然而,根据需要,还可以使用其他模块类对象相互关系。这些结合关系在图5的图的底部通过大的箭头示出,指示任意显示模块类对象可以包括在控制、设备和单元模块类对象中的任意一个中或被其指向,任意控制模块类对象可以包括在设备和单元模块类对象中的任意一个中或被其指向,并且任意设备模块类对象可以包括在任意一个单元模块类对象中或被其指向。可以理解,模块类对象可以结合相同类型的其他模块类对象。例如,单元模块类对象,作为其定义的一部分,可以结合另一单元模块类对象。以类似的方式,设备模块类对象可以包括另一设备模块类对象,控制模块类对象可以包括另一控制模块类对象,显示模块类对象可以包括另一显示模块类对象。当然,根据需要,模块类对象可以多次使用或结合另一模块类对象。例如,反应器单元模块类对象可以多次结合或使用累加器设备模块类对象,因为被反应器单元模块类对象建模的反应器包括累加器的多个实例。可以理解,当第一模块类对象结合或使用第二模块类对象时,从第一模块类对象创建或者作为第一模块类对象的实例的任何模块对象将结合或使用从第二模块类对象创建或者作为第二模块类对象的实例的模块对象。这样,当反应器单元模块类对象410使用累加器模块类对象416作为其一个元素或一部分时,反应器01模块对象将使用或包括累加器模块对象中的一个(如酸1模块对象440e),作为其一个元素或一部分。类似的,如果累加器设备模块类对象结合或包括出口阀设备模块类对象时,从累加器设备模块类对象创建的模块对象(其例如可以唯一地命名为累加器1)将包括从出口阀设备模块类对象创建的模块对象,并且例如唯一地命名为出口阀2。通过这种方式,在模块类对象级别上定义的模块类对象之间的关系被反映在从这些模块类对象开发或创建的模块对象中。模块类对象(及其模块对象)之间的互连或参考使得能够在配置活动期间获得大的可变性和高的可转移性,从而使得在创建了原语模块类对象(如控制和设备模块类对象)的集合之后,可以通过参考该原语模块类对象来容易地创建更复杂的模块类对象(如单元模块类对象)。当然,虽然模块类对象可以参考或使用其他模块类对象,但是它们还可以或者可以替代地定义或使用与模块类对象不关联的简单的对象或过程元素对象,如阀、传感器等等。这些简单的或者过程元素对象将针对其所用于的控制例程而完全定义在模块类对象本身中。图6中示出了一种示例性反应器单元模块类对象410以示出描述或限定于单元模块类对象相关联或者存在于单元模块类对象内的实体的一种方式。如图6中所示,反应器单元模块类对象410包括罐500的指示,其是过程工厂10内的简单对象或过程元素对象,不存在用于其的模块类对象。罐500以虚线示出,因为没有控制或者低级活动需要控制,或者执行针对罐的输入/输出活动。结果,包括罐500仅用于示出与反应器单元模块类对象410相关联的其他对象之间的互连。反应器单元模块类对象410还包括三个分别命名为酸、碱和水的累加器501、502和510,其是图5的累加器设备模块类对象416的三个不同参考。水累加器模块类对象510显示在单元模块类对象410的一段中,以虚线分隔开以指示这是一个共享的模块类对象,并且因此单元模块类对象410与其他单元模块类对象具有对该对象的共享控制。图6的出口对象504是对图5的出口阀设备模块类对象418的参考,液位传感器505是对图5的液位传感器控制模块类对象424的参考,进水阀503是对阀对象的参考,该阀对象可以是简单阀元素(因此在单元模块类对象410中完全定义)或者可以是对配置策略中的其他地方所定义的阀控制模块类对象的参考。出于定义不同元素之间的互连起见,还示出了反应器单元模块类对象410的不同实体或不同部分之间的物理互连。如上所述,单元模块类对象410或任意类型的其他模块类对象可以包括简单元素,该简单元素在模块类对象内完全定义(包括与其相关联的任何一般性控制例程)和/或可以包括对模块类对象外部定义的模块类对象的参考。单元模块类对象410还包括两个示例性显示模块类对象,称为反应器查看显示520和反应器警报显示522,其是对图5的查看显示模块类对象434和警报显示模块类对象432的参考。这些对象限定了用于显示与反应器单元模块类对象410中定义的反应器单元的任意设备或部分相关联的状态(例如罐的填充液位)和警报的一般性显示活动。类似的,单元模块类对象410可以包括盒子524中示出的其他元素,如阶段类对象,作为剂量(Dose)、混合(Mix)、排出(Drain)和冲洗(Flush)阶段类对象,它们中的每个限定了要在单元模块类对象410所定义的单元上执行的一般性控制例程。单元模块类对象与阶段类对象可以具有零个或更多个关联。阶段类对象524可以在其他地方定义并被以任意希望的方式引入到单元模块类对象410。在某种意义上,阶段类524是可以在单元模块类对象410所定义的单元上执行的命令或例程,以执行不同功能,如填充单元、加热该单元、清空该单元、清理该单元,等等。此外,单元模块类对象410可以包括存储器或部分526,其存储对由配置应用50(图1)从该单元模块类对象410创建的模块类对象的参考。部分526本质上是从单元模块类对象410创建并被单元模块类对象410拥有的模块对象的列表。(当然,该列表或所拥有的模块对象的其他指示可以存储在工作站中或者由配置应用50以任意希望的方式存储,而不必物理地包含在单元模块类对象410中)。在任一情况下,在图6的例子中,单元模块类对象410拥有模块类对象反应器01440a、反应器02440b、反应器03440c等,每个都是从反应器单元模块类对象410创建的。单元模块类对象410还包括可以由单元模块类对象410在配置活动期间或配置活动之后执行的一组方法530。方法530可以包括自动将对单元模块类对象410做出的改变传播给单元模块类对象410所拥有的每个模块对象526的改变管理方法或应用。其方法可以包括执行针对单元模块类对象410和/或针对由其拥有的任意单元模块对象526的安全或访问控制的安全控制方法,或者使得用户或者配置工程师能够指定模块类对象或从其创建的任何模块对象的改变参数和/或安全参数的方法。当然,不同方法530可以对或针对单元模块类对象410执行任何其他过程。如果希望,单元模块类对象410可以控制对模块类对象410做出的改变被传播给单元模块对象526的方式以及在单元模块对象526中设置安全访问的方式。一种提供这种功能的方式是在单元模块类对象410内设置一个或多个标志或参数以指定改变被传播给单元模块对象526以及在单元模块对象526中处理安全的方式。具体而言,一个或多个改变传播参数必须被设置以指定对单元模块类对象410做出的改变是否被自动传播给一个或多个模块类对象526。这些改变传播参数可以存储在单元模块对象526中并且可以指定整个单元模块对象或者基于一个一个子元素,指定对单元模块类对象做出的改变是否要被反映到单元模块对象中。例如,单元模块类对象410可以包括全局改变参数534(标记为“C”),其可以设置在从单元模块类对象410创建的每个单元模块对象中,以允许或禁止对单元模块类对象410做出的改变被自动反映到单元模块对象中。类似的,每个子元素或块(如块501-505、510、520和522)可以包括改变参数536,改变参数536用于仅为该块指定在单元模块类对象410中对该块做出的改变是否要被反映到单元模块对象中。当然,单元模块对象的不同块可以区别地设置,以使得例如对单元模块类对象410的酸块501做出的改变将被传播给特定的一个模块对象526的对应的酸块,但是对单元模块类对象410的碱块502做出的改变不被传播给该特定的一个单元模块对象的碱块。此外,从单元模块类对象创建的不同的单元模块对象可以具有彼此不同地设置的改变参数,以使得对单元模块类对象410内的碱块502做出的改变被传播给单元模块对象526的第一个单元模块对象526的对应的碱块,但是不被传播给单元模块对象526的第二个单元模块对象526的对应的碱块。当然,单元模块类对象410的改变管理方法可以访问和使用单元模块对象526的改变参数以当在单元模块类对象410中做出改变时在那些对象内做出或不做出改变。通过类似的方式,单元模块类对象410可以包括一个或多个安全参数,该安全参数指定了在每个单元模块对象526中控制安全或访问的方式。单元模块类对象410可以包括全局安全参数538(标记为“S”),其可以向从反应器单元模块类对象410创建的整个反应器单元模块对象提供任意希望级别的安全,和/或可以包括用于单元模块类对象410的每个子元素(如用于块501-505、510、520和522等中的每一个)的不同安全参数540,其逐块地指定了那些块中的每一个的安全级别。全局安全参数538可以是锁定参数,该锁定参数锁定了到除了具有预先授权的安全访问级别的用户之外的所有用户的单元模块类对象。当然,安全参数538和540可以指定多个不同安全级别中的任一个,如无访问、限制访问、访问额定类型或用户的标识,等等,并且在不同块中以及在从同一单元模块类对象创建的不同单元模块对象中,安全级别可以被设置为不同。如果希望,安全措施的一部分可以包括提供对与单元模块类对象相关联的一个或多个方法或算法上的加密。可以理解,单元模块类对象410的改变和安全参数可以被设置为缺省值,并且从单元模块类对象410创建的每个单元模块对象526的对应的改变和安全参数可以在创建时取该缺省值。然而,缺省改变和安全参数也可以在这些单元模块对象创建之后在单元模块对象526中(由具有适当的安全访问的用户)单独地改变。虽然这里针对反应器单元模块类对象讨论了改变和安全参数,但是可以以其他类型的单元模块类对象以及以任何希望类型的设备模块类对象、控制模块类对象、显示模块类对象等来提供类似的改变和安全参数。如果希望,单元模块类对象410可以包括到为单元类模块对象存储的或者与单元模块类对象相关联的文档(包括与和单元模块类对象410相关联的单元或该单元的任何子单元相关联的文档)的参考,如URL或其他参考。这种参考在图6中显示为参考549。图6的实施例示出了与单元模块类对象410相关联并且指示应用于单元模块类对象410的子或派生对象的改变传播和安全指南的改变参数和安全参数。在一些实施例中,改变参数和/或安全参数可以附加地或者替换地与模块类对象410的相应的子对象或相应的派生对象相关联(例如与反应器对象440a相关联),并且可以指示相应的子对象或派生对象是否接收来自一个或多个父对象的改变或是否结合来自一个或多个父对象的安全限制。图7示出了可以由图1的配置应用50在配置工程师创建和使用模块类对象来配置过程工厂10时创建的屏幕显示。通常,屏幕显示包括屏幕左手侧的浏览器视图,其提供表示过程工厂10的配置的组织树结构。类似的,屏幕显示通常包括在其右手侧的一个或多个信息视图。这些信息视图提供了关于浏览器视图中被选择的那些元素的进一步信息。可以在信息视图中显示给用户或者由用户改变的信息可以由图6的控制和安全参数来确定或控制,该控制和安全参数为不同的模块类对象或其子元素中的每一个设置。这样,浏览器视图内的特定元素可以基于在模块类对象中设置的安全和控制参数显示或暴露给一个用户以查看和/或改变并且被传播给浏览器视图中示出的模块对象。当然,如前所述,信息可以总是隐藏,可以仅在用户输入密码或其他安全码时可显示或改变,可以总是可显示而不改变,可以总是可显示并且可改变,或者可以是这些或其他安全和改变参数的任意其他组合。更进一步的,如果希望,元素的可显示性、可视性或者可改变性可以使用高亮、灰色、彩色或者任意其他技术在浏览器视图中指示,以通知用户哪些元素可以更详细地显示或改变。在图7中,屏幕显示600包括在显示器左手侧示出的浏览器配置视图602的一部分。浏览器视图602的该部分示出了存储有多个模块类对象的库,包括单元模块类对象604、设备模块类对象606和控制模块类对象608。反应器单元模块类对象610(其可以对应于图6的反应器单元模块类对象410)存储在单元模块类库604中并且包括多个子元素的指示,所述子元素包括剂量(Dose)、混合(Mix)、排出(Drain)和冲洗(Flush)阶段类对象、进水和液位计控制模块类对象和希望的其对象。这样,如单元模块类库604中所定义的,反应器单元模块类对象610包括阶段类的指示以及设备模块类对象和控制模块类对象的指示。由于在屏幕600中选择了反应器单元模块类对象610,其元素更详细地显示在屏幕600的右手侧612。更进一步的,设备模块类库606包括累加器设备模块类对象614(其可以对应于图7的累加器设备模块类对象416)和反应器出口设备模块类对象616。累加器设备模块类对象614包括算法(如图7的算法564中的一个)的三个不同部分,称为命令00001、命令00002和命令00003。模块类对象614还包括对称为粗糙阀和精细阀(其是开/关类型控制模块类对象)和流量计(其是流量计类型控制模块类对象)的控制模块类对象的参考。更进一步的,反应器出口设备模块类对象616包括状态驱动的控制算法,该状态驱动的控制算法具有不同状态(称为状态00001、状态00002和状态00003)、目标(Target)、驱动(Drive)、监控(Monitor)和回读(Readback)模块以及出口(Outlet)、排出(Drain)和产品(Product)阀控制模块对象(其可以是开/关控制模块类对象类型的模块块的指示或参考,并且其可以命名为(Outlet)、排出(Drain)和产品(Product)或者其可以是简单对象)。与累加器和反应器出口模块类对象614和616相关联的命令和状态驱动的算法可以是任何希望的例程并且可以指向要与那些命令一起使用的设备模块类对象中的控制模块对象。具体而言,设备模块类对象的CDA或SDA命令算法可以通过结合控制模块(或其他设备模块)模块的名称而包括指向控制模块(或其他设备模块)的表达或动作,以指示在执行算法时要操纵哪件设备。这些算法内的控制模块(或另一设备模块)的名称的使用指定了由算法所位于的设备模块对象所参考或者与算法所位于的设备模块对象相关联的控制模块对象,并且在该设备模块对象从设备模块类对象创建时应当关联或初始化该特定名称。当然,如果希望,图7中所示的屏幕和类似的屏幕可以被配置工程师用于创建和制定剂量(Dose)或其他阶段类中的或者用于任何其他模块(如单元模块类对象、设备模块类对象和显示模块类对象)的控制算法,从而创建任何希望的模块类对象。在创建了如上所述的一个或多个模块类对象之后,配置工程师可以使用这些模块类对象来配置过程工厂10内的元素。在单元模块类对象内可以将任意设备或控制模块指定为共享或非共享的模块对象。非共享的模块对象完全由高级模块对象拥有,其中非共享的模块对象在该高级模块对象中创建。共享的模块对象由多于一个更高级的模块对象拥有或与其相关联。模块对象的共享或非共享特性影响模块对象在浏览器视图中的图示。具体而言,非共享模块对象指定造成模块对象仅仅显示在控制策略内的更高级对象下,而共享模块对象指定造成共享模块块或模块对象显示在共享该元素的每个更高级模块对象下以及浏览器层级中的独立的模块对象下。可以理解,通过类似的方式,配置工程师可以根据本文描述的原理使用任何其他单元模块类对象、设备模块类对象和控制模块类对象以及显示模块类对象来为过程控制环境内的单元、设备、控制元素和显示元素创建配置元素。此外,配置工程师可以通过改变一个或多个单元模块类对象并且使得那些改变传播到从那些单元模块类对象创建的并与其相关联的每个模块对象,来全局地对不同的过程实体的配置的元素做出改变。该特征使得能够在已经创建配置之后,更容易地并且耗时更少地在该配置内做出改变。此外,配置工程师可以通过设置模块类对象内的安全参数来向配置系统内的模块对象的不同元素或组件指定访问级别。如上所述,配置工程师可以在任何级别(如在单元模块级别、设备模块级别、控制模块级别和显示模块级别)一个模块一个模块地指定安全性。通过这种方式,单元模块对象的一些元素可以是可查看的,而其他元素是不可查看的。当然,一旦配置系统完成并且模块对象关联于过程工厂10内的相应的过程实体,控制和显示模块或者与这些模块相关联的元素可以下载到适图1的当的控制器12、设备和工作站14,以在过程工厂10的操作期间运行。本文描述的技术、系统和方法允许使用灵活的类对象、实例对象和过程元素对象对过程工厂和过程控制系统进行配置。在一个例子中,对父对象的改变或修改被分阶段或延迟传播给一个或多个相应的子对象,以使得配置更新的定义能够在过程工厂中控制。在一个实施例中,分阶段和/或延迟由用户指示,并且可以对于不同子对象而不同。在另一个例子中,对父对象做出的改变被应用于选择的子对象而不是父对象的所有子对象。用户可以指示对于要应用改变的希望的子对象的选择。在又一个例子中,对子对象做出的改变被选择性地应用于其父对象和/或应用于一个或多个子对象。对要应用改变的希望的父对象和/或子对象的选择可以由用户指示。此外或者替换地,用户可以对各个对象做出草案改变或者修改而不自动分发和/或实例化(例如创建可执行文件)该修改。可以将草案改变的不同集合保存为各个对象的不同版本,并且可以离线测试而不影响运行时过程工厂的现场操作。此外,本文描述的技术、系统和方法应用于存储在过程控制系统或工厂10的库中的项目或对象(例如模板和/或用户创建的库对象)。替换地或者附加地,该技术、系统和方法应用于过程控制系或工厂10的配置数据库25中存储的项目或对象,其在一些情况下至少部分地从库项目或对象创建或派生。更进一步的,本文描述的一个或多个灵活配置技术和对象可以用于过程工厂中,如图1的过程工厂10,或者用于其他适当的过程工厂或过程控制系统。在一个例子中,本文描述的一个或多个技术由在图1的一个或多个工作站14上运行的配置应用来执行。在另一个例子中,本文描述的一个或多个技术至少部分地由访问该应用的远程应用(例如web客户端或其他远程访问手段)来执行。在一些实施例中,一个或多个灵活配置技术与除了本文描述的配置技术之外的其他配置技术结合使用。此外,本文描述的灵活配置技术和对象是使用模块类(如图5中所述的模块类)来实现的。然而,本文描述的灵活配置技术可以使用其他适当的模块类、软件架构和/或编程技术来实现。项目或对象草案:如前所述,本文描述的灵活配置技术、系统和方法的实施例使得用户能够对库和系统配置项目或对象做出改变而不需要下载,下载可能会不利地影响运行时过程工厂或过程控制系统。库项目或对象通常是存储在中央访问的位置或库(例如工作站14和其他接口和计算设备可访问的配置数据库25或其他存储设备)中的模块对象。系统配置项目或对象(以及一些库项目或对象)通常基于一个或多个库项目或从一个或多个库项目派生。对于一些项目和对象,至少一些方面由用户定制。本文使用的术语“项目”通常是指对象,如类对象、实例对象或者过程元素对象。项目可以存储在库中(例如“库项目”或“库对象”),或者项目可以存储在系统配置数据存储区域中(例如“配置项目”或“配置对象”)。此外,本文使用的术语“项目”通常还可以指对象内部并且由对象定义的项目,例如对象的内容的至少一部分。对象的可能的内部项目例如包括方法、动作、数据域或其他属性、输入、输出、I/O类型(例如控制器(例如图1的控制器12或12a)与系统进行通信的输入/输出卡或设备的类型)、功能或用法、定义、参数值、对父对象的参考、对子对象...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1