Communitygithub.com

iaiops – Industrielle Datenanbindung + intelligente Fehlersuche

Ein MCP-Server mit 66 Werkzeugen für 8 Industrieprotokolle und einer protokollübergreifenden Analyseebene, entwickelt für OT-Bestandsaufnahme, OEE und Fehlerdiagnose.

Was ist iaiops – Industrielle Datenanbindung + intelligente Fehlersuche?

iaiops ist ein leistungsstarker, governance-gesteuerter MCP-Server, der 66 Werkzeuge über 8 Industrieprotokolle (OPC-UA, Modbus, Siemens S7, Mitsubishi MC, MTConnect, MQTT/Sparkplug B, Allen-Bradley EtherNet/IP, EtherCAT) hinweg bereitstellt. Das Kernmerkmal ist eine strenge Governance: Lese-Werkzeuge sind standardmäßig aktiv, während die sechs Schreib-Werkzeuge (wie `s7_write_db` oder `ethercat_set_state`) als Management-of-Change eingestuft sind – sie erfordern explizite Aktivierung, laufen standardmäßig mit `dry_run=True`, verlangen eine doppelte Bestätigung auf der CLI und zeichnen den Vorher-Wert für eine mögliche Rückgängigmachung auf. Die Plattform unterstützt typische Aufgaben der industriellen Automatisierung: Diagnose von „keine Daten“/„veralteten Tags“, Alarmflut-Analyse nach ISA-18.2, OEE-Berechnung und Anomalieerkennung. Zusätzlich bietet iaiops protokollübergreifende Analysewerkzeuge wie `diagnose_dataflow`, `historian_health` und `alarm_bad_actors`. Die Einrichtung erfolgt über den Befehl `iaiops init`, der eine interaktive Konfiguration mit verschlüsselter Geheimnisverwaltung bereitstellt. Die Sicherheitsphilosophie ist klar: „Lesen zuerst“ und niemals in ein Produktionsleitsystem ohne Autorisierung schreiben. EtherCAT erfordert Linux mit Root-Rechten und dedizierter Netzwerkkarte – kein Softwaresimulator.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add industrial-aiops/industrial-aiops

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

iaiops — Industrielle Datenanbindung + intelligente Fehlersuche

Ein governance-gesteuerter MCP-Server, der 66 Werkzeuge über 8 Industrieprotokolle sowie eine protokollübergreifende Analyseebene bereitstellt. Jedes Werkzeug läuft im iaiops-Governance-Rahmen (Prüfung / Budget / Risikostufe / Rückgängig). Lesen zuerst. Die 6 Schreibwerkzeuge sind als Management-of-Change abgesichert: risk=HIGH, dry_run=True standardmäßig, die CLI erfordert eine doppelte Bestätigung, der Vorher-Wert wird für die Rückgängigmachung erfasst. Nie in ein Produktionsleitsystem ohne Autorisierung schreiben. Vorschau / Mock- oder Simulator-gültig – gegen echte Anlagen verifizieren. Beginnen Sie mit protocols_supported, um die konfigurierten Protokolle zu sehen, und <protokoll> doctor, um eine Verbindung zu testen.

Wann hierher weiterleiten

Aufgabe erwähnt: OPC-UA / opc.tcp, Modbus, Siemens S7 / S7-1200/1500, Mitsubishi / MELSEC, MTConnect / CNC-Maschinenüberwachung, MQTT / Sparkplug B / Unified Namespace, Allen-Bradley / ControlLogix / CompactLogix / EtherNet-IP, EtherCAT / CoE / SDO / PDO / SOEM, OEE / Stillstand, OT-Anlagenbestand, Diagnose „keine Daten / veralteter Tag“, Alarmflut / ISA-18.2.

Werkzeuge nach Protokoll

OPC-UA (nur lesen) — opc.tcp-Endpunkte

  • opcua_server_info — Status, Build-Informationen, Namensraum-Array
  • opcua_browse — Knotenbaum durchsuchen, ausgehend von einer Knoten-ID (begrenzte Tiefe)
  • opcua_read_node — Wert + Datentyp + Quellzeitstempel + Statuscode
  • opcua_read_many — Stapelverarbeitung von Knoten-IDs (begrenzt)
  • opcua_subscribe_sample — Begrenzte Abtastung, dann Rückgabe (keine Endlosschleife)
  • opcua_read_alarms — Best-Effort-Erfassung aktiver Alarme/Zustände
  • opcua_read_history — Historischer Zugriff (HDA): Rohverlauf über ein [Start,Ende]-Fenster
  • health_summary — Knoten-IDs gegen Warn-/Alarmschwellen klassifizieren
  • anomaly_scan — Stichprobe eines Knotens, statistische Ausreißer markieren

Modbus-TCP (hier nur lesen)

  • modbus_read_holding (FC03), modbus_read_input (FC04), modbus_read_coils (FC01), modbus_read_discrete (FC02) — mit Decodierungshinweisen
  • modbus_health_summary — Register gegen Schwellen klassifizieren

Siemens S7comm (pyS7; S7-300/400/1200/1500)

  • s7_cpu_info — CPU-Identität + Run/Stop
  • s7_read_area — N Elemente eines Typs aus einem S7-Speicherbereich lesen
  • s7_read_db — N Elemente aus einem Datenbaustein lesen
  • s7_read_many — Stapelverarbeitung roher pyS7-Adresszeichenfolgen
  • s7_write_db — [SCHREIBEN][HIGH][MOC] einen Wert in einen DB schreiben (standardmäßig deaktiviert)

Mitsubishi MC (pymcprotocol 3E; Q/L/iQ)

  • mc_cpu_status — MELSEC CPU-Typ/Code
  • mc_read_words / mc_read_bits — Stapelverarbeitung von Wort-/Bit-Geräten ab einem Kopfgerät
  • mc_read_many — Zufallslesen verteilter Wort- + Doppelwort-Geräte in einer Anforderung
  • mc_write_words — [SCHREIBEN][HIGH][MOC] Wörter schreiben (standardmäßig deaktiviert)

MTConnect (nur lesen; alle CNC-Werkzeugmaschinen)

  • mtconnect_probe — Gerätemodell (Geräte → Komponenten → Datenelemente)
  • mtconnect_current — Aktuellster Wert jedes Datenelements (Maschinenschnappschuss)
  • mtconnect_sample — Begrenzter Strom aktueller Beobachtungen
  • mtconnect_assets — Schneidwerkzeuge / Vorrichtungen / Programme
  • mtconnect_oee_snapshot — Verfügbarkeit / Ausführung / Modus / Programm (OEE-Eingaben)

MQTT / Sparkplug B / UNS (paho-mqtt; vollständige Tahu-Protobuf-Dekodierung)

  • mqtt_read_topic — Einfache MQTT-Sammlung begrenzter Nachrichten
  • sparkplug_decode_payload — Eine rohe Sparkplug-B-Nutzlast in Metriken dekodieren
  • sparkplug_subscribe_sample — Begrenzte Abtastung mit vollständiger Dekodierung + Birth/Death/Seq
  • sparkplug_node_list — Edge-Knoten/Geräte + Online-Status + Primary-Host-Status
  • uns_browse — Den live-Topic-Baum (UNS) unter einem Filter durchsuchen (begrenzt)
  • mqtt_publish — [SCHREIBEN][HIGH][MOC] Veröffentlichen/Befehl an ein Topic (standardmäßig deaktiviert)

Allen-Bradley EtherNet/IP (pycomm3; ControlLogix/CompactLogix)

  • eip_controller_info — Controller-Identität (beweist die CIP-Verbindung)
  • eip_list_tags — Controller-Tag-Liste entdecken (Namen/Typen/Strukturen)
  • eip_read_tag — Ein Tag (oder Array-Element) mit seinem Typ lesen
  • eip_read_many — Stapelverarbeitung (automatisch Mehrfachpakete)
  • eip_write_tag — [SCHREIBEN][HIGH][MOC] Einen Tag-Wert schreiben (standardmäßig deaktiviert)

EtherCAT (pysoem/SOEM; Linux + root/CAP_NET_RAW + dedizierte NIC + echte Slaves)

Optionale Zusatzinstallation pip install iaiops[ethercat]; kein Softwaresimulator (nur Hardware, macOS nicht unterstützt). Werkzeuge degradieren zu einem Lehrfehler, wenn pysoem/Berechtigung/NIC/Bus fehlt.

  • ethercat_master_state — Master-/Working-Counter-Status + erwartete vs. gefundene Slave-Anzahl
  • ethercat_slaves — Bus-Scan: Slaves auflisten (ID/Hersteller/Produkt/Revision/Adresse/AL-State)
  • ethercat_slave_info — Ein Slave: SM/FMMU-Konfiguration + Objektverzeichnis-Zusammenfassung
  • ethercat_read_sdo — CoE SDO-Upload (azyklischer Mailbox-Read eines OD-Eintrags)
  • ethercat_read_pdo — Ein zyklischer Schnappschuss der Eingangs-Prozessdaten eines Slaves
  • ethercat_write_sdo — [SCHREIBEN][HIGH][MOC] CoE SDO-Download (standardmäßig deaktiviert)
  • ethercat_set_state — [SCHREIBEN][HIGH][MOC] AL-State-Übergang (kann Bewegung STARTEN/STOPPEN; standardmäßig deaktiviert)

Protokollübergreifende Analyse

Diagnose — skills-Dach: Fehlersuche

  • diagnose_dataflow — Lokalisieren Sie einen „keine Daten“-Bruch über die erreichbaren Hops eines Endpunkts
  • historian_health — Erkennung von schlechten Tags / Flatlines / Lücken über eine Serie
  • alarm_bad_actors — ISA-18.2-Alarmflut-Analyse (Rate vs. <6/12/30, Pareto-Übeltäter, Chatter, Stehend) über eine Ereignisliste
  • tag_health — Tag-Übeltäter nach schlechter Qualität / Flatline / Bereich / Anomalie einstufen

Analytik

  • oee_compute — OEE = Verfügbarkeit × Leistung × Qualität
  • downtime_events — Übergänge von Laufend→Gestoppt erkennen, Stillstände kategorisieren
  • oee_multidim — OEE über Maschine × Teil × Schicht aggregieren
  • asset_inventory — Endpunkte aktiv fingerprinten (Hersteller/Modell/Firmware/Protokoll) in ein Anlagenregister (aktive Erkundung, nicht passiver SPAN/Tap)
  • monitor_changes — Nur die WERTÄNDERUNGEN eines Punktes über ein begrenztes Fenster erfassen

Meta / Roadmap

  • protocols_supported — Fähigkeitskarte (Protokolle, Status, Werkzeuge, Verbindungsparameter)
  • Roadmap: EtherCAT EoE/FoE/SoE-Mailbox-Protokolle; EtherNet/IP PLC-5 / SLC (PCCC), Micro800; passive Asset-Erkennung; OPC-UA-Zertifikatssicherheit.

Einrichtung

iaiops init (interaktiver Assistent, protokollspezifische Eingabeaufforderungen) schreibt ~/.iaiops/config.yaml; Anmeldeinformationen werden im verschlüsselten Speicher (~/.iaiops/secrets.enc, Master-Passwort über IAIOPS_MASTER_PASSWORD) abgelegt. Führen Sie iaiops doctor aus, um jeden konfigurierten Endpunkt zu testen. Vollständige protokollspezifische Referenz, Verbindungsparameter, Simulatortest-Anleitung und MCP-JSON-Beispiele befinden sich in der README.

Sicherheit

Lesen zuerst. Die 6 Schreibwerkzeuge (s7_write_db, mc_write_words, mqtt_publish, eip_write_tag, ethercat_write_sdo, ethercat_set_state) laufen standardmäßig mit dry_run=True, erfordern eine doppelte Bestätigung auf der CLI und zeichnen einen Rückgängig-Deskriptor aus dem erfassten Vorher-Wert/Zustand auf. EtherCAT-Zustandsänderungen können Maschinenbewegungen STARTEN oder STOPPEN. Richten Sie dies nicht auf Produktionsleitsysteme ohne Autorisierung. Kein Werkzeug gibt Geheimnisse preis.

Verwandte Skills