You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-operations/discover-manage-assets/howto-configure-opc-ua.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -158,6 +158,8 @@ A dataset defines where the connector sends the data it collects from a collecti
158
158
159
159
:::image type="content" source="media/howto-configure-opc-ua/create-dataset.png" alt-text="Screenshot that shows how to create a dataset in the operations experience." lightbox="media/howto-configure-opc-ua/create-dataset.png":::
160
160
161
+
Use the **Start instance** field to specify the starting node for resolving relative browse paths for data points in the dataset. For more information, see [Resolve nodes dynamically using browse paths](overview-opc-ua-connector.md#resolve-nodes-dynamically-using-browse-paths).
162
+
161
163
1. Select **Create and next** to create the dataset.
162
164
163
165
> [!TIP]
@@ -188,6 +190,9 @@ Now you can define the data points associated with the dataset. To add OPC UA da
188
190
| ns=3;s=FastUInt10 | Temperature |
189
191
| ns=3;s=FastUInt100 | Humidity |
190
192
193
+
> [!NOTE]
194
+
> If you're using relative browse paths to resolve dynamic nodes, the **Data source** field contains a relative browse path. For more information, see [Resolve nodes dynamically using browse paths](overview-opc-ua-connector.md#resolve-nodes-dynamically-using-browse-paths).
195
+
191
196
1. On the **data points** page, select **Next** to go to the **Add events** page.
192
197
193
198
# [Azure CLI](#tab/cli)
@@ -250,6 +255,9 @@ Now you can define the events associated with the asset. To add OPC UA events:
250
255
251
256
:::image type="content" source="media/howto-configure-opc-ua/add-event.png" alt-text="Screenshot that shows adding events in the operations experience." lightbox="media/howto-configure-opc-ua/add-event.png":::
252
257
258
+
> [!NOTE]
259
+
> To resolve node IDs dynamically, use the **Start instance** field to specify the starting node ID, and the **Data source** field to specify the relative browse path. For more information, see [Resolve nodes dynamically using browse paths](overview-opc-ua-connector.md#resolve-nodes-dynamically-using-browse-paths).
260
+
253
261
1. Select **Manage default settings** to configure default event settings for the asset. These settings apply to all the OPC UA events that belong to the asset. You can override these settings for each event that you add. Default event settings include:
254
262
255
263
-**Publishing interval (milliseconds)**: The rate at which OPC UA server should publish data.
Copy file name to clipboardExpand all lines: articles/iot-operations/discover-manage-assets/overview-opc-ua-connector-certificates-management.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,7 @@ By default, the connector for OPC UA connects to an OPC UA server by using the e
55
55
- Export the public key of the connector for OPC UA application instance certificate from the Kubernetes secret store and then add it to trusted certificates list for the OPC UA server.
56
56
- Export the public key of the OPC UA server's application instance and then add it to trusted certificates list for the connector for OPC UA.
57
57
58
-
Mutual trust validation between the OPC UA server and the connector for OPC UA is now possible. You can now configure an `AssetEndpointProfile` for the OPC UA server in the operations experience web UI and start working with it.
58
+
Mutual trust validation between the OPC UA server and the connector for OPC UA is now possible. You can now configure a *device* for the OPC UA server in the operations experience web UI and start working with it.
59
59
60
60
## Use self-signed OPC UA server application instance certificates
Copy file name to clipboardExpand all lines: articles/iot-operations/discover-manage-assets/overview-opc-ua-connector.md
+36-3Lines changed: 36 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ As part of Azure IoT Operations, the connector for OPC UA is a native Kubernetes
37
37
38
38
The connector for OPC UA supports the following features as part of Azure IoT Operations:
39
39
40
-
- Simultaneous connections to multiple OPC UA servers configured by using Kubernetes `AssetEndpointProfile` custom resources (CRs).
40
+
- Simultaneous connections to multiple OPC UA servers configured by using Kubernetes `device` custom resources (CRs).
41
41
- Publish OPC UA data value changes in OPC UA PubSub format with JSON encoding.
42
42
- Publish message headers as user properties in the MQTT message. The headers in the messages published by the connector for OPC UA are based on the [CloudEvents specification for OPC UA](https://github.com/cloudevents/spec/blob/main/cloudevents/extensions/opcua.md).
43
43
- Publish OPC UA events with predefined event fields.
@@ -47,7 +47,8 @@ The connector for OPC UA supports the following features as part of Azure IoT Op
- Anonymous authentication and authorization based on username and password.
50
-
-`AssetEndpointProfile` and `Asset` CRs configurable by using Azure REST API and the operations experience web UI.
50
+
-`device` and `asset` CRs configurable by using Azure REST API and the operations experience web UI.
51
+
- Dynamic resolution of nodes at runtime using the OPC UA `TranslateBrowsePathToNodeId` service.
51
52
52
53
## How it works
53
54
@@ -73,7 +74,7 @@ To write values to a node in a connected OPC UA server, the connector for OPC UA
73
74
74
75
1. Checks the payload to ensure all data points exist in the target dataset.
75
76
76
-
1. Writes the values to the OPC UA server, and publishes a success or failure response to the MQTT broker. The changed value is published to the standard telemetry topic associated with the dataset.
77
+
1. Writes the values to the OPC UA server, and publishes a success or failure response to the MQTT broker. The changed value is published to the standard message topic associated with the dataset.
77
78
78
79
To generate a write request, publish a JSON message to the MQTT topic using MQTT v5 request/response semantics. Specify the dataset name and the values to be written in the payload. Each MQTT message includes metadata that defines system-level and user-defined properties such as `SourceId`, `ProtocolVersion`, and `CorrelationData` to ensure traceability and conformance.
79
80
@@ -148,6 +149,38 @@ The subject field contains the name of the asset that the message is related to.
148
149
> [!NOTE]
149
150
> For assets created in the operations experience web UI, the subject property for any messages sent by the asset is set to the `externalAssetId` value. In this case, the `subject` property contains a GUID rather than a friendly asset name.
150
151
152
+
## Resolve nodes dynamically using browse paths
153
+
154
+
When you configure OPC UA data points or events in an asset, you typically add an OPC UA server node ID in the **Data source** field. This approach assumes that node IDs are stable across server restarts and deployments. However, some OPC UA servers create node IDs dynamically at runtime or on demand. You can't persist these dynamic node IDs in an asset configuration because they might change over time.
155
+
156
+
To address this scenario, the connector can resolve dynamic nodes at runtime using the OPC UA `TranslateBrowsePathToNodeId` service. This service resolves a target node ID from a starting object and a relative browse path. When you configure a **Start instance** value in a dataset or event configuration, each data point or event requires a valid relative browse path in its **Data source** property. The connector translates the relative browse path to a concrete node ID at runtime.
157
+
158
+
> [!NOTE]
159
+
> If you don't provide a **Start instance** value, the connector uses the **Data source** property as a fixed node ID.
Example relative browse paths to use in the **Data source** field:
170
+
171
+
*`/1:SYSTEM/1:PUMP/1:P1`
172
+
*`/2:Block&.Output`
173
+
*`/3:Truck.0:NodeVersion`
174
+
*`<!HasChild>Truck`
175
+
*`<1:ConnectedTo>1:Boiler/`
176
+
177
+
For more information about the relative browse path syntax, see [OPC Foundation Part 4 A.2](https://reference.opcfoundation.org/Core/Part4/v105/docs/A.2).
178
+
179
+
The relative browse paths must use numeric OPC UA namespace indexes. There's currently no support for namespace names in string format.
180
+
181
+
> [!IMPORTANT]
182
+
> Namespace indexes can change within the server. If namespace indexes change, you must reconfigure them in the asset definition.
183
+
151
184
## How does it relate to Azure IoT Operations?
152
185
153
186
The connector for ONVIF is part of Azure IoT Operations. The connector deploys to an Arc-enabled Kubernetes cluster on the edge as part of an Azure IoT Operations deployment. The connector interacts with other Azure IoT Operations elements, such as:
0 commit comments