本教程的第四部分将介绍如何使用OPC UA客户端完成下列任务:

  • 浏览节点
  • 获取节点的属性
  • 读/写节点的值
  • 读取历史数据及事件
  • 创建数据订阅
  • 创建事件订阅
  • 响应可知悉条件
  • 搁置/取消搁置警报

浏览节点

OPC UA服务器使用地址空间存储数据。地址空间由包含下列元素的节点组成:
  • 文件夹
  • 属性
  • 通知器
  • 条件

节点ID为OPC UA服务器地址空间中的节点的ID。使用OPC UA客户端VI可浏览节点。浏览节点支持用户获取该节点所有子节点的ID、名称和类型。

使用对象

如需浏览节点,请使用下列对象:

前向浏览VI

步骤

浏览节点可获取节点的下列信息:
  • 引用类型
  • ID
  • 名称
  • 所有子节点的类型

如需浏览地址空间的节点,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 前向浏览 VI浏览ID为ns=2;s=Folder1的节点。
  2. 前向浏览VI浏览结果输出返回下列信息:
    • 引用类型
    • ID
    • 名称
    • 所有子节点的类型

获取节点的属性

使用OPC UA客户端VI可获取节点的属性。节点的属性包含节点的下列信息:
  • 名称
  • 类型
  • 数据类型
  • 权限等级
  • 说明

使用对象

如需获取节点的属性,请使用下列对象:

获取节点属性VI

步骤

如需获取节点的属性,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 获取节点属性 VI获取ID为ns=2;s=Folder1的节点的属性。
  2. 获取节点属性VI节点属性输出返回ID为ns=2;s=Folder1的节点的属性。属性包含节点的下列信息:
    • 名称
    • 类型
    • 数据类型
    • 权限等级
    • 说明

读/写节点的值

OPC UA服务器允许OPC UA客户端读取和更新OPC UA服务器地址空间中的数据。使用OPC UA客户端VI可在OPC UA服务器上执行下列操作:
  • 读取节点的值。
  • 向节点写入值。

使用对象

如需读取和写入节点的值,请使用下列对象:

读取多个VI 写入多个VI

步骤

通过读取和写入节点的值,可执行下列操作:
  • 读取节点的值。
  • 读取节点的时间标识。
  • 读取节点的状态。
  • 向节点写入值。

如需读取和写入节点的值,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 读取多个 VI读取ID为ns=2;s=Folder1.Item1.Property的节点的值、时间标识和状态。
  2. 写入多个 VI将值1234和状态Good写入ID为ns=2;s=Folder1.Item1.Property的节点。

读取历史数据和历史事件

使用OPC UA客户端VI中的访问历史VI可读取节点中的历史数据和通知器中的历史事件。历史数据是指为支持历史访问的节点所存储的时间序列数据。下列范例为历史数据:
  • 设备数据
  • 计算数据
  • 状态信息
  • 动态变化的系统数据
  • 诊断数据
历史事件是指存储在某些历史系统中的时间序列事件。下列范例为历史事件:
  • 通知
  • 系统警报
  • 操作员操作事件
  • 系统触发

使用对象

如需读取历史数据和历史事件,请使用下列对象:

读取多个历史数据VI 读取多个历史事件VI

步骤

如需读取历史数据和历史事件,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 读取多个历史数据 VI读取历史数据。每节点值数指定在时间范围内返回的值的最大数量。
  2. 读取多个历史事件 VI读取历史事件。

创建数据订阅

使用OPC UA客户端VI可创建OPC UA服务器节点的数据订阅。OPC UA服务器收集OPC UA客户端订阅节点上发生的数据更改。OPC UA服务器也会向OPC UA客户端发送有关更改的通知消息。

使用对象

如需创建数据订阅,请使用下列对象:

创建订阅VI 添加监视数据节点VI 删除监视节点VI 删除订阅VI

步骤

如需创建OPC UA服务器节点的数据订阅,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 如需创建OPC UA服务器节点的数据订阅并向订阅添加节点,请执行下列操作:
    • 创建订阅VI的订阅ID输出的输出端连线至添加监视数据节点VI的订阅ID输入的输入端。
  2. 添加监视数据节点VI的节点ID控件指定VI要添加至订阅的节点ID数组。
  3. 事件结构 处理数据更改事件。将创建订阅VI的OPC UA数据更改事件输出端连线至注册事件函数的事件源输入端。也可将注册事件函数的事件注册引用句柄输出端连线至事件结构事件动态注册接线端,以处理数据更改事件。在While循环内,事件结构连续获取数据更改事件。
  4. 数据更改输出端返回OPC UA服务器上的数据更新。
  5. (可选)删除监视节点VI从订阅中删除监视节点。要删除监视节点,可将创建订阅VI的订阅ID输出的输出端连线至删除监视节点VI的订阅ID输入的输入端。删除监视节点VI的节点ID控件指定VI要从订阅中删除的节点ID数组。
  6. (可选)删除订阅VI删除一个或多个订阅。删除订阅将从订阅中删除全部监视的节点。

创建事件订阅

使用OPC UA客户端VI可创建OPC UA服务器通知器的事件订阅。当OPC UA客户端订阅的通知器收到事件通知时,OPC UA服务器将收集这些事件。OPC UA服务器向OPC UA客户端发送通知消息。

使用对象

如需创建事件订阅,请使用下列对象:

创建事件订阅VI 添加监视事件节点VI 删除监视节点VI 删除订阅VI

步骤

如需创建OPC UA服务器通知器的事件订阅,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 如需创建事件订阅以监视OPC UA服务器的通知器,请执行下列操作:
    • 创建事件订阅VI的订阅ID输出的输出端连线至添加监视事件节点VI的订阅ID输入的输入端。
  2. 添加监视事件节点VI的节点ID控件指定节点ID数组。该节点ID数组对应于VI添加至事件订阅的通知器。
  3. 事件结构 处理数据更改事件。可将创建事件订阅VI的OPC UA条件事件输出端连线至注册事件函数的事件源输入端。也可将注册事件函数的事件注册引用句柄输出端连线至事件结构事件动态注册接线端,以处理数据更改事件。在While循环内,事件结构连续获取条件事件。
  4. 条件事件输出端返回OPC UA服务器的事件通知。
  5. (可选)删除监视节点VI从订阅中删除监视节点。要删除监视节点,可将创建订阅VI的订阅ID输出的输出端连线至删除监视节点VI的订阅ID输入的输入端。删除监视节点VI的节点ID控件指定VI要从订阅中删除的节点ID数组。
  6. (可选)删除订阅VI删除一个或多个订阅。删除订阅将从事件订阅中删除所有监视通知器。

响应可知悉条件

使用OPC UA客户端VI的警报与条件VI可响应可知悉条件。

使用对象

如需响应可知悉条件,请使用下列对象:

创建事件订阅VI 添加监视事件节点VI 响应可知悉条件VI

步骤

如需更改条件和警报的状态,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 响应可知悉条件 VI响应可知悉条件。
  2. 响应可知悉条件 VI确认可知悉条件。条件必须被知悉后方可被确认。

搁置/取消搁置警报

使用OPC UA客户端VI的警报与条件VI可搁置/取消搁置警报。

使用对象

如需搁置/取消搁置警报,请使用下列对象:

创建事件订阅VI 添加监视事件节点VI 搁置警报条件VI

步骤

如需搁置/取消搁置警报,请创建下列程序框图:

下面列出了上述程序框图的要点:

  1. 搁置警报条件 VI的定时搁置实例将警报搁置固定的时间段。搁置时间值设为0时,搁置警报条件VI将警报搁置的时间最长。警报处于搁置状态时,OPC UA客户端无法接收事件,除非警报被更改为取消搁置状态或非活动状态。
  2. 搁置警报条件VI的取消搁置实例可取消搁置警报。