Zum Hauptinhalt springen

TimeSeries-Insight (KI-Analyse-Engine)

Übersicht​

PlantPulse TimeSeries-Insight ist ein MCP-Server für KI-Anomalieerkennung, Prognose und umfassende Analyse, der auf Zeitreihendaten aus der Fertigung spezialisiert ist.

Mit den KI-Modellen IBM Granite TSPulse (Anomalieerkennung) und TinyTimeMixer TTM (Prognose) bietet er intelligente Analysen für sämtliche Zeitreihendaten der Fabrik — Sensordaten, OEE, RAM, EMS, Alarme, Arbeitsaufträge und mehr.

Mit 39 Analyse-Werkzeugen und einem Feature Store werden sowohl Echtzeitanalysen als auch vorberechnete umfassende Erkenntnisse unterstützt. Ab 2026.10 wartet die Engine nicht mehr darauf, als Werkzeug aufgerufen zu werden, sondern findet Probleme von sich aus und hält sie als «Fund» fest, und der Copilot nimmt diesen auf und meldet ihn dem Menschen → KI-Funde und Genauigkeit

Aufgeteilt in zwei Dienste

insight-api(:8970) ist für Werkzeuge und Daten zuständig, die Modellinferenz (TSPulse·TTM) wird an insight-server(:8980) delegiert. Die GPU wird nur für die Inferenz benötigt, daher können die beiden Dienste auf unterschiedlichen Geräten laufen.


Wo Anomalieerkennung im Copilot zu sehen ist​

Von der Engine gefundene Anlagenanomalien erscheinen im Copilot unter Vorschläge › Aufgaben › Unerwartet als zu prüfende Anomalie. Pro Anlage eine Zeile; klickt man eine Zeile an, sieht man im Detail Trendlinie · zugehörige Tags · Begründung und entscheidet Als Incident melden oder Ignorieren (mit Begründung) → Vorschläge

Detail der zu prüfenden Anomalie — ① Fortschrittsstufe ② Was die KI gesehen hat ③ Begründung ④ Ignorieren · Als Incident melden

Das frühere Menü «Anomaliediagnose» samt der darin enthaltenen «Betriebskonsole» ist entfallen; diese Aufgabe erledigt man nun unter Vorschläge › Unerwartet (die alte Adresse /anomaly leitet nicht mehr weiter).

Was früher in der Betriebskonsole erledigt wurdeJetzt
Anomalieliste durchsehen · prüfenVorschläge › Aufgaben › Unerwartet. Nach Dringlichkeit sortiert
Als korrekt/falsch markieren (KI-Bewertung)Bei Fehlalarm wird unter Ignorieren ein Grund ausgewählt → KI-Funde und Genauigkeit
Schaltfläche «Ausführen» für Vollscan · ZielscanEs gibt keine Schaltfläche mehr. Der Server läuft nach festem Zyklus — siehe unten
Anlagen-ZeitachseBei Installationen mit verbundenem Digital Thread einfach fragen: „Zeig mir chronologisch, was bei dieser Anlage zuletzt passiert ist“

Erkennung erfolgt in zwei Zyklen​

Was wird geprüftWann (Standard)
VollscanAlle AnlagenAlle 2 Stunden
ZielerkennungNur Anlagen mit kürzlichem AlarmAlle 10 Minuten

Zyklus · Kriterien für Schweregrad · Benachrichtigungskanäle finden Sie unter Anomalieerkennung · Incident-Reaktion.

Die frühere Möglichkeit, Benachrichtigungen pro Anlage stummzuschalten, und der «Noise-Top-10» gibt es im neuen Bildschirm nicht mehr.

Stille Vorschläge bedeuten nicht normal — Anlagen in der Lernphase

Neu angeschlossene oder lange stillstehende Anlagen liefern erst dann Anomaliewerte, wenn pro Tag eine Baseline ermittelt wurde. In dieser Zeit erscheinen Anomalien, selbst wenn vorhanden, nicht als zu prüfende Anomalie → KI-Funde und Genauigkeit — In Lernphase · nicht beurteilbar


KI-Anomalieerkennung (Anomaly Detection)​

Basismodell: IBM Granite TSPulse

ZielWerkzeugAnalyseinhalt
Anlagensensorendetect_asset_anomalyErkennung von Anomaliemustern bei Temperatur, Druck, Vibration usw.
Systemressourcendetect_system_anomalyErkennung von CPU-, Speicher-, Festplattenanomalien
OEEdetect_oee_anomalyAnomaliemuster bei Verfügbarkeit, Leistung, Qualität
RAMdetect_ram_anomalyAnomaliemuster bei MTBF, MTTR
EMSdetect_ems_anomalyAnomalien bei Energieverbrauch, Leistung, CO2-Ausstoß
Arbeitsauftragdetect_order_anomalyAnomalien bei Produktionsqualität (OEE/RAM/EMS/kombiniert)
Alarmdetect_alarm_anomalyAnomaliemuster bei Alarmhäufigkeit

Wichtige Parameter:

  • threshold — Schwellenwert für Anomaliebeurteilung. Bei Anlagensensoren (detect_asset_anomaly) bezieht sich der Wert auf den korrigierten Score, Standard ist 5.0 — 🔴 0 ist nicht «automatisch», sondern zählt fast jeden Punkt als Anomalie
  • top_k — Anzahl der Top-Anomalie-Metriken
  • lookback_minutes — Analysezeitraum
  • target_columns — Analyseziel (bei fehlender Angabe automatische Abfrage aller Sensoren)
Der Score für Anlagensensoren ist «Vielfaches des Normalwerts»

Der Anomalie-Score für Anlagensensoren (score_scale: calibrated) basiert auf dem Abschnitt unmittelbar vor dem Analysefenster und gibt an, um wie viele Vielfache (robuster Z-Wert) der Rekonstruktionsfehler von der typischen Schwankung dieses Abschnitts (Median · MAD) abweicht. 0 bedeutet «normal», 5 ist der Standardschwellenwert.

  • Statustags (Werte wie Betrieb/Stillstand) werden vom Scoring ausgenommen.
  • Zählertags (z. B. kumulierte Produktionsmenge) werden nicht als kumulativer Wert, sondern als Mittelwert der 5-Intervall-Zuwächse betrachtet — so wird erkannt, wenn der Zuwachs bei Produktionsstopp auf 0 fällt.
  • Der vordere Abschnitt, der das erste Modellfenster dupliziert, wird vom Scoring ausgenommen.
  • Aggregations-/Glättungsfenster betragen bei Sensoren 8 / 4 (aggr_win_size · smoothing_window_size). Die früheren Werte 32 / 16 verwischten den Score über fast 30 Minuten und übersahen kurze Stillstände.

Scores im Domänenbereich wie OEE · RAM · EMS werden weiterhin bei jedem Aufruf auf 0–1 normiert — auch beim gleichen threshold unterscheidet sich die Skala.


KI-Prognose (Forecasting)​

Basismodell: TinyTimeMixer — Granite-TTM R3 (512-96-dec-512-r3, Kontext 512 · Prognose 96)

ZielWerkzeugPrognoseinhalt
Anlagensensorenforecast_assetZukünftiger Trend des Sensorwerts
Systemressourcenforecast_systemCPU-/Speicher-/Festplattenauslastung
OEEforecast_oeeZukünftiger Verlauf von Verfügbarkeit, Leistung, Qualität
RAMforecast_ramZukünftiger Trend der Anlagenzuverlässigkeits-Kennzahlen
EMSforecast_emsPrognose zu Energieverbrauch, CO2-Ausstoß
Arbeitsauftragforecast_orderZukünftiger Verlauf der Produktionsqualität
Alarmforecast_alarmTrend der Alarmhäufigkeit, Ausfallprognose

Wichtige Parameter:

  • prediction_length — Anzahl der Prognoseschritte
  • enable_bounds — Ausgabe des Konfidenzintervalls (oben/unten)

Achten Sie auf model_used in der Antwort — 200 heißt nicht automatisch TTM​

Die Prognoseantwort enthält auch die Angabe, womit sie erzeugt wurde.

WertBedeutung
TTMVom trainierten Modell erzeugt
NAIVEAus Datenmangel per drift · seasonal-naive erzeugt. Der Grund steht in fallback_reason
Auch NAIVE liefert HTTP 200

Nur bei Datenmangel meldet die Engine keinen Fehler, sondern fällt auf einfache Extrapolation zurück. Wer beim Aufruf nur auf 200 achtet, sieht statt der „TTM-Prognose“ eine einfache Extrapolation.

Lesen und protokollieren Sie deshalb unbedingt model_used. Steigt NAIVE an, ist das bereits ein Warnsignal.

Spalten, für die selbst einfache Extrapolation keinen Wert liefern kann, werden nicht mit 0 aufgefüllt, sondern in dropped_columns vermerkt und ausgelassen. Fallen alle Spalten aus, folgt 422.

Alle anderen Fehler werden nicht abgefangen — denn wiederholte Versuche beheben sie nicht, und sie dürfen nicht verborgen werden.

WasAntwort
Fataler CUDA-Fehler (GPU ausgefallen) · Inferenz-Warteschlange voll503 + Retry-After
Fehlerhafte Modellkonfiguration (unten) · Laden der Gewichte fehlgeschlagen · Codefehler500

Wurde ein Konfidenzintervall (enable_bounds) angefordert, aber nicht mitgeliefert, erklärt bounds_reason den Grund — hier wird unterschieden zwischen „diese Anlage kann kein Intervall liefern“ und „die gesendeten Daten reichten nicht aus“.

TS_TTM_MODEL_CLASS — Einstellung zur Abstimmung von Checkpoint-Generation und Loader​

Das Prognosemodell (TTM) liest je nach Generation eine andere Klasse. Über eine einzelne Umgebungsvariable in insight-server lässt sich dies wählen (eingeführt in der Version nach dem 2026-09-21 — in früheren Versionen gibt es diese Einstellung nicht, dort ist sie fest auf ForPrediction gesetzt).

WertVerwendung
Leer (Standard)Wird vom config.json(decompose) im Checkpoint bestimmt — meist so belassen
ForPredictionTTM-R2-Checkpoint
ForDecomposedPredictionGranite-TTM-R3 (dekomponierte Prognose)-Checkpoint

Das im Image enthaltene Standardmodell ist R3. R2 ist unter model/ttm-r2 ebenfalls mitgeliefert; beim Zurückwechseln muss nur ein Pfad geändert werden, ohne die Klasse anzufassen.

TS_TTM_DIR=/app/model/ttm-r2 # R2 로 되돌리기 — 클래스는 그 디렉터리의 config 가 정합니다
Eine falsche Klasse wird «ausnahmslos» eingelesen — deshalb wurde dies abgesichert

R2 und R3 haben keine einzige gemeinsame Gewichtsbezeichnung, dennoch liest jede Klasse den Checkpoint der jeweils anderen ausnahmslos ein. Ohne Schutz entstünde ein Modell, bei dem alle 445 Parameter neu (zufällig) initialisiert werden, das aber unter dem Namen model_used="TTM" Antworten liefert.

Aktuell wird beim Laden abgelehnt, sobald auch nur ein Parameter neu erzeugt werden müsste, weil er im Checkpoint fehlt. Im Log erscheint dann Folgendes:

[MODEL_LOAD] TTM dir=… , class=ForPrediction, in_channels=…
[MODEL_LOAD_FAIL] TTM dir=… — 학습된 가중치를 못 읽었다. 무작위 초기화 모델로 대체하지 «않는다».
reason=[ForPrediction] 체크포인트에 없어 새로 지은 파라미터 445개 (예: …) —
클래스가 체크포인트 세대와 맞는지 보라(TS_TTM_MODEL_CLASS)

Ein Konfigurationsfehler bringt den Server nicht zum Absturz — da derselbe Prozess auch die Anomalieerkennung bedient, soll ein Fehler in der Prognosekonfiguration nicht auch unabhängige Funktionen lahmlegen.

Stattdessen zeigt er sich in /health. In models der Antwort erscheint der Ladestatus je Modell, und sobald auch nur eines nicht geladen werden konnte, steht status auf degraded (HTTP bleibt 200). Der vom Container-Healthcheck genutzte /ping meldet 503 nur, wenn beide Modelle ausgefallen sind — damit der Container nicht ständig neu startet, nur weil die Prognose allein ausgefallen ist.

"status": "degraded",
"models": {
"tspulse": { "loaded": true, "error": null },
"ttm": { "loaded": false, "error": "ModelConfigError: …" }
}

⚠ Fehlt in /health der Eintrag models, handelt es sich um eine ältere Version — dort erscheint der Healthcheck weiterhin als normal, prüfen Sie daher anhand der nachfolgenden Prognoseanfrage und Startlogs. Auch das unterscheidet sich je nach Version.

VersionPrognoseanfrageStartlog
Nach 2026-09-21HTTP 500[MODEL_WARMUP_FAIL] TTM ch=… 설정이 체크포인트와 맞지 않는다 — 이 설정으로는 모든 예측이 실패한다
DavorHTTP 200 · model_used="NAIVE"[MODEL_WARMUP_SKIP] TTM ch=…

In älteren Versionen wurde selbst ein Konfigurationsfehler durch einfache Extrapolation abgefangen, sodass der Zustand /health als normal · Prognose 200 · alle Antworten lautlos per einfacher Extrapolation fortbestehen konnte. Heute wird zwischen Fehlern, die auch wiederholte Versuche nicht beheben (Konfiguration), und vorübergehenden Fehlern (z. B. Datenmangel) unterschieden, wobei nur Erstere gemeldet werden.

🔴 Welche der beiden Versionen vorliegt, lässt sich nicht an der Versionsnummer, sondern nur an der «Logzeile» erkennen. Der Image-Tag dieses Monats wird mehrfach mit demselben Datumsstempel neu gebaut (2026.09-<date>-<시각>) — auch bei gleichem 2026.09 können unterschiedliche Versionen vorliegen.

Ein falscher Wert fällt nicht lautlos auf den Standardwert zurück, sondern wird sofort abgelehnt. Es gibt zwei Fälle.

SituationLogmeldung
Unbekannter NameTS_TTM_MODEL_CLASS='…' 를 모른다 — ['ForDecomposedPrediction', 'ForPrediction'] 중 하나여야 한다
Name korrekt, aber Bibliotheksversion zu alt… 를 골랐는데 이 tsfm_public 판에 그 클래스가 없다 (granite-tsfm 0.3.9 이상 필요)

Tiefenanalyse von Alarmen​

WerkzeugBeschreibung
get_alarm_statsZusammenfassung der Alarmstatistik — Häufigkeit, Prioritätsverteilung, Top-Alarme, Top-Tags
analyze_alarm_durationAnalyse von Alarmdauer/MTTA — Erkennung von Verschlechterung, Trend der durchschnittlichen Erkennungszeit
analyze_alarm_correlationKorrelation Alarm–Sensor — welche Sensoränderungen Alarme auslösen

Anlagen-Gesundheitsindex​

get_asset_health — Zusammenfassung von Sensoren + OEE + RAM + EMS + Alarmen zu einem Gesundheitswert von 0–100 Punkten


Feature Store​

Bietet mit vorberechneten Features und LLM-Kontext schnelle, umfassende Analysen.

WerkzeugBeschreibung
get_feature_statusStatus des Feature Store — Scheduler-Jobs, Ausführungszeitpunkte, Backfill-Status
get_asset_featuresAbfrage von Anlagen-Features — Gesundheitswert, Anomaliewert, Alarme, Status, Produktionskennzahlen
get_asset_contextLLM-Kontext — vorab generierter zusammenfassender Analysetext pro Tag
analyze_assetUmfassende Anlagenanalyse — Gesundheitswert, Sensoren, Alarme, OEE/RAM/EMS, Ursachenhinweise
explain_asset_anomalyUrsachenanalyse von Anomalien — Ursachenschätzung anhand von Anomalie-Tags, Alarmen, Statusänderungen
trigger_feature_pipelineManuelle Ausführung der Feature-Pipeline

Architektur des Feature Store:

  • Scheduler: automatische, stündliche (hourly) und tägliche (daily) Feature-Berechnung
  • Embedding: Umwandlung der Anlagen-Features in Vektoren zur Unterstützung der Ähnlichkeitssuche
  • LLM-Kontext: vorab generierte tägliche Analysetexte zur maximalen Beschleunigung der Antwortzeit

MCP-Ressourcen (6)​

Ressourcen-URIBeschreibung
plantpulse://system/infoSysteminformationen
plantpulse://domainsDomänenliste und API-Endpunkte
plantpulse://metrics/oeeBeschreibung der OEE-Metriken
plantpulse://metrics/ramBeschreibung der RAM-Metriken
plantpulse://metrics/emsBeschreibung der EMS-Metriken
plantpulse://metrics/alarmAlarmmetriken und Analysefähigkeiten

Funde · Beachtung · Produktion (2026.10)​

Werkzeuge, die lesen, was die Engine von sich aus festgehalten hat, und Fragen zur Produktion beantworten. Im Chat erscheinen sie mit dem Präfix insight_.

WerkzeugBeschreibung
list_findingsVon der KI selbst gefundene Funde — Anlagenanomalie · Zielverfehlung bei Aufträgen · Datenunterbrechung · Datenqualität · Kettenstillstand · Ausfallrisiko · Grenzwerterreichung · Lastspitze · Änderung der KI-Konfiguration usw. Schweregrad · Dringlichkeit · Belegfakten · Status
get_attention_rankingRangliste „Heute zuerst zu prüfende Anlage“ pro Standort — Beachtungswert (0–100) mit drei Gründen, Rangänderung gegenüber dem Vortag
forecast_order_completionOb ein laufender Arbeitsauftrag bis zum geplanten Ende die Zielmenge erreicht — erwartete Gutmenge (P10–P90) · Erreichungswahrscheinlichkeit · Fehlmenge
get_oee_lossesWarum die OEE niedrig ist — Verlustzeit bei Verfügbarkeit · Leistung · Qualität, die sechs großen Verluste, Stillstandsursachen
get_spc_chartFehlerquoten-Regelkarte (p-Karte) für Anlage · Produkt — Mittellinie · Regelgrenzen · Anomaliesignale
autonomy_statusAktueller Status der selbstständigen KI-Verbesserung (Normalbaseline · Scorer) — Modus · verwendete Version · Schatten · Pausiert
Vier davon kommen deaktiviert herein

Ab 2026.10 Re-Release (2026-10-20) sind list_findings · get_attention_ranking von Anfang an aktiviert und beantworten „Welche Anlage sollte ich mir heute zuerst ansehen?“ · „Fass die offenen Erkenntnisse zusammen“ sofort. Die vier forecast_order_completion · get_oee_losses · get_spc_chart · autonomy_status kommen deaktiviert herein; um sie in Abfragen zu nutzen, aktiviert ein Administrator sie in der AI-Verwaltungskonsole unter MCP Gateway › Tools → MCP Gateway


Verständnis von Anlagen und Tags​

Sind an einer Anlage mehrere Tausend Tags vorhanden, kann kein Mensch mehr jedes Einzelne erklären. Die folgenden Werkzeuge ordnen die Natur der Tags automatisch anhand realer Datenstatistik und Plattform-Metadaten.

WerkzeugBeschreibung
list_asset_tagsTag-Liste einer Anlage
get_asset_profileAnlagenprofil — Zuordnung, welcher Tag welche Eigenschaft hat
get_asset_tag_relationsKorrelation zwischen Tags — Gruppierung gemeinsam sich bewegender Tags

Fallsuche und -vergleich​

WerkzeugBeschreibung
find_similar_assetsSuche ähnlicher Anlagen — auf Basis von Vektor-Embedding und Kosinus-Ähnlichkeit
find_similar_anomaliesSuche nach ähnlichen Anomaliefällen — ob in der Vergangenheit bereits eine gleichartige Anomalie auftrat
find_fleet_outlierAusreißer in der Flotte — welche Anlage derselben Art sich allein abweichend verhält
search_patternMustersuche — Abschnitte finden, die einer angegebenen Wellenform ähneln
check_failure_precursorPrüfung auf Vorboten eines Ausfalls — ob derzeit Signale sichtbar sind, die früher vor einem Ausfall auftraten

Anwendungsszenarien​

SzenarioVerwendete Werkzeuge
Frühzeitige Erkennung von Anlagenanomaliendetect_asset_anomaly → explain_asset_anomaly
Planung vorausschauender Instandhaltungget_asset_health → forecast_asset → forecast_ram
Tägliches Anlagen-Briefingget_asset_context → get_asset_features
Ursachenanalyse bei Alarmflutget_alarm_stats → analyze_alarm_correlation → analyze_alarm_duration
Vergleichende Analyse ähnlicher Anlagenanalyze_asset → find_similar_assets
War diese Anomalie schon einmal dadetect_asset_anomaly → find_similar_anomalies
Ausfall vor dem Eintreten abfangencheck_failure_precursor → forecast_ram
Gleiche Anlage, aber nur eine abweichendfind_fleet_outlier → analyze_asset
Erkennung von Energieanomaliendetect_ems_anomaly → forecast_ems
Prognose der Produktionsqualitätdetect_order_anomaly → forecast_order
Wird dieser Auftrag rechtzeitig fertigforecast_order_completion → get_oee_losses
Wo sollte ich heute zuerst hinschauenget_attention_ranking → list_findings