Ir al contenido

Conector Logix

El conector Logix permite la comunicación con PLCs Allen-Bradley/Rockwell Automation usando el protocolo EtherNet/IP (CIP). Esto incluye ControlLogix, CompactLogix y otros controladores basados en Logix.

Tipos de Conector:

  • LogixReader - Lee tags de PLCs Logix
  • LogixWriter - Escribe tags en PLCs Logix
  • ✅ Soporte de protocolo EtherNet/IP (CIP)
  • ✅ Opciones de transporte TCP y UDP
  • ✅ Múltiples tipos de datos (BOOL, SINT, INT, DINT, LINT, REAL, LREAL, STRING)
  • ✅ Enrutamiento de slot configurable
  • ✅ Adquisición de datos basada en polling
{
"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"
}
]
}
ParámetroTipoRequeridoDescripción
endpointstringDirección del PLC (host:puerto). Puerto por defecto es 44818
protocolstringProtocolo de transporte: TCP o UDP
pollingRateinteger✅ (Reader)Intervalo de polling en milisegundos
slotintegerNúmero de slot para enrutamiento de chasis (por defecto: 0)
ParámetroTipoRequeridoDescripción
keystringNombre de clave de salida en el payload de datos
tagNamestringNombre del tag del PLC (ej. Program:TagName)
dataTypestringTipo de datos del tag
{
"key": "motor_status",
"tagName": "Motor_Running",
"dataType": "BOOL"
}

Para sistemas ControlLogix con múltiples slots, especifica el número de slot:

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

El parámetro slot configura la ruta de enrutamiento CIP para alcanzar el controlador objetivo.

Lee variables de proceso de un PLC ControlLogix:

{
"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"
}
]
}

Escribe setpoints en un 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"
}
]
}

Lee estadísticas de producción:

{
"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"
}
]
}

Soluciones:

  • Verifica la dirección IP y puerto del PLC (por defecto: 44818)
  • Comprueba la conectividad de red y reglas de firewall
  • Asegúrate de que el PLC esté en modo Run
  • Verifica que el módulo Ethernet esté configurado correctamente

Soluciones:

  • Verifica que el nombre del tag sea correcto (sensible a mayúsculas)
  • Comprueba el scope del tag (controller vs program scope)
  • Asegúrate de que el tipo de datos coincida con la definición del tag del PLC
  • Verifica que el tag no esté protegido o sea de solo lectura (para escrituras)

Soluciones:

  • Coincide exactamente el tipo de datos con la definición del tag del PLC
  • Usa el tipo correcto para arrays (lee elementos individuales)
  • Comprueba UDT (User Defined Type) - no soportado directamente

Soluciones:

  • Verifica que el número de slot coincida con la ubicación del controlador
  • Comprueba la configuración del chasis
  • Asegúrate de que el módulo de comunicación esté en el slot correcto
  1. Usa Nombres de Tag Descriptivos: Sigue las convenciones de nomenclatura del PLC
  2. Tasa de Polling Apropiada: Equilibra la frescura de datos con la carga de red
  3. Agrupa Tags Relacionados: Organiza variables por función o área
  4. Maneja Pérdida de Conexión: Implementa lógica de reintento en workflows
  5. Prueba en Modo Offline: Verifica nombres de tags antes de conectar a PLCs de producción
  • OPC UA - Protocolo industrial alternativo
  • Modbus - Protocolo industrial legacy
  • Siemens S7 - Comunicación con PLCs Siemens
  • InfluxDB - Almacena datos de PLC en base de datos de series temporales