OPC 协议一点点总结

 

目录

一、OPC协议规范

二、OPC服务器

三、OPC三类对象

四、OPC服务器之间的通信


OPC基于微软的COM/DCOM技术来进行数据交换。只能安装在Windows系统。采用的是客户端/服务器模式。

通信的发起端是客户端,可以读写服务器数据。

OPC主要解决过程控制系统与其数据源的数据交换的问题,可在各应用之间提供一种透明的数据访问,是与厂商无关的软件数据交换标准的接口和规程。

硬件厂商只需要提供硬件设备的驱动程序,并且提供标准的OPC协议规范的OPC服务器让客户端来通过软件的方式来访问硬件,实现软件和硬件的通信。所以会有两部分组成:一个OPC服务器和一个硬件驱动程序。OPC服务器主要对数据进行管理和组织,同时与客户端进行通信;硬件驱动程序主要从硬件中读取数据,并将数据传递给OPC服务器。

一、OPC协议规范

DA(Data Access)规范:实时数据。访问数据主要采用的协议规范

A&E(Alarm and Event)规范:报警和事件数据。基于事件,提供客户端订阅,事件触发后服务器主动提交返回数据。(类似于Android解析xml中的SAX解析)

HDA(History Data Acess)规范:历史数据;

UA(Unified Architecture)规范:最新的协议规范,可以与任意数据兼容。不再拘束于COM/DCOM,不再局限于Windows系统,具有跨平台性,接口简单。

二、OPC服务器

通常硬件厂商提到的支持OPC,其实指的是OPC服务器,通常不会直接嵌入到硬件中,而是要部署到Windows系统的一个OPC服务,通过通用的OPC协议规范对外提供客户端来访问硬件设备。一般厂商都是付费之后才会启动OPC服务器。该服务相当轻巧,可与台式机上的其他应用程序共存。

当然现在的OPC UA协议规范可以直接嵌入到硬件中,如果客户端不支持OPC UA,那么可以通过OPC网关应用程序直接将OPC UA转换成OPC DA。

OPC服务器的数据源可以是某个硬件设备、某个控制器或某个应用程序,所以我们就可以将一个RS485、以太网或者WIFI等方式组网的网络与OPC服务器进行通信。所以OPC服务器也可以看成一个协议转换器,OPC服务器与数据源之间通信采用的是物联网的一点点认知总结之前提到的接入协议像Modbus、Bacnet等,而与客户端通信采用的就是OPC协议规范定义的数据格式,也可以理解为OPC服务器可以集成 像Modbus、Bacnet等协议。如图所示:

通常情况下OPC服务器在客户端没有读写设备之前,基本上是不会执行任何操作。但是某些OPC服务器也可以配置成没有客户端轻巧的时候也可以从设备轮询数据,例如采用A&E规范的服务器。

三、OPC三类对象

OPC服务中有三类对象:OPC Server对象、OPC Group对象、OPC Item对象,每一类对象都包含一系列的接口。

OPC Server对象主要是功能创建和管理OPC Group对象、管理服务器内部的状态信息;

OPC Group对象主要管理该对象的内容状态信息、创建和管理Item对象以及服务器内部的实时数据的存取服务(同步与异步);通常分为私有组和公有组。公有组有多个客户共享、私有组只属于某个客户,大多数的服务器均未实现公有组;

OPC Item对象主要用来描述实时数据,一个Item对象不能单独被OPC客户端访问,所有的对象的访问必须通过OPC Group访问。

四、OPC服务器之间的通信

通常情况下OPC服务器与客户端进行通信,但是OPC服务器与OPC服务器之间也可以通信。例如两个设备厂家之间需要进行数据交换,那么就需要有一个OPC服务器使用两个不同设备厂商特定的协议与每个服务器进行通信,这时就需要使用OPC Bridging(OPC 桥)。OPC Bridging是客户端的应用程序,可以连接许多不同的OPC服务器,然后允许服务器之间进行数据交换等操作。

猜你喜欢

转载自blog.csdn.net/nihaomabmt/article/details/107018608
opc