CN109426232B - 图形元素的配置元素 - Google Patents

图形元素的配置元素 Download PDF

Info

Publication number
CN109426232B
CN109426232B CN201811009920.4A CN201811009920A CN109426232B CN 109426232 B CN109426232 B CN 109426232B CN 201811009920 A CN201811009920 A CN 201811009920A CN 109426232 B CN109426232 B CN 109426232B
Authority
CN
China
Prior art keywords
configuration
element object
objects
graphical
properties
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811009920.4A
Other languages
English (en)
Other versions
CN109426232A (zh
Inventor
J·K·奈多
D·R·斯特林顿
R·B·哈维考斯特
S·G·汉马克
S·C·吉尔伯特
M·J·沙利文
L·O·琼德
R·科夫曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/692,450 external-priority patent/US10691311B2/en
Priority claimed from US15/722,463 external-priority patent/US11216159B2/en
Application filed by Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of CN109426232A publication Critical patent/CN109426232A/zh
Application granted granted Critical
Publication of CN109426232B publication Critical patent/CN109426232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4188Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by CIM planning or realisation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25067Graphic configuration control system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31467Display of operating conditions of machines, workcells, selected programs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31472Graphical display of process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32154Object, attribute for geometry, technology, function oop
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Programmable Controllers (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

在配置显示视图上呈现用于配置图形元素对象的配置元素。图形元素对象将在过程控制显示视图上被实例化,并且对应于过程工厂中的过程实体。配置元素对象具有针对图形元素对象的属性的性质集合,并且包括到配置显示对象的链接,配置显示视图根据该配置显示对象被实例化。配置元素对象的实例化包括针对图形元素对象的属性的性质集合的可视表示,以及到图形元素对象的链接,以发送来自该性质集合的与以该配置元素配置的性质相对应的数据。经配置的性质对应于图形元素的至少一个经配置的属性。

Description

图形元素的配置元素
相关申请的交叉引用
本申请是要求2017年8月31日提交的名称为“利用覆盖的派生和链接定义(Derived and Linked Definitions with Override)”的美国申请No.15/692,450的权益和优先权的部分继续申请,该美国申请No.15/692,450要求2013年10月8日提交的名称为“利用覆盖的派生和链接定义(Derived and Linked Definitions with Override)”的美国申请No.14/048,516的权益和优先权,该美国申请No.14/048,516要求2012年10月8日提交的名称为“使用灵活的对象的过程工厂配置(Process Plant Configurations UsingFlexible Objects)”的美国临时申请No.61/711,110的权益并且要求2012年10月8日提交的名称为“过程控制系统中的可配置用户显示”的美国临时申请No.61/711,105的权益,其全部内容通过引用并入本文。
此外,本申请涉及2013年10月8日提交的最初名称为“Dynamically ResuableClasses(动态可重用类)”的美国申请No.14/048,533,该美国申请通过引用全部内容并入本文。本申请还涉及2013年10月8日提交的最初名称为“Method and Apparatus ForManaging Process Control Configuration(用于管理过程控制配置的方法和装置)”的美国申请No.14/048,496,其全部内容通过引用并入本文。
技术领域
本发明概括而言涉及过程工厂,更具体而言,涉及在配置和查看过程工厂或过程控制系统的操作时使用灵活的对象。
背景技术
分布式过程控制系统(如化工、石油或其他过程工厂中使用的分布式过程控制系统)通常包括一个或多个过程控制器,该过程控制器经由模拟总线、数字总线或经组合的模拟/数字总线可通信地耦接到一个或多个现场设备。现场设备可以例如是阀、阀定位器、开关和发射器(例如温度、压强、液位和流速传感器),其位于过程环境内并且执行诸如打开或关闭阀、测量过程参数等过程功能。智能现场设备(诸如符合已知的现场总线协议的现场设备)也可以执行控制计算、报警功能和其他通常在控制器内实现的控制功能。过程控制器也通常位于工厂环境内,其接收指示由现场设备作出的过程测量值的信号和/或与现场设备有关的其他信息,并且执行控制器应用,该控制器应用例如运行不同的控制模块,这些控制模块作出过程控制决策、基于接收的信息产生控制信号以及与现场设备(例如HART和现场总线现场设备)中正在执行的控制模块或块进行协作。控制器中的控制模块通过通信线路向现场设备发送控制信号,从而控制过程工厂的操作。
来自现场设备和控制器的信息通常可通过数据高速通道被通常放置在远离严苛的工厂环境的控制室或其他位置中的一个或多个其他硬件设备(诸如,操作者工作站、个人计算机、数据历史库、报告产生器、集中式数据库等)获得。这些硬件设备运行例如使得操作者能够执行与过程有关的功能的应用,例如改变过程控制例程的设置,修改控制器或现场设备内的控制模块的操作,查看过程的当前状态,查看由现场设备和控制器生成的警报,出于训练人员或者测试过程控制软件的目的而仿真过程的操作,保持和更新配置数据库,等等。
例如,爱默生过程管理公司所销售的DeltaVTM控制系统包括存储在位于过程工厂内的不同位置处的不同设备内并由这些不同设备执行的多个应用。驻留在一个或多个操作者工作站中的配置应用使得用户能够创建或改变过程控制模块并且经由数据高速通道将这些过程控制模块下载到专用的分布式控制器。通常,这些控制模块由通信地互连的功能块构成,这些功能块是面向对象的编程协议中的对象,用于基于其输入来执行控制方案中的功能以及向控制方案中的其他功能块提供输出。该配置应用还允许配置设计者创建或改变由查看应用所使用的操作者界面以向操作者显示数据,以及使得操作者能够改变过程控制例程中的设置,例如设置点。每个专用的控制器,以及在某些情况下,一个或多个现场设备,存储并执行相应的控制器应用,该控制器应用运行分发给它并下载给它的控制模块,以实现实际的过程控制功能。查看应用可以在一个或多个操作者工作站(或者与操作者工作站和数据高速通道通信连接的一个或多个远程计算设备)上执行,用于经由数据高速通道从控制器应用接收数据并且将该数据显示给过程控制系设计者、操作者或者使用该用户界面的用户,并且可以提供多个不同视图中的任一者,例如操作者视图,工程师视图,技术人员视图,等等。数据历史库应用通常存储在数据历史库设备中并且由其执行,该数据历史库设备收集并存储跨数据高速通道提供的部分或所有数据,而配置数据库应用可以在附接到该数据高速通道的另一个计算机中运行,以存储当前过程控制例程配置和与其相关联的数据。或者,配置数据库可以位于与配置应用相同的工作站中。
目前,配置应用通常包括模板对象或项目(如功能块模板对象,以及在一些情况下,包括控制模块模板对象)的库。这些配置应用用于配置过程工厂的控制策略并且在过程工厂的用户接口处提供显示视图。模板对象都具有与其相关联的缺省性质、设置和方法。使用配置应用的工程师可以选择这些模板对象并且基本上将所选择的模板对象的副本放置在配置屏幕中以开发模块,例如控制模块。在选择模板对象并将模板对象放置在配置屏幕的过程期间,工程师将这些对象的输入和输出互连并且改变它们的参数、名称、标签和其他性质以创建特定控制模块用于过程工厂中的特定应用。在创建了一个或多个这种控制模块之后,工程师可以将所创建的模块存储在库中或者存储在配置数据存储区域中。工程师然后可以实例化控制模块(例如,使得创建与控制模块相对应的可执行文件)并且将其下载到一个或多个适当的控制器、现场设备和其他过程元素以在过程工厂的操作期间执行。
此后,工程师通常通过在显示创建应用中选择和构建显示对象来为过程工厂内的操作者、维护人员等创建一个或多个显示。这些显示通常以系统级实现在一个或多个工作站中,并且向操作者或维护人员提供关于控制系统或工厂中的设备的操作状态的预先配置的显示。通常,这些显示采取报警显示、控制显示、维护显示等形式,其中报警显示用于接收和显示由过程工厂内的控制器或设备产生的警报,控制显示指示在过程工厂内正受控的控制器和其他设备的操作状态,维护显示指示过程工厂内的设备的功能状态。这些显示通常被预先配置为以已知方式显示从过程工厂内的过程控制模块、设备或其他过程元素接收的信息或数据。在一些已知的系统中,通过使用对象来创建显示,其中每个对象具有与物理或逻辑元件相关联的图形,并且每个对象通信地关联到物理或逻辑元件以接收关于该物理或逻辑元件的数据。对象可以基于接收到的数据改变显示屏上的图形以显示例如罐是半满的、显示由流量传感器测得的流体流量,等等。
与控制配置应用类似,显示创建应用可以具有模板图形显示项目,如罐、阀、传感器、操作者控制按钮(如滑杆、开/关开关)等,其可以以任何期望配置放置在屏幕上以创建操作者显示、维护显示等。模板图形显示项目可以与配置对象一起存储在模板库中或者可以存储在不同的模板库中。当放置在屏幕上时,各个图形项目可以在屏幕上以向不同用户提供过程工厂的交互工作的一些信息或显示的形式来互连。然而,为了以动画展示图形显示,显示创建者必须通过指定图形项目和过程工厂内的相关数据源之间的通信链接来手动将每个图形项目与过程工厂内产生的数据(如由传感器测得的数据或者指示阀位置的数据等)关联起来。该过程是冗长、耗时的并且可能产生错误。此外,一旦创建了显示,其在其配置和布局方面保持静态。
虽然控制配置应用内的控制模板对象和显示创建应用内的显示项目是方便的(因为它们能够被复制和被用来创建许多不同的控制模块和图形显示),但是常常需要针对过程工厂内的不同设备和显示创建众多相同的控制模块和图形显示。例如,许多中到大型的过程工厂具有相同或类似设备的众多实例,这些实例可以使用相同的基本通用控制模块和显示来控制和查看。
为了解决这一问题,美国专利No.7,043,311(其全部内容被引入于此以供参考)公开了一种过程工厂配置系统,其使用也称为模型类对象的类对象(在这里统称为类对象或类)来使得用户能够根据一个公共的模块类对象创建众多控制模块、单元或设备模块,或显示模块。这些控制、设备或显示模块被创建为模块类或类对象的实例,并且包括模块类对象的所有特征和性质,从而使得更容易从单个或公共类模块对象创建多个类似的控制、设备或显示对象。实例可进而具有它们自身的子类,使得对象可以具有多代或多级关系。此后,根据模块类对象创建的每个实例、子对象或多层子对象可以通过对其相应的父对象(parent object)作出改变并存储这些改变而被自动改变。例如,模块实例保留它们到模块类对象的连接并在类模块改变或更新时自动更新。类似地,根据不是类对象的父对象创建的子对象和多级子对象可以通过对父对象作出改变并存储这些改变而被自动改变。在一种实施方式中,子对象中的至少一些存储在与库逻辑和/或物理分离的系统配置数据存储区域或其他数据存储区域中。
然而,在例如过程工厂中使用的典型的控制系统中,可能必须定义上百个类似的项目(如控制模块或显示元素)。这些项目包括与对例如流量或压强的控制相关联的控制策略,以及用于在图形显示中呈现这些控制策略的显示组件。现在,实现使用类或模块类对象来配置这些公共项目的配置系统非常常见,其中该配置系统包括模块类对象的库,并且使得用户能够产生任意特定模块类对象的许多副本或实例以供在工厂中使用。在这些系统中,对对象的修改必须首先对模型类对象作出,这然后使得这些改变自动传播到该模块类对象的所有实例、子对象和多级子对象(如果有的话)。事实上,这些配置系统被设计为仅允许直接对模型实例作出少量调整,如改变模型实例中的参数值。例如,控制策略的典型类行为使得仅在参数级别上并且仅在特定参数被授权改变从模块类内进行的访问的情况下才能够修改类项目的实例。结果,必须开发许多不同的模块类对象以配置彼此仅有少量或微小差别的过程工厂项目(如工厂设备)。不幸的是,随着定义的这些模块类对象越来越多,通过使用配置类对象获得的原始生产力提高反而降低。
此外,如上所述,使用基于类的配置项目的当前配置系统通常被设计为确保当对类项目作出改变时,该改变立即传播到该类的所有模块实例。这一特征被设计到配置系统中,因为实例出于它们的定义而实际上共享或指向它们的相应的父项目或对象(例如,该类项目或对象)。虽然这种自动改变传播特征使得控制系统设计更加简单并且在设计的早期阶段更加有效,但是一旦控制系统在工厂中安装并运行,同时改变与特定模块类对象相关联的所有实例是不可接受的或者不现实的。重要的是,给定的模块类对象通常在其生命周期期间经历许多改变。在模块类对象创建之后,对模块类的后续改变(可能是结构性改变或者参数值改变)导致经修改的模块类,其改变需要被分发给模块实例、分发给一个或多个子对象和/或分发给其他模块类(诸如,派生的模块类)。然而,实际上,在工厂中运行的每个受影响的子对象可能需要在实际的过程设备上进行单独测试和验证,并且因此用户可能需要将对模块类对象的改变延迟几个月或几年以等待适当的时间来更新该类对象的所有模块实例。此外,由于对模块类对象的改变被自动分发给派生的对象,所以对模块类的简单改变将影响数百个,甚至可能数千个模块实例和子对象。许多过程工业不能处理在工厂操作阶段期间扩展该工厂的多个区域所需要的破坏性下载。结果是,控制系统被初始设计具有关联到模块类对象的模块实例,只用于在系统进入工厂操作阶段之前被最终转换到无类控制模块的这些实例。
出于上述各种原因,类实例在许多情况中被中断或者与原始的类对象解除关联以使得能够对类实例进行改变,这从而创建了新的类模块或者允许对类对象进行改变而不被立即传播给所有实例。然而,这一操作首先破坏了使用基于类的配置对象的优点。
即使在类/实例连接不被切断的较小系统中,仍然难以在不影响该类中的所有实例的情况下定义或调试对控制对象的新改变,因为一方面,不可能在实例上实现新改变,另一方面,当对类对象作出任何改变时,该改变将自动应用于类对象的每个实例。这里,再次,子对象中的一个(例如一个实例)必须被从类对象暂时断开,以使得能够在该实例上设计和测试新改变。在这种情况下,一旦改变完成,将必须手动对类对象进行改变,并且用户必须清除用于测试的实例并将该实例重新附接到其适当的类对象。这样,实际上,为了处理这些问题,用户必须创建整个单独的类对象以通过将越来越多的类与用于测试目的的原始类对象断开来处理实例之间的轻微改变,或者必须完全放弃类概念。
进一步的,当前市场中使用的大多数配置系统不使用类来配置控制系统的图形显示。典型的,图形与控制策略单独地定义,并且一个图形项目通常与多个不同的控制策略类一起使用。因此,当对特定图形项目作出改变时,用户必须核实改变后的图形项目与所有策略实例在所有显示上一起工作。当以上述方式出现对控制策略的改变并且控制策略类激增时,每个实例的每个图形项目需要被验证,这非常耗时并且不实用。
虽然图形使用可以用于更新类似的图形项目,然而该使用将使得所有所选的图形项目相同。这样,最终,该方案类似于使用图形项目的类。此外,设计图形形式的实例差很困难并且需要编程技巧。由于各种各样的改变都是允许的并且事实上在图形项目中是被预期的,因此需要使用特殊形式设计指定了在从公共图形对象创建的每个图形显示项目中以覆盖(override)结构允许或支持哪些改变。这些改变例如包括指定诸如允许一个实例上的用户为该项目的一部分定义旋转、选择必须在显示中示出哪些串和变量,以及哪些是可选的,之类的改变。没有这些预先设计,图形对象甚至不能对其作出微小的改变。不幸的是,试图设计或预先指定图形项目中的可允许的改变的配置系统很快变得不可用,因为对图形项目的改变非常普遍。结果是,有效地维持图形成本是控制系统中正在进行的问题,并且只在维持图形的步骤必须与对控制配置系统中使用的控制模块类作出的改变相协调时才加剧。
更概括而言,用户想要使用可重用的图形组件配置显示,并且能够看到他们作出的与原始图形定义的改变。此外,他们想要能够在一个地方对定义作出改变,并且使得这些改变应用于图形定义所用于的显示,其后维持他们对各种显示作出的特定改变。当前,在一些显示系统中,显示组件可以分组为动态模型(dynamo),其是基本图形的组合,如配置有动画和事件句柄行为的矩形和文本块。这些基本形状可被配置为各种组合以代表来自工厂部分的设备或数据。一些动态模型通常作为显示配置系统的一部分而立即可用,而其他动态模型被项目工程创建和维持,并且还有一些其他动态模型被顾客配置。当前,当这些动态模型在显示上使用时,完整的副本被放置在使用原始动态模型的每个实例的显示中。然而,并没有回到原始动态模型的硬链接。然而,每个实例可以改变动态模型的若干个方面,如动画表达路径、位置朝向或允许该特定显示匹配在使用显示元素的用户接口的当前显示域内的其他可视方面。
该方案有几个问题和限制。概括而言,顾客试图使得财务成本最小化并且试图使得显示的质量和可靠性最大化。然而,动态模型定义总是需要一个或多个改变。在对主或原始动态模型作出改变之后,顾客需要通过更新使用该特定动态模型的所有显示来将那些改变投入生产。然而,由于正被改变的原始动态模型及其副本之间没有硬链接,因此确定动态模型用在哪里是一个严重的问题。通常,创建的每个动态模型包括串域,用于存储动态模型名称和版本。然而,不是所有顾客都使用该技术,并且在任意情况下,该域可能在编辑会话期间被用户不经意地清除或删除,从而失去回到原始动态模型的命名连接。此外,如果新的动态模型从已有的动态模型创建,并且该参考值没有更新,则串将具有到原始动态模型名称和版本的不正确参考。此外,如果差是显示上的改变或对动态模型的改变,则只可能知道动态模型中什么是不同的,但是不知道为什么。因此,用户难以确定当对原始动态模型作出改变时是否需要向特定显示中正使用的特定动态模型结合该改变。
进一步的,虽然用户能够将实例更新到新的动态模型并且保持实例特定改变,但是用户通常不知道哪些改变在新的主控中,以及哪些是特定于实例的,因此不能确定显示项目内的哪些差应当留在原处。当前,更新到动态模型的新版本需要完全重新拷贝动态模型以代替在显示上配置的值。该过程重写了显示项目上的任何特定于实例的改变。结果是,用户然后必须手动重新应用之前对显示项目或实例作出的所有改变,并且如果用户忘掉了一些改变,则这些改变将丢失。这一操作不利的影响操作者显示的质量并且还消耗更长时间,因为其实现了一个手动的过程。更进一步的,原始动态模型级别只是一级深度的。结果,动态模型只能根据基本图形而不根据其他动态模型来构建,这防止了构建用于其他动态模型的基础的一组动态模型。
发明内容
配置系统使用经简化的配置窗格或表格来配置图形元素(graphical element)的属性(attribute)的性质(property),诸如图形元素的形状、动态行为等。简化的配置窗格被提供为对象,其可以被配置、发布并且引用其它对象(诸如图形元素对象),而不是使用脚本。因此,配置元素(configuration element)可以被配置为包括最常用于特定图形元素的性质,而不是暴露配置系统中的所有可能的性质,这些性质的数量可以达到上千个。例如,阀的图形元素对象可以具有特定的形状和外型尺寸(designation)。这种图形元素的常用性质包括形状的填充颜色、形状的线条粗细、字体、字体大小和动态行为。阀图形元素的配置元素可以被配置为包括用于填充颜色、线条粗细、字体、字体大小和动态行为的选项集合。当实例化配置元素时,向用户呈现用于配置阀图形元素的性质的选项集合。图形元素对象被链接并绑定到配置元素对象,使得在实例化时,元素对象被显示为具有在配置元素对象中定义的性质。然后,对配置元素对象的后续改变将传播到被链接到配置元素对象的图形元素对象。
附图说明
图1是位于过程工厂或者过程控制系统内的示例性分布式过程控制网络的框图,过程工厂或者过程控制系统包括实现配置应用的工作站,该配置应用使用模块类对象来配置过程工厂或者过程控制系统的控制和显示活动;
图2是图1的反应器单元的示图;
图3是图2的反应器单元中使用的累加器装置实体的示图;
图4是图2的反应器单元中使用的出口阀系统的示图;
图5是示出了模块类对象和针对该模块类对象的单元、装置、控制和显示类型的相关联的模块对象之间的相互关系的示例性逻辑图;
图6是反应器单元模块类对象的示例性逻辑图,其可以用于执行图1的工厂中的反应器的配置活动;
图7是可以由配置操作者用来使用模块类对象配置过程工厂的配置屏幕的示例性图示;
图7A是配置屏幕的第二示例性描绘,该配置屏幕可被配置操作员用来配置用于配置图形元素的用户界面;
图7B是配置屏幕的第三示例性描绘,该配置屏幕可以由配置操作员用于使用图7A的经配置的用户界面来配置图形元素;
图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-Rosemount Systems)销售的DeltaVTM控制器来实现,其能够与控制元件(如分布在整个过程工厂10内的现场设备以及现场设备中的功能块)进行通信以执行一个或多个过程控制例程19,从而实现对过程工厂10或者过程工厂10中操作的一个或多个过程的期望控制。工作站14(其可以是例如个人计算机)可以由一个或多个配置工程师使用来设计要由控制器12执行的过程控制例程19以及要由工作站14或其他计算机执行的显示例程,并且与控制器12通信以将这样的过程控制例程19下载到控制器12。此外,工作站14可以执行各显示例程,这些显示例程接收并显示与过程工厂10或过程工厂10运行期间的元素有关的信息。
每个工作站14包括存储器20,存储器20用于存储应用(诸如配置设计应用和显示或查看应用),并用于存储数据(诸如与过程工厂10的配置有关的配置数据)。每个工作站14还包括处理器12,该处理器21执行这些应用以使得配置工程师能够设计过程控制例程和其他例程并将这些过程控制例程下载到控制器12或其他计算机,或者在过程工厂10的操作期间收集信息并向用户显示该信息。在一些实施例中,远程计算设备与工作站14(例如,经由基于网络或web的接口)通信连接,使得配置工程师可以从工作站14远程地执行应用。
更进一步的,每个控制器12包括存储控制和通信应用的存储器22以及以任意已知方式执行该控制和通信应用的处理器24。在一种情况下,每个控制器12存储和执行用于使用多个不同的、独立执行的控制模块或块19来实现控制策略的控制器应用。控制模块19可以各自由通常称为功能块的事物组成,其中每个功能块是整体控制例程的一部分或子例程,并且(经由称为链路的通信)与其他功能块结合操作以实现过程工厂10内的过程控制回路,例如以控制由过程工厂10执行的一个或多个过程的操作。
众所周知,功能块(其可以是面向对象的编程协议中的对象)通常执行以下之一:输入功能,如与诸如发射器、传感器或其他过程参数测量设备之类的现场设备相关联的输入功能;控制功能,如与执行PID、模糊逻辑等控制的控制例程相关联的控制功能;或者输出功能,其用于控制某些设备(如阀或其他现场设备)的操作,以执行过程工厂10内的某些物理功能。当然,还存在混合的以及其他类型的复杂功能块,如模型预测控制器(MPC)、优化器等等。虽然现场总线协议和DeltaV系统协议使用以面向对象的编程协议设计和实现的控制模块和功能块,但是控制模块也可以使用任意期望的控制编程方案(包括例如序列功能图、梯形逻辑等)来设计,而不限于使用功能块或任意其他特定编程技术来设计。
工作站14可以经由示出了过程控制例程19内的控制元件的显示屏并经由这些控制元件被配置来提供对过程工厂10的控制的形式来向用户提供控制器12内的过程控制例程19的图形描绘。在图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以及结合共用的水总管110一起向反应器容器100提供水的输入阀系统103、203和303来产生盐。出口阀系统104、204和304可以被操作来将产品从指向图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中的一者执行批执行例程,该批执行例程是引导反应器单元中的一个或多个(以及其他设备)的操作以执行产生产品(如特定类型的盐)所需的一系列不同步骤(通常称为阶段)的高级控制例程。为了实现不同的阶段,批执行例程使用通常被称为配方(recipe)的对象,配方指定要执行的步骤、与这些步骤相关联的量和时间、以及这些步骤的顺序。一个配方的步骤可以包括,例如使用适当的物料或作料填充反应器容器、混合反应器容器内的物料、在某个时间段内将反应器容器内的物料加热到某个温度、清空反应器容器,以及然后清洗反应器容器以准备好下一个批处理运行。每个步骤限定了批处理运行的阶段,控制器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作出的测量来控制酸的输入。第一个这样的控制例程可以通过累加器101使用粗糙阀101a和精细阀101b来执行快速流量控制,而第二个这样的控制例程可以通过累加器101使用粗糙阀101a和精细阀101b来执行精确的流量控制。
根据图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排出到排放或收容(refuge)系统。当然,一个或多个控制例程与出口阀系统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可以是面向对象的编程环境或语言中通常被称为对象的事物。结果,这些对象能够拥有或指向其他对象。一般而言,模块类对象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中,其中不同阀的状态是基于出口阀系统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的各个元素并且要在显示屏上显示的图形或图像元素,以及针对工厂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拥有模块类对象反应器01 440a、反应器02 440b、反应器03 440c等,每个都是从反应器单元模块类对象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内的元素。
在单元模块类对象内可以将任意设备或控制模块指定为共享或非共享的模块对象。非共享模块对象完全由高级模块对象拥有,其中非共享模块对象在该高级模块对象中创建。共享模块对象被一个以上的较高级别的模块对象拥有或与该较高级别的模块对象相关联。模块对象的共享或非共享属性影响模块对象在浏览器视图中的图示。具体而言,非共享模块对象指定造成模块对象仅仅显示在控制策略内的更高级对象下,而共享模块对象指定造成共享模块块或模块对象显示在共享该元素的每个更高级模块对象下以及浏览器层级中的独立的模块对象下。
将理解,以类似的方式,配置工程师可以根据本文中描述的原理使用任何其它单元模块类对象、设备模块类对象和控制模块类对象以及显示模块类对象来为过程控制环境内的单元、设备、控制元件和显示元素创建配置元素。此外,配置工程师可以通过改变一个或多个单元模块类对象并使这些改变被传播到从那些模块对象创建并与那些模块对象相关联的每个模块对象来全局地改变不同过程实体的配置的元素。此特征使在创建配置后配置中的改变容易并且耗费更少的时间。此外,配置工程师可以通过在模块类对象内设置安全性参数来指定配置系统内的模块对象的不同元素或部件的访问级别。如上所述,配置工程师可以在任何级别上(诸如在单元模块级别、设备模块级别、控制模块级别和显示模块级别上)逐个模块地指定安全性。以这种方式,可以查看单元模块对象的一些元素而不能查看其它元素。
图7A描绘了可以由图1的配置应用50在配置工程师或操作员创建和使用经简化的配置用户界面(UI)的过程期间创建,以进而创建和使用图形对象来配置过程工厂10的屏幕显示。一旦被配置,经简化的配置UI就可以被存储为配置元素对象,其在被实例化时进而实例化配置显示对象,从而产生用于使用在经简化的配置UI的配置期间定义的性质集合来配置图形对象的配置显示视图。与图7的屏幕显示一样,屏幕显示包括屏幕左手侧的浏览器视图,其提供描绘配置UI的配置的组织结构,包括配置UI中将包括的用于配置图形元素的性质和/或性质组性质。同样,屏幕显示通常包括在其右手侧的一个或多个信息视图。在图7A中,信息视图提供关于浏览器视图中的选定元素的进一步信息。与图7的屏幕显示一样,可以通过为其不同的性质组或诸性质中的一个性质设置的图6的控制和安全性参数来确定或控制信息视图中能够向用户显示或由用户改变的信息。
在图7A中,屏幕显示700包括在显示700的左手侧描绘的浏览器配置视图702的一部分。浏览器视图702的该部分例示了存储众多模块类对象(包括性质模块类对象704)的库。性质模块类对象704可以是图形元素的各个性质或性质组。例如,参考下面的图12,阀的图形元素模块或GEM包括定义模块名称(即“数据数据(DATADATA)”)和形状的若干对象,其中形状由两个三角形、半圆、和三角形与半圆之间的两条连接线组成。反过来,阀GEM的形状可以具有诸如线条粗细和填充颜色之类的性质,并且名称可以具有诸如字体样式、字体大小和字体颜色之类的性质。附加性质可以包括但不限于动态行为、动态行为选项、字体等,并且每个性质可以由配置GEM时的值来定义。阀GEM的性质可以作为性质组保存在性质模块类对象704中,在浏览器视图702中被示为“快速编辑”,其中各个性质(“模块性质”)组成该组。替代地或与性质组一起,可以在浏览器视图702中个体地呈现各性质。因此,在创建和配置经简化的配置UI时,配置工程师或操作员可以选择定义将包括在经简化的配置UI中的个体性质或性质组的一个或多个库项目。
如图7A的工具菜单中所见,可以添加706性质组,可以添加708个体性质,或者可以删除710在浏览器视图702中选择的性质和性质组。例如,如果正在配置针对阀的经简化的用户界面,浏览器视图702可以呈现阀的所有性质组。然后,配置工程师或操作员可以在配置经简化的配置UI时添加性质组、创建附加的性质组或修改现有的性质组。
对性质组“快速编辑”的选择导致在信息视图712中显示这些性质。在信息视图712中,配置工程师或操作员配置经简化的配置UI(在第二信息视图714中示出,这里也称为“预览”)。在该示例中,当正在配置经简化的配置UI时,在预览714中示出经简化的配置UI。例如,如在信息视图712中所见,经简化的配置UI的标题是“快速配置”,其在预览中示出。在一个示例中,经简化的配置UI是诸如大小和位置的基本性质的默认配置。预览714消除了要利用图形元素以便查看经简化的配置UI是否具有该图形元素的正确性质的任何需要。
一般而言,图形元素的性质的数量可以达数千。例如,每个图形元素可以具有形状,其中形状存储在类画布中并且其数量可以达数百。反过来,每个形状都具有许多性质,诸如颜色和线条粗细。这样的结果是有大量性质供配置工程师选择,尽管配置工程师可能没有使用绝大多数性质。经简化的配置UI允许图形对象的配置工程师或操作者具有最有可能用于配置图形对象的性质(例如,形状)的性质集合。因此,经简化的配置UI暴露常用的将为图像对象配置的性质,并且使用用户友好的名称以逻辑顺序或分组暴露这些性质。图7A的显示屏700允许经简化的配置UI被配置为包括最常用的用于配置图形对象的性质,其中不同的经简化的配置UI被配置用于不同的图形对象(例如,反应器、阀等)。
链接并绑定到图形对象(例如GEM)的配置元素对象在图形对象被实例化时被调用,以便提供图形对象的性质的定义/值。例如,当实例化阀GEM时,可以实例化配置元素对象,并且在显示视图中发送和显示阀GEM属性的性质的值。
图7B描绘了经简化的配置UI(“阀类型”)的屏幕显示800,其可以使用图1的配置应用程序50来创建,如以上参照图7A所描述的。屏幕显示800包括在显示800的左手侧描绘的浏览器配置视图802的部分,以及在显示800的右手侧的信息视图804。浏览器视图802的该部分例示了可以存储众多经简化的配置UI(“GEM配置窗格”)的库,这些经简化的配置UI可以按类型存储(例如,“阀类型”)来存储。选择一种经简化的配置UI导致在信息视图804中显示经简化的配置UI。在信息视图804中,显示在配置阀类型期间定义的阀的性质集合,以便配置工程师或操作员可以进而定义阀GEM的各种性质的值,以便配置阀GEM。在某些情况下,可以通过直接输入(例如,文本框)或通过从下拉菜单中选择选项来定义值。在一个示例中,可以为图形元素的一些或所有性质提供默认值,诸如图形元素的形状的默认线条粗细和颜色,以及图形元素的显示名称的默认字体和字体大小。
阀GEM的预览806可以在其被配置时以及在创建图形元素的用法之前被显示。通常,经简化的配置UI提供用于配置图形元素对象的配置显示,其中图形元素对象稍后将被实例化在过程控制显示视图上并且对应于过程工厂内的过程实体。经简化的配置UI呈现在在经简化的配置UI的配置期间定义的性质集合,集合中的每个性质是可选择的并且可定义以指定图形元素对象的性质的值。例如,阀类型被配置成为阀的性质提供三个可选选项804—失效关闭、失效打开和保持。在该示例中,选项失效关闭被选择,并被反映在阀的预览802中(即“FC”)。
如上所述,经简化的配置UI可以使用针对图形元素的属性的各性质的默认值来填充。使用图7B作为示例,阀GEM的默认动态行为可以被定义为“保持”(即,阀维持其位置(例如,打开或关闭))。另一方面,图形元素可被加载到屏幕800中以供重新配置。也就是说,该图形元素已经具有针对其属性的性质的基线配置。不是在经简化的配置UI中将图形元素的性质重新配置为默认值,而是可以从图形元素捕获810(例如,读取)图形元素的基线配置的值并用于填充信息视图804。因此,如果配置工程师或操作员仅需要改变图形元素的一个值或少于全部的值,则他/她不必重新定义所有性质值。例如,如果仅将阀806的动态行为从“保持”改变为“失效关闭”(即,在有故障的情况下,阀关闭),则用户可以捕获810阀GEM的基线配置,从阀的动态行为列表中选择“失效关闭”,并捕获812“失效关闭”性质,并更新阀GEM的动态行为性质。阀GEM的更新可以将经更新的性质链接并绑定到阀GEM的图形元素对象,并存储性质配置存储作为配置元素对象,使得无论何时阀GEM被实例化,图形元素对象都从配置元素对象读取该性质,并且显示对象加载具有经配置的性质的图形元素对象。
当然,一旦配置系统完成并且模块对象关联于过程工厂10内的相应的过程实体,控制和显示模块或者与这些模块相关联的元素可以下载到适图1的当的控制器12、设备和工作站14,以在过程工厂10的操作期间运行。
本文描述的技术、系统和方法允许使用灵活的类对象、实例对象和过程元素对象对过程工厂和过程控制系统进行配置。在一个例子中,对父对象的改变或修改被分阶段或延迟传播给一个或多个相应的子对象,以使得配置更新的定义能够在过程工厂中控制。在一个实施例中,分阶段和/或延迟由用户指示,并且可以对于不同子对象而不同。在另一个例子中,对父对象作出的改变被应用于选择的子对象而不是父对象的所有子对象。用户可以指示对于要应用改变的期望子对象的选择。在又一个例子中,对子对象作出的改变被选择性地应用于其父对象和/或应用于一个或多个子对象。对要应用改变的期望父对象和/或子对象的选择可以由用户指示。此外或者替换地,用户可以对各个对象作出草案改变或者修改而不自动分发和/或实例化(例如创建可执行文件)该修改。可以将草案改变的不同集合保存为各个对象的不同版本,并且可以离线测试而不影响运行时过程工厂的现场操作。
此外,本文描述的技术、系统和方法应用于存储在过程控制系统或工厂10的库中的项目或对象(例如模板和/或用户创建的库对象)。替换地或者附加地,该技术、系统和方法应用于过程控制系或工厂10的配置数据库25中存储的项目或对象,其在一些情况下至少部分地从库项目或对象创建或派生。
更进一步的,本文描述的一个或多个灵活配置技术和对象可以用于过程工厂中,如图1的过程工厂10,或者用于其他适当的过程工厂或过程控制系统。在一个例子中,本文描述的一个或多个技术由在图1的一个或多个工作站14上运行的配置应用来执行。在另一个例子中,本文描述的一个或多个技术至少部分地由访问该应用的远程应用(例如web客户端或其他远程访问手段)来执行。在一些实施例中,一个或多个灵活配置技术与除了本文描述的配置技术之外的其他配置技术结合使用。
此外,本文描述的灵活配置技术和对象是使用模块类(如图5中所述的模块类)来实现的。然而,本文描述的灵活配置技术可以使用其他适当的模块类、软件架构和/或编程技术来实现。
项目或对象草案:
如前所述,本文描述的灵活配置技术、系统和方法的实施例使得用户能够对库和系统配置项目或对象作出改变而不需要下载,下载可能会不利地影响运行时过程工厂或过程控制系统。库项目或对象通常是存储在中央访问的位置或库(例如工作站14和其他接口和计算设备可访问的配置数据库25或其他存储设备)中的模块对象。系统配置项目或对象(以及一些库项目或对象)通常基于一个或多个库项目或从一个或多个库项目派生。对于一些项目和对象,至少一些方面由用户定制。
本文使用的术语“项目”通常是指对象,如类对象、实例对象或者过程元素对象。项目可以存储在库中(例如“库项目”或“库对象”),或者项目可以存储在系统配置数据存储区域中(例如“配置项目”或“配置对象”)。此外,本文使用的术语“项目”通常还可以指对象内部并且由对象定义的项目,例如对象的内容的至少一部分。对象的可能的内部项目例如包括方法、动作、数据域或其他性质、输入、输出、I/O类型(例如控制器(例如图1的控制器12或12a)与系统进行通信的输入/输出卡或设备的类型)、功能或用法、定义、参数值、对父对象的参考、对子对象的参考、对不是父对象也不是子对象的另一对象的参考,以及其他内部项目。内部项目可以绝对定义(例如存储常数值或表达式的数据域),或者内部项目可以相对定义,例如通过参考绝对值、绝对表达式、另一对象或另一参考。例如,图形显示元素对象定义的内部项目可以包括对父对象的参考、一个或多个域、触发器、功能、视图定义、事件句柄、动画、占位符、参数、表格等等。在另一个例子中,控制模块元素对象定义的内部项目可以包括对父对象的参考、一个或多个输入、输出、参数、功能块、互连、域表达式、外部参考、动作、算法、转换,等等。
本文中一般使用的术语“链接的”项目是指其结构和初始值从父对象或项目派生或创建的对象或项目,和/或其结构和初始值被提供给子对象或项目的对象或项目。这样,链接的项目可以是父项目。此外或者替换地,链接的项目可以是子项目。因此,本文所使用的“未链接的”项目是指不具有父对象并且不具有任何子对象的项目或对象。链接(例如维持父/子对象关系的指示)允许用户定义父项目或对象的结构和初始值,然后与实例或子对象共享相同的结构和初始值。例如,当用户想要作出影响类对象的所有实例的修改或改变时,用户仅仅修改类对象,并且该改变被分发或传播给该类对象的链接的实例。
本文所使用的术语“当前项目”或“当前对象”表示已经被实例化(并且在一些情况下已经被下载)的项目或对象,其可以在过程工厂10中的对应的过程元素的运行时期间运行。例如,当当前过程元素控制对象被实例化时,与当前过程元素控制对象相对应的可执行的配置代码被下载到过程元素,如图1的控制器12或12a,并且控制器12或12a被配置为在运行时期间根据所实例化的当前过程元素控制对象所定义的功能、输入、输出和其他条件来操作。在另一个例子中,当前图形显示视图对象在与该当前图形显示视图对象中所包含的定义相对应的视图被构建和呈现给用户接口时在用户接口处实例化。典型的,对由对象定义的特定内部项目作出的改变不影响该对象定义的其他内部项目。
术语“修改”和“调整”在本文中可以互换地使用以表示在维持到其父对象的链接的情况下对对象的内容作出的一个或多个修改。对当前项目或对象的修改或改变的一个示例是向当前项目或对象添加新的内部项目,如添加新的参数或动作。此外或者替换地,修改可以包括删除当前过程元素对象的已有项目和/或可以包括改变该对象定义的项目的值、表达式或参考。在一些情况下,修改包括禁用特定项目,使得特定项目在实例化期间被忽略。例如,在特定示例对象中,用户可以禁用父类对象中定义的项目。这样的能力允许用户定义比该类的剩余部分具有更少功能,但是仍然包括核心类功能的实例。任何禁用的内容可以在视觉上被弱化、变得不可见或者以其他方式被弱化渲染,并且在运行时期间不使用。禁用的内容可以被用户在任何时间重新启用。通常,修改可以包括解析对常数值或表达式的参考,如当父对象中的参考被解析为相应的子对象中的常数值时。
可以对类项目或对象、实例项目或对象、过程元素项目或对象或者内部项目作出任何修改、改变和其组合。在一个实施例中,在实例对象和其他子对象的情况下,对子对象的改变或修改不造成子对象被移除出其父对象。例如,对实例对象的修改不从其类中移除实例对象,并且此外,不影响相同类的其他实例,除非用户指示影响。在一个实施例中,对子对象定义的项目的改变或修改由子对象内的标志或其他标记来指示,并且可以被这样标记以不影响类级别的项目。这样,这种灵活性可以降低父对象的扩散,并且通过允许在子项目或对象之间有更多改变,使得单个父项目或对象可应用于更多应用。
此外,用户能够保存对项目或对象作出的修改的集合作为草案。通常,草案对象能够被测试而不影响运行时过程工厂或系统。(本文使用的草案对象的“测试”通常是指对草案对象本身作出初步检查以确定修改或改变是否正确的能力,但是通常不暗示完整的工厂接受度测试,这将要求草案对象在具有其他草案的环境中工作。)
在一个实施例中,特定对象一次只存在一个草案。在一个实施例中,特定对象可能存在多个不同草案。用户可以能够添加、删除或修改草案对象。在一些实施例中,可以获得草案对象的版本控制。可以通过对象中包括的或者与对象相关联的标识、域或其他指示来标识草案对象。在一个实施例中,草案对象存储为当前实例化的对象的子对象、存储为当前对象的父对象的子对象或者存储为派生出当前对象的库对象的子对象。在一些情况下,还可以存储与草案对象相对应的其他信息(例如作者、存储时间等)。
可以创建和存储包含对当前对象的不同修改的不同草案(例如,同时地)。不同草案可以在本质上是顺序的。例如,第一草案可以对应于配置传统过程设备,第二草案可以对应于配置该过程设备的更新的模型。不同的草案内容可能不同。例如,第一草案可以对应于配置由制造者A作出的阀以执行特定功能,而第二草案可以对应于配置由制造者B作出的阀以执行类似功能。事实上,例如根据用户需要,顺序和/或内容改变的任意组合可以跨草案集合来体现。
草案通常不被允许实例化或下载,但是被允许测试以保证将它们发布到允许分发和下载的版本之前它们能够很好地工作。通过这种方式,用户能够对当前项目或对象作出修改并且将修改存储为草案。当用户认为该草案可接受时,用户可以发布该草案以产生项目或对象的新版本,例如“发布的”或“批准的”项目或对象。存储项目或对象的新版本并且可用于实例化或下载到过程工厂或系统中。
版本:
这样,版本帮助用户跟踪和控制对过程元素的改变。具体而言,项目或对象可以经历改变,作为其生命期的一部分。最初,对象被创建,并且对对象的每个后续改变(不管是结构上的(如添加/删除功能块)还是改变参数值)通常都被分发或传播给其子对象。然而,在现场过程工厂操作期间,应当防止对父项目或对象的改变(尤其是不完整的、未批准的或未测试的改变)以不受控方式进入运行时系统。因此,本文描述的灵活配置技术和对象包括“版本”以使得用户能够控制改变的分发和传播。本文使用的“版本”通常是指对当前对象的未被批准或发布的草案修改,并且可用于实例化到运行时环境中。版本或发布能够被实例化到过程工厂或过程控制系统,而草案不允许被实例化。
在一个实施例中,当用户指示时(例如只在用户批准草案之后),草案被发布为版本。此外,当对对象的过程元素项目的草案修改被批准时,过程元素项目或对象的状态可以从阻止或不允许实例化的第一状态(例如“草案”状态)改变为允许实例化的第二状态(例如“发布”状态)。在一个实施例中,只有具有适当的安全检查的授权用户被允许将草案发布为版本(例如以批准草案修改以产生发布的修改或版本)。当可获得多个草案时,用户可以选择要将多个草案中的哪一个发布到版本中。
对象的版本可以由对象中包含的或者与对象相关联的标志、域或其他指示来标识。在一个实施例中,版本或发布的修改的对象被存储为单独的对象,其指示或链接到作为其父对象的修改的对象的草案、当前对象、另一版本、另一对象或库对象。在一些情况下,还可以存储与对象的版本相对应的其他信息(例如作者、发布时间等)。在一个实施例中,子项目或对象可以链接到父对象的版本和父对象本身。
在一个实施例中,当可获得对象的多个版本时,用户可以指示或选择要实例化该多个版本中的哪一个。例如,用户可以指示该对象的不同版本要在过程工厂内的不同过程元素处实例化。替换地或者附加地,用户可以为版本或者为不同版本指示实例化的不同项目。在一些情况下,用户还可以删除、禁用或编辑版本。
在一些实施例中,只允许存储一个草案(而不是多个草案)。在这样的实施例中,只有当前对象的当前版本可以由用户编辑。因此,编辑后,用户保存草案修改的对象,并且,在用户指引下,草案修改的对象被发布为对象的新的当前版本。在一个实施例中,前一个当前版本可以被自动删除,如果它没有任何子对象链接到它并且它不是唯一的版本的话,如在库项目或对象的情况下。因此,如果当前版本没有任何子对象,则对当前版本的修改的随后发布可以简单地取代或覆盖当前版本(例如没有创建附加的当前版本)。在一个实施例中,一个或多个先前的当前版本可以隐藏或不让用户访问。
在一个实施例中,发布具有至少一个子对象的父项目或对象会自动产生子对象的一个新的当前版本。在一个实施例中,重新命名一个对象不创建对象的一个新版本,但重新命名由对象定义的内部项目需要将重新命名的内部项目保存为草案,并且发布重新命名的内部项目草案作为内部项目的新版本。
在一个实施例中,如果发布的项目或对象是指或结合到另一个发布的项目或对象(并且可选地被嵌套到多个对象级别),则创建最内的项目或对象的一个新版本可以在所有嵌套级别上自动创建每个包含的项目或对象的新版本。
改变和修改的分发和传播:
术语“分发”和“传播”在这里可以替换使用,并且一般是指结构(如用于控制对象的功能块的使用、动态模型的用法、形状、参数类型、电线,等;又如用于图形元素对象的动画、视图定义、形状、连接器,等)和参数值从父对象到子对象的传递,和/或从一个子对象到其父对象的传递。通常,传播在一个版本或发布的对象的修改或改变。在一个实施例中,只有对象的发布版本中包含的改变的项目才被传播。在一个实施例中,对象的整个版本都被传播。
策略设置可以每个对象地或者每个项目地控制分发或传播过程。在一个实施例中,策略设置可由用户(如配置设计师或系统管理员)改变。在一些配置系统中,访问改变的策略设置被安全地控制。分发或传播策略设置包括至少两种可能的值:自动的和用户管理的。在一个示例中,如果针对库中定义的设备项目的策略被设置为自动的,则对新版本中发布的库中存储的设备项目的改变或修改被立即自动传播到该设备项目的任何链接的项目,从而产生链接的项目的新发布的版本。
然而,如果对象的策略被设置为用户管理的,则新发布的改变不是立即自动传播给链接的项目。相反,用户手动启动在选定的时间传播(或创建一个脚本或类似物以启动传播)给选择的链接的项目。在上述库存储的设备项目的示例中,如果其策略被设置为用户管理的,则用户可以选择特定的子系统配置项目以在指定时间接收发布的改变。另外,如果有库存储的设备项目的多个存储的版本,则用户可以指示该多个版本中的哪一个版本在哪个时间传播。
因此,本文描述的灵活配置技术和对象允许用户对父对象(例如,类对象)作出改变、指定改变要被分发或传播给的子对象(例如,实例对象),以及指定传播何时发生。因此,在发布后,对父对象作出的改变可以仅立即传播到需要改变的子对象,而其他子对象可以在稍后的时间更新该改变。对改变或修改的接收者的选择可以在每个过程实体或元素的基础上执行,或者可以在组的基础上(例如,一个工厂区域、某个制造商的所有设备、运行版本X的所有设备、某个测试生产线中的所有仪器,等)执行。在分发和传播中的这种选择可能会增加运行过程中的工厂性能,因为不是所有的子对象都一次性更新。此外,改变和修改可以以优化的和受控的方式分阶段到过程工厂中。
在一个实施例中,对于具有至少一个子项目,并且还具有多个已有版本的父对象,改变分发或传播策略设置不会影响父对象的任何发布的、当前实例化的版本。然而,如果父项目或对象的内容随之发生改变,则内容改变被传播给所有子项目或对象以使得子对象使用产生的父对象的当前版本,并且之前的版本被删除或禁用。
在一个实施例中,参数值从父对象的传播或分发仅在该值在子对象中未被覆盖时才出现。
与父对象类似,对子对象(例如,一个实例对象或过程的元对象)作出的改变或修改也可以选择性地传播或分发给各自的父对象(例如,类对象或实例对象)。在一个实施例中,传播的定时和/或内容由用户选择。通过这种方式,在子对象处的改变可以传播给父对象,其又可以将该改变传播给其他子对象。
在一个实施例中,用户可以指示子对象定义的特定项目要对父对象隐藏(例如,禁用)。例如,如果特定参数值被添加到子对象,但一般不应用于父对象和父对象的其他子对象,则在传播到父对象期间,该特定参数值可被标记或以其他方式隐藏或禁用。
实例化:
在一个实施例中,版本可以被选择由用户实例化。在运行时选择的版本的实例化导致相应的过程元素根据选定的版本所定义的内部项目执行。例如,在控制对象的情况下,用户期望控制对象的特定的发布版本被下载到运行时系统中的对应设备。用户指示系统从选定的版本生成下载版本,并将下载版本发送给运行时系统中的过程元素。因此,在运行时期间,过程元素执行控制对象的执行版本,其中执行版本包括配置,该配置包含该版本中包括的修改。在另一个示例中,用户指示配置系统实例化发布的、在显示器视图上包括的图形显示元素对象。配置系统创建图形元素对象的执行版本。当相应的显示视图在运行时构建时,图形显示对象的执行版本运行,导致相应的图形元素被包含在显示视图中。当多个版本可用时,用户可以选择要实例化哪一个版本。
在上述实例化的示例中,实例化发生在用户指定或指示的时间,或在用户指定或指示的事件之后。在一些实施例中,用户可以指示对象的版本要在发布之后立即实例化。例如,用户可以指示与该版本相对应的子对象的第一集合的实例化要在发布后立即执行,与该版本相对应的子对象的第二集合的实例化要延迟指定的时间量,以及与该版本相对应的子对象的第三集合的实例化被延迟到用户明确请求实例化。因此,利用本文描述的灵活的配置系统技术和对象,用户能够控制在各个过程控制元件处修改何时被实例化以及哪些修改被实例化。
事实上,本文描述的技术和对象向用户提供更灵活地修改对象或项目的内容并且更灵活地管理过程工厂或过程控制系统内的修改的分发和定时的功能和能力。例如,用户能够创建对象的实例和用法、创建对象的副本、从对象创建派生类、修改内部项目(例如,用法和实例),能够添加附加的结构、修改对象中和用法和实例中包含的内部项目(例如,参数和性质值)、隐藏或禁用所选择的内部项目、链接和断开对象,和/或控制对项目或对象的改变的传播与分发。
示例性场景:
接下来,提供几个示例来说明过程工厂或过程控制系统中的灵活配置的特征、功能和操作。这些示例场景可以通过由u1-7的任一个所示出的技术的任何一个或多个部分或它们的组合来实现。这些示例场景不是限制性的,而是提供用来说明本文所述的技术、系统和方法的一些概念、优点和用法。此外,这些场景不是可能出现的场景的排他集合。此外,虽然这些示例性场景通常参考库项目或对象,但是这些场景可以很容易地应用到过程工厂或过程控制系统内的其他项目和对象,如系统配置对象、图形和显示对象、实例对象、过程元素对象、类对象,等。
在如图8所示的第一示例场景中,用户执行任务或执行一个或多个命令以创建、改变或修改库项目或对象1000。在一个实施例中,该命令在配置系统处例如经由工作站14或其他用户接口接收。当用户创建或编辑库项目或对象1000并保存时,项目的草案1002被存储。用户可以对草案1002进行附加的编辑。在某些时候,用户批准改变并发布项目(1005)。发布(1005)导致库项目1000的新的版本1008,因为在第一示例性场景中库项目1000没有子项目。新版本1008可获得以被实例化为过程工厂或过程控制环境的运行时环境。
在如图9所示的第二示例性场景中,库项目1010可以有子项目或对象1012,例如,库项目1010被链接到另一个库项目或链接到系统配置项目1012。在第二场景中,用户改变库项目1010并将其存储作为草案修改库项目1013。在某些时候,对草案1013的改变被批准,用户发布草案1013以产生库版本的当前版本1014,其包括该改变。用户希望控制对库项目1010的改变如何分发或传播到其子项目1012,例如,考虑到过程工厂的操作阶段、人员、程序问题和/或其他问题。用户管理的分发可以改进过程工厂(如炼油厂)中的操作,因为改变或修改能够在最佳的时间分发(例如,适当的支持团队到位以堵住阀,等)。
为了完成库项目1010的当前版本1014的受控传播或分发,用户设置策略设置来控制库项目1010的分发过程。在一个实施例中,该策略设置对应于库项目1010。或者,该策略设置可以对应于库项目1010的用法或子项目1012。在一个实施例中,该策略设置可以包括两个选项:自动1018和用户管理1015。当策略被设置为自动1018时,库项目1010的发布的当前版本1014(或发布的版本1014中包括的改变)被从库项目1010自动分发1018给子项目1012。当策略设置是用户管理1015时,用户可以创建当前版本1014的草案1022。草案1022又可以被发布为子项目1012的新的当前版本1025。
如图10所示,系统配置项目1012的新的当前版本1025可以被实例化。例如,如果系统配置项目1012对应于控制或功能块,则当前版本1025可以被转换成下载版本1028,其可被下载(例如,自动下载或由用户指示下载)到对应的运行时项目1030作为执行版本1032。在另一个示例中,如果系统配置项目1012对应于图形元素,则当包括图形项目显示视图被创建时,图形元素的当前版本在运行时被实例化。
另一方面,回到图9,当分发策略设置指示用户管理1018时,用户可以将对库项目1010作出的改变根据需要手动传播或分发到它的每一个子项目1012。本质上,库项目1010的当前版本1014是由用户命令1018(其可由用户显式地输入或包含在脚本中)从子项目1012的库中“拉出”的。在一个示例中,用户选择目标子项目(例如,系统配置项目1012),并要求1018库项目1010的当前版本1014(或其中的修改)被传播给目标子项目1012。在传播后,系统配置项目1012的草案1022被创建并存储。用户可能会或可能不会向草案系统配置项目1022作出附加的编辑。在某个期望的时间,用户发布草案系统配置项目1022,产生系统配置项目1012的可以被实例化的新版本1025。
前面的场景描述了库项目1000和1010的修改。然而,不仅是修改库项目1010。图11示出了一种场景,其中用户直接修改不是模板库的系统配置项目1040。用户将对配置项目1040的改变保存为草案1042,并且在草案1042被批准后,用户将草案1042发布到项目1040的当前版本1045中。在图11所示的示例中,用户请求产生下载版本1048(例如,可执行的),并随后请求将该项目1040的下载版本1048发送到运行时项目1050,以便执行版本1052被包含在对应的运行时项目1050中并由其运行。
本文描述的示出了灵活技术和对象的其他可能的场景包括:
1、用户复制具有多个版本的库项目。
在这种场景下,分发策略设置被设置为用户管理。库中存在具有多个版本的库项目。
用户复制库项目以产生具有不同名称的新的库项目。由此产生的库项目的副本将具有一个与原库项目的当前版本匹配的单独版本。然而,新的库项目只是一个副本,并不受对原库项目的后续改变的影响。
2、用户从一个库项目派生出另一个库项目。
项目(如显示或面板)存在于库中。该项目具有单个罐,例如显示一个发射器和两个阀。
用户选择一个命令来创建从第一库项目创建的新的库项目的草案。然后用户修改该草案以添加第二发射机,保存草案,并将草案发布为派生的库项目的第一版本。
用户随后修改原始库项目以添加第三阀、保存原始库项目的草案,并将草案发布为版本。然后用户分发修改后的原始库项目的版本。作为分发结果,派生库项目现在包含三个阀。
3、用户创建具有多个版本的库项目的实例。
分发设置被设置为用户管理,在这种场景下,在任何时间只有一个当前版本可用。用户创建库项目,并创建库项目的第一实例。然后用户修改原始库项目,将修改保存为草案,并发布修改后的原始库项目。发布导致原始库项目的新版本。
接下来,用户创建库项目的第二实例。第二实例是基于库项目的当前版本(例如,修改后的原始库项目)的,但第一实例不受影响。也就是说,第一实例仍然基于原始库项目而没有修改。
在一个实施例中,当新的实例或使用从库项目,有多个版本创建新的实例,或者使用指当前,库项目提供版本。
4、用户创建具有多个版本的库项目的用法。
这种场景与前一场景类似,但涉及库项目而不是实例的用法。在这种场景下,在一个时间只有一个当前版本可用。如果从具有多个版本的项目创建新的用法,则新的用法是基于库项目的当前可用版本。
5、用户修改具有用法的库项目。
在这种场景下,系统配置项目是基于库项目的。系统配置项目包括库项目的用法(如模块内的复合功能块用法)。改变的分发被设置为用户管理。
用户改变系统配置项目所基于的库项目,并且观察到该库项目现在具有可视指示符(如堆叠的图标)以显示存在库项目的多个版本。用户打开关于该库项目的参考视图,并且发现存在不在使用库项目的新的(现在是当前)版本的用法(模块内的复合功能块用法),例如,在系统配置项目中包括的用法。
6、用户修改具有另一库项目中的用法的库项目。
这种场景类似于前一场景,但用法被包含在另一库项目而不是系统配置项目中。在这种场景下,分发策略仅控制到系统配置项目的分发,并且保持设置为用户管理。对库项目的改变被自动分发到其他库项目内的用法,而不考虑策略设置。也就是说,到库项目的分发被缺省为“自动”,并且不能够被修改。如果受影响的库项目本身由其他库项目使用,则分发递归;为被对另一库项目的改变影响的所有库项目创建新版本。
在一些实施例中,可修改的策略设置可用于库项目,并且不同的可修改的策略设置可用于非库项目,如配置项目。
7、用户修改具有实例的库项目。
在这种场景下,库项目的实例(如模块实例)被存储为系统配置项目。分发被设置为用户管理。
用户改变库项目,并观察到库项目现在具有可视指示符(如堆叠的图标)以显示存在多个版本。用户打开库项目上的参考视图,并且发现存在不在使用库项目的新的(现在是当前)版本的系统配置实例。
8、用户修改具有派生的库项目的库项目。
在这种场景下,父库项目被派生的库项目使用,派生的库项目又由系统配置项目使用。到系统配置项目的分发被设置为用户管理,并且到库项目的分发是不可修改的,缺省为自动。
用户修改父库项目。由于库项目分发设置是自动,所以自动更新派生的库项目。然而,基于派生的库的系统配置项目未被更新,因为到配置项目的分发设置被设置为用户管理。因此,系统配置项目继续使用派生的库项目的以前的版本。用户可以通过打开父库项目上的参考视图来看到这个,而且观察到派生的库项目使用父库项目的当前版本,但是系统配置项目不是使用父库项目的当前版本。
9、用户在库项目的上下文中更新用法。
基于前一场景,用户看到与库项目相对应的堆叠的图标,指示不是所有的库项目的实例都已更新。到系统配置项目的分发被设置为用户管理。
用户打开关于库项目的参考视图,并且看到对应于两个显示的两个行,每个显示都使用该库项目。然后用户改变其中一个现实以使用库项目的当前更新版本。当用户打开显示时,用户可以看到库项目的当前更新版本,例如,该显示以及任何库项目用法两者都示出它们正在使用当前的经更新的版本。
之后,用户打开第二显示上的参考视图,并且改变用法以使用库项目的当前更新版本。用户保存第二显示,并且用法的外观指示正在使用库项目的当前更新版本。
由于用户改变,系统中不存在链接到库项目的第一版本的项目,因此第一版本由系统自动删除。在其它实施例中,第一版本可以被设置为禁用或不活跃的。
用户可以多选不是当前版本的用法并选择将它们更新到当前版本。库项目上的指示符可能在所有实例都在使用最新版本时消失。如果在多选操作期间用法或实例不能被更新,则该用法或实例被跳过并且更新前进到下一个项目。在更新结束时,用户将看到哪些项目没有成功更新。
10、用户在库项目的上下文中更新库项目用法。
在一个实施例中,库项目的改变被自动分发到其他库项目内的用法,而不管系统配置分发策略设置。在一些实施例中,不同的库分发策略设置可用并且可被具有权限的用户修改。
11、用户在库项目的上下文中更新实例。
这个场景扩展了传统的基于类的模块行为。存在库项目,并且库项目的实例被存储为系统配置项目。然而,该实例未使用库项目的当前版本。到系统配置对象的分发被设置为用户管理。
用户选择库项目,并打开参考视图。用户看到系统配置实例没有使用该库项目当前版本,所以用户选择该实例并执行“使当前”命令。这个命令产生使用库项目的当前版本的新的实例草案。然后用户可以采取步骤来编辑和/或发布系统配置实例的草案。
12、用户在库项目的上下文中更新派生项目。
允许用户创建基于其他库项目的库项目。例如,用户可以创建没有任何互锁的父库模块,然后可以通过添加互锁创建具有父库模块的所有功能的派生库模块。对父库模块的算法的改变可以留到派生库模块,所以用户通过在一个地方定义算法而获益。
13、用户在用法的上下文中更新用法。
在这种场景下,用户希望更新用法以使用当前版本。例如,控制模块对象被存储为系统配置对象,并且包括具有单个输入连接器的单个版本复合块的功能块用法。单个版本复合块是库项目,并且到系统配置对象的分发被设置为用户管理。用户修改库中的复合块以添加另一输入连接器,创建库复合块的新的当前版本。用户可以看到指示库复合块有多个版本的图形。
接下来,用户选择特定控制模块上的功能块使用,并选择“使当前”命令。特定控制模块的用法更新以使用当前版本,从而显示该附加的输入连接器。如果以前的库复合块版本没有在系统中使用,则图形改变以表明库复合块不再有多个版本。
14、用户在库项目用法的上下文中更新库项目用法。
与派生项目类似,库项目在其他库项目中的用法(例如,功能块)可能会缺省为自动更新,而不考虑对配置项目的分发策略设置。然而,在改变由于一些冲突而无法自动分发给另一库项目的情况下,用户可以手动校正库项目用法。
15、用户在实例的上下文中更新实例。
在这种场景下,库模块具有单个版本,并且库模块的实例存储为系统配置项目。到系统配置项目的分发被设置为用户管理。用户修改库模块并发布该改变。与库模块相关联的显示上的图形指示库复合块具有多个版本。
用户选择模块实例,并选择“使当前”命令。创建该实例的使用库模块的当前修改后的版本的草案。然后用户可以发布该草案来创建模块实例的新的当前版本。如果以前的库模块版本在该系统的任何地方都不再使用,则与库相关联的多个版本指示符从显示中移除。
16、用户更新设备项目中包含的所有实例。
这种场景类似于前一场景,除了更新是在设备项目的上下文中进行的,如区域、单位或单元。存在具有单个版本的库模块,并且在一个区域下的系统配置中存在该模块的两个实例。到系统配置的分发被设置为用户管理。用户修改库模块,并且提供指示库复合块具有多个版本的图形。
在与上下文(例如,区域)相对应的显示上,该区域也被标记为具有不是当前实例。在扩大区域视图之后,两个模块实例被标记为不是当前。用户选择该区域,并选择“使当前”命令。创建使用库模块的当前版本的实例的草案。用户可以发布该草案以创建模块实例的新的当前版本,从而导致“不当前”的标志从显示中消失。如果以前的库模块版本在该系统的任何地方都不再使用,则与库模块相对应的多版本指示符也可以从显示中消失。
17、用户在派生项目的上下文中更新派生项目。
库存储两个项目,库显示DISP1和从DISP1派生的库显示DISP2。用户改变DISP1以添加文本域,发布DISP1并分发DISP1。因此,DISP2被自动更新为具有该文本域。
类似的,库存储库设备类型VALVE,其可能具有与它相关联的面板。库还存储库设备类型DVC,其是从VALVE派生的,并且包括对VALVE使用的面板来说附加的信息。此外,库存储应用特定的库设备类型MfctrDVC,其又向DVC的面板增添了更多的信息。当用户改变VALVE的参数值时,该参数值在DVC和MfctrDVC中都自动更新,当DVC和MfctrDVC不覆盖参数值时。
接着,用户通过从MfctrDVC设备类型派生出应用特定的设备类型MfctrDVC-CriticalService来创建这种设备类型。这样,用户覆盖其中一个参数。在这个后续的场景中,当用户改变VALVE中的相同参数的值时,在DVC和MfctrDVC中参数值自动更新,因为DVC和MfctrDVC不覆盖该参数值。然而,在MfctrDVC-CriticalService中参数值不改变,因为用户已经覆盖了该参数值。
因此,在一个实施例中,从其他项目派生的库项目总是在父库项目改变时更新,而不考虑系统配置项目的分发策略设置。然而,由于冲突,父库项目的当前版本不会自动传播到具有结构改变的派生库项目。在用户校正了这一问题之后,用户可以手动更新派生库项目。
18、用户更新导致违反规则的用法。
在这种场景下,到系统配置对象的分发被设置为自动。然而,如果违反规则(例如,数据库规则),则分发对库项目作出的改变可能无法更新一些或所有的子系统配置实例。当分发关联与发布的下一步时,这种偏差在用户保存库项目时可能并不明显。事实上,新版本可能已经在观察到偏差之前被其他链接的项目使用。在这种场景下,用户可以编辑库项目以校正偏差,从而产生库项目的新的当前版本,该新的当前版本可用于所有实例而不违反规则。
为了说明,利用新的用法来更新新版本与被添加到实例的名称冲突。例如,库存储具有命名为USAGE1的用法的库模块LM。库模块LM的系统配置实例MA和MB存在于区域AreaA中。然后用户向实例MA添加用法USAGE2。
用户向库模块LM增加了用法USAGE2,发布库模块LM,并且分发。由于实例MA已经使用了USAGE2,因此实例MA留下是不当前,并且“不当前”指示符对应于实例MA。然而,实例MB没有这样的用法,被成功更新。
19、用户在从用户管理切换到自动系统配置分发之后保存库项目。
在这种场景下,库项目由多个显示使用。一个显示使用当前版本,而其他显示使用前一版本。用户从用户管理切换到自动分发。分发从用户管理的自动分发的改变不影响显示。
当系统配置分发设置被设置为自动时,用户修改库项目。因此,库项目的所有实例都被更新以使用当前修改版本。由于所有的系统配置实例都被更新,所以库项目的老版本不再被参考,并且可以被自动删除。库项目的图标改变为指示仅存在一个版本。
20、用户下载未在使用库项目的当前版本的实例。
用户可以将未在使用库项目的当前版本的系统配置实例下载到过程元素。下载请求可能会导致显示下载警告。
21、用户下载具有未在使用库项目的当前版本的用法的对象。
用户可以将未包括库项目的用法的当前版本的系统配置实例下载到过程元素。下载请求可能会导致显示下载警告。
22、用户导入包含库项目的文件。
在这种场景下,用户导入文件,并且文件中的项目的列表被提供给用户。用户可以为每个项目选择导入行为(如跳过、覆盖,等)。
如上述示例性场景说明,用户可以使用本文所述的灵活配置技术、系统和方法来执行至少以下动作或命令:
编辑–打开并可能修改项目或对象。用户可以打开草案或版本。
保存为草案–保存打开(并可能修改过的)项目作为草案。
测试–运行草案对象而不下载或实例化该草案对象。
批准–批准草案发布。
发布–获取草案并把它变成当前版本。通常,在批准草案后执行发布。
产生–从发布的或当前版本生成下载的或运行时版本。
发送–发送版本给运行时。
下载–向运行时发送下载的版本的发送命令的实施例。通常,下载是在系统配置项目的上下文中进行的。
分发/传播/更新–利用对特定的对象编辑作出的修改来更新另一个链接的对象。更新、分发或传播对特定对象的修改可能会导致更新多个其他链接的对象,例如子对象和/或父对象。
从库中更新–将对库对象版本的修改更新(例如,分发或传播)给从该库对象派生的子对象。库对象的更新或传播可能会导致更新多个级别的链接的子对象。这样,例如,用户可以从库项目的当前版本生成实例或派生项目使用。
删除–从存储设备中删除对象或项目。
验证–检查项目或对象以寻找错误。草案和版本都可以被验证。
差异–确定对象或项目的各个版本之间的差异。
参考–确定与项目或对象相关联的参考。
在一些实施例中,上述动作或命令的一个或多个可以隐藏或终端用户不可用。例如,生成和发送命令可以组合成下载命令,或者用户可能不被允许删除项目,除非用户具有正确的权限。
在一个实施例中,用户能够请求灵活配置系统显示项目或对象的草案、当前发布版本和下载版本之间的任何差异。例如,用户可以请求查看草案和当前版本之间的差异、草案和版本控制中的任何版本之间的差异、草案和下载版本之间的差异、两个不同的草案之间的差异、两个不同的当前版本之间的差异、当前版本和下载版本之间的差异和其他的组合。
在一个实施例中,用户能够请求配置系统显示特定对象的所有直接链接的子对象,不论直接链接的子对象是否使用该特定对象的当前版本。相反,在一个实施例中,用户能够请求视图来确定子对象是否正在使用它的父对象的当前版本。
包:
在一些实施例中,上述草案、发布和实例化技术可应用于一组对象。一组或多个对象在本文中通常被称为“包”。在一个实施例中,包的成员由用户选择。在某些场景下,包的至少一些成员由制造商或供应商提供为开箱即用(out-of-the-box,OOB)。
例如,OOB包可以包括一组“启动器(Starter)”库项目(例如,模块,复合材料,显示器,设备,等)。用户可以从项目的启动器集合中选择不同的项目来创建过程解决方案,如控制回路或过程模型。如果用户向OOB包添加定制的对象,则用户可以指定增强OOB包作为与启动器包不同的包。
另一个示例性包可以包括配置实现,其被定制为解决特定的过程问题,例如,锅炉包或反应器包。这些包通常用作过程控制问题的完整解决方案,因此,称之为“解决方案包”。在一个实施例中,解决方案包包括可选的实例化规则,当用户产生包的实例时应用该实例化规则。例如,当锅炉包被实例化时,规则可以说明包中的所有项目都将根据命名约定使用字符串替换来命名。
类似于项目或对象,可以为当前包创建或编辑一个或多个草案。草案包可以发布为版本,并且版本可以被选择以进行实例化。在一个实施例中,当用户想要保存包的新版本时,新版本可以取代前一版本,或者新版本可以与前一版本同时存储。
这些包草案、包发布和包实例化技术还向用户提供了另一级别的灵活性。在一个示例性(但是非限制性)的场景下,创建库包并将其存储为包的第一草案。例如,库包对应于锅炉或反应器的模板配置。包的第一草案被发布并存储为第一版本,并被实例化到过程工厂或系统中。第一版本随后被修改(例如,以校正问题和/或向锅炉或反应器添加功能),并随后发布为包的第二版本。在接收到用户指示以实例化包的第二版本时,只有包的第二版本中包括的、从包的第一版本更新的项目被实例化。此外,用户可以根据逻辑、性能、带宽和/或其他限制的要求,指示各个更新项目的实例化的定时。如果第二版本的用法需要出于任何理由被终止,第一版本可以被重新实例化到过程工厂或系统中。
图形或显示项目或对象:
现在转到灵活的图形或显示项目或对象的讨论,“显示”一般所指是图形实体(例如,大多数颗粒状实体),其可以被操作者在运行时单独打开和查看。通常,灵活的图形或显示项目或对象是从其他图形对象配置的,并且可以存储在对象库或系统配置数据存储实体中。显示可以通过下载发布版本以在过程元素的运行时执行而实例化,或者可以被实时地实例化,如当操作者请求构建特定的显示视图时。可以通过灵活的图形项目或者对象定义的显示的类型包括,例如:
1)操作显示:操作显示通常提供在过程工厂中执行过程时,过程中的窗口或者过程的表示。通常,显示视图是根据GEM和其他库和/或系统配置对象配置的,并且可以被实例化在本地或者远程用户界面处。
2)仪表盘显示:仪表盘显示向操作者和工厂人员提供了关键度量。仪表盘显示可以根据库和/或系统配置对象来配置并且被实例化在本地或者远程用户界面处。在一些实施例中,仪表板显示上包括的有限能力、特征或者图形可以由操作者在运行时配置和实例化。仪表盘上包括的功能、特征和图形元素和形状通常被称为“小配件(Gadgets)”。一般来说,小配件是已被标记为可在运行时使用并且可以放置在仪表板显示上的GEM。因此,本文所使用的术语“GEM”一般是指作为小配件的GEM和不作为小配件的GEM。仪表盘和小配件的示例在2012年10月8日提交的、名称为“Configurable User Displays in a ProcessControl System”的共同待决的美国临时申请No.61/711,105中提供,其全部内容在此被引用以作为参考。
3)布局显示:布局显示提供用户接口上的区或者区域以允许用户能够组织其上的其他显示。利用布局显示,用户能够创建各显示在单个监视器屏幕上或者跨多个监视器屏幕的布置。
4)形式显示:形式显示提供用户接口供配置或者运行时期间的数据输入。用户可以利用形式显示来创建或者修改对象,输入配置或者运行时数据,输入值,以及一般性地操作显示项目和对象。
显示通常包含一个或多个视图,每个视图是显示的不同可视表示。显示的每个视图可以包含形状(例如,矩形,椭圆形和其他形状)和/或控制(例如,标签或文本框),并且可以具有存储在对象库中或作为系统配置数据存储实体中的相应的对象。一些形状,如矩形,文本框或堆叠面板,可内置并存储在配置系统中(例如,例如被编译并向系统注册)。其他形状可以由用户创建,并且对应的形状对象可以存储在对象库或作为系统配置GEM或小配件。
如前面所讨论的,GEM或小配件是将一个或多个形状和行为进行组合的可重用的形状。GEM和小配件可以由用户创建,发布为版本,并且存储在配置系统中作为对象,如在库中或在系统配置中。GEM可以链接到其他对象,并且对GEM对象的后续改变可能会传播到其他GEM和显示中的GEM的所有使用,例如以如前所述的方式。在一个实施例中,开箱即用(OOB)形状、GEM、小配件和显示(在某些情况下,对应于客户的特定行业)在配置系统的库中提供,例如作为一组原语对象或对象的“启动器集合”。
与显示类似,GEM可以包含一个或多个可视表示或视图。每个GEM视图包括一个或多个内置和/或创建的形状。图12示出了示例性阀GEM的三个可能的不同视图,即垂直视图1060a、水平视图1060b和另一水平视图1060c。GEM的视图可以用来呈现不同的细节级别、形状排列或呈现有关GEM的信息的不同焦点。
除了相对静态的形状和视图,显示、GEM或小配件还可以包含动态行为以允许操作者看到过程数据,通过过程数据导航,或改变过程数据。动态行为例如可以包括动画和事件处理,在下面讨论。
动画将来自过程工厂内的信息源的过程数据映射到显示上的各种形状以通过文本或图形方式显示数据。动画效果可以应用于形状域(例如,应用于文本域或可见性域),以使得当信息源的域值改变时,动画也改变。因此,动画允许利用函数操纵过程数据(例如,数学函数)以将原过程数据转换成有意义的可视表示。例如,动画可以应用到矩形形状以显示针对罐液位的矩形填充百分比,或者动画可以应用到文本形状以文本地显示填充百分比值。
事件句柄被配置为执行对事件(如单击鼠标、键盘操作和快捷键移动)的定义的响应。定义的响应例如可能是导航到另一个显示,确认警报,改变过程设置点,输入数据,和其它动作。
由于GEM可以被包含在多个可视表示或视图中,所以与GEM相关联的动画和事件句柄可以被创建一次并且重用于各种视图中以提供数据的不同取向或呈现。因此,收集GEM和针对其各个视图修改GEM用法所需的自定义代码的量可以减少。
为了使GEM可在许多对象和信息来源之间可重用,在一个实施例中,利用占位符对动画和事件句柄路径进行部分或完全符号化。占位符值的值可以在配置GEM的特定用法时提供,或者占位符值可以在运行时被编程设置。动画和事件句柄可以参考占位符,以使得占位符的值在运行时在参考中被取代以解析到特定对象的路径。此外,类似于GEM,显示也可以支持占位符,以使得显示可重用。通过提供各个占位符的值,显示实例可以被创建作为配置的一部分或在运行时被动态创建。
在一些实施例中,信息的重用和共享通过使用全局集合来影响。全局集合允许配置设计师配置在许多不相关的显示和GEM之间共享的状态和行为,例如在客户端人机界面(HMI)会话的生命期期间。全局集合中的项目可被任何显示或GEM参考和使用,从而允许在许多项目之间进行重用和共享。在一个实施例中,全局集合中的每个项目被存储在一个对象中,该对象被链接到与该全局集合相对应的对象。
在一些实施例中,信息的重用和共享通过利用样式和/或样式集而受影响。样式是域名和值对的集合,而样式集是样式的集合。在一个实施例中,所有形状都支持样式。当形状被用户添加到显示或GEM的视图时,样式域可以被设置为样式集的期望样式。因此,添加的形状使用样式中为每个域定义的值。样式和样式集可以在配置系统中由相应的对象表示。
在一些实施例中,命名常数允许用户在创建名称-值对时的灵活性。例如,图形元素对象内的域被分配一个命名常数作为值,如TitleFont或TankBodyColor。名称常数允许创建工程标准并且将其分配给域值。如果工程标准发生了改变,则命名常数值可以在一个中央位置更新。命名常数例如可以包含名称、标题、描述和数据类型。任何域值可以被设置为值或命名常数,如关于形状用法、动画、转换器、表格、全局集和样式的域。
模式:
显示对象可以通过一个或多个模式彼此和与其他对象相关,如用法模式或派生模式。此外或替换地,配置对象可以通过一个或多个模式彼此和与其他对象相关。不同类型的模式的使用不一定相互排斥。例如,几种模式的不同方面可以组合。
用法模式通常是基于定义的对象的容器或组。图13示出了定义用法设计模式的示例的示图。利用用法模式,图形对象1062a的定义包括一个或多个其他图形项目1062c的一个或多个用法1062b。当实例化时,这些用法1062b代表由图形对象1062a定义的图形形状,其在显示的视图上呈现。每个用法1062b可以具有定义,该定义包括内部项目(如域、事件和行为)的缺省值。在一个实施例中,这种内部项目可以被配置。
根据需要,定义用法模式可以嵌套多个级别。图14示出了示例性嵌套定义用法设计模式的类图。例如,显示可以包含GEM,它可以包含另一个GEM或形状。
图15示出了抽象的嵌套定义用法的示例。在图15中,用法C1(参考标号1065a)基于用法B1(参考标号1065b)的定义。用户可以修改(例如,覆盖或调整)来自另一个用法的一个或多个内部项目。例如,在图15中,对用法C1(参考标号1065c)的改变是一个调整。
另一种可以关联对象的模式是派生模式。图16中示出了示例性派生模式的图。派生模式允许在不使用聚合(如上述定义用法模式的情况下)的情况下扩展定义。特别是,派生模式允许创建新的定义1068a而不创建层次结构中的另一级别。例如,“基于”定义1068a中的所有内部项目都包括在派生定义1068b中。
派生模式可以嵌套多个级别,例如,派生定义可以基于另一派生定义,其最终可以基于非派生定义。嵌套级别的任意期望数量都是可能的。图17示出了嵌套派生模式的示例,其中从第一派生定义1070b创建新的定义1070a,第一派生定义1070b是从第二派生定义1070c创建的,第二派生定义1070c是从非派生定义(未显示)创建的。
灵活项目和对象:
如前面所讨论的,在配置系统中可以灵活地定义并且使用对象。在一个实施例中,灵活的对象可以包括一个或多个内部项目,其又可能由另一对象定义。以下是可以包括在系统配置中的灵活项目、对象和内部项目的描述。虽然这些描述是在图形或显示对象的上下文中呈现的,但是本文所讨论的概念和性质也适用于配置对象。
域是表示给定对象的状态或性质的内部项目。例如,矩形大小存储在宽度域和高度域中。每个域可以具有名称和值。在一个实施例中,与域相关联的附加的元数据指示域的其他性质,如域是否可动画化,域是否只读,以及域的数据类型。例如,元数据可以用来配置给定的对象。域的值可以是简单数据类型,如字符串,或可以是对另一个对象(如库对象、形状对象或过程元素对象)的参考。在一个实施例中,域的值可以由用户修改或覆盖。
占位符是允许定义的项目跨多个其他对象使用的广义的内部项目。例如,对于显示对象,占位符可以是图形项目,其允许概括动画和事件句柄并且跨各种图形或显示对象以及信息源路径重用。因此,占位符提供一定程度的间接性,并且在运行时用值来解析。在一些实施例中,占位符可以嵌套。
参数是代表域的状态或性质的内部项目。例如,对于显示和图形对象,参数可以是具有值和状态的图形元素。参数可以被添加到图形项目(如GEM、小配件、显示和仪表板、布局和形式、全局集等)。参数在运行时通常是不可见的。然而,通过创建参考该值的表达式,参数可以在运行时期间影响对象的可见方面(如动画)。用户可以向对象添加参数,但在一些实施例中,用户可能被不允许向特定库项目或原语对象添加参数。
功能是提供针对特定对象的行为内部项目。例如,利用显示和图形对象,功能可以是从一个组或一个全局集提供的图形项目或一般行为。例如,一组可视项目可以提供AddShape()函数,或全局集可以提供OpenDisplay()函数。某些功能可以内置并且因此不能被用户改变。其他的功能可以由用户创建。在一个实施例中,函数可以在运行时期间经由编程API或脚本执行。此外,功能可以取一个或多个参数,例如常数、域的值、对另一对象的参考或对参数的参考。在一些情况下,函数可以返回一个值,例如,常数、域的值、对另一对象的参考或对对象的参考。
动画是将数据从信息源或对象映射到内部项目的域的内部项目。例如,对于显示或图形对象,动画可以将数据映射到矩形的FillPercent域或标签的文本性质。动画包括在表达式的参考值改变时被重新评估和/或重新计算的表达式。此外,动画与目标域(例如要利用重新计算的表达式的结果更新的父对象上的域)相关联。因此,在运行时,当动画的计算值改变时,目标域被利用重新计算的值更新,从而使屏幕渲染改变。在一个实施例中,动画包括更新频率,并且可以包括用于变换表达式结果的转换器。
转换器是将动画的表达式结果变换为最终的动画结果的内部项目。例如,这个变换可以改变表达式的重新计算的值(结果)、结果的数据类型或格式、结果和数据类型两者,或者该变换可以执行对该表达式的结果的一些其他类型的转换。每个转换器类型可以包括可由用户配置的特定域。
事件是定义了动作和反应的对象的内部项目。事件的定义通常包括事件触发器,如用户点击,鼠标移动,鼠标悬停,或数据改变。可选地,事件还定义有事件句柄,事件句柄在触发器触发时执行一个或多个响应功能或行为。事件句柄可以由用户进行配置,可以被提供为预先配置的定义上的OOB行为,或者可以被提供作为特定形状的内置行为。添加定事件的事件句柄允许顾客创建基于特定触发器的行为。
每个事件触发器可以支持一个或多个特定参数。一般来说,事件触发器包括指示触发事件触发器的对象的发送方参数。此外,事件触发器可以包括适合于事件类型的可选参数,如要在触发时发送的信息。例如,鼠标点击触发器可以只有发送方参数,而鼠标移动触发器可以具有当鼠标移动被触发时被要发送的发送方参数和鼠标位置坐标(例如X,Y)。在某些情况下,事件不会基于用户动作而触发,而是当对象的域值或系统状态改变(例如从初始化到稳态)时触发。
在一些实施例中,事件句柄被配置用于事件触发器。在这些实施例中,当事件触发器触发时调用事件句柄,并且响应于触发器触发而执行一个或多个功能。在一个实施例中,用户定义要包括要与可用函数(例如,显示、窗口或全局集可用的函数)一起执行的定制行为或逻辑的事件句柄。
表格是包括具有输入值和输出结果的一个或多个数据结构的内部项目。在一个实施例中,表格可以与表格转换器一起使用,以将输入值从一种数据类型转换到另一种。例如,对于图形对象,表格用法可以包括将过程值转换为颜色,或将过程值转化为字符串。这样,表格提供了非编程方式来配置输入值的范围的结果。表格可以对输入值的精确匹配或输入值的范围进行操作。
形状对象基本上是广义的可视构建块,其可以结合在一起以创建复杂和专门的可视项目的可视表示,如GEM和显示。一些形状对象可以是内置的(例如,具有通过配置系统安装的可执行OOB),并且称之为原语形状。原语形状可以属于几种类型中的一种,如几何形状(例如矩形,椭圆,直线)、可以排列其他形状的容器(例如,组、板、网格)、或控件(例如,文本框、下拉组合框或批处理列表控件、趋势)。
每个形状(无论是否是原语的)具有定义。定义可以包括例如一个或多个域、动画、具有事件触发器的事件、句柄和/或连接点。在一个实施例中,形状可以支持样式域。通常,大多数形状是可配置的并且可修改的。例如,矩形被提供为配置系统的内置,并且用户可以通过设置域值和向矩形用法添加事件或动画来修改矩形对象。然后用户可以保存修改后的矩形形状作为新的对象,并且可以在批准后发布。
图18示出了基于矩形的定义1078创建的形状用法Rect 1(参考标号1075)。用户已经从矩形定义的缺省值修改了宽度1080a和高度1080b域的值。此外,用户已添加了目标是宽度域的动画1082a,并且添加了范围转换器1082b以适当缩放该值。用户还增加了针对点击事件1085b的用法1075上的事件句柄1085a,并且该事件句柄已经被配置来调用OpenDisplay()函数。在一个实施例中,只有被特别覆盖的域(例如,1080a,1080b)是持久的。也就是说,形状用法1075链接回定义1078,并且其值未被覆盖的任何域来自定义1078(或者在某些情况下来自样式)。例如,如果矩形定义1078的前景刷从蓝色变为灰色,则未覆盖该前景刷的任何用法(例如,用法Rect1 1075)将在该改变从矩形定义1078版本传播过来之后具有蓝色的前景刷。
关于几何形状定义,一组形状允许几个形状被看作针对动作(如可视性、改变大小、布置/取向和事件)的一个形状。例如,组形状是相对保持各自的(X,Y)坐标方向的多个形状的副本。域的行为和组的事件以及它们如何影响域和该组内包含的形状的事件都是可配置的。例如,动态模型是一种类型的组形状。
面板形状可以类似于一个组形状,但可以允许更具体地控制包含的形状的渲染(例如,在大小、位置、排列等方面)。面板内的项目一般都是按序或停靠到面板的特定区域,并且与组不同,没有相对的坐标设置。面板给予用户在不知道项目的确切数目时控制项目的能力,以及在面板或包含的窗口改变大小时可视地安排项目而不需要单独地移动每个项目的能力。面板还提供当项目被添加、移除或隐藏在面板内时通过调整其他项目的位置以移除空白空间并且避免重叠的行为。
连接器用法表示过程工厂中的物理链接元素,如电线、管道、风道或输送带。在配置过程中,连接点表示连接用法到形状用法的连接的指示。当形状用法在配置期间移动时,连接器用法允许连接器跟踪和重新路由以及改变大小。特别是,连接器根据其定义的算法和设置来遵从和路由。因此,连接器是链接到显示上的其他显示对象的形状,并且由各自的性质和行为定义。当放置在显示上并且连接时,连接器能够在不同形状用法之间路由。配置用户可以修改连接器的放置或路由、定义缺省的可视效果和/或修改连接器用法的连接点。
层是另一种类型的显示对象,其可在配置时间使用以通过隐藏和锁定可能会干扰当前任务或可能防止形状用法被无意修改的形状以组织和提高用户的编辑经验。层提供一种组织形状用法的方式以有助于显示定义和/或GEM视图定义的配置。层还可以用于组织形状以提供运行时特征,如显示和隐藏细节(如帮助、维护或诊断层)。
特别是,视图可以具有一个或多个层。视图内的形状可以与特定层相关联(例如,形状对象和层对象可以链接)。特定层可以被指定为仅用于配置,或用于配置和运行时二者。层可以是可视的或隐藏的。层可以被锁定和解锁以防止被无意选择或修改。当层的可视性改变时,值可以递归地传播给通过包含的GEM用法上的名称来匹配的所有层。例如,“帮助”层上的可视性应用于与帮助层相关联的任何GEM用法。
用户创建的项目和对象:
上述灵活对象中的至少部分可以由用户创建,如:
显示器-例如可以在运行时由用户打开的可视项目。显示通常表示操作过程的视图或提供有关过程的特定区域的细节。
GEM和小配件-例如,表示过程中的过程元素或其他实体并且可以包括(例如,放置)在显示或其他GEM上的配置的形状。例如,设备、控制模块、动态模型、显示视图或其他过程元素可以通过GEM表示。GEM可被配置为可重用以表示工厂或过程内的过程的相同类型的设备或零件的不同实例。因此,GEM可以被配置并且测试一次,但可以在其他GEM和显示中使用多次。通常,GEM包括名称、标题、描述、选定的视图和其他域(如表格、事件、参数和功能)。GEM例如可以嵌套在其他GEM中或在显示内。通常,GEM具有一个或多个视图定义,该视图定义提供GEM的一个或多个对应的可视表示。可以向GEM提供缺省视图,并且在一些实施例中,用户能够改变缺省视图。事实上,用户可以改变GEM定义的任何域。
在一个实施例中,小配件是可以在运行时可用并且能够放在仪表板显示上的GEM。操作者例如可能能够在运行时期间创建和修改小配件。
GEM定义可以是从另一GEM定义派生的。当GEM从另一GEM派生时,派生的GEM包括来自其所基于的GEM的所有视图。用户可以修改这些视图或向派生的GEM添加附加视图。附加视图可以是独立的,可以从当前GEM定义中定义的已有视图派生,也可以从其所基于的GEM定义创建。
在一个实施例中,当GEM放在显示视图或另一GEM视图中时,放置的GEM成为形状用法(类似于添加内置的形状用法,如矩形或组)。然而,放置的GEM仍然链接到它们各自的定义,并且对用法的改变基于传播设置与策略而传播。
在一个实施例中,修改GEM用法(例如,调整大小)类似于修改组用法。此外,GEM或小配件可以通过使用提供给配置设计师的标准化或部分标准化的形式来配置。
视图-例如,显示或GEM内的可视表示。每个显示或GEM可以具有一个或多个定义的视图。可视或图形项目(例如,形状和其他GEM)可以被添加到视图定义。视图可以是独立的,或者可以从同一父定义或基础定义内的另一视图派生出。
独立视图定义通常会定义它们的整个内容和信息,如形状、静态配置的域值、动画和事件句柄。因此,独立的视图定义是不基于包容性显示或GEM定义内的任何其他视图定义的。但是,显示或GEM定义可以具有独立的并且不是从公共视图派生的多个视图。
另一方面,派生视图定义通常基于同一个容器定义内的另一个视图定义。当容器定义是派生的,则视图定义可以从容器定义所基于的定义的视图派生。例如,如果显示A定义了视图A和视图B。如果显示B是从显示A派生的,那么显示B将缺省地具有视图A和视图B,但是还可以定义从视图B派生的视图C。
视图定义可以包括用户可以配置或用户可以向其添加针对这些域的动画的已知域的集合。视图定义也可以包括具有已知触发事件的一个或多个事件,用户可以向其添加事件句柄。此外,特定视图定义包括形状用法,例如,来自其所基于的视图的所有用法,以及添加到这个特定视图定义的任何形状用法。视图可以提供命名空间,以使得视图定义中的项目是唯一命名的。
全局集合-例如,保持状态(例如,值)和行为(例如功能)的配置的项目,其可以从不相关的显示、小配件和GEM参考。一般来说,全局集合没有任何运行时的可视表示,但在运行时是可用的。全局集合可以被标记为单元素的,或者全局集合可以对应于实例或一组对象。因此,全局集合提供了一种方法来在许多对象之间共享和重用信息。
样式和样式集合-例如,可能在一个地方发生了改变并且应用在形状用法或其他可视项目的集合以保持一致性的域名和值的集合(例如,域/值对)。样式集合是样式的集合,通常包括名称、标题、描述和其他可能的域。在一个实施例中,当形状具有样式集合时,如果域没有被覆盖并且不是动画,则该样式中的域的值应用于该形状。样式集合可以是可编辑的并且可版本控制的。
因此,如上所述,配置系统支持可视或图形项目的健壮集合,每个可视或图形项目由各自的对象定义。可视或图形项目的集合可以包括例如一个或多个显示定义、仪表板、布局、GEM定义、小配件定义、全局集合、内置的形状定义、组定义、视图定义、形状用法、组用法、动态模型、GEM用法、小配件用法、浏览器(chrome)用法、区域用法、面板用法、连接点、连接器、动画、转换器、事件触发器、事件句柄、占位符、参数、功能、表格、名称集合、样式和/或样式集合。可视或图形项目的集合的至少一部分可以由用户创建或修改。
此外,定义每个可视或图形项目的对象可以包括例如一个或多个内部项目,如域、事件触发器、功能、视图定义、事件句柄、动画、占位符、参数、表格、名称集合、转换器、内置形状的用法、GEM用法、小配件的用法、Chrome用法、区域用法、组用法、动态模型、面板用法、连接点、连接器、全局集合、样式集合和/或样式。可视或图形项目的对象中定义的每个内部项目可以是内置于配置系统的、由用户添加的、通过定义配置的或参考另一项目的。
改变、修改和调整:
如前面所讨论的,用户可以改变、修改或调整对象定义的内容。也就是说,用户可以改变对象的一个或多个内部项目同时保持到各自所基于的定义的链接。这些改变、修改或调整可以包括例如添加、删除、和/或修改对象的内容(例如,域或其他内部项目)。此外,这些改变在发布为版本时,通常优先于其所基于的对象的定义,并且在新版本被传播时可以允许应用来自修改的定义的未来改变。例如,如果定义中包含的项目(例如GEM)在用法或派生的视图中被修改和调整,则调整优先。然而,如果该项目被删除出其所基于的定义,则对用法或派生的定义的调整丢失。例如,在其所基于的定义中包含的项目(如GEM)被删除,但之前在用法或派生的定义中被调整。在这个示例中,调整丢失。此外,如果其所基于的定义中包含的项目(如GEM)被修改,但是在用法或派生的定义中已被删除,则对其所基于的定义的改变不传播给该用法或派生的定义。
在一个实施例中,特定子对象或用法上的调整可以被推回到其所基于的定义。在一个示例中,其所基于的定义被更新到包括对子对象的调整的新版本,并且该调整从子对象移除。
图19-21示出了可以对各个可视项目和对象作出的修改或调整的示例。特别是,图19示出了应用于用法模式的域值覆盖调整的示例。在图19中,宽度域值1090a和高度域值1090b被覆盖。
图20示出了应用于派生模式的域值覆盖调整的示例。在图20中,宽度域值1092a和高度域值1092b被覆盖。
图21示出了在多个级别上对对象的多个修改或调整的示例。特别是,图21示出了应用于较低定义的调整如何成为下一级的缺省值(例如,参考标号1095a-1095c),如何在多个级别覆盖值(例如,参考标号1098a、1098b),以及对最外层定义的覆盖如何占优(例如,参考标号1100)。
如图19-21中所示,在一个实施例中,调整可以在用法模式和派生模式上执行。此外,可以对配置项目或对象和/或可视或图形项目或对象进行调整或修改。例如,可以调整的可视或图形项目的集合可以包括例如一个或多个显示定义、仪表板、布局、GEM定义、小配件定义、全局集合、内置的形状定义、组定义、视图定义、形状用法、组用法、动态模型、GEM用法、小配件用法、chrome用法、区域用法、面板用法、连接点、连接器、动画、转换器、事件触发器、事件句柄、占位符、参数、功能、表格、名称集合、样式和/或样式集合。此外,调整可以在其他对象定义中包含的一个或多个对象上执行,如域、事件触发器、功能、视图定义、事件句柄、动画、占位符、参数、表格、名称集合、转换器、内置形状的用法、GEM的用法、小配件的用法、Chrome用法、区域用法、组用法、动态模型、面板用法、连接点、连接器、全局集合、样式集合和/或样式。
当实现时,可以通过执行存储在一个或多个非暂时性有形计算机可读存储介质或存储器(诸如磁盘、激光盘、光盘、半导体存储器、其它存储设备或在计算机或处理器的RAM或ROM中的其它存储介质等等)中的软件来执行本文描述的任何方法和技术或它们的部分。
虽然上述文字阐述了许多不同的实施例的详细描述,但是应该认识到,专利的范围是由本专利前面提供的权利要求的语言及其等价物定义的。详细的描述被视为仅仅是示例性的,而不是描述每一个可能的实施例,因为描述每一个可能的实施例是不切实际的,甚至是不可能的。众多可选的实施例可以使用当前技术或本专利申请日之后开发的技术来实现,这将仍然落入权利要求及其所有等价物的范围内。通过举例而不是限制的方式,本文的公开内容涉及至少有以下几个方面:
1、一种在配置显示视图上呈现的配置元素,所述配置元素用于配置要在过程控制显示视图上实例化的、与过程工厂中包括的过程实体相对应的图形元素对象,所述配置元素包括:在所述过程工厂的配置环境中与针对所述图形元素对象的属性的性质集合相对应的配置元素对象的实例化的执行,所述配置元素对象是能够配置的,所述配置元素对象包括到配置显示对象的链接,所述配置显示视图根据所述配置显示对象来实例化,并且所述配置元素对象的实例化的执行包括:所述图形元素对象的所述性质的所述性质集合的可视表示;以及到所述图形元素对象的链接,以发送来自所述性质集合的与以所述配置元素中配置的性质相对应的数据,经配置的性质对应于所述图形元素的至少一个经配置的性质。
2、根据方面1所述的配置元素,其中,所述配置元素对象能够在所述过程工厂的所述配置环境中配置。
3、根据前述方面中的任一方面的配置元素,其中,所述配置显示对象对应于所述图形元素对象的所述性质的多个性质,所述性质集合是从所述多个性质中选择以对应于所述配置元素对象的。
4、根据前述方面中任一方面的配置元素,其中,所述多个性质包括一个或多个性质集合,所述性质集合是从所述一个或多个性质集合中选择以对应于所述配置元素对象的。
5、根据前述方面中任一方面所述的配置元素,其中,所述一个或多个性质集合能够在所述过程工厂的所述配置环境中配置。
6、根据前述方面中任一方面所述的配置元素,其中,所述一个或多个性质集合能够配置为添加来自所述多个性质的性质和/或从性质集合中删除性质。
7、根据前述方面中任一方面所述的配置元素,其中,所述一个或多个性质能够配置为创建包括所述多个性质中的所选性质的性质集合。
8、根据前述方面中任一方面的配置元素,其中,所述配置显示视图的实例化包括在所述配置元素对象被配置时,对所述配置元素对象的实例化的预览。
9、根据前述方面中任一方面所述的配置元素,还包括存储所述配置元素对象的所述实例化的配置,所述配置包括来自所述性质集合的以所述配置元素配置的性质的值。
10、根据前述方面中任一方面所述的配置元素,其中,存储所述配置元素对象的实例化的配置包括:读取所述图形元素对象的所述属性的所述性质的值,并存储所述性质的所述值作为所述配置元素对象的所述实例化的配置的至少一部分。
11、根据前述方面中任一方面的配置元素,其中,存储所述配置元素对象的所述实例化的配置包括:读取所述配置元素对象中的所述性质的所选值,并且存储所述性质的所述值作为所述配置元素对象的所述实例化的配置的至少一部分。
12、根据前述方面中任一方面的配置元素,其中,所述配置显示对象的实例包括所述图形元素对象的一个或多个性质的可视表示。
13、根据前述方面中任一方面的配置元素,其中,所述图形元素对象的所述一个或多个性质包括形状,并且其中,所述性质集合包括所述形状的多个可视表示。
14、根据前述方面中任一方面所述的配置元素,其中,所述性质集合包括针对以下中的一者或多者的选项:所述形状的线条粗细、所述形状的颜色和所述形状的标签的字体。
15、根据前述方面中任一方面的配置元素,其中,所述图形元素对象的所述一个或多个性质包括动态图形行为,并且其中,所述性质集合包括所述动态图形行为的多个可视表示。
16、根据前述方面中任一方面的配置元素,其中,所述性质的集合包括针对以下中的一者或多者的选项:所述动态图形行为的动画和所述动态图形行为的呈现。
17、根据前述方面中任一方面的配置元素,其中,来自所述性质集合的以所述配置元素配置的性质包括所述图形元素对象的形状的性质,所述图形元素对象的所述形状是在所述配置显示视图的实例化中配置的。
18、一种方法,包括:在过程工厂的配置环境中的配置元素对象实例处接收对所述配置环境中的图形元素对象的至少一部分的配置的指示,所述配置元素对象实例(i)在所述过程工厂的配置环境中从配置元素对象配置并定义所述图形元素对象的性质集合,(ii)从所述配置元素对象实例化到所述配置环境中,以及(iii)在所述配置环境中,在配置显示对象的实例中执行,所述配置显示对象实例定义用于配置所述图形元素对象的多个性质;生成所述配置的定义并将所定义的配置链接到所述图形元素对象,由此使所述配置定义用于所述图形元素对象的实例化;在运行时环境中将所述配置定义应用于所述图形元素对象实例的至少所述部分,由此生成经配置的图形元素对象实例;以及在所述运行时环境中,在显示对象实例中执行所述经配置的图形元素对象实例,所述显示对象示例(i)在所述配置环境中从显示对象配置,(ii)从所述显示对象实例化到所述运行时环境中,以及(iii)在所述运行时环境中执行,并由此链接到相应的过程元素。
19、根据方面18所述的方法,其中,所述配置显示对象对应于所述图形元素对象的多个性质,所述图形元素对象的所述性质集合是从所述多个性质中选择以对应于所述配置元素对象的。
20、根据方面18或方面19中任一方面所述的方法,其中,所述多个性质包括一个或多个性质集合,所述图形元素对象的所述性质集合是从所述一个或多个性质集合中选择以对应于所述配置元素对象的。
21、根据方面18-20中任一方面所述的方法,其中,当所述配置元素对象被配置时,所述配置显示对象包括对所述配置元素对象的实例化的预览。
22、根据方面18-21中任一方面所述的方法,其中,接收对所述图形元素对象的至少所述部分的配置的指示包括:接收所述配置元素对象的所述实例化的存储的配置,所述存储的配置包括来自所述图形元素对象的性质集合的以所述配置元素对象配置的所述图形元素对象的性质的值。
23、根据方面18-22中任一方面所述的方法,还包括存储所述配置的定义,所述配置的定义包括来自所述图形元素对象的所述性质集合的以所述配置元素配置的性质的值。
24、根据方面18-23中任一方面所述的方法,其中,存储所述配置的定义包括:读取所述图形元素对象的所述性质的值,并存储所述性质的值存储作为所述配置元素对象的所述实例化的配置的至少一部分。
25、根据方面18-24中任一方面所述的方法,其中,存储所述配置的定义包括:读取所述配置元素对象中的所述性质的所选值,并存储所述性质的值作为所述配置元素对象的实例化的配置的至少一部分。
26、根据方面18-25中任一方面所述的方法,其中,生成所述配置的定义包括:生成所述图形元素对象的性质的值。
27、根据方面18-26中任一方面所述的方法,其中,所述配置元素对象实例包括所述图形元素对象的一个或多个性质的可视表示。
28、根据方面18-27中任一方面所述的方法,其中,所述图形元素对象的所述一个或多个性质包括形状,并且其中,所述性质集合包括所述形状的多个可视表示。
29、根据方面18-28中任一方面所述的方法,其中,所述性质集合包括针对以下中的一者或多者的选项:所述形状的线条粗细、所述形状的颜色和所述形状的标签的字体。
30、根据方面18-29中任一方面所述的方法,其中,所述图形元素对象的所述一个或多个性质包括动态图形行为,并且其中,所述性质集合包括所述动态图形行为的多个可视表示。
31、根据方面18-30中任一方面的方法,其中,所述性质集合包括针对以下中的一者或多者的选项:所述动态图形行为的动画和所述动态图形行为的呈现。
一种装置,被配置为执行前述方法中的任何一项或前述方法的任何组合。

Claims (31)

1.一种在配置显示视图上呈现的配置元素,所述配置元素用于配置将在过程控制显示视图上实例化的、与过程工厂中包括的过程实体相对应的、被链接到配置元素对象的图形元素对象,所述配置元素包括:
在所述过程工厂的配置环境中的定义所述图形元素对象的属性的性质集合的所述配置元素对象的实例化的执行,所述配置元素对象是能够配置的,所述配置元素对象包括到配置显示对象的链接,所述配置显示视图根据所述配置显示对象来实例化,并且,所述配置元素对象的实例化的执行包括:
所述图形元素对象的所述属性的所述性质集合的可视表示;以及
从所述配置显示的所述配置元素到所述图形元素对象的链接,以发送来自所述性质集合的与以所述配置元素配置的性质相对应的数据,经配置的性质对应于所述图形元素的至少一个经配置的属性以基于所述图形元素对象在所述过程控制显示视图上实例化,其中,所述图形元素对象通过所述链接被链接到所述配置元素对象,在所述配置元素对象实例化后,所述图形元素显示为在所述配置元素对象中定义的所述性质集合,并且,其中对所述配置元素对象的改变传播到被链接到所述配置元素对象的所述图形元素对象。
2.根据权利要求1所述的配置元素,其特征在于,所述配置元素对象能够在所述过程工厂的所述配置环境中配置。
3.根据权利要求2所述的配置元素,其特征在于,所述配置显示对象对应于所述图形元素对象的所述属性的多个性质,所述性质集合是从所述多个性质中选择以对应于所述配置元素对象的。
4.根据权利要求3所述的配置元素,其特征在于,所述多个性质包括所述性质集合从中选择以对应于所述配置元素对象的一个或多个性质集合。
5.根据权利要求4所述的配置元素,其特征在于,所述一个或多个性质集合能够在所述过程工厂的所述配置环境中配置。
6.根据权利要求5所述的配置元素,其特征在于,所述一个或多个性质集合能够配置为添加来自所述多个性质的性质和/或从性质集合中删除性质。
7.根据权利要求4所述的配置元素,其特征在于,所述一个或多个性质能够配置为创建包括所述多个性质中的所选性质的性质集合。
8.根据权利要求2所述的配置元素,其特征在于,所述配置显示视图的实例化包括在所述配置元素对象被配置时,对所述配置元素对象的实例化的预览。
9.根据权利要求2所述的配置元素,其特征在于,还包括存储所述配置元素对象的所述实例化的配置,所述配置包括来自所述性质集合的以所述配置元素配置的性质的值。
10.根据权利要求9所述的配置元素,其特征在于,存储所述配置元素对象的实例化的配置包括:读取所述图形元素对象的所述属性的所述性质的值,并存储所述性质的所述值作为所述配置元素对象的所述实例化的配置的至少一部分。
11.根据权利要求9所述的配置元素,其特征在于,存储所述配置元素对象的所述实例化的配置包括:读取所述配置元素对象中的所述性质的所选值,并且存储所述性质的所述值作为所述配置元素对象的所述实例化的配置的至少一部分。
12.根据权利要求1所述的配置元素,其特征在于,所述配置显示对象的实例包括所述图形元素对象的一个或多个属性的可视表示。
13.根据权利要求12所述的配置元素,其特征在于,所述图形元素对象的所述一个或多个属性包括形状,并且其中,所述性质集合包括所述形状的多个可视表示。
14.根据权利要求13所述的配置元素,其特征在于,所述性质集合包括针对以下中的一者或多者的选项:所述形状的线条粗细、所述形状的颜色、和所述形状的标签的字体。
15.根据权利要求12所述的配置元素,其特征在于,所述图形元素对象的所述一个或多个属性包括动态图形行为,并且其中,所述性质集合包括所述动态图形行为的多个可视表示。
16.根据权利要求15所述的配置元素,其特征在于,所述性质集合包括针对以下中的一者或多者的选项:所述动态图形行为的动画和所述动态图形行为的呈现。
17.根据权利要求1所述的配置元素,其特征在于,来自所述性质集合的以所述配置元素配置的性质包括所述图形元素对象的形状的性质,所述图形元素对象的所述形状是在所述配置显示视图的实例化中配置的。
18.一种由图形元素对象生成图形元素的方法,所述图形元素对象由链接到所述图形元素对象的配置元素对象的实例生成,所述方法包括:
在过程工厂的配置环境中的配置元素对象实例处接收对所述配置环境中的图形元素对象的至少一部分的配置的指示,
所述配置元素对象实例:(i)在所述过程工厂的配置环境中从配置元素对象配置并定义所述图形元素对象的性质集合,(ii)从所述配置元素对象实例化到所述配置环境中,以及,(iii)在所述配置环境中,在配置显示对象的实例中执行,所述配置显示对象实例定义用于配置所述图形元素对象的多个性质;
生成所述配置元素对象的定义并将所定义的配置链接到所述图形元素对象,由此使所述配置定义用于所述图形元素对象的实例化;
在运行时环境中将所述配置定义应用于所述图形元素对象实例的至少所述部分,由此生成经配置的图形元素对象实例;以及
在所述运行时环境中,在显示对象实例中执行所述经配置的图形元素对象实例,所述显示对象示例(i)在所述配置环境中从显示对象配置,(ii)从所述显示对象实例化到所述运行时环境中,以及(iii)在所述运行时环境中执行,并由此链接到相应的过程元素,其中,所述图形元素对象被链接到所述配置元素对象,并且其中,在所述配置元素对象实例化后,所述图形元素显示为在所述配置元素对象中定义的所述性质集合。
19.根据权利要求18所述的方法,其特征在于,对所述配置元素对象的改变传播到被链接到所述配置元素对象的所述图形元素对象。
20.根据权利要求19所述的方法,其特征在于,所述多个性质包括一个或多个性质集合,所述图形元素对象的所述性质集合是从所述一个或多个性质集合中选择以对应于所述配置元素对象的。
21.根据权利要求18所述的方法,其特征在于,当所述配置元素对象被配置时,所述配置显示对象包括对所述配置元素对象的实例化的预览。
22.根据权利要求18所述的方法,其特征在于,接收对所述图形元素对象的至少所述部分的配置的指示包括:接收所述配置元素对象的所述实例化的存储的配置,所述存储的配置包括来自所述图形元素对象的性质集合的以所述配置元素对象配置的所述图形元素对象的性质的值。
23.根据权利要求18所述的方法,其特征在于,还包括存储所述配置的定义,所述配置的定义包括来自所述图形元素对象的所述性质集合的以所述配置元素配置的性质的值。
24.根据权利要求23所述的方法,其特征在于,存储所述配置的定义包括:读取所述图形元素对象的所述性质的值,并存储所述性质的值作为所述配置元素对象的所述实例化的配置的至少一部分。
25.根据权利要求23所述的方法,其特征在于,存储所述配置的定义包括:读取所述配置元素对象中的所述性质的所选值,并存储所述性质的所述值作为所述配置元素对象的所述实例化的配置的至少一部分。
26.根据权利要求18所述的方法,其特征在于,生成所述配置的定义包括:生成所述图形元素对象的性质的值。
27.根据权利要求18所述的方法,其特征在于,所述配置元素对象实例包括所述图形元素对象的一个或多个属性的可视表示。
28.根据权利要求27所述的方法,其特征在于,所述图形元素对象的所述一个或多个属性包括形状,并且其中,所述性质集合包括所述形状的多个可视表示。
29.根据权利要求28所述的方法,其特征在于,所述性质集合包括针对以下中的一者或多者的选项:所述形状的线条粗细、所述形状的颜色、和所述形状的标签的字体。
30.根据权利要求27所述的方法,其特征在于,所述图形元素对象的所述一个或多个属性包括动态图形行为,并且其中,所述性质集合包括所述动态图形行为的多个可视表示。
31.根据权利要求30所述的方法,其特征在于,所述性质集合包括针对以下中的一者或多者的选项:所述动态图形行为的动画和所述动态图形行为的呈现。
CN201811009920.4A 2017-08-31 2018-08-31 图形元素的配置元素 Active CN109426232B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/692,450 US10691311B2 (en) 2012-10-08 2017-08-31 Derived and linked definitions with override
US15/692,450 2017-08-31
US15/722,463 2017-10-02
US15/722,463 US11216159B2 (en) 2012-10-08 2017-10-02 Configuration element for graphic elements

Publications (2)

Publication Number Publication Date
CN109426232A CN109426232A (zh) 2019-03-05
CN109426232B true CN109426232B (zh) 2023-12-08

Family

ID=63363845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811009920.4A Active CN109426232B (zh) 2017-08-31 2018-08-31 图形元素的配置元素

Country Status (3)

Country Link
EP (1) EP3451095B1 (zh)
JP (1) JP2019091410A (zh)
CN (1) CN109426232B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10796031B1 (en) * 2019-03-20 2020-10-06 Yokogawa Electric Corporation Method and system of preparing engineering data for industrial control systems
JP7311109B2 (ja) 2019-05-14 2023-07-19 東芝エネルギーシステムズ株式会社 医用画像処理装置、医用画像処理プログラム、医用装置、および治療システム
CN111859053B (zh) * 2020-07-22 2023-11-10 武汉镝次元数据科技有限公司 一种可视化图表的数据定义方法及图表库系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564007A (en) * 1994-06-03 1996-10-08 Motorola Inc. Method for configuring an automated dispense machine
CN1550976A (zh) * 2003-02-18 2004-12-01 ����-��˹â��ϵͳ�ɷ����޹�˾ 过程设备配置系统中的模块类对象
CN101893861A (zh) * 2004-05-04 2010-11-24 费舍-柔斯芒特系统股份有限公司 过程配置和控制环境中的图形集成
EP2608025A1 (en) * 2011-11-11 2013-06-26 Rockwell Automation Technologies, Inc. Method and apparatus for computer aided design of human-machine interface animated graphical elements
JP2014035609A (ja) * 2012-08-08 2014-02-24 Hitachi High-Tech Control Systems Corp 計装用オペレータズコンソールの作画方法及びプラント監視制御システム
CN104838324A (zh) * 2012-10-08 2015-08-12 费希尔-罗斯蒙特系统公司 动态可重用类
CN109597377A (zh) * 2017-10-02 2019-04-09 费希尔-罗斯蒙特系统公司 便于过程控制工厂中的图形显示设计工作流的系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318745A (ja) * 2003-04-21 2004-11-11 Toshiba Corp プラント監視装置
JP2005301726A (ja) * 2004-04-13 2005-10-27 Glory Ltd サービス窓口案内装置、サービス窓口案内方法およびサービス窓口案内プログラム
US20150106753A1 (en) * 2013-10-14 2015-04-16 Invensys Systems, Inc. Human-machine interface (hmi) system having elements styles with centrally managed and distributed graphic styles

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564007A (en) * 1994-06-03 1996-10-08 Motorola Inc. Method for configuring an automated dispense machine
CN1550976A (zh) * 2003-02-18 2004-12-01 ����-��˹â��ϵͳ�ɷ����޹�˾ 过程设备配置系统中的模块类对象
CN101893861A (zh) * 2004-05-04 2010-11-24 费舍-柔斯芒特系统股份有限公司 过程配置和控制环境中的图形集成
EP2608025A1 (en) * 2011-11-11 2013-06-26 Rockwell Automation Technologies, Inc. Method and apparatus for computer aided design of human-machine interface animated graphical elements
JP2014035609A (ja) * 2012-08-08 2014-02-24 Hitachi High-Tech Control Systems Corp 計装用オペレータズコンソールの作画方法及びプラント監視制御システム
CN104838324A (zh) * 2012-10-08 2015-08-12 费希尔-罗斯蒙特系统公司 动态可重用类
JP2016504640A (ja) * 2012-10-08 2016-02-12 フィッシャー−ローズマウント システムズ,インコーポレイテッド 動的に再使用可能なクラス
CN109597377A (zh) * 2017-10-02 2019-04-09 费希尔-罗斯蒙特系统公司 便于过程控制工厂中的图形显示设计工作流的系统和方法

Also Published As

Publication number Publication date
CN109426232A (zh) 2019-03-05
JP2019091410A (ja) 2019-06-13
EP3451095A1 (en) 2019-03-06
EP3451095B1 (en) 2023-11-15

Similar Documents

Publication Publication Date Title
JP7025485B2 (ja) 動的に再使用可能なクラス
US11216159B2 (en) Configuration element for graphic elements
US8788071B2 (en) Security for objects in a process plant configuration system
US7729792B2 (en) Version control for objects in a process plant configuration system
JP5762716B2 (ja) グラフィックディスプレイの中の形状を選択する方法
US5812394A (en) Object-oriented computer program, system, and method for developing control schemes for facilities
CN109426232B (zh) 图形元素的配置元素

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant