基于OPC的实时数据获取技术
1 引言
组态软件通过I/O驱动程序从现场I/O设备获得实时数据,对数据进行必要的处理后,一方面以图形方式直观地显示在计算机屏幕上,另一方面按照组态要求和操作人员的指令将控制数据送给I/O设备,对执行机构实施控制或调整控制参数[1,2]。
目前,企业办公自动化已经基本普及,Windows操作平台以及微软的COM/DCOM/OLE 技术已成为应用软件之间通信的事实上的标准。在生产控制领域,DCS、SCADA、PLC等技术已经成熟,各种现场总线标准正在迅速推广。但是,管控一体化存在一个严重的制约因素,即现场设备与应用软件之间难以实现开放的、无缝隙的连接。
在生产现场,存在着大量控制器和现场数字设备,这些设备来自不同的制造商,遵从不同的通讯标准,只能组成各自的控制系统,与特定的应用软件通讯。虽然某些网络之间可通过协议转换实现互联,但并不具有普遍性。
传统的过程控制系统中,为使每一个应用程序与设备交换信息,必须为每个设备提供相应的驱动程序,在数据源与客户程序之间分别建立一对一的驱动连接,如图1所示。
图1 传统的应用软件与数据源接口方式
由于设备多样性和驱动程序不兼容性,这种方式存在以下缺陷:
(1) 应用程序开发者必须花费大量精力开发各种设备的驱动接口,计算机硬件厂家要为不同的应用软件编写不同的驱动程序,这种程序可复用程度低,不符合软件工程的发展趋势,典型的高级语言软件开发过程约有25~30%的时间用于编写这类接口,使开发时间和费用大大增加;
(2) 设备不具有互操作性,使用中硬件的升级、变更和增加都可能造成驱动程序的变化,从而在维护过程中引起二次投资;
(3) 由于每一驱动软件有各自的驱动程序,当多个应用软件读取同一数据源时,经常生冲突;
(4) 设备厂商虽然可能提供驱动程序,但与用户开发应用软件往往不一致,限制了用户对软件和设备的自由选择。
可见,在现场设备与应用软件之间提供标准的接口,实现开放的、无缝隙的连接,是顺利推进企业管控一体化的关键。为此,在微软的倡导下,世界范围内处于主导地位的硬件和软件开发商组成了OPC基金会组织(OPC Fondation),制定硬件和应用软件之间的接口标准-OPC规范。文章对有关问题作如下简要讨论。
2 OPC产生的背景
OPC(OLE for process control)即用于过程控制领域的对象链接和嵌入技术,这一概念是由Fisher Rosemount公司1995年首次提出的,它借用了微软的OLE(Object Linking and Embedding)和COM(Component Object Model)/DCOM( Distributed Component Object Model ) 技术,并应用于过程控制中。它为过程控制和工业自动化领域提供了一套标准的接口、属性和方法,是实现控制系统现场设备与过程监控级进行信息互连,实现控制系统开放性的关键技术[4,5]。
提出OPC技术最初是为了解决应用软件与各种设备驱动程序的通信问题,简化系统的I/O驱动开发方式。没有采用OPC技术以前,对一个有M种应用程序、N种设备的系统,共需开发M×N个驱动程序,而OPC采用客户/服务器体系,为服务器与客户程序的链接提供统一、标准的接口规范。采用了OPC技术以后,只需要开发M+N个与OPC的接口,如图2所示。
图2 采用OPC方式的应用软件与数据源接口方式
正是OPC的这种数据访问特点使得使用OPC技术有很大的技术优势和经济优势。它的优点概括起来大致有以下3个方面:开放性(Openness)、高生产率(Productivity)、和“即插即用”的可连接性(Connectivity),因此可以说
OPC=Openness+Productivity+Connectivity。
3 OPC的应用模式及意义
现在OPC技术的发展已经超出了原来取代驱动程序的初衷,而成为微软公司的制造业分布式网间应用程序体系结构(DNA-M, Distributed internet Application Architecture for Manufacturing)的核心,如图3所示。
图3 微软的DNA-M体系
在这个体系结构中,作为核心的OPC就相当于一块软件“主板”,它能够直接连接现场的PLC、工业控制网络、数据采集和WindowsCE设备,通过快速有效的方式从现场获取实时数据。PC机内的各种监视应用、控制应用、管理应用等则像是插在OPC主板上的软件“芯片”,这些芯片之间按照OPC协议进行通信,它们可以通过OPC获取现场的实时数据,也可以通过OPC彼此交换信息。所以OPC为企业内部的信息交换提供了一个开放平台。任何应用软件只要能够支持OPC接口就可以插入这块OPC主板,就像是将芯片插入到计算机主板中一样,只要芯片的管脚和协议遵从主板的要求,它就可以即插即用。
综合而言,采用OPC技术的意义在于:
(1) 计算机硬件厂家只需要编写一套驱动程序、提供一套符合OPC Serve规范的程序组就可以满足不同用户的需要;
(2) 对于一个应用程序,开发者只需要编写一个驱动接口,设备便可以连接不同的设备,软件开发商无需为硬件特性的修改或增加而重写驱动程序;
(3) 用户在开发集成制造系统时有了更多的软件和设备选择余地。
在现场总线应用方面,OPC技术作为实现控制系统现场设备层与过程监控层进行信息交互,是实现控制系统开放性的关键技术,其应用模式如图4所示。
图4 OPC在现场总线下的应用模式
有了OPC作为通用接口就可以把现场信号与SCADA上位监控软件、HMI人机界面软件方便地链接起来,还可以把它们与PC机的某些通用开发平台和应用软件平台链接起来,如:VB、VC、C++、Excel、Access等。这几部分的信号传递关系如图5所示。
图5 OPC方式的连接示例
OPC开发的目的是为了给工业控制系统应用程序之间的通讯建立一个接口标准,在工业控制设备与控制软件之间建立统一的数据存取规范,这个接口规范不但能够应用于单台计算机内部,而且可以支持网络上分布式应用程序之间通讯,以及不同平台上应用程序间的通讯。OPC的基础-微软的OLE/COM及DCOM技术完全支持上述分布式应用和异构环境下应用的无缝集成。OPC服务器在企业信息系统中的作用表现为,OPC服务器在底层控制系统中采用统一标准,实现了应用程序与现场设备的有效连接,发挥了桥梁作用,促进了企业现场控制层和过程监控层、生产管理层以及经营决策层的集成。OPC服务器在企业信息系统内的作用如图6所示。
图6 OPC服务器在企业信息系统中的作用
4 OPC的技术本质-COM/DCOM技术
随着计算机软件科学的发展,应用系统功能日趋复杂,程序愈加庞大,软件开发的难度也更大。为此,需要将应用程序化分为多个功能独立的模块,由各模块协同完成实际的任务。这些模块被称为组件,它们可以被进行单独设计、编辑和调试,因此具有开放性、易升性、易维护等优点。
COM(Component Object Model)—组件对象模型,是由微软公司提出的编程模型,其设计目的是提高软件组态之间的互操作性并提高代码的可复用能力。COM标准包括规范和实现两大部分,规范部分定义了组件之间通信的机制,这些规范不依赖于任何特定的语言和操作系统,具有语言无关性;COM标准的实现部分是COM库,COM库为COM规范的具体实现提供了一些核心服务。由于COM以客户/服务器模型为基础,因此具有良好的稳定性和很强的扩展能力。在COM模型中,软件的功能被分解为一些组件,这些组件通过COM协议在一定条件下连接起来,实现相应的功能。一般来说,COM对象可分为客户端和服务器两类,客户端通过COM接口实现对服务器的访问。
DCOM(Distributed Component Object Model)—分布式组件对象模型是建立在COM之上的一种规范和服务,提供了一种使COM组件加入网络环境的透明网络协议,实现了在分布式计算环境下不同进程之间的通信与协作。
客户程序和COM组件程序进行交互的实体是COM对象。COM对象类似C++中的对象的概念,它是某个类(class)的一个实例,包括一组逻辑相关函数的集合。客户程序必须通过接口才能获得COM对象的服务。
基于上述技术,OPC技术具有如下特点:
(1) 客户/服务器结构,端组件之间的通信由COM/DCOM提供底层支持,使底层的通信过程对客户端和服务器透明;
(2) 标准的访问接口,接口标准由OPC基金会提供;
(3) 高速可靠的数据通信,对于本地服务器的访问,如果采用奔腾P233CPU,典型的速度为每秒5000个数据项,此时客户端和服务器的总CPU负载为8%;
(4) 可实现远程通信,由于应用微软的DCOM(分布式组件对象模型)技术,OPC可以方便地进行远程通信。
5 OPC的接口方式
OPC规范提供了2套接口方案,即自定义接口(Custom Interface)和自动化接口(Automation Interface)。自定义接口是一组COM接口,可以通过C/C++来进行开发的访问。OPC基金会提供了标准的接口函数,但对于服务器端的开发,在不改动原有接口函数的基础上,也可以增加一些函数来扩展功能。自动化接口是对自定义进一步封装,实际上是屏蔽了自定义的接口虚函数表,使自定义COM接口转换为自动化的OLE接口。
这两种接口的关系如图7所示。对于服务器端开发,OPC技术规范规定OPC服务器必须提供自定义接口,而自动化接口可以有选择地提供。对于客户端开发,可以选择访问两种接口的任意一种。一般来说,自定义接口的功能比较强大,需要掌握COM技术,而自动化接口的开发比较容易,缺点是易受接口本身功能的限制。
图 7 OPC接口方式对比
OPC服务器对象被分为3层结构:服务器对象(Sever)、组(Group)和项(Item)。Server是Group的容器,Group是Item的容器。OPC规范定义了COM接口,规定了服务器程序和客户程序通过接口交互的标准,但并没有说明具体实现的方法。OPC服务商必须根据各自硬件特性实现这些接口的成员函数。不论定制接口还是自动化接口都可分为必选接口和可选接口。必选接口包括了客户程序与服务器进行交换的最基本功能;可选接口则规定了一些额外的高级功能,可根据需要有选择地实现。客户程序应通过查询接口的方式来判断服务器程序是否实现了可选接口的功能。
6 结束语
采用OPC技术规范的产品实现了工业自动化系统之间的互操作、无缝集成和现场过程控制设备的即插即用,为这一领域的软件和硬件生产厂商以及最终用户带来了直接和明显的经济利益。因此,国内工业自动化领域的研究机构和厂家应该加强OPC技术应用的研究,积极推广使用具有OPC接口标准软硬件产品,跟上世界先进自动化技术的潮流。
文章版权归西部工控xbgk所有,未经许可不得转载。