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-Arrayopcua_browse— Knotenbaum durchsuchen, ausgehend von einer Knoten-ID (begrenzte Tiefe)opcua_read_node— Wert + Datentyp + Quellzeitstempel + Statuscodeopcua_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ändeopcua_read_history— Historischer Zugriff (HDA): Rohverlauf über ein [Start,Ende]-Fensterhealth_summary— Knoten-IDs gegen Warn-/Alarmschwellen klassifizierenanomaly_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 Decodierungshinweisenmodbus_health_summary— Register gegen Schwellen klassifizieren
Siemens S7comm (pyS7; S7-300/400/1200/1500)
s7_cpu_info— CPU-Identität + Run/Stops7_read_area— N Elemente eines Typs aus einem S7-Speicherbereich lesens7_read_db— N Elemente aus einem Datenbaustein lesens7_read_many— Stapelverarbeitung roher pyS7-Adresszeichenfolgens7_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/Codemc_read_words/mc_read_bits— Stapelverarbeitung von Wort-/Bit-Geräten ab einem Kopfgerätmc_read_many— Zufallslesen verteilter Wort- + Doppelwort-Geräte in einer Anforderungmc_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 Beobachtungenmtconnect_assets— Schneidwerkzeuge / Vorrichtungen / Programmemtconnect_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 Nachrichtensparkplug_decode_payload— Eine rohe Sparkplug-B-Nutzlast in Metriken dekodierensparkplug_subscribe_sample— Begrenzte Abtastung mit vollständiger Dekodierung + Birth/Death/Seqsparkplug_node_list— Edge-Knoten/Geräte + Online-Status + Primary-Host-Statusuns_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 leseneip_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-Anzahlethercat_slaves— Bus-Scan: Slaves auflisten (ID/Hersteller/Produkt/Revision/Adresse/AL-State)ethercat_slave_info— Ein Slave: SM/FMMU-Konfiguration + Objektverzeichnis-Zusammenfassungethercat_read_sdo— CoE SDO-Upload (azyklischer Mailbox-Read eines OD-Eintrags)ethercat_read_pdo— Ein zyklischer Schnappschuss der Eingangs-Prozessdaten eines Slavesethercat_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 Endpunktshistorian_health— Erkennung von schlechten Tags / Flatlines / Lücken über eine Seriealarm_bad_actors— ISA-18.2-Alarmflut-Analyse (Rate vs. <6/12/30, Pareto-Übeltäter, Chatter, Stehend) über eine Ereignislistetag_health— Tag-Übeltäter nach schlechter Qualität / Flatline / Bereich / Anomalie einstufen
Analytik
oee_compute— OEE = Verfügbarkeit × Leistung × Qualitätdowntime_events— Übergänge von Laufend→Gestoppt erkennen, Stillstände kategorisierenoee_multidim— OEE über Maschine × Teil × Schicht aggregierenasset_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.