监督过程控制和制造信息系统应用程序的方法和配置装置的制作方法

文档序号:6582549阅读:163来源:国知局
专利名称:监督过程控制和制造信息系统应用程序的方法和配置装置的制作方法
技术领域
本发明涉及计算机化的过程控制网络。更特别地,本发明涉及监督过程控制和制 造信息系统。这类系统通常在过程控制网络中的控制层上执行,以便为低层控制元件(例 如,可编程逻辑控制器)提供指导。

背景技术
工业过程控制技术中的显著的进展已极大地改善了工厂和车间操作的各个方面。 在引入如今的现代工业过程控制系统之前,工业过程是由人和基本的机械控制来操作/控 制的。结果,对过程的控制的复杂度和程度受到速度的限制,利用该速度,一个或多个人可 以确定各种过程状态变量的目前状态,将该当前状态与所需操作水平进行比较,计算纠正 的动作(如果需要的话),并且改变控制点,以便影响状态变量的变化。 通过对过程控制技术的改进,已使得经由被编程的控制处理器能够控制大得多且 更加复杂的工业过程。控制处理器执行读取过程状态变量并且基于状态变量数据和所需的 调整点信息来执行控制算法,以呈现关于工业过程中的控制点的输出值的控制程序。(一旦 建立调整点)这类控制处理器和程序就支持自动启动运行的工业过程。 尽管工业过程能够在以前所建立的调整点处的被编程的过程控制器的控制下进 行操作,而无须干预,但是,仍然需要对控制处理器及其关联的过程的监督控制和监控。由 处于多层过程控制网络的应用程序/人接口层的人和高层控制程序来提供这类监督。通常 需要这类监督,用于验证低层过程控制器之下的受控过程的正确执行,并用于配置该受控 过程的调整点。 由于过程控制设备和这些过程本身有变化,因此对制造/过程控制系统进行修 改。这样,在这类实例中,重要的是提供用于迅速配置/重新配置(而不会涉及)该系统 的未改变的部分的装置。提供用于在进行这类更改的同时将该工业过程的操作的中断减到 最少(例如,将该过程停顿的时间减到最少)的装置也很重要。 鉴于不断改进监督过程控制和制造信息系统的重要性和需求,强烈希望不受困于 用于监督过程控制和制造信息系统的单一结构。过程控制系统发生变化,需要具有适应这 类变化(不管其大小如何)的高层系统。另外,不太灵活的监督过程控制和制造信息系统方案要求过程控制安装的设计者考虑应用程序的长期要求,因为一旦该应用程序被安装,对它的修改相对来说是不灵活的。 但是,这类应用程序不灵活性在保守的工业控制系统市场中不合需要。过程控制工业倾向于进行引导,这些设计者经常不完全知道最终将被并入最后的安装的自动化的全部范围和形式。以后在车间的使用期内,当增加新的功能性时,这些新的控制系统组件利用或合并现存的系统。在该过程控制系统有重大改变的这类实例中,将不同的结构并入已已安装的监督过程控制应用程序有各种优点。
发明概述 根据本发明的一个方面,可以用多层层次方式将监督过程控制和制造信息系统应用程序分配给多个联网计算机设备,其中,低层支持已安装的高层应用程序组件。应用程序对象驻留在过程控制系统内的分布式应用程序结构和模型实体的相对较高的层次处。引擎对象在运行时间环境中支持这些应用对象的执行。这样,直到部署与应用对象关联的主机引擎对象,才部署这些应用对象。引擎对象由平台对象来支持。这些平台对象对应于用于执行这些引擎对象和关联的应用对象的物理计算机系统组件。 根据本发明的另一个方面,配置装置为监督过程控制和制造信息应用程序指定了部署模型。该部署模型将应用对象与特定的物理计算设备联系起来,并提供这些物理计算设备之上的各个对象的分布视图。特别是,该配置装置包括一组平台定义,这组平台定义指定该应用程序中的主机引擎可用的一种或多种物理计算设备类型。 一组引擎定义指定在这些物理计算系统之上加以执行的引擎,从而定义了由这些物理计算设备支持的服务类型。一组区域定义指定应用对象的逻辑分组。另外, 一组层次关系指定对这些物理计算系统中的特定物理计算系统的引擎分配以及对这些引擎中的特定引擎的区域分配。部署视图发生器根据这组层次关系来创建这些物理计算设备、引擎和区域的层次视图。
根据本发明的另一个方面,监督过程控制和制造信息系统应用程序配置装置包括各种视图。这些视图促进了对过程控制和制造信息软件的配置和部署。该配置装置包括与车间内的设备和实体的功能相对应的一组监督过程控制系统对象。每个对象中包含关于这些设备和功能的关联的功能。另外,该监督过程控制系统对象具有与其关联的一组属性,这组属性指定这些监督过程控制系统对象之间的关系。 该配置装置也包括视图发生器,这些视图发生器用于根据这些监督过程控制系统对象之间的联系来呈现这些监督过程控制系统对象。这组视图包括至少第一个视图,用于展示过程/车间及其受监控组件的逻辑布置;以及第二个视图,用于展示执行该应用程序的计算机系统之上的对象的物理部署。
附图简述 所附权利要求书详细陈述了本发明的各个特点。通过以下结合附图的详细描述,可以最佳程度地理解本发明及其目标和优点。在这些附图中

图1是包括多层监督过程控制和制造信息应用程序的示范监督过程控制网络的示意图; 图2描绘了关于应用程序的多层对象方案; 图3描绘了与包括该应用程序的各个对象的共同部分关联的一组属性;
图4描绘了与平台对象的特定平台部分关联的一组属性;
5
图5描绘了与引擎对象关联的一组属性;
图6描绘了与调度程序对象关联的一组属性;
图7描绘了与示范应用对象关联的一组属性; 图8是概述一组步骤的序列图,这组步骤用于启动实现实现本发明的多层应用程序; 图9是概述一组步骤的序列图,这组步骤用于将对象移到包括多个应用引擎的网络中的另一个引擎; 图10是描绘简单的车间过程的受控组件的示意图; 图11是描绘在逻辑上被分成各个区域的这些简单的车间过程组件的示意 图12是描绘图11的车间布置中的区域分组的层次树形结构;
图13是层次树形结构,展示与图10中所描绘的车间过程关联的监督过程控制应用程序的对象的派生派生关系; 图14a是图10中所描绘的车间过程的混合器容器部分的示意图; 图14b是层次模型视图,描绘了与图14中所描绘的混合器容器相对应的
MixerVessel复合应用对象模板的包含关系; 图15是层次树形结构,展示与系统的硬件(例如,平台、引擎和设备集成对象)关联的应用程序的各个部分的派生派生结构; 图16是层次树形结构,展示包括与这些应用对象关联的区域的应用对象布置的模型视图;以及, 图17是层次树形结构,展示该应用程序到一组计算机设备的部署视图,这组计算
机设备由处于该层次的顶层的所标识的平台对象来表示。 示范实施例的详细描述 鉴于已有监督过程控制应用程序有关适应所更改的过程控制系统结构的缺点,所描述的监督过程控制和制造信息系统应用程序结构允许用户自由地重新构建(例如,增大、重新配置等)这类应用程序,而对现存的基础过程控制系统工程所产生的影响达到最小。特别是,这里举例描述的所揭示的系统结构包括多个层,其中,每个基础层显示出与下一个较高层的支持关系。但是,要注意,这类支持关系没有扩展到通信,因此,到/来自支持层的通信不需要通过其主机。根据所揭示的分层应用程序结构,由引擎来支持应用对象。该引擎由与(例如)具有基础结构软件的个人计算机相对应的平台来支持。中间引擎层从该平台结构中抽象出该应用对象。这样,包含该应用对象的物理系统内的位置不需要由该应用对象来寻址。 所揭示的监督过程控制和制造信息应用程序的一个方面是对象层次,该对象层次释放与其上驻留有这些应用对象的计算系统硬件关联的设计限制的高层应用对象。特别是,与监督过程控制应用程序环境关联的对象被布置在包括多个层的层次中的物理计算设备上。应用对象在应用层处执行。这些应用对象由处于中间层的引擎对象来支持。这些引擎对象由驻留在这三层中的最低层处的平台对象来支持。每个平台对象由处于甚至更低的层的引导程序对象来加载。该平台对象对应于其上执行应用程序和引擎对象的物理计算系统(包括操作系统)。这样,应用对象只需要与支持应用引擎对象建立适当的标准化关系。与物理计算设备及其操作系统有关的监督控制和制造信息系统的各个方面由引擎和平台对象配置来加以处理。对于这些应用对象的操作而言,该系统的物理拓扑结构和该应用程 序的物理位置是透明的。 所揭示的对象的分层支持方案允许对监督过程控制应用程序的模仿而不取决于 其上执行该应用程序的该计算硬件和监督过程网络拓扑结构。通过使该应用程序模型与该 物理部署配置隔离,可允许在需要时将应用程序移植到新的/不同的计算系统,并且允许 在该应用程序的使用过程中跟上基础硬件变化。这样的能力在过程控制和制造信息系统的 区域中尤其有益,在该区域中,使用引导安装来提供概念证据,然后,该应用程序在得到证 明时有所发展。 该应用程序模型包括被称作"区域"的逻辑容器内的各个应用对象的分组。必须 根据软件部署方案,将同一区域内的所有应用对象都部署在同一应用引擎上。但是,该分层 应用程序结构允许在后期开发阶段将应用程序模型和特定的部署模型结合起来。这样,直 到开发者准备好部署和执行监督层系统,抽象的"区域"才需要与特定的引擎相关联。
关于监督控制和制造信息系统的安全模型跟该物理硬件无关,这样,直到这些应 用程序模块已被部署在包含特定物理系统组件的物理系统内,监督过程控制和制造信息系 统结构才需要将安全性和该物理系统组件结合起来。通过安全性和系统的特定组件的后期 绑定,可允许开发者根据所部署的应用对象来确定特定系统的授权;并且,该开发者根据被 部署在特定的计算节点上的应用对象的功能性来绑定安全性。 另外,通过使这些应用对象所提供的功能性(商业逻辑)与在其上执行的计算机 系统分离,可允许根据多个视图/模型来呈现所定义的系统/软件配置。"车间中心"应用 程序模型允许系统开发者用逻辑方法来建立应用程序模型。该系统开发者将单独的设备和 功能定义为车间内的独特的实体。每个对象中包含所关联的功能性。在定义该车间内的单 独的对象之后,该用户配置(装配)这些对象之间的联系。 该应用程序模型是相对于该车间的物理区域以及这些物理区域内的设备和功能 的该车间的逻辑构造。工程师对这些车间区域实体之间的行为和联系进行配置。该监督过 程控制和制造信息系统提供了描绘包含层次的该应用程序模型的配置视图,该包含层次跟 这些区域和设备以及该设备本身有关。 该应用程序模型支持在对象内包含对象,并且,可以在模板中指定包含。包含促进 提高不同的工程师在监督过程控制和制造信息应用程序的不同开发层次的工作的效率。特 定的技术员可以定义关于特定的低层设备的细节。其后,另一个工程师定义包含特定低层 设备的一个或多个实例的应用程序中的单元或其他设备。 该应用程序模型也支持通过继承来传送变化。这样,子对象继承所引用的母模板 定义的变化。 在开发者指定过程控制和制造信息应用程序的功能之后,跨越许多物理计算系统 来部署该应用程序。在这里所揭示的本发明的一个实施例中,第二种类型的系统视图(被 称作"部署模型")允许用户配置与应用程序有关的物理PC和设备。该部署模型定义在 这些平台上运行的PC和引擎类型,以及外部设备集成。用户定义将在特定引擎上运行的区 域,从而确定将在哪里对该特定的应用程序软件加以物理上的执行。该监督过程控制和制 造信息系统提供了部署模型的配置视图,它展示具有物理PC的层次以及在这些物理PC上 运行的区域和应用对象。在开发者指定/确认该部署模型之后,根据该部署模型将这些应用对象和引擎对象部署在这些物理计算设备上。 已通体概述了促进重新配置(重新创建)该系统的监督过程控制和制造信息系统 的新结构,现在来看图l,该图包括并入实现本发明的应用程序结构的系统的说明性例子。 第一个应用服务器个人计算机(PC)100和第二个应用服务器PC 102共同协作地执行包括 第一个部分104和第二个部分106的分布式多层监督过程控制和制造信息应用程序。应用 程序部分104和106分别包括设备集成应用对象PLClNetwork和PLC1以及PLC2Network和 PLC2。该PLCxNetwork设备集成对象促进了访问数据访问服务器(例如,OPC DAServer116 和118)的配置。PLC1和PLC2设备集成对象(作为OPC客户来进行操作)对OPC DAServer 116和118的缓冲器内的数据位置进行访问。访问数据访问服务器116和118以及这些设 备集成对象协作地输入并缓冲来自外部过程控制组件(例如,PLC或其他域设备)的数据。 这些数据缓冲器由在个人计算机IOO和102上执行的各种应用对象105和107来进行访问。 举例来讲,应用对象的例子包括离散设备、模拟设备、域引用等。 根据本发明的一个实施例,应用引擎经由这里被称作"区域"的逻辑分组对象来支 持这些应用对象。这些引擎依次由处于该监督过程控制和制造信息应用程序的下一个较低 层的平台对象来支持。应用程序部分104和106依次由普通的引导程序组件108和110来 支持。在这里,以下参照图2来描述所有这些前述的组件。 在实现本发明的示范系统中,包括部分104和106的多层应用程序通讯连接到受 控过程。特别是,第一个应用服务器个人计算机100通讯联络连接到第一个可编程逻辑控 制器112,第二个应用服务器个人计算机102通讯连接到第二个可编程逻辑控制器114。注 意,从PC 100和102到PLC 112和114的所述连接表示逻辑连接。这类逻辑连接对应于直 接和间接的物理通信连接。例如,在特殊的实施例中,PCL 112和PLC 114包括以太网LAN 上的节点,个人计算机100和104也与该以太网LAN连接。在其他实施例中,PLC 112和114 被直接连接到PC 100和102上的物理通信端口 。 在图1中所陈述的说明性实施例中,PC 100和102分别执行访问数据访问服务器 116和118。访问数据访问服务器116和118获得/提取由PLC 112和114呈现的过程信息, 并将该过程信息提供给包括部分104和106的应用程序的应用对象(例如,PLClNetwork、 PLCl、 PLC2Network、 PLC2)。举例来讲,访问数据访问服务器116和118是OPC服务器。但 是,精通该技术领域的人将容易理解由访问数据访问服务器116和118潜在地执行的自定 义和标准化数据格式/协议的广泛多样性。另外,示范应用对象(通过与访问数据访问服 务器116和118的连接)表示PLC网络和该PLC本身的操作。但是,这些应用对象包括实 际上范围无限的各个种类的可执行对象,这些可执行对象在该监督过程控制和制造信息应 用程序的上下文中执行所需的监督控制和数据获取/集成功能。 例如,由执行数据库(例如,SQL)服务器122的配置个人计算机120来增强该监 督过程控制和管理信息应用程序,数据库服务器122维护关于这些应用对象和其他相关信 息(包括从其中呈现这些应用程序对象的模板)的监督过程控制和管理信息应用程序配置 数据库124。配置数据库124也包括全局名称表125,全局名称表125促进将位置独立的对 象名和位置导出的处理程序绑定,这些位置导出的句柄促进在图1中所描绘的系统内的各 个对象之间发送消息。配置PC 120和关联的数据库服务器122支持关于多用户环境的管 理监控;修正历史管理;集中的许可证管理;集中的对象部署,它包括新的对象及其关联的软件的部署和安装;全局名称表125的维护;以及,导入/导出对象模板和实例。
经由"集成开发环境"(IDE) 127来执行这些应用程序的实际配置,"集成开发环 境"(IDE) 127经由分布式组件对象模型(DCOM)协议来与数据库服务器122进行通信。该 IDE是一种实用程序,应用对象从它那里被配置和部署到应用服务器PC 100和102。监督 过程控制和制造信息应用程序的开发者通过该IDE来执行众多不同的系统设计功能,这些 系统设计功能包括导入新的对象和模板类型、从现存的模板中配置新的模板、定义新的应 用对象,以及将这些应用对象部署到应用服务器PC 100和102上的主机应用引擎(图1中 的AppEnginel或AppEngine2)。 图1中所描绘的示范监督控制网络环境也包括提供过程或其部分的视图的一组 操作员站130U32和134,这些操作员站由该监督过程控制和管理信息应用程序来进行 监控/控制,该监督过程控制和管理信息应用程序被安装并作为PC 100和102之上的一 组分层对象来加以执行。RawMaterial PC 130提供代表视图,从而允许监控被监督的工 业过程的原料区。ProductionPC 132呈现该被监督的工业过程的生产部分的代表视图。 FinishedProductPC 134提供与成品关联的生产设备的区域的代表视图。操作员站130、 132和134中的每个操作员站包括每个特定的操作员站平台的引导程序主机。操作员站 130、132和134中的每个操作员站包括查看引擎,查看引擎处理图形信息,以便呈现所观察 的工业过程或其部分的图形表示。 注意,图1中所描绘的和上文所描述的系统只是监督过程控制和制造信息系统的 多层分层结构的一个例子。本发明不局限于所揭示的特定应用程序/系统。例如,预期该 多层应用程序方法在较低的控制层可应用于分布式控制系统(DCS)应用程序或可编程序 逻辑控制器(PLC)应用程序。在这些情况下,为该DCS或PLC内的唯一的计算硬件开发了 特殊的平台和应用引擎对象。还要注意,图1是作为所安装的软件与物理计算硬件之间的 相互关系的逻辑视图而被呈现的,并且,它并不意在指定任何特定的网络拓扑结构。相反, 本发明实质上适合任何网络拓扑结构。实际上,本发明可应用于在被连接到受控过程的单 个计算机系统上运行的控制应用程序。 现在参考图2,类图描绘了至少与执行监督过程控制和制造信息应用程序的部 分的计算机关联的分层软件的分层方案。每台计算机在该层次的最低层执行操作系统 200 (例如,MICROSOFT的WINDOWS)。操作系统200支持引导程序对象202。引导程序对象 202被装载到计算机上,并且联合操作系统200所执行的启动程序来被加以激活。作为平台 类对象204的主机,引导程序对象202必须在开始平台类对象204的操作之前被激活。引 导程序对象202启动及停止该平台类对象。引导程序对象202也呈现平台类对象204所利 用的各种服务,以便启动及停止由平台类对象204支持的一个或多个引擎对象206。
平台类对象204是一个或多个引擎对象206的主机。在本发明的一个实施例中, 对于这一个或多个引擎对象206而言,平台类对象204表示执行特定的操作系统的计算机。 平台类对象204维护部署在平台类对象204上的引擎对象206的清单,启动和停止引擎对 象206,并且,如果引擎对象206崩溃,则重新启动它们。平台类对象204监控引擎对象206 的运行状态,并向客户发布该状态信息。平台类对象204包括系统管理控制台诊断实用程 序,该系统管理控制台诊断实用程序允许对执行平台类对象204的计算机系统执行诊断和 管理的任务。平台类对象204也为分布式报警子系统提供警报。
引擎对象206支持一组应用对象210,这组应用对象210执行与应用程序关联的监 督过程控制和/或制造信息获取功能。引擎对象206开始所有应用对象210的启动。在调 度程序对象的帮助下,引擎对象206也调度彼此有关的应用对象210的执行。引擎对调度程 序注册应用对象用于执行。该调度程序根据引擎所指定的配置相对于其他应用对象来执行 应用对象。引擎对象206监控应用对象210的操作,并将发生故障的应用对象置于隔离状 态。通过将自动化对象所执行的运行时间应用程序更改保存/恢复到配置文件,引擎对象 206支持使用检验点。引擎对象206维护名称绑定服务,该服务将属性引用(例如,tankl. value, pv)与应用对象210中的一个适当的应用对象绑定。 引擎对象206最终控制将如何执行应用对象。但是, 一旦引擎对象206确定对应 用对象210执行调度,就由调度程序208来控制其执行的实时调度。该调度程序支持包含 方法RegisterAutomationOb ject ()禾口 UnregisterAutomationOb ject ()的接口 ,从而允许 引擎对象206将特定的应用对象加入预定操作的调度程序清单,或者从预定操作的调度程 序清单中除去特定的应用对象。 应用对象210包括执行商业逻辑的多种不同的对象,这有利于促进在(例如)工 业过程控制系统的上下文中执行特定的过程控制操作(例如,开启泵、开动阀门)和/或信 息搜集/管理功能(例如,根据所接收的域设备输出信号值来发出警报)。应用对象的例子 包括模拟输入、离散设备和PID回路。 一类应用对象210经由设备集成对象(例如,OPC DAServer 118)来作用于过程控制系统(例如,PLC)所提供的数据。这些集成对象的功能 是提供过程控制/制造信息源跟该监督过程控制和制造信息应用程序之间的桥梁。
在示范实施例中,应用对象210包括引擎对象和调度程序所访问的应用接口。这 些引擎对象访问该应用对象接口,以便对应用对象进行初始化、启动应用对象、以及关闭 应用对象。这些调度程序使用该应用对象接口来开始该应用对象预定的执行。
已描述了被分层布置的监督过程控制和制造信息应用程序的主要组件,现在来看 图3-7,这些附图标识构成以上所描述的对象结构的基元的属性。首先参考图3,该图描绘 了共同对象基元定义。共同基元被包含在所有这些应用对象(即平台、应用引擎、调度程 序、应用程序等)中。使用脚本属性300来跟踪与应用对象关联的脚本。脚本属性300包 括从模板继承的脚本以及特别为该特定的对象类型而创建的脚本。UDA(用户定义属性) 属性302引用关于对象的继承的和新的用户定义属性。报警模式属性304指出是否启用 警报,以及启用警报的范围。基于(based on)属性306标识从其中获得过对象的特定基础 模板。属性308将标识属性名称的字符串存储在对象中。包含名称属性310标识分配给容 器内的对象的名称。例如,对象可能会对应于"反应器"对象内所包含的一个"层次"。所部 署的版本属性312存储整数,该整数标识关于所部署的对象的版本。派生属性314标识从 其中获得过对象的实际模板。派生属性314的内容不同于基于属性306的内容。基于属性 306是从其中获得过这个对象的基础模板。派生属性314是从其中创建过这个对象的直接 模板。例如,模板层次如下所示
$DiscreteDevice
$Pump
P卿OOl豸DiscreteDevice是从其中获得新模板$Pump的基础模板。从模板$Pump中创建
10实例Pump001。对象Pump001的"派生"属性派生将会是$Pump。对象PumpOOl的"基于"属 性将会是$DiscreteDevice。 相对执行顺序属性316标识另一个对象,本对象与这另一个对象有相对的执行顺 序关系。除了标识另一个对象以外,属性316还标识这些对象的相对的执行顺序(例如,无、 之前、之后等)。利用该相对执行顺序信息来安排应用对象的执行。分层名称属性318为包 括该对象(例如,Reactorl. level)的任何容器的对象存储全名。IsTemplate属性320指 出该对象是模板还是从模板中实例化的对象。区域或容器对象内的Alarmlnhibit属性322 提供切断功能,以便对区域或容器内的所有对象禁止警报。报警模式属性324指定对象的 当前报警模式。如果启用区域和容器,则该模式基于该对象的命令模式。否则,应用该容器 或母区域的最被禁止的状态。报警模式命令属性326指定该对象的当前指定的报警模式。
本发明的该说明性例子支持对象层次。对象在区域属性328中的车间/模型视图 的上下文中指定这种层次,区域属性328指定对象所属的区域。容器属性330指定包含该 对象的容器。如前面所解释的,在各种不同的所部署的对象之中存在支持关系。特别是,平 台支持引擎,而引擎(经由区域)支持应用对象。这样,主机属性338标识对象的主机。
分类属性332指定与该对象关联的一类对象,从而促进了根据局部联系和/或功 能来组织对象。该值是在分类列举属性334中被命名的各个种类之一。错误属性336标识 由该对象生成的错误。InAlarm标志340存储布尔标志,该标志指出对象中是否存在警报。 只有当扫描状态标志342是真的(正在扫描该对象)并且该对象的警报被启用时,该标志 才为真。通过用信号通知是否让该对象进行/脱离扫描的扫描状态命令344,来改变对象的 扫描状态。 安全组346允许为该对象指定特定的安全组,以便对特定种类的用户限制该对象 的访问/使用。描述属性348提供一个区域,用于存储对象的简短描述。标记名称属性350 为对象指定唯一的标记。警告属性352列出由对象呈现的任何警告。 已描述了这里所述的所有对象的共同属性,这里将参照图4来描述一组特定对象 类型的属性,以下从平台基元的属性开始。图4中所标识的各个属性涉及支持该对象/引 擎/平台支持层次。虽然未在图4中被加以标识,但通过该平台基元来提供一组属性,从而 允许平台对象监控/报告计算机设备统计数字。该示范平台基元中所包括(但图4中不包 括)的其他属性涉及检测和报告与计算机设备统计数字关联的警报并且存储这些统计数 字。 RegisterEngine属性400存储用于登记新引擎的命令。在部署时间使用 RegisterEngine属性400,来对主机平台注册引擎。StartEngine属性402存储用于在 该平台上启动特定的已部署的引擎的命令。StartHostedObjects属性404所存储的命 令被传递到该平台,以便启动所有被支持的引擎,这些引擎是自动启动和半自动启动类型 的引擎。StopEngine属性406所存储的命令用于停止该平台上的特定的已部署的引擎。 UnRegisterEngine属性308所存储的命令用于解除对该平台上的以前所部署的引擎的部 署。"引擎"属性410存储被部署在该平台上的所有引擎的清单。EngineStates属性412存 储由该平台支持的所有引擎对象的当前操作状态的清单。 图5概述了与引擎基元关联的一组属性。外部名称属性500存储被用于外部引用 的字符串。内部名称属性502存储被用于内部引用的字符串。引用计数属性504存储引用该引擎对象的对象数量。当引用数量达到零时,在该引擎的外部,没有客户引用该引擎上的 任何自动化对象属性。这有助于操作员确定停止该引擎所带来的影响(将影响多少客户)。 对象属性506是包括由该引擎对象支持的一组所有的对象的数组。启动类型属性508标识 将如何启动引擎对象(例如,自动、半自动、手动)。CanGo0nscan属性510指出是否可以将 引擎对象置于扫描。BindReference属性512是被用于将引用(例如,pump001. inlet. PV) 转为句柄的命令。通信基础结构使用这些句柄,以便在运行时间定位对象。AutoRestart 属性514存储布尔值,该布尔值指出是否一检测到故障就应该自动重新启动该引擎对象。 CheckpointFailedAlarm属性516所存储的值指出在最后的尝试期间,检查被支持对象的 最后尝试是否已失败。在将要压制由该引擎上的对象生成的警报之前,在引擎对象所发出 的每秒的警报中,AlarmThrottleLimit属性518存储值。EngineAlarmRate属性520指出 在最后一次完整的扫描期间被登记在引擎上的警报数量。AlarmsThrottled属性522指出 引擎对象在这最后的扫描期间压制过警报。 提供一组属性,以便处理脚本执行。ScriptExecuteTimout属性524存储同步脚本 的时限,以便在引擎对象发出警报之前完成执行。ScriptStartupTimeout属性526存储同 步脚本的时限,以便在将要发出警报之前进行启动。 ScriptShutdownTimout属性528存储同步脚本的时限,以便在将要发出警报之前 进行关闭。PublisherHeartbeat属性530存储与秒数相对应的值,在假定该引擎已发生故 障之前,引擎对象将等候来自另一个引擎对象的心跳消息达这些秒数。过程ID532标识被 分配给弓I擎过程的唯一 的标识符。 引擎对象也包含与管理应用对象关联的一组命令属性。
CreateAutomationObject属性534是用于创建应用对象的命令属性。
DeleteAutomationObject属性536是用于删除应用对象的命令属性。
StartHostedObjects属性538是用于启动被支持的应用对象的命令属性。
参考图6,概述包含在调度程序基元内的、对于调度程序对象而言是独一无二的一 组属性。每个调度程序对象包括内部名称属性600和外部名称属性602。 StatsAvgPeriod 604所存储的值表示该调度程序获取被存储在以下所描述的属性内的统计数字的平均周 期。CheckpointPeriodAvg属性606标识在当前的平均周期期间各个检查点之间的当前平 均次数。ExecutionTimeAvg属性608所存储的值表示每一扫描周期执行所有这些对象的时 间数量。Houseke印ingTimeAvg属性610存储与每一周期的平均时间相对应的值,以便完成 内务操作。TimeldleAvg属性612存储表示每一周期的平均空闲时间的值。TimeldleMax 属性614存储表示所记录的最多空闲时间的值。TimeldleMin属性616存储表示所记录的 最少空闲时间的值。InputMsgSizeAvg属性618存储在平均周期中的输入消息平均尺寸。 InputMsgsProcessedAvg属性620存储一个值,该值表示该平均周期期间的每一扫描周期 所处理的消息总容量(用字节表示)。I即utMsgsQueuedAvg属性622存储在该平均周期期 间的每一扫描周期中排队的消息的平均数量。InputMsgsQueuedMax属性624存储自从上次 重置这些统计属性之后被存储在属性622中的最大平均数。 InputQueueSizeMaxAllowed属性626存储在网络消息交换输入队列中所容许的 排队的消息的最大尺寸。InputQueueSizeAvg属性628存储在该平均周期期间用字节表示 的该输入队列的平均尺寸。InputQueueSizeMax属性630存储自从上次重置这些统计属性
12之后被存储在属性628中的最大平均数。 TimeI即utAvg属性632存储表示在当前周期期间处理输入消息所要求的平均时间的值。Ob j e c t Cn t属性6 34存储与当前正由调度程序对象处理的应用对象的当前数量相对应的计数值。Ob j ect sOf f ScanCnt属性636指示当前未扫描的应用对象的数量。TimeOutputAvg属性638存储在一个周期期间处理输出消息所要求的平均时间量。StatsReset属性640指示对为调度程序而描述的没有被定期重置的统计属性进行重置的请求(例如,最大值)。ScanCyclesCnt属性642存储一个值,该值指示自从上次通过StatsReset属性640来重置这些属性之后的周期数量。ScanOverrunsCnt属性644指示自从上次StatsReset之后一个扫描周期结束而没有完成对所有对象的扫描的次数。ScanOverrunsConsecut i veCount646存储其中发生超时的当前数量的连续周期。Scan0verr皿HighLimit属性648存储关于连续超时的警报高限,以引发被存储在Scan0verrunCondition属性650中的警报。ScanPeriod 652存储表示该调度程序的周期时间的值。 注意,与特定的对象类型关联的属性不局限于这些特定的对象基元类型。实际上,所有对象类型都包括以上所描述的基元中的至少两个基元。所有对象类型都利用共同对象基元。此外,平台对象包括以上所描述的调度程序、引擎和平台基元的各个属性。引擎对象包括该调度程序的各个属性以及这些引擎基元。 参考图7, 一组基元与应用对象有关联。每种类型的应用对象都有其自己的一组基元。这些基元包含商业特定逻辑以及对于这些基元的功能而言是独一无二的那组属性。可以跨越不同的应用对象类型来重用这些基元。 图7中描绘了与模拟设备应用对象关联的一组示范基元。被标示为"AnalogDevice属性"的基元700包含客户将会感兴趣的 一组模拟设备特定的属性。PV. Input 701是经由设备集成对象(例如,PLC1)从域设备读取数据的基元。PV. Output702是经由设备集成对象将数据写入该域的基元。"换算"703是对从该输入基元(PV. Input701)读取的数据执行线性或平方根换算的基元。LevelAlarms 704是一种基元,如果AnalogDevice基元700中的过程变量超过或低于所配置的值,则该基元生成警报。PV. RoC705是一种基元,如果PV增加或减少的速度比预置的限制快,则该基元生成警报。SP 706是一种基元,当客户想要修改PV. Output 702写入的那个值时,他们写入该基元。PVDev 707是一种基元,如果(经由基元701)从域设备被读入的值偏离(经由基元702)被写入该域设备的值达某个数量,则使用该基元来生成警报。CtrlTrack 708是被用来允许该调整点和PV基元跟踪从该外部设备被驱动的变化的基元。已描述了实现本发明的监督过程控制和制造信息应用程序的基本构件块,现在来看概述被用来执行这种应用程序的方法的一组序列图。参考图8,序列图描绘了用于启动和停止实现分层支持关系的应用程序的各个步骤。在阶段800期间,计算机系统上的引导程序过程向已装载的平台对象发出启动平台请求。作为响应,在步骤802期间,该平台过程向该引导程序接口发出调用,以请求该引导程序启动由该平台对象支持的所有这些应用引擎。在阶段804期间,该引导程序过程创建具有上文所讨论的各个属性的应用引擎对象。 在阶段806期间,该应用引擎过程启动其所有被支持的应用对象。在阶段808期间,该应用引擎也对调度程序过程注册这些被支持的应用对象。通过注册应用对象,可以将
1那个应用对象加入该调度程序在每个扫描周期期间进行扫描的那组应用对象。在阶段810中,该应用引擎向该调度程序发出命令,以便开始执行/扫描已启动和已注册的应用对象。其后,在阶段812中,该调度程序执行这些已注册的应用对象。在每个扫描周期期间,定期进行这类执行。 该调度程序继续根据监督过程控制和制造信息系统应用程序来定期地扫描这些已注册的应用对象,直到接收关闭命令为止。特别是,在阶段814期间,该引导程序过程响应于操作系统关闭命令,向该平台过程发出关闭命令。在阶段816期间,该平台过程将停止引擎命令返回到该引导程序,以便开始关闭由该平台过程支持的所有引擎。作为响应,在阶段818期间,该引导程序向该应用引擎发出停止的请求。该引导程序将等候该应用引擎停止。但是,在一段时期后,如果该应用引擎还没有停止,该引导程序将请求该操作系统关闭该应用引擎过程。 在正常的操作条件下,在阶段820期间,该应用引擎向该调度程序发出命令解除对该引擎的被支持应用对象的注册。另外,在本发明的一个实施例中,该引擎请求其被支持的应用对象关闭。但是,在本发明的选择性实施例中,该调度程序响应于该解除注册命令来发出该关闭请求。 注意,在以上所描述的示范实施例中,这些引擎对象和平台对象跟该引导程序过程进行通信,并且处理该监督过程控制和制造信息应用程序关联于在其上执行该应用程序的物理计算设备配置的各个方面。但是,这些应用对象本身只根据平台独立接口跟该引擎和调度程序进行通信。支持这些应用对象的这一个或多个引擎对象使这些应用对象与其上执行这些应用对象的计算机系统的特征隔离。这样,这些应用对象独立于这些物理计算设备配置来加以执行。虽然这些应用对象被限制在具有同一区域内所指定的其他应用对象的同一引擎上加以执行,但是,它们没有受到在系统内的多个有能力的引擎和/或平台中的一个特定的引擎和/或平台上加以执行的任何要求的限制。因此,移动包括一组应用对象的区域对在受影响的引擎上运行的其他应用对象的执行有最小的影响。
参考图9,序列图展示了与其引擎对象主机有关的应用对象的操作独立性,以及在另一个主机引擎上再部署应用对象的能力。从阶段900开始,引擎A向调度程序A发出启动命令,以便开始对应用对象A的定期执行/扫描。在阶段902期间,调度程序A定期激活应用对象A,以便联合包括多个应用对象的应用程序来执行其商业逻辑。
随后,应用程序工程师决定将应用对象A移植到不同的计算机平台上的引擎B。进行这种变化的一个原因是随着系统的发展,减少计算机设备上的计算负担。该用户在阶段904期间向引擎A发出除去应用对象A的请求。作为响应,在阶段906期间,引擎A向调度程序A发出停止扫描应用对象A的请求。在阶段908期间,引擎A向应用对象A发出关闭的命令。换句话说,引擎A和调度程序A的操作不会受到除去应用对象A的影响。
在本发明的一个实施例中,该应用程序分布在多个计算设备中,并且,每个计算设备装备有促进执行应用对象的应用层次的平台、引擎和调度程序对象。跨越多个硬件平台的较低层支持功能的复制提供了某种程度的平台独立性,该平台独立性允许对应用对象进行再定位,而不会影响该应用程序的操作。这样,在阶段910期间,该用户将应用对象A加入不同的计算机上的引擎B。在阶段912期间,引擎B对新近增加的应用对象A进行初始化。例如,初始化阶段912包括在启动应用对象之前由该应用对象执行的任何自定义初始
14化(例如,类变量的初始化、缓存由该应用程序所使用的接口等)。在阶段914中,引擎B向应用对象A发出启动命令。这时,该对象假定其所有的基元已被初始化,并且,它能够根据这些基元中所维护的属性来执行任何初始计算。在阶段916期间,引擎B对这个新的计算平台上的调度程序B注册执行的应用对象A注册。其后,在阶段918中,调度程序B定期提示应用对象A执行其商业逻辑。在本地并在连接各个引擎的网络上呈现执行应用对象A的结果。这样,将应用对象A再定位到引擎B不影响涉及应用对象A的数据访问。
通过消息交换装置进行对象间通信 在本发明的一个实施例中,这些应用对象通过逻辑名称(而不是物理地址)来引用其他对象。这样,就同一应用程序内的应用对象而言,这些应用对象之间的通信与包含该应用对象的网络的基础物理配置相隔离。被嵌入这些平台和引擎对象内的该应用程序的一个组件(被称作"消息交换装置")允许应用对象从位于执行该分布式应用程序的网络内的任何地方的其他对象中检索(获得)数据,并将数据发送(设置)到这些其他的对象。信息交换装置是允许由逻辑名称(而不是物理网络地址)来指定目标的对等通信基础结构。这样,允许这些应用对象进行通信,而无须考虑数据请求的预定接收者的物理位置。这也允许开发应用程序的应用对象层,而无须考虑最终将这些应用对象部署在哪里。在本发明的一个实施例中,在应用引擎所执行的本地消息交换装置(LMX)与平台所执行的网络消息交换装置(NMX)之间划分该消息交换装置,以便允许在用于执行分布式应用程序的网络上所连接的各个计算设备之间传达命名请求。在本发明的另一个实施例中,由这些引擎来执行LMX和NMX功能。这种方案避免了在该平台对象执行NMX的情况下所要求的额外的、过程之间的通信。 被并入这些引擎对象(例如,应用引擎对象)的LMX所提供的服务允许应用对象访问其他对象上所维护的、作为属性的数据。当使用LMX服务来访问目标数据时,应用对象指定表示与对象关联的一段数据的字符串(例如,以"ObjectB. AttributeA"的形式指定的属性)。利用这个字符串,LMX定位与该对象关联的数据(潜在地请求该平台所提供的NMX服务来访问位于网络中的另一个计算设备上的目标对象)。LMX将与该对象关联的数据返回到请求该数据的应用对象。此外,该消息交换装置保证消息传递的认证。所以,当应用对象将消息发送到其他应用对象时,它们接收到确认该消息的目标接收或没有接收到该消息。 举例来讲,该应用引擎的LMX包括一组接口 。这组接口包括
IMxSupervisoryCo皿ection禾口 IMxUserCo皿ection。 IMxSupervisoryCo皿ection接口定义应用对象用来访问来自车间中的物理设备的信息的方法。被用于这个接口 上的方法包括SupervisoryRegisterReference、 SupervisoryGetAttribute禾口Superviso:rySetAtt:ribute。 SupervisoryRegisterReference方法被应用对象调用,以便通知消息交换装置访问属性的值的请求即将来临。SupervisorySetAttribute方法被应用对象用来指导消息交换装置修改先前的SupervisoryRegisterReference调用中所指定的属性的值。SupervisoryGetAttribute方法被应用对象用来指导消息交换装置检索先前的SupervisoryRegisterReference调用中所指定的属性的值。 MxUserConnection接口所定义的方法被应用程序用来显现从车间中的物理设备中检索到的数据。用于这个接口上的这些方法包括UserRegisterReference、
15UserGetAttribute和UserSetAttribute。 这些方法十分类似于上文所描述的ImxSupervisoryCormection接口的各禾中方法。——个不同之处是IMxUserCormection接口方法中的各种方法通过允许经由回收机制(而不是该ImxSupervisoryConnection所利用的轮询机制)的数据更新,来适应用户接口客户。 利用一组结构来执行该消息交换装置的功能。MxReference结构是"MICROSOFT组件对象模型"(COM)对象,它实现接口 ImxReference,标识其值将由应用对象来访问的对象的属性,并且被传入方法SupervisoryRegisterReference禾卩UserRegisterReference。消息交换装置使用MxReferenceHandle(整数值)来为应用对象提供检索由MxReference提到的值的位置透明的工具。当成功地完成SupervisoryRegisterReference或UserRegisterReference调用时,该MxReferenceHandle被该消息交换装置返回到应用对象。应用对象将该MxReferenceHandle传入用于获得并设置属性(例 如,UserSetAttribute、 UserGetAttribute、 SupervisorySetAttribute禾口SupervisoryGetAttribute)的方法调用。 MxHandle结构标识对象的属性的性质。该MxHandle标识该对象所属的平台和弓|擎。该MxHandle包括两禾中结构MxAutomation0bjectHandle禾口 MxAttributeHandle。MxAutomation0b jectHandle是被用来表示对象在整体系统内的位置的数据结构。MxAttributeHandle数据结构被用来标识该对象内的属性的这种性质。消息交换装置在内部使用MxAttributeHandle结构来迅速定位对象的属性。 MxAutomationObjectHandle数据结构包括五个域galaxy系统、平台、引擎、对象和签名。galaxy系统域标识引用的对象所属的通用系统。平台域标识与该引用的对象关联的平台对象。引擎域标识该对象的引擎。对象域标识对象。签名域存储从该对象的名称中获得的值,并且防止当再定位对象时会发生的配置失配。 MxAttributeHandle数据结构包括七个域primitiveID、 attributeID、propertylD、indexl、 index 2、 index 3禾口签名。primitiveID域标识自动化对象内的基元。基元是在(例如)应用对象中执行特殊操作的助手对象。attributeID对所标识的基元内的特定属性进行标识。PropertyID标识属性的性质。索引域1、2和3将指数提供到三维数组中。签名域存储从该MxAttributeHandle的内容中获得的检验和值,以防止配置失配。
注意,在本发明的一个实施例中,该消息交换装置包括额外的数据结构和接口。精通该技术领域的人将会知道这类额外的接口和结构。还要注意,本发明不局限于一些系统,这些系统利用消息交换装置为监督过程控制和制造信息应用程序内的一组应用对象的对象之间的通信提供硬件/部署独立的消息服务。
模型部署的多幅视图/后期绑定 所提出的应用结构的另一个方面是对象内的联系的规范。以下所讨论的各种联系允许配置组件(这里被称作"集成开发环境"(IDE))在各种视图(至少包括(逻辑)模型视图和(物理计算)部署视图)中过滤并显示一组相关的对象。通过应用程序配置的其显示视图,该IDE允许用户在包括多个计算设备的计算机网络中设计并部署应用程序。
这些应用程序配置作为"包"被存储在配置数据库124内。包框架子系统所提供的接口允许该IDE存储并检索这些包的对象。包框架使用关系数据库来存储包数据及关于这些对象跟其他对象的联系/关系的知识。该IDE询问包框架,以便根据与对象有关的指
16定的联系来传递对象清单。例如,该IDE可以请求包框架从分组中检索由命名引擎支持的对象。 开发者经由该IDE和包管理器,在各个对象之间建立前述的联系(或"关系")。举例来讲,这类联系包括以下预定义的指派关系主机、区域、容器、引擎和平台。以下讨论这些关系中的每种关系。 在运行时间使用主机关系来指示对象在哪里执行。另外,可能直到部署对象的主机,才部署该对象。应用对象由区域对象支持,区域对象由引擎对象支持,而引擎对象由平台对象支持。区域关系建立对象的逻辑分组,并提供用于收集由被分类在该区域之下的对象发出的事件和警报的工具。容器关系指定两个对象之间的弱耦合,并且只在该应用逻辑的上下文中有意义。例子被包含在"Tank"对象内部的"Valve"对象。允许所包含的对象获取这些对象的容器的上下文内的层次名称。举例来讲,用作入口的阀门被分配别名"入口 ",并且得到"Tank. Inlet"的层次名称。对象的引擎是实际上执行该对象的引擎。对象的平台是在其上部署有该对象的计算机设备上运行的唯一的平台对象。对象可能具有所有这五种关系,但只有一个对象可能与这些关系中的任何一种关系相关联。例如,只可以将应用对象分配给唯一的一个区域。 模型视图按照受控车间过程内的车间/过程设备之间的逻辑联系来描绘该应用程序(例如,物理车间布置的表示)。部署视图描绘了这些物理计算机设备,以及该模型视图中所标识的实例化的对象对这些计算机设备和在这些计算机设备上执行的引擎的指派。派生视图描绘了从模板中被实例化的对象的来源(从基础模板到实例的所继承的性质关系),以便执行这些模型视图元件的功能。 举例来讲,图1展示在物理上被部署到两台应用服务器计算机100和102的应用程序。作为选择,通过在根据应用程序来执行监督过程控制并/或提取制造信息的过程中可视地描绘应用对象的角色,向用户介绍该应用程序。现在参考图io,根据该车间过程中的应用对象的角色,在车间模型中描绘车间过程应用程序。为了说明性地描绘本发明的示范实施例,这个说明性例子被是按比例縮小的。精通该技术领域的人将容易理解本发明可应用于比这个例子复杂得多的众多不同的工业/车间监控/控制应用程序。
具有受控出口阀的送料斗H1 1000将初级产品传送到输送机C1 1002,该输送机可被控制向左、右运转或被禁止使用。输送机C1 1002将该未加工的产品倒入混合器M11004和混合器M2 1006。通过分别打开混合器M1 1004和混合器M2 1006的阀门V1 1012和V2 1014,可允许该未加工的产品传入这些混合器。混合器M1 1004和混合器M2 1006分别包括可控制的搅拌器A1 1008和A2 1010。混合产品落入送料斗H2 1016和H3 1018。选择性地打开送料斗H21016和H3 1018,以允许该混合产品落在向右运转或被禁止使用的输送机C21020上。当被启用时,输送机C2 1020将该混合产品落到升降机E1 1022上。升降机E1 1022将该混合产品放到向右运转的输送机C3 1024上。输送机C31024将该原料放在能够向左、右运转的分发输送机C4 1026上,从而可以在第一个双态门D1 1028与第二个双态门D2 1030之间分发该混合产品。可以控制门D1 1028将成品指引到料箱B1 1032或B2 1034中。可以控制门D2 1030将成品指引到料箱B3 1036或料箱B4 1038中。
图10中所描绘的上述生产流水线很简单,因此相对比较容易理解,而在大多数情况下,过程非常复杂,包括成百上千、甚至成千上万个独特的传感器和受控组件。在这类实例中,将跟这些传感器和受控组件相对应的应用对象逻辑上在区域内分组。在运行时间内利用应用对象的逻辑分组,以便为警报和事件管理提供特定应用对象的统一处理。例如,可以由该区域对象内的单一指定来禁止特定区域中的所有警报。通过检验被支持对象的"所要求的主机特性"和该支持区域对象所指定的"被支持的特性",来确定该主机区域和被支持对象的兼容性。当建立这些对象时,建立了这些对象属性。如果该"所要求的主机特性"适合该"被支持的特性",那么,通过将合适的值分配给被支持对象,来完成主机指派。通过在应用程序或区域对象的共同基元的区域属性328中指定区域名称,将对象放置在区域内。
区域本身可以在层次方案中的其他区域内分组。举例来讲,通过在被支持区域对象的区域属性328中指定另一个"主机"区域的名称,可以实现将一个区域分配给该主机区域。区域与子区域之间的关系不限于在相同的引擎上执行。这样,当监督过程控制和制造信息应用程序的应用对象被部署在包括多个平台对象(对应于多个计算机设备)和引擎对象的系统内时,可以将区域内的子区域分配给不同的应用引擎。但是,在本发明的一个实施例中,子区域内所指定的应用对象被限制部署在相同的应用引擎上。这种限制确保可处理区域中的所有应用对象,而不会有节点之间的通信延迟。 举例来讲,区域对象包括促进以上所描述的功能的以下属性警报信息、禁止所有警报、禁止显示所有警报、子区域清单。 参考图ll,展示了图10中相关过程组件逻辑分组为区域。该修订的过程图解将该系统描绘成一系列区域,这一系列区域包括在逻辑上被分组的受控过程组件。原料存储区1100包括送料斗H1 1000。生产区1102包括输送机C1 1002、linel区1104(包括混合器M1 1004、阀门V1 1012和送料斗H2 1016)和line2区1106 (包括混合器M2 1006、阀门V2 1014和送料斗H3 1018)。分发区1108包括输送机C2 1020、升降机E1 1022、输送机C31024、输送机C4 1026、双态门D1 1028和双态门D2 1030。成品存储区1110包括料箱Bl1032、B2 1034、B3 1036和料箱B4 1038。这组子区域在单一过程车间区域1120之下分组。
已描述了示范车间过程和观察涉及该车间过程的应用程序所采用的两种替换方法(即车间模型视图和应用对象部署视图),现在描述配置实用程序接口 ,该配置实用程序接口根据这两种替换视图来显示这些应用组件。简要地参考图12,由配置实用程序生成的局部完成的模型视图用户接口描绘用树形表示的区域层次。该树形结构呈现了图11中所描绘的过程车间中所指定的各个区域的高层模型视图。这幅模型视图不完全,因为它没有标识被分组在所标识的区域内的应用对象以及应用对象的包含关系。 参照该示范树形结构,在该层次区域表示的最高层处,指定了与过程车间区域1120相对应的过程车间节点1200。 一组二级节点(对应于被分组在过程车间区域1120内的子区域)从过程车间节点1200分支出来。RawMaterialStore节点1202、"生产"节点1204、"分发"节点1206和FinishedProductStore节点1208分别对应于原料存储区1100、生产区1102、分发区1108和成品存储区1110。从"生产"节点1204分支出来的线路1节点1210和线路2节点1212对应于被分组在图11中的生产区1102内的linel区1104和line2区1106。该视图允许技工迅速标识并指定用于定义控制应用对象(例如,报警行为等)的策略的逻辑分组。 在描述图12中的模型视图的扩展版本(标识所标识的区域内的应用对象和复合物)之前,来讨论对象从模板的派生。图IO中所标识的每个组件对应于应用对象。在本发
18,从对象模板中实例化应用对象。派生视图展示从其中获得由应用程序的当前模型指定的应用对象的所有这些类型的模板。 从其中获得应用对象的这组候选模板是可扩展的。为用户提供了工具包,该工具包包括基础模板和编辑器,用于定义用户从其中建立应用对象的定制的新模板。基础模板(其中,$表示模板)的例子有^DiscreteDevice- —种状态机,可以将它配置成创建表示图10中所描绘的主要输送机和阀门的应用对象,以及SUserDefined-—种简单的对象模板,它只包含该共同基元,并且,通过增加脚本和属性来模仿跟这些料箱和送料斗相对应的应用对象,用户可从其中在该配置环境内建立扩充部分。 参考图13,说明性地描绘了由所生成的派生视图呈现的示范派生视图。参照图13,在图10中所陈述的例子的情况下,用户从豸DiscreteDevice基础模板中获得$Valve、$SliceGate、$Agitator和$Conveyor自定义应用对象模板类型。在$Conveyor模板之下,该用户进一步定义$SingleDirectionConveyor、$BiDirectionalConveyor禾口 $Elevator模板类型。在$UserDef ined基础模板之下,该用户获得过$VeSSel应用对象模板。进一步对该$VeSSel模板加以改进,以便获得SHo卯er和$Bin应用对象。参照图13,这些基础模板占有该层次派生树形结构的最高层,该层次派生树形结构根据用户对特定模板的指定,由配置视图发生器来呈现。从这些基础模板中获得的对象模板由来自这些基础模板节点的分支来加以标识。如图13中所描绘的,可以从其他导出对象中获得对象。在这类情况中,子模板继承其母模板的指定的特征。子模板与其母模板之间的派生派生关系被注册在来自该模板对象的属性314的派生中。 在此揭示模板结构的另一个方面(应用对象的容器属性330中所指定的)应用对象包含以及来自一组先前定义的对象模板的复合对象模板的创建。在本发明的一个实施例中,包含局限于相同的对象类型。这样,区域对象只可以包含区域对象,应用对象只可以包含其他的应用对象。包含其他对象的对象在这里被称作"复合物"。单独存在以便包含其他对象的对象被称作"合成物"。 简要地参考图14a和14b,提供了复合应用对象模板的例子-在这种情况下是$MiXerVeSSel复合对象模板,它包括被分配标记名称"入口"的阀门对象、继续携带标记名称"搅拌器"的搅拌器和已被分配标记名称"容器"的混合器。这些模板所包含的名称属性310对应于这三个所包含的对象中的每个对象。完整的层次标记名称(例如,MixerVessel.Inlet)被存储在关于这三个所包含的对象中的每个对象的层次名称属性318中。为每个所包含的对象的容器属性330分配字符串"MixerVessel"。图14a示意地描绘了包含混合器容器方案的图10中所描绘的过程车间的一个部分。图14b中描绘了复合模板的模型视图,它展示该$MixerVeSSel应用对象模板与其所包含的(重命名的)应用对象之间的包含关系。在本发明的一个实施例中,当在实际的应用程序内进行实例化时,复合应用对象内所包含的所有应用对象在属性338中指定相同的主机,并且按要求在属性328中指定相同的区域。也可应用于其他对象(服从任何部署限制)的这种包含层次通过支持可以从其中建立应用程序的逻辑构件块(包括许多较小的应用对象)的创建,来协助系统开发者开发系统。
在本发明的一个实施例中,该IDE所支持的"包含"功能促进经由图形用户接口"拖放"操作在各个对象之间建立包含关系。为了在源和目标(容器)应用对象之间建立包含关系,开发者选择用户接口上所显示的源应用对象,拖动该目标(容器)对象之上的源应
19用对象,然后将该源应用对象放在该目标应用对象上。在该IDE确认这两个对象之间的兼 容性(即,它们都是应用对象)之后,该IDE(通过该包管理器实用程序)在该源对象中设 置这些主机、区域和容器属性。特别是,将区域属性328设置为该目标对象的区域,将主机 属性338设置为该目标的主机,并且将容器属性330设置为该目标对象的名称。这时,也用 该开发者所提供的名称来填充该来源的所包含的名称属性310和层次名称属性318。
再来参考图13,该$MixerVessel复合应用对象模板被分配该$UserDef ined基 础模板节点之下的分支,并且指定该复合物的各个应用对象模板元件之间的包含关系。另 外。将从$Vessel中获得的$MixerVessel. Vessel模板放置在该$Valve模板节点之下。 将从$Agitator中获得的$MixerVessel. Agitator模板放置在该$Agitator模板节点之 下。通过在每个这些复合元件中的容器属性330中指定该$MiXerVessel模板对象,来注册 包含关系。由该派生视图树形结构内的$MixerVessel. Inlet、 $MixerVessel. Agitator和 $MixerVessel. Vessel对象模板表示中放置在前面的"$MixerVessel"在图13的派生视图 树形结构中指示该包含关系。 属性锁定及其对模板中的变化传播的影响是这里所揭示的示范配置实用程序的 派生派生结构的其他方面。该派生派生结构允许对象模板内的信息被传播到导出对象,或 者作为选择,为可以被开发者覆盖的导出模板指定默认值。在本发明的一个实施例中,通过 存储对锁定属性的母副本的引用,来自动影响传播。 模板或实例中的属性可以被解除锁定,可以被锁定在双亲中,或者可以被锁定在 自身中。模板和实例都可以具有被解除锁定的属性。被解除锁定的属性是可读-写的,并 且,该对象具有自己的该属性值的副本-即,它不与导出对象共享。模板(而不是实例)可 以具有被锁定在自身中的属性状态。在被锁定在自身中的属性的情况下,该值是可读_写 的。导出对象没有得到自己的该属性值的副本,但却通过参考其中锁定该属性的起源来共 享该锁定值。被锁定在自身中的属性的子部分中的属性状态是"被锁定在双亲中"。这样, 被锁定在自身中的模板属性的值的变化传播到所有的子部分。模板和实例都可以具有被锁 定在双亲中的属性。被锁定在双亲中的属性是只读的。 向配置客户暴露用于获得和设置属性的锁定状态的接口。该客户获得对该属性的 引用,并设置其锁定状态。是否允许改变属性并且/或者将此变化传播给导出的子部分取 决于是否锁定模板中的特定属性。锁定属性有两个结果。首先,无法在导出的模板或实例 中修改被锁定在双亲中的属性。其次,可以改变模板中的被锁定在自身中的属性,并且,通 过从包含该锁定属性的模板中获得的所有模板和实例,来传播该变化。另一方面,如果属性 未被锁定,那么,该属性指定可以在导出模板中被覆盖的默认值。另外,如果改变非锁定属 性的值,那么,该变化不被传播到导出的模板。 在建立将要被用于图10中所标识的应用对象的一组模板之后,根据所提出的监
督过程控制和制造信息应用程序,从这些模板中创建这些应用对象实例。使用图13中所定
义的模板和图10中所描绘的示范过程车间来呈现以下的应用对象 $MixerVessel被用于"混合器"M1和M2 ; 豸Ho卯er被用于"送料斗"Hl 、 H2和H2 ; $SingleDirectionConveyor被用于输送机C2禾口 C3 ; $BiDirectionalConveyor被用于输送机Cl和C4 ;
20
SSlideGate被用于"门"Dl和D2 ;以及,
$Bin被用于"料箱"Bl 、 B2、 B3和B4 参考图15,硬件派生视图描绘了来自对象模板的引擎对象和平台对象的来源。当 决定将具有特殊的引擎和/或平台要求的区域分配或再定位到哪里时,这种视图是有益 的。节点1500对应于基于WINDOWS操作系统的平台模板。 一组平台实例(对应于从基于 WINDOWS操作系统的平台模板中获得的平台对象)从节点1500分支出来,并且对应于图1 中所标识的每台个人计算机。节点1510对应于应用引擎模板。从该应用引擎模板中获得的 一组应用引擎实例从节点1510分支出来,并且对应于图1中所描绘的应用引擎。节点1520 对应于观察引擎模板。 一组观察引擎实例从节点1520分支出来,并且对应于图1中所描绘 的观察引擎。节点1530对应于PLCNetwork设备集成对象模板。从节点1530分支出来的 一组实例对应于图1中所标识的设备集成对象,这些设备集成对象支持对OPC服务器116 和118的配置。最后,节点1540对应于PLC0bject设备集成对象模板。从节点1540分支 出来的一组实例对应于图1中所标识的设备集成对象。 图16展示图10和11中所描绘的过程应用程序的模型视图。该模型视图显示了 由对象(包括应用对象和区域)指定的区域支持和包含关系。为了描述该车间方案,该模 型视图标识在逻辑上被分组在一起的对象。该模型视图允许用户迅速指定将要在特定的策 略(例如,报警等)之下统一处理的对象。举例来讲,该模型视图包括与图11中所指定的 区域相对应并且在图12的区域树形结构中有所描绘的节点。树1600的叶节点标识这些应 用对象和它们对所标识的区域的指派。另外,该模型视图树形结构描绘了诸如从(以上参 照图13所讨论的)$MiXerVessel复合模板中实例化的一组复合容器对象MV1和MV2的复 合容器。 根据在特定应用程序之下所指定的对象的区域和容器属性,由模型视图发生器来 呈现模型视图。在本发明的一个实施例中,当用户寻求创建该联系时,确定区域/容器与被 分组/被包含的对象的兼容性。通过将该母对象的支持特性与该被分类/被包含的子对象 的需求进行比较,可以确定这种兼容性。另外,在本发明的一个实施例中,要求容器内的所 有对象都指定相同的区域。 区域可以是有层次的。这样,区域可以包括区域,并且,母区域为其子区域中的所 有对象收集警报统计数字。在图16所描绘的模型视图层次树形结构中,从该树形结构的最 高层开始,如果没有为区域对象指定区域,那么,该区域对象(例如,ProcessPlant 1602) 被直接连接到该根节点(树形结构的最高层)。在下一层处,ProcessPlant 1602的子区域 (即RawMaterialStore 1604、"生产"1606、"分发"1608和FinishedProductStore 1610) 作为分支被连接在ProcessPlant 1602节点之下。在示范应用程序模型树1600中,来自 这些子区域的分支包含应用对象(即送料斗Hl、输送机Cl-C4、门Dl-D2、升降机El和料箱 Bl-B4)和额外的子区域(即"生产"1606子区域中的Linel和Line2) 。 Linel和Line2子 区域都包括复合物(即混合器容器MV1和MV2)。这些复合物MV1和MV2的叶节点标识这些 复合对象所包含的对象。在该特殊的例子中,MixerVessel复合物MV1包括搅拌器A1、容器 Ml和入口阀VI。 MixerVessel复合物MV2包括搅拌器A2、容器M1和入口阀VI。
图17展示该应用模型的区域对图1中所描绘的硬件和平台的示范部署视图。该部 署视图直观地描绘了应用程序的各种对象执行的地方。所以,根据由对象指定的支持(属
21性338)和包含(属性330)关系,来呈现部署视图。不限制子区域对象在作为指定的母区 域(在属性328中)的相同的应用引擎上执行,并且,当呈现该部署视图时,不应用由对象 指定的各种区域关系。ApplicationObjects由其区域来"支持"(属性338),所以,该部署 视图展示与其区域的ApplicationObject关系。这样,部署视图(和嵌套的区域对象的实 际部署)没有反映出与在各个区域对象之间被指定的各种层次区域模型关系关联的警报/ 事件集中和传播。 图17中没有显示这些应用对象。但是,部署视图发生器根据那些对象内的主机/ 容器指定,将这些应用对象安排在合适的区域之下。在本发明的一个实施例中,按要求,应 用对象的指定主机和区域是相同的。所以,引用区域对象的所有应用对象都在该区域对象 的主机属性338中所标识的同一引擎对象上被加以执行。该要求确保为特定区域之下的 应用对象而保存的警报和数据被局部地在同一计算机设备上维护。如果应用对象在属性 330中指定容器(复合应用对象),那么,当生成部署视图树时,该命名容器取代该命名区域 主机(即,复合物(容器)内的应用对象被放置在其指定的复合名称之下)。但是,在本发 明的一个实施例中,限制复合物内所包含的所有应用对象在同一主机上执行(即,所有被 包含的应用对象获取该复合物/容器的指定区域)。 图17中所阐明的部署视图被特别适当地分类以作示范,因为这些区域及其关 联的对象能够在任何合适的平台/应用引擎组合上运行。多层平台/引擎/区域/应 用对象支持方案呈现各种区域(及其关联的应用对象),这些区域(及其关联的应用对 象)能够在图17中所描绘的应用组件部署的图形表示中的任何合适的支持引擎分支处 执行安装。该部署树形结构层次的最高层标识与图1中所描绘的个人计算机相对应的一 组平台。由节点表示的这组平台包括RawMaterialPC节点1700、"生产PC"节点1702、 FinishedProductPC节点1704、 Conf igurationPC节点1706、 ApplicationServerlPC节点 1708和ApplicationServer2PC节点1710。 将一组引擎部署到这些平台主机。与这些被指出的平台对象所支持的引擎 对象相对应的这组被部署的引擎对象节点包括RawMaterialView引擎节点1712、 ProductionView弓l擎节点1714、 FinishedProductView弓l擎节点1716、 AppEnginel节点 1718和A卯Engine2节点1720。 这些引擎支持设备集成和区域分组的应用对象,这些应用对象在该部署视图中被 表示为节点。与被部署的设备集成对象相对应的这组设备集成对象节点包括PLClEthernet 节点1722和PLC1节点1724,以及PLC2Ethernet节点1726和PLC2节点1728。与包括各组 应用对象和/或其他区域的部署区域相对应的这组区域对象节点包括ProcessPlant节点 1730、RawMaterialStore节点1732、"生产"节点1734、Linel节点1736、Line2节点1738、 "分发"节点1740和FinishedProductStore节点1742。将以上所标识的区域节点连接到 其关联的引擎的分支对应于这些区域对象及其关联的应用对象中的主机属性338中所指 定的引擎,为了避免过度混乱,从图17中所阐明的部署视图中省略这些区域对象及其关联 的应用对象。 附图和附随的书面说明中已提供了本发明的说明性实施例及其某些变更。本发明 并不意在局限于这些实施例。精通该技术领域的人将会理解已描述了一种新的、有用的方 法和应用程序,用于配置并执行监督过程控制和制造信息应用程序。鉴于可以应用本发明的原理的这许多可能的环境以及设计和执行基于软件的系统的灵活性,应该认识到这里
所描述的实施例意在起说明性的作用,而不应该被视作限制本发明的范围。精通应用本发
明的技术领域的人将会理解在不脱离本发明的精神的前提下,可以在方案和细节方面修
改所展示的这些实施例。本发明打算在鉴于由以下所附权利要求书定义的本说明书和各项
发明所允许的最完全的程度上,来包括所揭示的实施例以及处于本发明的范围和精神以内
的其他实施例。所以,如这里所描述的本发明计划可将所有这类实施例包括在以下权利要 求书及其相等物的范围以内。
权利要求
一种用于执行可分配给多个联网计算机设备并具有层次结构的监督过程控制和制造信息系统应用程序的方法,其特征在于,所述方法包括执行模仿过程控制系统内的实体的应用对象;执行引擎对象,用于在运行时间环境中支持所述应用对象的执行;以及,执行平台对象,它们对应于用于执行所述引擎对象和所支持的应用对象的物理计算机系统组件,并且所述平台对象支持一个或多个引擎对象。
2. 如权利要求1所述的方法,其特征在于,在执行引擎对象和执行平台对象的步骤中, 所述引擎对象和平台对象实现与其上执行所述应用程序的物理计算设备配置有关的应用 程序的各个方面,并且在执行应用对象期间,所述应用对象独立于所述物理计算设备配置 而执行。
3. 如权利要求l所述的方法,其特征在于,还包括 通过引擎对象,由所述应用对象在同一计算设备上进行通信;以及通过平台对象跨越计算设备网络进行通信,从而将各个应用对象之间的通信与其内执 行应用对象的计算机系统的拓扑结构隔离开来。
4. 如权利要求1所述的方法,其特征在于,所述应用对象、引擎对象和平台对象共享共 同基础对象定义。
5. 如权利要求1所述的方法,其特征在于,还包括由平台对象控制根据一组属性在平 台对象上部署的引擎对象。
6. 如权利要求1所述的方法,其特征在于,还包括由引擎对象管理根据一组命令属性 在引擎对象上部署的应用对象。
7. 如权利要求1所述的方法,其特征在于,还包括向物理计算机提供描述应用对象、引 擎对象和平台对象物理分布的应用程序部署视图。
8. 如权利要求7所述的方法,其特征在于,所述部署视图分层描述所述平台对象、引擎 对象和应用对象。
9. 如权利要求1所述的方法,其特征在于,所述应用程序的应用程序视图描述相对于 车间的物理区域以及所述物理区域内的设备的车间逻辑构造。
10. 如权利要求15所述的方法,其特征在于,所述应用程序视图分层描述构成应用层 的区域和应用对象。
11. 一种用于执行可分配给多个联网计算机设备并具有层次结构的监督过程控制和制 造信息系统应用程序的部分的网络计算设备,其特征在于,所述网络计算设备执行一组与 应用程序相关的对象,包括模仿过程控制系统内的实体的应用对象;至少一个引擎对象,用于在运行时间环境中支持所述应用对象的执行;以及, 平台对象,用于支持所述至少一个弓I擎对象。
12. 如权利要求11所述的网络计算设备,其特征在于,所述至少一个引擎对象和平台 对象处理与其上执行所述应用对象的所述网络计算设备的物理计算设备配置有关的应用 程序的各个方面,并且所述应用对象独立于这些物理计算设备配置而执行。
13. 如权利要求11所述的网络计算设备,其特征在于,所述应用对象通过所述至少一 个引擎对象在所述网络计算设备上进行通信,并且,由所述平台对象支持所述网络计算设备和其他网络计算设备之间的通信,从而将各个应用对象之间的通信与所述网络计算设备 所处的计算机网络的拓扑结构隔离开来。
14. 如权利要求11所述的方法,其特征在于,所述应用对象、引擎对象和平台对象共享 共同基础对象定义。
15. 如权利要求11所述的方法,其特征在于,所述平台对象包括一组属性,用于配置和 控制在所述平台对象上部署的所述至少一个引擎对象。
16. 如权利要求1所述的方法,其特征在于,所述至少一个引擎包括与管理应用对象相 关的一组命令属性。
17. —种用于为监督过程控制和制造信息应用程序指定部署模型的配置装置,所述监 督过程控制和制造信息应用程序用于将应用对象与特定的物理计算设备联系起来并在这 些物理计算设备上提供这些对象的分布视图,其特征在于,所述配置装置包括指定一种或多种物理计算设备类型的平台定义;指定引擎的引擎定义,所述引擎在这些物理计算系统上执行,从而定义由物理计算设 备支持的服务类型;指定区域的区域定义,所述区域包括应用对象的逻辑分组;一组层次关系,所述层次关系指定引擎对物理计算系统中的特定物理计算系统的指 派,以及区域对引擎中的特定引擎的指派;以及,部署视图发生器,它根据所述层次关系来描绘物理计算设备、引擎和区域的层次。
18. —种监督过程控制和制造信息系统应用程序配置装置,它包括根据促进过程控制 和制造信息软件的配置与部署的特定视图而被加以布置的组件,其特征在 于,所述装置包 括与设备和功能相对应的监督过程控制系统对象,所述设备和功能对应于车间内的独特 的实体,其中,每个对象中包含关于这些设备和功能的关联的功能,并且,其中,监督过程控 制系统对象具有与其关联的一组指定所述监督过程控制系统对象之间的关系的属性;以 及,用于根据监督过程控制系统对象之间的联系来呈现监督过程控制系统对象的视图发 生器,所述视图发生器至少提供第一个视图,用于展现过程/车间及其受监控组件的逻辑布置,以及, 第二个视图,用于展现执行该应用程序的计算机系统上的对象的物理部署。
19. 如权利要求18所述的配置装置,其特征在于,用户定义一组区域,每个区域包括被 限制在同一引擎上执行的一组相关的应用对象,并且在第二视图中描绘所述区域与引擎之 间的联系。
20. 如权利要求18所述的配置装置,其特征在于,所述监督过程控制系统对象包括容 器对象,所述容器对象包括被嵌套在其中的其他监督过程控制系统对象。
21. 权利要求18所述的配置装置,其特征在于,从模板中获得/实例化所述监督过程控 制系统对象,并且所述模板指定其他模板的包含。
22. 权利要求21所述的配置装置,其特征在于,所述模板能够指定母模板,模板从所述 母模板所继承的特征包括在指定子模板之后母模板随后发生的变化。
全文摘要
揭示了一种监督过程控制和制造信息系统应用程序。该应用程序的各个组件可以用多层层次方式来分配给多个联网计算机设备,其中,由较低层来支持已安装的较高层的应用组件。应用对象驻留在过程控制系统内的分布式应用结构和模型实体的相对高层处。引擎对象在运行时间环境中支持这些应用对象的执行。这样,直到已部署与应用对象关联的主机引擎对象,才部署这些应用对象。引擎对象由平台对象来支持。这些平台对象对应于物理计算机系统组件,物理计算机系统组件用于执行这些引擎对象和关联的应用对象。配置装置呈现了各种视图,这些视图包括该应用程序的部署视图和模型视图。这些视图包含构成分布式应用程序的对象的各种关系。
文档编号G06F9/46GK101714101SQ20091020523
公开日2010年5月26日 申请日期2002年6月24日 优先权日2001年6月22日
发明者L·G·莱布兰克, P·H·莫迪, R·M·莱斯尼克, T·索维尔 申请人:英维思系统股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1