本申请要求Bryant等人于2004年5月17日提交的序列号为No.60/571,833的美国临时申请的优先权,通过引用的方式特意地将其全部内容并入于此,所述全部内容包括其中所包含的任何引用的内容以及教导。
具体实施方式
下面的描述基于本发明的多个实施例,而且不应当认为对于并未在这里明确描述的另选实施例而限制了本发明。
例如,将本发明并入监控过程控制和制造信息环境中,在该环境中由应用对象来表示各个数据源。在Resnick等人于2002年6月24日提交的序列号为No.10/179,668的美国申请“SUPERVISORYPROCESS CONTROL AND MANUFACTURING INFORMATIONSYSTEM APPLICATION HAVING A LAYEREDARCHITECTURE”中详细描述了这种系统的一个示例,在此以引用的方式并入其内容,包括其中所标识/包括的任何引用的内容和教导。然而,鉴于已公开的示例性实施例,本领域的技术人员容易理解本发明可应用于包括可识别的数据源的各种另选的监控过程控制环境,所述数据源提供用于驱动一组动态图形要素的实时处理数据,所述动态图形要素表示被观察/受控工业过程的至少一部分。
参照图1,示意图描述了在示例性的监控过程控制网络中的多个组件的主次/分级关系,所述监控过程控制网络包括基于一组网络化计算机(PC)安装的多层监控过程控制和制造信息系统。在开始更加详细地描述示例性网络环境之前,一般应当注意,在本实施例中,例如以接收了状态信息的应用对象105和应用对象107的形式给出了数据源。此外,应用对象105和107在由配置数据库124(例如Wonderware’sGalaxy Repository)保持的全局名称表125中被标识,开发者可以通过在配置PC 120上执行的可视化应用开发工具127(例如Wonderware’s INTOUCH软件)来使用配置数据库124中的内容。在本发明的一个实施例中,可视化应用开发工具127提交对于驻留在配置数据库124中的特定信息的查询,以便于给出可用数据源(例如应用对象105和应用对象107),该可用数据源被开发者并入到针对特定应用(例如制造处理线)的一个或者更多个过程可视化视图/窗口。一旦建立,所述过程可视化应用就可以在连接到图1中示意性描述的监控过程控制网络的一组工作站中的任意之一上执行。在本发明的一个实施例中,上述可视化应用被作为由视图引擎主控的一个或者更多个应用对象来执行,所述一个或者更多个应用对象进而由在监控节点上运行的平台所支持。
继续参照图1,第一应用服务器个人计算机(PC)100和第二应用服务器PC 102共同协作地执行包括第一部分104和第二部分106在内的分步式多层监控过程控制和制造信息应用。应用部分104和106分别包括设备整合应用对象PLC1Network和PLC1,以及PLC2Network和PLC2。PLCxNetwork设备集成对象便于对数据访问服务器(例如OPC DAServer 116和118)进行配置。作为OPC客户端进行操作的PLC1和PLC2设备集成对象访问在OPC DAServer116和118的缓存器中的数据位置。数据访问服务器116和118以及设备集成对象协作导入并缓存来自诸如PLC或者其它现场设备的外部过程控制组件的数据。通过在个人计算机100和102上执行的各种应用对象105和107来访问数据缓存器。例如,应用对象的示例包括离散设备、模拟设备、字段(field)参考等。
根据本发明的一个实施例,应用引擎主控应用对象(通过这里称为“区域”的逻辑成组对象)。这些引擎进而通过在监控过程控制和制造信息应用的下一个较低级上的平台对象而被控制。应用部分104和106进而由通用引导程序(bootstrap)组件108和110进行控制。所有上面提到的组件都在下面参照图2进行描述。
在具体实施本发明的示例性系统中,包括部分104和106的多层应用与受控过程可通信地链接。特别是,第一应用服务器个人计算机100可通信地耦合到第一可编程逻辑控制器112,并且第二应用服务器个人计算机102可通信地耦合到第二可编程逻辑控制器114。应当注意,所描述的从PC 100和102到PLC 112和114的连接表示逻辑连接。这些逻辑连接对应于直接和间接物理通信链路。例如,在具体实施例中,PLC 112和PLC 114包括在还连接有个人计算机100和104的以太网LAN上的节点。在其它实施例中,PLC 112和114直接链接到在PC 100和102上的物理通信端口。
在图1阐述的示例性实施例中,PC 100和102分别执行数据访问服务器116和118。数据访问服务器116和118获取/提取由PLC 112和114提供的过程信息,并且将该过程信息提供给包括有部分104和106的应用的应用对象(例如PLC1Network,PLC1,PLC2 Network,PLC2)。数据访问服务器116和118例如是OPC服务器。然而,本领域技术人员将容易理解可以通过数据访问服务器116和118执行的各种定制的和标准化的数据格式/协议。此外,通过与数据访问服务器116和118的连接,示例性应用对象表示PLC网络和PLC本身的操作。然而,应用对象包括实际上为无限种类的可执行对象,这些可执行对象在监控过程控制和制造信息应用的情况下执行所希望的监控控制和数据获取/整合功能。
例如,通过用于执行数据库(例如SQL)服务器122的配置个人计算机120来增加监控过程控制和管理信息应用,数据库(例如SQL)服务器122保持用于应用对象的监控过程控制和管理信息应用配置数据库124,以及要根据其来具体例示应用对象的、包括模板的其它相关信息。在图1所述的系统中,配置数据库124还包括全局名称表125,其便于将位置独立的对象名称与位置导出的处理(handle)绑定,所述位置导出的处理便于在对象之间路由消息。配置PC 120和相关数据库服务器122支持:对于多用户环境的管理性监视、修正历史管理、集中的许可管理、包括部署和安装新对象及其相关软件在内的集中的对象部署(deployment)、维护全局名称表125、以及导入/导出对象模板和实例。
通过集成开发环境(IDE)126执行对提供给可视化应用的应用对象以及数据源的配置。然而,正如下面所进一步说明的,可能地至少部分地与可视化应用开发工具127相关联地执行这种应用对象的配置,其中所述可视化应用开发工具127通过分布式组件对象模型(DCOM)协议与数据库服务器122通信。IDE 126是实用工具(可能包括多个组件),根据该实用工具来定义、创建应用对象,并将应用对象部署给包括例如应用服务器PC 100和102在内的各种平台/引擎。在过程可视化应用的情况下,可以将应用对象布置为扮演工作站角色的其它PC。监控过程控制和制造消息应用的开发者通过IDE 126来执行各种系统设计功能,包括:导入新的对象和模板类型,根据现有的模板配置新的模板,定义新的应用对象,以及将应用对象布置到在应用服务器PC 100和102上的主应用引擎(图1中的AppEnginel或AppEngine2)。
图1中所描述的示例性监控控制网络环境还包括:一组操作员站130、132和134,用于将视图提供给过程或该过程的一部分,其中通过被安装并且作为PC 100和102上的一组分层对象而执行的监控过程控制和管理信息应用来监视/控制所述过程或其一部分。RawMaterial PC 130提供使得能够对受监控工业过程的原料区进行监视的代表性视图。ProductionPC 132示出了受监控工业过程的产品部分的代表性视图。FinishedProductPC 134提供了与最终产品相关联的产品设备的区域的代表性视图。操作员站130、132和134中的每一个都包括对于每个特定操作员站平台的引导程序宿主。操作员站130、132和134中的每一个都包括支持可视化应用对象的视图引擎,其用于处理其它应用对象/数据源提供的数据,以呈现所观察的工业过程或其一部分的图形描述。此外又例如,操作员站130、132和134中的每一个通过在操作员站上安装的INTOUCH和INTOUCH View软件来运行视图应用。这些软件对应于上面提到的视图引擎和应用对象。用于驱动与视图中描述的符号相关联的动画行为的数据可以本地访问,或者通过任何合适的网络应用开发机制来更新。
应当注意,图1和上文中描述的系统仅仅是监控过程控制和制造信息系统的多层分级结构的示例。本发明并不限于具体公开的应用/系统,实际上并不是必须以例示性示例中示出的多级应用的形式来实现。还应当注意,图1是以安装的软件与物理计算硬件之间的主次相互关系的逻辑视图来表示的,而并不意在指定任何特定的网络拓扑结构。相反,本发明实际上适合于任何网络拓扑结构。事实上,本发明可应用于如下一种系统,其中配置实用工具和监控过程控制可视化应用两者都在链接到受控过程的单个计算机系统上运行。
现在转向图2,图2是描绘了与用于执行监控过程控制和制造信息应用的至少一部分的计算机(例如PC 100或者102)相关联的分层软件的分级主控配置的类图。每个计算机都在分级结构的最低级执行操作系统200,诸如MICROSOFT’s WINDOWS。操作系统200主控引导程序对象202。引导程序对象202被加载到计算机上,并且与操作系统200执行的启动程序相关联地被激活。作为平台类对象204的宿主,引导程序对象202必须在启动平台类对象204的操作之前被激活。引导程序对象202启动并停止平台类对象204。引导程序对象202还提供由平台类对象204使用的服务,以启动并停止由平台类对象204主控的一个或者更多个引擎对象206。
平台类对象204是一个或者更多个引擎对象206的宿主。在本发明的一个实施例中,对于所述一个或者更多个引擎对象206来说,平台类对象204代表用于执行特定操作系统的计算机。平台类对象204保持部署在其上的引擎对象206的列表,启动并停止引擎对象206,并且如果引擎对象206崩溃,则重新启动。平台类对象204监控引擎对象206的运行状态,并且将状态信息向客户公开。平台类对象204包括系统管理控制台诊断实用工具,其使得能够在执行所述平台类对象204的计算机系统上执行诊断和管理任务。所述平台类对象204还向分步式告警子系统提供告警。
引擎对象206主控一组应用对象210,所述应用对象210执行与应用相关联的监控过程控制和/或制造信息获取功能。引擎对象206发起所有应用对象210的启动。引擎对象206在调度器对象208的帮助下相互相关地调度应用对象210的执行。为了进行执行,引擎对象206利用调度器对象208来登记应用对象210。调度器对象208基于相应的一个引擎对象206所指定的配置,与其它应用对象相关的执行应用对象。引擎对象206监视应用对象210的操作,并将有故障的应用对象设置为隔离状态。此外,引擎对象206通过将自动控制对象造成的运行时间应用的改变保存/恢复到配置文件中来支持抽点检验(checkpointing)。引擎对象206保持名称绑定服务,该服务将属性参考(例如tank1.value.pv)绑定到适当的一个应用对象210。
引擎对象206最终控制应用对象210中相关联的那些应用对象的执行将如何出现。然而,一旦引擎对象206确定针对应用对象210的执行调度,就通过调度器208对实时调度它们的执行进行控制。调度器208支持包含有方法RegisterAutomationObject()和UnregisterAutomationObject()的界面,这些方法使得引擎对象206能够在调度器208的调度操作列表中添加/去除特定应用对象。
应用对象210包括执行商业逻辑的很多种对象,所述商业逻辑在例如工业过程控制系统的情况下,便于执行特定的过程控制操作(例如开启泵,致动阀),和/或信息收集/管理功能(例如基于接收到的现场设备输出信号值引发告警)。过程控制和(自动控制)应用对象的示例包括:模拟输入、离散设备和PID环。应用对象210的类通过设备集成对象(例如OPC DAServer 118)来作用于由诸如PLC的过程控制系统提供的数据。集成对象的功能是在过程控制/制造信息源与监控过程控制和制造信息应用之间提供桥梁。
在一个示例性实施例中,应用对象210包括通过引擎对象206和调度器208访问的应用界面。引擎对象206访问应用对象界面以便:初始化应用对象,启动应用对象,以及停止应用对象。调度器使用该应用对象界面来启动应用对象的调度执行。
对示例性监控过程控制和制造信息网络环境的主要组件已经进行了描述,现在将注意力转移到具体实施本发明的示例性系统,该系统包括用于开发和部署可视化应用的软件,该软件用在这些环境中,以经由人机界面(HMI)来监视这些环境中的过程控制元件。所述可视化应用通过描绘了工业过程(或者其部分)的各种图形显示来支持/便于监控过程管理和控制。这种系统的示例是在配置计算机120上执行的Wonderware’s INTOUCH HMI软件。
参照图3,具体实施本发明的示例性过程控制可视化应用开发环境包括多个高度集成的组件。这些组件便于创建、编辑和部署过程控制和制造信息可视化应用,所述可视化应用包括根据图形符号模板创建的图形符号实例的汇集。图形符号实例通常包括由过程监控和控制系统的组件提供的实时数据所驱动的一个或者更多个可改变的显示特性。这些组件例如是应用对象以及本地和远端加标签的数据参考。在本发明的实施例中,通过与所述图形符号实例链接的组件提供的实时值来管理图形符号实例的动态显示特性。
通过任意各种已知的计算机系统硬件和软件布置来执行本发明。图形符号模板和可视化应用的开发/配置可以在任意各种计算设备(联网设备和单机设备两者)上进行,所述可视化应用并入了根据所述符号模板创建的符号实例。此后,可视化应用将实时过程数据链接到在各种联网设备的用户接口上提供的图形符号。这样的联网设备例如包括工作站、图形输入板PC、手持个人计算机。此外,这样的联网设备通过包括有线和无线链路的各种网络通信介质连接到用于驱动图形符号的动态外观的实时信息源。此外,这些网络本身能够具体实现为任意各种拓扑结构。
示例性的可视化应用开发环境包括符号设计/开发环境300。符号设计/开发环境300包括含有基于图形用户界面的浏览器和对话框的一组工具/实用工具,该组工具/实用工具便于创建和修改与过程控制和制造信息系统中的应用对象和加标签的数据源链接的图形符号模板和实例。符号设计/开发环境300包括便于创建符号模板304的符号模板创建工具302。模板创建工具302最初提示用户选择数据源链接类型(例如应用对象、本地标签、远端标签等)。在选择了应用对象链接的情况下,给出对象模板的列表(确定图形符号模板的类型)。下面将更加详细地说明创建新符号模板的过程。
符号模板库
在具体实现本发明的示例性过程控制可视化界面设计环境中,符号模板304被存储到符号库306中。正如表示一组“n”个可视化应用中的每一个的一组单独的框所表示的,对符号库306进行排列/分段,以便为“n”个可视化应用中的每一个提供独立容器(container)。因此,在本发明的实施例中,每个可视化应用包括一组符号模板和根据该组符号模板创建的一组相关联的符号实例等等。
编辑符号模板
符号模板编辑器工具308便于对预先存储在符号模板库306中的(针对应用的)符号模板进行修改。在示例性实施例中,开发者选择符号模板设计环境300的“编辑”模式,同时选择一个符号模板来调用模板编辑器工具308。此后,用户对所选的符号模板进行所希望的改变。这些改变包括在编辑模式中对于模板的任何改变,诸如对于图形的改变(例如改变一个或者更多个图形图元或者单元的尺寸、形状或者其它属性,或者增加或删除某些图元或者单元),或者对于并入图形图元中的任何动画表达的改变。在进行这些编辑之前,代表整个符号的单元被中断以对所述单元的要素进行改变(此后重建父符号单元)。然后,开发者将修改后的符号模板保存到符号模板库306中的针对特定应用的容器中。
在可视化应用的生命周期中保持父符号模板与子符号实例(根据所述模板创建)之间的上述关联,以使得对于符号模板的改变(通过符号模板编辑器308执行)被传播到在可视化应用中的父模板的所有子符号实例。符号管理器312(下面将进一步说明)保持有包含对于每个符号模板的相应视图/应用的列表的表格,所述相应视图/应用包含相关的/子符号实例。具体的,一旦将编辑工作交给符号模板(并且将符号模板的新版本存储到符号模板库306中合适的容器中),编辑工具308就开始将符号模板改变传播给目前与应用中的经修改的符号模板相关联的(例如根据其预先创建的)一组符号实例。可视化应用的设计者能够通过自动将符号模板修改传播到所述一组符号实例的更新机制,来对根据相同符号模板创建的一组符号实例进行改变。在整个可视化应用(可能包括许多可视化窗口)中传播这种改变的能力使得开发者能够通过在父符号模板上的单个编辑对话,来更新根据单个父符号模板创建的一组图形符号实例。
借助于具体示例,通过打开用于识别与改变的符号模板相对应的每个符号示例的本地文件、并对包含有受影响的符号实例的本地文件的一部分进行更新,来本地地传播改变。如果受影响的符号实例被包括在非本地节点上运行的过程可视化应用中,则通过网络应用开发实用工具/特征来处理用于更新非本地符号实例的任务。这种开发实用工具/特征本地地修改受影响的窗口/视图(即包括已改变的符号实例的窗口/视图),而后部署修改后的窗口/视图以替代相应的非本地可视化界面应用。进行这些改变是通过向一组用户公布这些改变,或者另选地根据来自非本地客户端的对于更新的要求来实现的。
部署可视化应用
一旦创建了可视化应用,即对其进行部署,此后在HMI主(例如工作站)节点上执行。在本发明的实施例中,部署实用工具将所选应用的副本传送到指定的目的地HMI主节点。在部署的过程中,可视化应用(包括它们相关的图形符号模板和实例)可能被复制到网络上的多个节点。在这种情况下,每个可视化应用的原版由应用服务器310保存,而可视化应用的副本被传送到作为监控过程控制和制造信息工作站的一组分布式客户节点,并且被本地存储/执行。此外,对于符号模板的上述修改从应用服务器310上存储的可视化应用(包括根据与符号模板相关联地创建的符号实例)的原版被传播到在整个网络中分布的特定可视化应用的所有副本。在示例性实施例中,在可视化应用的改变部分与未改变部分可以相分离的情况下,仅将可视化应用的改变部分发送到客户节点。
相反,就传播符号模板的改变来说,模板与实例之间的关联不会与可视化应用边界交叉。将关联以及因此改变的传播范围约束到特定应用使得监控过程控制可视化设计者能够修改预先存储的符号模板,并且所述改变仅被传送到单个可视化应用中的被改变的符号模板的所有实例,而不会被其它应用获得。因此,对于特定应用中的图形符号模板的改变不会影响该特定应用之外的图形符号。
应当注意,在示例性实施例中的应用中施加的传播边界可以施加在根据本发明的不同实施例的各种另选级别(逻辑成组)。例如,所述范围可能被进一步限制到单窗口,或者另选地扩展到一组逻辑成组的应用(例如过程、工厂、组织等)。
现在转向针对特定应用的容器中的符号模板的布置,在本发明的实施例中,每个针对特定应用的符号模板容器都包括含有符号模板或者其它文件夹的一组分级设置的文件夹。在图6中描述的符号模板选择窗口中的模板目录框中,描述了在模板容器内的文件夹的分级关系。例如,当用户试图在可视化应用开发工具(例如Wonderware’sWindowMaker可视化应用开发工具)的情况下创建符号实例时,给出模板选择窗口。
在本发明的实施例中,根据在模板中给出的参考类型来划分模板容器/目录的顶层。在图6所阐述的示例中,给出了两个顶层文件夹。Archestra模板文件夹602是存储有图形符号模板的文件夹层的根目录,这些图形符号模板参考Archestra应用对象模板(与现有技术中的监控过程控制结构相对应)。INTOUCH符号文件夹604是存储有图形符号模板的文件夹层的根目录,这些图形符号模板被规定为仅参考INTOUCH Remote或者Local标签(与继承的过程控制结构相对应),并且不包括任何ArchestrA对象模板参考。
在示例性模板容器分级中给出了两种类型的文件夹,即普通文件夹和模板文件夹。在图6的示例性用户界面中的通过文件夹图标标识的普通文件夹可以包含其它的普通文件夹、模板文件夹或者符号模板。在图6的示例性用户界面中通过球形图标标识的模板文件夹包含符号模板(即不是其它的文件夹),该符号模板包括含有对于应用元件类型的参考的动画表达。在例示性示例中,模板文件夹名称对应于包含在特定模板文件夹中的符号模板所参考的应用对象模板。在图6所阐述的例示性示例中,包含在$FixedSpeedMotor符号模板文件夹中的每个符号模板包括一个或者多个参考$FixedSpeedMotor的动画表达。在示例性实施例中,每个符号模板可以包括仅对于$FixedSpeedMotor应用对象模板的参考。然而,该限制可以放宽,或者应用其它命名协议(例如在目录结构中的合成/并置模板名称),以支持将包括有对于同一组多个对象模板的参考的符号模板分组到适当命名的符号模板文件夹下。
普通文件系统文件夹,诸如电机文件夹606、发送机文件夹608、阀文件夹610、澄清器文件夹612和输送机文件夹614能够被放置到容器结构分级中的任何一级。另一方面,模板文件夹不能包含其它的模板文件夹,因为用于规定特定应用对象模板的模板文件夹意在表示对于包含在其中的所有图形符号模板的单个源类型(例如应用对象模板)。
图6中描述的目录支持在两个顶层文件夹602和604中的任一个下面规定任意数量的普通文件夹中间层。在例示性示例中,电机文件夹606、发送机文件夹608、阀文件夹610包含在Archestra模板文件夹602中。澄清器文件夹612和输送机文件夹614包含在INTOUCH模板文件夹604中。
在示例性实施例中,电机文件夹606被扩展为在分级树的最低级上显示一组模板文件夹($FixedSpeedMotor620,$FixedSpeedBidirectionalMotor 622,$TwoSpeedMotor 624和$VariableSpeedMotor 626)。每个模板文件夹进而包括一组存储的图形符号模板。在模板目录框600右侧的符号模板框616中描述了在(所选择的)$FixedSpeedMotor文件夹620中存储的符号模板。
所有未分配的文件夹最初都进入到顶层的Archestra文件夹。
在例示性示例中,如果可能,根据在与图形符号模板相关联的参考中标识的应用元件类型(例如,应用对象模板)来存储Archestra图形符号模板(存储到Archestra模板文件夹602中)。更具体地,如果在图形符号模板(根据该模板来创建图形符号实例)中的参考都对应于单个应用对象模板(根据该模板创建符号实例的应用对象/数据源),则将图形符号模板存储到标识了所参考的应用对象模板的图形符号模板文件夹中。因此,再次参考图6所阐述的例示性示例,存储到$FixedSpeedMotor模板文件夹620中的所有图形符号模板仅包含用于指定$FixedSpeedMotor应用Archestra对象模板的参考。
将符号模板放置在标有针对符号实例的数据源的对象模板名称的文件夹下面,使得可视化应用设计者能够基于设计者对于根据所选符号模板创建的实例的预期数据源类型的认知,来容易地定位合适的候选符号模板组。另一方面,涉及多个不同对象模板类型的符号模板被放置到顶层符号模板文件夹中。另选地,如上所述,可以基于包含在各个文件夹符号模板中的多个参考类型,将适当的合成名称分配给包含一组符号模板的模板文件夹。另选地,创建普通文件夹(与符号模板文件夹相对),之后基于其内容为普通文件夹分配名称。
此外,上述实施例不允许目录结构具有多级嵌套式的图形符号模板文件夹(由于涉及单个应用对象模板/标签的符号模板被放置在命名该模板的文件夹中的需求)。然而,在另选实施例中解除了这种约束。在这些另选实施例中,库目录树结构支持多级嵌套式的模板文件夹。
返回图3,通过符号库管理器312来保持符号库306。符号库管理器312执行各种容器/目录管理操作,包括:创建文件夹,重命名文件夹和符号模板,移动文件夹和模板,删除文件夹和符号模板,以及导入/导出图形符号模板到/从/在由符号库306支持的单独的针对特定应用的符号模板库之间。
为了将包含在其中的符号模板组织起来,符号库管理器312支持在针对特定应用的符号模板容器中创建附加的结构。符号库管理器312通过浏览应用对象模板名称储存库,而且此后创建具有所选应用对象模板名称的符号模板文件夹,来支持创建模板文件夹。另选地,当创建/存储包含单个应用对象模板的参考的新符号模板时,通过符号模板创建工具302产生新的模板文件夹,而且应用对象模板名称并不存在于直接定位到顶层Archestra模板文件夹602下的模板文件夹。在模板名称存在于较低层次的模板文件夹上的情况下,用户可以将新的符号模板移动到较低层的模板文件夹,并且删除自动创建的标有相同模板名称的模板文件夹。
符号库管理器312支持对于库中的文件夹或者符号模板的重新命名。然而,由于根据在模板文件夹的组成符号模板中标识的应用对象模板对模板文件夹进行命名,所以并不是普通地执行对标识应用对象模板的模板文件夹的重命名。
符号库管理器312支持在针对特定应用的目录容器分级结构中移动普通文件夹和模板文件夹或者符号模板。然而,符号库管理器312阻碍将模板文件夹移动到其它模板文件夹下面。此外,符号库管理器312阻止将符号模板放置到错误的高级文件夹中。例如,参照图6,不能将ArchestrA符号模板放置到INTOUCH文件夹604下/内,反之亦然。
符号管理器312还支持从库306中删除文件夹和符号模板两者。最后,如上所述,对于各个可视化应用来说,符号库管理器312在特定可视化应用中保持具有各个图形符号模板的实例的各个视图/窗口的列表。该功能的可能的选择/变型包括:标识各个符号实例(与标识视图/窗口相反),并且保持全局列表,对于各个符号实例来说,所述全局列表包括至少其中驻留了图形符号的应用(以及可能的视图/窗口/显示)。符号库管理器312的该部分便于将图形符号模板的任何后续改变传播到模板的子实例。
在示例性实施例中,还提供了符号模板恢复实用工具314,其便于从剩余的符号实例中恢复先前删除的图形符号模板(在符号库306中)。智能符号实例除了其父符号模板的名称之外,还包括需要重新创建先前丢失的父模板的所有信息。符号模板恢复实用工具314基于保持在各个图形符号实例中的信息(例如唯一的符号模板标识、位图、脚本等)重新创建图形符号模板。该唯一的符号模板标识将特定符号模板与根据该模板创建的所有实例相联系。用于支持特定符号的所有信息都被包括在各个实例中,使得没有必要在运行时间中参考符号库来提取符号以及将数据源与符号实例相连。这种符号实例信息包括数据源参考、支持绘图指令、支持位图、以及便于为图形符号制作动画的任何脚本。因此,在示例性实施例中,在丢失图形符号模板时丢失的唯一信息是模板(在查看特定模板文件夹中的一组模板时,用于向开发者标识模板)的文本名称。当根据实例重新创建模板时,向所述模板再分配一个文本名称。
符号管理器312支持向其它应用导入和导出符号模板。任何所选的符号模板或者在所选应用容器中的整个符号模板组都能够通过符号管理器312,作为符号模板包文件导出到磁盘文件。类似地,符号管理器312具有将任何符号模板包文件导入到指定应用(在相同或者不同的机器上)的能力。导入/导出实用工具使得用户能够将符号模板从一个可视化应用复制到另一个可视化应用,从而使得可视化应用的设计者能够将图形符号模板定义扩展到上述应用边界之外。导入/导出实用工具便于将先前定义的符号模板/库复制到其它的应用(或者其它的逻辑组),即使这些应用驻留在网络系统中的远端位置。以这种方式,如果希望的话,通过将一组标准的符号模板复制到在工厂、组织等内的一组指定的应用,来在整个工厂和组织间对符号图形进行标准化。此外,应当注意,无需复制包含图形符号实例的可视化应用窗口,即可实现图形符号的这种可移植性。取而代之,仅将符号模板复制到接收者的应用。然而,本发明的实施例还支持复制整个应用。
继续参照图3,在可视化应用开发环境(例如Wonderware’sINTOUCH WindowMaker)中调用符号实例创建器316,以根据预先存储在符号库306中的图形符号模板304创建图形符号实例。根据用户的设想,可以多种方式中的任何一种来实现对符号实例创建器的调用。例如在一种可视化应用设计环境中,开发者从选项板/菜单中选择/拖动符号的图形表示,并且在开启的可视化应用编辑窗口在所希望的位置放下该符号。另选的,当处于应用窗口编辑模式时,在可视化应用设计窗口框上选择一个区域。
例如,一旦被调用,符号实例创建器316即启动在图6中描绘的图形符号选择对话,使得用户能够选择根据其来创建一实例的特定图形符号模板。用户基于开发者试图添加到当前开启的可视化窗口的特定数据源,选择特定的符号模板文件夹。一旦选择,就在符号模板框616中显示一组有效的符号模板。
当用户在符号模板框616中选择其中一个符号模板之后,实例创建器316启动符号实例编辑器318,其包括例如在图7(下面将进一步描述)中描绘的属性对话界面。通过实例编辑器318的属性对话,在称为“解决”参考的任务中,用户通过对于包含在所选图形符号模板中的占位符指定特定数据源,来完成对符号实例的规定。应当注意在本发明的实施例中,符号实例的数据源可能是已有的,或者另选地通过属性对话、根据对象模板来创建,该对象模板由实例编辑器318启动的浏览器来定位。在可视化应用窗口中创建了图形符号实例之后,可以再调用符号实例编辑器318来编辑先前在首次创建符号实例时指定的数据源链路。正如前面所提到的,在符号模板与根据所述符号模板创建的所有符号实例之间保持永久的关联,以便将对于符号模板的改变传播到相关联的符号实例。
图形符号模板结构
已经描述了一种示例性的可视化应用设计/开发环境,要注意在图形符号模板结构中的一组示例性的字段,所述图形符号模板结构适合于在用于创建包含一组图形符号(单元)在内的工业过程的数据驱动/动画图形视图的设计环境中使用。转向图4,示例性图形符号模板结构包括符号XML文件400。符号XML文件400包括用于描述如何在可视化应用中构建相关联的图形符号实例并对其进行动画制作的数据和结构。XML文件400的内容与所规定的位图一起定义如何呈现图形符号,包括用于响应于对来自所规定的源的输入数据值的改变而对符号实例的动画行为进行定义的脚本/表达。例如,XML文件400可以通过尺寸、颜色、位置、相关联位图来定义矩形,并且定义动画行为,其中矩形的由特定颜色填充的部分对应于由与过程数据源对应的应用对象所提供的过程变量的当前值。
在针对图形符号模板的XML文件400中的动画表达包括对于特定数据源类型的参考。数据源参考规定应用元件类型(例如应用对象模板),所述应用元件类型提供用于驱动根据图形符号模板创建的符号实例的动画行为的数据。在示例性实施例中,数据源参考便于将图形符号模板与特定类型的应用元件(例如容器液面应用对象模板)数据源相关联。
此外,这些参考便于将图形符号模板安排到模板库中。例如,在将符号模板保存到库中时,将该符号模板放置在与XML文件400中包含的动画表达中所规定的应用元件数据源类型对应的特定符号模板库文件夹(下面将进一步说明)中。例如,将用于创建动画符号实例的符号模板放置在用于保持含有一个或者更多个数据源参考的模板的模板库文件夹中,其中所述数据源参考用于指定一固定速度电机的数据源类型,所述动画符号根据来自“固定速度电机”的输入数据改变外观。因此,包含在XML文件400中的这些参考规定通用类型的应用元件(例如应用对象模板),其中对于该应用元件,图形符号模板适合于提供动画图形显示。这便于将根据符号模板产生的图形符号与用于驱动图形符号的可视外观(例如动画状态)的过程控制动画/应用对象相关联。
符号位图410表示/定义用于智能符号(即用于智能符号模板的符号库界面视图的智能符号)的缩略尺寸位图。
补充位图420指定用于在视图中呈现图形符号实例的图像的位图。例如,可以借助于绘图图元(例如矩形、直线、曲线等)来呈现容器符号;然而,容器的背景是位图图像。另一个实例是用于增加由一组图元图形形状定义的阀(valve)的阀杆(valve handle)(与示意图/框图相对)的艺术家呈现。
符号管理器数据430例如包括含有分配给特定符号模板的唯一ID的二进制文件。该唯一ID便于创建符号模板与根据该符号模板创建的符号实例之间的关联。符号管理器数据430还包括与图形符号模板相关联的所有符号的目录结构和模板名称。
转向图5,根据本发明的一个实施例的一组步骤概括了最初创建动画图形符号模板,包括对于过程控制应用元件类型的参考,以及此后根据(以及对包括在其中的过程控制应用元件类型的任何参考进行解决)在可视化应用中使用的图形符号模板来创建图形符号实例的方法。例如,图形符号模板包括用于定义根据符号模板创建的图形符号实例的动画行为的动画表达。该动画表达包括对于过程控制应用元件类型的上述参考。
在步骤500中,用户通过符号模板创建工具302来定义上述参照图4描述的类型的图形符号模板,包括含有一个或者更多个用于标识过程控制应用元件类型的参考在内的一个或者更多个动画表达。在本发明的实施例中,这些参考标识了过程控制应用对象模板或者远端标签(remote tag)。所标识的应用元件类型对应于适当类型的应用实体,所述应用实体将提供数据来(驱动)与根据符号模板创建的图形符号实例相关联的输入。
例如但并不限于,最初根据在Wonderware WindowMaker过程可视化窗口设计/开发实用工具界面上创建的图形符号单元来产生图形符号模板。图形符号单元包括用户可配置的图形,以及含有便于指定上述参考的一个或更多个占位符的动画脚本/表达部分。在具体实施例中,通过在符号模板编辑器界面上选择“动画链接”选项来建立参考,选择一特定类型的动画链接(例如应用对象、标签等),并且此后从对于所选类型(例如应用对象模板)的一组候选中进行选择,以定义针对符号模板的动画数据源的类型。在具体示例中,用户基于Wonderware’s ArchestrA的结构指定:(1)特定应用对象模板,和(2)与所选应用对象模板相关联的特定属性。以″Galaxy:$<TemplateName>.<AttributeName>″的形式规定参考,其中<TemplateName>之后可能跟随更多个包含的对象名称,<AttributeName>可能是一组分级的属性名称。所规定参考的示例是″galaxy:$valve.pv″。当基于所选的数据源(例如应用对象)创建符号实例时,由基于所选数据源的适当名称来替换TemplateName的通用参考(例如$valve)。如上所述,以表达式的形式在符号模板中定义动画。所述表达指定所述参考提供的输入值与动画图形符号的输出可视状态之间的关系。一旦在参考占位符中进行了填充并且针对图形符号模板的动画行为指定了任何用户可选择的参数值,用户就调用“生成符号模板”命令,使得符号模板创建工具302创建含有以上参照图4描述的代码和数据的新的图形符号模板。提示用户提供针对新图形符号模板的名称。
在示例性实施例中,在步骤502中,用户通过调用用于产生图形符号模板的操作来调用在模板编辑器界面内的保存操作。作为响应,将步骤500中定义的图形符号模板保存在符号库306的针对特定应用的符号模板容器之一中。上述针对特定应用的容器中的每一个都包括目录树结构,其中存储有针对特定应用的图形符号模板。此外,就图形符号模板包括仅对于单个应用组件类型(例如应用对象模板)的参考来说,图形符号模板被自动地存储在对应于应用元件类型的符号库306的针对特定应用的容器中的文件夹(例如$tank文件夹)中。代替最初为符号模板分配的默认名称(例如NewSymbol),为用户提供一个用于提供定制名称(例如SteelTank1)的机会。
在目录树结构中的所保存的图形符号模板的位置取决于由在所保存的图形符号模板中的一个或者更多个参考指定的应用对象模板的类型。例如,如果符号模板具有与单个应用对象模板(例如$FixedSpeedMotor)相关联的参考,则将符号模板放置在用于标识应用对象模板(例如$FixedSpeedMotor 620)的符号模板文件夹中。如果没有预先建立适当的模板文件夹(参见图6),则创建一个适当的模板文件夹。另一方面,如果在参考中指定了多个应用对象模板或者仅指定了通用数据源,则例如在未分配符号文件夹618中放置对象模板。如果仅指定了INTOUCH标签,则将符号模板存储到在INTOUCH模板文件夹604中的顶层文件夹中。
继续参照图5,在符号库306的针对特定应用的容器中创建并存储了图形符号模板之后,在步骤504中,可视化应用窗口/视图的开发者调用符号实例创建器316,以根据图形符号模板启动图形符号实例的创建。例如,通过并入到可视化应用视图编辑器(例如WONDERWARE’s INTOUCH可视化界面开发/演示软件)中的向导/工具来执行步骤504。在用户选择用于根据符号模板创建符号实例的向导/工具之后,生成提示用户在视图中选择放置图形符号实例的位置的光标。一旦选择了一个位置,该向导/工具就进入产生对话框(参见图6)的模板“选择”模式,开发者通过该对话框从在已选模板文件夹下的一组可用符号模板中选择先前存储的图形符号模板。
再次参照图6,在例示性示例中,开发者已选择了在ArchestrATemplate文件夹602(用于所有符号模板的通用容器)下创建的标准Motors文件夹606下面的$FixedSpeedMotor应用对象模板文件夹620(高亮显示)。对$FixedSpeedMotor符号模板文件夹620的选择使得包括在$FixedSpeedMotor文件夹620中的所有符号模板都呈现在符号模板框616中。用户选择在框616中的其中一个符号模板,对于该符号模板要创建图形符号实例(例如,在先前选择的$FixedSpeedMotor模板文件夹中的″Shaft Down-Alarm Left-Brown″)。图像预览/属性列表框630显示与当前选择的、尚未例示的图形符号相关的信息。当用户选择特定符号模板来创建实例时,符号实例创建器316开始配置属性的一组步骤(例如启动符号特性对话),包括对于相应于所选图形符号模板的图形符号实例来说,解决针对应用对象实例的应用对象模板名称。
应当注意,可以通过各种界面中的任何一种来选择图形符号模板。在上述示例中,用户通过查看包含一组可用图形符号模板的目录来选择图形符号模板,并且之后通过解决对于应用对象的、包含在图形符号实例中的参考,将应用对象与对应于所选图形符号模板的图形符号实例相关联。另选的,以制模板(pallet)的形式呈现图形符号模板,同时用户通过从针对可视化应用视图的制模板中拖拽对应于图形符号模板的图标/图形图像来调用符号实例创建器316。用于调用创建图形符号实例的工具的其它用户界面机制对所属领域技术人员来说也将是熟知的。
此外,在颠倒选择过程的另选实施例中,可视化应用开发界面/对话框给出一组应用对象模板,用于驱动图形符号的动画特性的预期数据源类型。一旦选择特定的一个应用对象模板,对应于所选应用对象模板的一组图形符号模板即呈现给用户。在选择了其中一个图形符号模板之后,符号实例创建器316创建对应于所选图形符号模板的图形符号对象。
图形符号实例的实际创建可能发生在可视化应用视图开发过程的各种阶段中的任何阶段。在本发明的实施例中,在用户拖动在应用视图中的所选图形符号图像之后,符号例示工具307创建对应于所选图形符号模板的图形符号对象。另选地,延迟图形符号实例的创建,至少直到用户针对包含在与所选图形符号模板相关联的脚本中的参考指定了实际数据源(对象)链接为止。在步骤506中解决在部分规定的图形符号实例中的参考。
在本发明的实施例中,在步骤506中,用户为最初在所选应用对象模板中规定的、未解决的参考中的每一个规定与应用对象/数据源的链接。被链接的数据源驱动与根据先前选择的图形符号模板创建的图形符号实例相关联的显示特性或者对其制作动画。在用户选择图形符号模板之后,在步骤506中启动例如在图7中描述的图形符号属性对话。在示例性实施例中,在例示选项628上的显示属性对话使得用户能够配置属性对话的自动启动,以响应于用户从符号模板框616中表示的一组模板中指定特定图形符号模板。
图形符号属性对话使得用户能够解决先前未解决的参考(通过图形符号模板以占位符的形式给出)。以通用名称(例如″Galaxy:me.pv″)、包含应用对象模板(例如″Galaxy.$pump.pv″)的参考字符串等的形式来提供未解决的参考/占位符。正如下面进一步说明的,例如通过浏览当前存在于应用对象的指定逻辑成组(这里称为“Galaxy”)中的应用对象实例的集合并且选择其中一个应用对象,或者通过简单地键入应用对象实例名称(尚不存在),来解决未解决的参考。对于在所选图形符号中相同语法的所有未解决参考来说,指定特定应用对象实例使得能够通过针对特定应用的对象参考来执行自动图形符号配置功能,以取代先前未解决的参考。
在示例性实施例中,图形符号属性对话界面700包括一组概括了与图形符号实例相关联的各种属性的字段。第一组字段规定了包含所规定的图形符号实例的应用的物理和逻辑属性。GR节点名称字段702(例如markb05)标识了包含与图形符号实例相关联的应用的原版在内的数据库的服务器。galaxy名称字段704(例如ReactorDemoGal)规定了当前由包含图形符号实例的可视化应用使用的名称空间(namespace)(例如Galaxy或者诸如企业这样的任何其它合适的逻辑实体成组)。GR节点名称字段702和galaxy名称字段704的组合便于规定由可视化应用使用的数据库中的名称空间。
第二组字段定义了图形符号实例属性。与当前所选图形符号模板相关联的图形图像显示在预览框705中。符号模板字段706通过名称来标识当前所选的图形符号模板。所标识的图形符号模板是用于在步骤506中解决参考之后将要完成/例示的(在步骤504中规定的)图形符号结构的源。在图形符号模板和根据所述模板创建的图形符号实例之间的这种关联至少在可视化应用设计环境中得以保持,使得通过更新机制将在根据所述模板例示了图形符号实例之后的图形符号模板中的数据的改变并入到符号模板的各个图形符号实例内的数据中。此外,传播机制存在于运行过程中,使得对于符号模板的改变(例如改变尺寸、颜色、文本、动画行为(增加/删除/修改动画表达)等)被传递到任何开启的且活动的窗口/视图中,所述窗口/视图包含根据改变后的符号模板创建的符号实例,而不考虑受影响的可视化应用是在出现符号模板改变的相同节点上还是在不同节点上运行,其中对于符号模板的改变基于以上事实而发生)。在运行应用窗口/视图的情况下,直到在特定窗口/视图已被关闭/最小化而后重新打开/恢复(或者通过用户动作明确地更新)之后才完成这些改变。
例如,下面描述了将符号模板的改变传播到根据所述模板创建的符号实例。通过符号模板编辑器开启并修改符号模板。此后,用户调用用于存储改变后的符号模板的操作。作为响应,确认对话显示/列出了所有当前开启的窗口/视图,所述窗口/视图包括根据改变后的符号模板创建的符号实例。可能受所述改变影响的数据源参考显示在“之前”和“之后”状态中。在用户确认这些改变之后,将修订后的符号模板存储到合适的符号模板库中。此后,开启在相应可视化应用中的各个视图/窗口,以(通过观察在应用视图中的符号实例的符号模板ID)确定对应于改变后的符号模板的符号实例的存在。如果发现了受影响的符号实例,则基于新版符号模板进行更新。此外,刷新所有开启的窗口/视图,以反映更新后的基本符号实例。这些更新延伸到对于非本地节点上的视图的远端操作。
图形符号模板浏览界面按钮707使得用户能够通过浏览对话框来浏览一组图形符号模板。例如在图8中描绘了符号模板浏览对话框的示例。筛选字段800使得用户能够将结果字段802中显示的所检取的符号模板限制到满足规定筛选标准的符号模板(例如,规定$Box应用对象模板参考的图形符号模板)。在例示性示例中,“默认”筛选对应于未筛选,并且在结果字段802中检取并显示用于当前应用的符号模板的针对特定应用的容器中的所有模板。通过使用浏览框,用户能够检取候选图形符号模板的列表,以替换用于创建图形符号实例的当前选择的图形符号模板。一旦选择,就将模板数据合并到实例数据中(以达到应用对象被预先选择的程度),同时更新实例参考。
当为图形符号实例规定实例参考时,ArchestrA模板字段708对于合适的源应用对象实例,标识应用对象模板。当解决了实例参考时,实例参考指定与数据源的链接,所述数据源用于驱动新图形符号实例的显示特性或者为其制作动画。Archestra实例字段710规定用于提供数据链接参考的当前选择的应用对象,以解决在模板参考栏712中所列的模板参考。数据类型栏714规定由在实例参考栏716中标识的数据源所提供的数据的形式。
在例示性示例中,在符号模板字段706中规定的符号模板是LightBlueBox1,而在模板参考栏712中规定了单个模板参考Galaxy:$Box.pv。Archestra模板字段708规定了被标识为$Box的应用对象模板,所述Archestra模板字段表示将驱动图形符号实例中的参考的应用元件类型。在Archestra实例字段710中规定的当前选择的应用对象实例是根据$Box应用对象模板创建的实例,并且被命名为SmallBlueBox。文本字符串″Galaxy:SmallBlueBox.pv″表示已解决的模板参考″Galaxy:$Box.pv″。一旦指定了应用对象″SmallBlueBox″,就自动提供已解决的参考。因此,SmallBlueBox应用对象通过Galaxy:SmallBlueBox.pv属性提供离散数据值来驱动与(根据LightBlueBox1符号模板创建的)图形符号实例相关联的动画行为。
图7中描绘的属性对话界面示出了在选择了应用对象实例之后的对话界面。在示例性实施例中,通过应用对象浏览按钮718来规定应用对象实例,所述应用对象浏览按钮718使得用户能够通过浏览对话框浏览一组应用对象。图9中借助于示例描绘了应用对象浏览对话框的示例。筛选字段900使得用户能够将检取的应用对象限制到满足规定的筛选标准的应用对象(例如根据$junk应用对象模板创建的应用对象)。在例示性示例中,$junk筛选导致检取到根据$junk应用对象模板创建的一组五个应用对象实例。通过使用应用对象浏览对话框,用户能够检取并列出一组候选应用对象,以解决在模板参考栏712中规定的参考。
作为选择用于解决符号模板参考的现有应用对象的另选,新的按钮720调用对话,以根据在Archestra模板字段708中规定的应用对象模板来创建新的实例。所述新的对象实例变为对于在图形符号对象实例中规定的参考的数据源。在示例性实施例中,当用户选择所列应用对象实例其中之一时,将所选应用对象实例的输出变量应用到在栏712中列出的该组符号模板参考,并且在栏716中填充相应的实例参考。系统对在栏712中所列的模板参考中规定的所有通用参考以及用于规定与所选应用对象实例的模板相匹配的模板名称的所有参考进行取代。在示例性实施例中,在栏712中所列参考中的$Box字符串由在栏716所列的被解决的参考中的(根据$Box应用对象创建的)名称为“SmallBlueBox”的实例所取代。在这一点上,再次参照图5,在步骤508中准备创建完全规定的图形符号实例。
符号实例属性对话界面700包括一组功能按钮。取消按钮722在无需作出影响图形符号实例的任何改变的情况下退出属性对话。取代按钮724启动一个用于规定将要对实例参考栏716中所列项目执行的搜索字符串和取代字符串的对话框。帮助按钮726启动规定用户可选帮助主题的列表的帮助对话。确定(OK)按钮730实现在属性对话框中规定的当前选择。在本发明的实施例中,确定按钮730的选择基于在属性对话字段中阐述的值来调用在图5中阐述的步骤508中的对于图形符号实例的结构的创建。尽管期待多个符号实例创建方案,但在示例性实施例中,在可视化应用的开发阶段,只创建对应于符号实例的结构并且将其放置到视图/窗口结构中。符号实例结构定义图形和动画行为(包括驱动动画的应用对象源)。之后,开启包含符号实例结构的视图/窗口,并且在运行时间环境中执行符号实例。
显示文本字符串选项732允许显示并编辑与所显示符号模板(标签,一组值)相关联的静态文字字符串。例如,文本字符串可能是诸如″Reactor#1″这样的放置在位于符号顶层的文本框中的标签。另一个示例是在符号上的一组静态记号级(tick level)。在这个意义上,文本字符串在列表视图中示出,该列表视图是包含与符号相关联的默认文本字符串以及任何替代/补充文本字符串的列表的弹出对话。因此,文本字符串选项732允许用户手动或者通过与取代按钮724相关联的搜索和取代功能编辑所述字符串。
在通过图7的示例中描述的属性对话定义了符号实例之后,开发者可以再调用针对先前创建的图形符号实例的属性对话框,并且编辑任何参考以便指定不同的数据源,而后再次保存符号实例。
因此,通过上述方法和用户界面应当能够看到,具体实施本发明的系统便于改进用户界面的设计,所述用户界面包括由与过程控制应用对象相关联的参考数据源驱动的动画图形符号。模板开发、对象关联、实例结构创建界面的结合使得开发者能够容易地创建、例示、修改和管理含有动画图形符号实例的过程控制系统组件管理级的图形视图。智能符号与自动化(应用)对象之间的关联的这种相对容易的创建便于以相对直接的方式创建动画视图,用于监控过程控制和制造系统的状态/操作。
在示例性实施例中,在符号模板中的参考标识了各种数据源中的任何数据源,包括:过程控制应用对象模板,通用过程控制应用对象和远端标签(代表数据源)。图7中阐述的属性对话相应于符号模板/实例,规定应用对象模板作为数据源类型。然而,本发明支持各种数据源类型,例如包括:含有通用参考(即没有指定应用对象模板)的模板和(通过存储器位置而非应用对象来指定数据源的)标签。在这些情况下,给出合适的对话框,该对话框使得开发者能够针对符号模板提供的参考占位符指定特定的应用对象和存储器位置。支持合适的浏览实用工具,以便检取用于驱动规定的符号数据输入的可应用的可能源。
IOSetRemoteReferences函数
在具体实施本发明的设计环境的示例性实施例中,至少部分地基于相关联的脚本来执行可视化应用。当在运行时间中在可视化应用的情况下执行时,脚本根据对于输入数据值(由图形符号脚本中的参考所标识的数据源驱动)的改变,实现针对图形符号的经编程的动画行为(包括给出/显示诸如温度、压力、流量等的当前参数值)。例如,在运行时间中,执行与活动窗口相关联的脚本,以更新通过在图形符号中嵌入的参考所标识的过程控制系统中的数据源所提供的值。对图形符号的外观进行更新,以便反映通过所参考的数据源而提供的数据值的改变。
在包括如下图形符号实例的示例性运行时间环境中,其中所述图形符号实例包括对于驱动与这些实例相关联的动画行为的应用对象源/属性的参考,IOSetRemoteReferences函数使得可视化应用开发者能够在运行时间中在图形符号实例中重新定向/重新命名数据源参考。更具体地,IOSetRemoteReferences函数调用利用在可视化应用的任何位置处的脚本中包含的表达中的特定参考文本字符串(例如motor_2)来取代通用/占位符参考文本字符串(例如motor_x),或者其一部分。这种能力使得能够动态地/有条件地/后续地在可视化应用中将(最初由通常命名的参考规定的)数据源绑定到智能符号实例。
例如,应用开发者写入包括IOSetRemoteReferences函数的可视化应用脚本,以便在运行时间中规定重新定向/重新命名引用。此外,通过在用于规定IOSetRemoteReferences函数调用的脚本行之前放置条件转移指令,设计者可以规定执行IOSetRemoteReferences函数调用的条件(例如直到满足特定条件才跳过IOSetRemoteReferences函数)。例如,一旦满足了特定条件,就切换到特定的源对象实例,该源对象实例提供用于驱动图形符号实例的特定外观特性的数据值。另选地,切换源对象,以响应于用户点击特定界面按钮(可能表示该数据源)。
例如,IOSetRemoteReferences函数包括如下一组字段,该组字段描述了要对于图形符号脚本中的特定参考文本字符串执行的替换。在示例性实施例中,IOSetRemoteReferences函数调用取代以″AccessName″.″ItemName″形式规定的远端(即位于另一个节点的部分)参考的特定部分,其中ItemName可能还包括例如通过时间段划界的扩展。在其中参考具有多个部分的示例性实施例中,所述参考的多个部分必须在该参考中执行指定的字符串替代之前匹配一组相应的字符串中的每一个。在具体的示例性实施例中,IOSetRemoteReferences函数调用支持两部分匹配标准并且以如下形式来规定:
IOSetRemoteReferences(BaseAccess,NewAccess,MatchString,SubstituteString,Mode)。
BaseAccess:规定最初配置的访问名称,以找到/匹配包含在与可能的两部分匹配测试的第一部分(下面参看第二部分)相关联的脚本中的参考。BaseAccess可以规定一个通用访问名称(例如″Galaxy ″,其涉及可能包括网络中的多个节点的全局地址),或者另选地特定实体(例如TagServer_1)。BaseAccess字段不能为空。
NewAccess:在所有匹配标准都得到满足的情况下,规定访问名称取代最初配置的访问名称。该字段NewAccess字段可以为空。如果NewAccess字段为空,则在参考的AccessName部分中不会发生字符串替换。
MatchString:规定在参考的最初配置的项目名称部分中要匹配的字符串。MatchString字段可以为空。在MatchString字段为空的情况下,在参考中的任何字符串都被认为是匹配。
SubstituteString:如果BaseAccess字符串和MatchString字符串对于参考来说都匹配,那么规定在参考的项目名称部分中要替换的字符串。SubstituteString字段可以为空。如果SubstituteString为空,则就参考的项目名称部分来说不发生替换。
Mode:规定就参考的项目名称部分的内容来说进行″MatchString″的匹配的方式(全部/部分字段匹配)。在本发明的实施例中,始终在参考的项目名称字符串开始的时候进行匹配。然而,整个项目名称不需要匹配所规定的MatchString。Mode参数规定″整个字符串″或者″部分字符串″匹配。″整个字符串″要求将MatchString参数值与构成“匹配”的参考的整个项目名称匹配(在诸如时间段或者任一端点这样的名称定界符之间)。″部分字符串″要求将MatchString参数值仅与参考的项目名称部分的开始部分匹配来构成匹配。在″部分字符串″模式的情况下,仅通过SubstituteString参数值(字符串)来取代项目名称的已匹配部分。因此,取代文本的范围可能为整个项目名称,或者在字符串的指定点开始的、运行到项目名称的字符串结束的、且在通过所规定的MatchString参数的内容确定的指定点处结束的文本的某部分。在支持部分字符串替代的另选实施例中,从某个中点开始进行匹配,并且运行到字符串结束。例如,对于在应用或者活动/开启的窗口脚本中出现″motor_x.pv″的任何位置,可能使得″tor_x.pv″部分被″ped23.value″取代,从而导致参考字符串在″moped23.value″处而不是″motor_x.pv″处结束。在又一个实施例中,SubstituteString取代MatchString,而不考虑其在项目名称中的位置。在本发明的又一个实施例中还使用其它的匹配/取代方案。
总的来说,IOSetRemoteReferences函数在远端参考上执行全部/部分字符串替换,其中所有的部分(例如访问和项目名称)都与规定的字符串值(如果不需要匹配的话左边空白)相匹配。在与可视化应用相关联的脚本中规定IOSetRemoteReference功能,并且仅将其应用于应用中的开启的窗口。因此,IOSetRemoteReference功能可能影响在包含IOSetRemoteReference功能调用的可视化应用中的所有开启窗口中的全部远端参考。
上面已经描述了示例性可视化设计环境,以及对开启的可视化应用窗口中的参考进行修改的新的运行时间脚本功能,注意图10描述了包含一组根据上述符号模板创建的图形符号的示例性可视化应用窗口。能够以多种不同的形式来实现在视图中的符号实例的动画行为,包括与由并入到对于符号实例规定的动画表达中的所参考的应用对象属性提供的实时数值相关的视觉改变(例如闪光、运动、尺寸改变、旋转、淡变等)。在图10中,以动态描述产品存储罐中的液面(通过改变尺寸以相应于被液体填充的罐的百分比的数字值以及图形矩形)来具体实现这种动画。还可以以在对于产品存储罐的输入和输出阀中的处理位置的形式来并入动画。反应堆批量(Reactor Batch)导管符号实例包括两个动画行为:(1)填充级和(2)转动混合器/搅拌器组件。通过根据上述符号模板创建的符号实例可以提供图10中阐述的示例性应用视图/模板的每个部分。
鉴于本发明可以应用的原理的多种可能的实施例,应当承认这里参照附图描述的实施例仅是例示性的,而并不认为是对本发明范围的限制。此外,可以在不脱离本发明精神的情况下修改、补充和/或重新排序示例性步骤。因此,这里所述的本发明期待所有这些实施例都可以落入到所附权利要求及其等价物的范围之内。