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

相关文章
|
2月前
|
机器学习/深度学习 边缘计算 安全
C#实现OPC客户端
C#实现OPC客户端,结合OPC DA与OPC UA两种协议
|
容器
Pyside6-第十三篇-布局(最后一章废话-理论篇)
Pyside6-第十三篇-布局(最后一章废话-理论篇)
1501 0
|
21天前
|
人工智能 运维 Linux
喂饭级教程:OpenClaw(Clawdbot)AI 助手 阿里云/本地部署(Windows/Mac/Linux)实战指南
在AI工具泛滥的今天,大多数产品仍停留在“提供建议”的层面——能回答问题,却不能动手解决实际问题。而OpenClaw(昵称“龙虾”,原称ClawdBot/Moltbot)的出现,彻底打破了这一局限:它是一款本地优先、可自托管的开源AI执行引擎,能将自然语言指令直接转化为实际行动,从文件整理、代码运行到服务器运维、邮件管理,真正实现“一句话搞定”。
1186 0
LiveCharts 直方图详解,安装和使用,以及常用属性的说明
本文介绍了LiveCharts在WPF中的应用,包括安装方法、基本使用和直方图(LineSeries)的常用属性说明。安装LiveCharts通过NuGet包管理器进行,使用时需在XAML文件中引入相应的命名空间。文章还提供了直方图的属性详解和综合示例,包括线条样式、坐标轴标签、图例位置等设置,以及如何自定义数据点形状。
LiveCharts 直方图详解,安装和使用,以及常用属性的说明
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
3053 0
虚拟机centos7.9一键部署docker
|
消息中间件 存储 监控
消息中间件第八讲:消息队列 RocketMQ 版实战、集群及原理
消息中间件第八讲:消息队列 RocketMQ 版实战、集群及原理
964 0
|
物联网
Chirpstack配合网关与lora设备通信
这篇文章详细介绍了如何配置Chirpstack与LoRa网关及设备进行通信,并设置设备上报数据的流程,以便实现LoRaWAN网络的数据传输功能。
1043 1
|
安全 网络协议 前端开发
Windows下nmap命令及Zenmap工具的使用方法
【7月更文挑战第28天】zenmap是一个开放源代码的网络探测和安全审核的工具,它是nmap安全扫描工具的图形界面前端,它可以支持跨平台。使用zenmap工具可以快速地扫描大型网络或单个主机的信息。如扫描主机提供了哪些服务,使用的操作系统等。
2230 8
|
监控 芯片 数据格式
OPC客户端与OPC服务器连接
OPC客户端与OPC服务器连接
|
JavaScript Java 关系型数据库
springboot+vue餐厅点餐系统(源码+文档)
这是一篇关于基于SpringBoot的餐厅点餐系统的介绍。该系统由Java开发者风歌分享,提供完整的源码。项目支持多种Java框架,包括SSM和SpringBoot,适用于Java毕设项目。开发环境包括Java 1.8、MySQL 5.7+、Node.js、Vue等。系统架构包括管理员、用户和食堂三个角色的功能模块,涵盖用户注册登录、食堂管理、菜单管理、订单处理、消息留言、留言板和系统管理等全面功能。文章还展示了部分界面截图。如有需要,可联系作者获取更多详情和源码。

热门文章

最新文章