概述
本文档将帮助您为ThingsBoard物联网网关设置OPC-UA连接器。我们将用简单的术语解释配置参数,使您易于理解和操作。OPC-UA(开放平台通信统一架构)是一种用于工业自动化的机器间通信协议,该连接器可以实现与ThingsBoard平台的无缝集成。使用通用配置 来启用此连接器。
此外,如果您是ThingsBoard物联网网关的新用户,建议您阅读入门指南 以了解ThingsBoard物联网网关的基本概念及其与OPC-UA协议的工作方式。
该连接器可以通过用户界面表单进行配置,帮助您建立与OPC-UA服务器的连接、采集数据并向节点写入数据。让我们来看看所有可用的设置,并逐一进行清晰的解释。这将帮助您了解一切是如何工作的。
请注意: 要访问网关的实际UI——您需要在添加连接器之前已连接网关。否则,您将看到旧版UI。
配置模式
OPC-UA连接器可以在两种模式下进行配置:基础模式 和高级模式 。
基础模式 专为ThingsBoard物联网网关新用户设计,允许以最少的配置快速设置连接器。它提供了一个包含基本设置的简化界面。
高级模式 适用于需要对配置进行更多控制的经验丰富的用户。它提供了额外的选项和灵活性,适用于高级用例。
请注意: 如果您是物联网网关的新用户,请使用”基础”配置模式。如果您熟悉物联网网关的配置, 可以使用”高级”配置模式。
您可以使用配置页面顶部的切换按钮在这些模式之间切换:
通用设置
本配置部分包含 connector 的通用设置,例如:
Name - 用于日志和保存到持久化设备的 connector 名称;
Logs configuration(日志配置) - 本地和远程日志设置:
Enable remote logging - 为 connector 启用远程日志;
Logging level - 本地和远程日志级别:NONE、ERROR、CRITICAL、WARNING、INFO、DEBUG、TRACE;
Report strategy - 向 ThingsBoard 发送数据的策略:
Report period - 向 ThingsBoard 发送数据的周期(毫秒);
Type - report strategy 类型:
On report period - 在上报周期后向 ThingsBoard 发送数据;
On value change - 值变化时向 ThingsBoard 发送数据;
On value change or report period - 值变化或到达上报周期时向 ThingsBoard 发送数据;
On received - 从设备接收数据后向 ThingsBoard 发送数据(默认策略)。
更多关于 report strategy 的信息请参见此处 。
设置中的”通用”选项卡在基础配置和高级配置中相同。
连接设置
连接设置定义了OPC-UA连接器如何与OPC-UA服务器建立和维护通信。这些设置涵盖了基本连接参数、服务器发现行为、安全配置和身份认证模式。
服务器
本小节指定目标OPC-UA服务器以及网关与其交互的方式。它包括服务器的URL、超时设置、扫描间隔,以及使用订阅或轮询来监控数据节点的选项。
此配置部分包含 OPC-UA 服务器连接设置,例如:
Server endpoint url (服务器端点 URL)- OPC-UA 服务器的主机名或 IP 地址;
Timeout in milliseconds (超时毫秒数)- 连接 OPC-UA 服务器的超时时间(毫秒);
Security policy (安全策略)- 安全策略(Basic128Rsa15 、Basic256 、Basic256Sha256 );
Scan period in milliseconds (扫描周期毫秒数)- 重新扫描服务器的周期(毫秒);
Poll period (轮询周期)- 轮询服务器的周期(毫秒);
Subscription check period in milliseconds (订阅检查周期毫秒数)- 检查 OPC-UA 服务器中 subscription 的周期;
Enable subscription (启用订阅)- 若为 true 则网关订阅相关节点并等待数据更新,若为 false 则每 scanPeriodInMillis 重新扫描 OPC-UA 服务器;
Show map (显示映射)- 扫描时是否显示节点:true 或 false 。
安全
OPC-UA 服务器连接提供三种安全类型:
Anonymous (匿名)- 最简单的 identity 选项;
Basic (基本)- 使用此选项可提供用户名和密码以连接 OPC-UA 服务器;
Certificates (证书)- 最安全的 identity 选项。使用此选项还可提供网关所在机器上证书、私钥和 CA 证书的路径。可选地,可提供用户名/密码对。
Anonymous (匿名)- 最简单的 identity 选项;
Basic (基本)- 使用此选项可提供用户名和密码以连接 OPC-UA 服务器;
Certificates (证书)- 最安全的 identity 选项。使用此选项还可提供网关所在机器上证书、私钥和 CA 证书的路径。可选地,可提供用户名/密码对。
数据映射
数据映射是一个允许您配置OPC-UA服务器中的哪个节点将分配给ThingsBoard中哪个设备的部分。
您还可以使用此部分来配置哪些数据将作为设备属性或遥测发送。
数据映射包含灵活设备和数据管理所需的所有设置。
以下参数用于配置设备的基础节点、名称和配置文件,以及上报策略:
Device node -设备的基础节点。设备名称、配置文件、属性和遥测的路径可以相对于此节点指定。
Device name -设备在ThingsBoard中的名称。可以指定为节点的路径或标识符,也可以指定为静态值(有关类型的更多信息,请参阅附加信息 部分)。
Device profile -设备在ThingsBoard中的配置文件。可以指定为节点的路径或标识符,也可以指定为静态值(有关类型的更多信息,请参阅附加信息 部分)。
Report strategy -向ThingsBoard发送数据的策略:
Report period -向ThingsBoard发送数据的周期(毫秒);
Type -上报策略类型:
On report period -在上报周期后向ThingsBoard发送数据;
On value change -当值发生变化时向ThingsBoard发送数据;
On value change or report period -当值发生变化或上报周期到达后向ThingsBoard发送数据;
On received -从设备接收到数据后向ThingsBoard发送数据(默认策略)。
要添加新设备,请执行以下步骤:
有关上报策略的更多信息,请参阅此处 。
所有配置参数列表及其详细描述可以在高级配置 部分找到。
更多使用示例可以在使用示例 部分找到。
“属性”和”时间序列”子节
本小节中的配置提供了从OPC-UA节点处理数据的设置。这些设置将在ThingsBoard平台实例中被解释为设备的属性/时间序列。
以下参数用于配置设备属性和时间序列:
Key - ThingsBoard中属性/时间序列的键。可以指定为静态值。
Type - Value 字段中表达式的类型(有关类型的更多信息,请参阅附加信息 部分):
Path -可以是OPC-UA服务器中节点的绝对路径或相对路径。值将从指定路径的节点获取。
Identifier -可以是OPC-UA服务器中节点的数字、字符串、字节串或GUID标识符。值将从指定标识符的节点获取。
Constant -将作为属性/时间序列键发送到设备的静态值。
Value -将发送到平台设备的属性/时间序列的值。应根据所选类型(Path、Identifier或Constant)进行指定。
所有配置参数列表及其详细描述可以在高级配置 部分找到。
更多使用示例可以在使用示例 部分找到。
To add new time series or attribute key, follow these steps:
Click the “pencil ” icon in the “Attributes ” section to add new attribute key;
Click on “Add attribute ” in the opened window;
Enter the “Key ” field, select the “Type ” (can be path , identifier or constant), enter “Value ” and click “Apply ” button;
Now click on the “pencil ” icon in the “Time series ” section to add new time series key;
Click on “Add time series ” in the opened window;
Enter the “Key ” field, select the “Type ” (can be path , identifier or constant), enter “Value ” and click “Apply ” button.
Click the “pencil ” icon in the “Attributes ” section to add new attribute key;
Click on “Add attribute ” in the opened window;
Enter the “Key ” field, select the “Type ” (can be path , identifier or constant), enter “Value ” and click “Apply ” button;
Now click on the “pencil ” icon in the “Time series ” section to add new time series key;
Click on “Add time series ” in the opened window;
Enter the “Key ” field, select the “Type ” (can be path , identifier or constant), enter “Value ” and click “Apply ” button.
您可为每个 time series 或 attribute 启用特定的上报策略。该策略定义数据发送到 ThingsBoard 服务器的频率。可用策略如下:
On report period (按上报周期)- 在上报周期后向 ThingsBoard 发送数据;
On value change (按值变化)- 当值变化时向 ThingsBoard 发送数据;
On value change or report period (按值变化或上报周期)- 当值变化或在上报周期后向 ThingsBoard 发送数据;
On received (按接收)- 从设备接收数据后向 ThingsBoard 发送数据(默认策略)。
有关 report strategy 的更多信息请参见此处 。
使用示例
设备名和配置文件可根据节点值动态设置。本示例使用绝对路径 指定设备名和配置文件。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注节点 “DeviceModelName ” 和 “DeviceSeries “。将用它们分别设置设备名和配置文件。
在 OPC-UA 连接器中配置设备名和配置文件。按以下步骤操作:
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。首先配置父(或设备)节点。点击“+ 添加映射 ”按钮。
在打开的窗口中,“设备节点 ”填 Root\.Objects\.DemoDevice,“来源 ”选“Path ”。这是要创建设备的父节点的绝对路径。
“名称 ”填 ${Root\.Objects\.DemoDeviceInfo\.DeviceModelName},“来源 ”选“Path ”。这是包含设备名的节点的绝对路径。
“配置文件名称 ”填 ${Root\.Objects\.DemoDeviceInfo\.DeviceSeries},“来源 ”选“Path ”。这是包含设备配置的节点的绝对路径。
还需至少添加一个属性/时序数据,因为连接器不会添加无可读数据的设备(可使用任意预装的 Prosys OPC-UA 仿真服务器节点)。点击“属性 ”旁的“铅笔 ”图标。
在打开的窗口中,点击“添加属性 ”按钮并按对应图片填写字段。
记得点击“保存 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。首先配置父(或设备)节点。点击“+ 添加映射 ”按钮。
在打开的窗口中,“设备节点 ”填 Root\.Objects\.DemoDevice,“来源 ”选“Path ”。这是要创建设备的父节点的绝对路径。
“名称 ”填 ${Root\.Objects\.DemoDeviceInfo\.DeviceModelName},“来源 ”选“Path ”。这是包含设备名的节点的绝对路径。
“配置文件名称 ”填 ${Root\.Objects\.DemoDeviceInfo\.DeviceSeries},“来源 ”选“Path ”。这是包含设备配置的节点的绝对路径。
还需至少添加一个属性/时序数据,因为连接器不会添加无可读数据的设备(可使用任意预装的 Prosys OPC-UA 仿真服务器节点)。点击“属性 ”旁的“铅笔 ”图标。
在打开的窗口中,点击“添加属性 ”按钮并按对应图片填写字段。
记得点击“保存 ”按钮保存更改。
可以检查设备名和配置文件是否正确设置。进入“实体 ”→“设备 ”,设备名应为 Demo Device,配置文件为 Demo Series。
若使用高级配置模式并需用绝对路径设置设备名和配置文件,可使用以下配置:
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
{
"name" : "OPC-UA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0: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 \\ .DemoDevice" ,
"deviceInfo" : {
"deviceNameExpression" : "${Root \\ .Objects \\ .DemoDeviceInfo \\ .DeviceModelName}" ,
"deviceNameExpressionSource" : "path" ,
"deviceProfileExpressionSource" : "path" ,
"deviceProfileExpression" : "${Root \\ .Objects \\ .DemoDeviceInfo \\ .DeviceSeries}"
},
"attributes" : [
{
"key" : "some_key" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1001}"
}
],
"timeseries" : [],
"rpc_methods" : [],
"attributes_updates" : []
}
]
}
设备名和配置文件可根据节点值动态设置。本示例使用相对路径 指定设备名和配置文件。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注节点 “DeviceModelName ” 和 “DeviceSeries “。将用它们分别设置设备名和配置文件。
在 OPC-UA 连接器中配置设备名和配置文件。按以下步骤操作:
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。首先配置父(或设备)节点。点击“+ 添加映射 ”按钮。
在打开的窗口中,“设备节点”填 Root\.Objects\.DemoDevice,“来源 ”选“Path ”。这是要创建设备的父节点的绝对路径。
“名称 ”填 ${DeviceModelName},“来源 ”选“Path ”。这是包含设备名的节点的相对路径。
“配置文件名称 ”填 ${DeviceSeries},“来源 ”选“Path ”。这是包含设备配置的节点的相对路径。
还需至少添加一个属性/时序数据,因为连接器不会添加无可读数据的设备(可使用任意预装的 Prosys OPC-UA 仿真服务器节点)。点击“属性 ”旁的“铅笔 ”图标。
在打开的窗口中,点击“添加属性 ”按钮并按对应图片填写字段。
记得点击“保存 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。首先配置父(或设备)节点。点击“+ 添加映射 ”按钮。
在打开的窗口中,“设备节点”填 Root\.Objects\.DemoDevice,“来源 ”选“Path ”。这是要创建设备的父节点的绝对路径。
“名称 ”填 ${DeviceModelName},“来源 ”选“Path ”。这是包含设备名的节点的相对路径。
“配置文件名称 ”填 ${DeviceSeries},“来源 ”选“Path ”。这是包含设备配置的节点的相对路径。
还需至少添加一个属性/时序数据,因为连接器不会添加无可读数据的设备(可使用任意预装的 Prosys OPC-UA 仿真服务器节点)。点击“属性 ”旁的“铅笔 ”图标。
在打开的窗口中,点击“添加属性 ”按钮并按对应图片填写字段。
记得点击“保存 ”按钮保存更改。
可以检查设备名和配置文件是否正确设置。进入“实体 ”→“设备 ”,设备名应为 Demo Device,配置文件为 Demo Series。
若使用高级配置模式并需用相对路径设置设备名和配置文件,可使用以下配置:
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
{
"name" : "OPCUA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0: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 \\ .DemoDevice" ,
"deviceInfo" : {
"deviceNameExpression" : "${DeviceModelName}" ,
"deviceNameExpressionSource" : "path" ,
"deviceProfileExpressionSource" : "path" ,
"deviceProfileExpression" : "${DeviceSeries}"
},
"attributes" : [
{
"key" : "some_key" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1001}"
}
],
"timeseries" : [],
"rpc_methods" : [],
"attributes_updates" : []
}
]
}
设备名和配置文件可根据节点值动态设置。本示例使用标识符指定设备名和配置文件。Identifier 可为 OPC-UA 服务器中节点的数字 、字符串 、字节串 或 GUID 标识符。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注节点 “DeviceModelName “(标识符 ns=3;i=1014)和 “DeviceSeries “(标识符 ns=3;i=1015)。将用它们分别设置设备名和配置文件。
在 OPC-UA 连接器中配置设备名和配置文件。按以下步骤操作:
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。首先配置父(或设备)节点。点击“+ 添加映射 ”按钮。
在打开的窗口中,“设备节点 ”填 Root\.Objects\.DemoDevice,“来源 ”选“Path ”。这是要创建设备的父节点的绝对路径。
“名称 ”填 ${ns=3;i=1014},“来源 ”选“Identifier ”。
“配置文件名称 ”填 ${ns=3;i=1015},“来源 ”选“Identifier ”。这是包含设备配置的节点的绝对路径。
还需至少添加一个属性/时序数据,因为连接器不会添加无可读数据的设备(可使用任意预装的 Prosys OPC-UA 仿真服务器节点)。点击“属性 ”旁的“铅笔 ”图标。
在打开的窗口中,点击“添加属性 ”按钮并按对应图片填写字段。
记得点击“保存 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。首先配置父(或设备)节点。点击“+ 添加映射 ”按钮。
在打开的窗口中,“设备节点 ”填 Root\.Objects\.DemoDevice,“来源 ”选“Path ”。这是要创建设备的父节点的绝对路径。
“名称 ”填 ${ns=3;i=1014},“来源 ”选“Identifier ”。
“配置文件名称 ”填 ${ns=3;i=1015},“来源 ”选“Identifier ”。这是包含设备配置的节点的绝对路径。
还需至少添加一个属性/时序数据,因为连接器不会添加无可读数据的设备(可使用任意预装的 Prosys OPC-UA 仿真服务器节点)。点击“属性 ”旁的“铅笔 ”图标。
在打开的窗口中,点击“添加属性 ”按钮并按对应图片填写字段。
记得点击“保存 ”按钮保存更改。
可以检查设备名和配置文件是否正确设置。进入“实体 ”→“设备 ”,设备名应为 Demo Device,配置文件为 Demo Series。
若使用高级配置模式并需用标识符设置设备名和配置文件,可使用以下配置:
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
{
"name" : "OPCUA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0: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 \\ .DemoDevice" ,
"deviceInfo" : {
"deviceNameExpression" : "${ns=3;i=1014}" ,
"deviceNameExpressionSource" : "identifier" ,
"deviceProfileExpressionSource" : "identifier" ,
"deviceProfileExpression" : "${ns=3;i=1015}"
},
"attributes" : [
{
"key" : "some_key" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1003}"
}
],
"timeseries" : [],
"rpc_methods" : [],
"attributes_updates" : []
}
]
}
在 OPC UA 连接器中,可使用相对路径 访问属性和时序数据。
这样无需指定节点的完整路径即可获取数据。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注节点 “Humidity “,使用该节点获取湿度数据。
在 OPC-UA 连接器中配置湿度数据。按以下步骤操作:
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Path ”,“值 ”填 ${Humidity}。这是包含湿度数据的节点的相对路径。
记得点击“应用 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Path ”,“值 ”填 ${Humidity}。这是包含湿度数据的节点的相对路径。
记得点击“应用 ”按钮保存更改。
可以检查湿度数据是否发送正确。进入“实体 ”→“设备 ”,选择已创建设备,在“时序数据 ”部分可看到湿度数据:
若使用高级配置模式并需用相对路径设置湿度数据,可使用以下配置:
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
{
"name" : "OPCUA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0: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 \\ .DemoDevice" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpressionSource" : "constant" ,
"deviceProfileExpression" : "default"
},
"attributes" : [],
"timeseries" : [
{
"key" : "Humidity" ,
"type" : "path" ,
"value" : "${Humidity}"
}
],
"rpc_methods" : [],
"attributes_updates" : []
}
]
}
在 OPC UA 连接器中,可使用相对路径 访问属性和时序数据。
这样无需指定节点的完整路径即可获取数据。此外,可为 “设备节点 ” 使用标识符 。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注节点 “Humidity “,使用该节点获取湿度数据。
使用 相对路径 在 OPC-UA 连接器中配置湿度数据。按以下步骤操作:
在左侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Path ”,“值 ”填 ${Humidity}。这是包含湿度数据的节点的相对路径。
记得点击“应用 ”按钮保存更改。
在左侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Path ”,“值 ”填 ${Humidity}。这是包含湿度数据的节点的相对路径。
记得点击“应用 ”按钮保存更改。
可以检查湿度数据是否发送正确。进入“实体 ”→“设备 ”,选择已创建设备,在“时序数据 ”部分可看到湿度数据:
若使用高级配置模式并需用相对路径设置湿度数据,可使用以下配置:
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
{
"name" : "OPCUA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"pollPeriodInMillis" : 5000 ,
"enableSubscriptions" : false ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
}
},
"mapping" : [
{
"deviceNodeSource" : "identifier" ,
"deviceNodePattern" : "ns=3;i=1008" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpressionSource" : "constant" ,
"deviceProfileExpression" : "default"
},
"attributes" : [],
"timeseries" : [
{
"key" : "Humidity" ,
"type" : "path" ,
"value" : "${Humidity}"
}
],
"rpc_methods" : [],
"attributes_updates" : []
}
]
}
在 OPC UA 连接器中,可使用绝对路径 访问属性和时序数据。
可从与父(设备)节点无关联的节点获取数据。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注节点 “Humidity “,使用该节点获取湿度数据。
在 OPC-UA 连接器中配置湿度数据。按以下步骤操作:
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Path ”,“值 ”填 ${Root\.Objects\.DemoDevice\.Humidity}。这是包含湿度数据的节点的绝对路径。
记得点击“应用 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Path ”,“值 ”填 ${Root\.Objects\.DemoDevice\.Humidity}。这是包含湿度数据的节点的绝对路径。
记得点击“应用 ”按钮保存更改。
可以检查湿度数据是否发送正确。进入“实体 ”→“设备 ”,选择已创建设备,在“时序数据 ”部分可看到湿度数据:
若使用高级配置模式并需用绝对路径设置湿度数据,可使用以下配置:
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
{
"name" : "OPCUA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0: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 \\ .DemoDevice" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpressionSource" : "constant" ,
"deviceProfileExpression" : "default"
},
"attributes" : [],
"timeseries" : [
{
"key" : "Humidity" ,
"type" : "path" ,
"value" : "${Root \\ .Objects \\ .DemoDevice \\ .Humidity}"
}
],
"rpc_methods" : [],
"attributes_updates" : []
}
]
}
在 OPC UA 连接器中,可使用标识符 访问属性和时序数据。
可通过标识符从与父(设备)节点无关联的节点获取数据。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注标识符为 ns=3;i=1011 的节点 “Humidity “。使用该节点获取湿度数据。
在 OPC-UA 连接器中配置湿度数据。按以下步骤操作:
在左侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Identifier ”,“值 ”填 ${ns=3;i=1011}。这是包含湿度数据的节点的标识符。
记得点击“应用 ”按钮保存更改。
在左侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择 OPC-UA 连接器,点击“数据映射 ”标签。选择要添加时序数据的数据映射(若不清楚如何添加新设备,请参阅入门指南 或本指南的数据映射 及相应示例)。
在打开的数据映射窗口中,点击“时序数据 ”或“属性 ”旁的“铅笔 ”图标。
点击“添加时序数据 ”按钮。“键 ”填 Humidity,“类型 ”选“Identifier ”,“值 ”填 ${ns=3;i=1011}。这是包含湿度数据的节点的标识符。
记得点击“应用 ”按钮保存更改。
可以检查湿度数据是否发送正确。进入“实体 ”→“设备 ”,选择已创建设备,在“时序数据 ”部分可看到湿度数据:
若使用高级配置模式并需用标识符设置湿度数据,可使用以下配置:
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
{
"name" : "OPCUA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0: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 \\ .DemoDevice" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpressionSource" : "constant" ,
"deviceProfileExpression" : "default"
},
"attributes" : [],
"timeseries" : [
{
"key" : "Humidity" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1011}"
}
],
"rpc_methods" : [],
"attributes_updates" : []
}
]
}
请求映射
请求映射部分允许您配置ThingsBoard平台实例如何与设备交互。即平台如何从设备请求数据、如何更新设备属性,以及如何向设备发送RPC命令。
OPC-UA连接器支持以下请求映射:
Attribute updates -允许从ThingsBoard平台实例更新设备节点值。
RPC methods -允许向设备发送RPC命令。使用RPC方法,您可以获取或设置OPC-UA节点的值。
OPC-UA连接器支持不同类型的RPC方法,例如:
Reserved GET/SET methods -这些方法会自动为每个属性和时间序列参数创建。
您可以使用它们来获取或设置OPC-UA节点的值。
RPC method to connector -此方法允许您从ThingsBoard物联网网关UI向连接器发送命令。
命令将由连接器处理,结果将发送回ThingsBoard平台实例。
Configurable RPC methods to device -这些方法允许您在连接器配置中配置可发送到设备的自定义RPC命令。
“属性更新”子节
本小节包含来自ThingsBoard平台实例的属性更新请求的配置。
ThingsBoard允许配置设备属性并从设备应用程序获取部分属性。您可以将其视为设备的远程配置,使它们能够从ThingsBoard请求共享属性。更多详细信息请参阅用户指南 。
以下参数用于配置属性更新:
Key - ThingsBoard中共享属性的键。可以指定为静态值。
Type - Value 字段中表达式的类型(有关类型的更多信息,请参阅附加信息 部分):
Path -可以是OPC-UA服务器中节点的绝对路径或相对路径。值将从指定路径的节点获取。
Identifier -可以是OPC-UA服务器中节点的数字、字符串、字节串或GUID标识符。值将从指定标识符的节点获取。
Constant -将发送到设备的静态值。
Value -共享属性值将写入的节点。应根据所选类型(Path、Identifier或Constant)进行指定。
所有配置参数列表及其详细描述可以在高级配置 部分找到。
更多使用示例可以在使用示例 部分找到。
要添加新的 attribute 更新,请按以下步骤操作:
在 “Attribute updates ” 部分点击 “pencil “(铅笔)图标以添加新的 attribute 更新;
在打开的窗口中点击 “Add attribute update “(添加 attribute 更新);
填写 “Key ” 字段,选择 “Type “(可为 path 、identifier 或 constant),填写 “Value ” 并点击 “Apply ” 按钮。
在 “Attribute updates ” 部分点击 “pencil “(铅笔)图标以添加新的 attribute 更新;
在打开的窗口中点击 “Add attribute update “(添加 attribute 更新);
填写 “Key ” 字段,选择 “Type “(可为 path 、identifier 或 constant),填写 “Value ” 并点击 “Apply ” 按钮。
“RPC方法”子节
ThingsBoard允许向直接连接到ThingsBoard或通过网关连接的设备发送RPC命令 。
以下参数用于配置RPC方法:
Method name - OPC-UA服务器上的方法名称。
Arguments -将传递给OPC-UA服务器方法的参数列表。
所有配置参数列表及其详细描述可以在高级配置 部分找到。
更多使用示例可以在使用示例 部分找到。
要添加新的 RPC 方法,请按以下步骤操作:
在 “RPC methods ” 部分点击 “pencil “(铅笔)图标以添加新的 RPC 方法;
在打开的窗口中点击 “Add method “(添加方法);
填写 “Method name “(方法名)字段。若方法有参数,点击 “Add argument “(添加参数)按钮并选择参数类型。填写 “Value ” 字段并点击 “Apply ” 按钮。
在 “RPC methods ” 部分点击 “pencil “(铅笔)图标以添加新的 RPC 方法;
在打开的窗口中点击 “Add method “(添加方法);
填写 “Method name “(方法名)字段。若方法有参数,点击 “Add argument “(添加参数)按钮并选择参数类型。填写 “Value ” 字段并点击 “Apply ” 按钮。
此外,每个遥测和属性参数都内置了GET和SET RPC方法,因此您无需手动配置。请参阅指南 。
使用示例
Attribute 更新允许您更新 OPC-UA 服务器中的节点值。
您可在设备配置页面的 “Attribute updates ” 部分添加新的 attribute 更新。
我们将使用 Prosys OPC-UA Simulation Server 作为示例,其地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。
服务器结构如下:
示例:继电器控制(相对路径)
我们关注 “Relay ” 节点,已将其添加为 key 为 relay 的 telemetry 参数。我们使用 telemetry 以便后续方便查看通过 attribute 更新修改的值是否已生效。您也可在设备配置中添加此 telemetry 数据点,或使用保留的 get RPC 方法检查节点值。
让我们在配置中添加 attribute 更新。请按以下步骤操作:
在右侧边栏中进入 “Entities ” → “Gateways ” 并选择您的网关。
在右侧菜单中点击 “Connectors configuration “(连接器配置)按钮。
选择已创建的 OPC-UA connector,点击 “Data mapping ” 选项卡。请确保已配置并连接设备(若不知如何操作,请参阅入门指南 或本指南的 Connection settings 和 Data mapping 部分)。点击要配置 attribute 更新的设备旁的 “Pencil “(铅笔)图标。
向下滚动至 “Attribute updates ” 部分,点击 “Pencil ” 图标编辑 attribute 更新。
点击 “Add attribute update ” 按钮。本示例中我们将添加 relay attribute 更新,在 “Key ” 字段输入 relay,将 “Type ” 选为 Path ,在 “Value ” 字段输入 ${Relay}。这是要更新的设备节点的相对路径。
请记得点击 “Apply ” 按钮保存更改。
在右侧边栏中进入 “Entities ” → “Gateways ” 并选择您的网关。
在右侧菜单中点击 “Connectors configuration “(连接器配置)按钮。
选择已创建的 OPC-UA connector,点击 “Data mapping ” 选项卡。请确保已配置并连接设备(若不知如何操作,请参阅入门指南 或本指南的 Connection settings 和 Data mapping 部分)。点击要配置 attribute 更新的设备旁的 “Pencil “(铅笔)图标。
向下滚动至 “Attribute updates ” 部分,点击 “Pencil ” 图标编辑 attribute 更新。
点击 “Add attribute update ” 按钮。本示例中我们将添加 relay attribute 更新,在 “Key ” 字段输入 relay,将 “Type ” 选为 Path ,在 “Value ” 字段输入 ${Relay}。这是要更新的设备节点的相对路径。
请记得点击 “Apply ” 按钮保存更改。
现在我们可以检查 attribute 更新是否生效。进入 “Entities ” → “Devices ” → 选择已创建设备 → “Attributes ” 选项卡 →
选择 “Shared attributes ” → 点击 “+ ” 图标并添加类型为 “Boolean “、值为 “True ” 的 relay attribute。
现在检查 relay 节点的值。在所选设备中进入 “Last telemetry ” 选项卡,查看 relay telemetry 的值。由于我们将 shared attribute 设为 true,应显示为 true。
尝试将 relay shared attribute 的值改为 false。几秒钟后,您应能看到 relay telemetry 值已变为 false,说明 attribute 更新已正确生效。
上述示例的 OPC-UA connector 完整配置如下:
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
{
"server" : {
"url" : "opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"enableSubscriptions" : true ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
},
"pollPeriodInMillis" : 5000
},
"mapping" : [
{
"deviceNodePattern" : "Root \\ .Objects \\ .DemoDevice" ,
"deviceNodeSource" : "path" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpression" : "default" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"attributes_updates" : [
{
"key" : "relay" ,
"type" : "path" ,
"value" : "${Relay}"
}
],
"timeseries" : [
{
"key" : "relay" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1012}"
}
],
"rpc_methods" : []
}
]
}
属性更新允许更新 OPC-UA 服务器中的节点值。
可在设备配置页的“属性更新 ”部分添加新的属性更新。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。
服务器结构如下:
示例:风扇转速(绝对路径)
我们关注节点 “FanSpeed “,以键 fan_speed 将其添加为遥测参数。使用遥测便于后续通过属性更新查看值是否已变更。
您也可在设备配置中添加该遥测数据点,或使用保留 get 方法检查节点值。
按以下步骤添加属性更新配置:
在左侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南 或本指南的连接设置 和数据映射 )。点击要配置属性更新的设备旁的“铅笔 ”图标。
向下滚动至“属性更新 ”部分,点击“铅笔 ”图标编辑属性更新。
点击“添加属性更新 ”按钮。此处添加 fan_speed 属性更新,故在“键 ”中填 fan_speed,“类型 ”选 Path ,“值 ”填 ${Root\.Objects\.DemoDeviceInfo\.FanSpeed}。这是要更新的 OPC-UA 服务器节点的绝对路径。
记得点击“应用 ”按钮保存更改。
在左侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南 或本指南的连接设置 和数据映射 )。点击要配置属性更新的设备旁的“铅笔 ”图标。
向下滚动至“属性更新 ”部分,点击“铅笔 ”图标编辑属性更新。
点击“添加属性更新 ”按钮。此处添加 fan_speed 属性更新,故在“键 ”中填 fan_speed,“类型 ”选 Path ,“值 ”填 ${Root\.Objects\.DemoDeviceInfo\.FanSpeed}。这是要更新的 OPC-UA 服务器节点的绝对路径。
记得点击“应用 ”按钮保存更改。
可以检查属性更新是否生效。进入“设备 ”→选择已创建设备→“属性 ”标签→
选择“共享属性 ”→点击“+ ”图标,添加 fan_speed 属性,类型为“整数 ”,值设为“90 ”。
在所选设备的“最新遥测 ”标签中检查风扇转速节点的值。因共享属性已设为 90,fan_speed 遥测值应为 90。
尝试将 fan_speed 共享属性的值改为 30。几秒后,fan_speed 遥测值应变为 30,说明属性更新已正确生效。
上述示例的 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
{
"server" : {
"url" : "opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"enableSubscriptions" : true ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
},
"pollPeriodInMillis" : 5000
},
"mapping" : [
{
"deviceNodePattern" : "Root \\ .Objects \\ .DemoDevice" ,
"deviceNodeSource" : "path" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpression" : "default" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"attributes_updates" : [
{
"key" : "fan_speed" ,
"type" : "path" ,
"value" : "${Root \\ .Objects \\ .DemoDeviceInfo \\ .FanSpeed}"
}
],
"timeseries" : [
{
"key" : "fan_speed" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1017}"
}
],
"rpc_methods" : []
}
]
}
属性更新允许更新 OPC-UA 服务器中的节点值。
可在设备配置页的“属性更新 ”部分添加新的属性更新。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。
服务器结构如下:
示例:文本消息编辑(标识符)
我们关注节点 “TextMessage “,以键 text_message 将其添加为遥测参数。
使用遥测便于后续通过属性更新查看值是否已变更。
您也可在设备配置中添加该遥测数据点,或使用保留 get 方法检查节点值。
按以下步骤添加属性更新配置:
进入“实体 ”→“网关 ”(右侧边栏)。
选择您的网关。
点击“连接器 ”标签。
选择 OPC-UA 连接器并点击“数据映射 ”标签。
请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南或连接设置与数据映射部分)。点击要配置属性更新的设备旁的“铅笔 ”图标。
向下滚动至“属性更新 ”部分,点击“铅笔 ”图标编辑属性更新。
点击“添加属性更新 ”按钮。此处添加 text_message 属性更新,故在“键 ”中填 text_message,“类型 ”选 Identifier ,“值 ”填
${ns=2;i=1005}。这是要更新的 OPC-UA 服务器节点的标识符。
记得点击“应用 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南 或本指南的连接设置 和数据映射 )。点击要配置属性更新的设备旁的“铅笔 ”图标。
向下滚动至“属性更新 ”部分,点击“铅笔 ”图标编辑属性更新。
点击“添加属性更新 ”按钮。此处添加 text_message 属性更新,故在“键 ”中填 text_message,“类型 ”选 Identifier ,“值 ”填 ${ns=2;i=1005}。这是要更新的 OPC-UA 服务器节点的标识符。
记得点击“应用 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南 或本指南的连接设置 和数据映射 )。点击要配置属性更新的设备旁的“铅笔 ”图标。
向下滚动至“属性更新 ”部分,点击“铅笔 ”图标编辑属性更新。
点击“添加属性更新 ”按钮。此处添加 text_message 属性更新,故在“键 ”中填 text_message,“类型 ”选 Identifier ,“值 ”填 ${ns=2;i=1005}。这是要更新的 OPC-UA 服务器节点的标识符。
记得点击“应用 ”按钮保存更改。
可以检查属性更新是否生效。进入“设备 ”→选择已创建设备→“属性 ”标签→
选择“共享属性 ”→点击“+ ”图标,添加 text_message 属性,类型为“字符串 ”,值设为“Hello from Gateway! ”。
在所选设备的“最新遥测 ”标签中检查文本消息节点的值。因共享属性已设为 Hello from Gateway!,text_message 遥测值应为 Hello from Gateway!。
尝试将 text_message 共享属性的值改为 Hello from <your_name>!。几秒后,
text_message 遥测值应变为 Hello from <your_name>!,说明属性更新已正确生效。
上述示例的 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
{
"server" : {
"url" : "opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"enableSubscriptions" : true ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
},
"pollPeriodInMillis" : 5000
},
"mapping" : [
{
"deviceNodeSource" : "path" ,
"deviceNodePattern" : "Root \\ .Objects \\ .DemoDevice" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpression" : "default" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"timeseries" : [
{
"key" : "text_message" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1018}"
}
],
"rpc_methods" : [],
"attributes_updates" : [
{
"key" : "text_message" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1018}"
}
]
}
]
}
RPC 到设备允许在特定设备上执行 OPC-UA 服务器的方法。
需注意,调用的方法必须在 OPC-UA 服务器上已定义。
以下示例使用 ThingsBoard OPC-UA 演示服务器,可通过 Docker 及以下命令运行:
1
docker run -it -p 4840:4840 thingsboard/tb-gw-opcua-server:latest
服务器端点 URL 为:opc.tcp://0.0.0.0:4840/freeopcua/server/。
示例:乘法运算
我们关注 “multiply ” 方法节点,该方法将我们传入的两个数字相乘。
要调用该方法,需先配置 OPC-UA 连接器以支持 RPC 调用。按以下步骤操作:
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南 或本指南的连接设置 和数据映射 )。点击要配置 RPC 方法的设备旁的“铅笔 ”图标。
向下滚动至“RPC 方法 ”部分,点击“铅笔 ”图标编辑 RPC 方法。
点击“添加方法”按钮。此处添加 multiply 方法,故在“方法 ”中填 multiply,在“参数 ”中填该方法接受的参数,此处为两个数字,可填任意数字。
记得点击“应用 ”按钮保存更改。
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“数据映射 ”标签。请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南 或本指南的连接设置 和数据映射 )。点击要配置 RPC 方法的设备旁的“铅笔 ”图标。
向下滚动至“RPC 方法 ”部分,点击“铅笔 ”图标编辑 RPC 方法。
点击“添加方法”按钮。此处添加 multiply 方法,故在“方法 ”中填 multiply,在“参数 ”中填该方法接受的参数,此处为两个数字,可填任意数字。
记得点击“应用 ”按钮保存更改。
配置完成后,在 RPC 调试终端部件中执行以下命令调用方法:
此情况下,将使用配置中的参数(默认参数)调用方法。
此处参数为 5 和 4,结果为:
也可在 RPC 调试终端部件中直接传入参数调用方法:
响应:
上述示例的 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
{
"name" : "OPCUA" ,
"server" : {
"url" : "opc.tcp://0.0.0.0:4840/freeopcua/server/" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"pollPeriodInMillis" : 5000 ,
"enableSubscriptions" : false ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
}
},
"mapping" : [
{
"deviceNodeSource" : "path" ,
"deviceNodePattern" : "Root \\ .Objects \\ .MyObject" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpression" : "default" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"timeseries" : [
{
"key" : "some_key" ,
"type" : "path" ,
"value" : "${some_key}"
}
],
"rpc_methods" : [
{
"method" : "multiply" ,
"arguments" : [
{
"type" : "integer" ,
"value" : 5
},
{
"type" : "integer" ,
"value" : 4
}
]
}
],
"attributes_updates" : []
}
]
}
每个 telemetry 和 attribute 参数都 GET 和 SET RPC 方法,无需手动配置。
我们将使用 Prosys OPC-UA Simulation Server 作为示例,其地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注标识符为 ns=3;i=1012 的 “Relay ” 节点,已将其添加为 key 为 relay 的 telemetry 参数,路径使用节点标识符 ${ns=3;i=1012},该 telemetry 的配置如下:
1
2
3
4
5
6
"timeseries" : [
{
"key" : "relay" ,
"path" : "${ns=3;i=1012}"
}
]
使用保留的 get 方法检查 relay 节点的值。要获取 relay 节点当前值,请在 RPC debug terminal 中运行以下查询:
响应:
1
{ "result" : { "value" : false }}
因此,get 方法返回 relay 节点的当前值,可以看到 relay 处于关闭状态。
RPC Debug Terminal 仅用于示例,您可使用任何支持 RPC 调用的部件。
要设置 relay 节点的值并开启 relay,请运行以下查询:
响应:
1
{ "result" : { "value" : true }}
如下图所示,relay telemetry 值已变为 true:
我们再次检查 relay telemetry 的值:
响应:
1
{ "result" : { "value" : true }}
上述示例的 OPC-UA connector 完整配置如下:
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
{
"server" : {
"url" : "opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"enableSubscriptions" : true ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
},
"pollPeriodInMillis" : 5000
},
"mapping" : [
{
"deviceNodePattern" : "Root \\ .Objects \\ .DemoDevice" ,
"deviceNodeSource" : "path" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpression" : "default" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"attributes_updates" : [],
"timeseries" : [
{
"key" : "relay" ,
"type" : "identifier" ,
"value" : "${ns=3;i=1012}"
}
],
"rpc_methods" : []
}
]
}
所有遥测和属性参数均内置 get 和 set RPC 方法,无需手动配置。
此外,可使用保留 RPC 方法访问 OPC-UA 服务器上的任意节点——即使该节点不属于特定设备。当管理或控制节点位于设备节点树之外时尤其有用。
我们将设备节点设为 Root\.Objects\.DemoDevice,但将访问位于 Root\.Objects\.DemoDeviceInfo\.TextMessage 的 TextMessage 节点,该节点在设备节点树之外。
以下示例使用 Prosys OPC-UA 仿真服务器,地址为 opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer。服务器结构如下:
我们关注 “TextMessage “,其 “Path ” 为 Root\.Objects\.DemoDeviceInfo\.TextMessage,
且不属于设备节点树。我们以键 textmessage 将该节点添加为遥测参数,
便于后续在调用保留 set RPC 方法后验证值是否已更改。
1
2
3
4
5
6
7
"timeseries" : [
{
"key" : "textmessage" ,
"type" : "path" ,
"path" : "${Root \\ .Objects \\ .DemoDeviceInfo \\ .TextMessage}"
}
]
使用保留 get 方法检查 textmessage 节点的值。在 RPC 调试终端中执行以下查询获取 textmessage 节点当前值:
1
get Root\\ .Objects\\ .DemoDeviceInfo\\ .TextMessage;
响应:
1
{ "result" :{ "value" : "HI" }}
因此 get 方法返回 textmessage 节点的当前值,可见 textmessage 为 HI。
RPC 调试终端仅用于示例,您可使用任何支持 RPC 调用的其他部件。
设置 textmessage 节点的值并修改其内容,执行以下查询:
1
set Root\\ .Objects\\ .DemoDeviceInfo\\ .TextMessage; New Message
响应:
1
{ "result" :{ "value" : "New Message" }}
如下截图所示,textmessage 遥测值已变为 New Message:
再次检查 textmessage 遥测值:
1
get Root\\ .Objects\\ .DemoDeviceInfo\\ .TextMessage;
响应:
1
{ "result" :{ "value" : "New Message" }}
上述示例的 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
{
"server" : {
"url" : "opc.tcp://0.0.0.0:53530/OPCUA/SimulationServer" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"enableSubscriptions" : true ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
},
"pollPeriodInMillis" : 5000
},
"mapping" : [
{
"deviceNodePattern" : "Root \\ .Objects \\ .DemoDevice" ,
"deviceNodeSource" : "path" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpression" : "default" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"attributes_updates" : [],
"timeseries" : [
{
"key" : "textmessage" ,
"type" : "path" ,
"value" : "${Root \\ .Objects \\ .DemoDeviceInfo \\ .TextMessage}"
}
],
"rpc_methods" : []
}
]
}
RPC 到连接器允许从 ThingsBoard IoT 网关界面向连接器发送命令。
需注意,调用的方法必须在 OPC-UA 服务器上已定义。
请注意 :RPC 到连接器将在每个配置了 OPC-UA 连接器的设备上执行该方法。
以下示例使用 ThingsBoard OPC-UA 演示服务器,可通过 Docker 及以下命令运行:
1
docker run -it -p 4840:4840 thingsboard/tb-gw-opcua-server:latest
服务器端点 URL 为:opc.tcp://0.0.0.0:4840/freeopcua/server/。
示例:继电器控制
下面展示 RPC 到连接器的实际用法。OPC-UA 服务器上有 “set_relay” 方法,
可开关继电器。该方法接受布尔参数,true 打开继电器,false 关闭继电器。调用该方法的步骤如下:
在右侧边栏进入“实体 ”→“网关 ”并选择您的网关。
点击右侧菜单中的“连接器配置 ”按钮。
选择已创建的 OPC-UA 连接器,点击“RPC ”图标。请确保已配置并连接设备(若不清楚如何操作,请参阅入门指南 或本指南的连接设置 和数据映射 )。
先打开继电器。在“方法 ”中填 set_relay,在“参数 ”中填 true,再点击“发送 ”按钮。
响应中包含 true,表示方法已成功执行且继电器已打开:
最后关闭继电器。在“方法 ”中填 set_relay,在“参数 ”中填 false,再点击“发送 ”按钮:
结果:
上述示例的 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
{
"server" : {
"url" : "opc.tcp://0.0.0.0:4840/freeopcua/server/" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"enableSubscriptions" : true ,
"subCheckPeriodInMillis" : 100 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
},
"pollPeriodInMillis" : 5000
},
"mapping" : [
{
"deviceNodePattern" : "Root \\ .Objects \\ .MyObject" ,
"deviceNodeSource" : "path" ,
"deviceInfo" : {
"deviceNameExpression" : "Demo Device" ,
"deviceNameExpressionSource" : "constant" ,
"deviceProfileExpression" : "default" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"attributes_updates" : [],
"timeseries" : [
{
"key" : "Frequency" ,
"type" : "path" ,
"value" : "${Frequency}"
}
],
"rpc_methods" : []
}
]
}
高级配置
高级配置部分提供了OPC-UA连接器所有可用参数的详细概述。
服务器
服务器对象指定目标OPC-UA服务器以及网关与其交互的方式。
参数
默认值
描述
server
服务器对象,指定目标OPC-UA服务器以及网关与其交互的方式。
server.url
OPC-UA服务器的主机名或IP地址。
server.timeoutInMillis (in ms)
5000
连接OPC-UA服务器的超时时间(秒)。
server.scanPeriodInMillis (in ms)
3600000
扫描OPC-UA服务器变更的周期(毫秒)。如果您的OPC-UA服务器结构不经常变化,可以设置较大的周期以节省网关资源。
server.pollPeriodInMillis (in ms)
5000
轮询服务器的周期(毫秒)。如果enableSubscriptions设置为true,pollPeriodInMillis不会影响数据读取。
server.enableSubscriptions
true
如果为true——网关将订阅感兴趣的节点并等待数据更新;如果为false——网关将每隔 scanPeriodInMillis重新扫描OPC-UA服务器。
server.subCheckPeriodInMillis (in ms)
100
定义连接器在创建OPC-UA订阅时请求的发布/检查间隔。
server.subKeepAlivePeriodInSeconds (in seconds) **
0
连接器检查OPC-UA订阅是否仍然“存活”(即发布/数据变更流程未停滞)的间隔。此检查默认禁用(设置为0)。如果订阅在超过此阈值的时间内没有活动,连接器将其视为已过期并触发重新订阅以恢复更新。
server.subDataMaxBatchSize
1000
单次订阅更新中最大数据项数量。这对性能优化很有用。
server.subDataMinBatchCreationTimeMs (in ms)
200
在订阅更新中创建新数据项批次之前等待的最小时间(毫秒)。这有助于减少发送到ThingsBoard的更新数量。
server.subscriptionProcessBatchSize
2000
处理订阅更新时单批处理的最大数据项数量。这对性能优化很有用。
server.sessionTimeoutInMillis (in ms)
120000
会话超时时间(毫秒)。这是会话在被服务器关闭之前可以处于非活动状态的最长时间。
server.showMap
false
如果为true——网关将在终端中显示OPC-UA服务器节点的映射图。这对调试和理解OPC-UA服务器结构很有用。
server.security
Basic128Rsa15
安全策略(Basic128Rsa15、Basic256、Basic256Sha256)。
请注意: ** – OPC-UA中的订阅生命周期通过发布间隔、保持活动和生命周期设置进行协商,可以近似为RequestedLifetimeCount * RequestedPublishingInterval。 在asyncua中,RequestedLifetimeCount通常是内部默认值1000毫秒,而发布间隔来自创建订阅时使用的值(此处为:server.subCheckPeriodInMillis,例如100毫秒),因此近似生命周期为(1000 * 100) / 1000 = 100秒。 然而,确切的移除时间取决于OPC-UA服务器实现及其清理逻辑——某些服务器会保持订阅更长时间,而其他服务器可能在负载或会话/发布问题下更早丢弃它们。因此,此设置用于检测“静默”订阅并更新它们,但您应根据自己的服务器进行验证以避免额外开销。
服务器配置示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"server" : {
"url" : "localhost:4840/freeopcua/server/" ,
"timeoutInMillis" : 5000 ,
"scanPeriodInMillis" : 3600000 ,
"pollPeriodInMillis" : 5000 ,
"enableSubscriptions" : true ,
"subCheckPeriodInMillis" : 100 ,
"subDataMaxBatchSize" : 1000 ,
"subDataMinBatchCreationTimeMs" : 200 ,
"subscriptionProcessBatchSize" : 2000 ,
"sessionTimeoutInMillis" : 120000 ,
"showMap" : false ,
"security" : "Basic128Rsa15" ,
"identity" : {
"type" : "anonymous"
}
}
服务器身份认证
身份对象指定用于连接OPC-UA服务器的身份认证方法。可以是以下之一:anonymous 、basic 、certificates 。
匿名身份认证
Parameter
Default value
Description
server.identity.type
anonymous
OPC-UA服务器上的身份类型。
基本身份认证
Parameter
Default value
Description
server.identity.type
basic
OPC-UA服务器上的身份类型。
server.identity.username
登录OPC-UA服务器的用户名。
server.identity.password
登录OPC-UA服务器的密码。
基本身份认证配置示例:
1
2
3
4
5
"identity" : {
"type" : "basic" ,
"username" : "user" ,
"password" : "5Tr0nG?@$sW0rD"
} ,
证书身份认证
Parameter
Default value
Description
server.identity.type
cert.PEM
OPC-UA服务器上的身份认证类型。
server.identity.caCert
CA证书的路径。
server.identity.cert
客户端证书的路径。
server.identity.privateKey
客户端私钥的路径。
server.identity.mode
SignAndEncrypt
安全模式,有2个选项 – ——Sign和SignAndEncrypt。
username
(可选)登录OPC-UA服务器的用户名。
password
(可选)登录OPC-UA服务器的密码。
证书身份认证配置示例:
1
2
3
4
5
6
7
8
9
"identity" : {
"type" : "cert.PEM" ,
"caCert" : "etc/thingsboard-gateway/ca.pem" ,
"privateKey" : "etc/thingsboard-gateway/private_key.pem" ,
"cert" : "etc/thingsboard-gateway/cert.pem" ,
"mode" : "SignAndEncrypt" ,
"username" : "user" ,
"password" : "5Tr0nG?@$sW0rD"
} ,
映射
映射列表用于配置OPC-UA连接器如何将OPC-UA服务器中的数据映射到ThingsBoard设备。它允许您指定OPC-UA服务器中哪些节点将用作设备名称、设备配置文件、设备属性和遥测数据。
设备映射
Parameter
Description
mapping[].deviceNodeSource
设备节点的来源,可以是:path、identifier或constant。
mapping[].deviceNodePattern
绝对或相对路径 ,或标识符 ,用于查找当前设备的节点。设备名称、配置文件、属性和遥测的路径可以相对于此节点指定。
mapping[].deviceInfo
用于配置设备名称和配置文件的设备信息对象。
mapping[].deviceInfo.deviceNameExpressionSource
设备名称的来源(可以是路径 、标识符 或constant)。
mapping[].deviceInfo.deviceNameExpression
包含设备名称的变量路径,用于在变量中查找设备名称。
mapping[].deviceInfo.deviceProfileSource
设备配置文件的来源(可以是路径 、标识符 或constant)。
mapping[].deviceInfo.deviceProfileExpression
包含设备配置文件的变量路径,用于在某个变量中查找设备配置文件。
mapping[].reportStrategy
用于配置设备上报策略的上报策略对象。
设备映射配置示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"mapping" : [
{
"deviceNodeSource" : "path" ,
"deviceNodePattern" : "Root \\ .Objects \\ .MyObject" ,
"deviceInfo" : {
"deviceNameExpression" : "OPCUA New Advanced Device" ,
"deviceNameExpressionSource" : "path" ,
"deviceProfileExpression" : "some other default 1" ,
"deviceProfileExpressionSource" : "constant"
},
"attributes" : [],
"timeseries" : [],
"attributes_updates" : [],
"rpc_methods" : [],
},
]
设备属性和时间序列
Parameter
Description
mapping[].attributes[]
将发送到ThingsBoard平台实例的属性列表。
mapping[].attributes[].key
ThingsBoard中属性的键名。可以指定为静态值。
mapping[].attributes[].type
value字段中表达式的类型(可以是path 、identifier 或constant)。
mapping[].attributes[].value
将发送到平台的属性值。应根据所选类型(path、identifier或constant)进行指定。
mapping[].attributes[].reportStrategy
(可选)属性数据的上报策略。如果未指定,将使用设备上报策略。
mapping[].timeseries[]
将发送到ThingsBoard平台实例的遥测数据列表。
mapping[].timeseries[].key
ThingsBoard中遥测数据的键名。可以指定为静态值。
mapping[].timeseries[].type
value字段中表达式的类型(可以是path 、identifier 或constant)。
mapping[].timeseries[].value
将发送到平台的遥测数据值。应根据所选类型(path、identifier或constant)进行指定。
mapping[].timeseries[].timestampLocation
(可选)属性时间戳的位置。如果未指定,将使用当前时间。可以是:sourcetimestamp、servertimestamp
mapping[].timeseries[].reportStrategy
(可选)时间序列数据的上报策略。如果未指定,将使用设备上报策略。
属性和遥测配置示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"attributes" : [
{
"key" : "Power" ,
"type" : "path" ,
"value" : "${Power}"
},
{
"key" : "Frequency" ,
"type" : "path" ,
"value" : "${Frequency}"
}
] ,
"timeseries" : [
{
"key" : "Humidity" ,
"type" : "path" ,
"value" : "${ns=2;i=16}"
},
{
"key" : "Temperature" ,
"type" : "path" ,
"value" : "${Root \\ .Objects \\ .MyObject \\ .Temperature}"
}
] ,
设备属性更新
Parameter
Default value
Description
mapping[].attributes_updates[]
将在设备上更新的属性列表。
mapping[].attributes_updates[].key
ThingsBoard中共享属性的键名。可以指定为静态值。
mapping[].attributes_updates[].type
value字段中表达式的类型(可以是path 、identifier 或constant)。
mapping[].attributes_updates[].value
将发送到设备的属性值。应根据所选类型(path、identifier或constant)进行指定。
mapping[].attributes_updates[].timeout (in ms)
5000
属性更新请求的超时时间(毫秒)。
属性更新配置示例:
1
2
3
4
5
6
7
8
"attributes_updates" : [
{
"key" : "nodeById" ,
"type" : "path" ,
"value" : "ns=2;i=23"
"timeout" : 5000
},
]
设备RPC方法
Parameter
Default value
Description
mapping[].rpc_methods[]
将发送到设备的RPC方法列表。
mapping[].rpc_methods[].method
OPC-UA服务器上的方法名称。
mapping[].rpc_methods[].arguments
(可选)将传递给OPC-UA服务器方法的默认参数列表。
mapping[].rpc_methods[].arguments[].type
参数的类型。
mapping[].rpc_methods[].arguments[].value
(可选)参数的值。
mapping[].rpc_methods[].timeout (in ms)
5000
RPC方法执行的超时时间(毫秒)。
RPC方法配置示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"rpc_methods" : [
{
"timeout" : 3000 ,
"method" : "multiply" ,
"arguments" : [
{
"type" : "integer" ,
"value" : 2
},
{
"type" : "integer" ,
"value" : 4
}
]
},
]
附加信息
路径类型
路径类型是指OPC-UA服务器命名空间中的层次地址。它用于导航到服务器中的特定节点。
属性值的路径可以是绝对路径或相对路径。
绝对路径
绝对路径 指定从OPC-UA服务器命名空间的根到目标节点的完整层次地址。
示例:
网关期望节点存在,且”Root.Objects.TempSensor.Temperature “的值为23.54 。
表达式:
${Root\\.Objects\\.TempSensor\\.Temperature}
转换后的数据:
23.54
相对路径
相对路径 指定相对于OPC-UA服务器命名空间中预定义起点的地址。
示例:
网关期望节点存在,且”Root.Objects.TempSensor.Temperature “的值为23.56。
设备节点表达式:
Root\\.Objects\\.TempSensor
表达式:
${Temperature}
转换后的数据:
23.56
标识符类型
OPC-UA服务器中的标识符 类型是分配给节点的唯一ID。它用于直接引用特定节点,无需通过命名空间层次结构进行导航。
OPC-UA连接器配置中的标识符类型可以采用多种形式来唯一引用OPC-UA服务器地址空间中的节点。标识符可以是不同类型,如数字(i)、字符串(s)、字节串(b)和GUID(g)。以下是每种标识符类型的说明和示例。
数字标识符(i)
数字标识符 使用整数值来唯一引用OPC-UA服务器中的节点。
表达式:
${ns=2;i=1235}
转换后的数据:
21.34
字符串标识符(s)
字符串标识符 使用字符串值来唯一引用OPC-UA服务器中的节点。
表达式:
${ns=3;s=TemperatureSensor}
转换后的数据:
21.34
字节串标识符(b)
字节串标识符 使用字节串来唯一引用OPC-UA服务器中的节点。这对于可以转换为字节串的二进制数据很有用。
表达式:
${ns=3;b=Q2xpZW50RGF0YQ==}
转换后的数据:
21.34
GUID标识符(g)
GUID标识符 使用全局唯一标识符(GUID)来唯一引用OPC-UA服务器中的节点。
表达式:
${ns=3;g=550e8400-e29b-41d4-a716-446655440000}
转换后的数据:
21.34
下一步
探索与ThingsBoard主要功能相关的指南: