Zum Inhalt springen

Logix-Konnektor

Der Logix-Konnektor ermöglicht die Kommunikation mit Allen-Bradley/Rockwell Automation SPSen über das EtherNet/IP (CIP)-Protokoll. Dies umfasst ControlLogix, CompactLogix und andere Logix-basierte Controller.

Konnektor-Typen:

  • LogixReader - Tags von Logix-SPSen lesen
  • LogixWriter - Tags auf Logix-SPSen schreiben
  • ✅ EtherNet/IP (CIP)-Protokollunterstützung
  • ✅ TCP- und UDP-Transportoptionen
  • ✅ Mehrere Datentypen (BOOL, SINT, INT, DINT, LINT, REAL, LREAL, STRING)
  • ✅ Konfigurierbares Slot-Routing
  • ✅ Polling-basierte Datenerfassung
{
"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"
}
]
}
ParameterTypErforderlichBeschreibung
endpointstringSPS-Adresse (Host:Port). Standardport ist 44818
protocolstringTransportprotokoll: TCP oder UDP
pollingRateinteger✅ (Reader)Polling-Intervall in Millisekunden
slotintegerSlot-Nummer für Chassis-Routing (Standard: 0)
ParameterTypErforderlichBeschreibung
keystringAusgabeschlüsselname im Daten-Payload
tagNamestringSPS-Tag-Name (z.B. Program:TagName)
dataTypestringDatentyp des Tags
{
"key": "motor_status",
"tagName": "Motor_Running",
"dataType": "BOOL"
}

Für ControlLogix-Systeme mit mehreren Slots die Slot-Nummer angeben:

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

Der Slot-Parameter konfiguriert den CIP-Routing-Pfad zum Ziel-Controller.

Prozessvariablen von einer ControlLogix-SPS lesen:

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

Sollwerte auf eine SPS schreiben:

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

Produktionsstatistiken lesen:

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

Lösungen:

  • SPS-IP-Adresse und Port überprüfen (Standard: 44818)
  • Netzwerkverbindung und Firewall-Regeln prüfen
  • Sicherstellen, dass die SPS im Run-Modus ist
  • Überprüfen, ob das Ethernet-Modul korrekt konfiguriert ist

Lösungen:

  • Tag-Name auf Korrektheit prüfen (Groß-/Kleinschreibung beachten)
  • Tag-Scope prüfen (Controller vs. Programm-Scope)
  • Sicherstellen, dass der Datentyp mit der SPS-Tag-Definition übereinstimmt
  • Überprüfen, ob das Tag geschützt oder schreibgeschützt ist (für Schreibvorgänge)

Lösungen:

  • Datentyp exakt mit der SPS-Tag-Definition abgleichen
  • Korrekten Typ für Arrays verwenden (einzelne Elemente lesen)
  • Auf UDT (User Defined Type) prüfen - nicht direkt unterstützt

Lösungen:

  • Slot-Nummer mit Controller-Position abgleichen
  • Chassis-Konfiguration prüfen
  • Sicherstellen, dass das Kommunikationsmodul im richtigen Slot ist
  1. Beschreibende Tag-Namen verwenden: SPS-Namenskonventionen folgen
  2. Angemessene Polling-Rate: Datenaktualität mit Netzwerklast ausbalancieren
  3. Verwandte Tags gruppieren: Variablen nach Funktion oder Bereich organisieren
  4. Verbindungsverlust behandeln: Retry-Logik in Workflows implementieren
  5. Im Offline-Modus testen: Tag-Namen vor Verbindung zu Produktions-SPSen überprüfen
  • OPC UA - Alternatives industrielles Protokoll
  • Modbus - Legacy-Industrieprotokoll
  • Siemens S7 - Siemens-SPS-Kommunikation
  • InfluxDB - SPS-Daten in Zeitreihendatenbank speichern