EtherNet/IP Guide

Read and write tags on Allen-Bradley and other CIP devices.

Overview

ControlBird's EtherNet/IP (EIP) support connects industrial automation systems to Allen-Bradley PLCs, including ControlLogix and CompactLogix families, using the CIP (Common Industrial Protocol) over TCP. Connectivity is tag-based: instead of addressing raw registers, you reference PLC tags by name. Each PLC tag you read or write becomes a ControlBird tag with its own dotted ID that is unique in your tenant, for example Line1.Motor.Speed. Reads, writes, and read/write round-trips are all supported, with polling and timeouts for resilient operation across less-than-perfect networks.

New to device integration?

For a hands-on introduction to connecting a device, start with walkthrough step 6: Connect Your First Device. The IO Manager guide covers the app as a whole.

Capabilities

  • Tag-based addressing using Allen-Bradley CIP syntax, including program scope and array indexing
  • Reads by polling and writes from ControlBird tags to PLC tags
  • Boolean, integer, floating-point, and string values
  • Configurable connection and operation timeouts
  • Direction control: Read, Write, or ReadWrite per tag
  • Protocol logging
  • Leader-only and all-warm connection modes for multi-endpoint deployments

Default port

EtherNet/IP communicates over TCP port 44818, the standard Allen-Bradley EIP port. Set the connection's host to your PLC's network address; the form starts at 127.0.0.1 and port 44818.

Connect a PLC

In the IO Manager, open the Tags section and choose Add tag to start Create Custom Device.

  1. Pick the EIP card.
  2. Enter a Device Name and fill in the connection form. The wizard also shows a Tag Name field for each point; ControlBird ignores it, so leave it empty.
  3. In the Points step, choose Add Point for each PLC tag. Give it a ControlBird tag ID, a type, a source path holding the PLC tag name, and a direction.
  4. Finish the wizard. The connection starts and your tags show live values in the Tags section.

Connection form

SettingDefaultPurpose
Host127.0.0.1PLC network address
Port44818EtherNet/IP TCP port
Connection timeout5000 msTimeout for establishing the TCP/CIP session
Operation timeout10000 msTimeout for individual read and write operations
Retry backoff1000 ms to 60000 msMinimum and maximum wait between reconnect attempts

A connection's mode is Leader only (failover) by default, so a single ControlBird node owns each PLC connection at a time. Choose All warm (parallel) to keep every endpoint connected across nodes.

Tag source addresses

A tag's source path is the PLC tag name in Allen-Bradley CIP syntax. Names use alphanumeric characters and underscores; a colon marks program scope, a dot reaches a structure member, and brackets address one array element, for example MyArray[5].

A tag's Array Index and Element Count settings select array elements without editing the source path. With an element count of 1, ControlBird reads and writes the single element at the array index, so a source path of MyArray with an array index of 5 addresses MyArray[5]. A source path that already ends in brackets is used as written. With an element count above 1, ControlBird reads that many consecutive elements starting at the array index and stores them as a JSON array such as [20,30,40], so the tag must target a String field and the array must hold atomic element types; arrays of strings or structures cannot be read this way. Several elements are read only: a tag that writes needs an element count of 1.

SyntaxExampleMeaning
Controller tagTemperatureTop-level controller-scope tag
Program scopeProgram:MainProgram.TemperatureTag inside a program, via colon
Structure memberMotor.SpeedMember of a structure, via dot
Array elementMyArray[5]Single element of an array, via brackets

Data types

ControlBird converts PLC values to tag values automatically. All integer widths become an integer tag value and all floating-point widths become a float.

PLC typeTag value
BoolBool
Signed and unsigned integersInt
Real, LrealFloat
StringString

On write, ControlBird selects a compatible PLC integer or floating-point type from the value being written, so you do not specify the wire type yourself.

Polling and subscriptions

EtherNet/IP has no native subscription mechanism, so every read is a poll. Every tag is polled once a second.

The session is held open between polls. If it drops, ControlBird reconnects with exponential backoff between the minimum and maximum wait (1 and 60 seconds by default).

Security

TLS is not supported in transit

ControlBird's EtherNet/IP transport does not support TLS for EtherNet/IP traffic. To protect device communication, place the connection on a segmented control network or route it through a VPN. On newer PLC firmware, CIP Security can provide authenticated and encrypted CIP sessions, but ControlBird does not speak CIP Security. For general certificate handling in ControlBird, see the certificates guide.

Logging

Protocol logging is enabled by default and records transmitted requests (TX) and received responses (RX).