第4章工业控制数据交换标准OPC规范

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4、OPC的历史
早期的OPC标准是由提供工控软件的5家 公司所组成的OPC特别工作小组所开发的。 Fisher-Rosement,Intellution,Rockwell Soft ware,Intuitive Technology以及Opto22早在 1995年开发了原始的OPC标准,微软同时作 为技术顾问给予了支持。
客户程序和COM 组件程序进行交互的实体是COM对象。
COM 对象类似C++ 中对象的概念,它是某个类(class)
的一个实例,包括一组属性和方法。 COM接口是COM规范中最重要的部分,COM规范的核
心内容就是对接口的定义,COM都是以接口的形式出现。
组件与组件之间、组件与客户程序之间都要通过接口进 行交互。 COM 对象提供的方法就是COM接口,它是一
OPC数据存取规范是OPC基金会最初制定的1 个工业标准,其重点是对现场设备的在线数据进行 存取。该规范也分为定制接口规范和自动化接口规 范二部分,2种接口完成的功能类似,下面主要介 绍定制接口规范中基本的对象和接口功能。
OPC数据存取服务器主要由以下几个对象组 成:即服务器对象、组对象和项对象。OPC服务器 对象维护有关服务器的信息并作为OPC 组对象的 包容器,可动态地创建或释放组对象;而OPC 组 对象除了维护有关其自身的信息,还提供了包容 OPC项的机制,逻辑上管理OPC项;OPC项则表 示了与OPC 服务器中数据的连接。
监督控制与数据采集技术
华东理工大学自动化系 王华忠
hzwang@ecust.edu.cn
Ch4
工业控制数据交换标准 OPC规范
一、OPC开发背景和历史
1、为什么需要OPC
(1)对于早期的计算机系统,为了实现不同的硬件 和软件所构成的计算机之间的数据交换和通信,必 须要花费很多时间去开发独自的通信程序。 (2)由于驱动程序缺乏统一的连接标准,这样一旦 硬件设备升级换代,就需要对相应的驱动程序进行 更改,增加了系统的维护费用。
(3)对于最终用户而言,由于无需担心互操作性, 在选择和更换软硬件时有了更多的余地,不再局限 于从单一的厂商购买专用成套系统。 (4)同时在异构计算机环境下的系统集成将变得很 简单,应用程序之间很容易实现信息的共享和交互。 用户可以将重点放在整个系统 的功能及应用上,这也意味着成本的降低。 (5)OPC组件的使用也十分方便,用户只需进行 简单的组态即可。
OPC基金会(OPC Foundation)是在1996 年9月24日在美国的达拉斯举行了第一次理 事会,并在同年10月7日在美国的芝加哥举 行了第一次全体大会上宣告正式成立的。 之后得到迅速发展,中国也成了了OPC促 进会。 www.opcfoundation.org
表4-1 现存的和正在开发的OPC的标准
接口组装起来以形成所需要的应用程序。
(1)COM/DCOM简介
由微软公司推出的开放的组件标准。COM标准包 括规范和实现二大部分,规范部分定义了组件之间 通信的机制,这些规范不依赖任何特定的语言和操 作系统,具有语言无关性;COM 标准的实现部分 是COM 库,COM库为COM规范的具体实现提供了 一些核心服务。由于COM以客户/ 服务器模型为基 础,因此具有良好的稳定性和很强的扩展能力。
(3)即使计算机中的SCADA、HMI等软件都有 独立的驱动程序,但一般也不允许同时访问相同 的设备,否则很容易造成系统崩溃 (4)另一方面,现场控制层作为企业整个信息系 统的底层部分,必然需要与生产过程管理层和经 营决策层进行集成。这样也存在着监控计算机如
何与其它计算机进行信息沟通和传递的问题。
COM规范采用开放软件基金会 (Open Software Foundation,OSF)的分布式计算环境 (Distributed Computing Enviroment,DCE)规范 的描述远程调用接口描述语言 (Interface Description Language,IDL)的基础上,进行扩展 形成了COM接口的描述语言。接口描述语言提供 了一种不依赖于任何语言的接口描述方法,因此, 它可以成为组件程序和客户程序之间的共同语言。
组逻辑相关函数的集合。客户程序必须通过接口才能获
得COM对象的服务。
COM接口的名字以字母I打头。COM组件有两个 最基本的接口类,分别是IUnknown、IDispatch。 所有的COM接口都必须继承一个名为IUnknown的 接口,COM的核心接口是IUnknown接口。
IUnkown接口提供了两个非常重要的特性:生存期 控制和接口查询。 Idispatch为调度接口。调度接口把每一个函数每 一个属性都编上号。客户程序要调用这些函数属 性的时侯就把这些编号传给IDispatch接口就行了, IDispatch再根据这些编号调用相应的函数。
通过COM接口,OPC 客户程序可以和一个或多 个提供商的OPC服务器连接。同时一个OPC 服务 器也可以同多个客户程序相连,形成多对多的关 系。任何支持OPC的产品都可以无缝地实现系统 集成。由于OPC技术基于DCOM所以客户程序和 服务器可以分布在不同的主机上,形成网络化的 监控系统。
客户应用程序A
对于COM对象来说,接口是它与外界交互的唯一 途径,因此,封装特性也是COM对象的基本特征。 在COM模型中,对象本身对于客户来说是不可见 的,客户请求服务时只能通过接口进行,每个 COM对象是用一个128位的全局唯一标识符 (Globally Unique Identifier,GUID)来标识的, 称为CLSID(class identifier类标识和类ID)。
图4.5 OPC数据访问对象的分层结构
从定制接口的角度来看,OPC项并不是可以由 OPC客户直接操作的对象,因此OPC项没有定义外 部接口,所有对OPC 项的操作都是通过包容该项 的OPC组对象进行的。而OPC 服务器对象和组对 象是聚合关系,即OPC 服务器对象创建OPC 组后, 将组对象的指针传递给客户,由客户直接操纵组 对象。这样既提高了数据存取的速度也易于功能 扩展,体现了组件软件的重用性。
标准 Data Access Alarm and Events Historical Data Batch Security Compliance OPC XML OPC Data eXchange 版本 1.0A,2.0,3.0 1.0,2.0 1.0,1.2 1.0 ,2.0 1.0 1.0 1.01 1.0 内容 数据访问的标准 警报和事件的标准 历史数据访问的标准 批处理的标准 安全性的标准 数据访问标准的测试工具 过程数据的XML标准 服务器间数据交换的标准
二、OPC规范简介
1、OPC规范基础
随着软件工业技术的迅速发展,传统的程序升级 已经无法满足技术的发展需要,而且程序升级需 要大量人力成本,解决这一问题的方法就是将应 用程序分割成一些小的应用或组件,然后将这些 组件在运行时组装起来以形成所需的应用程序, 每一个组件都可以在不影响其他组件的情况下被 升级。
C:IOPCServcr接口:
是Server对象的主要接口,主要完成Group对 象的添加、删除、获取Server对象的状态、创建组
对象枚举器等。
IOPCServer 是OPC Server的主接口,通过它实现 OPC Server在操作系统中的安装和注册。此接口是必须 要实现的,其所有方法也必须实现。在IOPCServer接口 中共有六个函数: ①IOPCServer::AddGroup HRESULT AddGroup( LPCWSTR szName,BOOL bActive, DWORD dwRequestedUpdateRate, OPCHANDLE hClientGroup, LONG *pTimeBias, FLOAT * pPercentDeadband, DWORD dwLCID, OPCHANDLE * phServerGroup, DWORD *pRevisedUpdateRate, REFIID riid, LPUNKNOWN * ppUnk ); 此方法是在OPC Server上建立一个组
客户应用程序A
客户应用程序B
设备1驱 动程序A
设备2驱 动程序A
设备1驱 动程序B
设备2驱 动程序B
设备1
设备2
图4.1 用驱动程序的系统连接
2、OPC是如何工作的
OPC规范是由世界领先的自动化厂商与微软合作 制定的一项工业标准,它以组件对象模型和分布式 组件对象模型(COM、DCOM)技术为基础,采用 C/ S模式,定义了一组COM对象及其接口规范。 OPC规范定义了客户程序与服务器程序进行交互 的方法,但并没有规定具体的实现,OPC服务器可 由不同供应商提供,其代码决定了服务器访问物理 设备的方式、数据处理等细节。但这些对OPC 客户 程序来说都是透明的,只需要遵循相同的规范或方 法就能读取服务器中的数据。
客户应用程序B
OPC客户程序接口
OPC客户程序接口
设备1OPC服务器
设备2OPC服务器
设备1
设备2
图4.2 利用OPC的控制系统构成
3、采用OPC的好处:各方受益
(1)OPC技术把硬件和应用软件有效地分离开,硬 件厂商只需要提供一套软件组件,所有OPC客户程 序都可以使用这些组件,无需重复开发单独的驱动 程序。一旦硬件升级,只需修改OPC服务器端I/O 接 口部分,无需改动客户端程序。 (2)工控软件公司只要开发一套OPC接口就可采用 统一的方式对不同硬件厂商的设备进行存取操作。 这样,软硬件厂商可以专注于各自的核心 部分,而不是兼容问题。
组件实际上是一些小的二进制可执行程序。它可 以给应用程序、操作系统以及其他组件提供一些 服务。多个COM 对象可以连接起来以形成应用程 序或组件系统,每一个应用程序都可划分为多个 独立的模块进行开发,这里的每一个独立模块都 是一个自给自足的组件。可以采取不同的开发语 言去设计每一个组件。在运行时将这些组件通过
wenku.baidu.com
B:IOPCCommon接口:
OPC规范如DataAccess,Historical DataAccess,Alarms andEvents等的OPC Server对 象的公共接口,通过该接口的函数,可以设置或 查询组件应用程序的位置标识Local ID,从而实现 客户应用程序与服务器的有效会话,且客户程序 间不受干扰。
分布式组件对象模型(Distributed COM,DCOM)是 COM的网络扩展,它建立在COM之上,并且提供了一种使 COM组件加入网络环境的透明网络协议,使COM对象能像 在本机上一样在网络上彼此交互。DCOM技术的核心是地 址透明性,它依赖对象远程过程调用(Object Remote Procedure Call,ORPC)来完成它所有的网络通信工作,使 DCOM组件不仅能跨越进程边界,而且能跨越计算机间的 物理边界而相互交换信息,程序员不必编写网络通信所需 要的繁杂代码。在分布式计算机环境下,DCOM服务器和 客户处于不同的地址空间,不能直接交互信息,客户和 DCOM服务器通过代理(proxy)对象和存根(stub)模块 间接地交互。
(1)OPC服务器对象
OPC 服务器对象是OPC 服务器程序暴露的主 要对象,客户程序首先创建该对象再通过其接口完 成所需功能。
图4.6 标准OPC服务器对象
A:IUnknown接口
COM对象必须实现的接口,主要负责对象的 接口查询和生存期管理,包括QueryIntertface()、 AddRef()和Release()函数。客户程序可以通 过QueryInterfac()查询需要访问的接口。因此, 客户程序只要得到对象的任何一个接口,就可以 访问对象的所有接口。
在组件技术规范方面,主要有两个标准:一个是 由对象管理组织(Object Management Group, OMG)起草并颁布的公共对象请求代理体系结构 (Common Object Request Breaker Architecture, CORBA),另外一个是由微软推出的组件对象模 型(Component Object Model,COM)技术。
(2)OPC对象与接口
OPC规范描述了OPC服务器需要实现的 COM 对象及其接口,定义了: 定制接口(custom interface) 自动化接口(automation interface)
图4.3 OPC自动化接口和定制接口 (1)
图4.4 OPC自动化接口和定制接口 (2)
2、OPC数据存取规范 (OPC DA)
相关文档
最新文档