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.
- Pick the EIP card.
- 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.
- 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.
- Finish the wizard. The connection starts and your tags show live values in the Tags section.
Connection form
| Setting | Default | Purpose |
|---|---|---|
| Host | 127.0.0.1 | PLC network address |
| Port | 44818 | EtherNet/IP TCP port |
| Connection timeout | 5000 ms | Timeout for establishing the TCP/CIP session |
| Operation timeout | 10000 ms | Timeout for individual read and write operations |
| Retry backoff | 1000 ms to 60000 ms | Minimum 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.
| Syntax | Example | Meaning |
|---|---|---|
| Controller tag | Temperature | Top-level controller-scope tag |
| Program scope | Program:MainProgram.Temperature | Tag inside a program, via colon |
| Structure member | Motor.Speed | Member of a structure, via dot |
| Array element | MyArray[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 type | Tag value |
|---|---|
| Bool | Bool |
| Signed and unsigned integers | Int |
| Real, Lreal | Float |
| String | String |
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).