用于过程控制的对象链接和嵌入服务器重定向管理器的制作方法

文档序号:7866194阅读:213来源:国知局
专利名称:用于过程控制的对象链接和嵌入服务器重定向管理器的制作方法
交叉引用
本申请要求2002年6月28日提交的题为“OPC服务器重定向管理器”的美国临时专利申请第60/392493号的优先权。
背景 1.发明领域 一般来说,本发明涉及OPC服务器重定向管理器,它是中间OPC服务器,把客户机进行的所有OPC呼叫转发给与数据源通信的实际OPC服务器。具体来说,OPC服务器重定向管理器维护当目标OPC服务器出故障时采取适当动作所需的信息,并确保没有不良状态被返回给客户机。
2.相关技术的描述 用于过程控制的OLE(OPC)是新兴工业标准,它通过允许自动化系统共享信息以及与其它工业自动化、过程控制和工厂的其它商业系统配合工作来推动一体化。(字母O-P-C最初表示用于过程控制的对象链接和嵌入(OLE),但OLE已经从面向对象的重构为基于对象的并重命名为ActiveX。)OPC标准是由OPC基金会维护的非专有技术规范。
过去,每个软件或应用程序开发人员需要编写定制接口(或服务器/驱动器)以与硬件领域装置交换数据。OPC标准通过提供公共接口来取代这种做法,这允许此工作执行一次,然后供人机界面(HMI)、监督控制和数据采集(SCADA)控制和定制应用容易地再用。
OPC规范基于MicrosoftOLE(现在的ActiveX)、组件对象模型(COM)以及分布式组件对象模型(DCOM)技术。OPC定义用于过程控制、制造和自动化应用的接口、属性和方法的标准集。这些应用包括分布式控制系统、可编程逻辑控制器、输入/输出(IO)系统、智能领域装置和实时信息的其它服务器。ActiveX/COM技术定义各个软件组件如何交互和共享数据。通过使用MicrosoftVisual Basic面向对象的组件、OLE自动化,OPC可经由局域网(LAN)、远程站点或因特网为办公应用提供工厂基本数据。
OPC为最终用户和硬件、软件制造商提供许多益处,包括开放式连通性、高性能以及改进的厂商生产率。OPC提供开放式连通性,为用户提供在广泛的工厂基本装置和客户机软件之中的选择,允许更好地利用优质品种应用。由于OPC为开放式标准,因此软件和硬件制造商把较少时间用于连通性事项,而把较多时间用于应用事项,从而消除大量的重复工作。OPC促进自动化和控制应用、现场装置以及商业和办公应用之间的更大互通性。
一些重定向系统提供劣于根据本发明的重定向管理器的功能性,而且它们看来具有不同的体系结构。一种重定向系统实现为Microsoft Windows服务,而根据本发明的重定向管理器采用专用连接方式以限制故障的影响。重定向系统实现OPC数据访问,而根据本发明的重定向管理器具有重定向服务器,它实现那些功能以及OPC告警和事件。重定向系统看来似乎经由试通机制来实现服务器/节点健康,而根据本发明的重定向管理器采用具有较少网络业务量开销的监视方法。为了性能和一致性原因,某些OPC服务器使内部OPC服务器数据库同步。根据本发明的重定向管理器可选地提供这种功能。
其它重定向系统提供所有客户机连接到的服务。如果那个服务出故障,则所有连接的客户机受影响。相反,采用根据本发明的重定向管理器的客户机具有专用连接。如果专用连接出故障,则只有所连接的客户机受影响。传统重定向系统采用试通机制用于检测。这比根据本发明的重定向管理器的效率低,根据本发明的重定向管理器在目标节点或服务器出故障时采用通知提供者警告重定向管理器。
本发明通过维护当目标OPC服务器出故障时采取适当动作以及确保没有不良状态返回给客户机所需的信息来克服这些问题。需要目标OPC数据访问和/或告警及事件服务器之间的无缝故障解决的任何现有OPC客户机将连接到重定向管理器的独特地配置的示例,而不是连接到主服务器。客户机应用继续照常执行OPC相关任务。由于每个客户机连接是独特的,因此重定向管理器本身不是单一故障点。每个所配置的重定向管理器示例通过预订故障事件来监视目标服务器节点和目标服务器本身的健康。预订而不是轮询(经由试通)的使用减少了网络业务量。本发明还提供如下所述的其它许多优点。


发明内容
本发明的一个实施例是重定向管理方法。响应第一OPC客户机的第一客户机连接请求,允许从第一OPC客户机到OPC重定向管理器的第一示例的第一专用连接。响应第二OPC客户机的第二客户机连接请求,允许从第二OPC客户机到OPC重定向管理器的第二示例的第二专用连接。根据一个实施例,即使第二OPC客户机的第二专用连接在OPC重定向管理器的第二示例出故障时丢失,第一OPC客户机的第一专用连接仍被保持。建立到第一目标OPC服务器的连接。建立到用于第一目标OPC服务器的OPC服务器状态改变提供者的另一个连接。根据另一个实施例,建立到至少一个附加目标OPC服务器、包括配置成为第一目标OPC服务器提供备份的第二目标OPC服务器的附加连接。
在接收到来自用于第一目标OPC服务器的OPC服务器状态改变提供者的活动服务器故障事件时,执行向第二目标OPC服务器的切换。从OPC服务器状态改变提供者接收通知第一目标OPC服务器现在可用以及建立到第一目标OPC服务器的连接。
假设没有出现故障,则从第一OPC客户机接收OPC添加组请求,并将其转发到第一目标OPC服务器以便提供服务。在接收到来自第一目标OPC服务器的请求完成事件时,通过创建至少一个组来实现与OPC添加组请求相关的多个添加组接口。OPC添加组请求被转发给每个附加目标OPC服务器,以便存储(这些)组作为不活动的。存储与OPC添加组请求相关的信息,包括组。
重定向管理器从第一OPC客户机接收OPC按数据变化(on-data-change)请求,在第一目标OPC服务器与第一接收器对象之间建立连接。接收器对象属于重定向管理器。在第二目标OPC服务器与第二接收器对象之间建立另一个连接。存储与OPC按数据变化请求相关的信息,包括至少一个组。在重定向管理器接收到来自第一目标OPC服务器的第一按数据变化请求之后,所述按数据变化请求从重定向管理器提供给第一OPC客户机。在接收到来自用于第一目标OPC服务器的OPC服务器状态改变提供者的活动服务器故障事件时,执行向第二目标OPC服务器的切换。至少一个组在第二目标OPC服务器上被激活,以及在重定向管理器接收到来自第二目标OPC服务器的第二按数据变化请求之后,所述按数据变化请求从重定向管理器提供给第一OPC客户机。从OPC服务器状态改变提供者处接收关于第一目标OPC服务器现在可用的通知,建立到第一目标OPC服务器的连接,以及先前存储的信息被用于向第一目标OPC服务器添加组。
本发明的另一个实施例是重定向管理的方法。响应来自OPC客户机的OPC创建事件预订请求,实现与OPC创建事件预订请求相关的接口。OPC创建事件预订请求被转发给主目标OPC服务器以便得到服务。它还作为不活动的被转发给至少一个附加目标OPC服务器,包括配置成为主目标OPC服务器提供备份的辅助目标OPC服务器。存储与OPC创建事件预订请求相关的信息,包括状态信息。
由重定向管理器建立到主目标OPC服务器的连接。由重定向管理器建立到用于主目标OPC服务器的OPC服务器状态改变提供者的附加连接以及到附加目标OPC服务器的附加连接。如果确定主目标OPC服务器支持OPC告警和事件,则告警和事件模块被加载。至少一个按事件(on-event)请求从主目标OPC服务器提供给OPC客户机。在接收到来自用于主目标OPC服务器的OPC服务器状态改变提供者的活动服务器故障事件时,执行向辅助目标OPC服务器的切换,以及把切换通知告警和事件模块。使当前活动事件与辅助目标OPC服务器同步,以便防止数据丢失,并且把OPC按事件请求从辅助目标OPC服务器提供给OPC客户机。从OPC服务器状态改变提供者接收到关于主目标OPC服务器现在可用的通知时,建立到主目标OPC服务器的连接,并且采用状态信息来建立。
本发明的另一个实施例是OPC重定向管理系统,该系统包括第一OPC服务器、第二OPC服务器以及第一重定向管理器。第一OPC服务器能够为OPC请求提供服务。第二OPC服务器配置成为第一OPC服务器提供备份。第一重定向管理器能够代表第一OPC客户机把OPC请求转发给第一OPC服务器或者第二OPC服务器。第一OPC客户机能够建立它自己的与第一重定向管理器的专用连接。第一重定向管理器能够在第一OPC服务器出故障时连接到第二OPC服务器,从而向第一OPC客户机提供无缝服务。第一重定向管理器能够存储与OPC请求相关的信息,供第一OPC服务器出故障时使用。
OPC重定向管理系统还可包括第三OPC服务器、第四OPC服务器以及第二重定向管理器。第四OPC服务器配置成为第三OPC服务器提供备份。第二OPC客户机能够建立它自己的与第二重定向管理器的专用连接。第二重定向管理器能够在第三OPC服务器出故障时连接到第四OPC服务器,从而向第二OPC客户机提供无缝服务。第一OPC服务器能够配置成为第三OPC服务器提供备份。OPC请求的类型可以是数据访问或告警和事件。
OPC重定向管理系统还可包括主服务器节点、辅助服务器节点以及客户机节点。主服务器节点包括第一OPC服务器、主节点状态改变提供者以及主OPC状态改变提供者。辅助服务器节点包括第二OPC服务器、辅助节点状态改变提供者以及辅助OPC状态改变提供者。客户机节点包括第一OPC客户机、第一重定向管理器、客户机节点状态改变提供者以及客户机OPC状态改变提供者。第一重定向管理器包括数据访问和预订状态数据及切换管理器。第一OPC服务器包括项目高速缓存和条件数据库。第一OPC客户机是过程控制应用。第一OPC服务器与装置进行通信以便为OPC请求提供服务,使得第一OPC客户机接收关于装置的信息,作为OPC请求的结果。
本发明的另一个实施例是机器可读媒体,存储用于执行一个方法的可执行指令。响应第一OPC客户机的第一客户机连接请求,允许从第一OPC客户机到OPC重定向管理器的第一示例的第一专用连接。响应第二客户机连接请求,允许从第二OPC客户机到OPC重定向管理器的第二示例的第二专用连接。建立到用于第二OPC客户机的节点状态改变提供者的连接。当重定向管理器出故障以及第二OPC客户机的专用连接丢失时,保持第一OPC客户机的第一专用连接。建立到第一目标OPC服务器的连接。建立到用于第一目标OPC服务器的OPC服务器状态改变提供者的另一个连接。建立到配置成为第一目标OPC服务器提供备份的第二目标OPC服务器的另一个连接。在接收到来自用于第一目标OPC服务器的OPC服务器状态改变提供者的活动服务器故障事件时,执行向第二目标OPC服务器的切换。
通过参照以下附图、描述及所附权利要求书,将会更好地理解本发明的这些及其它特征、方面和优点。
附图概述

图1是根据本发明的重定向管理器系统体系结构的单客户机连接的框图。
图2是根据本发明的到重定向管理器的多个示例的多个客户机连接的框图。
图3是根据本发明、重定向管理器如何建立客户机连接的顺序图。
图4是根据本发明、重定向管理器如何维护与OPC添加组请求相关的状态信息的顺序图。
图5是根据本发明、重定向管理器如何处理OPC按数据变化请求的顺序图。
图6是根据本发明、重定向管理器如何处理活动目标OPC服务器的故障的顺序图。
图7是根据本发明、重定向管理器如何使备选目标OPC服务器在它变为可用时同步的顺序图。
图8是根据本发明、重定向管理器如何代表客户机维护OPC创建事件预订请求的状态信息的顺序图。
图9是根据本发明、重定向管理器在目标服务器支持OPC告警和事件时如何处理活动目标OPC服务器的故障的顺序图。
图10是根据本发明、重定向管理器如何使备选目标OPC服务器在它变为可用时同步的顺序图。
优选实施例的详细描述 在以下详细描述中参照附图。这些附图组成本说明的一部分,以及通过举例给出可实施本发明的具体优选实施例。对这些实施例进行充分详细描述,使本领域的技术人员能够实施本发明。可使用其它实施例。可进行结构的、逻辑的和电气的变更,而没有背离本发明的精神和范围。因此,以下详细描述不是限制性的,本发明的范围仅由所附权利要求来限定。
图1表示根据本发明的重定向管理器系统体系结构的单客户机连接。在客户机节点100中的是OPC客户机101,它连接到重定向管理器102的单个示例,重定向管理器102又与主OPC服务器节点104中的组件以及备份OPC服务器节点106中的组件进行通信。主OPC服务器节点104和备份OPC服务器节点106中的组件与装置108进行通信。
OPC客户机101连接到重定向管理器102而不是直接连接到主OPC服务器节点104。利用配置实用程序为OPC客户机101配置重定向管理器102。一旦配置完成,OPC客户机101继续照常执行OPC相关任务。各个所配置的重定向管理器102经过注册,使得它指向已安装的可执行体。在客户机连接时,创建重定向管理器102的新示例。这个新示例在唯一进程地址空间中执行。为了状态目的,它对OPC客户机101是通过唯一标识可识别的。除了重定向管理器102的示例之外,客户机节点100具有OPC服务器状态改变提供者110和节点状态改变提供者112。
重定向管理器102是中间OPC服务器,它把OPC客户机101进行的OPC请求转发到与装置108通信的主OPC服务器节点104。重定向管理器102维护当主OPC服务器节点104出故障时采取适当动作所需的信息,并确保没有不良状态被返回给OPC客户机101。重定向管理器102具有数据访问和预订状态数据114及切换管理器116,以便改变活动服务器。
主OPC服务器节点104与装置108以及OPC客户机101想要访问以读取和写入数据的其它数据源进行通信,并配置为重定向管理器102所用的主服务器。另外,主OPC服务器节点104可配置为不同于重定向管理器102的重定向管理器所用的辅助服务器(参见图2)。活动OPC服务器是主OPC服务器节点104或者备份OPC服务器节点106,并且是当前通过重定向管理器102正服务于OPC客户机101的OPC请求的服务器。主OPC服务器节点104具有包含项目高速缓存120和条件数据库122的OPC服务器118、节点状态改变提供者124以及OPC服务器状态改变提供者126。当前数据值存储在项目高速缓存120中,告警状态存储在条件数据库122中。
当主OPC服务器节点104出故障时,辅助或备份OPC服务器节点106是活动OPC服务器。另外,备份OPC服务器节点106可配置为不同的重定向管理器所用的主服务器(参见图2)。与主OPC服务器节点104相似,备份OPC服务器节点106具有包含项目高速缓存130和条件数据库132的OPC服务器128、节点状态改变提供者134以及OPC服务器状态改变提供者136。
装置108是能够服务于数据访问或IO请求以及把告警和事件推向OPC服务器的数据源。
根据本发明的重定向管理器102是一种OPC服务器,它可支持OPC数据访问2.05和1.0A、OPC告警和事件1.0、OPC安全1.0接口以及当前已知或将来的其它OPC数据访问、OPC告警和事件、其它OPC接口。在以下意义上,它不是真正的OPC服务器它没有与实际数据源通信,而是用来向实际OPC服务器以及从实际OPC服务器转发客户机呼叫以及维护状态信息,允许它在主服务器出故障时交换到备份服务器。重定向管理器102被实现为进程外.exe服务器(参见图2)。到重定向管理器102的每个客户机连接有一个.exe服务器。向主和备份服务器、例如主OPC服务器节点104和备份OPC服务器节点106进行改变客户机连接状态但不请求IO的那些OPC请求。仅向主OPC服务器118进行IO请求。这使辅助服务器进入热备用模式。如果主OPC服务器118出故障,则重定向管理器102激活备份OPC服务器128并发出IO请求。由于OPC客户机101不知道此交换,因此能够明显减少OPC客户机101本身的错误处理情况。重定向管理器102还支持冷备用冗余方案。在这种情况下,不将状态复制到备份OPC服务器128。所有状态在切换时建立。
重定向管理器102还支持可选浏览界面。重定向管理器102把所有呼叫转发给主OPC服务器118或备份OPC服务器128,或者转发给所有服务器,同时维护与用于重定向目的的呼叫有关的状态信息。当前服务于IO请求的服务器称作活动服务器。如果当前活动服务器出故障,则作为切换过程的一部分,重定向管理器102把备份服务器之一设置为新的活动服务器。
重定向管理器102保存OPC客户机101的请求的状态,当主服务器出故障时把它们重定向或者重新发布到备份服务器,以及还用于其它各种情况。一种方法是把客户机呼叫分类为IO和非IO请求。按照以下方式进行分类。改变客户机连接状态但不请求IO的那些OPC请求被分类为非IO请求,诸如添加组、添加项目、创建事件预订以及设置过滤器呼叫。客户机IO呼叫被分类为IO请求,诸如读、写和确认条件。
以不同方式处理这些呼叫状态的保持。只要OPC客户机101正在运行,则保持非IO呼叫。需要这种信息的一种情况是同步在OPC客户机101已经进行添加组和添加项目呼叫之后出现的备份服务器。保持IO呼叫信息仅仅直到主或备份服务器为呼叫提供服务为止。一旦呼叫顺利地完成,则关于该呼叫的IO信息被删除。
重定向管理器102检查活动服务器返回的所有错误。表明沿着重定向管理器102与活动服务器之间的通信路径的故障的那些错误将导致重定向管理器102发起切换。没有表明沿着这个通信路径的故障的那些错误被转发给OPC客户机102。OPC客户机101按照与它直接连接到服务器时相同的方式来处理这些错误。重定向管理器102保存所有非IO呼叫的状态,因此可尝试重新同步。分类为非IO的所有OPC呼叫被发送给主服务器和备份服务器。在请求发给备份服务器之前,呼叫必须在活动服务器上顺利进行。如果请求在备份服务器上出故障,则错误被记录,但没有被返回给客户机。这时,备份服务器被认为与活动服务器不同步。重定向管理器尝试在切换时重新同步备份服务器。如果重新同步失败,则重定向管理器不切换到辅助服务器。
在初始化过程中,重定向管理器102建立与目标服务器、例如主OPC服务器节点104和备份OPC服务器节点106的连接。另外,重定向管理器102还建立与状态改变提供者、如OPC服务器状态改变提供者110的连接,以便预订可触发切换管理器116的事件。对于节点故障,重定向管理器102连接到节点状态改变提供者112。节点状态改变提供者112与对等节点状态改变提供者、如节点状态改变提供者106进行通信,以便监测其它节点的健康。同样,重定向管理器102建立到各目标OPC服务器节点、如主OPC服务器节点104和备份OPC服务器节点106上的OPC服务器状态改变提供者、如OPC服务器状态改变提供者126、136的远程预订连接。服务器状态的变化被转发到重定向管理器102。如果主OPC服务器节点104的OPC服务器118从运行状态转变,则重定向管理器102通过切换管理器116发起向备份OPC服务器节点106的切换。如果备份OPC服务器128从运行状态转变以及变为不可用,则向运行的后续转变得到同步。
重定向管理器102向OPC服务器状态改变提供者110报告其状态。这实现与主机系统状态显示组件的集成。向用户揭示从OPC客户机101到重定向管理器102的连接的健康以及目标OPC服务器118、128的健康。
OPC客户机101向重定向服务器102进行OPC请求,好象它直接连接到目标OPC服务器118、128一样。对于各客户机组创建,重定向管理器102把请求转发给活动和备份OPC服务器118、128。激活组收集的请求仅在活动OPC服务器上执行。组数据收集在备份服务器上是无效的。同样,激活事件预订的请求仅在活动OPC服务器上执行。事件预订在备份OPC服务器上保持无效。
收集具体数据源的请求可要求对装置108的名称空间中的名称的转换。如果装置108位于远处,则这个名称转换操作可能在性能方面开销很大。因此,重定向管理器102优化为与装置名称空间处理同步,而没有请求装置108的多次转换操作。
重定向管理器102在分开的线程上向主OPC服务器118和备份OPC服务器128进行所有OPC呼叫或请求。这使因服务器出故障而失败的OPC呼叫可以向备份OPC服务器128重发。在创建该线程之后,主OPC服务器118等待由向备份OPC服务器128发出呼叫的线程所发出信号通知的请求完成事件。一旦事件被发出信号通知,则主OPC服务器118把结果返回给OPC客户机101。重定向管理器102还在活动服务器出故障时等待活动服务器故障事件被发出信号通知。如果这个事件被发出信号通知,则重定向管理器102查找备用服务器,以及向那个服务器重新发出故障请求。内部超时周期被加至该等待,以便处理通知提供者或重定向管理器102本身不能处理的那些情况。这样,如果以上两种事件中的任一个没有被发出信号通知,则重定向管理器102不会永远保持挂起。作为配置选项提供超时周期。
对于用于数据访问以及告警和事件的回叫按照一种方法。重定向管理器102实现OPC客户机101的所有回叫。它截收活动OPC服务器的回叫,保持OPC客户机101的所有接收器接口,以及向OPC客户机101发出回叫。这确保在切换过程中没有不良值被返回给OPC客户机101。对于数据访问,当活动服务器在回叫可能发生之前出故障时,没有丢失异步读取或写入呼叫。重定向管理器102跟踪回叫是否已完成,以及当切换发生时再次向备份服务器重发呼叫。重定向管理器102回叫把事件转发给客户机按事件回叫,或者把数据请求转发给按数据变化回叫。当活动服务器出故障时,重定向管理器102在辅助服务器上激活客户机预订或数据访问组。重定向管理器102刷新事件预订,以及从辅助服务器开始处理回叫。
图2是根据本发明、到重定向管理器的多个示例的多个客户机连接的框图。客户机节点200具有已安装重定向管理器二进制可执行体202。配置工具在驻留于Microsoft Windows注册处的注册表204中创建用于所注册的重定向管理器的条目。配置包括标识目标OPC服务器。当客户机、如客户机一206连接到所注册的重定向管理器、如重定向管理器一208时,创建已安装重定向管理器二进制可执行体202的新示例。各示例在其自己的进程空间中运行,与其它任何正运行示例无关,并且为原始操作系统可见的。客户机连接到不同的多个注册的重定向管理器,例如重定向管理器一、二、三和四。如果重定向管理器一208的第一示例出故障,则只有客户机一206被影响,因为客户机三216具有它自己的到重定向管理器一218的第二示例的专用连接。注册的重定向管理器又与多个OPC服务器、如OPC服务器210进行通信。多个OPC服务器驻留在服务器节点、如服务器节点212中。多个服务器节点驻留在集群、如OPC服务器节点集群214中。可以存在任何数量的客户机、重定向管理器、OPC服务器、服务器节点以及OPC服务器节点集群。
图3-10是重定向管理器根据本发明工作的方式的多种情况的顺序图。虽然重定向管理器设计成适合两个或两个以上目标OPC服务器,但这些顺序图仅采用两个目标OPC服务器(即主和辅助)。这仅用于说明,以便使顺序图更简单以及更易于理解。重定向管理器成功连接到的第一目标称作活动服务器。剩余目标OPC服务器称作备用者。根据本发明的重定向管理器支持来自OPC数据访问以及OPC告警和事件发端的规范。在以下情况中,可提到具体的发端,但根据本发明的重定向管理器能够同时服务于数据访问客户机以及告警和事件客户机。
用于图3-10的以下各表总结了相应图中的特定事件。但是,表中的事件编号与图3-10中的步骤编号之间不存在一一对应。
图3表示根据本发明,重定向管理器如何建立客户机连接。沿图3顶部的框中标识的各组件在分开的进程中运行。这些组件为客户机101、重定向管理器102、节点状态改变提供者112、主OPC服务器118、主服务器状态改变提供者126、辅助OPC服务器128以及辅助服务器状态改变提供者136。
图3假定一些起始条件。用户或管理员已经使用配置工具来创建重定向管理器服务器的命名示例。这个示例包括目标OPC服务器的标识。这个信息由配置工具存储到重定向管理器运行时间已知的注册位置(参见图2)。所有目标OPC服务器是可用的。
表1一般描述图3所示的特定事件。表1中的各事件以图3所示的实例方法来实现。 表1客户机连接事件事件的描述1 OPC客户机101采用标准COM连接机制连接到重定向管理器102。2作为COM服务器的重定向管理器102通过允许OPC客户机101它自己的专用连接来响应连接请求,产生唯一进程。这是可能的,因为重定向管理器102采用COM来建立重定向管理器的各示例将在其自己的进程中运行。连接到相同重定向管理器102的第二客户机获得其自己的进程。3重定向管理器102采用Microsoft Windows注册表来确定用户/管理员是否已经进行必要的配置。(预计用户已经使用单独的配置工具来定义目标OPC服务器。)重定向管理器102采用标准COM机制连接到目标OPC服务器、主OPC服务器118和辅助OPC服务器128。4 重定向管理器102缺省情况下支持OPC数据访问发端。如果重定向管理器102确定目标OPC服务器、主OPC服务器118和辅助OPC服务器128支持OPC告警和事件发端,重定向管理器102加载告警和事件支持模块以扩展其缺省功能。如果确定目标OPC服务器不支持OPC告警和事件发端,则重定向管理器102支持系统资源的保留,因而不加载这个模块。5随后,重定向管理器102建立与状态改变提供者的连接,它连接到本地节点上的节点状态改变提供者112。然后,它连接到目标OPC服务器节点上的主服务器状态改变提供者126和辅助服务器状态改变提供者136。这些提供者通知重定向管理器102状态变化,例如节点或者OPC服务器的故障。
图4表示根据本发明,重定向管理器如何保持与OPC添加组请求相关的状态信息。这种情况中涉及的组件为客户机101、重定向管理器102、重定向组400(在数据访问和预订状态数据114中)、主添加组线程402(由重定向管理器102创建)、辅助添加组线程404(由重定向管理器102创建)、主服务器118以及辅助服务器128。该情况假定主服务器118以及辅助服务器128是可用的。
图4假定一些起始条件。管理员已经采用重定向管理器配置实用程序进行必要的配置,以便注册重定向管理器102。另外,OPC客户机101还建立到重定向管理器102的连接。
表2一般描述图4所示的特定事件。表2中的各事件以图4所示的实例方法来实现。
表2.OPC数据访问情况添加组事件事件的描述1OPC客户机101呼叫IOPCServer∷AddGroup()。2 重定向管理器102创建独立线程AddGroupThread,并把AddGroup参数以及主服务器118的IOPCServer接口作为变元传递给线程。重定向管理器102这时等待两个事件,即请求完成事件和活动服务器故障事件。在独立线程上发出客户机请求的主要原因是避免在目标服务器出故障的情况下过长的COM/DCOM超时。3 AddGroupThread把AddGroup呼叫转发给目标OPC服务器之一、主服务器118。一旦呼叫顺利进行,则线程设置请求完成事件并退出。4 在接收到请求完成事件时,重定向管理器102创建重定向组对象400,它实现所有OPC组接口。5 重定向管理器402对剩余目标OPC服务器的每个重复步骤2和3。但是,在这些剩余目标OPC服务器的每个上建立OPC组作为不活动的。6 重定向管理器102保存与AddGroup呼叫相关的状态信息以及重定向组对象400中的目标OPC服务器返回的OPC组接口指针。
图5表示根据本发明,重定向管理器如何处理OPC按数据变化请求。这种情况中涉及的组件为客户机101、重定向组400(作为数据访问和预订状态数据114的一部分)、重定向管理器(RDM)主接收器502、重定向管理器(RDM)辅助接收器504、主组506(作为主OPC服务器118的一部分)以及辅助组508(作为辅助OPC服务器128的一部分)。这种情况描述重定向管理器102如何处理OPC按数据变化请求以及假定所有目标OPC服务器是可用的。
图5假定一些起始条件。OPC客户机101已经连接到重定向管理器,以及已经添加组和项目。组和项目已经被添加到所有目标OPC服务器。
表3一般描述图5所示的特定事件。表3中的各事件以图5所示的实例方法来实现。表3.OPC数据访问情况OnDataChange事件事件的描述1OPC客户机101创建实现回叫接口的接收器。2 OPC客户机101通过呼叫“通知(Advise)”来建立重定向管理器组对象的连接点与其接收器对象之间的连接。3 重定向管理器为各目标OPC服务器连接创建单独的接收器对象。4 重定向管理器通过呼叫“通知”来建立各目标OPC服务器的连接点与其接收器对象之间的连接。5 当活动服务器检测到组数据的变化时,它呼叫重定向管理器的相应接收器上的OnDataChange()方法。6在接收到回叫时,重定向管理器把数据转发给客户机的OnDataChange()方法。
图6表示根据本发明,重定向管理器如何处理活动目标OPC服务器的故障。在这种情况中涉及的组件为OPC客户机101、重定向组400、重定向管理器(RDM)主接收器502、重定向管理器(RDM)辅助接收器504、主组506、主组件状态提供者126以及辅助组508。
图6假定一些起始条件。OPC客户机101已经连接到重定向管理器。OPC客户机101正经由活动目标OPC服务器接收来自重定向管理器的OnDataChange()呼叫。活动目标OPC服务器出故障。
表4一般描述图6所示的特定事件。表4中的各事件以图6所示的实例方法来实现。
表4.OPC数据访问情况活动目标OPC服务器出故障事件事件的描述1重定向管理器连接到状态改变提供者,以及预订事件。2OPC客户机101建立回叫,以及接收OnDataChange()呼叫。3 活动目标OPC服务器的节点上的状态改变提供者通知重定向管理器关于OPC服务器故障。4 重定向管理器切换到剩余目标OPC服务器之一。这变为新的活动目标OPC服务器。重定向管理器把这个目标OPC服务器上的适当组设置为活动的。5 重定向管理器在组数据变化时开始从新的活动目标OPC服务器接收OnDataChange()呼叫。
图7表示根据本发明,重定向管理器如何使备选目标OPC服务器在它变为可用时同步。在这种情况中涉及的组件为OPC客户机101、重定向管理器102、主OPC服务器118、主服务器状态改变提供者126、辅助OPC服务器128以及辅助服务器状态改变提供者136。
图7假定一些起始条件。OPC客户机101已经连接到重定向管理器102,并由活动目标OPC服务器提供服务。先前没有运行的备选目标OPC服务器启动。
表5一般描述图7所示的特定事件。表5中的各事件以图7所示的实例方法来实现。
表5.OPC数据访问情况 备选目标OPC服务器变为可用的事件事件的描述1 重定向管理器102接收来自OPC服务器状态改变提供者的通知备选目标OPC服务器现在正运行。2 重定向管理器102连接到这个备选目标OPC服务器,以及使用它的状态信息把OPC组和OPC项目添加到这个备选目标OPC服务器。3 重定向管理器102把这个备选目标OPC服务器标记为可用于可能的切换。
图8表示根据本发明,重定向管理器如何代表客户机保持OPC创建事件预订请求的状态信息。这种情况中涉及的组件为OPC告警和事件客户机101、重定向事件服务器(重定向管理器)102、重定向预订对象804(作为数据访问和预订状态数据114的一部分)、独立线程806(由重定向管理器102创建)、主事件服务器118以及辅助事件服务器128。
这种情况描述重定向管理器如何代表OPC告警和事件客户机保持状态信息。明确地说,这是对于与OPC创建事件预订呼叫有关的状态信息表示的。这种情况假定主和辅助服务器是可用的。切换事件用来代替活动服务器故障事件,如OPC数据访问情况中那样。由于重定向管理器的OPC告警和事件功能包含于仅当OPC告警和事件客户机800需要告警和事件支持时才被加载的独立模块中,模块本身不监测目标服务器的可用性或健康。而是重定向管理器的告警和事件模块依靠主重定向管理器中包含的那些工具。这些主要工具检测目标服务器故障或者服务于手动交换到备选目标服务器的请求,但在任一情况下,告警和事件模块只接收更普通的切换事件。
图8假定一些起始条件。主和辅助服务器都是可用的。OPC告警和事件客户机800建立到重定向管理器的连接。在检测到目标OPC服务器支持OPC告警和事件之后,重定向管理器加载告警和事件支持模块。客户机进行的OPC告警和事件请求由这个模块提供服务。
表6一般描述图8所示的特定事件。表6中的各事件以图8所示的实例方法来实现。
表6.OPC告警和事件情况 创建事件预订事件事件的描述1 OPC告警和事件客户机800呼叫IOPCEventServer∷CreateEventSubscription。2 重定向管理器创建重定向预订对象800,它实现所有OPC事件预订接口。3 重定向管理器创建独立线程802,并把CreateEventSubscription参数以及主事件服务器118的IOPCEventServer接口作为变元传递给线程802。4 重定向管理器等待两个事件其中之一,即请求完成事件或切换事件。对于利用独立线程802的所有重定向管理器情况都是真的,以这种方式发出请求的主要原因是避免在目标服务器出故障的情况下太长的COM/DCOM超时。5 正处理创建预订请求的独立线程802把呼叫转发给目标OPC服务器其中之一。一旦呼叫顺利进行,则独立线程802设置请求完成事件并退出。6 重定向管理器对剩余目标OPC服务器的每个重复步骤2-4。但是,在这些剩余目标OPC服务器的每个上建立OPC预订作为不活动的。7 重定向管理器保存与CreateEventSubscription呼叫相关的状态信息以及目标OPC服务器返回的OPC预订接口指针。
图9表示根据本发明,重定向管理器在目标服务器支持OPC告警和事件时如何处理活动目标OPC服务器的故障。这种情况中涉及的组件为OPC告警和事件客户机101、重定向事件服务器(重定向管理器)102、重定向预订900(作为数据访问和预订状态数据114的一部分)、线程902(由重定向管理器102创建)、主服务器预订(主OPC服务器)118以及辅助服务器预订(辅助OPC服务器)128。
图9假定一些起始条件。目标OPC服务器支持OPC告警和事件。OPC告警和事件客户机101已经连接到重定向管理器。OPC告警和事件客户机101正经由活动目标OPC事件服务器接收来自重定向管理器的OnEvent()呼叫。活动目标OPC事件服务器出故障。
表7一般描述图9所示的特定事件。表7中的各事件以图9所示的实例方法来实现。
表7.OPC告警和事件情况 活动目标OPC服务器出故障事件事件的描述1重定向管理器102连接到状态改变提供者,以及预订事件。2 OPC告警和事件客户机101已经建立预订回叫,以及正在接收OnEvent()呼叫。3 活动目标OPC事件服务器的节点上的状态改变提供者通知重定向管理器关于OPC服务器故障。4 重定向管理器102切换到剩余目标OPC事件服务器之一,以及将此宣布为新的活动服务器。作为其切换活动的一部分,重定向管理器102设置切换事件,它警告告警和事件模块内切换正在进行的功能性。5目标OPC事件服务器中的事件预订从不活动设置为活动。6重定向管理器100代表OPC告警和事件客户机101向各个新活动预订发出刷新请求。这为OPC告警和事件客户机900提供了使它对当前活动事件或不活动但未确认事件的观察与目标服务器同步的机会。这还确保在切换过程中可能已经出现的任何事件仍然被提供给客户机而不会丢失。7 重定向管理器102当新事件出现时开始从新的活动目标OPC事件服务器接收OnEvent()呼叫。
图10表示根据本发明,重定向管理器如何使备选目标OPC服务器在它变为可用时同步。这种情况中涉及的组件为节点状态改变提供者112、重定向事件服务器(重定向管理器)102、重定向预订1000(作为数据访问和预订状态数据114的一部分)、线程1002(由重定向管理器102创建)以及辅助事件服务器(辅助OPC服务器)128。
图10假定一些起始条件。目标OPC服务器支持OPC告警和事件。OPC客户机已经连接到重定向管理器,并由活动目标OPC事件服务器提供服务。先前没有运行的备选目标OPC事件服务器启动。
表8一般描述图10所示的特定事件。表8中的各事件以图10所示的实例方法来实现。
表8.OPC告警和事件情况 备选目标OPC服务器变为可用事件事件的描述1 重定向管理器接收来自状态改变提供者的通知备选目标OPC事件服务器现在正运行。2 重定向管理器连接到这个备选目标OPC事件服务器,并通知告警和事件模块新的目标是可用的。3 告警和事件模块采用所保存的状态信息来添加OPC事件预订,以及把预订相关过滤器及其它设定应用于这个备选OPC事件服务器。4 重定向管理器把这个备选目标OPC服务器标记为可用于可能的切换。
应当理解,以上描述是为了说明而不是限定。通过阅读以上描述,本领域的技术人员将会十分清楚其它许多实施例,例如本发明修改为对于OPC规范的修订本,或者把本发明包括在更大系统中,使得命名为客户机的一些组件是服务器或者反之。本发明对于过程控制和工业自动化之外的领域具有适用性。因此,本发明的范围应当参照所附权利要求以及这些权利要求涵盖的完整等效范围来确定。
权利要求
1.一种重定向管理方法,包括
通过允许第一OPC客户机到OPC重定向管理器的第一示例的第一专用连接,响应所述第一OPC客户机的第一客户机连接请求;以及
通过允许第二客户机到所述OPC重定向管理器的第二示例的第二专用连接,响应所述第二OPC客户机的第二客户机连接请求。
2.如权利要求1所述的方法,其特征在于还包括
当所述OPC重定向管理器的所述第二示例出故障时,丢失所述第二OPC客户机的所述第二专用连接;以及
保持所述第一OPC客户机的所述第一专用连接。
3.如权利要求1所述的方法,其特征在于还包括
连接到第一目标OPC服务器;
连接到用于所述第一目标OPC服务器的OPC服务器状态改变提供者;以及
连接到至少一个附加目标OPC服务器,包括配置成为所述第一目标OPC服务器提供备份的第二目标OPC服务器。
4.如权利要求3所述的方法,其特征在于还包括
在接收到来自用于所述第一目标OPC服务器的所述OPC服务器状态改变提供者的活动服务器故障事件时,执行向所述第二目标OPC服务器的切换。
5.如权利要求4所述的方法,其特征在于还包括
接收来自所述OPC服务器状态改变提供者的关于所述第一目标OPC服务器现在可用的通知;以及
连接到所述第一目标OPC服务器。
6.如权利要求3所述的方法,其特征在于还包括
接收来自所述第一OPC客户机的OPC添加组请求;
把所述OPC添加组请求转发给所述第一目标OPC服务器,以便为所述OPC添加组请求提供服务;
在接收到来自所述第一目标OPC服务器的请求完成事件时,通过创建至少一个组来实现与所述OPC添加组请求相关的多个添加组接口;
把所述OPC添加组请求转发给所述至少一个附加目标OPC服务器中的每一个,以便存储所述至少一个组作为不活动的;以及
存储与所述OPC添加组请求相关的信息,包括所述至少一个组。
7.如权利要求6所述的方法,其特征在于还包括
接收来自所述第一OPC客户机的OPC按数据变化请求;
建立所述第一目标OPC服务器与第一接收器对象之间的连接;
建立所述第二目标OPC服务器与第二接收器对象之间的连接;
从所述第一目标OPC服务器向所述第一OPC客户机提供第一按数据变化请求;以及
存储与所述OPC按数据变化请求相关的信息,包括所述至少一个组。
8.如权利要求7所述的方法,其特征在于还包括
在接收到来自用于所述第一目标OPC服务器的所述OPC服务器状态改变提供者的活动服务器故障事件时,执行向所述第二目标OPC服务器的切换;
激活所述第二目标OPC服务器上的所述至少一个组;以及
从所述第二目标OPC服务器向所述第一OPC客户机提供第二按数据变化请求。
9.如权利要求8所述的方法,其特征在于还包括
接收来自所述OPC服务器状态改变提供者的关于所述第一目标OPC服务器现在可用的通知;
连接到所述第一目标OPC服务器;以及
采用先前存储的信息把所述至少一个组添加到所述第一目标OPC服务器。
10.一种重定向管理的方法,包括
响应来自OPC客户机的OPC创建事件预订请求,实现与所述OPC创建事件预订请求相关的接口;
把所述OPC创建事件预订请求转发给主目标OPC服务器以便得到服务;
把所述OPC创建事件预订请求转发给至少一个附加目标OPC服务器作为不活动的,所述至少一个附加目标OPC服务器包括配置成为所述主目标OPC服务器提供备份的辅助目标OPC服务器;以及
存储与所述OPC创建事件预订请求相关的信息,包括状态信息。
11.如权利要求10所述的方法,其特征在于还包括
连接到所述主目标OPC服务器;
连接到用于所述主目标OPC服务器的OPC服务器状态改变提供者;以及
连接到所述至少一个附加目标OPC服务器。
12.如权利要求11所述的方法,其特征在于还包括
确定所述主目标OPC服务器支持OPC告警和事件;以及
加载告警和事件模块。
13.如权利要求12所述的方法,其特征在于还包括
把至少一个按事件请求从所述主目标OPC服务器提供给所述OPC客户机;
在接收到来自用于所述主目标OPC服务器的所述OPC服务器状态改变提供者的活动服务器故障事件时,执行向所述辅助目标OPC服务器的切换;以及
把所述切换通知所述告警和事件模块。
14.如权利要求13所述的方法,其特征在于还包括
从所述辅助OPC目标服务器取回所有事件,以及把所述事件转发给所述OPC客户机以防止事件丢失;以及
把OPC按事件请求从所述辅助目标OPC服务器提供给所述OPC客户机。
15.如权利要求13所述的方法,其特征在于还包括
接收来自所述OPC服务器状态改变提供者的关于所述主目标OPC服务器现在可用的通知;
连接到所述主目标OPC服务器;以及
采用所述状态信息建立所述主目标OPC服务器。
16.一种OPC重定向管理系统,包括
第一OPC服务器,能够为OPC请求提供服务;
第二OPC服务器,配置成为所述第一OPC服务器提供备份;以及
第一重定向管理器,能够代表第一OPC客户机把OPC请求转发给所述第一OPC服务器或者所述第二OPC服务器;
其中所述第一OPC客户机能够建立它自己的与所述第一重定向管理器的专用连接;以及
其中所述第一重定向管理器能够在所述第一OPC服务器出故障时连接到所述第二OPC服务器,从而向所述第一OPC客户机提供无缝服务。
17.如权利要求16所述的系统,其特征在于,所述第一重定向管理器能够存储与所述OPC请求相关的信息,供所述第一OPC服务器出故障时使用。
18.如权利要求16所述的系统,其特征在于还包括
第三OPC服务器;
第四OPC服务器,配置成为所述第三OPC服务器提供备份;以及
第二重定向管理器;
其中第二OPC客户机能够建立它自己的与所述第二重定向管理器的专用连接;以及
其中所述第二重定向管理器能够在所述第三OPC服务器出故障时连接到所述第四OPC服务器,从而向所述第二OPC客户机提供无缝服务。
19.如权利要求16所述的系统,其特征在于,所述第一OPC服务器能够配置成为第三OPC服务器提供备份。
20.如权利要求16所述的系统,其特征在于,所述OPC请求的类型是数据访问。
21.如权利要求16所述的系统,其特征在于,所述OPC请求的类型是告警和事件。
22.如权利要求16所述的系统,其特征在于还包括
主服务器节点包括所述第一OPC服务器、主节点状态改变提供者以及主OPC状态改变提供者;
辅助服务器节点包括所述第二OPC服务器、辅助节点状态改变提供者以及辅助OPC状态改变提供者;以及
客户机节点包括所述第一OPC客户机、所述第一重定向管理器、客户机节点状态改变提供者以及客户机OPC状态改变提供者。
23.如权利要求22所述的系统,其特征在于,所述第一重定向管理器包括
数据访问和预订状态数据;以及
切换管理器。
24.如权利要求22所述的系统,其特征在于,所述第一OPC服务器包括项目高速缓存和条件数据库。
25.如权利要求16所述的系统,其特征在于,所述第一OPC客户机是过程控制应用。
26.如权利要求16所述的系统,其特征在于,所述第一OPC服务器与装置进行通信,以便为所述OPC请求提供服务,使得所述第一OPC客户机接收关于所述装置的信息,作为所述OPC请求的结果。
27.一种机器可读媒体,存取用于执行一种方法的可执行指令,所述方法包括
通过允许第一OPC客户机到OPC重定向管理器的第一示例的第一专用连接,响应所述第一OPC客户机的第一客户机连接请求;
通过允许第二OPC客户机到所述OPC重定向管理器的第二示例的第二专用连接,响应所述第二OPC客户机的第二客户机连接请求;
当所述OPC重定向管理器的所述第二示例出故障时,丢失所述第二OPC客户机的所述第二专用连接;以及
保持所述第一OPC客户机的所述第一专用连接。
28.如权利要求27所述的方法,其特征在于还包括
连接到第一目标OPC服务器;
连接到用于所述第一目标OPC服务器的OPC服务器状态改变提供者;
连接到配置成为所述第一目标OPC服务器提供备份的第二目标OPC服务器;以及
在接收到来自用于所述第一目标OPC服务器的所述OPC服务器状态改变提供者的活动服务器故障事件时,执行向所述第二目标OPC服务器的切换。
全文摘要
OPC重定向管理器维护当目标OPC服务器出故障时采取适当动作以及确保没有不良状态被返回给客户机所需的信息。需要目标OPC数据访问和/或告警及事件服务器之间的无缝故障解决的任何现有OPC客户机将连接到重定向管理器的独特配置的示例,而不是连接到主服务器。客户机应用继续照常执行OPC相关任务。由于每个客户机连接是特有的,因此重定向管理器本身不是单一故障点。每个所配置的重定向管理器示例通过预订故障事件来监视目标服务器模式和目标服务器本身的健康。
文档编号H04L29/08GK1679294SQ0381990
公开日2005年10月5日 申请日期2003年6月30日 优先权日2002年6月28日
发明者E·B·豪金森, A·维德亚尚卡, T·福尔廷 申请人:霍尼韦尔国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1