产品定价 立即试用
IoT网关
如何将OPC-UA设备连接至ThingsBoard CE?
入门 文档 安装
目录

如何将OPC-UA设备连接至ThingsBoard CE?

概述

本指南将介绍如何使用ThingsBoard IoT Gateway将OPC-UA设备连接至ThingsBoard CE。 无论您是刚接触OPC-UA集成,还是希望优化现有配置,本指南都将帮助您快速上手。

介绍

ThingsBoard IoT Gateway是一款开源方案,在接入既有或第三方系统的物联网设备与ThingsBoard平台之间架起桥梁。它让无法直接与ThingsBoard通信的设备得以无缝集成,确保数据可实时采集、处理与展示。借助IoT Gateway,您可以连接多台设备、聚合遥测数据并集中管理配置。它支持灵活的部署场景,尤其适用于OPC-UA广泛使用的工业自动化、监控和智能能源系统。

什么是OPC-UA?

OPC统一架构(OPC-UA)是工业自动化中广泛采用的机器对机器通信协议。它提供与平台无关、安全可靠的框架,用于设备、服务器与应用之间的数据交换。与旧版OPC标准不同,OPC-UA支持现代技术、允许结构化数据建模,并为跨平台与跨网络的可扩展性设计。其稳定性与互操作性使其成为需要一致、实时、厂商中立通信的工业首选。

您将学到什么?

本指南将分步骤说明如何将OPC-UA设备集成至ThingsBoard CE。您将学会如何安装与配置ThingsBoard IoT Gateway、设置OPC-UA连接器并建立与OPC-UA服务器的连接。我们还将演示如何映射数据点、向ThingsBoard发送遥测。完成本指南后,您将建立起可在ThingsBoard CE中无缝监控与分析OPC-UA设备数据的运行环境。

前提条件

-在配置网关前,请确保ThingsBoard服务已运行。您可参考 安装指南手动安装ThingsBoard CE。 -继续前请确保本机已安装并正确配置Docker。若尚未安装,可从Docker官网下载并按您所用系统的安装指南完成安装。

OPC-UA服务器结构概览

本指南将使用Prosys OPC-UA仿真服务器作为示例OPC-UA设备。其访问地址为:

1
opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer
文档信息图标

我们将在网关连接器配置中使用 host.docker.internal 代替 0.0.0.0,以允许Docker容器访问宿主机的网络。

该仿真服务器提供了一组预定义节点,可用于模拟真实的工业设备。 其结构如下所示:

image

在本示例中,我们将重点关注以下节点:

  • Root.Objects.OPC-UA_PLC -包含所有相关数据点的父设备节点:
    • Root.Objects.OPC-UA_PLC.Humidity -表示湿度值。我们将此节点映射至ThingsBoard CE作为时序数据。
    • Root.Objects.OPC-UA_PLC.Temperature -表示温度值。我们也将此值作为时序数据发送至ThingsBoard CE。
    • Root.Objects.OPC-UA_PLC.Pressure -表示压力测量值,将作为时序数据存储在ThingsBoard CE中。
    • Root.Objects.OPC-UA_PLC.FirmwareInformation -包含设备固件元数据的子节点:
      • Root.Objects.OPC-UA_PLC.FirmwareInformation.Version -固件版本号。我们将其映射至ThingsBoard CE作为设备属性。
      • Root.Objects.OPC-UA_PLC.FirmwareInformation.UpdatedDate -固件最后更新时间。此值也将作为设备属性发送至ThingsBoard CE。

通过使用这些节点,您将了解如何从OPC-UA设备中提取实时遥测数据(Humidity、Temperature、Pressure)和静态属性(固件信息),然后将它们转发至ThingsBoard CE进行监控和可视化。

步骤1.在ThingsBoard上创建新的网关设备

首先,按照以下步骤向您的ThingsBoard实例添加一个网关设备:

要启动网关,请按照以下步骤操作:

运行网关Docker镜像后,您可以在终端中看到以下日志:

步骤2.添加新的OPC-UA连接器

接下来添加一个OPC-UA连接器,该连接器将从模拟OPC-UA设备读取前面描述的数据并发送到已创建的网关。要创建连接器,请按照以下步骤操作:

OPC-UA配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{
  "server": {
    "url": "opc.tcp://host.docker.internal:53530/OPCUA/SimulationServer",
    "timeoutInMillis": 5000,
    "scanPeriodInMillis": 3600000,
    "pollPeriodInMillis": 5000,
    "enableSubscriptions": false,
    "subCheckPeriodInMillis": 100,
    "showMap": false,
    "security": "Basic128Rsa15",
    "identity": {
      "type": "anonymous"
    }
  },
  "mapping": [
    {
      "deviceNodeSource": "path",
      "deviceNodePattern": "Root\\.Objects\\.OPC-UA_PLC",
      "deviceInfo": {
        "deviceNameExpression": "OPC-UA PLC",
        "deviceNameExpressionSource": "constant",
        "deviceProfileExpressionSource": "constant",
        "deviceProfileExpression": "default"
      },
      "attributes": [
        {
          "key": "Firmware Version",
          "type": "path",
          "value": "${FirmwareInformation\\.Version}"
        },
        {
          "key": "Updated",
          "type": "path",
          "value": "${FirmwareInformation\\.UpdatedDate}"
        }
      ],
      "timeseries": [
        {
          "key": "Humidity",
          "type": "path",
          "value": "${Humidity}"
        },
        {
          "key": "Temperature",
          "type": "path",
          "value": "${Temperature}"
        },
        {
          "key": "Pressure",
          "type": "path",
          "value": "${Pressure}"
        }
      ],
      "rpc_methods": [],
      "attributes_updates": []
    }
  ]
}

下面将连接器配置拆解为各个部分并逐一说明:

Server -定义网关如何连接和与OPC-UA服务器交互。其中对我们重要的参数如下:

  • url -指定服务器的TCP端点。此处指向本地Prosys仿真服务器opc.tcp://host.docker.internal:53530/OPCUA/SimulationServer
  • pollPeriodInMillis -设置在未使用订阅时轮询节点值的间隔(本示例中为每5秒)。
  • security -设置OPC-UA安全策略。可选项包括Basic128Rsa15Basic256Basic256Sha256,取决于OPC-UA服务器的设置。
  • identity -定义网关向服务器的认证方式:此处为简化起见使用匿名认证。

Mapping -定义如何将OPC-UA服务器的节点数据映射至ThingsBoard设备:

  • deviceNodeSourcedeviceNodePattern -源类型为path,模式匹配代表我们设备的根节点(Root.Objects.OPC-UA_PLC)。
  • deviceInfo -定义ThingsBoard设备名称和设备配置文件。本示例中使用常量值。
  • attributes -这些值将推送至ThingsBoard属性,通常为静态或不常变化的数据。我们使用相对路径配置属性数据映射。
  • timeseries -这些测量读数将显示在设备页面的”Latest Telemetry“选项卡下。我们同样使用相对路径配置时序数据映射。
文档信息图标

关于OPC-UA连接器的更多信息,请参阅此处

步骤3.查看设备数据

要查看从网关上传的数据,请按照以下步骤操作:

总结

本指南演示了如何使用ThingsBoard IoT Gateway将OPC-UA设备连接至ThingsBoard CE。通过配置网关、设置OPC-UA连接器,并映射遥测数据(如湿度、温度和压力)和设备属性(如固件版本和更新日期),我们建立了从OPC-UA服务器到ThingsBoard的完整数据流。

借助此配置,您现在可以实时监控设备数据、在仪表板上进行可视化,并利用ThingsBoard的强大功能(如告警、规则链)来构建高级物联网方案。同样的方法可以扩展到真实的工业OPC-UA设备,实现系统与现代物联网平台的无缝集成。

使用Prosys仿真服务器的本示例只是一个开始。您现在可以根据自己的设备调整配置、扩展到多台服务器,并根据项目需求自定义数据映射。

下一步

探索与ThingsBoard主要功能相关的指南: