技术领域
[0003] 本公开的实施例一般地涉及自动化控制和监视系统的领域。更具体地,本公开的实施例涉及自动化控制和监视系统内的数据对象的识别。
相关背景技术
[0004] 自控化控制和监视系统存在广泛的应用,尤其是在工业环境中。这样的应用可以包括对宽范围的致动器如阀门和电动机等的供电以及通过传感器进行的数据采集。典型的自动化控制和监视系统可以包括一个或多个部件如编程终端、自动化控制器、输入/输出(I/O)模块和/或人机界面(HMI)终端。
[0005] 通常采用人机界面或“HMI”用于监视或控制各种过程。HMI可以用在众多不同环境中,例如用在汽车、飞机、商业环境以及其它应用的主机中。HMI可以从特定寄存器读取或者写入到特定寄存器,使得它们可以反映各种机器、传感器、过程等的操作状态。HMI还可以写入到寄存器和存储器,使得它们可以在某种程度上控制过程的功能。在仅监视功能的情况下,很少或者不执行实际控制。
[0006] 自动控制系统的HMI或界面典型地采用对象,所述对象在软件环境中是软件部件,所述软件部件可以包括可访问或可配置的元件。例如,对象可以包括自给自足的程序,该程序可以作为准独立元件运行。对象尤其可以包括装置元件和数据标签。界面中使用的对象可以与工业自动化装置的不同的控件、监视器或任何其它参数相关联。这样的对象可以是存储在界面中的常见对象类型的具体实例。这些对象中的一些可以在界面装置上具有可视化表示,而其它对象可以是非可视化表示的但可以被用户访问以进行配置和编程。用户可以期望操纵这些对象,例如通过创建新的对象、复制对象、编辑对象等,以创建并定制界面。现在可以认识到的是,通过自动化控制和监视系统进行的对这样的对象的身份的改进管理是令人期望的。
具体实施方式
[0020] 常规的自动化控制和监视系统包括用于在系统中识别数据对象的逻辑名称或对象名称。可以通过控制和监视系统的自动化控制器以及HMI和可视化平台来访问对象。通常通过与对象相关联的对象名称来引用对象。然而,现在认识到这可能导致如下场景:当在一个部件中而不是在对象被引用的所有地方都改变对象名称时,引用在系统内被破坏。在这样的实例中,操作者将必须手动地调整名称。一些控制和监视系统部件采用它们自己唯一的标识符来维护对象的内部引用。然而,当将多个这样的系统部件集成到单个系统中时,对象标识符可能仅仅在每个单独部件的范围内是唯一的,而并非在整个系统中是唯一的。对于从多个不同的系统部件中引用对象的部件,这可能存在困难。另外,用于一个系统部件的身份机制可能与在其它系统部件中使用的身份机制不同或者不兼容。
[0021] 本实施例意在通过引用与控制和监视系统的每个对象相关联的唯一对象标识符来维护对象数据。响应于用于新对象的实例化的请求而由数据存储部件或身份部件生成每个对象标识符,并且每个对象标识符与操作系统中的所有其它对象标识符相比是唯一的。进一步,每个对象管理返回到可以由单独部件使用的标识符(不唯一)的映射,所述单独部件已被集成到整个系统中。对象被存储到控制和监视系统的数据模型中,并且与它们的对象标识符相关联。数据模型可以跨越系统的不同部件进行分布,使得在一个部件中进行的对象数据(例如对象名称)的变化被分发给系统的所有其它部件。通过引用对象的相关联的对象标识符并且使用部件专用的标识符的映射,控制和监视系统的任何部件都可以访问系统中的可寻址位置处的对象。通过经由用户不可访问的对象标识符来管理对象的引用,本实施例的控制和监视系统允许跨越系统的不同部件、有效并灵活地管理对象。
[0022] 通过以下讨论将描述若干方面、部件和过程。通过介绍的方式,按照使这些特征就位于上下文中的顺序给出总体系统概述。图1是根据本公开的实施例的用于界面的控制和监视软件框架10的图解表示。框架10便于通过使用基于模块的互连机制12来构建功能软件,所述互连机制12固有地支持动态操纵和配置。这种动态操纵和配置能力便于有效地提供用于可配置界面的特征丰富的配置环境。亦即,如下所述,单独的装置元件或对象被提供作为独立代码,所述独立代码可以独立地编程,预先编写以供使用,如在库中那样,在它们的屏幕中的外观和功能方面进行定制,并且进行互连以向用户以及控制和监视功能提供信息。在本实施例中,对象包括表示自动化控制和监视系统的属性的机器可读数据,并且对象存储在系统内的非暂态机器可读介质上。
[0023] 框架10包括可以(但不需要)驻留在单个系统(例如计算机)上的两个相关软件环境。具体地,运行时间环境14使操作者(例如个人用户)能够与应用进行交互,所述应用例如是在运行时间期间(例如在使用界面期间,典型地在操作中与过程的交互期间或过程的观察期间)的过程。设计时间环境16允许设计者配置界面及其部件。例如,系统可以在显示器(例如计算机或界面装置屏幕)上通过运行时间环境14向操作者以图形的方式呈现运行时间信息。进一步,系统可以包括用于接收可以通过运行时间环境14检测和管理的操作者输入的装置(例如键盘)。
[0024] 运行时间环境14包括或者提供对装置元件17的访问。装置元件17是软件部件,该软件部件可以包括软件环境中的任何可访问的或可配置的元件。例如,装置元件17包括由运行时间环境14管理的诸如“ActiveX”控件或者“.NET”部件之类的软件部件。“ActiveX”或者“.NET”部件指的是面向对象的概念、技术和工具。本领域中的那些普通技术人员一般会非常熟悉这样的编程方法。在本文中,这样的标准应当仅被用作例子,并且“装置元件”应当被理解为任何一般类似的部件或可以作为准独立元件运行的自给自足的程序的一个例子,有时被称为“对象”18。尽管装置元件17是一种具体类型的对象18,其可以遍及控制和监视系统24而被生成、存储或者起作用,但是应当理解的是,在本申请中描述的一般原理一般而言与对象18相关,其可以包括其它软件(例如标签)。针对这样的元件存在其它的标准和平台,典型地由不同的公司或工业团体支持。
[0025] 因为这样的装置元件对于在此阐明的某些概念而言是基本的,所以按顺序给出几句介绍。装置元件通常包括四种特征:性质、方法、连接(或连接点)以及通信界面。在本文中,性质是属性,其可以被调整,以比如限定屏幕视图中的元件的表示或图像,以及其在屏幕上的位置等。在本文中,方法是可执行的功能(有时在此被称为元件“功能性”或“状态引擎”),并且定义通过元件的执行而执行的操作。在本文中,连接是元件之间的链路,并且可以用于使数据(从存储器读取或写入到存储器)被发送到另一元件。本实施例指向用于管理装置元件的身份和引用的系统与方法,以便建立和保持装置元件17之间的这种连接。
[0026] 装置元件17可以存储在控制和监视系统的特定可寻址位置处,并且控制和监视系统的不同部件可以在这些位置访问一个或多个期望的装置元件17。每个装置元件17可以包括与装置元件17相关联的系统分配的唯一标识符,如以下详细描述的那样。控制和监视系统的部件可以通过引用元件的相关标识符来访问具体的装置元件17。这个唯一的标识符不同于分配给装置元件17的文字名称,所述文字名称可以由用户输入和/或改变。与装置元件17相关联的名称表示装置元件17的可调整性质中之一,而系统分配的标识符则表示不能变化的属性。
[0027] 装置元件17的特定例子可以包括软件按钮、计时器、计量器、可编程逻辑控制器(PLC)通信服务器、可视化(例如图示自动化控制和监视系统内的部件状态的屏幕)以及应用程序。通常,实际上任何可识别的功能均可以被配置成这样的元件。此外,如下所述,这样的元件可以彼此通信以执行宽范围的显示、监视操作和控制功能。当与图像相关联的装置元件17非常有用时,特别是用于可视化时,许多元件可能不具有可视化表示,但是可以执行HMI内的功能,例如计算乃至其它元件之间的数据交换和管理。
[0028] 运行时间环境14典型地使用通信子系统20进行操作。通信子系统20适于与装置元件17互连。实际上,通信子系统20可以被看作包括装置元件17的连接器。然而,它可以包括发送数据到外部电路(例如自动化控制器、其它计算机、网络、卫星、传感器、致动器等)或从外部电路接收数据的一系列软件、硬件和固件。
[0029] 运行时间环境14典型地使用适于管理装置元件17的行为的行为子系统22进行操作。例如,行为子系统22的职责可以包括如下:放置并移动装置元件17;修改装置元件17;在可互换的屏幕上对装置元件17进行分组;保存和恢复屏幕的布局;对安全性进行管理;保存和恢复连接列表;以及提供对运行时间环境14的远程访问。再次地,实际上,这样的行为可以被定义为每个装置元件的简档(即“方法”或“状态引擎”)的一部分。
[0030] 在当前公开的实施例中,设计时间环境16可以用于通过各种胖客户端、瘦客户端或者基于网络的实施来配置装置元件17。例如,设计时间环境16可以在从服务器直接访问装置元件17的瘦客户端或联网的计算机工作站上实施。这样的装置于是可以允许设计者在界面没有运行时执行运行时间环境14中使用的装置元件17的再配置。在一些实施例中,设计时间环境16可以包括行为子系统22的超前实施,其便于运行时间环境14的直接或间接操纵,而不妨碍或损害运行时间环境14的行为。亦即,甚至当界面正在运行时,也可以进行装置元件17的设计和再配置。经由设计时间环境16的远程提供,比如在常规的浏览器中,行为子系统22扩展了对运行时间环境14的访问。通过从HMI向编程终端提供设计时间环境16或其某些方面的服务,行为子系统22允许设计者经由远程编程终端与HMI的运行时间环境14的某些方面交互并使其改变。例如,经由网络耦合到膝上型计算机的HMI可以通过经由网络向膝上型计算机提供特定的设计时间环境16的服务来为用户提供配置能力。
[0031] 以下提供这一点可以如何进行的细节和例子。在当前的实施例中,设计时间环境16可以是如下产品:将动态超文本标记语言(DHTML)与动态服务器页面(ASP)服务器脚本相组合,以向浏览器提供动态内容。ASP脚本是特别编写的代码,其包括在将页面发送至用户之前在服务器(例如网络服务器)上处理的一个或多个脚本(亦即小的嵌入式程序)。典型地,在常规的使用中,这样的脚本提示服务器从数据库中访问数据并在数据库中进行改变。
接下来,脚本典型地在将其发送至请求者之前建立或定制页面。这样的脚本可以在本框架中使用以建立可视化,而不需要装置元件17的功能或者它们的相互关系的先验知识。
[0032] 通过便于对装置元件17进行改变,设计时间环境16允许设计者做出可互换的设计时间模型或行为子系统22的特定实施。行为子系统22的设计时间实施的具体例子包括基于网络的设计时间环境16,其经由HMI与远程装置之间的TCP/IP连接扩展了对HMI上的运行时间环境14的访问。基于网络的设计时间环境16便于在不损害运行时间性能或安全性的情况下管理装置元件17。在一个特定的实施中,使用能够访问相关的界面或HMI的网络浏览器,行为子系统22给予设计者操纵运行时间环境14的方面的能力。如以上所提及的那样,这一点通过使用装置元件性质的动态内容、脚本以及配置的组合来实现。
[0033] 图2是根据本公开的实施例的实施上述框架的诸如用于工业自动化之类的控制和监视系统24的图解表示。系统24包括适于与联网部件和配置设备对接的HMI 26。系统24被图示为包括这样的HMI 26,其适于通过控制/监视装置30(例如远程计算机、自动化控制器如可编程逻辑控制器(PLC)或其它控制器)与过程28的部件合作。
[0034] HMI 26与过程28的部件之间的合作可以通过使用任何适当的网络策略而便利化。实际上,可以采用工业标准网络如DeviceNet或以太网以使数据传输成为可能。这样的网络允许根据预定义协议的数据交换,并且可以提供用于联网元件的操作的电力。如以上所提及的那样,尽管在本讨论中参考了联网(无线或有线)系统以及结合有控制器和其它设备的系统,然而HMI 26和所描述的编程技术同样可以很好地适用于非联网部件(例如全球定位系统(GPS)显示器、游戏显示器、蜂窝电话显示器、平板显示器等),并且可以很好地适用于在工业自动化领域之外的联网系统。例如,以下描述的布置和过程可以用在设施管理、汽车与交通工具界面、计算机数字控制(CNC)机器、销售点(POS)系统、用于商业市场(例如电梯、进入系统)的控制界面等中,举不胜举。
[0035] 由相应的行为子系统构造和管理的运行时间或操作环境14存储在HMI 26上并驻留在HMI 26中。例如,这样的行为子系统可以适于比如在HMI 26的初始制造或设立期间从存储位置加载应用程序配置框架(例如10)。当加载时,所存储的应用程序框架可以适于创建屏幕,并且在屏幕中定位用户界面装置元件17(对应于元件的实际图像或绘画表示)。这些应用程序、屏幕以及用户界面元件是每种类型的装置元件17。HMI 26可以包括规定装置元件17的布局和交互的存储应用程序。基于运行时间引擎的基于网络的设计时间环境
16也可以被加载并驻留在HMI 26上。设计时间环境16可以适于处理设计时间和运行时间环境两者的高级特征(例如安全管理)。
[0036] HMI 26可以适于允许用户与几乎任何过程进行交互。例如,过程28可以包括压缩机站、炼油厂、用于制作食物项目的分批操作、机械化的装配线等。相应地,过程28可以包括多种操作部件,例如电动机、阀门、温度传感器、压力传感器或者种种的制造、加工、材料处理和其它应用。进一步,处理28可以包括用于通过自动化和/或观察来调节过程变量的控制和监视设备。通常,过程28可以包括传感器34和致动器36。传感器34可以包括适于提供关于过程条件的信息的任何数量的装置。致动器36可以类似地包括适于响应于输入信号来执行机械作用的任何数量的装置。
[0037] 如图示的那样,这些传感器34和致动器36与控制/监视装置30(例如自动化控制器)通信,并且可以被分配可由HMI 26访问的控制/监视装置30中的特定地址。传感器34和致动器36可以与HMI 26直接通信。传感器34和致动器36可以用于操作过程设备。
实际上,它们可以在由控制/监视装置30和/或HMI 26监视并控制的过程循环之内使用。
这样的过程循环可以基于过程输入(例如从传感器34输入)或直接输入(例如通过HMI 26接收的操作者输入)来激发。
[0038] 关于界面的服务器软件允许开发环境的查看以及界面(由其是装置元件17及其相关联的外观和功能)的直接再配置,而不需要特定的查看和配置软件。这个好处是以下事实的结果:装置元件17和设计时间环境自身驻留在HMI 26中,并且由HMI 26“提供”至编程终端46上的浏览器或者其它通用观察器。换言之,可以减少或消除对于外部计算机工作站(例如膝上型计算机和桌上型计算机)的必要支持。应当注意的是,对用于查看和修改界面配置的“浏览器”的引用不限于网络浏览器或任何特定的浏览器。对浏览器的引用旨在是示例性的。更普遍地,术语“浏览器”在此用于引用包括任何通用观察器的软件。
[0039] 通过以下描述的对装置元件17的编程,HMI 26可以被认为包括用于呈现一个或多个屏幕视图或可视化的指令,以及当通过引用屏幕视图(例如按压按钮、触摸屏幕的位置等)而与HMI 26交互时执行的装置元件17。屏幕视图与装置元件17可以通过任何期望的软件或软件包来限定。例如,屏幕视图和装置元件17可以通过操作系统38调用或执行。如上面所讨论的那样,根据本实施例的装置元件17可以是符合“.NET”或“ActiveX”或任何其它标准的对象18,或者可以使用专有的技术。操作系统38自身可以基于任何适当的平台,例如Linux、Microsoft Windows、Microsoft Windows CE、Android、iOS、OS-X等。如在此引用的那样,装置元件17和工具支持用于在网络(例如因特网)上传输数据的网络服务或技术。这些装置元件17因此遵循关于信息共享的规则集合,并且适于用于各种脚本和编程语言,如下所述。这样的装置元件17使得能够为外部应用如局域网(LAN)、广域网(WAN)、内部网、外部网乃至环球网提供交互式内容。因此,通过允许对浏览器48的配置访问(例如提供),操作系统38和各种装置元件17便于通过浏览器48进行对HMI 26的动态配置。
[0040] 例如,这样的配置访问包括对装置元件17的实例化的访问。换言之,新的装置元件17实际上可以从浏览器48创建和实施。再次应当注意的是,浏览器48不需要实际的功能访问。实际上,在一个实施例中,基于容器中的装置元件17的数据功能性和内容,经由浏览器48的请求会导致“绘制”操作序列,因此允许装置元件表示的图示和对它们的配置的访问,而实际上不提供功能方面。这允许经由远程工作站的配置而不需要对远程工作站的技术支持。
[0041] 装置元件17或对象18的实例化可以经由驻留在控制和监视系统24的部件中的操作系统或处理器而发生。例如,如以上所提及的那样,浏览器48可以便于用户访问以实例化HMI 26内的特定对象18。用户可以经由编程终端46提供用于HMI 26中的对象18的实例化的请求。HMI 26的操作系统38被配置成接收这样的用于实例化的请求,并且当接收到用于实例化的请求时通过生成对象标识符来做出响应。对象标识符可以是数字或者某种其它标识符,其与操作系统38所采用的任何其它对象标识符相比是唯一的。在特定的实施例中,对象标识符与操作系统38所生成的任何其它对象标识符相比是唯一的,以确保针对每个对象所生成的对象标识符确实是唯一的。这可以通过将现有的对象标识符纳入考虑的各种技术来实现。例如,可以发出连续的标识符而不使对象标识符重复。
[0042] 控制和监视系统24的数据模型被配置成存储对象18并将对象18与所生成的对象标识符相关联。数据模型可以位于HMI 26和/或控制/监视装置30的存储器中,并且多个数据模型或者数据模型的副本可以遍及控制和监视系统24的不同部件而存在。这些数据模型可以在遍及系统的不同可寻址位置处存储对象18中的一个或多个。控制和监视系统24的任何部件可以通过引用与对象18相关联的对象标识符来访问实例化的对象18。通过对象标识符访问对象18的每个部件(例如HMI 26或者自动化控制器)可以自动地接收由自动化控制和监视系统24的其它部件对对象18做出的改变。这允许一个部件中的对象
18的变化传播到所有其它的部件。然而,对象标识符自身不改变,并且由系统使用以引用与对象18相关联的数据并将改变分发到对象18。
[0043] 除以上所描述的操作系统38和装置元件17之外,HMI 26还包括应用程序或应用层40。自身可以包括装置元件17的应用程序40便于访问和获得来自HMI 26的各种装置元件17的信息。特别地,应用程序40表示可以被列举以便执行的多级装置元件中的第一级。实际实施中的应用程序40可以包括多种形式(例如可扩展标记语言(XML)、超文本标记语言(HTML)、JSON或专有)的用户应用程序。用户应用程序然后通过用户或操作者以及设计者进行交互。
[0044] 屏幕视图和装置元件17可以被描述为独立可执行的软件。在当前的实施中,屏幕视图通过以标记语言(例如超文本标记语言或HTML)编写的适当代码来限定。因此,用于HMI 26的图形化界面屏幕的配置可以在不使用转换程序的情况下执行。进一步,通过对装置元件17的编程,经由使驻留的开发环境对于远程访问可用的驻留服务器软件(指定为服务器42),屏幕视图可以在HMI 26上直接开发。具体地,在一个实施例中,特定的装置元件17(例如ActiveX控件)的表示被提供至浏览器48而没有提供软件部件自身。因为开发或设计时间环境可以通过浏览器48访问,所以可以消除对下载屏幕的变化以及更新远程配置软件应用程序的需要。应当注意的是,这种基于浏览器的软件配置是用于HMI 26的使用的一种类型软件的例子,并且本公开不限于经由这种配置的操作。亦即,本实施例中描述的元数据47可以应用在不经由浏览器(例如48)实施的软件方案中。
[0045] 如以上所提及的那样,装置元件17可以包括这样的功能,通过所述功能,它们从典型地在其它装置中(但也可以在HMI 26之内)的特定存储器或存储器的寄存器中读取或者向其写入。例如,特定功能可以对应于从控制/监视装置30的可寻址寄存器32中的一个读取或者向其写入。在简单的情况下,例如,对象访问一块数据(例如由传感器34中的一个所确定的部件的状态),并且生成输出信号以写入与不同的联网装置的状态相对应的值。这样的状态信息可以通过状态增量(delta)43进行通信。例如,在图2所描绘的实施例中,控制/监视装置30和HMI 26可以使用状态增量43来传送状态信息。进一步,编程终端46可以使用状态增量43与HMI26和控制/监视装置30传送状态信息。在本实施例中,与文本名称相对,可寻址的寄存器32可以通过唯一的标志符来引用,以提供对其中存储的数据的访问。这样的标识符如在以下详细地描述的那样可以在特定的控制/监视装置34的范围内是唯一的,并且稍后可以成为系统范围内唯一的标识符。
[0046] 在控制环境中,控制和监视系统24的各种对象18(例如控制程序、标签、模块配置以及HMI屏幕)的状态可以存储在控制和监视系统24的各种部件(例如编程终端46、控制/监视装置30、I/O模块和/或HMI终端26)的存储器(例如硬盘驱动器、只读存储器和/或随机存取存储器)中。随着对控制环境对象18的状态信息做出改变,状态信息可能需要与驻留在其它部件上的状态信息同步,使得部件可以连续地获知控制和监视系统24内的对象18的状态。根据本实施例,为了随时了解状态信息,存储状态信息的自动化部件可以接收被称为状态增量43的数据(例如已经变化的状态元素),同时不接收尚未变化并因此已经存在于存储状态信息的各种部件上的存储状态信息中的状态元素。例如,状态增量43可以包括由于在控制和监视系统24内的动作而变化的任何数据。通过提供状态增量43而不提供没有变化的状态信息,可以观察到增加的效率。例如,在具有100个状态元素的常规的控制和监视系统24中,100个状态元素中的每一个均可以提供到存储对象的状态信息的每个部件。通过仅提供状态增量43,控制和监视系统24的部件可以只传输变化的元素的数据。因此,如果100个状态元素中仅一个元素变化,则不会传输其它99个元素,因此相对于常规系统减少了网络流量。进一步,仅提供状态增量43可以减少无意地改写在控制和监视系统
24内的其它地方产生的状态变化信息的可能性。例如,在以上提及的100个状态元素的情况下,当所有的100个状态元素均传输到其它部件时,99个没有变化的元素可能导致对其它地方的那些99个部件中的一个做出的变化的改写。通过仅提供变化的元素(例如状态增量43),99个没有变化的元素将不会受到发生变化并且与其它部件通信的一个元素的影响。
[0047] 在工业控制和监视的环境下,装置元件17可以仿效物理部件的范围的操作,例如瞬时接触按钮、具有延时输出的按钮、开关、模拟仪表显示等。许多预编程的装置元件17可用于由HMI 26使用。这样的功能模块可经由网络访问,或者可以驻留在HMI 26上,或者驻留在直接链接至HMI 26的分开的装置上。以这种方式,HMI供应者或者软件供应者可以提供许多可能的构件块,根据所述构件块,可以编程屏幕和复杂的控制和监视功能。实际上,可用的装置元件17的库44可以驻留在HMI 26上以便于HMI 26的配置。屏幕指令可以基于操作者输入来调用装置元件17或对象18以用于执行期望的功能,并且这些指令可以被编程为预编程的元件的版本。例如,操作者可以通过在触摸屏上触摸位置或者在在键盘上按下按键来提供初始输入。基于屏幕指令和与指令相关联的装置元件17或对象18(例如与特定位置触发调用或者预配置的装置元件17的执行相关联),于是可以执行期望的功能。因此,操作者能够与过程进行交互,典型地为改变屏幕视图、写入寄存器或者命令产生其它的输出或控制信号。在独立的实施中,交互可以简单地再调用或存储数据、改变屏幕等。
[0048] 在一些HMI具有许多这样的屏幕以及大量的装置元件17的情况下,可以采用一个或多个分开的界面屏幕。每个装置元件17又可以被唯一地编程以考虑特定的输入、执行特定的功能以及生成用于特定输出的信号。多个这样的装置元件17可以被加载并驻留在如下所述的单一软件“容器”(例如ActiveX容器)中。
[0049] 在本实施例中,装置元件17或者对象18中的每一个均包括对象标识符,以便于通过控制和监视系统24的部件引用的对象18的内部管理。对象标识符可以充当用于在控制和监视系统24内识别对象18以及管理对象18之间的引用的主关键字。对象标识符可以是由控制和监视系统24分配的数字,其与系统中的任何其它对象标识符相比是唯一的。因此,相同的对象标识符可以被用来识别HMI 26、控制/监视装置30和/或编程终端46中的对象18。任何的系统部件(例如控制/监视装置30、HMI 26、编程终端46)可以被配置成通过引用与对象18相关联的对象标识符来访问特定地址处的对象18。例如,HMI 26可以以这种方式访问对象18,以提供由对象18表示的状态信息,以便在HMI 26上生成可视化。如之前所讨论的那样,例如在控制/监视装置30的控制逻辑中,对象18可以由其它对象18引用。尽管不同的系统部件可以通过引用相关联的对象标识符来访问对象18,然而该对象标识符可以对于用户不可访问(或者不可见)。结果,用户不能操纵内部对象标识符。
[0050] 为了维护系统内每个对象标识符的唯一性,在创建对象18时由控制和监视系统24分配对象标识符。在特定的实施例中,使用全局唯一标识符(GUID)算法来生成对象标识符。这可能需要控制和监视系统24的操作系统(例如38)使用32位伪随机数字生成器来针对存储在控制/监视装置30内的每个新对象18生成数字。贯穿控制和监视系统24,该数字可以用作用于管理所有对象18及其性质的主数据库关键字。亦即,对象18中的每一个均可以存储并保留在根据与每个对象相关联的唯一对象标识符数字所组织的数据模型内。
进一步,该数据模型可以分布遍及控制和监视系统24的不同部件,允许所有的系统部件通过引用其对象标识符来访问与特定的对象18相关的期望信息。可以使用不同的编程技术(例如C++、Java和/或C#)来实施或引用对象标识符。在保证对象标识符在跨越所有的系统部件为唯一的实施例中,重要的是一旦数字被给出,则不能再分配该数字。例如,任何时候复制对象18(例如通过复制/粘贴功能)时,均要分配新的对象标识符。用户可以通过编程终端46使用复制/粘贴功能以将对象18的副本的实例化请求发送到操作系统38。当接收到对象18的副本的实例化请求时,操作系统38可以生成另一个唯一的对象标识符以用于与数据模型中的对象18的副本相关联。如果删除对象18中的一个,则只要在控制和监视系统24内仍然引用该对象18(例如其它的对象通过被删除对象的对象标识符来引用该被删除对象),其对象标识符可以被维护。然而,如果被删除的对象的所有引用也被删除了,则对象标识符不再存在于系统的数据库中。在特定的实施例中,当实例化新对象时可以将删除的对象标识符再分配给新对象。
[0051] 应当注意的是,唯一对象标识符可以包括基于在控制和监视系统24的其它级(例如项目、部件等)为唯一的标识符而分配的对象标识符。在一些实施例中,例如,被用来管理对整个系统的级别上的对象的引用的唯一标识符可以基于项目级对象标识符。亦即,被加载到控制和监视系统24上的项目可能已经包括了在该项目级被唯一识别的若干对象18。项目的对象18每个具有它们自己的对于用户不可见的唯一标识符,以用于维持项目内的这些对象18之间的连接。当项目被连接到控制和监视系统24时,操作系统38可以通过将唯一的系统级对象标识符分配给在该系统级的项目的对象18中的每一个来将所述对象18实例化。这些对象标识符至少基于项目级对象标识符和与项目相关联的项目标识符。例如,分配给对象的对象标识符可以包括唯一的项目级对象标识符,其中所述唯一的项目级对象标识符附加有数字(识别系统内的项目)。作为另一个例子,可能存在经由映射而分配给对象18的唯一的系统范围的对象标识符,所述映射既考虑对象18所位于的项目又考虑对象
18在该项目内的身份。其它项目或部件然后可以经由其提取的系统级对象标识符来引用对象。即使在单独的项目或部件之内根据不同的格式维护对象,操作系统38也能够针对每个对象使用相同的格式来生成系统级对象标识符。这导致了贯穿控制和监视系统24的流线型对象身份管理。
[0052] 可以利用对象标识符来贯穿控制和监视系统24传播对象18的改变。因为每个对象18包括唯一的标识符,所以系统能够跨越其不同部件保持一致的数据模型。这种分布式数据模型可以允许在一个部件中进行的对数据模型的改变传播到所有其它部件。改变可以从控制/监视装置30传播到HMI 26,从设计环境软件部件传播到实时部件,等等。由于对象18被改变,并且该改变(例如通过状态增量43)被传播遍及系统的任何引用对象18的地方,所以对象标识符保持一致。
[0053] 令人期望的是,用户通过引用与对象18相关联的对象名称来访问特定对象,该对象名称是用户可访问的,但对象标识符保持不可访问。换言之,对象名称可以是用户可以实际看到(例如在HMI 26的屏幕上)的文本名称。每个对象名称指向系统的唯一的对象标识符之一。对象名称与对象18的其它数据及其相关联的对象标识符一起存储在数据模型中。当用户期望对对象18进行配置时,用户可以通过引用与对象18相关联的对象名称或逻辑名称来访问对象18,因为这出现在编程终端46上的名称。使用对象浏览器(例如48)或在一些情况下通过直接输入期望的对象名称,用户可以通过HMI 26或编程终端46来访问对象18。控制和监视系统24然后通过引用对象标识符来执行任何期望的配置。对象名称可以是由控制和监视系统24的用户分配的文本名称。在一些实施例中,对象名称可以由控制和监视系统24提供。例如,可以使用存储在库44中的特定对象类型来生成对象18,其中对象类型包括缺省的文本名称。尽管控制和监视系统24本身通过引用对象标识符从数据模型访问对象18,但是与某些对象18相关联的数据的历史日志可以根据与对象18相关联的对象名称来可视化地布置。例如,用户可以通过HMI 26来请求与某些对象18有关的数据的历史日志。操作系统38可以通过引用与对象18相关联的对象标识符来从各种部件(例如控制/监视装置30)请求数据。然后,HMI 26提供根据对象名称布置的从部件接收到的数据的可视化。这允许对象标识符对于用户保持不可见。
[0054] 有时令人期望的是,用户改变与特定对象18相关联的对象名称。例如,与在对象18的初始配置和实例化期间提供的对象名称相比,用户可能希望在控制和监视系统内包括用于对象18的更具有描述性的名称。在一些示例中,用户可以针对显示在屏幕上(例如在HMI 26上)的文本选择不同的本地化语言,并且希望将本地化语言的改变扩展至在屏幕上显示的文本对象名称。因为自动化控制和监视系统24的所有部件通过引用相关联的对象标识符来访问对象18,所以对象名称可以发生改变,而不影响访问对象18的任何部件的操作。这包括在控制/监视装置30中以及在HMI 26中的操作。亦即,控制/监视装置30可以通过引用在对象的控制逻辑中使用的对象18的未发生改变的对象标识符来维持当前的过程操作。同时,HMI 26可以通过引用相同的未发生改变的对象标识符来更新具有新的对象名称的视图。名称改变还可以传播至用于提供对对象数据的访问的快捷方式的名称。对控制/监视装置30的数据模型中的对象名称进行的改变(例如通过编程终端46)被分发给HMI 26内的数据模型,即使引用这些对象18的可视化在HMI 26上不是开放的。以此方式,用户可以对贯穿控制和监视系统24所引用的任何对象进行重命名,并且系统使用新的名称继续运行,并且名称的改变不影响对象间的引用。
[0055] 可以通过直接与HMI 26本身上的面板或屏幕(如果存在的话)进行交互来配置HMI 26,但是在许多情况下可以从编程终端46远程执行配置。例如,通过浏览器48或类似的应用程序将访问直接提供给常驻库44和/或操作系统38和应用程序40。在当前的实施中,在编程终端46处不需要其它专用软件。事实上,驻留在HMI 26上的服务器42可以提供对库44中的装置元件17的访问。通过将库44中的装置元件17直接存储在HMI 26上,可以降低版本冲突等风险。另外,HMI 26可以直接连接到编程终端46,或可以通过引用分配给HMI 26的IP地址(互联网协议地址)而被访问。
[0056] 可以使用访问控制方案来限制改变屏幕和装置元件17的能力。例如,可能会需要密码或用户访问状态来获得这样的访问。进一步,在一些实施例中,当被耦合到编程终端46时,编程终端自动地将HMI 26或HMI 26驻留在其上的终端识别为装置(例如类似于外部存储器或驱动器)。从而,一旦连接到编程终端,HMI 26可以被简单地“识别”为可以被访问的装置(提供下述配置屏幕和工具)。
[0057] 一旦之后驻留在HMI 26上的装置元件17对于编程终端46是可访问的,HMI 26的方面就可以通过通信链路从编程终端46直接在HMI 26上进行修改或更新。例如,用户可能希望更新特定的HMI图形以提供数据,例如历史数据或与正从新安装的传感器34接收到的信息有关的趋势。此外,用户会发现令人期望或方便的是,在离线模式下更新HMI图形以呈现这样的数据(例如无需立即实施所述改变)。在这样的情形下,用户可以通过编程终端46链接到可用装置元件17的库44,并且在开发环境中使用它们来修改HMI图形或功能。
[0058] 应当注意的是,可以将额外的装置元件17添加到库44。例如,如果趋势装置元件17没有驻留在HMI 26上,则用户可以将这样的元件从驻留在编程终端46上的配置库50下载到HMI 26。可替代地,或者直接向HMI 26或者通过编程终端46,用户可以从经由网络(例如因特网)可访问的资源库52访问趋势装置元件17。这会是特别有利的,因为新的和改进的装置元件17可以单独地或定期地下载到HMI 26,从而增加新的功能,而无需新转换程序、HMI操作系统或运行时间环境软件或设计时间环境软件的定期发布。开发环境可以提供到这样的库的链路。进一步,在使用嵌入代码的实施例中(例如操作系统、服务器软件、装置对象等),因为嵌入代码驻留在HMI 26中,所以可以避免与嵌入代码的版本冲突,并且可以降低编程终端软件更新的必要性。
[0059] 为了跟踪控制和监视系统24的一个或多个部件的状态信息,控制和监视系统24的部件可以使用表示控制和监视系统24的各个方面的分布式数据模型。例如,分布式数据模型可以使表示控制和监视系统24的数据模型的多个缓存副本能够存在于控制和监视系统24之内(例如在控制和监视系统24的一个或多个部件处)。分布式数据模型可以结合增量(delta)脚本和分布式命令处理来进行工作。增量脚本可以使控制和监视系统24的一个或多个部件能够:确定数据模型的状态改变;生成只包含对数据模型和/或整个数据模型的改变的增量脚本;以及将增量脚本提供给控制和监视系统24的其它部件。其它部件可以使用增量脚本并将包含在增量脚本内的数据应用到数据模型的本地缓存副本(例如包含在控制和监视系统24的部件之一处的分布式副本)。
[0060] 为了更好地图示设计时间环境与运行时间环境之间的关系,图3提供了表示HMI26与编程终端46之间的交互的高级流程图。通常,用于HMI26和编程终端46的平台会包括操作系统或执行软件38、应用软件40以及任何通信软件、微处理器、网络接口、输入/输出硬件、通用软件库、数据库管理、用户接口软件等(在图3中未具体示出)。
[0061] 在示出的实施例中,设计时间平台和运行时间平台在HMI 26内交互。设计时间平台将用作设计时间环境16的视图提供给台式个人计算机平台(例如运行合适的操作系统38如微软视窗OS、MAC OS或Linux),并且运行时间平台通过操作系统(例如微软视窗OS、MAC OS、iOS、Android或Linux)与设计时间平台进行配合。设计时间平台提供动态服务器内容54,而运行时间平台显示HMI 26本身上的视图(如果在HMI 26上设置有显示屏的话)。
设计时间环境16可以显示在浏览器48(例如Web浏览器或其它通用观察器)中,或者设计时间环境16可以被实施为不包含在浏览器48中的应用程序。
[0062] 图3以非常高的层级示出了设计时间环境16如何与操作系统38、应用程序40和运行时间环境14进行交互。箭头56表示HMI 26与编程终端46之间的内容的动态交换。通常,与设计时间环境16的交互是初始配置HMI屏幕或可视化、装置元件17、它们的功能以及交互的设计者58的任务,或者是重新配置这样的软件的设计者58的任务。设计者58能够初始提供或改变分配给设计时间环境16中的各种装置元件17或对象18的对象名称。
运行时间环境14通常直接与HMI 26处的操作者60进行交互。操作者60能够观察HMI 26上显示的对象名称的改变。在某些实施例中,操作者60可以为HMI 26上显示的运行时间信息选择新的本地化语言。应当注意的是,尽管在一些实施例中设计时间环境16具有特定需要,但它会严重依赖于操作系统38、应用程序40和运行时间环境14。设计时间环境
16和运行时间环境14可以利用某些基本技术(例如DHTML、HTML、HTTP、动态服务器内容、JavaScript、网络浏览器)来分别在设计时间平台和运行时间平台中操作。尽管在示出的实施例中运行时间环境14和设计时间环境16驻留在分开的平台中,但是在一些实施例中,它们可以驻留在同一平台中。例如,设计时间平台和运行时间平台可以被配置为或考虑为单个平台。
[0063] 在本实施例中,在一个部件中所进行的对对象名称的改变可以自动地分发给通过对象的对象标识符访问对象18的所有其它系统部件,而无需用户的任何干预。例如,设计者58可以改变控制/监视装置30中的对象名称,无论控制/监视装置30是处于离线还是在线。该变化自动地发送给HMI 26,并且设计者不必手动调整HMI 26内的名称变化。名称变化将会立即变得对于操作者60可见,但在控制/监视装置30的控制操作中很少有或没有变化。这是因为对象名称是与对象标识符相关联的基本属性。对象名称与对象18的其它属性和对对象的18的引用一起贯穿系统在这些对象标识符的基础上进行管理。
[0064] 在本发明的一个实施例中,采用了设计时间网络实施方案。该设计时间网络实施方案通过使用具有来自HMI的DHTML支持的网络浏览器(例如48)来提供设计时间平台上运行的软件的速度和灵活性,如通过图3中的动态服务器内容54所表示的以及通过下面所描述的那样。DHML用于执行设计时间环境16中的网络内容的动态操纵。进一步,动态服务器内容54被使用在HMI中以将动态网络内容提供给设计时间环境16。这种动态客户机-服务器环境允许网络浏览器模拟设计时间平台上运行的应用程序,而无需针对相关处理器进行编译的软件。在其它实施例中,可以通过联网的客户端装置而不是通过基于网络的实施在服务器上直接访问设计时间环境16。
[0065] 图4是示出了根据本技术的实施例的设计时间环境中的一个或多个装置元件的示图。该图包括通过显示器100(例如用于浏览器显示的屏幕)、性质编辑器102以及HMI26之间的关系所示出的交互。
[0066] 由配置屏幕或显示器100表示的设计时间环境包括静态内容104和动态内容。动态内容包括与任何所显示或表示的装置元件106(例如虚拟的通/断按钮、仪表)相对应的图像。在一个实施例中,图像由HTML中的图像标签来指定,并且是由HMI 26创建的JPEG文件的一部分。图像标签可以引用与控制/监视装置30的数据模型中的对象18相关联的对象标识符。HMI 26的处理器可以基于对象标识符来确定对象18在系统内的可寻址位置,使得图像标签可以在该可寻址位置处访问对象18。屏幕100的静态内容104可以由ASP服务器创建,或者它可以预先存在于HTML文件中。应当注意的是,在一些实施例中,被指定的设计者仅可以编辑静态内容104。
[0067] 在图4的表示中,装置元件表示106包含在视图容器108之内。如本领域技术人员将会意识到的那样,容器一般限定处理空间的一部分,在所述处理空间中,某些装置元件是开放的并准备使用。容器108因而可以对应于第一视图容器,该第一视图容器仅包括在当前屏幕之内可看到的元件。如上所讨论的那样,可以在HMI 26中提供许多这样的屏幕。可以在其它视图容器如容器110中设置其它屏幕如可替代的控制或界面屏幕。一般而言,为了加速HMI 26的操作(例如在屏幕视图之间变化),这样的视图容器被预定义并通过各个装置元件的定义而彼此相关联,藉此它们相关联,或者在这之内提供装置元件的表示。全局容器112可以被定义为包括各种视图容器所必需的全部装置元件以及可能没有在任何视图容器中表示的其它元件。如图4所示,因此,视图容器108包括虚拟按钮106,该虚拟按钮106执行“点动(jog)”功能,并且由第一屏幕中的表示来显现。新容器110包括几个部件如“开始”按钮114、“停止”按钮116、虚拟仪表118和数字读出120。全局容器112然后会包括全部的用于各种视图容器的这些装置元件以及可视装置元件的操作所需要的但本身不可视的任何装置元件122。这样的装置元件可以包括执行计算、趋势、通信和宽范围的其它功能的元件。
[0068] 图4还示出了性质编辑器102,在该性质编辑器102中,用户可以访问元件106的各种性质。如上面所讨论的那样,元件106还可以包括与元件106相关联的文本和连接,其还可以由用户通过类似于性质编辑器102的编辑器进行配置。用户可以配置或更新对象名称,所述对象名称可以显示在屏幕100中和/或在控制/监视装置30的控制逻辑中使用。在某些实施例中,用户可以利用性质编辑器102来针对性质编辑器102和/或屏幕100上可视的文本信息选择许多本地化语言中的一种。
[0069] 在实施例中,性质编辑器102可以通过从浏览器(例如图2的浏览器48)到驻留在HMI 26上的服务器96(例如HTTP服务器)的查询串来与HMI 26交互。服务器96与包括基于模块的互连机制12如动态链接库(DLL)的ASP服务器98相配合,以接收和响应查询。DLL允许将可执行的例程存储为分开的文件,其在需要的时候可以被加载或可以被程序引用。在上面阐述的例子中,当接收到调用时,页面被ASP服务器98重新加载,并且查询串被初始解析,导致移动命令的评估。服务器侧脚本然后访问由图像106表示的装置元件17并更新其位置性质。新的性质信息然后被更新到页面上,并且页面被传送至浏览器48。
[0070] 现在已经讨论了通过唯一的对象标识符在控制和监视系统24内保持对对象18的引用的益处,我们将讨论对象及其对象标识符可以贯穿控制和监视系统24布置在数据模型中的方式。作为例子,图5示出了装置元件17在HMI屏幕130上的可能的局部配置,示出了与控制和监视系统24中的对象18相关联的对象名称132。在所示实施例中,对象名称132是“TT101”,其被提供为与对象18相对应的文本源134。该对象名称132是用户可访问的,该用户可以通过选择或输入对象名称132来引用对象18。一旦用户输入对象名称132,系统就通过对象标识符136来管理该关联。当系统访问对象18(例如用于配置或请求状态信息)时,控制和监视系统24基于对象18的对象标识符在可寻址位置处访问对象18。
对象标识符136没有显示在屏幕130上,这是因为它通常是用户不可访问的;代替地,控制和监视系统24使用对象标识符136来检索显示给用户的对象名称132。如果用户改变对象名称132,或改变本地化语言,则对象标识符136将保持一致,使得保持对对象18的引用,即便文本源134进行了更新从而显示新的或本地化的对象名称。
[0071] 在一些实施例中,控制和监视系统24可以包括由相同的HMI 26支持的多个项目。每个项目可以限定HMI 26与链接到该HMI 26的不同的控制/监视装置30的交互。这可以通过对HMI 26中的不同项目内的对象18的引用来完成。在这样的系统中,可以通过变化的范围的对象标识符如系统级标识符和项目级标识符来识别对象18。图5示出了变化的范围的这些标识符的交互。
[0072] 在所示实施例中,对象标识符136与项目级对象名称139、项目级对象标识符140和项目标识符142相关联。在某些实施例中,对象标识符136可以由操作系统至少部分地基于项目级对象标识符140和项目标识符142来生成。响应于用于表示特定项目属性的对象18的实例化的请求,可以通过操作系统38识别项目级对象标识符140。项目级对象标识符140与该项目中的任何其它项目级标识符相比是唯一的。以此方式,项目级对象标识符140对于仅在特定项目范围内引用对象18是有效的。项目级对象标识符140可以基于多种算法(例如GUID算法)来生成,但项目级对象标识符140可能无法保证对系统是唯一的。
项目标识符142识别控制和监视系统24内的项目,并且与系统中的任何其它项目标识符相比是唯一的。当项目引用首次被添加到HMI 26时,或者当与项目相对应的控制/监视装置
30与HMI 26相链接时,响应于用于项目的对象的实例化的请求,操作系统可以生成项目标识符142。
[0073] 在所示实施例中,项目级对象名称139与对象名称132(其为系统级对象名称)相同。然而,在某些实施例中,项目级对象名称139(其为与该项目级的对象18相关联的名称)可以与系统级对象名称132不同。在一些示例中,系统级对象名称132可以是项目级对象名称139到由控制和监视系统24所确定的不同名称空间的映射。亦即,操作系统38可以在将项目引入到控制和监视系统24中时确定与对象18相关联的项目级对象标识符139。然后,操作系统38可以将项目级对象名称139映射到系统级对象名称132。该映射可以至少部分地基于项目标识符142。例如,当项目级对象名称139是TT101时,可以将系统级对象名称132分配为TT101-2,并且它是系统中的第二项目,如基于唯一项目标识符142所确定的那样。当项目级对象名称139改变(例如通过用户)时,操作系统38可以检测到名称的改变并分配新的系统级对象名称132以匹配更改后的名称。
[0074] 在所示实施例中,项目标识符142与项目名称146(例如LogixCtrl1)和项目生成标识符148相关联。可以采用项目生成标识符148来确保项目的在某些项目级对象标识符140与存储在其上的项目级对象名称139之间的关联保持有效。当重新配置这些关联时,可以提供新的项目生成标识符148。以此方式,当基于生成标识符148确认了项目级对象标识符140时,操作系统38可以基于项目标识符142和项目级对象标识符140来生成对象标识符136。检测到项目生成标识符148的改变可以触发过程以返回所引用的项目,并且基于项目级对象名称139来更新与项目相关联的相应项目级对象标识符140的全部(一个或多个)。这样的布置允许针对项目级对象标识符140、对象标识符142和/或项目生成标识符
148的不同组合分配不同的对象标识符136。以此方式,对象18可以在系统级被唯一地识别,即便两个项目中的项目级对象标识符140可能是相同的。
[0075] 图6提供了具有相同的项目级对象标识符140的两个对象160和162的例子。第一个对象160包括与通过第一控制器(例如“控制器-1”)操作的电机(例如“电机1”)有关的数据。第二个对象162包括与通过另一个控制器(例如“控制器-33”)操作的开关(例如“限位开关3”)有关的数据。这两个对象160和162具有相同的项目级对象标识符140(例如#2)。但是,对象160和162可以彼此消除歧义,因为它们是具有唯一的项目标识符142的不同项目(或装置)的一部分。因此,对象160和162在系统级通过对象标识符136彼此区别,其中所述对象标识符136至少部分地基于项目级对象标识符140和项目标识符142。这在当对象从已有项目中复制时且针对新项目中的对象18生成对象标识符136时是特别有用的。此外,如果对象18之一从第一项目转移至第二项目,则可以至少部分地基于第一和第二对象的项目标识符142来修改与对象18相关联的对象标识符136。
[0076] 对象标识符136用于访问和保持控制和监视系统24中的对象18的身份,允许用户改变与对象18相关联的对象名称132。如前面所提到的那样,对对象名称132的这样的改变可以包括用于显示对象18的本地化语言的改变。为了说明这一点,图7是用于显示经由对控制和监视系统24的某些对象18的引用而监视的数据的HMI 26的屏幕170。由于该数据是通过不可访问的对象标识符136被引用的,所以对象名称132可以被更改。用户可以通过语言选择按钮172选择不同的本地化语言。当选择了不同的语言时,对象名称132可以在对象名称132被系统分配时自动更新为新语言。亦即,HMI 26可以包括被映射为相同对象标识符136的、不同语言的几个对象名称132。因此,当选择新的语言时,文本信息动态地更新至合适的本地化文本。同样地,在屏幕170上显示的文本将被显示以新的语言,包括对象名称132。这允许HMI 26的相同的应用程序40在多个国家使用。
[0077] 图8是示出了用于访问控制和监视系统24的对象18的方法180的过程流程图。应当注意的是,方法180可以被实现为计算机或软件程序(例如代码或指令),该计算机或软件程序可以由处理器(例如HMI 26中)执行以执行方法180的步骤中的一个或多个。此外,程序可以存储在包括至少集体地存储这些指令或例程的至少一个有形的非暂态计算机可读介质的任何合适的制造产品(例如控制和监视系统24的存储器或存储部件)中。术语非暂态仅仅表示介质不是信号。
[0078] 方法180包括通过控制和监视系统24的处理器来确定(块182)由用户选择的对象18。处理器可以例如基于通过编程终端46或HMI 26的操作者输入来确定对象18。用户可以基于用户可访问的对象名称132来选择对象18。方法180还包括通过处理器确定(块184)与对象18相关联的对象标识符136。处理器可以访问控制和监视系统24内的将对象
18和对象标识符136存储并链接的数据模型,以确定与所选择的对象18相关联的对象标识符136。此外,方法180包括至少部分地基于所确定的对象标识符136来确定(块186)对象
18的地址,并且在该地址访问(块188)对象18。对象18可以在相同地址处通过指向相同对象18的任何数量的不同对象名称132的引用而被访问。这样的名称可以相对于层次链中的不同根来识别对象18,或基于相对于特定部件保持的名称来识别对象18。对象标识符
136跨越与对象18相关联的所有不同的可能对象名称132而坚持不变,允许用户通过选择任何相应的对象名称132来引用同一对象18。
[0079] 图9是进一步说明用于访问对象18的方法180的块186的步骤的过程流程图。具体地,图9示出了当对象18处于运行在控制和监视系统24上的特定项目内时如何确定(186)用于访问对象18的地址。这可以包括确定(块190)寄宿对象18的项目。这对于包括链接到同一HMI 26的多个项目的控制和监视系统24特别有用,尤其是如果该项目包括相同项目的多个副本的情况。可以基于对象18的对象标识符136来确定该项目,因为该对象标识符136与项目级对象标识符140和项目标识符142两者相关。在一些实施例中,用户可以通过HMI 26或编程终端46选择与对象18一起的项目。然后处理器可以确定(块
192)与项目相关联的项目标识符142,并且至少部分地基于项目标识符142来确定(块194)地址。
[0080] 通过在对象18实例化时生成唯一的对象标识符,控制和监视系统24的本实施例相对于用于管理数据对象身份的传统自动化系统提供了几个益处。例如,通过经由对象标识符136来管理和坚持对象之间的引用,该系统可以支持所引用对象的对象名称132的改变,而无需更新引用它的对象。控制和监视系统24的对象之间的所有引用可以根据对象标识符136而被保持。即使使用了用于生成唯一的项目级或部件级标识符的不同机制,这样的差异总是可以通过使用系统级的相同形式的标识符而提取出来。由于这些对象标识符136可以以相似的方式生成并具有相似的格式,所以控制和监视系统24能够以紧凑且高效的方式来存储和浏览对象引用。贯穿系统而不改变对象标识符的使用还可以使得能够实现对各种对象18执行或由各种对象18执行的操作的可追溯性,包括对象18的名称变化。进一步,对象标识符136允许本地化语言的改变以扩展HMI屏幕上显示的对象名称132。项目在HMI 26中复制,即使具有相同的对象名称132,也不发生名称变化冲突。这些益处特别允许控制和监视系统24更高效地操作,并且具有较少的操作者的干预来管理数据资源的身份。
[0081] 尽管在此仅示出和描述了本发明的某些特征,但是本领域技术人员可以进行许多修改和改变。因此应当理解的是,所附权利要求意在覆盖落入本发明的真实精神内的所有这样的修改和改变。