hotloop
GitHub

Integrations EtherNet/IP

EtherNet/IP

Decode tested

Allen-Bradley ControlLogix, CompactLogix, and Micro820. Tags have names, so the controller can be asked what it holds.

This driver has not been verified against a physical PLC.

EtherNet/IP has not been run against a physical PLC. Its decoding and address handling are tested thoroughly, but tested logic is not the same as a value that came off a real controller. If you are the first person to point it at real hardware, treat it as commissioning and check a known value before trusting a screen.

Verified against Address, batching, and type-mapping tests

Works with Allen-Bradley ControlLogixAllen-Bradley CompactLogixAllen-Bradley Micro820

The type is taken from the tag's dataType, or from a :type suffix, which wins.

Reads are batched into multi-service requests, falling back to individual reads when a batch fails, so that one bad tag path does not blind the other nineteen.

Addressing

AddressMeans
TemperatureType taken from the tag's declared dataType.
Speed:dintAn explicit type wins.
Program:MainProgram.SpeedA program-scoped tag. The colon is part of the path.
Zones[0].Heater.On:boolArray elements and UDT members.
The trap

CIP is strongly typed and the controller rejects a read whose declared type does not match, so the type has to come from somewhere. Unknown falls back to REAL, which most process values are.