Skip to main content
Version: 2.1

EtherNet/IP Nodes

EtherNet/IP is the industrial Ethernet protocol used by Allen-Bradley PLCs (ControlLogix, CompactLogix, Micro820). MaestroHub provides two node types for EtherNet/IP integration: the standard EtherNet/IP Node for executing individual functions, and the EtherNet/IP Read Group Node for batch read operations.

EtherNet/IP Node

The EtherNet/IP node executes a single function from your EtherNet/IP connection. The function you select determines whether the node performs a read, write, browse, or batch operation.

Configuration

EtherNet/IP node configuration

EtherNet/IP and Read Group Nodes

The node configuration has two tabs: Parameters and Settings.

Parameters Tab

FieldDescription
ConnectionSelect the EtherNet/IP connection profile to use
FunctionChoose a saved function from the connection (read, write, browse, or batch operation)
Function ParametersFill in any parameters defined in the function. Accepts literal values or Maestro expressions (e.g., $input, $.payload.id)
Timeout Override (seconds)Optional. Override the default function timeout for this node

Settings Tab

FieldDescription
Retry on FailNumber of retry attempts if the function fails
On ErrorHow to handle errors: stop pipeline or continue to error branch
NotesOperator notes for documentation
Display Note In PipelineShow notes directly on the canvas

Supported Function Types

Function TypePurposeCommon Use Cases
Read TagRead a single tag value (scalar or array)Temperature readings, motor status, setpoint verification
Write TagWrite a single value to a tagUpdate setpoint, change mode, trigger action
Read Multiple TagsBatch read multiple tags in one operationDashboard updates, process snapshots, historian logging
Write Multiple TagsBatch write to multiple tagsRecipe download, coordinated updates, batch configuration
Browse TagsList all available tags with optional filteringTag discovery, documentation, setup validation

Output Examples

Read Tag Output:

{
"value": 75.5,
"tagName": "Temperature",
"dataType": "real"
}

Write Tag Output:

{
"tagName": "Setpoint",
"success": true
}

Read Multiple Tags Output:

{
"results": [
{ "tagName": "Temperature", "value": 75.5, "success": true },
{ "tagName": "Pressure", "value": 14.7, "success": true }
]
}

Write Multiple Tags Output:

{
"results": [
{ "tagName": "Setpoint1", "success": true },
{ "tagName": "Setpoint2", "success": true }
]
}

Browse Tags Output:

{
"tags": [
{ "name": "Temperature", "dataType": "real", "scope": "controller" },
{ "name": "Motor1_Speed", "dataType": "dint", "scope": "controller" },
{ "name": "Program:Main.LocalVar", "dataType": "int", "scope": "program" }
]
}
Safety First

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

EtherNet/IP Read Group Node

The EtherNet/IP Read Group node is an advanced connector node that allows you to execute multiple EtherNet/IP read operations efficiently within a single node. It provides powerful grouping capabilities and the Read All feature for comprehensive data collection.

When to Use Read Group vs. Standard Node

ApproachUse Case
EtherNet/IP NodeExecute a single function (read, write, browse, or batch operation)
Read Group NodeExecute multiple read functions from one or more connections in a single node

Configuration

Connection and Functions

The Read Group node supports adding multiple function references, where each reference can either:

  • Target a specific function from the connection
  • Use Read All to execute all read functions associated with a connection

Read All Feature

The Read All toggle changes the behavior of a function reference:

ModeDescriptionUse Case
Specific Function (default)Execute a single named functionSelective data collection from specific tags
Read AllExecute all read functions from the connectionComplete PLC data snapshot, monitoring dashboards

How to Enable Read All

  1. Add a function reference in the EtherNet/IP Read Group node
  2. Toggle the Read All switch for that reference
  3. Optionally provide a Group Key (defaults to connection ID if not specified)

When Read All is enabled:

  • The function selector is hidden (not needed)
  • All read functions (Read Tag, Read Multiple Tags) from the selected connection are executed
  • Results are grouped under the specified group key or connection ID

Output Structure

{
"connectionId_or_groupKey": {
"function1_name": { /* function result */ },
"function2_name": { /* function result */ },
"function3_name": { /* function result */ }
}
}

Parameters

ParameterDescriptionOptions
Execution ModeHow functions are executedparallel (default), sequential
Continue on ErrorWhether to continue if a function failstrue, false (default)
FunctionsList of function referencesArray of connection/function pairs

Execution Modes

Parallel Execution (Default)

  • All functions execute concurrently
  • Faster total execution time
  • Best for independent read operations
  • Use when accessing different tags

Sequential Execution

  • Functions execute one after another
  • More predictable timing
  • Better for PLCs with limited concurrent request handling
  • Use when PLC performance is a concern

Error Handling

Continue on Error = false (Default)

  • Node fails if any function fails
  • Ensures data consistency
  • Best for critical operations where partial data is not acceptable

Continue on Error = true

  • Node continues even if individual functions fail
  • Failed functions return error in their result
  • Best for monitoring scenarios where partial data is valuable
  • Successful function results are still available in output

Best Practices

When to Use Read All

  • Initial PLC commissioning and exploration
  • Complete process data backups
  • Dashboard views requiring all PLC data
  • Diagnostic and troubleshooting scenarios

When to Use Specific Functions

  • Production pipelines with known data requirements
  • Performance-sensitive operations
  • Selective data forwarding to specific systems
  • When only a subset of PLC data is needed

Performance Considerations

  • Read All executes all defined read functions, which may impact performance on large function sets
  • Consider using parallel execution mode for Read All to optimize speed
  • Monitor PLC capabilities - some PLCs may have limits on concurrent requests
  • Use Continue on Error strategically based on data criticality

Naming Conventions

  • Use descriptive Group Keys when using Read All with multiple connections
  • Group Keys help organize output data in complex pipelines
  • Default connection ID grouping works well for simple scenarios

Supported Data Types

EtherNet/IP nodes support all standard CIP data types:

Data TypeDescriptionExample Values
boolBooleantrue, false
sintSigned 8-bit integer-128 to 127
intSigned 16-bit integer-32768 to 32767
dintSigned 32-bit integer-2147483648 to 2147483647
lintSigned 64-bit integerFull 64-bit range
usintUnsigned 8-bit integer0 to 255
uintUnsigned 16-bit integer0 to 65535
udintUnsigned 32-bit integer0 to 4294967295
ulintUnsigned 64-bit integerFull 64-bit range
real32-bit float75.5, -3.14159
lreal64-bit floatHigh-precision decimals
stringCharacter string"Hello World"

Tag Naming Reference

Tag TypeFormatExample
Controller-scopedTagNameTemperature, Motor1_Speed
Program-scopedProgram:ProgramName.TagNameProgram:Main.LocalVar
Array elementTagName[index]DataArray[0], Temps[5]
Structure memberTagName.MemberMotor.Speed, Pump_Data.Pressure