当前位置:文档之家› OPC重点知识总结

OPC重点知识总结

1、OPC的基本原理定义:OPC是用于过程控制的OLE(OLE for Process Control)的首字母缩写词,在今天已经理所然地被自动化组件的制造商逐步发展成一个事实上的新技术标准。

而所谓OLE(Object linking and embedding)含义是对象链接及嵌入,用于过程控制。

OPC 是以 OLE/COM 机制作为应用程序的通讯标准。

OLE/COM 是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。

OPC 规范定义了一个工业标准接口,这个标准使得 COM 技术适用于过程控制和制造自动化等应用领域。

COM技术简述:*所谓COM并不是一种计算机语言,与运行的机器、机器的操作系统(只要支持COM)以及软件开发语言均无关,是任意的两个软件组件之间都可以相互通信的二进制和网络的标准。

*COM服务器是根据COM客户的要求提供COM的服务的执行可能的程序,可以作为Win32服务器上可执行的文件发布。

*COM客户程序和COM服务器可以用完全不同的语言开发。

这样使利用C++,Visual Basic,以及Excel中作为宏使用的应用程序的Visual Basic等不同语言所开发的程序可以相互连接。

*COM组件可以以二进制的形式发布给用户。

*与过去DLL(动态链数据库)的版本管理非常困难的问题相比,COM技术可以提供不同版本的COM服务器和COM客户程序之间的最大的兼容性。

*作为COM技术扩展的分布式COM(Distributed Component Object Model,DCOM)技术,更可以使COM组件分布在不同的计算机上,并通过网络互相连接并互相交换数据。

所以对于COM客户程序来说,同样像连接本地计算机上的COM服务器一样,去连接远程计算机上的COM服务器,当然通信的速度不太一样,但是重要的是不必对服务器程序进行修正就可以在网络上自由构成利用COM和DCOM(分布式COM)达成的组件的互相连接。

COM技术的出现使简单地实现控制设备和控制管理系统之间的数据交换提供了技术基础。

但是如果不提供一个工业标准化的COM接口,各个控制设备厂家开发的COM组件之间的相互连接仍然是不可能的。

这样的工业标准的提供乃是OPC的目的所在。

总而言之,OPC是作为工业标准定义的特殊的COM接口。

与传统过程控制系统的区别:1)传统的过程控制系统传统的过程控制系统是一对一的系统,任何一种 HMI 等上位监控软件或其它应用软件(如趋势图软件、数据报表与分析等)在使用某种硬件设备时都需要开发专用的驱动程序。

如图 1所示:系统构建完成后的最终结果是:1. 1 种软件要使用 N类硬件设备需要开发 N个驱动程序;2.M 类软件要使用 N 类硬件设备需要开发M*N 个驱动程序;3.每增加 1 个新的应用软件需要另外开发N 个硬件设备的驱动程序;4.每增加 1 个新的硬件设备需要为M 个软件开发新的设备驱动程序;5.在上图所示的例子中,针对 4种控制设备所完成的 3个应用系统一共需要开发 3*4=12种驱动程序。

新增应用软件或者硬件设备带来的只会是驱动程序种类的迅速增长。

2)基于OPC 技术的过程控制系统结构:基于OPC 技术的过程控制系统则可以完美地解决传统方式种的上述问题。

其基本系统结构如图2所示:任何一种设备只需要提供一种驱动就可以供任何软件系统使用,系统构建完成后的最终结果是:1.M 类软件要使用N 类硬件设备只需要开发N 个驱动。

2.每增加 1个新的应用软件不需要另外开发硬件设备的驱动程序;3.每增加 1个新的硬件设备只需要为开发 1个新设备的驱动程序;在上图所示的例子中,针对 4种控制设备所完成的 3个应用系统一共仅需要开发 4种驱动程序。

新增应用软件或者硬件设备可以轻松的扩展您的系统。

由于 OPC规范基于 OLE/COM技术,同时OLE/COM 的扩展远程OLE 自动化与DCOM 技术支持 TCP/IP等多种网络协议,因此可以将 OPC客户、服务器在物理上分开,分布于网络不同节点上。

OPC 规范可以应用在许多应用程序中,如它们可以应用于从SCADA 或者 DCS系统的物理设备中获取原始数据的最底层,它们同样可以应用于从 SCADA 或者DCS 系统中获取数据到应用程序中。

实际上,OPC设计的目的就是从网络上某节点获取数据。

OPC 的客户/服务器关系图同样描述了 OPC在 SCADA系统的应用。

OPC 规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。

2、采用 OPC规范设计系统的好处:采用标准的 Windows体系接口,硬件制造商为其设备提供的接口程序的数量减少到一个,软件制造商也仅需要开发一套通讯接口程序。

即有利于软硬件开发商,更有利于最终用户。

OPC 规范以OLE/DCOM 为技术基础,而OLE/DCOM 支持TCP/IP 等网络协议,因此可以将各个子系统从物理上分开,分布于网络的不同节点上。

OPC 按照面向对象的原则,将一个应用程序(OPC 服务器)作为一个对象封装起来,只将接口方法暴露在外面,客户以统一的方式去调用这个方法,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。

OPC 实现了远程调用,使得应用程序的分布与系统硬件的分布无关,便于系统硬件配置,使得系统的应用范围更广。

采用 OPC规范,便于系统的组态,将系统复杂性大大简化,可以大大缩短软件开发周期,提高软件运行的可靠性和稳定性,便于系统的升级与维护。

OPC 规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而实现系统的开放性,易于实现与其它系统的接口。

3、OPC技术中服务端与客户端通信数据是如何进行网络传输的?由于OPC使用的是COM技术,所以我们需要知道DCOM是怎样进行网络数据传输的。

COM是构建交互组件的标准,DCOM是允许COM组件通过网络交互的一个高层次网络协议。

我们认为DCOM是一个高层次网络协议,是因为它建立在几个已存在的协议基础之上。

例如,假设一台计算机有以太网卡,并使用UDP协议,从最底层的以太网帧到最高层的DCOM,整个协议如图1所示,中间加着IP,UDP和RPC。

图1只是许多可能配置中的一种,在RPC之下,可以有多种替代的协议。

在服务器与客户机上,DCOM自动选择它下面的最好的协议。

图1 协议层次以OSI七层网络模型来看看DCOM协议栈。

如图2所示,OSI七层网络模型与本文的例子协议栈并列画出,注意图中是在Window平台下,其它平台实现的层次可能不同。

图2 OSI七层“蛋糕”对协议栈中每层协议,数据在传输时,都包含一个数据头,而后是实际的数据,紧临的更上层协议将把它视为数据的一部分。

例如,IP层包含一个数据头和数据体,IP数据体实际上包含UDP层数据头和该层的数据体,因此,通过网络传输的数据都包含协议栈中的每层协议的数据头和数据体(如图3)。

图3 协议栈从图3中可以看出,DCOM不是一个独立于RPC之上的协议,它使用了RPC的结构体,与RPC 共用了数据头和数据体,因此,为了表明在网络层次上DCOM与RPC的密切关系,DCOM协议经常被成为对象RPC或ORPC。

ORPC高度综合了OSF DEC RPC协议的功能,例如,RPC中的身份认证,授权,信息完整性,加密等特性,在ORPC都有体现。

ORPC在两个方面扩展了标准的RPC:怎样调用远程对象的方法和如何表达、传输和维护对象的引用。

4、OPC接口OPC是OLE for Process Control的缩写,即把OLE应用于工业控制领域。

OPC服务器由三类对象组成,相当于三种层次上的接口:服务器(Server)、组(Group)和数据项(Item)。

1、服务器对象(Server)拥有服务器的所有信息,同时也是组对象(Group)的容器,一个服务器对应于一个OPC Server,即一种设备的驱动程序。

在一个Server中,可以有若干个组。

2. 组对象(Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项(Item)。

OPC组对象(Group)提供了客户组织数据的一种方法,组是应用程序组织数据的一个单位。

客户可对之进行读写,还可设置客户端的数据更新速率。

当服务器缓冲区内数据发生改变时,OPC将向客户发出通知,客户得到通知后再进行必要的处理,而无需浪费大量的时间进行查询。

OPC规范定义了两种组对象:公共组(或称:全局组,public)和局部组(或称:局域组、私有组,Local)。

公共组由多个客户共有,局部组只隶属于一个OPC客户。

全局组对所有连接在服务器上的应用程序都有效,而局域组只能对建立它的Client有效。

一般说来,客户和服务器的一对连接只需要定义一个组对象。

在一个组中,可以有若干个项。

3、项是读写数据的最小逻辑单位,一个项与一个具体的位号相连。

项不能独立于组存在,必须隶属于某一个组。

在每个组对象中,客户可以加入多个OPC数据项(Item)。

OPC数据项是服务器端定义的对象,通常指向设备的一个寄存器单元。

OPC客户对设备寄存器的操作都是通过其数据项来完成的,通过定义数据项,OPC规范尽可能的隐藏了设备的特殊信息,也使OPC服务器的通用性大大增强。

OPC数据项并不提供对外接口,客户不能直接对之进行操作,所有操作都是通过组对象进行的。

应用程序作为OPC接口中的Client方,硬件驱动程序作为OPC接口中的Server方。

每一个OPC Client应用程序都可以接若干个OPC Server,每一个硬件驱动程序可以为若干个应用程序提供数据。

客户操作数据项的一般步骤为:1)、通过服务器对象接口枚举服务器端定义的所有数据项。

2)、将要操作的数据项加入客户定义的组对象中。

3)、通过组对象对数据项进行读写等操作。

每个数据项的数据结构包括三个成员变量:即数据值、数据质量和时间戳。

数据值是以V ARIANT形式表示的。

可以把数据项看作数据源的地址,即数据源的引用。

OPC数据存取服务器主要有以下几个对象组成,即服务器对象、组对象和项对象。

OPC服务器对象维护有关服务器的信息,并作为OPC组对象的包容器,可以动态的创建或释放组对象。

OPC组对象除了维护有关其自身的信息,还提供了包含OPC项的机制,逻辑上管理OPC项;OPC项则标识了与OPC服务器中数据的连接,如下图所示:OPC技术规范有三种:1、OPC数据存取(DataAccess)规范(DA)2、OPC报警和事件(Alarms and Events)规范(AE)3、OPC历史数据存取(Historical Data Assess)规范(HDA)(DA 2.0)里主要定义了两个对象:OPCServer 和 OPCGroup。

相关主题