本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 U OPC A 来源
您可以使用 AWS IoT SiteWise 控制台或 SiteWise Edge 网关功能来定义并将 OPC UA 源添加到您的 SiteWise Edge 网关,以表示本地 OPC UA 服务器。
主题
配置 OPC UA 来源(控制台)
您可以使用控制台按照以下步骤配置 OPC UA 来源。
使用 AWS IoT SiteWise 控制台配置 OPC UA 来源
-
导航到 AWS IoT SiteWise 控制台
。 -
在导航窗格中,选择 网关。
-
选择 SiteWise Edge 网关以添加 OPC UA 来源。
-
选择添加数据来源。
-
输入源名称。
-
输入数据源服务器的 本地终端节点。端点可以是 IP 地址或主机名。您也可以向本地端点添加端口号。例如,您的本地终端节点可能如下所示:
opc.tcp://203.0.113.0:49320
注意
如果您的 SiteWise Edge 网关装有
Deployment type
西门子工业边缘设备(全新),并且您想从与边缘应用程序相同的西门子工业边缘设备上运行的 Edge OPC UA 服务器应用程序提取数据,请输入opc.tcp://ie-opcua:48010
。 AWS IoT SiteWise -
(可选)对于可供选择的节点 ID,请添加节点筛选器以限制将哪些数据流载入到 AWS Cloud。默认情况下, SiteWise Edge 网关使用服务器的根节点来摄取所有数据流。您可以使用节点筛选器通过仅包含您建模的数据路径来减少 SiteWise Edge 网关的启动时间和CPU使用量 AWS IoT SiteWise。默认情况下, SiteWise Edge 网关会上传除以开头的所有 OPC UA 路径
/Server/
。要定义 OPC UA 节点筛选条件,您可以使用节点路径以及*
和**
通配符。有关更多信息,请参阅 使用 OPC UA 节点过滤器。 -
在 “目标” 中,选择源数据的目的地:
-
AWS IoT SiteWise 实时-选择此选项可将数据直接发送到 AWS IoT SiteWise 存储器。实时摄取和监控数据,并在边缘处理数据。
-
AWS IoT SiteWise 使用 Amazon S3 进行缓冲 — 以镶木地板格式将数据发送到 Amazon S3,然后导入 AWS IoT SiteWise 存储。选择此选项可批量摄取数据,并以经济实惠的方式存储历史数据。您可以配置您的首选 Amazon S3 存储桶位置,以及您希望将数据上传到 Amazon S3 的频率。您还可以选择在数据摄取后如何处理数据。 AWS IoT SiteWise您可以选择同时在 Amazon S3 SiteWise 和 Amazon S3 中提供数据,也可以选择自动将其从 Amazon S3 中删除。
-
Amazon S3 存储桶是一种暂存和缓冲机制,支持 parquet 格式的文件。
-
如果您选中 “将数据导入 AWS IoT SiteWise 存储” 复选框,则会先将数据上传到 Amazon S3,然后上传到 AWS IoT SiteWise 存储中。
-
如果您选中 “从 Amazon S3 中删除数据” 复选框,则在数据导入 SiteWise 存储后,数据将从 Amazon S3 中删除。
-
如果您清除 “从 Amazon S3 中删除数据” 复选框,则数据将存储在 Amazon S3 和 SiteWise 存储中。
-
-
如果清除 “将数据导入 AWS IoT SiteWise 存储” 复选框,则数据将仅存储在 Amazon S3 中。它不会导入到 SiteWise 存储中。
管理数据存储有关 AWS IoT SiteWise 提供的各种存储选项的详细信息,请访问。要了解有关定价选项的更多信息,请参阅AWS IoT SiteWise 定价
。 -
-
AWS IoT Greengrass 流管理器 — 使用 AWS IoT Greengrass 流管理器将数据发送到以下 AWS Cloud 目的地:传入的频道、Amazon Kinesis Data Streams 中的流 AWS IoT Analytics、中的资产属性或亚马逊简单存储服务 (Amazon S3) Simple Storage Service AWS IoT SiteWise中的对象。有关更多信息,请参阅《AWS IoT Greengrass Version 2 开发者指南》中的 “在 AWS IoT Greengrass Core 上管理数据流”。
输入 AWS IoT Greengrass 直播的名称。
配置数据源时,用于选择的节点 ID 用于确定数据流的目的地。
-
如果使用 Amazon S3 将相同的数据同时发布到AWS IoT SiteWise 实时和AWS IoT SiteWise 缓冲区,则必须添加两个发布到两个目标的数据源。
-
要拆分数据,以便使用 Amazon S3 将其中一部分AWS IoT SiteWise 实时发布到 B AWS IoT SiteWise uffered,另一部分发布到 Buffered,您必须筛选以下数据别名:
/Alias01/Data1 /Alias02/Data1 /Alias03/Data1 /Alias03/Data2
例如,您可以使用 Amazon S3 添加指向
/**/Data1
节点筛选器的AWS IoT SiteWise 实时数据源,以及另一个指向/**/Data2
AWS IoT SiteWise 缓冲的数据源
-
-
在 “高级配置” 窗格中,您可以执行以下操作:
-
为源服务器和 SiteWise Edge 网关之间传输的连接和数据选择消息安全模式。此字段是 OPC UA 安全策略和消息安全模式的组合。选择与 OPC UA 服务器相同的安全策略和消息安全模式。
-
如果您的来源需要身份验证,请从身份验证配置列表中选择一个 AWS Secrets Manager 密钥。 SiteWise Edge 网关在连接到此数据源时使用此密钥中的身份验证凭据。您必须将密钥附加到 SiteWise Edge 网关的 AWS IoT Greengrass 组件,才能将其用于数据源身份验证。有关更多信息,请参阅 配置数据来源身份验证。
提示
您的数据服务器可能有一个名为 允许匿名登录 的选项。如果此选项为 是,则说明您的源不需要身份验证。
-
(可选)您可以通过选择激活数据流前缀(可选)来激活数据流前缀。
-
输入数据流前缀。 SiteWise Edge 网关将此前缀添加到来自该源的所有数据流。使用数据流前缀,可以区分来自不同源的同名数据流。在您的账户中,每个数据流都应具有唯一的名称。
-
-
(可选)选择数据类型转换选项,将不支持的 OPC UA 数据类型转换为字符串,然后再将其提取到字符串中。 AWS IoT SiteWise将具有简单数据类型的数组值转换为JSON字符串,将 DateTime 数据类型转换为 ISO 8601 个字符串。有关更多信息,请参阅 转换不支持的数据类型。
-
(可选)对于属性组,选择添加新组。
-
为属性组输入名称。
-
对于属性:
-
对于节点路径,添加 OPC UA 节点过滤器以限制上传到哪些 OPC UA 路径 AWS IoT SiteWise。其格式类似于用于选择的节点 ID。
-
-
对于 组设置,请执行以下操作:
-
在数据质量设置中,选择您希望 C AWS IoT SiteWise ollector 采集的数据质量类型。
-
对于扫描模式设置,请使用扫描模式配置标准订阅属性。您可以选择 “订阅” 或 “投票”。有关扫描模式的更多信息,请参阅 使用 UA 筛选数据提取范围 OPC。
-
-
-
-
选择保存。
配置 U OPC A 来源 (CLI)
您可以使用为 SiteWise Edge 网关定义 OPC UA 数据源 AWS CLI。为此,请创建 OPC UA 功能配置JSON文件并使用 update-gateway-capability-configuration
此功能具有以下命名空间。
-
iotsitewise:opcuacollector:2
请求语法
{ "sources": [ { "name": "
string
", "endpoint": { "certificateTrust": { "type": "TrustAny
" | "X509
", "certificateBody": "string
", "certificateChain": "string
", }, "endpointUri": "string
", "securityPolicy": "NONE
" | "BASIC128_RSA15
" | "BASIC256
" | "BASIC256_SHA256
" | "AES128_SHA256_RSAOAEP
" | "AES256_SHA256_RSAPSS
", "messageSecurityMode": "NONE
" | "SIGN
" | "SIGN_AND_ENCRYPT
", "identityProvider": { "type": "Anonymous
" | "Username
", "usernameSecretArn": "string
" }, "nodeFilterRules": [ { "action": "INCLUDE
", "definition": { "type": "OpcUaRootPath
", "rootPath": "string
" } } ] }, "measurementDataStreamPrefix": "string
", "typeConversions": { "array": "JsonArray
", "datetime": "ISO8601String
" }, "destination": { "type": "StreamManager
", "streamName": "string
", "streamBufferSize":integer
, }, "propertyGroups": [ { "name": "string
", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath
", "rootPath": "string
" } ], "deadband": { "type": "PERCENT
" | "ABSOLUTE
", "value":double
, "eguMin":double
, "eguMax":double
, "timeoutMilliseconds":integer
}, "scanMode": { "type": "EXCEPTION
" | "POLL
", "rate":integer
, "timestampToReturn": "SOURCE_TIME
" | "SERVER_TIME
" }, "dataQuality": { "allowGoodQuality":true
|false
, "allowBadQuality":true
|false
, "allowUncertainQuality":true
|false
}, "subscription": { "dataChangeTrigger": "STATUS
" | "STATUS_VALUE
" | "STATUS_VALUE_TIMESTAMP
", "queueSize":integer
, "publishingIntervalMilliseconds":integer
, "snapshotFrequencyMilliseconds":integer
} } ] } ] }
请求正文
- 来源
-
OPCUA 源定义结构列表,每个结构都包含以下信息:
- name
-
源的唯一友好名称。
- 终端节点
-
一个包含以下信息的终端节点结构:
- certificateTrust
-
一个包含以下信息的证书信任策略结构:
- 类型
-
源的证书信任模式。选择以下操作之一:
-
TrustAny
— SiteWise Edge 网关在连接到 OPC UA 源时信任任何证书。 -
X509
— 边 SiteWise 缘网关在连接到 UA 源时信任 X.509 证书。OPC如果选择此选项,则必须在certificateTrust
中定义certificateBody
。也可以在certificateTrust
中定义certificateChain
。
-
- certificateBody
-
(可选)X.509 证书的正文。
如果您在
certificateTrust
中为type
选择X509
,则此字段为必填字段。 - certificateChain
-
(可选)X.509 证书的信任链。
仅当您在
certificateTrust
中为type
选择X509
时使用此字段。
- endpointUri
-
OPCUA 来源的本地端点。例如,您的本地终端节点可能类似于
opc.tcp://203.0.113.0:49320
。 - securityPolicy
-
用于保护从 OPC UA 来源读取的消息的安全策略。选择以下操作之一:
-
NONE
— SiteWise Edge 网关不保护来自 OPC UA 来源的消息。建议您选择不同的安全策略。如果选择此选项,则还必须为messageSecurityMode
选择NONE
。 -
BASIC256_SHA256
—Basic256Sha256
安全政策。 -
AES128_SHA256_RSAOAEP
—Aes128_Sha256_RsaOaep
安全政策。 -
AES256_SHA256_RSAPSS
—Aes256_Sha256_RsaPss
安全政策。 -
BASIC128_RSA15
—(已弃用)OPCUA 规范中已弃用该Basic128Rsa15
安全策略,因为它不再被认为是安全的。建议您选择不同的安全策略。有关更多信息,请参阅 Basic128Rsa15。 -
BASIC256
—(已弃用)OPCUA 规范中已弃用该Basic256
安全策略,因为它不再被认为是安全的。建议您选择不同的安全策略。有关更多信息,请参阅 Basic256。
重要
如果您选择除
NONE
外的其他安全策略,则messageSecurityMode
必须选择SIGN
或SIGN_AND_ENCRYPT
。您还必须将源服务器配置为信任 SiteWise Edge 网关。有关更多信息,请参阅 将 OPC UA 来源服务器设置为信任 SiteWise Edge 网关。 -
- messageSecurityMode
-
用于保护与 OPC UA 源的连接的消息安全模式。选择以下操作之一:
-
NONE
— SiteWise Edge 网关无法保护与 OPC UA 源的连接。建议您选择不同的消息安全模式。如果选择此选项,则还必须为securityPolicy
选择NONE
。 -
SIGN
— 在 SiteWise Edge 网关和 OPC UA 源之间传输的数据已签名,但未加密。 -
SIGN_AND_ENCRYPT
— 在网关和 OPC UA 源之间传输的数据经过签名和加密。
重要
如果您选择除
NONE
外的消息安全模式,则必须选择除NONE
外的securityPolicy
。您还必须将源服务器配置为信任 SiteWise Edge 网关。有关更多信息,请参阅 将 OPC UA 来源服务器设置为信任 SiteWise Edge 网关。 -
- identityProvider
-
一个包含以下信息的身份提供程序结构:
- 类型
-
源所需的身份验证凭证的类型。选择以下操作之一:
-
Anonymous
— 源不需要身份验证即可连接。 -
Username
— 源需要用户名和密码才能连接。如果选择此选项,则必须在identityProvider
中定义usernameSecretArn
。
-
- usernameSecretArn
-
(可选)机 AWS Secrets Manager 密ARN中的一个。 SiteWise Edge 网关在连接到此源时使用此密钥中的身份验证凭证。您必须将密钥附加到 SiteWise Edge 网关的 IoT SiteWise 连接器,才能将其用于源身份验证。有关更多信息,请参阅 配置数据来源身份验证。
如果您在
identityProvider
中为type
选择Username
,则此字段为必填字段。
- nodeFilterRules
-
定义要发送到 AWS 云端的 OPC UA 数据流路径的节点筛选规则结构列表。您可以使用节点筛选器通过仅包含您建模的数据路径来减少 SiteWise Edge 网关的启动时间和CPU使用量 AWS IoT SiteWise。默认情况下, SiteWise Edge 网关会上传除以开头的所有 OPC UA 路径
/Server/
。要定义 OPC UA 节点筛选条件,您可以使用节点路径以及*
和**
通配符。有关更多信息,请参阅 使用 OPC UA 节点过滤器。此列表中的每个结构都必须包含以下信息:
- action
-
此节点筛选器规则的操作。可以选择以下选项:
-
INCLUDE
— SiteWise Edge 网关仅包含符合此规则的数据流。
-
- 定义
-
一个包含以下信息的节点筛选器规则结构:
- 类型
-
此规则的节点筛选器路径的类型。可以选择以下选项:
-
OpcUaRootPath
— SiteWise Edge 网关根据 OPC UA 路径层次结构的根目录评估此节点筛选路径。
-
- rootPath
-
要根据 OPC UA 路径层次结构的根进行评估的节点筛选路径。此路径必须以
/
开头。
- measurementDataStream前缀
-
要在源中所有数据流的前面加上的字符串。 SiteWise Edge 网关将此前缀添加到来自该源的所有数据流。使用数据流前缀,可以区分来自不同源的同名数据流。在您的账户中,每个数据流都应具有唯一的名称。
- typeConversions
-
不支持的 OPC UA 数据类型可用的转换类型。每种数据类型都转换为字符串。有关更多信息,请参阅 转换不支持的数据类型。
- 数组
-
转换为字符串的简单数组数据类型。可以选择以下选项:
-
JsonArray
— 表示您选择将简单数组数据类型转换为字符串。
-
- datetime
-
转换为字符串 DateTime 的数据类型。可以选择以下选项:
-
ISO8601String
— 表示您选择将 ISO 8601 种数据类型转换为字符串。
-
- 目的地
-
数据流目的地的配置。
- 类型
-
目标的类型。
- streamName
-
流的名称。直播名称应是唯一的。
- streamBufferSize
-
流的缓冲区大小。这对于管理来自 OPC UA 来源的数据流非常重要。
- propertyGroups
-
(可选)定义协议要求的
deadband
和scanMode
的属性组列表。- name
-
属性组的名称。这应该是一个唯一的标识符。
- 死带
-
该
deadband
值定义了在将数据发送到云端之前必须发生的最小数据点值变化。它包含以下信息:- 类型
-
支持的死区类型。可以选择以下选项:
-
ABSOLUTE
— 一个固定值,它指定了将数据点视为足够重要以发送到云端所需的最小绝对变化。 -
PERCENT
— 一个动态值,它以占上次发送的数据点值的百分比形式指定所需的最小更改。当数据值随时间变化显著时,这种类型的死区非常有用。
-
- 值
-
死区值。如果
type
是ABSOLUTE
,则此值为无单位的双精度。如果type
是PERCENT
,则此值是1
和100
之间的双精度。 - eguMin
-
(可选)使用
PERCENT
死区时的工程单位最小值。如果 OPC UA 服务器没有配置工程单元,则可以设置此项。 - eguMax
-
(可选)使用
PERCENT
死区时的工程单位最大值。如果 OPC UA 服务器没有配置工程单元,则可以设置此项。 - timeoutMilliseconds
-
超时前的持续时间,以毫秒为单位。最少为
100
。
- scanMode
-
scanMode
结构包含以下信息:- 类型
-
支持的
scanMode
类型。接受的值为:POLL
和EXCEPTION
。 - 费率
-
扫描模式的采样间隔。
- timestampToReturn
-
时间戳的来源。可以选择以下选项:
-
SOURCE_TIME
— 使用设备上的时间戳。 -
SERVER_TIME
— 使用服务器上的时间戳。
-
- nodeFilterRule定义
-
(可选)包含在属性组中的节点路径列表。属性组不能重叠。如果您不为此字段指定值,则该组包含根目录下的所有路径,且您无法创建其他属性组。
nodeFilterRuleDefinitions
结构包含以下信息:- 类型
-
OpcUaRootPath
是唯一支持的类型。这指定值rootPath
是相对于 OPC UA 浏览空间根目录的路径。 - rootPath
-
以逗号分隔的列表,用于指定要包含在属性组中的路径(相对于根路径)。
功能配置示例
以下示例根据存储在JSON文件中的有效负载定义 OPC UA SiteWise Edge 网关功能配置。
aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:2" \ --capability-configuration file://opc-ua-configuration.json
例 : OPC UA 源配置
以下opc-ua-configuration.json
文件定义了基本的、不安全的 OPC UA 源配置。
{ "sources": [ { "name": "Wind Farm #1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.0:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }
例 : 带有已定义属性组的 OPC UA 源代码配置
以下opc-ua-configuration.json
文件定义了一个基本的、不安全的 OPC UA 源配置,其中包含已定义的属性组。
{ "sources": [ { "name": "source1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://10.0.0.9:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank" } } ] }, "measurementDataStreamPrefix": "propertyGroups", "propertyGroups": [ { "name": "Deadband_Abs_5", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-001" }, { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-002" } ], "deadband": { "type":"ABSOLUTE", "value": 5.0, "timeoutMilliseconds": 120000 } }, { "name": "Polling_10s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Pressure/PT-001" } ], "scanMode": { "type": "POLL", "rate": 10000 } }, { "name": "Percent_Deadband_Timeout_90s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Flow/FT-*" } ], "deadband": { "type":"PERCENT", "value": 5.0, "eguMin": -100, "eguMax": 100, "timeoutMilliseconds": 90000 } } ] } ] }
例 : 带属性的 OPC UA 源代码配置
以下JSON示例opc-ua-configuration.json
定义了具有以下属性的 OPC UA 源配置:
-
信任任何证书。
-
使用
BASIC256
安全策略保护消息。 -
使用
SIGN_AND_ENCRYPT
模式保护连接。 -
使用存储在 Secrets Manager 密钥中的身份验证凭证。
-
筛选出数据流(路径以
/WindFarm/2/WindTurbine/
开头的数据流除外)。 -
在每个数据流路径的开头添加
/Washington
以将此“Wind Farm #2”与另一个区域中的“Wind Farm #2”区分开来。
{ "sources": [ { "name": "Wind Farm #2", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.1:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Username", "usernameSecretArn": "arn:aws:secretsmanager:
region
:123456789012:secret:greengrass-windfarm2-auth-1ABCDE" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/WindFarm/2/WindTurbine/" } } ] }, "measurementDataStreamPrefix": "/Washington" } ] }
例 : 使用证书信任的 OPC UA 源配置
以下JSON示例opc-ua-configuration.json
定义了具有以下属性的 OPC UA 源配置:
-
信任给定的 X.509 证书。
-
使用
BASIC256
安全策略保护消息。 -
使用
SIGN_AND_ENCRYPT
模式保护连接。
{ "sources": [ { "name": "Wind Farm #3", "endpoint": { "certificateTrust": { "type": "X509", "certificateBody": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "certificateChain": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }, "endpointUri": "opc.tcp://203.0.113.2:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }