OPC UA协议基础

news2024/11/25 2:47:44

C#开发使用参考github地址:GitHub - OPCFoundation/UA-.NETStandard: OPC Unified Architecture .NET Standard

同步到gitee的地址:UA-.NETStandard: github导入:https://github.com/OPCFoundation/UA-.NETStandard

协议参考网站:OPC UA Online Reference - Released Specifications

使用opcua常用的方法和功能介绍

①连接和断开连接,当然还有断开重连

②认证,包括没有限制、需要用户名和密码、数字证书

③数据读取:先把数据读上来,然后根据数据类型转换即可。特别注意结构体读取需要特殊处理一下

④数据写入:OPC UA在数据写入时,对数据类型有严格要求,数据类型不会自动转换,会写入失败。所以写入数据时需要指定数据类型。特别注意结构体写入需要特殊处理一下

⑤订阅:数据订阅后服务器数据变化后会自动通知到客户端。相当于把压力放在了服务器。注意:服务器对与订阅资源是有限的,有的服务器必须显式的释放订阅资源,不然会造成订阅资源耗尽而订阅失败,必须重启服务端软件才能解决。

NuGet添加引用,搜索:OPCFoundation.NetStandard.Opc.Ua

术语

地址空间 AddressSpace

报警 Alarm

属性 Attribute

证书 Certificate

客户端 Client

条件 Condition

通信栈 CommunicationStack

复杂数据 Complex Data

发现 Discovery

事件 Event

事件通知者 EventNotifier

信息模型 Information Model

消息 Message

方法 Method

监视项 MonitoredItem

节点 Node

节点类 NodeClass

通知 Notification

通知消息 NotificationMessage

对象 Object

对象实例 Object Instance

对象类型 ObjectType

行规 Profile

程序 Program

引用 Reference

引用类型 ReferenceType

根节点 RootNode

服务器 Server

服务 Service

服务集 Service Set

会话 Session

订阅 Subscription

变量 Variable

视图 View

缩略语

下列缩略语适用于本文件。

A&E : 报警和事件( Alarmsand Events )

API : 应用程序接口 ( Application ProgrammingInterface )

COM : 组件对象模型( Component Object Model )

DA : 数据访问( Data Access )

DCS : 分布式控制系统( Distributed Control System )

DX : 数据交换( Data Exchange )

HDA : 历史数据访问( Historical Data Access )

HMI : 人机接口 ( Human-MachineInterface )

LDAP : 轻量目 录访问协议( Lightweight Directory Access Protocol )

MES : 制造执行系统( Manufacturing Execution System )

OPC : OPC 基金会(非赢利工业协会)[ OPC Foundation ( anon-profitindustryassociation )]

PLC : 可编程逻辑控制器( Programmable Logic Controller )

SCADA : 数据采集与监控( Supervisory Control And Data Acquisition )

SOAP : 简单对象访问协议( Simple Object Access Protocol )

TCP : 传输控制协议( Transmission Control Protocol )

UA : 统一架构( Unified Architecture )

UDDI : 通用描述、发现与集成( Universal Description , DiscoveryandIntegration )

GB / T 33863.1 — 2017 / IEC / TR62541-1 : 2010

UML : 统一建模语言( Unified Modeling Language )

WSDL : 网页服务定义语言( Web Services Definition Language )

XML : 可扩展标记语言( Extensible Mark-up Language)

CSMS : 网络安全管理系统( Cyber Security Management System )

DSA : 数字签名 算法( Digital Signature Algorithm )

PKI : 公共密钥基础设施( Public KeyInfrastructure )

RSA : 用于签名 或加密的公共密钥算法( Rivest , Shamir , Adleman )[ public keyalgorithmforsig-

ningorencryption ( Rivest , Shamir , Adleman )]

SHA1 : 安全散列算法 1 ( Secure Hash Algorithm1 )

SOAP : 简单对象访问协议( Simple Object Access Protocol )

SSL : 安全套接层( Secure Sockets Layer )

TLS : 传输层安全( Transport Layer Security )

UA : 统一架构( Unified Architecture )

URI : 统一资源标识符( Uniform ResourceIdentifier )

系统标准结构

设计目标

OPC UA 提供一致的、集成的地址空间和服务模型, 这允许一个 OPC UA 服务器将数据、报警、事 件和历史数据集成到地址空间, 并使用集成的服务集对其进行访问。 这些服务也包括集成的安全模型。

OPC UA 允许服务器向客户 端提供从地址空间访问的对象类型定义, 也允许使用信息模型描述地 址空间内容。 OPC UA 允许数据按不同格式表示, 包括二进制结构和XML文件。 数据格式可由 OPC 、其他标准组织或制造商定义。 通过地址空间, 客户端能向服务器查询描述数据格式的元数据。 在许多情况下, 没有数据格式的预编程序知识的客户端, 能实时确定数据格式并适当地使用数据。

两种传输映射:TCP;在 HTTP 上的 SOAP 网络服务。

集成服务

OPC UA 客户 端和服务器间的接口 定义为服务集。 这些服务被组织为逻辑分组, 称为服务集。 服 务集在第 7 章中讨论, 具体规定见 IEC62541-4 。

OPC UA 服务向客户端提供两种能力, 允许客户 端向 服务器发送请求, 以 及从服务器接收响应。 OPC UA 服务也允许客户 端向 服务器订阅通知( Notifications )。 服务器使用通知报告发生的情况, 如: 报警、数据值变化、事件和程序执行结构。

OPC UA 消息可编码为 XML 文本( Text )或从效率角度考虑编码为二进制格式。 可使用多个底层传 输发送消息,例如: TCP 或在 HTTP 之上的网页服务。 服务器可提供不同编码和传输,见 IEC62541-7。

AddressSpace (地址空间)节点

地址空间是客户 端使用 OPC UA 服务(接口 和方法) 可以 访问 的节点集。 地址空间 节点被用于表 示实际对象、对象定义和对象间的引 用。

地址空间组织

该模型用于按一致方式产生互联节点的地址空间。 服 务器可在所选择的地址空间内自由地组织它们的节点。 使用节点间的引 用允许服务器按层次结构、节 点的全网状结构或任何可能的混合结构, 组织地址空间。

地址空间视图

视图是地址空间的子集。视图可用于服务器限制向 客户 端公开的节点, 同时也限制了客户端发送 的服务请求的地址空间范围。缺省视图是整个的地址空间。服务器可以有选择地定义其他视图。视图 在地址空间中隐藏了一些节点或引用。通过地址空间视图是可见的, 客 端能浏览这些视图以确定它 们的结构。视图常为层次结构, 这种结构使客户端更容易以树型结构来定位和表示。

服务集

OPC UA 服务被分成若干服务集, 每个服务集定义了服务的逻辑分组, 可用于访问 服务器的特定 部分。

发现服务集

该服务集定义了用于发现系统中使用的 OPC UA 服务器的服务, 也提供客户 端读取连接服务器所要求的安全配置的方法。 发现服务由 单个服务器或专用发现服务器实现。

安全通道服务集

该服务集定义了用于打开确保与服务器间交换的所有消息的保密性和完整性的通信通道。

会话服务集

本服务集定义了在代表特定用户 的会话中, 建立应用层连接所使用的服务。

节点管理服务集

节点管理服务集允许客户 端添加、修改和删除地址空间的节点。 这些服务提供用于服务器配置的接口 。

视图服务集

视图是公开定义的由服务器建立的地址空间子集。 整个地址空间是缺省视图, 而且视图服务能在整个地址空间中操作。

查询服务集

查询服务集允许用户 在不浏览也不了解内部存储数据的逻辑结构的情况下, 访问地址空间。

查询允许客户 端基于客户端提供的过滤准则选择视图中节点的子集。通过查询语句从视图中选择的节点被称为结果集。

属性服务集

属性服务集用于读写属性值。属性是由 OPC UA 定义的节点的原始特性。属性可以不是由客户端或服务器定义。在地址空间中只有属性是唯一允许具有数据值的元素。数值属性是特殊属 性, 用于定义变量的值。

方法服务集

方法表示对象的功能调用, 定义见 IEC62541-3 。 方法被调用并在完成后无论成功与否都要返回信息。 方法的执行时间是不同的, 这取决于方法执行的功能。

监视项服务集

客户端使用监视项服务集建立和维护监视项。 监视项监视变量、 属 性和事件通知。当监视项检测到某些条件时产生通知。监视项监视变量的值或状态、值的属性是否变化, 以及是否有新产生的报警和事件报告的事件统治者。

每个监视项识别要监视的项, 并标识用于周期发布客户 端通知的订阅。

订阅服务集

客户端使用订阅服务建立和维护订阅。 订阅是为分配给它们的监视项周期地发布通知消息的实体。通知消息包含通用头和其后的通知序列。 通知格式对于监视项类型是特定的(变量、属 性和事件通知)。

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

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

相关文章

【23种设计模式】组合模式【⭐】

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…

多态语法,析构多态

目录 多态的构成条件 虚函数重写: 多态的构成条件 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如 Student 继承了 Person 。 Person 对象买票全价, Student 对象买票半价。 继承中要 构成多态两个条件 …

【PowerQuery】Excel的PowerQuery按需刷新

将数据通过PowerQuery 导入进来后,这里将进行数据分组运算,最终的数据计算结果将保存在Excel 表格中,图为销售统计结果。 在Excel中,如果我们希望进行销售统计的手动更新可以使用几种不同的方法来进行刷新: 刷新单一数据连接如果仅仅需要刷新单一数据连接的话我们可以通过…

RocketMQ_高级特性_事务消息

Apache RocketMQ在4.3.0版中已经支持分布式事务消息,这里RocketMQ采用了2PC的思想来实现了提交事务消息,同时增加一个补偿逻辑来处理二阶段超时或者失败的消息,如下图所示。 事务消息发送步骤如下: 生产者将半事务消息发送至消息队…

Bmfont 软件生成fnt 字体步骤

Bmfont 软件 用来生成 fnt 格式的字体文件和 png 图片,常用于cocos 游戏开发中制作动态字体。 下面手把手介绍 Bmfont 软件生成fnt 字体的详细步骤: 1、下载安装Bmfont 软件 2、新建文本字库 新建一个txt文本文档。 注意:保存为UTF-8-BOM 编…

Nuxt讲解

代码仓库 nuxt基础 内置组件 nuxt为我们提供了一些内置组件,可以直接使用不用导入,其中常用的如下 SEO组件 HtmlBodyHeadTitleMetaStyleLinkNoScriptBase SEO组件可以更加方便的让我们再页面中添加利于seo的元素 NuxtWelcome 欢迎页面组件&#…

打开深度学习的锁

打开深度学习的锁 导言一、导入的包和说明二、数据的预处理2.1 数据集说明2.2 数据集降维度并且转置2.3 数据预处理完整代码 三、逻辑回归3.1 线性回归函数公式3.2 sigmoid函数公式 四、初始化函数五、构建逻辑回归的前向传播和后向传播5.1 损失函数5.2 前向传播5.3 后向传播5.…

Excel学习 WPS版

Excel学习 1.界面基础1.1 方格移动快捷键1.2 自动适配文字长度1.3 跨栏置中1.4 多个单元格同宽度:1.5 下拉框选择1.6 打印预览1.7 绘制边框1.8 冻结一行多行表头1.9 分割视图 2.日期相关2.1 今日日期快捷键2.2 月份提取 3.数学公式3.1 自动增长3.2 排序3.3 筛选3.4 …

时间、时间戳互转、日期格式化、获取各种天数

我们在工作中经常遇到日期格式的转换,比如获取当前时间,转换当前时间格式为2023/09/09、2023-09-09、2023-09-09 18:12:01、时间戳、时间戳转日期、日期转时间戳、获取当前季度,获取上一季度、获取下一季度、获取下一周,获取上一周…

Android EditText setTranslationY导致输入法覆盖问题

平台 RK3288 Android 8.1 显示: 1920x1080 160 dpi 概述 碰到一个问题: 弹出的输入法会覆盖文本输入框。 原因:输入框使用了setTranslationY() 位置偏移后, 输入法无法正确获取焦点的位置。 分析 先上图: 初始布局 调用etTranslation…

【GO语言基础】基本数据类型

系列文章目录 【Go语言学习】ide安装与配置 【GO语言基础】前言 【GO语言基础】变量常量 【GO语言基础】数据类型 文章目录 系列文章目录数据类型数值型:整数类型:浮点数类型: 字符型-布尔型-字符串零值转义字符 常用类型转换运算符总结 数据…

matplotlib从起点出发(8)_Tutorial_8_Legend

1 图例教程 在matplotlib中灵活地生成Legend。 本图例指南是legend()中可用文档的扩展——在继续阅读本指南之前,请确保你熟悉legend()文档的内容。 本指南使用了一些常用术语,为清楚起见,此处记录了这些术语: legend entry 图…

【Image captioning】S2 Transformer for Image Captioning 实现流程

S2 Transformer for Image Captioning 实现流程 作者:安静到无声 个人主页 目录 S2 Transformer for Image Captioning 实现流程环境设置数据准备训练评价离线评估在线评估参考文献和引用参考引用致谢推荐专栏环境设置 克隆此存

代码随想录算法训练营第三十二天|122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II

122.买卖股票的最佳时机II 本题解法很巧妙&#xff0c;大家可以看题思考一下&#xff0c;在看题解。 代码随想录 public int maxProfit(int[] prices) {int result 0;for (int i 1; i < prices.length; i) {result Math.max(prices[i] - prices[i - 1], 0);}return re…

【可定制、转换时间戳】解析nc文件,并保存为csv文件

解析nc文件&#xff0c;并保存为csv文件 写在最前面解析nc文件&#xff08;代码汇总放最后面&#xff09;读取nc文件获取气象文件中所有变量解析时间解析部分代码汇总 写入csv文件 写在最前面 愿称之为&#xff1a;支持私人订制、非常完美的版本 参考&#xff1a; 解析部分参…

C 风格文件输入/输出---无格式输入/输出

C 标准库的 C I/O 子集实现 C 风格流输入/输出操作。 <cstdio> 头文件提供通用文件支持并提供有窄和多字节字符输入/输出能力的函数&#xff0c;而 <cwchar>头文件提供有宽字符输入/输出能力的函数。 无格式输入/输出 从文件流获取字符 std::fgetc, std::getc …

TorchDynamo初探②:Torch.FX调研和实践

作者&#xff5c;strint 1 概要 torch.fx 是 PyTorch 官方发布的 Python 到 Python 的代码变换工具。如果你想做 Torch 代码变换&#xff0c;torch.fx 是首选工具。 torch.fx 会将 Torch 代码 trace 成 6 种基础的 node 组成的 graph&#xff0c;基于这个 graph 可以方便的做各…

01 PHP基础知识讲解

一 php基础知识 PHP文件的默认拓展名是“php”。 PHP文件中包含HTML标记、PHP标记、PHP代码以及空格和注释。 PHP标记&#xff1a;开始标记<?php 结束标记 ?> 中间内容是PHP代码。 PHP代码&#xff1a;学习第一个指令 echo 功能是用于输出字符串 。 语句结束符&a…

从零开始-与大语言模型对话学技术-gradio篇(4)

前言 本文介绍「星火杯」认知大模型场景创新赛中的落选项目- AI命理分析系统&#xff0c;属于个人娱乐练手。总结提炼了往期文章精华并发掘出新的知识。 包括本地部署版本和Web在线版本&#xff0c;两种打包方式基于 半自动化使用.bat手动打包迁移python项目 如何把 Gradio …

Minio集群搭建

一、官方文件 1、minio官网 https://min.io/ 2、中文文档 http://docs.minio.org.cn/docs/ 3、集群原理 二、集群部署 1、在每台服务器上创建minio目录 mkdir -p /app/minio/{run,data1,data2} && mkdir -p /etc/minio2、下载或者上传下载好的minio二进制文件 https…