opc是什么


一、OPC概念

OPC (OLE for Process Control,用于过程控制的OLE) 是一种利用微软的COM/DCOM技术实现自动化控制的协议,由OPC会管理。它的主要目的是为了不同供应商的设备和应用之间的软件接口标准化,从而简化数据交换的过程。

通过OPC,软件厂商只需按照OPC标准接口编写Client程序,就可以访问Server程序进行读写操作,实现与硬件设备的通信。OPC规范包括DA(Data Access)规范、A&E(Alarm and Event)规范、HDA(History data access)规范以及OPC XML-DA规范等。

二、OPC UA

为了应对标准化和跨平台的趋势,OPC会推出了一个新的标准——OPC UA。OPC UA接口协议集成了之前的A&E、DA、OPC XML-DA或HDA等特性和信息,使用一个地址空间就能访问之前所有的对象。它具有平台无关性,支持更灵活和安全的通信机制,并简化了配置和工程的时间。

OPC和OPC UA协议的主要区别在于其使用的TCP层不同。OPC基于DOM/COM上层,而OPC UA基于TCP IP socket传输层。OPC UA具有更高的开放性和安全性。

三、OPC逻辑对象模型

OPC逻辑对象模型包括OPC server对象、OPC group对象和OPC item对象,每类对象都包括一系列接口。其中,项不代表数据源,而是到数据源的连接。不同的组对象里可以拥有相同的项。

OPC Server对象主要负责创建和管理OPC Group对象,以及管理服务器内部的状态信息。OPC Group对象则负责管理其内部的项,并创建和管理Items对象。Items对象用来描述实时数据,代表了与服务器数据源的连接。

关于Item的属性如名称、激活状态、数据值、品质等都有详细的定义。还介绍了OPC_QUALITY_xxx和OPC_LIMIT_xxx等定义,用于描述数据的可靠性和值的限制范围。

四、OPC通信

OPC通信包括同步通信和异步通信。同步通信中,OPC客户端对OPC服务端进行读取操作时,必须等待服务器端完成对应操作后才能返回。而异步通信中,OPC客户端发送请求后立即返回,不用等待服务器端。还介绍了订阅机制,需要服务器端支持A&E规范,由客户端设定数据的变化限度,当数据源的实时数据变化超过该限度时,服务器通过回调返回数据给客户端。

五、OPC测试常用的软件推荐

推荐了几款常用的OPCClient和OPCServer软件,包括Matrikon公司的OPCClient、Kepware公司的OPCClient和OPCServer等。也推荐了几款开源的OPC项目,如LIGHTOPC、OpenOpcUa等。

六、开源OPC项目的简要介绍

对几个开源的OPC项目进行了简要介绍,包括项目名称、语言、特性以及链接等。例如Utgard是OpenSCADA项目底下的子项目,纯Java编写,具有跨平台特性;而JEasyOPC Client则底层依赖JNI,只能在Windows环境下运行。

参考资料

提供了《OPCDA 服务器与客户程序开发指南》以及OPC的链接,作为学习的参考资料。