CIP protocol Tag-based PLC communication library supporting Allen-Bradley, ICON, and Omron PLCs via EtherNet/IP.
$ dotnet add package PlcCipTagCIP protocol Tag-based PLC communication library for .NET, supporting Allen-Bradley, ICON, and Omron PLCs via EtherNet/IP.
| Class | PLC | Backend |
|---|---|---|
PLC_OpenAb | Allen-Bradley ControlLogix | libplctag.NET |
PLC_Icon | ICON (Omron-based) | libplctag.NET |
PLC_OMRON | Omron NJ/NX | Native CIP over TCP |
All implementations share the ITagPlc interface.
| Type | Read | Write | Array Read | Array Write |
|---|---|---|---|---|
| float (REAL) | ReadFloat | WriteFloat | ReadFloatArray | WriteFloatArray |
| int (DINT) | — | — | ReadDINTArray | WriteDINTArray |
| bool (BOOL) | — | WriteBool | ReadBoolArray | WriteBoolArray |
| string (STRING) | — | WriteString | ReadStringArray | WriteStringArray |
Every method has a corresponding Async variant.
// Allen-Bradley
using ITagPlc plc = new PLC_OpenAb("192.168.1.10");
float value = plc.ReadFloat("MyTag");
plc.WriteFloatArray("MyArray", new float[] { 1.0f, 2.0f, 3.0f });
// Omron
using ITagPlc omron = new PLC_OMRON("192.168.1.20", path: "1,0");
var data = await omron.ReadFloatArrayAsync("SensorData[0]", 100);
<PackageReference Include="PlcCipTag" Version="*" />
Or build from source:
dotnet build PlcCipTag.csproj
netstandard2.0 · net6.0 · net8.0 · net9.0 · net10.0
Apache-2.0