# EtherNet/IP

Read and write Allen-Bradley PLC tags

- Category: Industrial
- Capabilities: Streams, Assets, Commands, Operations, Entities
- Runs on: Linux x64, Linux ARM64, macOS Apple silicon, macOS Intel, Windows x64

Read and write tags by name on Allen-Bradley **CompactLogix** and
**ControlLogix** PLCs over EtherNet/IP.

## What you get

- **Live tags** — each tag you list, such as `Program:Main.Speed`, is a
  channel.
- **Setpoints** — only on tags you declare writable, with their type. A typo
  cannot write the wrong tag. Each write is read back.
- **One PLC per input**, named by its **Device name**. Channels read
  `/ethernetip/plc1/…`.

## Setup

1. Put the PLC on the network and note its address. The standard EtherNet/IP
   port is **44818**.
2. In **Inputs**, add **Allen-Bradley PLCs** and fill in:
   - **Device name** — a short label, e.g. `plc1`
   - **Connection** — `192.168.1.100:44818`
   - **Read tags** — `Program:Main.Speed, MotorRunning`
   - **Write tags** — `Program:Main.SetPoint:dint, RunCmd:bool`
     (name:type — `bool`, `sint`, `int`, `dint`, `lint`, `usint`, `uint`,
     `udint`, `ulint`, `real`, or `lreal`)
   - **Poll rate** — e.g. `1`
3. Press **Test connection**. It reads the first tag you listed. A failure
   names the address it could not reach.
4. Tags appear on **Live**. Write tags are available in **Trellis**. In the
   **Channels** table, give a tag a name and unit, such as
   `Program:Main.Speed` → `line speed`, `m/min`.

## Notes

- A value that does not fit the declared type is refused, never cut short.
- Every write is recorded.

## Supports

- Allen-Bradley CompactLogix / ControlLogix PLCs via EtherNet/IP (tag read/write)

## Connection fields

| Field | Type | Required | Notes |
|---|---|---|---|
| Device name | Text | Yes |  |
| Connection (host:port) | Text | Yes |  |
| Read tags | Text | Yes |  |
| Write tags (name:type) | Text | No |  |
| Poll rate (Hz) | Number | No |  |
