著录项信息
专利名称 | 策略编辑器人机界面 |
申请号 | CN200780020767.9 | 申请日期 | 2007-04-11 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-06-17 | 公开/公告号 | CN101460991 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G09G5/00 | IPC分类号 | G;0;9;G;5;/;0;0;;;G;0;6;F;3;/;0;0;;;G;0;6;F;3;/;0;4;8查看分类表>
|
申请人 | 因文西斯系统公司 | 申请人地址 | 美国马萨诸塞州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 因文西斯系统公司 | 当前权利人 | 因文西斯系统公司 |
发明人 | K·E·埃尔德里奇;M·V·费西比恩;P·麦斯考尼斯;J·W·海门威;C·N·拜尔德文;F·M·米德勒多普 |
代理机构 | 中国国际贸易促进委员会专利商标事务所 | 代理人 | 李向英 |
摘要
描述了对用于创建和修改过程控制系统(分布式的和离散的)的控制策略的策略对象编辑器的增强功能。改进包括:支持各个控制对象(通过外观对象编辑器修改的)的一组图形描述,将控制策略连接到其他控制策略的声明的拖放连接,对象执行顺序的基于GUI的指定,基于连接数据类型的自动地应用的线条样式,以及自动修改外观对象内的元素以适应移动的属性。
1.一种用于提供控制程序开发编辑器工具的方法,其中用户通过使用在工作站上的图形用户界面对象操纵,定义过程控制系统的控制对象,所述方法包括:通过图形用户界面向用户呈现控制程序开发窗口,所述控制程序开发窗口包括:
包括对应于可选择的控制对象模板的一组图形图像的模板工具箱区域,其中,所述可选择的控制对象模板中的每一个与多个用户可选择的作为替换显示的控制对象图形描述关联;以及
策略画布,在其上面,由用户通过从所述模板工具箱区域中选择控制对象模板,并且将所选择的控制对象模板放置在所述策略画布上来定义控制策略,并且其中,当将选择的控制对象模板放置在所述策略画布上所表现的所述控制策略内时,在所述策略画布上最初显示多个作为替换显示的控制对象图形描述中的当前优选的那个描述。
2.根据权利要求1所述的方法,进一步包括通过图形用户界面向用户呈现外观控件,所述外观控件用于选择所述策略画布上的控制对象,并随后指定显示与选择对象关联的所述多个描述中的一个。
3.根据权利要求1所述的方法,进一步包括提供外观对象编辑器,其中所述外观对象编辑器包括基于图形用户界面用于修改对应于控制对象的图形描述的外观的工具。
4.根据权利要求3所述的方法,其中,所述图形描述的显示空间被分成一组包含属性显示元素的子空间,并且其中,所述外观对象编辑器支持修改所述图形描述上的属性显示元素。
5.根据权利要求4所述的方法,其中,所述外观对象编辑器通过执行下列步骤来支持修改所述图形描述:
感应用户将属性显示元素从以前的子空间拖动并且放置到所述控制对象的所述图形描述的显示空间内的新的子空间中;
确定所述属性显示元素的当前显示属性;以及
至少调整所述属性显示元素的所述显示属性,以适应新的子空间的当前显示属性。
6.根据权利要求5所述的方法,其中,关于所述属性显示元素改变的所述属性中的至少一个是维度。
7.根据权利要求5所述的方法,其中,关于所述属性显示元素改变的所述属性中的至少一个是属性显示方向。
8.根据权利要求5所述的方法,其中,关于所述属性显示元素改变的所述属性中的至少一个是所述属性显示元素上的连接的位置。
9.根据权利要求1所述的方法,进一步包括提供导入功能,其有助于将新的预先定义的图形描述添加到所述控制对象的图形描述组中。
10.根据权利要求1所述的方法,进一步包括提供图形I/O属性连接工具,用于通过声明在对应于第一控制策略的第一控制策略画布上的具有第一图形表示的控制对象的I/O属性与位于所述第一控制策略外面的第二控制策略之间创建连接。
11.根据权利要求10所述的方法,其中,所述创建连接包括下列步骤:
为所述编辑器工具的图形用户界面的声明区域内的所述声明指定名称;
响应于为所述声明区域内的所述声明选择名称并指示所述图形声明表示在所述第一控制策略画布内的位置的用户动作,创建所述声明的图形声明表示;以及使用图形用户界面指示器动作,在所述声明和在所述第一控制策略画布中用图形方式表示的所述控制对象的所述I/O属性之间创建连接,此后由连接所述I/O属性的图形表示和所述图形声明表示的线在第一控制策略画布上用图形方式表示所述连接。
12.根据权利要求11所述的方法,其中,所述步骤进一步包括:通过在所述声明区域中指定所述声明的连接引用,完成所述第一控制策略上的所述I/O属性和问候声明之间的所述连接。
13.根据权利要求1所述的方法,进一步包括提供图形控制对象顺序指定工具,用于通过包含一组对应于所述控制对象的图形控制对象表示的所述策略画布,重新定义控制对象在控制程序内的执行顺序。
14.根据权利要求13所述的方法,其中,控制对象的执行顺序通过执行下列步骤来指定:
在所述策略画布内显示对应于所述控制对象的图形控制对象表示;
在所述策略画布内显示所述图形控制对象表示上的输入/输出端口之间的一组连接,所述连接对应于所述控制对象之间的输入/输出数据关系;
在所述策略画布内显示对应于分配给所述控制对象的执行顺序的一组序数值指示符;
注册用于分配给所述策略画布内表示的控制对象的当前序数值;
根据用户的手工指示,选择显示在所述策略画布上的图形控制对象表示中的一个;以及
响应所述选择步骤,通过所述编辑器工具进一步执行下列步骤:
向对应于选择的图形控制对象表示的控制对象分配所述当前序数值,以及更新向所述策略画布上表示的控制对象的序数值的分配,包括更新受分配步骤影响的所述控制对象中未被选择的控制对象的序数值指示符。
15.根据权利要求1所述的方法,进一步包括图形连接工具,用于在包含一组图形控制对象表示的所述策略画布上的用图形方式表示的控制对象属性之间创建显示的连接,其中,显示的连接的视觉特征由所述连接的数据类型确定。
16.根据权利要求15所述的方法,其中,所述策略画布上的用图形方式表示的控制对象属性之间的所述显示的连接通过执行下列步骤创建:
由所述编辑器工具检测连接的数据类型;
由所述编辑器工具通过将检测到的数据类型应用于一组存储的连接类型,确定包括包含连接属性的显示特性和视线特征的连接类型;以及
呈现具有在应用步骤中确定的显示特征的图形连接。
17.根据权利要求16所述的方法,其中,所述连接类型和关联的显示连接特征组是可以由用户通过所述编辑器工具支持的配置界面进行配置的。
18.一种用于在包括图形用户界面的控制程序开发编辑器工具内,通过声明在对应于第一控制策略的第一控制策略画布上的具有第一图形表示的控制对象的I/O属性与位于所述第一控制策略外面的第二控制策略之间创建连接的方法,所述方法包括下列步骤:
为所述编辑器工具的图形用户界面的声明区域内的所述声明指定名称;
响应于为所述声明区域内的所述声明选择名称并在指示图形声明表示在所述第一控制策略画布内的位置的用户动作,创建所述声明的所述图形声明表示;以及使用图形用户界面指示器动作,在所述声明和在所述第一控制策略画布中用图形方式表示的所述控制对象的所述I/O属性之间创建连接,此后以连接所述I/O属性的图形表示和所述图形声明表示的线在第一控制策略画布上用图形方式表示所述连接。
19.根据权利要求18所述的方法,进一步包括通过在所述声明区域中指定所述声明的连接引用,完成所述第一控制策略上的所述I/O属性和问候声明之间的所述连接的步骤。
策略编辑器人机界面 \n[0001] 对相关申请的交叉引用\n[0002] 本申请涉及Eldridge等人于2006年4月11日提出的标题为“APPEARANCE OBJECTS FOR CONFIGURING ANDGRAPHICALLY DISPLAYING PROGRAMMED/CONFIGUREDPROCESS CONTROL”的美国专利申请Serial No.11/403,225(代理人Docket编号233745),该申请的全部内容明确地以引用的方式并入本文中,包括其中的任何引用。 \n[0003] 本申请涉及Eldridge等人于2006年4月11日提出的标题为“A STRATEGY EDITOR FOR PROCESS CONTROLSUPPORTING DRAG AND DROP CONNECTIONS TODECLARATIONS”的美国专利申请Serial No.11/403,222(代理人Docket编号233754),该申请的全部内容明确地以引用的方式并入本文中,包括其中的任何引用。 \n[0004] 本 申 请 涉 及Eldridge 等 人 于2006 年4 月11 日 提 出 的 标 题 为“A STRATEGY EDITOR SUPPORTING DESIGNATINGEXECUTION ORDER VIA CONTROL OBJECT GRAPHICALREPRESENTATIONS”的美国专利申请Serial No.11/403,227(代理人Docket编号\n236955),该申请的全部内容明确地以引用的方式并入本文中,包括其中的任何引用。 [0005] 本申请涉及Eldridge等人于2006年4月11日提出的标题为“A STRATEGY EDITOR SUPPORTING AUTOMATICDESIGNATION OF DISPLAYED LINE STYLE BASED UPON ACONNECTION DATA TYPE”的美国专利申请Serial No.11/403,067(代理人Docket编号236957),该申请的全部内容明确地以引用的方式并入本文中,包括其中的任何引用。\n[0006] 本申请涉及Eldridge等人于2006年4月11日提出的标题为“AUTOMATIC RESIZING OF MOVED ATTRIBUTEELEMENTS ON A GRAPHICAL REPRESENTION OF ACONTROL OBJECT”的美国专利申请Serial No.11/402,644(代理人Docket编号236958),该申请的全部内容明确地以引用的方式并入本文中,包括其中的任何引用。 \n技术领域\n[0007] 本发明一般涉及可编程/可配置的计算机化的控制系统的领域。更具体来说,本发明涉及包括用于创建/配置连续的和/或离散的过程的控制程序的图形界面的应用程序。 \n背景技术\n[0008] 工业界越来越依赖于高度自动的数据获取和控制系统,以确保工业过程/操作有效地、安全地并可靠地运行,同时又能降低总成本。在这样的系统中,数据获取开始于传感器测量表示工业过程或操作的状态/操作的过程变量的当前值/状态。测量值被传递到编程控制器和数据收集/管理系统。数据收集/管理系统,一般包括进程数据库和数据处理例程,管理和维护测量数据。这种数据管理和维护包括进一步处理数据(例如,过滤),存储数据,并将数据分发到各种客户端应用程序。这种客户端应用程序包括自动和人工监控进程,和显示/监视用户界面。 \n[0009] 工业过程/操作测量值以各式各样的形式起作用,并被工业过程控制系统用来相对于连续的和离散的制造过程调整各种操作。作为示例,由传感器/记录器产生的测量包括:温度、压力、pH、材料的质量/容积流量、每小时填充的瓶的量,在运输线中等待的包装的带标记的库存,或工厂中的房间的照片。常常,复杂的自动过程管理和控制硬件/软件检查所获取的过程/操作测量数据,并通过向调整工业过程的至少一部分的操作的致动器/控制器发送消息/信号来作出响应。控制软件包括,例如,一个或多个控制策略,而这些策略又包括一组控制块。控制程序潜在地在各种控制水平进行操作,包括,例如,管理 控制(例如,维护过程变量的特定的指定的设定值)和监督控制(例如,为被控过程变量指定设定值)。 \n[0010] 典型的工业过程的自动控制系统常常是复杂的。当然,为这样的自动控制系统开发自定义的控制程序也是复杂而耗时的任务。然而,当今的控制系统编程过程,通过基于图形用户界面的控制程序开发环境/工具包,而提高效率和得以简化,这些开发环境/工具包允许通过拖放,此后,连接控制程序的预编程的组件/元件的图形表示,来创建控制程序。\n这种图形表示与控制软件对象(或者具体来说,控制软件对象模板)关联,当这些控制软件对象被实例化并部署在控制软件对象执行平台上时,执行总体控制环境中的特定的定义的操作/功能。 \n[0011] 使用图形编辑器和可选择的预先编程的对象模板的组来对过程的自动控制进行编程,与使用编写的指令进行编程控制相比,有极大的进步。基于图形用户界面的控制程序环境基本上消除了控制工程师使用低级指令代码,或者甚至较高级的编译源代码语言来开发控制程序的需求。相反,控制程序的开发人员调用具有控制模板托盘(pallet)中提供的由符号代表的关联的预先编程的控制对象的图形控制程序编辑器。因此,程序员无需学习使用编写的指令/代码来进行程序控制,只需要掌握有关由从可选择的控制对象模板实例化而来的控制对象执行的各种任务/功能。 \n[0012] 已知的图形控制程序编辑器支持可扩展的控制对象模板组。新的控制对象模板包括具有在现有的控制对象模板组/托盘中未发现的新的属性/功能的新的控制元件。在某些情况下,新的控制对象模板是从现有的模板导出而来的。在其它情况下,新的控制对象模板包括一组连接的,预先存在的控制对象模板。 \n[0013] 用于开发自动控制程序的基于模板的控制开发工具包方法没有全部消除低级编程。相反,这样的工具包会通过开发原始控制对象模板的数量相对较小的熟练的低级编程程序员的许多原始编程努力,来促进有效的/广泛的利用。这样的利用是以从原始模板的基类(baseclass)导出子模板,并从原始和导出的模板创建对象实例的形式进行 的。 发明内容\n[0014] 根据本发明,控制程序开发编辑器工具包括用于简化和增强基于图形用户界面的控制策略编辑器工具的功能的各种功能、工具和应用程序。 \n[0015] 提供了一种增强的策略编辑器人机界面(HMI)托盘,包括对应于可选择的控制对象模板的一组图形图像。每个控制对象模板都与各个控制对象的图形描述关联。这种向单一控制对象分配多个图形描述可使用户为不同的行业指定控制块的专用图形描述(例如,能源生产行业中的SAMA符号)。由编辑器工具提供策略画布,在其上面,通过从托盘中选择控制对象模板来定义控制策略,其中,当将控制对象模板放置在控制策略内时,最初显示控制对象模板的多个图形描述中的当前首选的那个图形描述。此外,还提供了外观控件,用于选择图形图像,此后,指定显示与选定图形图像关联的对象所关联的多个描述中的一个。 [0016] 此外,还说明了一种方法,用于在控制程序开发图形编辑器工具内,创建第一控制策略画布上图形表示的控制对象的I/O属性和位于第一控制策略外面的第二控制策略之间的连接。这种连接通过声明来支持,该声明作为嵌入在两个不同的控制策略内的不同属性之间的连接器。 \n[0017] 指定和定义声明及其关联的连接的属性是通过最初为在编辑器工具的图形用户界面的声明区域内的声明的指定名称来完成的。此后,编辑器响应于为声明区域内的声明选择名称并指示图形声明表示在第一控制策略画布内的位置的用户动作,创建声明的图形声明表示。接下来,使用图形用户界面指示符动作,在声明和第一控制策略画布中图形表示的控制对象的I/O属性之间创建连接。最后,通过在声明区域中指定声明的连接引用的进一步步骤,完成声明定义。 \n[0018] 描述了一种方法,用于通过图形控制程序编辑器工具,指定控制对象在控制程序内的执行。编辑器工具包括策略画布,所述策略画布 包含一组包括控制策略的图形表示图形控制对象表示。 \n[0019] 手动向本文所述的控制对象分配序数值的方法包括注册当前序数值,以便分配给以一组控制对象的图形表示的形式描述控制策略策略画布内的控制对象的步骤。此后,由编辑器工具检测用户对画布内的其中一个图形控制对象表示的选择。作为响应,编辑器执行进一步的步骤:向对应于选定的图形控制对象表示的控制对象分配当前序数值,更新向策略画布上表示的所有控制对象的序数值的分配,包括更新受分配步骤影响的图形控制对象表示上的有关执行顺序的图形显示指示符。 \n[0020] 还描述了一种用于通过控制程序编辑器工具图形用户界面来创建控制对象属性之间显示的连接的方法。控制对象属性和连接是在包含一组图形控制对象表示的编辑器工具的策略画布上图形的表示。具体来说,该方法包括最初检测连接的数据类型的步骤。此后,编辑器工具向存储的包括连接属性和对应的视线特征的连接类型组应用检测到的数据类型。然后,由编辑器工具呈现图形连接,该图形连接具有在应用步骤中确定的显示特征。\n此外,在特定实施例中,连接类型和关联的显示的连接特征组是可以由用户通过控制程序编辑器工具支持的配置界面进行配置的。 \n[0021] 提供了用于通过图形表示编辑器图形用户界面来编辑对应于控制对象的图形描述的方法。图形描述显示空间被分成一组包含属性显示元素的子空间。此外,子空间还具有不同的显示属性,如维度、包含的属性的方向,连接手柄(handle)的外边缘的位置等等。\n该方法包括最初将属性显示元素放入图形描述显示空间内的新的子空间中。此后,图形表示编辑器确定属性显示元素的当前显示属性。编辑器至少调整属性显示元素的显示属性,以适应新的子空间的当前显示属性。在特定实施例中,编辑器还修改放置区的显示空间,以适应拖放的属性显示元素的空间要求。 \n附图说明\n[0022] 尽管所附的权利要求详细地阐述了本发明的特征,但是,通过下 文结合附图对本发明进行的详细描述,可以更好地理解本发明及其目的和优点,其中: [0023] 图1是显示了包括适于实现本发明的实施例的控制网络和应用程序/监督网络的示范性控制策略开发和执行环境的示意网络图; \n[0024] 图2是在与执行通过策略编辑器工具开发的控制程序的控制处理器可通信地连接的工作站节点上执行的策略编辑器工具的示意图; \n[0025] 图3a列出了在策略对象中支持的示范性对象属性组; \n[0026] 图3b列出了在支持多个外观对象的控制对象中支持的示范性对象属性组,所述多个外观对象在控制程序开发接口/环境内提供多个用户可选择的控制对象的描述; [0027] 图4概述了由策略编辑器和策略对象支持的接口; \n[0028] 图5概述了由外观对象编辑器和外观对象支持的界面; \n[0029] 图6描述了控制块对象模板的外观对象图形显示的说明性示例; [0030] 图7描述了自定义外观对象图形显示的说明性示例; \n[0031] 图8a和8b分别说明性地描述了策略编辑器画布和对应的策略外观对象上的连接块的图形显示; \n[0032] 图9说明性地描述了支持对应的控制对象的多个外观对象的外观对象编辑器的示范性图形用户界面; \n[0033] 图9a是概述了用于当移动到外观对象的另一部分时自动地调整属性元素大小的步骤的流程图; \n[0034] 图10说明性地描述了策略编辑器的示范性图形用户界面; \n[0035] 图10a是概述了通过对策略编辑器画布的基于GUI的动作而创建声明连接的步骤的流程图; \n[0036] 图11说明性地描述了属性浏览器对话框的示范性图形用户界面; [0037] 图12说明性地描述了在策略编辑器画布上向特定类型的连接分配式样的示范性连接外观对话框; \n[0038] 图13是概述了用于向连接类型应用预先定义的线条外观定义 的步骤的流程图; [0039] 图14说明性地描述了在实时数据显示模式中外观对象的示范性图形用户界面,其中,表示的属性的实时数据显示在发现的属性的附近;以及 \n[0040] 图15说明性地描述了促进用户提交的对显示的属性值的更改的Update Dialog的示范性图形用户界面。 \n具体实施方式\n[0041] 下面,参考说明性地描述了本发明的示范性实施例的图形,在下文中描述用于定义过程的控制程序(例如,下面所描述的控制策略)的基于图形用户界面的编辑器工具。根据说明性实施例,编辑器工具提供了图形用户界面驱动的功能,包括,其中:支持定义了单一控制对象(例如,控制块对象、控制策略对象等等)的各种描述的一组外观对象,通过图形用户界面对象操纵(例如,拖放动作)连接控制对象的输入和输出属性,通过图形用户界面选择确定控制对象的执行顺序,为不同类型的连接指定不同的可视外观,响应元素在控制块的外观对象显示内的重新定位,自动地调整属性显示元素大小。 \n[0042] 这里所提供的说明性示例主要涉及管理控制程序。管理控制程序包括,例如,控制对象。术语“控制对象”一般是指被实例化并运行以执行控制功能的软件对象。控制对象的示例包括控制块对象和控制策略对象(包括多个,连接的控制对象-甚至包括子策略对象)。这种控制块对象通常由控制处理器(或其他合适的处理硬件/平台)循环地运行,以维护指定的操作范围内的过程变量(代表过程的状态)。然而,示范性编辑器工具的许多方面适用于确定/指定被控过程变量的设定值的较高的级别(例如,监督)控制程序。在其他实施例中,这里所说明的图形编辑器功能被集成到分离的控制程序编辑器中。 [0043] 在示范性实施例中,与同一控制对象(例如,控制块/策略对象)模板关联的多个外观对象被引用/包括在模板的数据结构内。在从模板创建的任何对象实例内维护关联。\n支持与多个外观对象的关联的对象模板结构促进开发/提供控制程序开发/编辑环境的特定行业/应用模板 组的集合。潜在地为特定应用/行业提供每一组特定行业/应用模板,以适应与特定应用/行业关联的特定符号约定。 \n[0044] 因此,可以在各种控制程序环境中使用具有多组对应的外观对象的单一控制对象,所述控制程序环境包括与控制程序为其开发的特定行业/应用关联的特定领域知识。\n特定行业/应用的图形元素组有助于控制程序的更有意义的/直观的显示。此外,不需要用户适应控制程序开发工具的约定,对应的控制对象的多个受支持的外观对象有助于使开发工具适应特定行业/应用的知识库/约定。 \n[0045] 增强控制程序编辑器的总体实用性的外观对象的另一个特征是执行顺序指示器图形界面。执行顺序指示器允许用户通过图形界面手动向父控制策略内的控制块或控制块的连接的集合(这里简称为子策略)分配序数值。序数值指定控制块或子策略相对于具有分配的序数值的其他块的相对执行顺序。序数值,一旦分配,就呈现在外观对象的图形显示上。 \n[0046] 外观对象的又一个方面是显示元素重新定位在外观对象的显示空间内相对容易些。当添加、删除显示元素(例如,输入/输出属性)或将显示元素移动到外观对象的另一部分时,根据元素重新定位在其内的外观对象的新的部分的维度/空间限制,显示元素被自动地重新调整大小,并其连接点被重新定向。 \n[0047] 外观对象包括显示的连接点,这些连接点与对应于图形表示的块或子策略的特定输入/输出属性的数据结构关联。将显示的控制块/策略输出连接到一个或多个控制块/策略输入是通过简单的基于GUI的选择操作来完成的。例如,通过使用线条/连接绘图工具,用户首先将指针定位于第一控制块上显示的输出属性点/手柄的上方。此后,用户将指针重新定位在控制块上的输入属性手柄上,并选择输入以完成选定的输出和输入属性之间的连接(数据传输路径)的指定。根据用图形方式显示的连接,更新与控制程序(例如,控制策略对象)关联的数据结构。此外,还向控制块属性之间的连接的图形描述分配可视地指示连接的特征的用户可配置显示属性。作为示例,线条的颜色可 以反映数据源、数据目的地,两个连接的I/O属性之间传递的数据的类型(例如,布尔、整数、实数、字符串等等)。 [0048] 在示范性实施例中,定义的控制程序的控制对象(例如,控制策略)被分配到特定执行组(简称为复合语句(compound)),这些组定义了控制对象在运行时控制环境中在其上运行的特定控制处理器。在部署之后,以及在运行时,向控制对象的图形编辑器提供对应于用图形方式编辑的控制程序的显示属性的过程变量值,以促进显示和设置与实时过程控制数据源关联的值。实时数据值显示在与部署的控制对象关联的呈现的外观对象上的对应的属性附近。在特定实施例中,属性的当前值显示在特定属性的显示元素的附近。因此,外观对象用于在运行时环境中提供控制对象属性值的图形表示,以监视特定的查看的控制程序I/O属性的当前值。 \n[0049] 在描述实现了本发明的控制程序编辑器工具之前,下面简要描述示范性过程控制网络环境/设备。本发明潜在地可以集成在各种过程控制设备布局中,考虑到这里所描述的本发明,所属领域的技术人员将知道其他物理过程控制布局。请参看图1,该图描述了示范性简单的过程控制系统布局/环境,其中,示范性控制程序编辑器进行操作,以在管理过程控制级别创建可执行的过程控制程序。工作站102(例如,由Invensys Systems,公司出品的FOXBORO ApplicationWorkstation model AW70P),包括图形控制程序和外观对象编辑器,提供了用于创建新的控制程序和修改现有的程序的图形控制程序设计/开发环境。\n此后,控制程序被部署到管理控制处理器上,并在其上面执行,以通过控制环境中的一组关联的现场设备(例如,过程变量传感器、阀门、定位器等等)的协调的操作,实现各种过程控制任务中的任何任务。 \n[0050] 工作站102包括任何各种硬件/操作系统平台。例如,在本发明的各种优选和备选实施例中,工作站102包括潜在地运行任何各种操作系统的个人计算机,所述操作系统如:\nMicrosoft Windows XP、Unix、Linux、Solaris、Mac OS-X等等。\n[0051] 工作站102,作为示例,执行实时数据显示应用程序。实时数据显示应用程序从运行时数据源(例如,由控制模块组件108维护的运行时数据库)提取与部署的控制程序关联的运行时数据值。所提取的数据值呈现在从以前定义的外观对象以及它们的关联的过程变量属性创建的图形显示上。下面,将详细描述控制程序编辑器和实时数据显示应用程序的示范性实施例。数据库服务器104维护与控制程序开发工具和定义的过程控制程序(这里也称为“策略”)关联的过程控制程序元素(例如,对象模板和实例)。因此,数据库服务器104作为诸如工作站102之类的能够访问数据库服务器104的多个工作站(未显示)使用的开发信息的集中储存库来操作。 \n[0052] 在说明性示例中,工作站102通过以太网接口/线路经由网络链路105连接到以太网交换机106。或者,冗余的网状网络提供工作站、数据库服务器以及交换机106之间的通信路径。以太网交换机106可以是各种市场上销售的交换机中的任何一种。作为示例,以太网交换机106是,例如,Allied Telesyn提供的(例如,型号AT-8088/MT)。尽管在图\n1中没有具体描述,但是,控制系统的监督部分的额外的节点,包括工作站、服务器及其他元件(例如,高级控制模块组件)潜在地连接到交换机106。此外,额外的交换机还连接在一起,以构成交换网络。 \n[0053] 交换机106,以及潜在地其他未描述的交换机,也与控制模块组件108可通信地连接。控制模块组件108包括一个或多个控制模块(也简称为控制处理器),它们执行由过程传感器数据值进行驱动的控制程序,并向控制工厂过程的设备(例如,阀门、马达等等)呈现输出值。这种控制模块的说明性示例是Invensys Systems公司的FOXBORO CP model FCP270。在其他实施例中,过程控制功能在任何各种控制模块中实现,甚至由集成到工作站、智能发射器中的控制程序,或实际上任何能够执行控制程序、循环、脚本等等的可通信连接的设备来实现。 \n[0054] 在其中控制模块组件108是FOXBORO FCP270的实施例 中,工作负荷在FCP270内在控制数据通信和执行控制程序(块)之间分配。FCP270使用两个不同的硬件模块-块处理器模块和字段通信模块,并行地对从I/O模块组件110接收到的数据进行处理。块处理器模块,根据相对来说比较长的块处理循环周期(例如,100ms),反复地执行由驻留在工作站102上的过程控制程序开发设备创建的控制程序。在块处理器模块内执行的控制程序的输出值由控制模块组件108从I/O模块组件110接收的过程数据进行驱动。I/O模块组件\n110包括,例如,INVENSYS FBM207和/或FBM217现场总线模块,它们向控制模块组件108传递数字输入值。由在工作站102上运行的实时数据显示设备,直接或间接地,访问由控制模块组件108上的控制程序计算出的过程数据和输出值。在示范性实施例中,由控制模块组件108所提供的过程数据显示在与控制程序或其一部分的当前显示的图形表示关联的外观对象所提供的对应的属性标识旁边。 \n[0055] 至于由控制模块组件108执行的上文所提及的数据通信任务,在说明性示例中,FCP270内的现场通信模块从I/O模块组件110接收数据。接收的数据通过网络链路105根据适当的网络通信协议(例如,TCP/IP)被传递到上文所提及的块处理器模块(在控制模块组件108内)和过程数据用户(例如,数据访问服务器、在工作站102上运行的数据获取服务和实时数据显示应用程序,等等)。用于向各种用户提供数据的协议/机制根据本发明的特定实施例而变化。 \n[0056] 继续参考图1,I/O模块组件110,或者简称为现场总线模块(FBM),与控制模块组件108可通信地连接。用于在I/O模块组件110和控制模块组件108之间进行通信的通信协议潜在地是任何各种专有的/非专有的通信协议中。在一个实施例中,控制模块组件108和I/O模块组件110之间的数字数据通信通过2 MBit HDLC通信协议执行。尽管在说明性示例中只描述了单一I/O模块组件110,但是,实现了本发明的控制系统常常包括许多与每一个控制模块组件108进行通信的I/O模块组件。\n[0057] I/O模块组件,一般而言,包括用于直接和/或间接地与各种设备类型进行通信的各种专用接口中的一个或多个,包括位于工厂中的分散的位置的实现特定通信协议的传感器/致动器。在说明性示例中,I/O模块组件110包括Foundation Fieldbus I/O模块(例如,Invensys现场总线模块型号FBM228),其支持控制模块组件108和连接到Foundation Fieldbus网络111的现场设备之间的通信。在说明性实施例中,一组代表性的包含多个取决于应用的可配置参数的智能现场设备114和116连接到Foundation Fieldbus网络111。\n现场设备114和116在控制系统的最低级别操作,以测量(发射器)和控制(定位器,电动机开关等等)工厂活动。终端组件112将I/O模块组件110可通信地连接到现场设备114和116。终端组件112提供电源和电源调整到网络111上的现场设备114和116所需的程度。 \n[0058] 已经描述了其中潜在地包括实现了本发明的控制程序编辑器的示范性网络环境,下面请看图2,该图描述了与控制程序编辑器工具关联的示范性的接口/组件组。下面将参考包含一个或多个控制对象(例如,控制块和子策略对象)和关联的外观对象208的策略对象204,描述编辑器工具的软件组件(由圆圈代表)和数据/对象(由矩形代表)的交互。驻留在工作站102上的编辑器工具的说明性组件,提供/支持下列各项:基于图形用户界面的控制程序(例如,控制策略)编辑器,与从其创建控制程序的控制对象/模板关联的图形描述的编辑器,以及用于显示对应于通过控制程序编辑器定义和显示的控制程序的控制对象I/O属性的当前值的实时数据显示机制。 \n[0059] 图2中所描述的控制程序编辑器工具包括独立的设计环境(IDE)模板工具箱200,该工具箱200包括预先编程的控制对象模板,通过这些模板,用户通过策略编辑器202实例化策略对象204内包含的控制对象,创建子控制策略模板/对象(包括一组连接的控制对象模板),并从以前定义的控制对象模板导出子控制对象模板。控制对象模板,例如,在由策略编辑器202支持的图形用户界面的模板 工具箱画布区域内呈现的扩张/收缩树形结构中用图形方式表示(参见下面所描述的图10)。考虑到本文所描述的示范性实施例,所属领域的技术人员将知道,呈现模板工具箱200的可用的模板的其他方式,包括具有一组可选择的控制对象模板的位图表示的一组用户可选择的专用托盘。 \n[0060] 策略编辑器202的用户界面的模板工具箱画布区域中表示的项不一定是对应于各个控制块的控制对象。在本发明的实施例中,开发人员创建连接的控制对象模板(对应于连接的控制块)的组合。所产生的中等大小的控制对象模板的组合,这里简称为“子策略”,被添加到模板工具箱200中,并作为策略编辑器202的用户界面的模板工具箱画布区域内的模板(例如,作为控制程序对象模板的层次树上的带名称的模板节点)来呈现。用户定义包括互连的(通过I/O属性)控制块/子策略对象的控制程序。在控制策略对象数据结构中维护控制程序(这里也简称为“控制策略”),所述控制策略对象数据结构包括一组由用户通过策略编辑器202和外观对象编辑器206定义的控制对象。 \n[0061] 在示范性实施例中,由适用于各种科技领域/应用的模板工具箱200提供一组控制对象模板。然而,不是只支持控制对象模板/实例组中的每一个的单一图形视图,还为控制对象模板/实例组的各个控制对象模板/实例支持用户可扩展的特定领域/应用(例如,发电、炼油、化工生产等等)的图形视图/描述组。特定控制对象的这种特定领域/应用的图形视图/描述通过为特定控制对象创建与对应的可扩展的图形面板定义的组的关联来实现。因而,单一控制对象可以基于,例如,控制对象最终将在其内运行的特定类型的过程,通过策略编辑器202图形界面以多种方式来表示。在说明性实施例中,外观对象208为策略对象204内包含的控制对象提供图形面板定义。 \n[0062] 如图2所示,通过外观对象编辑器工具206编辑的外观对象208,作为与策略对象\n204内包含的关联的控制块/子策略对象分离的实体存在。策略编辑器202根据需要导入外观对象208,如当用户将 控制对象放置到编辑器202的图形用户界面内显示的策略对象\n204的控制程序画布(参见,图10)上时。外观对象模板(从其创建了外观对象208)由控制对象模板(从其创建了策略对象204)内的条目指定。外观对象208包括用于支持与在由策略编辑器202支持的控制程序开发/配置环境中用图形方式表示策略对象204及其暴露的属性/特性关联的功能的定义明确的界面。 \n[0063] 因此,如上所述,通过单独地定义的组件(这里简称为外观对象),在控制策略开发/配置环境中提供/支持控制程序控制块/子策略对象的可视/图形显示方面。此外,每一个控制块/子策略对象都与用户可指定的图形定义的可扩展的组关联。每一个图形定义,包括指定的输入/输出属性,是作为与控制对象关联的不同的外观对象来维护的。一组关联的外观对象中,只能指定一个外观对象以在任何特定时间点提供控制对象的图形表示。然而,可以由用户指定与控制对象关联的外观对象中的任何一个,以呈现由外观对象支持的多个可用的图形表示中所需的那一个。 \n[0064] 外观对象编辑器206执行有关定义控制程序的可视/图形显示方面的任务。至于由策略编辑器202显示的画布上显示的控制块和策略,随着通过策略编辑器202修改输入和输出属性(例如,策略输入/输出声明),更改被传递到外观对象编辑器206。外观对象编辑器206又更新控制对象的关联的外观对象以包括更改。在由控制策略的外观对象呈现的信息的布局的示范性一般化格式中(参见,图8a和8b),外观对象编辑器206将添加的输入声明放置在策略的外观对象的左边。添加的输出声明被置于外观对象的右边。因而,根据所说明的编辑器工具的另一个方面,响应于对控制对象上的输入/输出的更改,自动机制更新控制对象的关联的外观对象上的一组输入和输出。因此,用户不需要采取任何动作,以通过策略编辑器202将对控制对象(例如,控制策略)的输入/输出属性作出的更改与关联的外观对象组同步。 \n[0065] 控制程序编辑器工具包括到控制环境的各种组件的许多额外的 接口。策略编辑器202与配置数据库210连接,该配置数据库210维护控制程序以及其一部分的档案-包括控制对象以及关联的外观对象组。策略编辑器202存储定义的控制程序,子策略甚至各个控制对象,供以后检索/编辑。 \n[0066] 策略编辑器202与部署进程212连接。由用户通过策略编辑器202调用部署进程\n212,以部署包括多个控制对象的完整的控制程序。部署进程212还用于部署各个控制块/子策略,所述子策略包括部署的控制程序的一部分。在本发明的实施例中,由部署进程212根据需要来更新经过修改的,以前部署的控制程序。具体来说,部署进程对构成了已修改的控制程序的对象组进行扫描,部署服务212只部署自从前一次部署以来已经修改的块和块属性。 \n[0067] 此外,到部署进程212的策略编辑器202还支持上传操作,其中,用户可以执行“盲”上传。在盲上传过程中,控制块或子策略内的所有可配置的属性值都从控制模块组件\n108中的运行时数据库上传,并存储在配置数据库210内。还支持智能上传操作,其中,将带有数据库值的运行时值呈现给用户。用户基于同一属性的两个值的比较,判断是否要将一个或多个运行时值上传到配置数据库210中,或重新部署块,因而通过部署服务212将属性值从数据库210发送到运行时系统。值得注意的是,配置数据库210对应于图1中的数据库服务器104。 \n[0068] 示范性控制系统包括设备集成对象,这些对象作为到与控制系统关联的实时数据的网关/通道来操作。策略编辑器202与设备集成(DI)对象214连接,以接收和显示从控制策略对象204的运行时版本中提取的实时数据值。由策略编辑器202请求的每一个属性的数据从DI对象214传递到策略编辑器202。此后,策略编辑器202在显示策略对象204包含的控制对象的外观对象208的画布内的适当位置显示实时数据,。相反,策略编辑器202通过DI对象214将值(例如,新的设定值,报警限等等)传递到策略对象204的部署的版本。\n[0069] 图2中表示的控制程序编辑器工具还包括到外观对象编辑器206的用于导入在外部定义的图像220的接口。通过剪切/复制和粘贴,或通过Insert Bitmap操作,在外观对象编辑器206的外部生成的图像被插入到外观对象中。 \n[0070] 下面将进一步描述策略编辑器202和外观对象编辑器206两者。 [0071] 在图3a中概述了策略对象204中支持的示范性对象属性组。策略对象上的属性包括AppearanceObject属性300。AppearanceObject属性300包含描述当前对于策略对象204可用的所有外观对象的图形定义(例如,“blob”)。其中一个外观对象被指定为“默认”外观对象。每当策略对象204最初与显示的策略放置在一起时,呈现策略对象204的默认外观对象定义的图形元素。在配置过程中的任何时间,用户都可以选择要为策略对象204呈现不同的外观对象,假定用户以前已经构建了它们。 \n[0072] BlockData属性302包含策略对象204内包含的块的序列化集合。 [0073] DeclarationData属性304包含属于策略对象204的I/O声明的序列化集合。 [0074] Diagram属性306包含图形定义(“blob”),描述了由策略编辑器202支持的图形界面的画布区域内呈现的控制策略204的全尺寸图形显示(参见,图10)。 [0075] ExecutionOrder属性308包含策略内的按执行顺序排列的所有块和子策略对象的列表。作为示例,此属性中包含的数据是使用XML以下列形式指定的: [0076]
\n[0077] \n[0078] \n[0079] \n[0080] \n[0081] FBMChannels属性310是阵列,其中,阵列的每一个元素都对应于FBM上的I/O通道。在I/O分配过程中,FBMChannels属性410用于迅速导航到连接到FBM的I/O块。 [0082] IOBlocks属性314是阵列元素,其中,每一个条目都映射到FBMChannels阵列中的对应的条目。阵列元素包含特定FBM通道所连接到的块引用。 \n[0083] LinkedToTemplate属性316是指示策略对象204是否链接到其定义模板的标记。\nLinkedToTemplate属性414在某些情况下(例如,当添加或删除块或重命名声明时,从而修改控制策略的计划的控制方案或逻辑)允许用户中断策略以及其定义模板之间的链接。 [0084] ModifiedOutsideEditor属性318被设置为表示当最初加载策略编辑器202的画布时块和子策略的外观对象和位置信息。ModifiedOutsideEditor属性416包含下列形式的XML数据流: \n[0085]
\n[0086] \n[0088] \n[0090] \n[0091] 当控制块/子策略对象具有一个以上的关联的外观对象时,“appname”XML属性允许用户指定哪个外观对象应该用于在为策略对象204分配的图形界面内呈现标识的块和/或子策略对象。 \n[0092] “X”和“Y”XML属性允许用户指定块或子策略对象的外观对象应该出现在画布上的什么地方。如果没有指定“X”和“Y”,则策略编辑器202所使用的默认位置算法将放置每一个连续的块或子策略。最初是空的,“UpdateAction”XML结构的内容由批(bulk)生成过程写入。外观对象的名称和位置信息由用户在批数据对象中包含的数据内提供。当在批生成之后在策略编辑器202内首先打开策略对象204时,批数据对象的内容被清除。\n[0093] 当最初被添加到策略时,Period属性320指定应用于所有块的默认执行周期。 [0094] 当最初被添加到策略对象204时,Phase属性322指定应用于所有块和策略对象的默认阶段(在控制程序的多阶段执行周期内)。 \n[0095] Prefix属性324指定附加到控制策略204内的所有块的前缀。 \n[0096] GraphicsGUID属性326包含匹配图形示意图上的形状的GUID。GraphicsGUID属性326是下列形式:{8F4871FA-5915-47FE-BB2C-862E1B4E99CD}。GUID值用于将配置数据库210中的IgObject链接到图形形状,只当策略模板被拖放到包含策略的另一个上时才被填充。 \n[0097] 包括带有控制策略对象的上文所描述的数据内容。然而,可以与多个外观对象关联的每个控制对象(例如,控制块对象、控制策略对象)包括在外观对象编辑器206和/或紧密地与外观对象编辑器206进行交互操作的诸如策略编辑器202之类的其他进程内使用的多个数据结构,以潜在地支持与控制对象/模板关联的多个外观对象。在图3b中标识了这些数据结构,并在下面进行了描述。AppearanceObject属性350(对应于AppearanceObject 300)存储外观对象图形定义“blob”,它定义与标识的控制对象关联的所有图形显示元素(包括所有关联的外观对象的图形显示元素)。作为示例,AppearanceObject属性500作为VISIO二进制存储,并包含Appearance ObjectEditor的完整的内容。 \n[0098] AppearanceObjectsList 原 始 属 性 352 存 储 外 观 对 象 列 表。\nAppearanceObjectsList属性352有助于跟踪已经为特定块或策略对象模板定义的所有外观对象。在外观对象编辑器内定义的每一个页面控件的列表中有一个条目。在外观对象列表中标识的第一外观对象被当做当在控制策略画布上最初呈现控制对象时使用的“优选”(或默认)外观对象。 \n[0099] XmlDefaultAppearance属性354存储在默认外观对象中出 现的属性的列表。\nXmlDefaultAppearance属性354包含使用XML以下列形式指定的数据: \n[0100]
\n[0101] \n[0102] [0103] \n[0104] etc... \n[0105] \n[0106] \n[0107] [0108] [0109] etc... \n[0110] \n[0111] \n[0112] \n[0113] \n[0114] 为增 强 性 能,XMLDescription属 性356指 定 控制 对 象 属性 的 列 表。\nXMLDescription属性356包括逗号分离值的系列,每一个值都包含下列各项: [0115] ■控制属性名称(例如,“ACHNG”),后面是磅符号(′#′) \n[0116] ■包含序列的字符串: \n[0117] ●数据类型 \n[0118] ′C′=character \n[0119] ′I′=Integer \n[0120] ′R′=Real \n[0121] ′B′=Bool \n[0122] ′D′=Long Real \n[0123] ′L′=Long Int \n[0124] ′i′=Integer\n[0125] ′P′=Packed Bool \n[0126] ′A′=Packed Long \n[0127] ●连接类型 \n[0128] ′N′=None \n[0129] ′F′=Source \n[0130] ′T′=Source and Sink \n[0131] ′D′=Data address source and sink \n[0132] ●可配置的 \n[0133] ′Y′=Yes \n[0134] ′N′=No \n[0135] ●可设置的 \n[0136] ′Y′=Yes \n[0137] ′N′=No \n[0138] ●数据存储 \n[0139] ′Y′=Yes \n[0140] ′N′=No \n[0141] 最后,可以与外观对象关联的每一个控制对象包括作为每一个块或策略对象模板的一部分提供的图形(例如,VISIO)型版(stencil)358。当首次打开对象时,型版被复制到所需的位置。外观对象编辑器不对格式进行修改。 \n[0142] 现在,参考图4描述由策略编辑器202和策略对象204支持的以执行上文所描述的策略编辑器202的功能的组件接口。CreateUniqueBlockName函数400在策略对象204内创建唯一块对象名称。输入包括将从其中创建新的块的块模板的名称。此后,使用块模板类型作为新名称的根据,在策略对象204内创建唯一块名称。例如,对于AIN块名称,新的块名称的根是AIN。实际名称是,例如,AIN_001,即,系统维护当前AIN块对象名称的列表,并附加适当的数值扩展。新的块名称(例如,AIN_001)被返回到调用者。\n[0143] CreateBlock函数402创建新的块对象实例。输入包括待创建的块的名称和从其中创建块对象实例的块模板。CreateBlock函数402输出是给定名称和类型的新的块对象。 [0144] RemoveBlock函数404从策略对象204删除标识的块对象。输入包括待删除的块对象的包含的名称和指示在策略对象204中的其他剩余的块中需要更新的执行顺序。 [0145] RenameBlock函数406分配块对象的新的标记名称或包含的名称。输入包括旧的块对象名称、新名称,以及要更改的名称是标记名称还是包含的名称。 [0146] 在说明性实施例中,使用声明来指定控制策略对象的输入或输出,并因而向其他控制策略输入/输出提供连接点。CreateUniqueDeclarationName函数408在策略对象\n204内创建唯一声明名称。CreateDeclaration函数410创建声明实例。输入包括声明名称和类型(输入或输出)。CreateDeclaration函数410返回所指出的类型的声明对象。\nRemoveDeclaration函数414从控制策略204删除命名的声明。RenameDeclaration函数\n416向声明分配新名称。输入包括旧的和新的声明名称。 \n[0147] 在说明 性实 施例中,子策略 对象包 括连 接的控 制对象 的集 合。\nCreateUniqueStrategyName函数418在策略对象204容器内创建唯一子策略名称。\nCreateChildStrategy函数420创建新的子策略对象。输入包括待创建的新的子策略对象的名称,以及指示是否应该创建包含的对象的标记。CreateChildStrategy函数420返回子策略对象。RemoveChildStrategy函数422从控制策略对象204删除命名的子策略。\nRenameChildStrategy函数424向子策略对象分配新的标记名称或包含的名称。输入包括旧的和新的名称,以及更改的名称是否是包含的名称或标记名称。如果包含的名称已更改,那么,更新所有同辈策略对象输入声明引用,以包括分配给子策略对象的新名称。 [0148] 一组函数进行现场总线模块通道与对应的控制块对象之间的 I/O分配。\nAddBlockIOAssignment函数426在现场总线模块通道和控制块对象之间添加I/O分配。输入包括I/O块对象的名称与现场总线模块通道。RemoveBlockIOAssignments函数428删除现场总线模块与控制块对象之间的所有I/O分配。输入包括控制块对象的包含的名称。 [0149] Compile函数430对策略对象中包含的所有序列和可编程逻辑块进行整体编译。\n当控制策略的父模板发生变化时,UpdatedFromParent函数432自动地更新控制策略。在操作过程中,控制策略中的下列各项被更新:添加的/重命名的/删除的块对象、添加的/重命名的/删除的声明、添加的子策略、更新的执行顺序。DetachFromParent函数434将控制策略对象(例如,策略对象204)与其父模板分离。通过将控制策略对象与其父模板分离,可以防止在父模板中进行的进一步的更改传播到导出的控制策略。 \n[0150] 由策略对象204支持的一组接口函数允许访问与声明关联的属性。Name属性436检索或设置声明名称。GUID属性438检索或设置声明GUID。Reference 440检索或设置声明的引用字符串。Type属性442检索或设置声明的类型(输入/输出)。Locked属性444检索或设置声明的锁定状态(例如,未锁定,本地锁定(lock in me),锁定在父模板中(locked in parent))。UpdatedFromParent函数446从定义声明对象更新声明。DetachFromParent函数448将声明与其定义声明模板分离。 \n[0151] 外观对 象界 面允许 访问 与策略 对象204关 联的 外观对 象属 性。\nDefaultlnputAttributes属 性450在 策略 对 象204上 检 索或 设 置输 入 声 明。\nDefaultOutputAttributes属性452为策略对象204检索或设置输出声明。AllAttributes属性454提供策略对象204上的所有声明。如上所述,单一控制块或策略对象可以具有多个潜在的外观对象。AppearanceObject属性456从一组潜在可用的外观对象中检索或设置将与策略关联的外观对象。 \n[0152] 外观对象编辑器206\n[0153] 已经描述了策略编辑器202的功能,现在描述外观对象编辑器206和外观对象\n208。外观对象编辑器206是,例如,通过还托管(host)策略编辑器202的一般化控制程序配置应用程序启动的组件对象控件。例如,通过每一个控制块或策略对象模板的策略编辑器202图形用户界面上的选项卡控件,访问外观对象编辑器206。 \n[0154] 当被激活时,外观对象编辑器206首先加载到被指定为当前选定的外观对象需求的任何图形型版中。型版位于导入到配置环境中的块或策略文件中。当打开从其中一个图形型版文件导出出来的模板时,文件被自动地复制到控制程序配置应用程序运行的本地平台上的适当的目录中。 \n[0155] 如果正在第一次编辑控制块或子策略对象的外观对象,则外观对象编辑器206加载该块或策略对象模板的默认外观对象。一旦加载了默认外观对象,外观对象编辑器206就允许编辑外观对象。 \n[0156] 如下面进一步详细说明的,外观对象编辑器206允许用户执行下列操作: [0157] ·通过调整大小和/或放置或移动默认外观对象上显示的属性,修改控制对象的默认外观对象,以更改哪些属性被显示,以及属性出现在哪里。 \n[0158] ·使用标准的预先定义的功能,创建新的外观对象。这些类型的外观对象以非常可预测的方式与用户进行交互,当在配置过程中添加或删除属性时自动地适当地调整大小。 [0159] ·以自由方式使用非标准功能,创建新的外观对象。这些类型的外观对象常常用于表示特定行业的控制程序开发/配置应用程序中的控制对象(例如,电力工业中的SAMA符号等)。 \n[0160] ·为同一个控制块或策略对象模板创建多个外观对象。为用户定义的每一个外观对象,创建单独的图形页面控件。用户命名页面控件(有效地命名外观对象)并根据需要对同一控制对象的外观对象进行排序。 \n[0161] 在使用外观对象编辑器206的编辑会话过程中,用户定义优选 的外观对象,此后在下一次在块或策略模板上调用外观对象编辑器时,它将是第一显示选项。当选择优选的外观对象所关联的块或策略模板以通过策略编辑器202创建对应的控制块或策略对象时,优选的外观对象还是用于生成关联的控制对象的图形表示的外观对象。 [0162] 按如下方式确定“优选”外观对象:首先,出现在特定选定块或策略对象/模板的外观对象编辑器的第一页面控件中的外观对象;其次,当前由用户进行编辑的外观对象,无论它是修改的预先定义的或完全自定义的外观对象;以及第三,默认Foxboro外观对象。 [0163] 已经描述了外观对象编辑器206的一般功能,现在将参考图5,描述由外观对象编辑器206和外观对象208支持的以执行上文所描述的外观对象编辑器206的功能的组件接口。由外观对象编辑器206支持一组管理功能。在说明性实施例中,这些功能由托管外观对象编辑器206的选项卡页面控件进行支持。初始化方法500接收作为输入的正在调用初始化的方法的对象的标识。初始化方法500利用适当的设置初始化外观对象编辑器206,而后调用LoadDefaultStencils方法502。 \n[0164] LoadDefaultStencils方法502打开外观对象编辑器206的默认的型版组。具体来说,LoadDefaultStencils方法502创建型版管理员的实例,然后,利用该实例以检索标题为“Support”的隐藏的型版。 \n[0165] BuildDefaultAO方法504构建标识的控制对象(块或策略)模板的默认外观对象。BuildDefaultAO方法504的输入包括指示是否要保存外观对象的宽度以及是否支持图形元素上的放大的指示符。BuildDefaultAO方法504的输出是在编辑器206的显示上的指定区域(例如,当前编辑器页面)的中心用图形方式表示的新的外观对象实例。 [0166] CenterAO方法506被调用,以将外观对象放在当前指定区域(编辑器页面)的中心位置。除使外观对象的显示元素居中心位置之外,CenterAO方法506还返回外观对象的已更新的中心坐标。\n[0167] AddParameters方法508将参数添加到控制对象的默认外观对象中。输入包括外观对象。AddParameters方法508调用GetDefaultlOParameters方法510,并插入返回的参数。AddParameters方法508返回带有更新的输入、输出以及信息参数的默认外观对象。 [0168] GetDefaultlOParameters 方 法 510 提 取 标 识 的 控 制 对 象 ( 例 如,XMLDefaultAppearance属性354的内容)的输入、输出和信息参数的所有属性名称,并以分离并排序的列表的形式将它们返回到调用者。第一列表包括所有输入/输出参数的名称。\n第二列表包括控制对象的信息参数。 \n[0169] CalculateAOReadOnlyStatus方 法512 判 断 外 观 对 象 是 否 是 只 读 的。\nCalculateAOReadOnlyStatus方法512通过首先判断外观对象的父是否处于只读模式,然后,判断AppearanceObject属性350是否被锁定,来判断外观对象是否是只读的,最后,进行检查以查看,是否正在显示默认外观对象。 \n[0170] 与外观对象编辑器206关联的下一组函数存在于托管外观对象编辑器206的控件上。Initialize函数520负责包含外观对象编辑器206的控件。输入包括外观对象编辑器\n206的父的形式。Initialize函数520建立到管理器类的指针(对所有编辑器可用的静态类),初始化控件,以接收/预订有关外观对象编辑器206的事件。 \n[0171] DataChange方法522处理外观对象的数据更改事件。输入包括被更改的项的标识和该项的新的值。DataChange方法522从适当的属性访问外观对象,并基于更改的数据更新外观对象编辑器内的页面。所产生的新的外观对象存储在临时图形(例如,VISIO)文件中。 \n[0172] Apply方法524存储外观对象。具体来说,Apply方法524调用关联的控制对象上的序列化方法,以便将外观对象存储在永久性存储器中。 \n[0173] Close方法526通过删除包含以前打开的外观对象的文件并取消订阅以前在Initialize方法520过程中预订的所有事件,以有序的 方式关闭控制。 [0174] 下一组函数涉及外观对象编辑器206的操作,以有助于用户编辑加载的外观对象。UpdateEditorUI方法530基于各种事件/条件,更新外观对象编辑器206上的用户界面。UpdateEditorUI方法530基于诸如只读模式或用户编辑外观对象之类的条件,更新用户界面上的所有按钮的启用/禁用状态。 \n[0175] UpdateUpdateAOBtnStatus 方 法 532 启 用 或 禁 用 更 新 按 钮。\nUpdateUpdateAOBtnStatus方法532判断对象是否已经由用户添加到外观对象,作为响应,启用适当的更新按钮。 \n[0176] UpdateFinishFrameBtnStatus方法534基于是否有任何对象添加到外观对象中,启用/禁用外观对象编辑器206的用户界面上的Finish Frame按钮。 \n[0177] 当选择Default按钮时,调用btnResetAO_Click方法536。输入包括事件变量和事件的源。当用户编辑了外观对象并决定重建默认外观对象时,调用btnResetAO_Click方法536。当进行选择时,此方法调用BuildDefaultAO方法504。 \n[0178] 当选择Edit按钮时,调用btnEditAO_Click方法538。输入包括事件变量和事件的源。当用户选择Edit按钮时,调用btnEditAO_Click方法538,以便编辑现有的外观对象。btnEditAO_Click方法538决定外观对象的状态(例如,只读,等等),并将其准备用于编辑。 \n[0179] 当选择Create Frame按钮时,调用btnBuild_Click方法540。输入包括事件变量和事件的源。当用户选择Create Frame按钮时,调用btnBuild_Click方法540,以使用定义的功能构建新的外观对象。在设置适当的状态之后,该方法打开编辑器中的PortAreas型版,并擦除画布的内容。在说明性实施例中,外观对象编辑器206支持从多个源创建新的外观对象。 \n[0180] 当选择Finish Frame按钮时,调用btnFinish_Click方法542。输入包括事件变量和事件的源。当用户选择Finish Frame按钮 时,调用btnFinish_Click方法542,以便完成构建新的外观对象。该方法负责将所有功能重新校准到单一内聚的外观对象显示元素中。 \n[0181] 由外观对象编辑器206支持的又一组接口函数涉及页面维护。当用户从外观对象编辑器206内的页面控件中选择Add时,调用OnAddNewPage方法550。作为响应,OnAddNewPage方法550调用图形编辑器上的方法(例如,VISIO Document.Pages.Add方法),以向页面控件添加新页面。 \n[0182] 当用户从外观对象编辑器206内的页面控件中选择Delete时,调用OnDeletePage方法552。OnDeletePage方法552调用图形编辑器上的方法从外观对象编辑器内的页面控件删除页面。 \n[0183] 本发明涉及用于配置环境中的控制对象的用图形方式可显示的面板。现在请参看图6,描述了控制块模板的示范性默认外观对象图形表示。默认外观对象模板的说明性实施例包括标题区域600。标题区域600,例如,包括:控制块对象名称(例如,MY_AIN)、对象模板类型(例如,AIN),以及执行顺序值。图6中的示例是针对对象模板的,因此,在对象名称和对象类型的前面包括“$”字符。当创建控制对象的实际实例时,对象模板名称/类型被替换为对象名称/类型(即,删除“$”)。此外,还指定了执行顺序(下面描述),标题区域\n600内的执行顺序显示区601中的#占位符被替换为表示控制块对象相对于策略中的其他控制对象的执行相对顺序的实际编号。 \n[0184] 默认外观对象图形显示中的信息区域602标识一组属性和它们的当前值。尽管未显示,值将显示在标识的属性(例如,IOM_ID,PNT_NO)的右边。 \n[0185] 说明性外观对象显示还包括通常分配给输入I/O属性的左端口区域604和通常分配给输出I/O属性的右端口区域606。端口区域604和606是为可连接的属性预留的。在说明性实施例中,在任何方向(例如,左、右、顶部,底部)支持端口区域的旋转,以便于将I/O属性连接到控制策略内的另一个I/O属性或变量。为每一个I/O属性提供I/O连接点(用x标记)。\n[0186] 在说明性实施例中,如此布置默认外观对象图形面板,以便端口区域604和606彼此并排放置并在信息区域602的上方。然而,控制块外观对象的示范性显示的各种组件的相对位置,以及显示的组件中提供的信息类型,随着备选实施例的不同而不同。例如,在备选实施例中,信息区域602被置于左端口区域604和右端口区域606之间。此外,还允许用户将对象的名称和执行顺序放置在控制块对象的图形外观对象显示内的任何地方。除左端口区域604和右端口区域606之外,如果需要,用户还能够对将顶部端口区域和底部端口区域应用于外观对象。 \n[0187] 此外,如下面进一步说明的,用户可以通过将输入属性移动到外观对象的图形显示内的另一个区域(例如,从左端口区域到右端口区域),来自定义默认外观。在被移动的属性的目的区域不匹配属性的原始规定尺寸的情况下,自动地调整属性显示元素或者目的区域的形状。旋转属性显示元素的方向,以匹配外观对象的目的区域内的属性的方向。此外,还可以修改重新定位的属性显示元素中的任何连接点,以确保连接点驻留在外观对象的外边缘上。 \n[0188] 本发明的示范性实施例支持完全自定义的外观对象。这样的自定义外观对象可用于创建一组控制块/策略对象模板的一组特定行业/应用面板。通过使用外观对象编辑器\n206,用户使用图形、位图、图片等,创建完全自定义的外观对象。在图7中提供了这种自定义外观对象的示例。图7中所描述的示例定义了在发电行业内使用的科学仪器制造者协会(SAMA)符号。I/O属性和信息数据值在字符方面与图6中所描述的默认外观对象中提供的那些有很大的改变。然而,那些开发用于发电行业的控制程序的人员能够轻松地理解图7中的符号。除充分支持位图、图片及其他图形元素之外,外观对象编辑器206还支持用户将上文参考图6所描述的预先定义的功能(例如,端口区域)放置在图7中所描述的自定义外观对象类型内。编辑器包括诸如指定字体大小和外观之类的各种标准图形编辑器功能。\n可以调整外观对象的大小。可以水平地调整诸如左端口区域604、右端口 区域606和标题区域600之类的标准构造块构建的外观对象的大小,以允许在要么被隐藏或部分地截断的属性中显示信息。可以在任何方向调整诸如图7中的符号之类的自定义外观对象的大小。 [0189] 在作为示例在图8a和8b中所描述的子策略的默认外观对象与控制块的外观对象相似。然而输入/输出变量只是被声明为策略的I/O变量(例如,Initialize、Primary、Secondary、以及Output)的被包含的控制对象(所描述的图8a)的I/O属性。 [0190] 现在请参看图9,描述了外观对象编辑器206的示范性用户界面。在说明性示例中,通过选择由实现本发明的控制程序功能所提供的外观对象选项卡900,调用外观对象编辑器206。或者,通过选择控制对象模板区域902中提供的显示的模板组中的显示的控制对象模板的上下文菜单上的打开的外观对象选项,来调用外观对象编辑器206。外观对象编辑器不可用于从策略编辑器202的图形用户界面的画布区域内修改控制对象的实例。特定示例包括具有SAMA描述的显示的自定义外观对象。 \n[0191] 在说明性示例中,当在控制对象模板上第一次调用外观对象编辑器时,以只读方式显示该模板的默认外观对象(参见,例如,图6)。控制块的默认外观对象包括被设计为满足大多数应用程序的大部分配置需求的预先确定的属性组。示范性外观对象包括一组用于访问由外观对象编辑器206支持的功能的按钮。用户选择Foxboro外观对象编辑器控制区域904中的Edit按钮,以对块或策略模板的默认外观对象进行修改。 \n[0192] 在选择Edit按钮以进入有关默认外观对象的编辑模式之后,用户能够对外观对象的显示的图形表示执行任何各种显示元素操纵。这种操纵包括通过抓取并拖动外观对象图形元素的一侧上的调整大小手柄来调整大小。此外,在编辑模式下,用户通过抓取并拖动旋转工具手柄,旋转外观对象的完整的图形表示。两个这样的图形处理工具都由VISIO图形显示编辑器进行支持。 \n[0193] 外观对象编辑器支持对外观对象的图形显示内的属性的位置进 行各种操纵。在编辑模式下,用户选择各个属性并通过将选定的属性拖放到同一个端口区域内的新的位置,以在同一端口区域内将它们上移或下移。 \n[0194] 此外,用户还能够在外观对象的图形显示区域内将属性从第一区区(例如,左端口)移动到第二区域(例如,右端口)。具体来说,用户通过在外观对象中选择一个特定属性并将其从在外观对象中的一个区域拖动到另一个区域来移动这种属性。唯一的限制是,非可连接的属性不能移到端口区域(外观对象内的为那些能够彼此连接的属性预留的矩形区域)。 \n[0195] 请参看图9a,一组步骤概述了用于当属性元素放置到外观对象内的新区域中时自动地调整移动的属性元素的外观特征的示范性步骤组。在步骤950中,用户将属性元素放置到外观对象的新区域内。此后,在步骤960中,外观对象编辑器确定放置区的外观特征(例如,方向、属性连接点的外边缘、放置区的维度)。此后,在步骤970中,外观对象编辑器基于与目标目的区域关联的外观特征,调整被放置的属性元素的外观特征。外观对象编辑器还确定属性的类型,并防止不兼容的属性被添加到外观对象内的特定区域。 [0196] 最后,在某些情况下,属性的显示元素的空间要求(例如,长属性名称)防止属性的显示元素收缩。为适应此情况,如有必要,外观对象编辑器还调整源和目标区域,缩小属性元件被从其中拖动的区域的大小,和/或放大属性元件被拖到其中的区域,以使属性显示元素适于外观对象内的新区域。 \n[0197] 用户通过将属性拖离定义外观对象的物理边界来删除外观对象的图形显示内显示的属性。生成确认对话框,以验证用户的确打算删除属性显示元素,而不只是将属性显示元素移动到外观对象内的另一个区域。 \n[0198] 用户通过在外观对象的图形显示区域的显示区内右键点击,并选择此后由外观对象编辑器生成的上下文菜单内的Add Parameter选项,向外观对象添加属性。作为响应,生成一个对话框,该对话框包 含能够放置在外观对象上的关联的控制对象的属性的过滤的列表。用户为要显示在对话框内的属性类型指定Inputs、Outputs、Configurable,Settable和Data Store过滤器,或这些过滤器的任何组合。在对话框内列举了满足指定的过滤器的属性用于选择属性。只有还没有显示在外观对象内的属性才出现在列举的列表内,不管过滤器设置如何。当一个可连接属性被置于端口区域时,一个指示符(例如,表示连接点的黄色菱形)显示在属性的显示元素的一侧。当在外观对象编辑器206上选择了外观对象时,显示出属性的连接点。 \n[0199] 在本发明的实施例中,用户通过从源(输出)属性中选择连接点,此后将GUI指针拖动到计划的接收(输入)属性中,来在两个块之间,或块和策略之间建立连接。被置于非端口区域中的可连接属性不应该带有黄色菱形,而是只作为信息性属性出现。 [0200] Foxboro外观对象编辑器控制区域904还包括Default控制按钮。当被用户选择时,Default控件将外观对象还原回默认外观状态--甚至在外观对象被保存之后。 [0201] 外观对象编辑器206使用户能通过选择Foxboro外观对象编辑器控制区域904内的Create Frame按钮,创建包括标准Foxboro组件的外观对象。通过选择Create Frame,调用Port Areas(例如,左端口604和右端口606)型版,其中包含用户可以拖放到外观对象编辑器画布上的元素,用于创建新的默认外观对象。通过选择Title Area图形显示元素,可使用户创建包含对象的名称、类型和执行顺序编号的区域。通过选择Information Area显示元素,使用户能创建一个区域,该区域显示放置它内部的任何属性的名称和默认值(通过冒号分隔)。通过选择Left Port元素,可使用户创建一个区域,其中,放置在其内部的可连接的属性将与该区域的左边对齐。通过选择Right Port元素,可使用户创建一个区域,其中,放置在其内部的可连接的属性将与该区域的右边对齐。通过选择TopPort元素,可使用户创建一个区域,其中,放置在其内部的可连接的属性将与该区域的顶部边缘对齐。通过选择Bottom Port元素,可 使用户创建一个区域,其中,放置在其内部的可连接的属性将与该区域的底部边缘对齐。通过选择Left-Right元素,可使用户创建两个连接在一起的区域-左右端口区域。通过选择Left-Info-Right Port元素,可使用户创建三个连接在一起的区域-左、info和右端口区域。 \n[0202] 一旦所有元素都已经被放置到外观对象编辑器中,用户选择Foxboro外观对象编辑器控制区域904内的Finish Frame编辑器控制按钮,以结束编辑,并以预先定义的控制方式将元素重新校准到可以使用的外观对象内。一旦外观对象已经被初始化,如前一部分所描述的,用户可以添加、移动或删除属性。 \n[0203] 此外,外观对象编辑器206还包括自定义外观对象编辑器控制区域906,其允许用户通过选择自定义外观对象编辑器控制区域906中的Create Frame按钮选项,创建包括以自由形式(即,自定义外观对象)布置的图像和属性的完全自定义的外观对象。通过选择Create Frame按钮,调用Port Areas Visio型版,其中包含用户可以拖/放到外观对象编辑器画布上的元素,用于创建新的自定义外观对象,包括Name和Execution Order元素。一旦选择了CreateFrame按钮,用户就能够将任何图形对象(例如,位图)置于工作区域中。\n例如,如图9的画布区域中所描述的,用户将表示PID SAMA符号的位图放置到工作区中。作为示例,通过使用Insert Image工具条按扭,或通过执行从诸如VISIO之类的另一个图形图像的源的复制/粘贴,将位图放入外观对象编辑器中。一旦所有图形元素都被放入工作区域中,用户选择Finish Frame以结束编辑,并准备外观对象,以便将对象属性放置在外观对象内。 \n[0204] 外观对象编辑器206支持向自定义外观对象中添加属性。在说明性实施例中,用户右键点击外观对象,并选择Add Parameter上下文菜单选项,以调用Select Parameters对话框。与上文所描述的Foxboro外观对象相同,用户通过选择参数过滤器来确定哪些属性显示在Select Parameters对话框中,然后,将属性从对话框中拖/放到 自定义外观对象。添加的属性可以置于自定义外观对象上的任何地方。置于自定义外观对象上的属性是不可选择的。因此,当最初从Select Parameter对话框中进行放置时,必须小心将它们放在正确的位置。如果添加的属性是可连接的属性,那么,外观对象编辑器206将表示属性的连接点的标记(例如,黄色菱形)放置在外观对象上放置属性的位置。外观对象编辑器自动地确定当与自定义外观对象上的属性进行连接时连接线条应该路由的方向(例如,如果属性在外观对象的顶部附近,那么,连接线条将通过外观的顶部路由等)。 [0205] 一旦所有属性都已经被放置在自定义外观对象上,用户就在外观对象编辑器上调用保存操作以保存处理结果,并将新的外观对象存储在配置数据库210内。 [0206] 置于自定义外观对象上的属性是不可选择的。因此,用户必须右键点击特定外观对象,并选择“Delete Parameter”来删除属性。出现对话框,显示出当前位于外观对象上的属性列表。要删除属性,用户选择对话框内的所需的属性,然后确认选择。当属性被从自定义外观对象中删除时,外观对象编辑器206从外观对象的图形显示中删除任何对应的符号。 \n[0207] 在示范性实施例中,在自定义外观对象中,属性的名称通常对用户不可见。因此,要在自定义外观对象上显示属性名称,用户右键点击自定义外观对象,并从自定义外观对象的外观对象编辑器206呈现的上下文菜单中选择Show Parameter Names。当选择之后,ShowParameter Names使信息符号出现在外观对象上的每一个属性的旁边。当光标被置于其中一个这些信息符号上方时,出现一个工具提示,显示与符号关联的属性名称。要从自定义外观对象中删除信息符号,用户右键点击外观对象,并从上下文菜单中选择Hide ParameterNames。 \n[0208] 外观对象编辑器206支持向已经存在的外观对象中添加图形。用户将额外的图形元素置于已经存在的外观对象中,并在更新外观对象之后,新的图形元素完全被集成到现有的外观对象的图形显示中, 并被当做外观对象编辑器内的单一图形对象。要向标准的Foxboro默认外观对象添加图形元素,用户通过选择Foxboro外观对象编辑器控制区域904内的Edit按钮进入编辑模式,添加所需的图形元素,然后选择Foxboro外观对象编辑器控制区域904内的Update。类似地,要向用户定义的Foxboro外观对象或自定义外观对象添加图形元件,用户添加所需的图形元素,然后选择适当的外观对象编辑器控制区域904或\n906内Update按钮。 \n[0209] 外观对象编辑器206也支持重命名外观对象。用户通过右键点击外观对象编辑器\n206的用户界面内的所需的外观对象页面控件(例如,SAMA_1选项卡908),以启动上下文菜单,来重命名外观对象。此后,用户选择Rename Appearance Object菜单选项。此后,用户输入外观对象的新名称。 \n[0210] 如上文所提及的,图形控制程序编辑器工具支持同一控制对象模板的多个外观对象。在示范性实施例中,用户通过在任何外观对象的页面控件内右键点击以显示出上下文菜单,来创建配置数据库210内的同一控制对象(例如,控制块、控制策略)模板的多个外观对象。此后,用户选择Add Appearance Object菜单选项。作为响应,外观对象编辑器206利用正在编辑的控制块或策略对象模板的默认外观对象创建初始化的新页面(例如,由选项卡910代表的SAMA_2外观对象页面)。在外观对象被添加到控制对象模板之后,每次在控制对象上调用外观对象编辑器时,通过页面控件选项卡(例如,选项卡908和910),显示出每一个关联的外观对象。对用户能够通过对应于控制对象模板的多个外观对象的额外的页面创建的外观对象的类型没有限制。任何添加的页面都可以包含带有被重新排列的属性的默认外观对象,用户定义的Foxboro外观对象,或诸如SAMA符号之类的完全自定义的对象。 \n[0211] 外观对象编辑器206支持从控制对象模板删除外观对象。作为示例,用户通过右键点击所需的页面控件选项卡(例如,SAMA_2选项卡910)以显示出用户从其选择Delete Appearance Object菜单选 项的上下文菜单,来删除外观对象。 \n[0212] 为从控制对象模板区域902中选择的并被放置到画布区域912中的控制块或策略对象模板显示的初始外观对象是占据了第一外观对象页面控件(例如,SAMA_1选项卡908)的外观对象。用户通过选择所需的页面控件选项卡并将其拖动到画布区域912下面的页面控件选项卡组内的所需的相对位置,对对应于选定的控制对象模板的多个外观对象的页面控件进行重新排序。 \n[0213] 在示范性实施例中,用户能够从策略编辑器202内动态地选择任何一组控制对象的以前创建的外观对象。参考图10,用户通过右键点击画布区域1002中显示的控制对象的当前优选的外观对象的图形表示1000,以显示出选定的控制对象的上下文菜单,来选择控制对象的优选外观对象。此后,用户选择Appearance Object菜单选项,以调用外观对象对话框,其中包含已经为块或策略对象定义的每一个外观对象的一个页面控制选项卡。作为示例,用户通过选择对应于所需的外观对象的页面控件(由选项卡代表),并确认选择,来更改在策略编辑器202的用户界面的画布区域内显示的优选外观对象。 \n[0214] 作为对新指定的外观对象的响应,策略编辑器202执行一组自动的任务,以更新受影响的数据结构和图形用户界面。具体来说,策略编辑器更新选定的控制对象的数据结构,以反映新的优选外观对象。新的外观对象的图形表示替换以前的图形表示。此外,还根据新的外观对象的配置调整连接。除处理新的外观对象上的新的连接位置之外,从策略编辑器202的图形用户界面的画布区域中删除被路由到已经被替换的外观对象上的属性的在新的外观对象上不再可见的连接线条。 \n[0215] 已经描述了由示范性外观对象编辑器206支持的用户操作,下面将通过参考图10中所描述的示范性图形用户界面,描述策略编辑器202的功能。一般而言,策略编辑器202实现为集成的控制程序开发应用程序/环境的控制程序内的组件。当激活时,策略编辑器\n202 首先加载已经被指定为过程所需的图形(例如,VISIO)型版。型版被控制对象模板引用。当打开控制对象模板时,任何引用的型版都被复制到策略编辑器202的应用程序环境中。策略编辑器202此后提取可能以前已经存储在控制对象上的任何现有的相关数据,并在策略编辑器202的图形用户界面的画布区域上,利用检索到的型版显示信息。 [0216] 在说明性实施例中,控制程序内的每一个控制块对象都是创建的控制对象类的实例,以模型化特定类型的控制块。控制块对象的所有实例都被序列化(存储在永久性存储器中)为策略对象内的单一属性。由于通过从模板工具箱200中选择它们并在当前控制程序画布图形界面内指定选定对象的图形表示的位置,创建控制对象,因此,在诸如策略对象\n204之类的控制程序容器对象上创建适当的对象类的控制对象实例。 \n[0217] 在示范性实施例中,给控制块对象分配两个名称。“包含的名称”是在其控制策略内控制块对象被引用时所采用的名称。“标记名称”是在分布式进程控制运行时环境内控制块对象所采用的名称。策略编辑器202支持用户为控制对象分配包含的名称和标记名称两者。 \n[0218] 控制程序被部署到用于在运行时环境中执行的特定控制处理器中。进行这种指定的一种方式是将控制程序或其一部分分配到复合语句中。此后,复合语句在特定控制处理器上(或其他适当的控制程序执行硬件)执行。控制程序可以被直接分配到复合语句。在示范性实施例中,将复合语句指定为容器/执行主机的控制程序被称为“顶级”策略对象。\n类似于控制块对象,顶级策略对象具有两个名称:包含的名称,或在其复合语句内顶级策略对象所采用的名称,以及其标记名称,在其复合语句的外面策略所采用的名称(例如,用于指定由另一个对象所提供的I/O信息的源或目的地或者指定提供到另一个对象的I/O信息的源或目的地)。用户可以重命名顶级策略的包含的名称或者标记名称。 [0219] 通过从由策略编辑器202支持的图形用户界面的模板工具箱区 域显示的模板工具箱200中选择子策略模板,而后将选定的子策略对象的图形表示放置在图形用户界面上的画布区域内,可以将子策略嵌入在另一个策略(顶级策略或者另一个子策略)内。子策略对象也具有两个名称:包含的名称或在其容器内策略对象所采用的名称,以及标记名称。\n用户可以重命名子策略对象的包含的名称或者标记名称。 \n[0220] 策略编辑器202自动地将控制程序数据库与对策略编辑器202的画布区域内用图形方式描述的控制程序(或其一部分)作出的更改同步。因而,如果用户删除画布上的控制块表示,从对应于画布的内容的数据结构中去除对应的控制块对象实例和任何关联的连接。如果用户从画布中删除子策略,则它会从画布数据结构和配置数据库210中删除。在此情况下,子策略不会从配置数据库210中删除,直到父策略被签入。直到那时,用户仍可以执行“Undo Check Out”,否定他们在策略编辑器202所完成的任何工作。 [0221] 下面将参考各种支持的策略创建和配置功能,描述策略编辑器202的操作。用户通过右键点击任何策略模板以呈现上下文菜单,而后选择New->Derived Template菜单选项,创建策略模板。当创建时,新的策略模板出现在:Template Toolbox区域1004和在树形结构内,描述了在适当的基本模板下,模板之间的导出关系 \n[0222] 用户通过右键点击任何策略模板,调用上下文菜单,而后选择New->Instance菜单选项,来创建策略实例。通过右键点击对象实例或模板,并选择Delete菜单选项,来从Template Toolbox 200中删除策略实例或模板。 \n[0223] 继续参考图10,下面描述由策略编辑器202支持的一组策略操纵/编辑功能。通过选择/打开策略对象(例如,策略对象204),调用策略编辑器202。 \n[0224] 用户通过将所需的块或策略模板置于控制对象模板区域1004内,选择模板,然后将模板放置在画布区域1002上的所希望的位置,将控制对象添加到策略中。在图10中的说明性实施例中,通过选择 $PIDA控制块模板,然后将所产生的控制块对象放置在画布1002上,创建两个PID块。当用户将选定的控制模板(控制块或策略)放置到画布区域1002时,策略编辑器202基于源块或策略模板的当前优选的外观对象显示图形表示。 [0225] 一旦被置于策略编辑器202的画布区域1002内,可以使用外观对象编辑器206对与放置的对象关联的外观对象进行完全的访问,以便进行编辑。对上文所描述的这种功能进行如下概述: \n[0226] ·用户可以添加和删除外观对象上显示的属性 \n[0227] ·用户可以更改外观对象上显示的属性的位置 \n[0228] ·用户可以选择优选外观对象(对于定义了多个外观对象的那些对象) [0229] 控制策略声明/连接\n[0230] 在示范性实施例中,通过这里简称为“声明”的全局识别的变量,有助于不同的策略内的控制块对象的输入和输出参数之间的连接。声明是创建的类的实例,以模型化与声明关联的信息。当声明创建时,创建类的实例,并序列化为策略对象上的属性。 [0231] 在策略编辑器202的图形用户界面的Input Declarations区域1010和Output Declarations区域1012中标识声明。在画布区域1002上,通过连接到对应的控制对象I/O属性的标记来表示声明(例如,主、辅助、初始化,输出)。用户为策略创建输入/输出声明,以支持块和嵌套的策略之间,以及不同的策略中的块的块间连接。 [0232] 在示范性实施例中,随着声明被添加到策略中,外观对象编辑器(在后台运行)自动地更新该策略的对应的外观对象。作为示例,在控制策略的外观对象的左边添加新的输入声明,在右边添加新的输出声明。不使用策略的外观对象,除非将策略放置到包含策略中。然而,如果策略被放置到另一个策略画布中,那么,“子”策略的当前优选的外观对象在包含策略的画布区域中用图形方式表示子策略(包括I/O声明)。 \n[0233] 请参看图10a,一组步骤概述了在策略画布内创建声明。在步骤 1050中,用户在声明区域1010和1012中的其中一个的名称列下创建声明名称。策略编辑器支持通过选择Input Declarations区域1010中的“+”按钮,以及随后在Input Declarations区域1010中的下一个可用条目的名称字段下键入输入声明名称,将新的声明添加到控制策略内的控制对象中。用户通过选择所考虑的声明,并选择Input Declarations区域1010中的“x”按钮,来删除输入声明。类似地,用户通过选择Output Declarations区域1012中的“+”按钮,此后键入输出声明名称,来添加新的声明。用户通过选择所考虑的输出声明,并选择Output Declarations区域1012中的“x”按钮,来删除输出声明。 \n[0234] 此后,用户通过一组GUI操作,将新的声明连接到画布区域1002中显示的控制对象上的I/O属性。在步骤1060中,用户选择声明区域1010或1012中的带名称的声明,并将该声明拖到画布区域1002中。作为响应,策略编辑器基于带名称的声明的类型,自动地生成输入或输出标记。由策略编辑器202在画布区域1002中的放置位置呈现图形标记(例如,Primary标记)。 \n[0235] 此后,在步骤1070中,用户使用基于GUI的指示器选择操作(例如,点击选定一个源,将指示器移动到接收器,并点击完成连接),在块或子策略外观对象上的图形标记声明和用图形方式描述的I/O属性之间创建连接。呈现出图形连接,以指示声明/属性连接。策略编辑器202更新对应于用图形方式描述的声明到属性的连接的基础对象数据结构。 [0236] 上文所描述的步骤只创建通过创建的声明进行连接的两个点中的第一个点。为完成整个的连接,在步骤1080中,在声明和另一个合适的I/O属性(例如,另一个策略上的I/O属性的问候声明)之间创建关联(这里简称为“连接引用”)。使用连接来将策略的I/O声明连接到其他策略的I/O声明。因此,在示范性实施例中,除名称之外,每一个声明还支持在声明区域1010和1012中显示的连接引用。当为输入/输出声明创建连接引用时,利用字符串“---.---”或未定 义值的任何其他合适的指示符初始化连接引用。可以在另一个策略(或源)中的Input声明(或接收器)和Output声明之间进行连接。如果策略是顶级策略(即,直接连接到复合语句),那么,Input声明可以另外连接到复合语句本身上的属性。只能为策略本身上块属性或子策略中的另一个声明,指定Output声明的连接引用。\n作为示例,用户通过在所需的引用字段内双击以显示出浏览按钮,浏览源声明的连接引用。\n通过选定浏览按钮,调用Attribute Browser,用户通过它标识并指定适当的I/O声明,以作为新的声明的连接引用。 \n[0237] 请参看图11,该图描述了示范性属性浏览器界面。AttributeBrowser图形界面最初在浏览器的左边(“A”)显示了当前策略可以连接到的所有控制对象。当用户选定出现在浏览器的左边的对象时,Attribute Browser在浏览器的右边(“B”)显示选定对象的任何可连接的属性。在说明性实施例中,Attribute Browser允许用户导航到包含策略中的任何声明或同一个包含策略内的同辈策略中的任何声明。如果在顶级策略实例(即不是包含策略)内,用户可以浏览全局配置数据库中的任何复合语句内的任何属性,或与全局配置数据库内的任何其他顶级策略实例关联的任何声明。 \n[0238] 策略编辑器还支持建立从策略画布1002上表示的任何I/O声明到其他策略的一个或多个超级链接。为创建超级链接,用户调用I/O声明上的上下文菜单,并选定Create Hyperlink To菜单选项,以调用Create Hyperlink To对话框。通过使用Create Hyperlink To对话框,用户通过选定Add按钮,将超级链接添加到配置数据库210中的一个或多个策略实例中。 \n[0239] 策略编辑器还支持导航到被指定为I/O声明上的超级链接的策略。I/O声明的上下文菜单包括Navigate To菜单选项。在选定出现在Navigate To对话框中所需的策略之后,选定的策略的策略编辑器202被调用,在策略编辑器202的图形显示上,向用户呈现策略的图形表示。 \n[0240] 最后,如上所述,策略编辑器202紧密耦合到外观对象编辑器 206。因此,在步骤\n1090中,与在策略上创建新的声明相关联(不管是否指定了连接引用),外观对象编辑器\n206打开对应的外观对象定义,并将I/O属性添加到外观对象中。 \n[0241] 策略编辑器202还支持使用图形用户界面动作(例如,拖放),在控制对象的可连接的属性之间,以自定义的连接类型特定的外观,高效率地建立连接。策略编辑器自动地确定指示的I/O属性,并通过更新受影响的控制对象上的关联的数据结构来完成连接。在示范性实施例中,策略编辑器202支持下列元素之间的自动/用图形方式构建的连接: [0242] a.控制块或嵌套的策略的可连接的属性和为包含策略指定的输入或输出变量 [0243] b.控制块或嵌套的策略的可连接的属性到同一个包含策略内的同辈I/A块或策略上的另一个可连接的属性 \n[0244] 在策略编辑器202内,当光标/图形指示器被置于潜在的源属性上方时,光标的外观变为“准备好开始连接”状态。通过将光标置于连接的源的上方,选择源末端(例如,点击),将光标重新置于计划的接收器末端光标,然后选定接收器末端(例如,点击),来建立连接。此外,当用户重新定位光标以选择用于连接的接收器末端时,策略编辑器202还提供可视反馈。例如,策略编辑器202,在检测到光标和潜在的连接接收器属性之间的一致性时,将光标的外观变为“准备好放置”状态。 \n[0245] 当用户在用户界面上选择接收器属性时(通过松开鼠标键),策略编辑器202自动路由图形连接,以形成避免了其他显示块和子策略外观对象的路径。所产生的用图形方式显示的连接通过策略编辑器202的画布区域1002上的单实线来表示,所述单实线以接收器末端的箭头结束。 \n[0246] 此外,连接线条的外观也是可自定义的。除允许用户手动选择各种线条属性(例如,粗细度、颜色、箭头类型、式样等等)之外,策略编辑器202还支持用户为特定类别的连接(例如,连接的属性的 数据类型)定义的/指定的线条特征/式样。请参看图12,该图显示了示范性连接外观定义对话框。在说明性实施例中,用户使用菜单命令,或者可替换地从与画布区域1002关联的上下文菜单中选择适当的条目,来从控制策略中打开对话框。在示范性实施例中,连接对话框1200包括连接框1202,该框列出了对其支持自定义式样的当前可用的连接类型组。在说明性实施例中,列出了一组四种不同的连接类型(布尔、整数,实数和字符串),它们涉及通过连接传输的数据类型。然而,在备选实施例中,标识了额外的数据类型。此外,连接类型也不仅限于数据类型。在备选实施例中,连接可以基于能够从连接的I/O属性导出的任何特征。此外,策略编辑器202的实施例还支持为其定义了线条特征的连接类型的可扩展的列表。 \n[0247] 模式下拉列表1204允许用户指定选定的连接类型的线条模式(从连接框1202中)。模式下拉列表1204呈现画布区域1002上的可视地描述的连接的各种可用模式。 [0248] 粗细度下拉列表1206允许用户指定选定的连接类型的线条粗细度(从连接框\n1202中)。粗细度下拉列表1206呈现画布区域1002上的可视地描述的连接的各种可用的线条粗细度。 \n[0249] 颜色下拉列表1208允许用户指定选定的连接类型的颜色(从连接框1202中)。\n颜色下拉列表1208呈现画布区域1002上的可视地描述的连接的各种可用线条颜色。 [0250] 样本框1210基于用户从模式、粗细度以及颜色列表1204、1206和1208中进行的选择显示的示例。 \n[0251] 还包括了一组控制按钮。OK和Cancel按钮关闭对话框,保存更改(OK)或者忽略在对话框会话期间进行的任何更改(Cancel)。在示范性实施例中,一组默认特征与每一个支持的连接类型关联。“ResetAll”按钮将每一个支持的连接类型复位到默认值。 [0252] 请参看图13,当用户在画布1002上显示的两个图形外观对象之间创建连接时,策略编辑器202应用连接外观特征(潜在地通过Connections Dialog 1200进行修改)。在示范性实施例中,当用户在 画布1002上所显示的两个属性连接点之间建立连接时,策略编辑器202读取源属性的数据类型。 \n[0253] 请参看图13,在步骤1300中,策略编辑器202检测在定义两个终结点属性的过程中连接的数据类型。作为示例,这在选择源终结点时发生。此后,在步骤1310中,策略编辑器通过向连接类型/特征列表应用检测到的数据类型,确定连接的可视特征。此后,在步骤\n1320中,策略编辑器基于检测到的连接(例如,数据)类型的指定的特征划一条线。 [0254] 由策略编辑器202支持的再一个功能是执行顺序指定界面,该界面使用户能手动设计画布区域1002上用图形方式表示的控制块和子策略对象的执行顺序。策略内的控制块和子策略对象的默认执行顺序是用户将对象插入到包含策略中的顺序。此外,执行顺序还在策略内的每一个对象的顶层处理。因此,当指定子策略的执行顺序时,该子策略内包含的所有块(和子策略)都在进入策略的执行顺序序列中的下一个同辈对象(即,块或另一个子策略)之前执行。如果在已经确立执行顺序之后控制块或子策略对象被插入到包含策略中,则策略编辑器202给新的块或子策略对象分配执行顺序值,该值是一个大于包含策略内的以前的最高执行顺序值的序数位置。 \n[0255] 策略编辑器202还支持自动的标准驱动的执行顺序分配过程。作为示例,用户通过从由画布区域1002所提供的上下文菜单中调用Auto Set Execution Order功能,启动策略中包含的块和子策略的执行顺序的自动确定过程。在说明性实施例中,策略编辑器202基于块类型(例如,序列化与连续控制块)应用标准。在其他实施例中,给用户提供了从中进行选择的各种预先定义的标准的菜单。随后的执行顺序由用户选定的标准驱动。标准组是可扩展的,因而支持向预先定义的执行顺序分配标准组中增补用户定义的内容。 [0256] 除自动地指定画布区域1002中表示的对象的执行顺序之外,策略编辑器还支持以控制对象为基础的手动指定执行顺序。具体来说,用户手动替换画布区域1002上的块或子策略的以前分配的执行顺 序值。在示范性实施例中,用户通过从画布区域1002上的上下文菜单调用Execution Order模式进入手动执行顺序模式。 \n[0257] 在Execution Order模式下,策略编辑器202呈现BeginSequence对话框,提示用户输入人工编号将开始的序数值(因而,使用户能确定新的序数值分配将开始的序数位置)。默认的开始序数值是1。 \n[0258] 在Execution Order模式下,策略编辑器202突出显示每一个控制块或嵌套的子策略对象的默认外观对象的标题区域内显示的执行顺序序列号。突出显示的值表示分配给关联的控制对象的当前执行顺序值。用户通过按所需的执行顺序点击画布区域1002中显示的外观对象,按顺序指定执行的优先顺序。在外观对象上的第一次点击分配等于Begin Sequence对话框中指定的数字的执行顺序。 \n[0259] 任何块或子策略的当前执行顺序,在重新排序过程中,连续地更新,并显示在外观对象的执行顺序区域601内。因此,在示范性实施例中,策略编辑器202重新计算控制对象上的可能已经受到特定选择的影响的所有分配的执行顺序值。在外观对象上的每一个连续的点击到会导致向选定的外观对象所关联的控制对象分配下一个较高的序数值。 [0260] 下面是手动指定执行顺序的示例: \n[0261] a.用户希望在位置2插入新的块。在进入Execution Order模式之后,用户指定\n2作为开始序列,并点击所需的块。所有以前从2向上编号的块和子策略都将增加1。 [0262] b.用户希望交换块12和13的执行顺序。在进入ExecutionOrder模式之后,用户指定12作为开始序列,并点击以前编号为13的块。其执行顺序变为12,自动地将以前的\n12递增到13。 \n[0263] 在Execution Order模式下,用户通过调用画布区域1002上的上下文菜单,然后选择Set Execution Sequence菜单选项,来指定新的开始序列号。 \n[0264] 除创建和编辑控制程序之外,策略编辑器工具还支持显示与呈现 在外观对象上的属性关联的实况过程数据。请参看图14,在进入Live Data Mode之后,策略编辑器202在对应于部署的控制块和/或子策略的画布区域1002上显示在外观对象上显示的每一个属性相邻的矩形寄存器。每一个矩形寄存器都将从对应于策略编辑器的画布区域1002中显示的外观对象的部署的控制块和子策略获得的实时数据可用的程度进行显示。这样的数据包括,例如,由监视工业过程中的过程变量的现场设备传输的过程传感器数据。这样的数据还潜在地包括部署的控制程序的设定值或其他用户可设置的值。实时数据寄存器支持读取和写入数据。因此,用户潜在地通过实时数据寄存器设置新过程变量设定值。 [0265] 图14中的示范性显示,描述画布区域1002内的实时数据显示模式外观对象1400的初始状态。在说明性实施例中,通过矩形实时数据寄存器来指示为关联的属性提供的状态的信息。例如,每一个实时数据寄存器都被初始化为显示字符串“----”,表示目前没有定义关联的属性值。当在显示的属性和实时数据的源之间建立了数据通信链路/路径之后,来自关联的控制块和子策略(在部署的复合语句内运行)的当前数据值显示在每一个实时数据窗口内。在子策略上的属性显示元素旁边的显示的实时数据寄存器显示了属性所连接/链接到的终极点的实时数据值,不管在策略的显示的外观对象内发生了多少层深的策略嵌套。此外,用户也不能更改显示的策略外观对象内的子策略上的属性的值。然而,它们将能够查看子策略属性值。 \n[0266] 用户调用Update Parameters对话框,以显示选定的控制块或子策略上的所有属性的列表,以及它们的当前值。Update Parameters对话框允许用户查看不会出现在块或策略的外观对象上的属性上的实时数据值。 \n[0267] 用户调用Update对话框以更改画布1002上的属性的相邻的矩形寄存器上或者Update Parameters对话框中的属性的列表中显示的控制属性的当前值。例如,通过双击所需的属性的实时数据寄存器,或者通过双击Update Parameters对话框列表内的属性,来调用 Update对话框。请参看图15,Update对话框用户界面1500包括New Value部分1502和Current Value部分1504。New Value部分1502使用户能输入新属性值,以更新关联的控制器的操作,配置数据库210中的值,或两者。Current Value部分1504提供关联的控制器内的属性的当前值,以及存储在配置数据库210中的值。 \n[0268] 下面概述管理Update对话框的使用以改变属性值的规则。为了更新配置数据库\n210中的块的属性值,属性必须是可配置的。为了更新控制器上的块的属性值,属性必须是可设置的。最后,如果块不处于手动模式下,只能更新输入属性。只有当块处于手动模式下时,才允许更新输出属性。不允许更新连接的接收器的属性。 \n[0269] 上文所讨论的结构、技术以及优点只是由在计算机器上运行的并以计算机可执行的指令的形式存储在计算机可读取的介质上的软件执行的本发明的示范性实施例。鉴于可以应用本发明的原理的许多可能的实施例,应该认识到,这里参考附图所描述的实施例只是说明性的,不应该理解为对本发明的范围作出限制。在不偏离本发明的精神的情况下,可以在布局和细节方面对所示的实施例进行修改。此外,本领域技术人员将认识到,所说明的原理不仅限于任何特定局域网协议和/或拓扑。因此,这里所描述的本发明预期,所有这样的实施例都可以归入下面的权利要求以及其等同替换的范围之内。
法律信息
- 2017-05-31
未缴年费专利权终止
IPC(主分类): G09G 5/00
专利号: ZL 200780020767.9
申请日: 2007.04.11
授权公告日: 2012.12.05
- 2012-12-05
- 2009-08-12
- 2009-06-17
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
1995-08-30
| | |
2
| | 暂无 |
1995-04-26
| | |
3
| |
2007-04-18
|
2005-05-04
| | |
4
| | 暂无 |
1994-06-03
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |