Skip to content

Logix Connector

The Logix connector enables communication with Allen-Bradley/Rockwell Automation PLCs using the EtherNet/IP (CIP) protocol. This includes ControlLogix, CompactLogix, and other Logix-based controllers.

Connector Types:

  • LogixReader - Read tags from Logix PLCs
  • LogixWriter - Write tags to Logix PLCs
  • ✅ EtherNet/IP (CIP) protocol support
  • ✅ TCP and UDP transport options
  • ✅ Multiple data types (BOOL, SINT, INT, DINT, LINT, REAL, LREAL, STRING)
  • ✅ Configurable slot routing
  • ✅ Polling-based data acquisition
{
"type": "LogixReader",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"pollingRate": 1000,
"slot": 0
},
"variables": [
{
"key": "temperature",
"tagName": "MainProgram:Temperature",
"dataType": "REAL"
},
{
"key": "motor_running",
"tagName": "MainProgram:Motor_Running",
"dataType": "BOOL"
}
]
}
{
"type": "LogixWriter",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"slot": 0
},
"variables": [
{
"key": "setpoint",
"tagName": "MainProgram:Setpoint",
"dataType": "REAL"
},
{
"key": "enable",
"tagName": "MainProgram:Enable",
"dataType": "BOOL"
}
]
}
ParameterTypeRequiredDescription
endpointstringPLC address (host:port). Default port is 44818
protocolstringTransport protocol: TCP or UDP
pollingRateinteger✅ (Reader)Polling interval in milliseconds
slotintegerSlot number for chassis routing (default: 0)
ParameterTypeRequiredDescription
keystringOutput key name in data payload
tagNamestringPLC tag name (e.g., Program:TagName)
dataTypestringData type of the tag
{
"key": "motor_status",
"tagName": "Motor_Running",
"dataType": "BOOL"
}

For ControlLogix systems with multiple slots, specify the slot number:

{
"endpoint": "192.168.1.100",
"protocol": "TCP",
"slot": 2
}

The slot parameter configures the CIP routing path to reach the target controller.

Read process variables from a ControlLogix PLC:

{
"type": "LogixReader",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"pollingRate": 500,
"slot": 0
},
"variables": [
{
"key": "temperature",
"tagName": "Process:Temperature_PV",
"dataType": "REAL"
},
{
"key": "pressure",
"tagName": "Process:Pressure_PV",
"dataType": "REAL"
},
{
"key": "flow_rate",
"tagName": "Process:Flow_Rate",
"dataType": "REAL"
},
{
"key": "valve_position",
"tagName": "Process:Valve_Position",
"dataType": "INT"
}
]
}

Write setpoints to a PLC:

{
"type": "LogixWriter",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"slot": 0
},
"variables": [
{
"key": "temp_setpoint",
"tagName": "Process:Temperature_SP",
"dataType": "REAL"
},
{
"key": "pressure_setpoint",
"tagName": "Process:Pressure_SP",
"dataType": "REAL"
},
{
"key": "auto_mode",
"tagName": "Process:Auto_Mode",
"dataType": "BOOL"
}
]
}

Read production statistics:

{
"type": "LogixReader",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"pollingRate": 5000
},
"variables": [
{
"key": "total_count",
"tagName": "Production:Total_Count",
"dataType": "DINT"
},
{
"key": "good_count",
"tagName": "Production:Good_Count",
"dataType": "DINT"
},
{
"key": "reject_count",
"tagName": "Production:Reject_Count",
"dataType": "DINT"
},
{
"key": "batch_id",
"tagName": "Production:Batch_ID",
"dataType": "STRING"
}
]
}

Solutions:

  • Verify PLC IP address and port (default: 44818)
  • Check network connectivity and firewall rules
  • Ensure PLC is in Run mode
  • Verify Ethernet module is properly configured

Solutions:

  • Verify tag name is correct (case-sensitive)
  • Check tag scope (controller vs program scope)
  • Ensure data type matches PLC tag type
  • Verify tag is not protected or read-only (for writes)

Solutions:

  • Match data type exactly to PLC tag definition
  • Use correct type for arrays (read individual elements)
  • Check for UDT (User Defined Type) - not directly supported

Solutions:

  • Verify slot number matches controller location
  • Check chassis configuration
  • Ensure communication module is in correct slot
  1. Use Descriptive Tag Names: Match PLC naming conventions
  2. Appropriate Polling Rate: Balance data freshness with network load
  3. Group Related Tags: Organize variables by function or area
  4. Handle Connection Loss: Implement retry logic in workflows
  5. Test in Offline Mode: Verify tag names before connecting to production PLCs
  • OPC UA - Alternative industrial protocol
  • Modbus - Legacy industrial protocol
  • Siemens S7 - Siemens PLC communication
  • InfluxDB - Store PLC data in time-series database