OpcUa

OPC UA基础概念

OPC UA 使用了对象(objects)作为过程系统表示数据和活动的基础。对象包含了变量,事件和方法,它们通过引用(reference)来互相连接。
OPC UA 信息模型是节点的网络(Network of Node,),或者称为结构化图(graph),由节点(node)和引用(References)组成,这种结构图称之为OPC UA 的地址空间。这种图形结构可以描述各种各样的结构化信息(对象)。

地址空间要点:

● 地址空间是用来给服务器提供标准方式,以向客户端表示对象。
● 地址空间的实现途径是使用对象模型,通过变量和方法的对象,以及表达关系的对象。
● 地址空间中模型的元素被称为节点,为节点分配节点类来代表对象模型的元素。
● 对象及其组件在地址空间中表示为节点的集合,节点由属性描述并由引用相连。
● OPC UA建模的基本在于节点和节点间的引用

1、对象模型

2、节点模型

节点模型要点:
● 节点根据用途分属于不同的节点类别(NodeClass),一些表示实例(/Root/Objects),一些表示类型(/Root/Types)。
● 节点类依据属性和引用来定义。OPC UA规范定义的节点类称为地址空间的元数据,地址空间中每个节点都是这些节点类的实例。
● 节点是节点类的实例,属性和引用是节点的基本组件。
● 属性(Attribute)用于描述节点,不同的节点类别有不同的属性(属性集)。节点类的定义中包括属性的定义,因此属性不包括在地址空间中。
● 引用(Reference)表示节点间的关系。引用被定义为引用类型节点的实例,存在于地址空间中。

节点模型通用属性

包含引用的节点为源节点,被引用的节点称目标节点。引用的目标节点可以与源节点在同一个地址空间,也可以在另一个OPC服务器的地址空间,甚至是目标节点可以不存在。

3、引用模型

在这里插入图片描述

类型定义节点
类型定义节点是服务器提供用于对象和变量的类型定义。
标准的节点类
● 节点类用于定义OPC UA地址空间中的节点
● 地址空间中模型的元素被称为节点,为节点分配节点类来代表对象模型的元素。
● 节点类源于通用的基本节点类。
● 首先定义基本节点类,然后定义用于组织地址空间的节点类,之后再定义用于代表对象的节点类。
● 代表对象的节点类分为三种:用于定义实例,定义实例的类型,以及定义数据类型。

标准的节点类有如下几种:
● 基本节点类:能够派生所有其他节点类。
● 对象节点类
● 对象类型节点类
● 变量节点类:定义数据变量
● 变量类型节点类:定义特性
● 方法节点类:定义方法,方法没有类型定义,可以绑定到对象上。
● 引用类型节点类:定义引用。
● 视图节点类:定义地址空间中节点子集。

在OPC UA中,最重要的节点类别是对象,变量和方法。

1. 节点类别为对象

节点类别为对象的节点用于(构成)地址空间结构。
● 对象不包含数据,使用变量为对象公开数值。
● 对象可用于分组管理对象、变量或方法(变量和方法总属于一个对象)。
● 对象也可以是一个事件通知器(设定EventNotifier属性),客户端可以订阅事件通知器来接收事件(事件在地址空间中是不可见的,被绑定到对象)。

2. 节点类别为变量

节点类别为变量的节点代表一个值。
● 值的数据类型取决于变量,类型的种类在BaseDataType中。
● 客户端可以对值进行读取,写入和订阅其变化。
● 变量节点最重要的属性是Value,它由DataType,ValueRank和ArrayDimensions属性定义,通过这三个属性,可以定义各种类型数据。

3. 节点类别为方法

节点类别为方法的节点,代表服务器中一个由客户端调用并返回结果的方法。
● 方法指定客户端使用的输入参数,并返回给客户端输出参数。
● 输入参数和输出参数作为方法的特性存在,是数据方法的变量。
● 客户端使用调用服务(Call)调用方法

OPC UA Demo

1、创建客户端连接

在这里插入图片描述

2、根据NodeId从server端读取数据

在这里插入图片描述

3、写入数据至server端

在这里插入图片描述

4、调用server端接口,获取数据

在这里插入图片描述

5、根据NodeId订阅server端数据变化

在这里插入图片描述

OPC UA 使用方式(集成OpcUaClinet服务)

1、读取、写入,调用方法----通过调用接口方式实现

在这里插入图片描述

2、订阅 ---- 通过注解方式实现

类注解:@OpcUaSubResolver
方法注解:@OpcUaSubscribe(namespaceIndex = x, identifier=“XXX”)
在这里插入图片描述

注:NodeId由namespaceIndex & identifier构造而成
如下图:NodeId的组成部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值