Logix Connector
Overview
Section titled “Overview”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 PLCsLogixWriter- Write tags to Logix PLCs
Features
Section titled “Features”- ✅ 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
Basic Configuration
Section titled “Basic Configuration”Logix Reader
Section titled “Logix Reader”{ "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" } ]}Logix Writer
Section titled “Logix Writer”{ "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" } ]}Configuration Parameters
Section titled “Configuration Parameters”Connection Config
Section titled “Connection Config”| Parameter | Type | Required | Description |
|---|---|---|---|
endpoint | string | ✅ | PLC address (host:port). Default port is 44818 |
protocol | string | ✅ | Transport protocol: TCP or UDP |
pollingRate | integer | ✅ (Reader) | Polling interval in milliseconds |
slot | integer | ❌ | Slot number for chassis routing (default: 0) |
Variable Config
Section titled “Variable Config”| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | ✅ | Output key name in data payload |
tagName | string | ✅ | PLC tag name (e.g., Program:TagName) |
dataType | string | ✅ | Data type of the tag |
Data Types
Section titled “Data Types”{ "key": "motor_status", "tagName": "Motor_Running", "dataType": "BOOL"}// 8-bit signed integer (-128 to 127){"dataType": "SINT"}
// 16-bit signed integer (-32768 to 32767){"dataType": "INT"}
// 32-bit signed integer{"dataType": "DINT"}
// 64-bit signed integer{"dataType": "LINT"}// 32-bit float{"dataType": "REAL"}
// 64-bit float (double precision){"dataType": "LREAL"}{ "key": "product_name", "tagName": "Product_Name", "dataType": "STRING"}Slot Routing
Section titled “Slot Routing”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.
Common Use Cases
Section titled “Common Use Cases”1. Process Monitoring
Section titled “1. Process Monitoring”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" } ]}2. Setpoint Control
Section titled “2. Setpoint Control”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" } ]}3. Production Counters
Section titled “3. Production Counters”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" } ]}Troubleshooting
Section titled “Troubleshooting”Connection Failed
Section titled “Connection Failed”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
Tag Read/Write Failed
Section titled “Tag Read/Write Failed”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)
Invalid Data Type
Section titled “Invalid Data Type”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
Slot Routing Error
Section titled “Slot Routing Error”Solutions:
- Verify slot number matches controller location
- Check chassis configuration
- Ensure communication module is in correct slot
Best Practices
Section titled “Best Practices”- Use Descriptive Tag Names: Match PLC naming conventions
- Appropriate Polling Rate: Balance data freshness with network load
- Group Related Tags: Organize variables by function or area
- Handle Connection Loss: Implement retry logic in workflows
- Test in Offline Mode: Verify tag names before connecting to production PLCs
Related Connectors
Section titled “Related Connectors”- OPC UA - Alternative industrial protocol
- Modbus - Legacy industrial protocol
- Siemens S7 - Siemens PLC communication
- InfluxDB - Store PLC data in time-series database