OPC XML技术综述--控制网



OPC XML技术综述
企业: 日期:2005-03-31
领域:电源 点击数:2395

 

1  引言
    OPC(OLE for Process Control)作为新一代工业自动化控制软件部件,被称为控制系统"中间件技术",是专为在现场设备、自控应用、企业管理应用软件之间实现系统无缝集成而设计的接口规范,是最近几年才发展起来的基于Microsoft公司COM/DCOM连接技术。它的出现为基于客户机/服务器结构体系的工业自动化过程控制设备和系统与工业控制人机界面软件之间的数据信息交换提供了标准接口,目前已被确定为全球事实性的工业标准,得到过程控制设备制造商和工业控制软件开发商的支持,但在应用中,OPC COM/DCOM表现了以下几点不足:
    ●  集成性
    OPC的DCOM是同Windows的安全注册机制绑定的,通常采用动态分配TCP/IP端口方式,很难通过Internet/Intranet,尤其是企业防火墙。

    ●  跨平台性
    OPC COM/DCOM是基于微软的对象远程过程调用机制,可以在微软环境中方便的进行组件、进程、通信机制的交互,很难运行在非微软系统。

    ●  连通性
    企业高层应用(如MRP/ERP等)所需要的实时数据通常都是通过OPC-COM服务器获得,但很多高层应用没有OPC-COM接口,远程调用采用CORBA/IIOP形式,OPC DCOM 根本无法解决此类问题。

    在此背景下,如何有效扩展OPC的应用范围;面对现有企业高层应用软件体系结构的不同(Windows系统、UNIX、Lunix等),如何让高层应用软件去适应OPC技术规范(基于Microsoft 的DCOM技术发展而来),成为亟待解决的问题。

    HTTP的出现顺理成章,HTTP与DCOM很相似,它简单、配置广泛,并且对防火墙比其它协议更容易发挥作用,克服了DCOM不足。HTTP请求一般由Web服务器软件(如IIS和Apache)来处理,且大部分的应用服务器支持HTTP协议。但HTTP所缺少的是用单一的标准格式来表达一个RPC调用中的参数。XML的出现弥补了这点不足,XML是Web数据使用的通用语言,它具有结构化、规范化、简洁化和可扩展性等特点,它是一个与平台无关的中性的数据表达协议。HTTP和XML的结合较好的解决了OPC DCOM的不足,正是HTTP协议和XML的应用产生了SOAP(Simple Object Access Protocal)技术,它实现了大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问,如图1所示。这些正是SOAP、XML、HTTP成为OPC XML技术规范的主要内容的原因。


图1  OPC XML提供了工厂底层到企业高层应用的新途径

2  OPC XML 技术基础

    OPC XML技术主要涉及WEB服务器技术及SOAP技术。

2.1  WEB服务器技术
    简单的说,Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。它使用户能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。同时,Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作,这些技术规范(协议)包括:
    (1)  XML(可扩展的标记语言):Web Service平台中表示数据的基本格式,除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关;
    (2)  XSD:Web Service平台数据类型,系统的所有使用的数据类型必须被转换为XSD类型;
    (3)  WSDL:Web Service描述语言,基于XML的语言,用于描述Web Service及其函数、参数和返回值;
    (4)  UDDI:一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准;
    (5)  远程过程调用RPC与消息传递:用于应用程序间的通信。

2.2  SOAP技术(简单对象访问协议)
    SOAP是一个轻量级数据传输协议,通常应用于分散、分布式计算与控制环境中作为数据信息交换协议。简单的说SOAP就是XML+HTTP,主要包括3部分内容:(1) 为一组数据信息中描述的是什么内容及怎样处理定义了一种框架结构外壳;(2) 用于表达应用程序所定义数据类型实例的一套编码规则;(3) 用于表征远程过程调用和响应的一组约定。SOAP能够潜在应用于与其他多种传输协议的结合,尤其是HTTP和HTTP扩展框架结构,(见以下SOAP例子)。SOAP自身不能定义任何应用程序语义,如程序模式或执行细节等,相反,它为描述应用程序语义确立了一种简化机制,这需要通过为模件中的编码数据提供一种模件化包装模式和编码机制来实现。
   

3  OPC XML-DA技术规范

    OPC XML-DA 规范1.0 版是OPC基金会于2003 年7 月发布的,此规范是OPC 基金会的第1 个OPC XML 接口规范。其它OPC-COM 接口,如报警事件(AE) 接口和历史数据访问(HDA)接口,将来也会作为XML 接口被重新设计,并有相应的规范发布。OPC XML-DA 规范的核心部分是OPC XML-DA Schema,它定义了构成OPC XMLWeb服务的数据类型、结构和方法等,此外规范还对通信协议、发现机制、错误处理、互操作性等底层细节进行了规定。

3.1   XML-DA对象调用方法及步骤
    XML-DA同COM-DA相比,对对象的调用方法已完全不同:COM-DA表现为紧耦合方式,组建间可以建立通信通路,通过COM连接点技术实现服务器和客户端的通讯,大部分工作通过客户端提供回调函数实现;XML-DA表现为松耦合,它不具备"通信通路"机制,因此为了实现数据的订阅和更新,它采用了轮询查询方式,图2为整个轮询查询的过程描述。


图2  轮询查询的交互过程

    整个轮询查询过程按照以下七个步骤进行:
    第一步:客户端向服务器端发初始化定义(Subscribe),指定所定义的数据(Item[ ]);
    第二步:服务器端相应客户端初始化定义(SubscribeResponse),返回客户端所定义的数据标识及初始化值;
    第三步:客户端根据服务器端返回数据标识,向服务器端发出SubscrptionPollRefresh请求;

    注:客户端使用SubscrptionPollRefresh请求时,可设置HoldTime和WaitTime参数,如果在Holdtime 期间任何一个项目的值发生了变化,就在Holdtime 结束时刻返回响应,否则开始等待。如果在等待时间(Waittime) 内任何一个项目的值发生了变化,就立即返回响应。如果在Holdtime 和Waittime 两段时间内没有一个项目的值发生变化,就在Waittime 结束时返回一个响应,但这个响应不包含任何项目的值;该模式设计目的在于减少了服务器和客户端数据交换负荷,提高OPC XML的性能。

    第四步:服务器端向客户端返回SubscrptionPollRefresh调用以来,项目列表中发生的变化的所有项目;
    第五步:客户端处理相应的变化,如果需要继续查询,回到第三步;
    第六步:否则,向服务器端发出SubscriptionCancel请求;
    第七步:服务器响应SubscriptionCancel请求,删除当前Subscribe 调用中指定的项目列表。

    从中不难看出,XML-DA轮询查询过程非常接近与OPC-COM 的"异步回调机制",客户端在处理完一次服务器返回后,不需要等待可以直接进入下一次请求刷新,时间周期的控制已经转移到服务器上,这种方式被称为"假回调"。

3.2  XML-DA服务类型
    OPC XML-DA 支持8 种服务,每种服务都包括一个请求(Request) 和一个响应(Re-sponse) 。通过对这些服务的定义,提供了访问工业现场数据的标准接口。请求和响应照SOAP协议标准被包装成SOAP 信封,信封标题(可选)说明消息如何被处理,信封正文则包含工业过程信息。
    ●  Browse 在服务器的命名空间里搜索所有可获取的项目(item) 的名字(标记名) 。
    ●  GetProperties 返回一个或多个项目的相关信息。
    ●  GetStatus 返回关于服务器、版本、当前模式、运行状况等信息。
    ●  Read 返回一个或多个项目的值、品质和时间戳。
    ●  Subscribe 指定一个客户希望持续更新的项目列表。
    ●  SubscriptionCancel 删除在前一个Subscribe 调用中指定的项目列表。
    ●  SubscriptionPolledRefresh返回自前一个SubscrioptionPolledRefresh 调用以来,在项目列表中数值发生变化的所有项目。
    ●  Write 向一个或多个项目中写入新值。

3.3  XML-DA数据类型
    OPC XML-DA 数据类型从高到低依次分为Request 、List 、Item 3个等级,较低的数据类型属性可以涵盖较高数据类型属性。基本的数据类型有:string、boolean、float 等20 种简单类型以及枚举类型和数组类型。其中的简单类型是XML数据类型的一个子集,并与OPC-COM-DA 定制接口规范规定的数据类型相一致。此外,规范还规定了一些复合类型(ComplexType),主要包括:Re-questList、RequestItem、ItemValue 、RequestOptions、ServerState 、ReplyBase 、OPCError、ItemProperty 等。OPC XML-DA 规范的所有接口都基于这些数据类型定义。规范同时支持空参数。

3.4  OPC-COM-DA和OPC XML-DA的协调


图3  OPC XML-DA与OPC-COM-DA协调图

    OPC XML-DA 服务器和OPC-COM-DA服务器都可以单独使用,当需要将OPC XML-DA 服务器转换成OPC-COM-DA 服务器时,可以通过DCOM Wrapper(DCOM中间件)完成,如图3所示。同样,可以用XML Wrapper(XML中间件)将OPC-COM-DA服务器包装成OPC XML-DA服务器;对于现有的成百上千种OPC-COM-DA服务器,由于它们具有标准的接口,因此只需要一个Wrapper,就可以包装所有的OPC-COM-DA服务器,从而省去了重新编写OPC XML-DA 服务器的工作,目前,很多公司已经发布了COM与XML接口之间进行转换的网关,这些网关使两种接口的通讯更加方便。

3.5  开发工具
    目前,针对OPC XML-DA较为基础的开发工具包包括:Axis,SUN Java Web Services Developer Pack,Microsoft SOAP Toolkit,IBM Web Services Toolkit,Borland Delphi 7等,增强工具包有:Microsoft.NET WSDK,SunOne Plattform,IBM WebSphere SDK for Web Services (WSDK),由于这些工具包已经在电子商务有广泛应用,技术相对成熟,为OPC XML-DA的应用打下良好基础。

3.6  未涉及问题
    (1)  安全性问题
    OPC XML-DA 技术规范并没有单独规定安全性机制,而是依赖于传输协议(例如HTTPS)。此类问题的进一步研究将涉及整个互连网络安全问题,当前由于操作平台的互异性,相应的安全机制存在较大差异,近期不可能出现统一的标准,因此,OPC XML-DA技术规范也难以很快出现相应标准,用户只能通过对网络服务器的安全性进行适当的配置(例如在Microsoft IIS 服务器中配置SSL),来解决安全性问题。

    (2)  发现现有的服务器机制问题
    与安全性问题相似,OPC XML-DA技术规范没有定义OPC XML-DA 服务器节点或在指定节点上发现OPC XML-DA服务器的机制。由于UDDI(通用描述、发现、集成)协议是广泛使用的WEB服务发现标准,人们有理由相信,未来制定OPC XML Web 服务器发现规范将会以UDDI协议为基础。

4  发展及展望

    OPC XML的出现在很大程度上弥补了OPC DCOM在集成性、跨平台性、联通性等方面的不足,基于XML和HTTP技术传输协议将使其在很长时间里适应网络技术发展,相信不久,OPC基金会将陆续推出基于WEB服务的报警和时间规范、历史数据访问规范等,OPC XML的应用将更加广泛;同时,OPC DCOM以其高效性和实时性,将继续在监控、管理层发挥其巨大作用,二者相辅相成,互为补充,必将为自动化工业的发展带来强劲动力。

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: