OPC接口技术规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OPC接口技术规范 (上)
周爱华汪仁智
周爱华先生,重庆工业自动化仪表研究所公用自控事业部副部长;汪仁智先生,副部长。
关键词:OPC COM/DCOM数据信息技术规范服务器客户应用程序
一OPC基本原理
OPC是基于Microsoft公司OLE/COM和DCOM技术的。
1. OPC概述
OPC数据信息访问技术规范通过OPC服务器描述了OPC COM部件对象和接口的运行情况。通过一个或者多个软件供应商所提供的OPC驱动程序,一个OPC客户应用程序能够连接到OPC服务器,OPC客户应用程序如图1所示。
不同的软件供应商都能够提供相应的OPC服务器。软件供应商提供的程序代码决定了每个服务器所能够访问的过程控制设备和数据信息,以及服务器怎样访问物理控制设备数据信息的详细内容和数据名称。OPC技术规范有关命名习惯在后续的介绍中会详细涉及到。OPC客户与服务器的关系如图2所示。
在应用过程中,OPC服务器通常包括服务器、组和项目等几个对象。OPC 服务器对象维持着有关服务器和适合于OPC组对象并作为一个容器服务器的数据信息。而OPC组对象则维持着其自身的数据信息,并为容器和逻辑OPC项目提供运行机制。
OPC组为客户组织数据信息提供了一种方式。例如,在一个特殊操作显示或者报表中,组可以表征项目,数据信息也能够进行读取和写入操作。此外,在一个组中,客户和项目之间也能够很容易地建立起连接关系,而且当需要的时候还能够及时激活和取消。一个OPC客户应用程序可以组态数据信息的变化速率,一个OPC服务器应该将变化的数据信息提供给OPC客户应用程序。
OPC组有两种类型的组别,即公共和本地(或者私有)组。公共组的数据信息可以允许多个客户应用程序共享访问,而私有组的数据信息仅供本地化客户应用程序共享访问。更详细的内容在后面还将会涉及到。对于公共组还有更加特殊的可选择接口内容。
在每个组中,客户能够定义一个或者多个OPC项目。如图3所示。
OPC项目表征了在服务器内部数据信息来源的连接情况。从习惯性接口的一面来观察,一个OPC项目是不大可能直接访问一个由OPC客户应用程序所建立的对象。因此,对于一个OPC项目,必须要有一个已经定义好的外部接口来完成这项工作。对于OPC项目的所有访问则是依靠一个包含有OPC项目的OPC组对象来实现的,或者只需要对OPC项目进行简单的定义即可。
与每个OPC项目相关联的内容则是数值、品质和时间标志。数值是以一个变量的形式表现出来,而品质则类似于通过现场总线所指定的功能特性。
应该更加注意的是,OPC项目不是数据信息的来源,OPC项目仅仅是用于连接数据信息来源的。
2. OPC适合于什么地方
OPC技术最初的设计是用于从网络服务器访问数据信息,OPC接口能被应用于程序中的许多地方。如图4所示,最低限度OPC服务器接口能从相应的物理设备获得数据信息,并将其传输到一个SCADA系统或者DCS中去;另一方面,也可以将SCADA系统或者DCS的数据信息传送到应用程序中去。这种结构体系和设计的运行机制使得有可能建立一个OPC服务器,且允许一个OPC 客户应用程序访问来自于其他许多OPC服务器所提供的数据信息,当然,这些不同的OPC服务器程序则需要来自于许多不同的OPC服务器软件供应商,并且是依靠单个对象运行于不同的节点。
3. 一般OPC结构体系和组成
OPC是一种为两组接口提供了预定义的技术规范,这两种接口是OPC常规接口和OPC自动化接口。一个经过修改以后的自动化接口在2.0版本的OPC技术规范中得到了体现。OPC接口如图5所示。
OPC数据信息访问技术规范详细指定了COM接口(即接口是什么),而不是接口的执行(即并非怎样执行)。另外,还指定了接口被希望提供到客户应用程序并进行使用的行为举止。
OPC数据信息访问技术规范内藏了对结构体系和接口的恰当的详细描述。像所有COM部件的执行一样,OPC是一种客户/服务器结构模式,OPC服务器部件为OPC对象及其管理工作提供了一个接口。
在一个OPC服务器的执行过程中,有几个独特的事项需要考虑。主要问题是通过非共享通信路径到相应的物理设备的数据信息传输频率。因此,我们希望OPC服务器既可以进行本地服务,也能够进行远程传输,其EXE文件所包含的代码对于物理设备进行直接性数据信息的采集是完全可靠和完善的。
一个OPC客户应用程序与一个OPC服务器之间通过指定的OPC常规和自
动化接口进行通信处理。OPC服务器必须首先执行常规接口,然后就可以随意地执行自动化接口。
一个inproc(OPC处理器)部件可以被应用于配置接口和提供额外的OPC自动化接口所需要的项目级功能特性。典型OPC结构体系如图6所示。
OPC服务器通过各种各样的客户应用程序进行巩固和优化数据信息访问方式也是人们所期望的,这样可以促进与物理设备的有效通信性能。在输入(读)
方面,通过物理设备所返回的数据信息对于异步分发或者通过不同OPC客户应用程序的同步采集将得到进一步缓冲;在输出(写)方面,OPC服务器代表OPC 客户应用程序刷新物理设备的数据信息。
4. 对象和接口
OPC服务器对象为一组数据信息源进行访问(读/写)或者通信提供了一种方式。源变量的类型是一套服务器执行的功能函数。
通过OPC接口部件,一个OPC客户应用程序能连接到OPC服务器,而且可以与OPC服务器进行通信,并处理相应的数据信息。OPC服务器对象为OPC 客户应用程序建立和利用OPC组对象提供了相应的功能特性。这种组对象允许客户应用程序将它们所希望访问的数据信息有效地组织起来。当一个组对象被作为一个单元单独处理时,能被激活和被解除激活状态。组对象为客户应用程序项目能够预订列表数据信息也提供了一种方式,所以只要当OPC服务器上的数据信息改变时,它也能及时得到通告。
值得注意的是,所有COM对象都是通过接口部件进行存取的。客户应用程序仅仅只能了解接口部件。因此,这里的对象描述是采用了本地化的表示方式,而不是服务器内部的执行。如图7、8和9分别展示了标准OPC服务器、组和项目对象,其中[]内的一些接口部件是可选择性的内容。
5. 必需的接口定义
OPC服务器驱动程序的开发商必须执行必需性接口的全部功能特性。一个OPC客户应用程序通过从OPC必需的接口部件调用功能函数来实现与OPC服务器数据信息的通信处理工作。
6. 可选择性的接口定义
OPC服务器驱动程序的开发商可以执行选择性接口的功能特性。
可选择性接口部件是一种开发商可以选择性执行的OPC服务器驱动程序。当一个OPC服务器支持一种可选择性接口部件时,即使该功能正好返回
E_NOTIMPL代码,在可选择性接口部件内部的所有功能也必须被执行。希望使