文档介绍:第1章OPC概述
 关键字:COM DCOM OPC DA 通讯规范 CLIENT SERVER GROUP ITEM 自定义接口 自动化接口 同步 异步 回调
随着计算机科学技术、工业控制等各方面新技术迅速发展,计算机监控系统由早期集是基于COMC/S模式,因此OPC开发分为OPC服务器开发和OPC客户程序开发,对于硬件厂商,一般需要开发适用于硬件通讯OPC服务器,对于组态软件,一般需要开发OPC客户程序。
对于OPC服务器开发,由于多种编程语言在实现时都提供了对COM支持,如Microsoft C/C++,Visual Basic, Borland公司Delphi等。但是开发OPC服务器语言最好是C或者是C++语言。在本书中选用Visual C++。
对于OPC客户程序开发,可根据实际需求,选用比较合适,能够快速开发语言。
OPCDA204规范简述
OPCDA204规范(OPC Data Access Custom Interface Specification )是2000年9月OPC基金会发布OPCDA自定义接口规范。该规范制定了OPC服务器和OPC客户程序COM接口标准,通过制定标准接口来实现多个厂家OPC服务器和OPC客户程序开发。本书附带OPCDA204规范WORD文档。
OPC客户程序和OPC服务器
一个OPC 客户可以连接一个或多个OPC 服务器,而多个OPC 客户也可以同时连接同一个OPC 服务器,。
 
OPC 客户程序/OPC服务器关系
OPC服务器对象组成
一个OPC服务器由三个对象组成:服务器(Server),组(Group),项(Item)。OPC服务器对象用来提供关于服务器对象自身相关信息,并且作为OPC组对象容器。OPC组对象用来提供关于组对象自身相关信息,并提供组织和管理项机制。
OPC组对象提供了OPC客户程序用来组织数据一种方法。例如一个组对象代表了一个PLC(可编程控制器)中需要读写寄存器组。一个客户程序可以设置组对象死区,刷新频率,需要组织项等。OPC规范定义了2种组对象:公共组和私有组。公共组由多个客户共享,局部组只隶属于一 OPC客户。全局组对所有连接在服务器应用程序都有效,而私有组只能对建立它CLIENT有效。在一个SERVER中,可以有若干个组。
OPC项代表了OPC服务器到数据源一个物理连接。数据项是读写数据最小逻辑单位。一个OPC项不能被OPC客户程序直接访问,因此在OPC规范中没有对应于项COM接口,所有和项访问需要通过包含项OPC组对象来实现。简单讲,对于一个项而言,一个项可以是PLC中一个寄存器,也可以是PLC中一个寄存器某一位。在一个组对象中,客户可以加入多个OPC数据项。每个数据项包括3个变量:值(Value)、品质(Quality)和时间戳(Time Stamp)。数据值是以VARIANT形式表示。
Server/Group/Item关系
 
这里最需要注意是项并不是数据源,项代表了到数据源连接。例如一个在一个DCS系统中TAG不论OPC客户程序是否访问都是实际存在。项应该被认为是到一个地址数据。大家一定要注意项概念。不同组对象里可以拥有相同项,如组1中有对应于一个开关ITEMAAA,组2中也可以有同样意义对应于一个开关ITEMAAA,即同样项可以出现在不同组中。
OPC接口体系
OPC规范提供两种接口:自定义接口(the OPC Custom Interfaces),自动化接口(the OPC Automation interfaces)。
                                       OPC接口
 
如前所述,象所有COM结构一样,OPC是典型CLIENT/SERVER结构,OPC服务器提供标准OPC接口供OPC客户程序访问。OPC服务器必须提供自定义接口,对于自动化接口,在OPC规范定义中是可选。
 
OPC对象接口定义
本节主要对OPC服务器对象和OPC组对象接口进行简要介绍。
OPC服务器对象提供一些方法去读取或连接一些数据源。OPC客户程序连接到OPC服务器对象,并通过标准接口和OPC服务器联系。OPC服务器对象提供接口(AddGroup)供OPC客户程序创建组对象并将需要操作项添加到组对象中,并且组对象可以被激活,也可以被赋予未激活状态。对于OPC客户程序而言,所有OPC服务器和OPC组对象可见仅仅是COM接口。
下面两个图例是OPC规范中定义OPC服务器对象和OPC组对象COM接口,其中任选接口均以[ ]