---
title: "EtherNet/IP Client | Configuration | N3uron KB V1.22"
slug: "ethernetip-client-configuration"
description: "EtherNet/IP Client allows N3uron to quickly and easily connect to PLCs that communicate using the EtherNet/IP protocol."
updated: 2025-12-24T10:28:10Z
published: 2025-12-24T10:28:10Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.n3uron.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> [!WARNING]
> Note:
> 
> This module is available from **N3uron**version **1.22.0**.

> [!NOTE]
> **Note:**
> 
> Before starting the configuration, a new module instance must be created. [**Click here for more information about creating Module instances**](/v122/docs/platform-create-new-module-instance).

## **Module Configuration**

**![](https://cdn.document360.io/54093ab5-6b22-4542-a265-04377931f11a/Images/Documentation/Configure a New PLC Device and Tag in N3uron01(3).gif)**

![](https://cdn.document360.io/54093ab5-6b22-4542-a265-04377931f11a/Images/Documentation/ModuleConfig(2).png)

To create a new **EtherNet/IP Client** **device**(or instantiate one from a template), follow the numbered steps in the image:

1. Go to **System → Config**.
2. In the **Explorer panel**, expand the **Modules section**.
3. **Select**the newly created **EtherNet/IP Client module instance**, which in this case is named EthernetIP Client.
4. In the **Model** panel, click the **≡ menu** and choose **New device**.
5. Choose the following options from the dropdown menu:
  - Select **device**to **create a new one from scratch** directly in the model.
  - To **create**a **device from a Template**, select the new device from the available Templates. In this example, there are two templates for ControlLogix and Omron NJ/NX types of PLCs.

> **Tips:**
> 
> Using templates is a great idea when working with multiple PLCs of the same type, since you just need to instantiate the template as many times as needed and tweak the settings through Custom properties like IP address, Array block size, Port, Connection Path, etc.

![](https://cdn.document360.io/54093ab5-6b22-4542-a265-04377931f11a/Images/Documentation/CreateDevice.gif)

## **Device Configuration**

| Setting | Description |
| --- | --- |
| Enable data collection | Enable or disable data collection on this device. When disabled, the communication to this device remains inactive, and the associated tags quality stays **Bad - Uninitialized**. |
| Array block size | Specifies the number of elements to read in a single request when accessing array data. This setting is used to optimize performance by reducing the number of individual read operations. |
| Request timeout | Defines the maximum amount of time to wait for a response from the device before considering the operation failed. |
| Retry attempts | Specifies the number of times the system will retry a failed communication attempt before marking the device as unreachable. |

> **Array block size guidelines:**
> 
> - Only applicable when the **Struct Type** is set to **Array**.
> - The value must be within the range of **100**to **3000**.
> - Larger block sizes improve performance by reducing overhead, but may increase memory usage and latency.
> 
> **Request timeout guidelines**:
> 
> - Enter the value in **milliseconds**.
> - Valid range: **100**to **1,000,000 milliseconds** (**0.1** to **1000**seconds).
> - If the device does not respond within the specified time, the operation will be marked as failed, and the tag will not update.
> 
> **Retry attempts guidelines:**
> 
> - Valid range: **0**to **1000**
> - A value of **0**means no retries; a single failed attempt will be treated as a failure.
> - Higher values allow more tolerance for transient network issues but may delay error detection.

> [!WARNING]
> **Notes:**
> 
> **Array block size**
> 
> - The array block size should not exceed the actual size of the array in the PLC.
> - Choosing a block size that is too large may result in read errors or inefficient communication.
> - Adjust the array block size based on the expected array size and performance requirements of the system.
> 
> **Request timeout**
> 
> - A lower timeout value may improve responsiveness in detecting communication issues.
> - A higher timeout value may be necessary for slow networks or devices that take longer to respond.
> - Select a timeout that balances reliability and performance based on your network conditions and PLC behavior.
> 
> **Retry attempts**
> 
> - Use higher retry values for unstable or noisy networks.
> - Use lower values for time-sensitive applications where fast failure detection is important.
> - The retry logic is applied per request and works in combination with the **Timeout**setting.

| Setting | Description |
| --- | --- |
| PLC type | Specifies the type of PLC that the driver will communicate with. This parameter determines how the driver formats and interprets the communication with the target device. |

| **PLC Type** | Description |
| --- | --- |
| ControlLogix | ControlLogix-class PLCs (including CompactLogix). |
| PLC-5 | Allen-Bradley PLC-5 series. |
| SLC 500 | Allen-Bradley SLC 500 series. |
| ControlLogix PCCC | ControlLogix-class PLC using PCCC protocol. |
| Micro800 | Allen-Bradley Micro800 series. |
| MicroLogix | Allen-Bradley MicroLogix series. |
| Omron NJ/NX | Omron NJ/NX series PLCs. |

> [!WARNING]
> **Notes:**
> 
> - The **ControlLogix PCCC** type is intended for ControlLogix PLCs communicating using legacy PLC/5 protocol (PCCC).
> - For CompactLogix PLCs, use **ControlLogix**.

| Setting | Description |
| --- | --- |
| IP address | Specifies the IP address of the target PLC. This is a required parameter and must be set to the IPv4 address of the PLC that the driver should connect to. |
| Port | TCP port number to connect to. Default port for Ethernet/IP is **44818**. Valid range: **1**to **65535**. |
| Connection Path | Defines the routing path used to reach the target PLC when intermediate routing is required. This is typically necessary when the PLC uses a dedicated Ethernet module (rather than a built-in Ethernet port) or when communication is routed through another device acting as a bridge. For example, a connection path is required when accessing ControlLogix, CompactLogix, PLC-5, MicroLogix, or SLC processors through a ControlLogix gateway. **Format:**Enter a comma-separated list of integers that defines the route. Each pair typically represents: - A communication port (e.g., backplane) - A link address (e.g., slot number or remote node) **Examples:** - To access a controller in **slot 0** of the backplane: **1,0** - To route through a **DHRIO** module in **slot 3**, channel A, to node 10: **1,3,2,10** |

> **Guidelines:**
> 
> - Use standard IPv4 format (e.g., **192.168.1.10**).
> - The PLC must be reachable from the node's network interface.
> - Ensure that firewall rules and network configurations allow TCP communication on the required ports.
> 
> **Tips:**
> 
> - **1** typically refers to the backplane port.
> - The specific values depend on your network layout and hardware configuration. Consult your system documentation or configuration tools for accurate route information.

> [!WARNING]
> Note:
> 
> Ensure the **port**is **permitted**and not in use by any other application.
> 
> Incorrect or missing route paths may result in connection errors or data access failures.

## Tag Configuration

Once you’ve created and set up the EtherNet/IP device in the instantiated module, you can **create tags** and link them to the device either **manually**or by using the **EtherNet/IP Client’s Browser**. Select the desired device, then **drag and drop** the tags you wish to add into the Tag Model.

![](https://cdn.document360.io/54093ab5-6b22-4542-a265-04377931f11a/Images/Documentation/EthernetIp_Browser01(1).gif)

The Source section links each tag to the EtherNet/IP Client module and defines how the tag value is obtained from or written to the device.

![](https://cdn.document360.io/54093ab5-6b22-4542-a265-04377931f11a/Images/Documentation/TagConfiguration(1).png)

| Setting | Description |
| --- | --- |
| Enabled | The source module provides the tag's value, quality, and timestamp when enabled. If the source is not enabled, the tag acts as a memory tag. |
| Module type | Type of the **module used** to obtain the tag's value, quality, and timestamp. |
| Module name | Name of the**module instance** used to obtain the tag's value, quality, and timestamp. |
| Config → Device | Specifies the name of the target device to which the tag is linked. This value must match the name of a device previously defined in the module configuration. The connection details for communicating with the PLC—such as IP address, PLC type, and route path—are configured within that device entry. **Usage:** - Before using this parameter in a tag, ensure that a corresponding device has been created and configured in the module. - The name entered here must exactly match the name of the configured device, including letter case. **Example Workflow:** - Define a new device in the module configuration (e.g., name it **PLC_Main**). - When configuring a tag, set the **Device** parameter to **PLC_Main** to associate the tag with that connection. |
| Config → Struct type | Specifies the structure of the data being accessed in the PLC. - **Single element:** Use this option when the tag refers to a single value (e.g., a single **INT**, **BOOL**, **REAL**, etc.). - **Array:** Select this option when the tag points to an array of values in the PLC (e.g., **MyArray[0]**, **N7:0** to **N7:9**, etc.). |
| Config → Scan rate | Defines how often the tag is refreshed by reading its value from the PLC. **Examples:** - **1000** = 1 second update interval - **100** = 10 updates per second |
| Source → Variable name | Defines the full name of the tag or memory address to access within the PLC. The format depends on the PLC type. **For CIP-based PLCs:**Use the tag name as defined in the controller. If accessing a tag inside a user-defined program, prefix it with the program name using the following format: **Program:<ProgramName>.<TagName>** **Example:****Program:MainRoutine.MotorSpeed** accesses the tag **MotorSpeed** within the program **MainRoutine**. **For PCCC-based PLCs:**Use the standard memory address format, such as: - **N7:4** - Integer file 7, element 4. - **B3:4/2** - Bit 2 of word 4 in binary file 3. - **ST18:26** - String file 18, element 26. - **L20:2** - Long integer file 20, element 2. - **MG14:6.en** - Control word in message file 14, element 6, **.en** bit |
| Source → Value type | Defines the data type of the value being read from or written to the PLC. Choose the type that best represents the format and size of the PLC tag you're working with. **Supported Types:** - **Boolean** – Single bit value (true/false) - **UInt8** – Unsigned 8-bit integer - **Int8** – Signed 8-bit integer - **UInt16** – Unsigned 16-bit integer - **Int16** – Signed 16-bit intege - **UInt32** – Unsigned 32-bit integer - **Int32** – Signed 32-bit integer - **UInt64** – Unsigned 64-bit integer - **Int64** – Signed 64-bit integer - **Float32** – 32-bit floating point (single precision) - **Double64** – 64-bit floating point (double precision) - **String** – Standard string type - **String2** – Alternative string format for specific PLC implementations - **Short string** – Compact string representation (typically with limited length) |

> **Guidelines Struct type:**
> 
> - Choose **Single element** for scalar variables or individual data points.
> - Choose **Array** when you intend to read or write multiple consecutive elements as a block.
> - Ensure the data type and element count match the array's actual definition in the PLC.
> - Selecting the correct structure is essential for accurate data handling and to prevent communication errors.
> 
> **Guidelines Scan rate:**
> 
> - Enter the scan rate in **milliseconds**.
> - Lower values result in faster updates but increase network and CPU load.
> - Higher values reduce system load but may delay the detection of value changes.

> [!WARNING]
> **Notes:**
> 
> **Device name**
> 
> - If the name of the Device does not match an existing device, the tag will fail to resolve or communicate.
> - Changing the name of a device in the module configuration requires updating all associated tags to use the new name.
> 
> **Scan rate**
> 
> - The scan rate should be selected based on the priority and frequency of change of the tag's value.
> - Critical or fast-changing data may require lower scan rates.
> - For infrequently changing values, a higher scan rate can improve performance.
> 
> **Variable name**
> 
> - Ensure the name or address matches exactly what is defined in the PLC program.
> - Some common abbreviations and shorthand formats are supported automatically.
> - Incorrect variable names may result in tag resolution errors or data read/write failures.

> [!NOTE]
> Tips:
> 
> To replace a **Variable name** that a tag points to with another variable in the device, use the **Browser shortcut** in the tag source configuration. Just click the**Search icon** next to the **Config → Source label** and select the desired tag.
> 
> ![](https://cdn.document360.io/54093ab5-6b22-4542-a265-04377931f11a/Images/Documentation/EthernetIp_Browser02.gif)
