OPC接口与数据访问方法

简介: OPC接口与数据访问方法

OPC接口

OPC规范是一种硬件和软件的接口标准。OPC技术规范包括两套接口:定制接口(Custom Interface)和自动化接口(Automation Interface)。若客户的应用程序使用Microsoft VB之类的“脚本语言”(Scripting Languages)编写,则选用自动化接口。OPC定制接口则用于以C++来创建客户应用程序。当然,编程选用何种接口还取决于OPC服务器所能提供的接口类型,并非所有的OPC服务器都支持这两种接口。使用OPC定制接口可以达到最佳的性能,而OPC自动化接口则较简单。OPC服务器具体确定了可以存取的设备和数据、数据单元的命名方式及对具体设备存取数据的细节,并通过OPC标准接口开放给外部应用程序。各个OPC客户程序通过OPC标准接口对各OPC服务器管理的设备进行操作,而无需关心服务器实现的细节。数据存取服务器一般包括服务器、组和数据项3种对象。OPC服务器负责维护服务器的信息,并是组对象的容器。组对象维护自己的信息并提供容纳和组织OPC数据单元的架构。

自动化接口定义了以下3层接口,依次呈包含关系。


(1)OPC Server:

OPC启动服务器,获得其他对象和服务的起始类,并用于返回OPC Group类对象。


(2)OPC Group:

存储由若干OPC Item组成的Group信息,并用于返回OPC Item类对象。


(3)OPC Item:

存储具体Item 的定义、数据值、状态值等信息。

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


OPC规范可以应用在许多应用程序中,如它们可以应用于从SCADA或者DCS系统的物理设备中获取原始数据的最低层,它们同样可以应用于从SCADA或者DCS系统中获取数据到应用程序中。如图所示的OPC的客户/服务器关系图描述了OPC在自动化系统中的应用。

cfb12456bcb645d7bb59ae411e49e7db.png


OPC数据访问方法

首先,OPC客户连接到OPC服务器上,并且建立OPC Group和OPC Item,这是OPC数据访问的基础,如果没有这个机制,数据访问的其他机能不可能实现;其次,客户通过其建立的Group和Item进行访问实现对过程数据的访问;最后,当服务器响应客户的过程数据访问请求并且处理完毕时通知客户。以上3方面的机制是OPC数据访问服务器必须要实现的。客户的过程数据访问包括过程数据的读取、更新、订阅、写入等,过程数据的读/写还分同步读/写和异步读/写。建立OPC连接后,客户应用程序一般可以通过以下3种方式从OPC服务器读取数据。


1)使用IOPCSyncIO接口同步读/写

如图所示的同步访问,OPC服务器把按照OPC应用程序的要求得到的数据访问结果作为方法的参数返回给OPC应用程序,OPC应用程序在结果被返回之前必须一直处于等待状态。

2682cb6664f54ddcbc8d8c090f128141.png


2)使用IOPCASyncIO和IOPCASyncIO2接口异步步读/写

如图所示的异步访问,OPC服务器接到OPC应用程序的要求后,几乎立即将方法返回。OPC应用程序随后可以进行其他处理。当OPC服务器完成数据访问时,触发OPC应用程序的异步访问完成事件,将数据访问结果传送给OPC应用程序。OPC应用程序在事件处理程序中接受从OPC服务器传送来的数据。

027ad16507c14ec38867f8a1eff50330.png

订阅式数据采集方式基于“客户/服务器/硬件设备”模型,在服务器中的内部建立预定数据的动态缓存,并且当数据变化时对动态缓存给予刷新,并向订阅了这些数据的客户端发送。这种处理方式对于模拟量多的SCADA系统十分有用。

上述的OPC数据访问的功能并非必须全部实现,其中有一部分功能是选用的。这些选用功能是否被支持将随供应厂商的具体的服务器类型而定。

相关文章
|
6月前
|
程序员 C++
论接口的封装能力
论接口的封装能力
25 0
|
7月前
|
存储 容器
|
7月前
|
监控
OPC分层模型结构与对象接口编程
OPC分层模型结构与对象接口编程
|
8月前
|
Java
接口特性
接口特性
59 1
|
10月前
|
存储 搜索推荐 API
如何设计 RPC 接口
如何设计 RPC 接口
182 0
|
SQL 数据库 索引
接口规范 10. 并发限制相关接口
10 并发限制相关接口 10.1.查询并发限制配置 用途查询某个应用的播出并发限制值。如果一个应用设置了并发限制值,当访问该应用下视频流的并发数超过该值时,终端的播出请求会被禁止。这个限制值是该应用下所有视频流的播出并发数总和限制值。
1221 0