通讯协议030——全网独有的OPC HDA知识一之基本概念(一)

news2025/1/19 8:15:39

本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui)。

目前,大多数历史数据系统都使用自己的专有接口对外提供数据服务,不能与任何其他系统互操作。OPC HDA规范旨在提供历史数据访问的标准接口,促进用C和C++开发用于历史数据访问的OPC服务器/客户端应用程序。规范中描述的接口的体系结构和设计旨在支持其他语言的OPC服务器的开发。

OPC HDA规范与其他OPC规范之间存在松散的绑定。此OPC规范不是从另一个OPC规范派生而来,也不是从其继承接口。OPC HDA规范的接口提供时间序列历史数据。如果需要实时数据,则应使用OPC DA接口。

OPC HDA规范描述了OPC COM对象及其由OPC历史服务器实现的接口。OPC客户端可以连接到一个或多个供应商提供的OPC历史服务器。供应商也可以提供其他OPC服务器。下图说明了可能的OPC供应商服务器配置:

任何供应商,甚至是不提供服务器的供应商,都可以提供客户端。客户端应该能够与任何服务器一起工作。如果需要另一个OPC服务器(如数据访问服务器)才能实现全部功能,则客户端仍应能够在没有其他OPC服务器的情况下对历史数据进行操作。

1. 历史数据服务器类型

1)简单的趋势数据服务器。这些服务器只提供简单的原始数据存储。(数据通常是可从OPC数据访问服务器获得的数据类型,通常以元组[时间、数值、质量]的形式提供)。

2)复杂的数据压缩和分析服务器。这些服务器提供数据压缩以及原始数据存储。它们能够提供汇总数据或数据分析功能,如平均值、最小值和最大值等。它们可以支持数据更新和更新历史。它们可以支持注释的存储以及实际的历史数据存储。

这些不同的服务器都包含在OPC HDA规范的可选接口中。如果服务器不支持一组功能,则不需要实现该功能组的可选接口。

2. 数据源

OPC历史数据服务器提供了一种访问一组历史数据源的方式。可用的源类型是服务器实现的一个函数。

服务器可以实现为独立的OPC历史数据服务器,从OPC数据访问服务器或另一数据源收集数据。它也可能是一组分层在现有专有历史数据服务器之上的接口。引用OPC历史数据服务器的客户端可能是简单的趋势包,只需要给定时间范围内的值,也可能是需要多种格式数据的复杂报告。

3.对象和接口概述

OPC历史数据服务器对象提供从历史服务器读取数据和向历史服务器写入数据的能力。所有COM对象都是通过接口访问的。客户端只能看到接口。下图概述了OPC对象及其接口。请注意,有些接口是可选的(如[]所示)。

下图为Historian Server模型。

浏览器接口为客户端提供了一种查看历史记录的地址空间的方法。预期该地址空间对于一些服务器可能是分层的,而对于其他服务器可能是平面的。此接口旨在支持分层视图,其中平面地址空间表示为单层分层视图。浏览器接口在大多数大型历史数据服务器中是必不可少的,它允许客户端以简单的图形方式查看地址空间。

OPC Historian Client应用程序必须实现回调接口以支持关闭请求。客户端还可以实现用于服务器可以提供的各种异步连接的接口。如果客户端希望使用(而服务器提供)特定的异步接口,则客户端必须实现匹配的回调。

下图为Historian Client模型。

关闭请求是允许OPC历史数据服务器干净关闭所必需的。当HDA服务器访问时,客户端应释放服务器提供的内存(请参阅自定义接口内存部分)并终止所有连接。

4. 所需接口定义

OPC HDA服务器开发人员必须实现所需接口的所有方法,并且必须实现所述方法的所有功能。OPC历史客户端通过调用OPC所需接口的功能与OPC历史数据服务器通信。对于所需接口上的可选方法,OPC历史数据服务器可能会返回E_NOTIMPL。

5. 可选接口定义

OPC HDA服务器开发人员可以实现可选接口的功能。当OPC HDA服务器支持可选接口时,必须实现该可选接口中的所有功能,即使该功能仅返回E_NOTIMPL。希望使用可选接口功能的OPC历史客户端将向OPC HDA服务器查询可选接口。客户端必须设计为不要求存在此可选接口。

未完待续。更多通信资源请登录网信智汇(wangxinzhihui)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/829115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年信息系统项目管理师-学习计划安排

1. 关注信管网: 信管网 - 考试专业网站! (cnitpm.com) 2023年下半年信息系统项目管理师报名时间将于8月14日开始,各地报名时间不同,请考生注意查看当地报名时间,但报名官网入口是统一的,均在中国计算机技术…

如何评估DC电源模块的效率

BOSHIDA 如何评估DC电源模块的效率 BOSHIDA DC电源模块的效率是指输入电功率与输出电功率的比率,通常以百分比的形式表示。因为电源模块的效率和整个系统的运行时间、负载变化等因素有关,因此需要进行多种测试和评估来确定其真实效率。 以下是一些评估D…

500余名师生齐聚线下!智能汽车竞赛百度创意组东西部赛区圆满结束

“全国大学生智能汽车竞赛”是教育部倡导的大学生科技A类竞赛,中国高等教育学会将其列为含金量最高的大学生竞赛之一,为《全国普通高校大学生竞赛排行榜》榜单内赛事。飞桨共承办了百度完全模型组和百度智慧交通组两大赛道。其中,创意组赛事共…

springboot+vue学生宿舍寝室管理系统的设计与开发fyaa5--论文

金桂圆寝室管理系统主要包括管理员、宿管和喾三大部分。 管理员主要功能为:个人中心、学生管理、宿管管理、楼宇信息管理、宿舍信息管理、住宿信息管理、宿舍更换管理、退宿信息管理等功能。 宿管主要功能为:个人中心、宿舍信息管理、住宿信息管理、宿舍…

java+springboot+mysql企业邮件管理系统

项目介绍: 使用javaspringbootmysql开发的企业邮件管理系统,系统包含超级管理员、管理员、员工角色,功能如下: 超级管理员:管理员管理;员工管理;反馈管理;系统公告;个人…

【力扣每日一题】2023.8.3 删除注释

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 这道题属于模拟题,我们实际运用场景是使用正则表达式,并且我看评论区也有不少大佬也是用的正则,而我就…

如何解决电脑无声问题:排除故障的几种常见方法

大家好,今天我们来讨论一下处理电脑没有声音的故障。当你突然发现电脑静音无声时,需要逐步排除可能的问题,但总体而言,声音故障是相对容易解决的。接下来,我们将介绍一些排除电脑无声问题的方法。 第一步:…

【css】使用float实现水平导航栏

该实例使用float 浮动实现元素浮动在水平方向,从而实现水平导航栏效果。 overflow: hidden:当不给父级元素设置高度的时候,其内部元素浮动后会导致下面的元素顶上去,这是因为子元素浮动后,子元素脱离标准流&#xff0…

SpringBoot读取mysql

SpringBoot读取mysql 部署mysql创建SpringBoot工程增加mysql8依赖创建Service代码执行验证 部署mysql 部署mysql可以通过软件安装,也可以通过docker安装,具体的安装过程可以参考以前的一篇博文,这里不再重复。 《眼睛说:我会用do…

软考A计划-系统集成项目管理工程师-项目合同管理-下

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

大模型时代下,算法工程师发展趋势及技术拓展

本文目录 写在前面的话一、人工智能算法工程师的每个阶段是怎么样的?阶段一:模式识别阶段(1)传统机器学习--支持向量机(2)传统机器学习--隐马尔可夫模型(3)新的开始!--Al…

小鹏智驾一号位换帅,接棒者李力耘其人

作者 | 张祥威编辑 | 德新 8月2日,小鹏汽车自动驾驶副总裁吴新宙将离职的消息在业界刷屏。到晚间,何小鹏发文确认了这一消息。 接下来,何小鹏将亲自带领自动驾驶和研发团队,为在今年年内完成 CNGP覆盖 50 城的努力,并且…

WEB集群——http、tomcat

1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8,配置服务启动脚本,部署jpress应用。 1. 简述静态网页和动态网页的区别。 1)、静态网页 (1)、什么是静态网页 请求响应信息&…

一文说清楚支付架构

作者:陈斌 支付的技术架构是为了保障能够顺利处理支付请求而设计的结构体系。从系统的角度看,它包括了计算机系统的软件、硬件、网络和数据等。从参与的主体角度来看,它涉及交易的付款方、收款方、支付机构、银行、卡组织和金融监管机构等。要…

批量计算直角三角形两个直角边对应斜边的numpy.hypot()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 给出多个三角形的两条直角边长度 批量计算出这些三角形的斜边长度 numpy.hypot() [太阳]选择题 以下代码的输出结果是? import numpy as np a np.array([3, 4, 30]) b np.array([4, 3, 40])…

第四章 数据库安全性

问题的提出 (1)数据库的一大特点是数据可以共享 (2)数据共享必然带来数据库的安全性问题 (3)数据库系统中的数据共享不能是无条件的共享 这就引发了数据库安全性问题 1.数据库安全性概述 数据库的安全性…

基于SpringBoot+Vue的漫画网站设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

利用 Python 结合 UI 来模拟实现多人聊天

一、界面功能展示 1、设置一个通信 用户1 2、设置通信 用户2 3、进入聊天功能界面 4、发送信息来实现实时通信 二、代码实现 1、服务器端 (服务器需要能够与客户机进行直接通信,客户机之间不需要能够通信) 服务器需要配置监听的IP 0.0.…

改进粒子群算法优化BP神经网络---回归+分类两种案例

今天采用改进的粒子群算法(LPSO)优化算法优化BP神经网络。本文选用的LPSO算法是之前作者写过的一篇文章:基于改进莱维飞行和混沌映射(10种混沌映射随意切换)的粒子群优化算法,附matlab代码 文章一次性讲解两种案例,回归…

Mr. Cappuccino的第58杯咖啡——MacOS配置Maven和Java环境

MacOS配置Maven和Java环境 查看Mac使用的是哪个shell下载并准备Maven下载Maven配置前准备 下载并安装JDK下载JDK安装JDK 配置Maven和Java环境添加配置加载配置 验证环境 查看Mac使用的是哪个shell echo $SHELL如果使用的是bash,则使用以下命令 open ~/.bash_profi…