控制系统的数据访问方法 【技术领域】
本发明涉及提供用于在用于控制的计算机化的系统中,从不同的源到软件应用程序对实时数据、历史数据和报警及事件数据进行统一且位置透明的访问的装置。用于控制的计算机化的系统包括控制系统,例如,过程控制系统和制造执行系统。特别地,本发明涉及一种方法和计算机程序,由此不管提供该访问功能需要什么及多少不同的机械机构,软件应用程序都可以应用一个且相同的接口来访问不同的数据源。
背景技术
用于控制和执行制造的系统包括多种不同的软件应用程序。一个例子是过程图形程序包,它在屏幕上显示出代表过程当前状态的数据项,同时,通过为数据项输入新的值而让操作者发出控制命令。另一个例子是事件记录功能,它存储并显示有关事件和报警的信息。还有另一个例子是历史程序包,为长期存储、为以趋势曲线显示或以其他形式显示、以及为由其他应用程序进行的进一步处理而收集数据项值序列。还有另一个例子是报告程序包,它收集确定的数据项,实施某种计算,并作为报告显示该结果。
还有另一个例子是计算程序包,例如电子数据表应用程序,它收集数据项值的采样,实施某些计算,并可能地向相同的或不同的数据项回复新值。还有另一个例子是最优化程序包,根据描述过程的当前实施情况的多个数据项地值,为了最优化该实施操作,为多个设定点而计算新的值。
还有另一个例子是生产计划功能,应用关于当前生产命令储备(backlog)的信息和描述某些处理操作或制造装置的当前可用性的数据项的值,从而确定最佳的生产计划。还有另一个例子是生产报告程序包,应用确定的数据项来计算并报告已经生产的产品的总量。
就其功能性来说,这些应用程序和其他程序都需要访问例如实时数据、历史数据和报警及事件数据的信息,这些信息来自控制器和装置,同时也来自于其他软件应用程序。然而,现在的控制系统是不同种类的系统,其中的部件是不同类型的且来自于不同的厂家,例如,过程控制器、可编程逻辑控制器(PLC)、智能现场装置、通信链路及软件应用程序,它们都组合在一个集成系统中。
传统上,这已要求在控制系统中要求数据的软件应用程序具有特殊且不同的匹配从而可以访问用于实时数据、历史数据和报警及事件数据的不同的源。这在已有技术的图1中以简图形式进行了说明,该图示出了一个过程控制系统,该系统具有客户应用程序1和三个不同的数据源5A、5B、5C:通过通信驱动器A、4A对其进行访问的可编程逻辑控制器(PLC)5A;通过通信驱动器B、4B对其进行访问的过程控制器5B;以及通过软件接口进行访问的软件应用程序5C。其他可用的数据源可以是例如不同制造商制造的、需要其他类型通信驱动器的现场总线式连通装置,以及数据库和具有其他类型软件接口的其他软件应用程序。客户应用程序包括不同的特殊匹配9,以使其可以通过这些不同的通信驱动器和软件接口与不同的数据源进行通信。
OPC(用于过程控制的OLE,其中OLE是指对象链接和嵌入)是一种规范,它旨在通过要求所有数据源都显示相同类型的接口而消除这些问题中的若干问题。OPC是一种由OPC基金会出版的公知的规范。它是基于微软公司的组件对象模型(COM)建立的。
来自于已有技术的图2示出了一种过程控制系统,该系统具有如图1所示的相同的客户应用程序1和数据源5A、5B、5C,但还具有对应于每种数据源的OPC服务器3A、3B、3C。所有OPC服务器都暴露出相同类型的接口,因此客户应用程序可以不必包括不同的数据源特殊匹配。
只要所有数据项都是可以通过相同的OPC服务器访问的,那么,OPC还可使客户应用程序访问若干具有一个单一请求的数据项。
尽管OPC减轻了客户应用程序对于不同数据源使用特殊匹配的需要,但其还需要客户应用程序分辨出哪个特殊OPC服务器提供了对哪个数据项的访问,从而指导它对正确OPC服务器的访问请求。出于同样的理由,当数据项是可以通过不同OPC服务器访问时,客户应用程序可以不访问具有一个单一请求的若干数据项。这就具有一个缺点,即,增加了客户应用程序的复杂度,它需要始终监视哪个OPC服务器用于每个单独的数据项,并且需要生成用于数据项访问的单独的访问请求,该数据项起源于不同类型的数据源。另一个缺点是当在系统中安装一个新的OPC服务器以提供对新类型数据源的访问时,客户应用程序就必须改变以便也可以使用该OPC服务器。
标题为“中央控制器中在可编程逻辑控制器和程序操作之间进行实时数据通信的装置”的US5038318公开了一种计算机,该计算机与可编程逻辑控制器(PLC)的网络相连,该网络可用于实现制造范围内的监视和控制功能。该描述公开了贯穿个人计算机中常规目标电子数据表程序的可操作的内插计算机程序,该目标电子数据表程序可以在PC上显示的电子数据表中的单元和可编程逻辑控制器(PLC)的存储部分之间直接移动实时状态和控制信息。这旨在通过可以在个人计算机、PC上运行的程序,简化用户实时监视和控制在机床上或者在加工站中执行的制造过程。
尽管描述了经由同轴电缆连接的常规PLC网络的功能性。但该功能性说明了PLC和PC之间通信的能力局限于:
-电子数据表程序发送信息给PLC,
-该消息包含PLC的预定的特定存储寄存器,
-该消息经由网卡和局域网发送到特定PLC处,
-出于向PC上的电子数据表程序中的特定单元写入信息或从其中读出信息的目的。
标题为“具有ActiveX的过程控制”的WO99/46651,公开了一种对于用户的软件开发工具包,以生成一个或多个实时交互控制和通信软件对象,用于与计算机和机器相连。所公开的内容是一种由微软公司开发的软件对象类型(称为Activex组件)的应用。WO99/46651公开了Activex类型的预制软件对象可以通过所述的工具包获得。这些Activex软件对象还被描述成将OPC作为控制对象的软件表示和处理机器中控制信号之间的通信手段使用。然而,所述软件对象的密钥结合和结构功能是在应用前产生的,也就是说,在运行时间之前。更进一步,由于工具包生成的软件对象直接链接到单独的特定控制信号的连接标记上,所以,所述的软件对象关于例如在应用中更新和进一步的使用,或者变化是局限的。
标题为“在计算机化的系统中集成应用程序的方法”的WO00102953,公开了一种在计算机化的系统中集成多个且不同类型的应用程序的方法。该方法是基于将现实世界对象表示成“复合对象”的原理进行的。现实世界对象的不同情况,例如它的实际位置、过程中的当前阶段、控制功能、操作员的交互作用、模拟模型、某些关于该对象的记录等等,都分别描述成复合对象的不同情况。复合对象是一个或多个这样的情况的集合体。因此,复合对象不是面向目标系统的常规意义中的对象,而更可以说成是关于这种常规对象的引用的集合体,这些常规对象实施不同的情况。每种情况或情况的组合都可以由一个独立软件应用程序实施,这个程序通过一组接口提供了它的功能性,这些接口是通过复合对象可访问的。另一个软件应用程序因此可以查询有关它的一种情况相关的功能的复合对象,并且从而通过该复合对象获得对实施该功能的接口的引用。
网络服务是下述技术的一个例子,该技术可以通过利用国际互连网技术启动对(软件)对象的远程访问。标题为“提供网络服务的方法和装置”的WO0077653A1公开了一种提供用于商业的网络服务的方法和装置。该描述公开了一种方法,利用HTTP(超文本传输协议)且请求GET和POST,从而为网络服务提供输入数据。在由微软出版社于2001年2月期MSDN杂志中出版的文章“网络服务:建立具有SOAP和ASP.NET的可再用web组件”中描述了利用交互平台技术的网络服务的应用与开发,例如利用XML(扩展标高语言)、HTTP和SOAP(单一对象访问协议)的网络服务的应用与开发。该篇文章也公开在微软msdnmag网址处的国际互连网上。
【发明内容】
本发明的目的是解决上述的一个或多个问题。本发明提供了用于客户应用程序以访问数据的装置,该数据例如,实时数据、历史数据、及事件和报警数据,而不需要客户应用程序分辨出哪个访问服务器用于每个数据项,并且可以统一且透明地进行访问。本发明的另一个目的是提供一种装置,使得即使当数据项是可以通过不同OPC服务器访问时,客户应用程序也能够通过一个单一请求对若干数据项进行访问。
这些和其他的目的可以通过根据权利要求1的方法实现,可以通过根据权利要求26的系统实现,也可以通过根据权利要求47的计算机程序产品实现。
本发明的主要优点在于软件应用程序,尤其是客户应用程序,可以不要求每个客户应用程序分辨出哪个访问服务器用于每个单独数据项的常规复杂度而访问数据项,例如实时数据、历史数据及报警和事件数据。这就又大大地简化了:
-客户应用程序中所需的功能性,
-新的客户应用程序的添加,
-新类型数据源的添加,及
-升级控制系统。
本发明的另一个优点是使客户应用程序免于常规复杂度,该常规复杂度是去处理这样一些情况所要求的,即在那里每个访问服务器存在于多个实例之中。可以是这样的情况,即,当需要系统中非常大量的数据项和多个访问服务器共享加载时,或者例如,当为了改善可用性(冗余)而复制访问服务器时。
在用于管理及控制工业装置和过程的大且复杂的控制系统中,通常有成千或甚至几十万的单独的数据项,以及许多不同的客户应用程序,这些程序必须对上述的数据项进行访问。本发明使这些客户应用程序的复杂度降低表现了有效降低提供高级控制系统成本的显著技术优势。
本发明优选实施例的有利改进包括代理装置,描述成一个连接器,它使利用在客户应用程序和针对不同情况的最佳访问服务器之间进行通信的装置成为可能。它包括网络(web)技术的应用,例如,网络服务和SOAP,该技术通过利用低成本且容易实现的技术,可以经济地实现客户应用程序更大程度的地理分布。
附图简述
当参考下面结合附图进行的详细描述时,可以更完整的了解本发明的方法和系统,其中:
图1(已有技术)示意性地示出了包括客户应用程序和多个数据源的控制系统的综述;
图2(已有技术)以简单方式示出了客户应用程序如何利用OPC服务器与具有数据独立接口的多个数据源相连;
图3示出了根据本发明实施例在控制系统中具有普通类型访问服务器而不是OPC服务器的该控制系统的简图,客户应用程序具有访问服务处理器组件,并且有包含关于数据项的信息的实体对象。
图4示出了本发明优选实施例,在该实施例中,访问服务处理器是一个具有OPC适应接口的COM对象,并且访问服务器是OPC服务器。
图5示出了图4优选实施例的改进之处,其中,访问服务处理器和每个OPC服务器之间的通信可以经由连接器控制。
图6示出了图5优选实施例的最佳应用,其中进一步的改进,实体对象是复合对象。
图7示出了一个优选实施例的最佳应用,其中,通过配置工具实施控制器装置的一个方面。
图8示出了一个优选实施例的类似最佳应用,其中,通过提供数据项的软件应用程序实现一个方面。
优选实施例的描述
一种根据本发明的用于提供装置的方法,该装置用于在用于控制的计算机化的系统中,以统一且位置透明的方式从不同的源到客户应用程序访问实时数据、历史数据及报警和事件数据,该方法包括软件对象的应用,该软件对象代表了各种实体,这些实体具有系统中规定的功能意义。这样一个实体的例子是流量控制环,另一个例子是温度测量,第三个例子是启动序列。在该说明书中,代表这种实体的软件对象称为实体对象。
本说明中使用的其他术语包括要求访问数据的软件应用程序,该程序如前所述称为客户应用程序,还包括提供进行这种访问的装置的机构,该机构称为访问服务器。实时数据、历史数据或报警及事件数据的项称为数据项。
图3示出了根据本发明一个实施例的控制系统,该系统包括客户应用程序1、访问服务处理器(Access Service Handler)2和一个或多个实体对象10。在该实施例中,示出的就是过程控制系统。过程控制系统中还包括有三个访问服务器3A、3B、3C,用于三个不同类型的数据源:PLC5A、过程控制器5B和软件应用程序5C。在三个访问服务器3A、3B、3C和不同的数据源(例如5A、5B、5C)之间的通信链路,都另外地以与图2所示已有技术相类似的配置方式示出。
与每个实体对象10相关的是不同的数据项,这些数据项保持关于实体对象代表的实体的信息。这些实体对象保持每个相关数据项的引用,该引用包括关于如何访问那条数据项的信息。该数据项位于一个或多个数据源中,这些数据源例如为分别在下面图3-8中所示的PLC5A、过程控制器5B或软件应用程序5C。数据项可以包括例如,实时数据、历史数据、或报警和事件数据。有关实体对象的数据项的例子是
-对于流量控制环:名称、说明、值、设定点、增益、输出和状态。
-对于温度测量:名称、说明、值、高报警限、低报警限、和状态。
-对于启动序列:名称、说明、启动、停止、当前阶段、和状态。
有关实体对象的每个数据项都以在控制系统中唯一身份的某种形式给出。在本发明的第一实施例中,这个身份是字符串‘object_name.data_item_name’,其中object_name是唯一地识别实体对象的名称,data_item_name是在这个对象的范围内唯一地识别数据项的名称。例如,对流量控制环FIC201的说明将由字符串‘FIC201.DESCRIPTION’识别,对它的设定点的说明将由字符串‘FIC201.SETPOINT’识别。对于每个有关实体对象的数据项来说,该实体对象保持引用,该引用识别访问服务器,该服务器提供对该条数据项的访问。
与相同或不同实体对象相关的不同的数据项是可以通过不同访问服务器进行访问的,由于下述任何一个原因:
-包括不同类型数据项的数据源,这些数据源通过不同通信手段相连,并因此需要不同类型的OPC服务器,
-非常大量的数据项由许多不同客户访问,这样,几个计算机之间就必须共享加载,
-访问服务器是冗余的,也就是,访问服务器在第一计算机和第二计算机中运行,在第一计算机发生故障的情况下,第二计算机准备接收第一计算机的任务。
在任何情况下,这里描述的方法使客户应用程序可以应用一种统一的方法访问所有的数据项,可以不必处理包括什么不同类型的访问服务器,也不必处理每个访问服务器如何划分或如何复制。
每个实体对象10都拥有信息,该信息采用前述引用的形式,该信息是关于哪个访问服务器用于与其相关的数据项的信息。对于特殊的数据源,这个引用例如可以提供给相关实体对象,通过用于配置该数据源的配置工具,或者通过该相关访问服务器提供的方法,例如,由OPC服务器提供的浏览机构,或者由任何其他源提供的浏览机构。
根据本发明,客户应用程序对数据项的访问由称为访问服务处理器2的软件组件管理。该组件优选以元件库的形式用于客户应用程序1,例如DLL(动态连接库)或共享程序库。显示出对于客户应用程序的一组统一的接口。优选地是,这些接口遵守某个已知的标准,例如OPC或SQL(结构化查询语言)。通过这些接口,客户应用程序可以通过查询数据项唯一的身份而访问该数据项。访问服务处理器应用从相关实体对象中检索到的信息,生成对不同优先访问服务器的访问请求,以建立哪个访问服务器用于每个数据项。
参照图3,该图示出了根据本发明一个实施例的控制系统,该系统包括客户应用程序1、访问服务处理器2、和一个或多个实体对象10。根据本发明一个实施例的方法以下面的方式实施。在运行时间:
1.客户应用程序1与访问服务处理器2组件相关,例如,通过将其作为过程COM对象来示例。
2.客户应用程序调用访问服务处理器2的相关接口,传递将需要访问的数据项的标识符作为参数,例如‘FIC201.VALUE’、‘FIC201.SETPOINT’、‘TI114.VALUE’、和‘TI114.HIGH ALARM LIMIT’。
3.对于包括在客户应用程序的访问请求中的每个数据项,访问服务处理器2,对提供访问该数据项的访问服务器3的引用查询相关实体对象10。
4.然后根据这个信息,访问服务处理器2将客户应用程序的请求分离成对于不同访问服务器3的单独请求32。
5.当访问服务器3响应这些请求时,访问服务处理器2就将这些不同的结果合并到一个响应中,该响应发送回客户应用程序1。
具有访问服务处理器2的客户应用程序1、实体对象10、和所有访问服务器3,都可以在同一个计算机中运行,或者在通过网络相连的不同计算机中运行。
图4示出了本发明的优点和优选实施例。在该实施例中,访问服务处理器2是COM对象,且接口,例如接口21,暴露于客户应用程序,是遵守OPC的。进一步,访问服务器3A、3B、3C主要是OPC服务器。由于OPC是已知规范,并且OPC服务器对于多种不同类型数据源,例如,过程控制器、可编程逻辑控制器(PLC)、和智能现场装置是商业上可得到的,所以该实施例是有优势的。
在其定义中,OPC规定远程客户应用程序通过DCOM(分布式COM)与OPC服务器进行通信。在本发明该优选实施例的改进中,这种通信通过作为一种代理而运行的软件组件来管理。该软件代理称为连接器6,它在与各个OPC服务器相同的计算机中运行,并且通过COM局部地与OPC服务器进行交互作用。
参看图5。图5示出了在与OPC服务器(3A、3B、3C)相同的计算机中运行的连接器6。访问服务处理器2和例如,OPC服务器3A之间的通信是经由连接器6A给定的路线。这种安排具有一个技术优势,就是它使任何合适的手段都可以用于访问服务处理器2和连接器6A之间的远程通信。合适的手段包括下述方法,例如,优于TCP/IP的、作为SOAP上网络服务的套接字通信、或者任何其他可行的或在任何特殊情况或环境中优选的通信手段。连接器6A根据OPC规范,通过COM局部地与OPC服务器3A进行交互作用。
这可以与图2中所示的已有技术相比。在图2中,可以观察到通过根据OPC所定义的内容,OPC服务器和客户应用程序之间的通信链路将适应用于局部过程的COM,且适应用于远程机器中运行的过程的DCOM。
图6示出了具有若干情况11-14等的复合对象10′。该复合对象10′代替图3-5的实体对象。以这个有利的形式,每个实体对象都是如WO00102953定义的复合对象10′,而关于与确定复合对象相关的每个数据项的信息由该复合对象的一种情况11-14提供。如WO00102953所述,通过查询复合对象10′,访问服务处理器2获得对实现该功能的接口的引用,该引用用来查询关于哪个访问服务器用于特定数据项的信息。
图7示出了用于过程控制器5B的配置工具76,它是一种类型的数据源,可以经由访问服务处理器2由客户应用程序1访问。在本发明的这种最佳应用中,提供关于数据项信息的情况14由软件应用程序完成,该软件应用程序在某种情况下与驻留数据项的数据源相关。例如,对于驻留于某种类型或某厂家生产的控制器中的数据项来说,这种情况14可以由软件应用程序完成,该软件应用程序用作对于该种类型控制器的配置工具76。这在图7中说明。在该实例中,客户应用程序1通过调用70带有用于一个或多个数据项的作为参数的标识符的访问服务处理器2的接口来进行访问请求。对于每个数据项,为了对访问数据项80的访问服务器的引用,该访问服务处理器查询71有关的复合对象10′。这个功能可以更适于(但并不局限于)由前面引用的WO00102953所述的情报检索系统对象(Aspect System Object)提供。通过查表73,复合对象10′发现相关有情报检索系统对象77的引用74,询问75有关其接口信息的对象,并返回这个对象的适当接口78的引用给访问服务处理器2。在该例子中,情报检索系统对象77由配置工具76提供,该配置工具用来给控制器5B编程,该控制器存储数据项80。访问服务处理器2调用81这个接口,在这种情况下,使对访问服务的引用用于这个数据项、OPC服务器B、3B,将其作为一个响应。然后访问服务处理器可以进行访问请求82。
对于其中的软件应用程序是源的数据项,提供关于那些数据项的信息的情况优选由该软件应用程序自己完成。在图8中说明了本实例。图8示出了软件应用程序5C′、数据项目80和情报检索系统对象87。客户应用程序1调用70带有用于一个或多个数据项的作为参数的标识符的访问服务处理器2的接口。对于每个数据项,为对访问数据项80的访问服务器的引用,访问服务处理器询问71有关复合对象10′。通过查表83,复合对象10′发现有关情报检索系统对象87的引用84,询问85有关这个接口信息的对象,并返回这个对象的适当接口88的引用给访问服务处理器2。访问服务处理器2调用81这个接口,作为一个响应,获得对访问服务的引用以用于这个数据项,在此情况下作为OPC服务器C、3C示出。然后,该访问服务处理器可以进行访问请求82。
图6、7、8所示的优选实施例表明了本发明一个或多个最佳应用,由于WO00102953描述了用于集成许多且不同的独立软件应用程序的方法和系统,本发明提供了一种扩展该方法的具有创造力且有效的手段,该方法具有用于统一并位置透明地访问数据项的方法和系统,这些数据项由许多且不同的独立软件应用程序和其他数据源来管理。
在实施本发明该方法的过程中,可以利用包括无线通信的不同形式的通信。一个或多个通信手段可以存在于部分数据通信信号中。客户应用程序(1)和计算机化的控制系统之间的部分数据传输中的数据通信信号通常包括一个识别部分,该部分识别代表一个实体的已知对象(10,10′),该实体由所述计算机化的控制系统控制;还包括一个数据部分,该部分依赖于于所述已知对象相关的数据项。根据已知格式,例如由SGML(标准通用标记语言)导出的格式,格式化该数据信号,所述SGML例如是一种适合XML标准或WML或适合例如WAP协议的语言。
还应该注意,尽管上面描述了本发明的示范性实施例时,但在不脱离如所附权利要求限定的本发明范围的情况下,对于该公开的方案可以进行若干变化和改进。例如,代替OPC,可以利用某些访问实时数据、历史数据、及报警和事件数据或其任何子集,的其他已知接口。
根据本发明的、包括访问服务处理器、连接器软件组件及访问服务器的计算机程序产品可以至少部分地存储在不同的介质上,该介质是计算机可读的。档案副本可以存储在标准磁盘、硬盘驱动器、CD或DVD盘、或磁带上。这个计算机程序产品的不同部分,例如在不同时间,可以存储在下述任何一种机构中:计算机或处理器的易失性随机存储器(RAM)、硬盘驱动器、光盘驱动器或磁光盘驱动器、或一种非易失性存储器,例如ROM、PROM、或EPROM装置。计算机程序产品还可以部分地配置,作为分布式应用程序,该程序可以大约同时在若干不同的计算机或计算机系统上运行。