Skip to main content
Version: 2.1

OPC DA Nodes

OPC DA (Data Access) is the classic COM/DCOM-based protocol found in virtually every legacy SCADA and DCS installation. MaestroHub connects to OPC DA servers through a lightweight Windows agent and exposes read, write, and browse capabilities as pipeline nodes.

Configuration Quick Reference

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the OPC DA connection profile, function, configure function parameters with expression support, and optionally override timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.

OPC DA Write node configuration

OPC DA Write Node

OPC DA Write Node

Write values to OPC DA server items. Supports writing multiple items in a single execution and dynamic values through expression syntax.

Supported Function Types:

Function NamePurposeCommon Use Cases
OPC DA Write (opcda.write)Send values to OPC DA server itemsUpdate setpoints, write control commands, push recipe parameters

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesOPC DA connection profile to use
FunctionSelectionYesWrite function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your OPC DA connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Write:

ParameterTypeRequiredDescription
dataArray of objectsYesArray of path/value pairs to write (1–50 items)
data[].pathStringYesOPC DA item path to write to
data[].valueAnyYesValue to write

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Output Structure

{
"success": true,
"functionId": "<function-id>",
"data": {
"results": [
{
"path": "Channel1.Device1.Setpoint",
"success": true
},
{
"path": "Channel1.Device1.Command",
"success": false,
"error": "Access denied"
}
],
"successCount": 1,
"failureCount": 1
},
"durationMs": 15,
"timestamp": "2026-01-15T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the function executed without errors
functionIdstringID of the executed function
data.resultsarrayPer-item write results
data.results[].pathstringOPC DA item path
data.results[].successbooleanWhether this item was written successfully
data.results[].errorstringError message (present only on failure)
data.successCountnumberNumber of items written successfully
data.failureCountnumberNumber of items that failed
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp
Safety First

Always implement validation and safety checks before writing to industrial equipment. Consider adding condition nodes to verify values are within safe ranges.


OPC DA Read node configuration

OPC DA Read Node

OPC DA Read Node

Read tag values from an OPC DA server. Supports reading multiple items and optional direct device reads bypassing the server cache.

Supported Function Types:

Function NamePurposeCommon Use Cases
OPC DA Read (opcda.read)Fetch current item values from OPC DA serverEquipment telemetry, quality checks, process monitoring

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesOPC DA connection profile to use
FunctionSelectionYesRead function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your OPC DA connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Read:

ParameterTypeRequiredDefaultDescription
tagsArray of stringsYesOPC DA item paths to read (1–50 items)
fromDeviceBooleanNofalseRead directly from the device instead of the server cache. Ensures the most current values but may be slower.

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Output Structure

{
"success": true,
"functionId": "<function-id>",
"data": {
"values": [
{
"path": "Channel1.Device1.Temperature",
"value": 78.5,
"quality": "Good",
"timestamp": "2026-01-15T08:30:00.123Z"
},
{
"path": "Channel1.Device1.Pressure",
"value": 145.2,
"quality": "Good",
"timestamp": "2026-01-15T08:30:00.150Z"
}
]
},
"durationMs": 42,
"timestamp": "2026-01-15T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the function executed without errors
functionIdstringID of the executed function
data.valuesarrayArray of item read results
data.values[].pathstringFull OPC DA item path
data.values[].valueanyCurrent item value — type depends on the OPC DA item data type
data.values[].qualitystringQuality indicator ("Good", "Bad", "Uncertain", "Bad_CommFailure", etc.)
data.values[].timestampstringISO 8601 timestamp from the OPC DA server
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

OPC DA Browse node configuration

OPC DA Browse Node

OPC DA Browse Node

Browse the OPC DA server tag hierarchy to discover available items. Useful for dynamic tag discovery, building tag catalogs, and verifying server structure within pipelines.

Supported Function Types:

Function NamePurposeCommon Use Cases
OPC DA Browse (opcda.browse)Traverse server tag hierarchyTag discovery, catalog building, server structure verification

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesOPC DA connection profile to use
FunctionSelectionYesBrowse function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your OPC DA connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Browse:

ParameterTypeRequiredDefaultDescription
pathStringNo""Item path to browse. Empty string browses from the root.
limitNumberNo5000Maximum number of nodes to return (100–50,000)

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Output Structure

{
"success": true,
"functionId": "<function-id>",
"data": {
"nodes": [
{
"name": "Channel1",
"itemId": "Channel1",
"type": "branch",
"hasChildren": true
},
{
"name": "Temperature",
"itemId": "Channel1.Device1.Temperature",
"type": "leaf",
"accessRights": "readWrite",
"hasChildren": false
}
]
},
"durationMs": 85,
"timestamp": "2026-01-15T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the function executed without errors
functionIdstringID of the executed function
data.nodesarrayArray of discovered nodes
data.nodes[].namestringDisplay name of the node
data.nodes[].itemIdstringFull OPC DA item identifier
data.nodes[].typestring"branch" (folder) or "leaf" (tag)
data.nodes[].accessRightsstring"read", "write", or "readWrite" (leaf nodes only)
data.nodes[].hasChildrenbooleanWhether this node has child items
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

Settings Tab

All OPC DA node types share the same Settings tab:

SettingTypeDefaultDescription
DescriptionTextOptional description displayed on the node
Timeout (seconds)NumberPipeline defaultMaximum time the node may run before timing out
Retry on TimeoutTogglePipeline defaultAutomatically retry the node if it times out
Retry on FailTogglePipeline defaultAutomatically retry the node if it fails
On ErrorSelectionPipeline defaultError strategy: stop the pipeline, continue to the next node, or follow the error output path

When left at their defaults, these settings inherit from the pipeline-level execution configuration.