Salta ai contenuti

Connettore Logix

Il connettore Logix abilita la comunicazione con PLC Allen-Bradley/Rockwell Automation utilizzando il protocollo EtherNet/IP (CIP). Include ControlLogix, CompactLogix e altri controller basati su Logix.

Tipi Connettore:

  • LogixReader - Leggi tag da PLC Logix
  • LogixWriter - Scrivi tag su PLC Logix
  • ✅ Supporto protocollo EtherNet/IP (CIP)
  • ✅ Opzioni trasporto TCP e UDP
  • ✅ Multipli tipi di dati (BOOL, SINT, INT, DINT, LINT, REAL, LREAL, STRING)
  • ✅ Routing slot configurabile
  • ✅ Acquisizione dati basata su 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"
}
]
}
ParametroTipoRichiestoDescrizione
endpointstringIndirizzo PLC (host:porta). Porta default 44818
protocolstringProtocollo trasporto: TCP o UDP
pollingRateinteger✅ (Reader)Intervallo polling in millisecondi
slotintegerNumero slot per routing chassis (default: 0)
ParametroTipoRichiestoDescrizione
keystringNome chiave output nel payload dati
tagNamestringNome tag PLC (es. Program:TagName)
dataTypestringTipo dati del tag
{
"key": "motor_status",
"tagName": "Motor_Running",
"dataType": "BOOL"
}

Per sistemi ControlLogix con slot multipli, specifica il numero slot:

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

Il parametro slot configura il percorso di routing CIP per raggiungere il controller target.

Leggi variabili di processo da 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"
}
]
}

Scrivi setpoint su 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"
}
]
}

Leggi statistiche di produzione:

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

Soluzioni:

  • Verifica indirizzo IP e porta PLC (default: 44818)
  • Controlla connettività di rete e regole firewall
  • Assicurati che il PLC sia in modalità Run
  • Verifica che il modulo Ethernet sia configurato correttamente

Soluzioni:

  • Verifica che il nome tag sia corretto (case-sensitive)
  • Controlla lo scope del tag (controller vs program scope)
  • Assicurati che il tipo dati corrisponda alla definizione tag PLC
  • Verifica che il tag non sia protetto o read-only (per scritture)

Soluzioni:

  • Abbina esattamente il tipo dati alla definizione tag PLC
  • Usa il tipo corretto per array (leggi elementi individuali)
  • Controlla per UDT (User Defined Type) - non supportati direttamente

Soluzioni:

  • Verifica che il numero slot corrisponda alla posizione controller
  • Controlla la configurazione chassis
  • Assicurati che il modulo comunicazione sia nello slot corretto
  1. Usa Nomi Tag Descrittivi: Segui le convenzioni di naming PLC
  2. Frequenza Polling Appropriata: Bilancia freschezza dati con carico rete
  3. Raggruppa Tag Correlati: Organizza variabili per funzione o area
  4. Gestisci Perdita Connessione: Implementa logica retry nei workflow
  5. Testa in Modalità Offline: Verifica nomi tag prima di connetterti a PLC di produzione
  • OPC UA - Protocollo industriale alternativo
  • Modbus - Protocollo industriale legacy
  • Siemens S7 - Comunicazione PLC Siemens
  • InfluxDB - Memorizza dati PLC in database time-series