Anlagenzustand auswerten mit Aggregationen

Lesedauer: 5min Veröffentlicht am: Juni 18, 2024. Der Autor des Beitrages ist Maximilian Backenstos.
In diesem Leitfaden wird das Thema „Auswertung des Anlagenzustandes“ beschrieben. Ziel der Auswertung ist es herauszufinden, wie lange sich eine Anlage pro Tag in den Zuständen Grün, Gelb und Rot befindet - analog zur Zustandsampel an der Maschine. Die Werte sollen aufsummiert und ins Verhältnis zueinander gesetzt werden. Dazu wird die Aggregationsfunktion der DatenBergs smartPLAZA verwendet.
Inhalte auf dieser Seite
Primary Item (H2)Sub Item 1 (H3)

Anlagenzustand Definition

Der Begriff "Anlagenzustand" bezeichnet den Zustand oder die Betriebsbereitschaft einer Anlage, einer Maschine oder eines technischen Systems zu einem bestimmten Zeitpunkt. Eine Anlage ist immer einem bestimmten Zustand zugeordnet. Eine einfache Zustandsampel kann z. B. signalisieren

  • Produktiv mit Grün
  • Warten auf Teil mit Orange
  • Störung mit Rot

Diese Liste ist nicht abschließend. Je nach Anlagentyp können z.B. unterschiedliche Störungsarten hinterlegt werden. Die Zustandsdaten können direkt aus der Steuerung übertragen werden, z.B. über eine OPC UA Verbindung. Eine Anleitung dazu finden Sie in diesem Artikel.

Ziel der Auswertung

Ziel ist es zu berechnen, wie lang die Anlage pro Tag im grünen, orangen und roten Zustand war. Neben den absoluten Minutenangaben ist auch der relative Anteil zu berechnen. Neben den drei definierten Zuständen Grün/Orange/Rot ist der der Rest des Tages als „Grau“ oder „Sonstiges“ klassifiziert . Die Visualisierung soll dann auf einem Dashboard erfolgen.

Aufbau Aggregation

Aggregationsfunktionen in smartPLAZA sind hinterlegte Rechenvorschriften, die Rohdaten zu aggregierten Kennzahlen aufaddieren. Dies geschieht in festgelegten Intervallen, z.B. einmal pro Stunde oder Tag. Dabei werden alle in diesem Zeitraum im System vorhandenen Zeilen für definierte Messgrößen ausgewertet. Die Berechnungsvorschriften können Java-Skripte oder vordefinierte Standardfunktionen wie Summieren oder Mittelwertbildung sein.

Bei einem Skript werden die Daten nach Belieben in Java-Script bearbeitet und anschließend als JSON zurückgegeben, das aus Name-Wert-Paaren besteht.

Anleitung

Schritt 01: Aggregation anlegen und Datenquellen hinzufügen

Im Modul „Datenquellen“ klicken wir auf die Schaltfläche „Aggregationen“. Dadurch gelangen wir in die Ansicht der erstellten Aggregationen. Mit einem Klick auf „+ Aggregation hinzufügen“ legen wir eine neue Aggregation an. Mit einem Doppelklick auf die hinzugefügte Zeile öffnen wir das Bearbeitungsfenster. Im rechten Bildschirmbereich haben wir die Möglichkeit, den Namen zu ändern und das Aggregationsintervall festzulegen. Auf der Registerkarte „Daten“ fügen wir eine neue Datenquelle hinzu, indem wir auf „+ Tabelle hinzufügen“ klicken. Hier muss die Tabelle und eine führende Zeitachse ausgewählt werden.

Wenn in einer Tabelle mehrere Anlagen gespeichert sind, ist die Option „+ Gruppe hinzufügen“ hilfreich. Hier wählen wir die Spalte mit den Anlageninformationen aus. Die Berechnung wird dann für jede Maschine einzeln durchgeführt.

Schritt 02: Rechenvorschrift vorbereiten

Nach erfolgreicher Konfiguration der Aggregation klicken wir auf „+ Berechnung hinzufügen“ und wählen das „Skript“ aus. In unserem Beispiel wollen wir die Metadatenspalte „Zustand“ auswerten. Für die Berechnung der Zeitdifferenz benötigen wir den Zeitstempel. Diese legen wir in der Aggregation unter Konfiguration an. Dazu klicken wir auf das Einstellungsrad rechts neben dem Namen „Script“. Im sich öffnenden Fenster vergeben wir einen Namen, z.B. „Zustandsaggregation“. Dann wechseln wir auf den Reiter „Konfiguration“ und fügen die Inputs "timestamp" und "state" hinzu. Als Typ definieren wir für beide „Zeitreihe“. Als Output definieren wir green_duration für die Minuten im Zustand „grün“ und green_relative für die relative Zeit. Dasselbe machen wir für rot, orange und grau (andere) und zusätzlich für die Ausgabe „Total_Time“. Mit einem Klick auf „X“ verlassen wir den Assistenten und wählen für alle Outputs die Option „Wert veröffentlichen“. Mit einem Klick auf die grauen Pillen bei timestamp und state wählen wir das entsprechende Merkmal in der Tabelle aus.

Schritt 03: Beispielcode Zeiten aufsummieren

Danach wechseln wir wieder in die Bearbeitungsansicht, indem wir auf das Einstellrad klicken und gelangen direkt in die Registerkarte „Code“. Dort fügen wir den folgenden Beispielcode ein. Die Kommentare sind bereits im Code enthalten. Es ist wichtig zu überprüfen, ob im Code die Benennung der Merkmale mit den in Schritt 03 vorgenommenen Einstellungen identisch ist.

function main(inputs) {
    // Die benötigten Variablen werden mit 0 initalisiert
    let green_duration = 0;
    let red_duration = 0;
    let orange_duration = 0;
    let green_relative = 0;
    let orange_relative = 0;
    let grey_duration =0;
    let red_relative = 0;
    let total_time = 0;
    let sonstiges_relative = 0;
    
    // Alle Zeitwerte müssen als "timestamp" definiert werden
    inputs.requireDate("timestamp");
    // Gehe über alle Einträge an diesem Tag
    for (let i = 0; i < inputs.timestamp.length - 1; i++) {
      // Die Zeit für den aktuellen Zustand wird hier berechnet
      // Die Differenz ist in Millisekunden angegeben, dies rechnen wir direkt in Minuten um
      let time_delta = (inputs.timestamp[i + 1] - inputs.timestamp[i]) / (1000*60);
 
      //Je nach Zustand wird der Zeitunterschied auf eine andere Variable aufsummiert
      switch (inputs.zustand[i]) {
        case "Grün":
          green_duration += time_delta;
          break;
        case "Rot":
          red_duration += time_delta;
          break;
        case "Gelb":
          orange_duration += time_delta;
          break;
        case "Grau":
           grey_duration += time_delta;
           break;
       }
    }
    // Die Totalzeit hilft zu verstehen, ob ggf. Lücken in der Datenerfassung vorliegen
    
    total_time = green_duration + orange_duration + red_duration + grey_duration;
    //Im return-Statement werden die einzelnen Variablen als Name-Wert Paare zurückgegeben
        return {
            green_duration: green_duration,
            orange_duration: orange_duration,
            red_duration: red_duration,
            grey_duration: (grey_duration),
            total_time: total_time,
            green_relative: (green_duration*100) / total_time ,
            orange_relative: (orange_duration*100) / total_time,
            red_relative: (red_duration*100) / total_time,
            grey_relative: (grey_duration*100)/total_time
        };
    }

Schritt 04: Visualisierung für die Anlagenauswertung

Die Rohdaten werden nun täglich aggregiert und in eine separate Tabelle geschrieben.  Der Teil der Arbeit im Hintergrund ist nun abgeschlossen. Jetzt wollen wir die Daten visualisieren, dazu erstellen wir ein neues Dashboard und zeigen die Daten an. Eine Idee für die Visualisierung haben wir hier zusammengestellt.

Zusammenfassung Anlagenzustand auswerten

Beim Anlagenzustand auswerten müssen verschiedene Schritte durchlaufen werden. Daten aus der Steuerung müssen übertragen, aggregiert und Kennzahlen gebildet werden. Anschließend muss eine Visualisierung aufgebaut werden. Wir haben in dieser Anleitung gezeigt, wie in der Software DatenBerg smartPLAZA diese Schritte automatisiert durchgeführt werden können. Diese Anleitung zeigt eine Anwendung "Anlagenzustand auswerten" - mit Hilfe der Aggregation können jedoch auch andere Herausforderungen gelöst werden. Überall dort, wo Kennzahlen berechnet werden müssen, wie z.B. Ressourcenverbräuche, bietet sich die Aggregation an.

Sie möchten mehr zum Thema Anlagenzustand auswerten mit Aggregationen erfahren?
Der Autor Maximilian ist Geschäftsführer bei DatenBerg. Er begleitet Kunden von der Datenerfassung bis hin zur automatisierten Auswertung. Ist er nicht bei Kunden im Einsatz, hält er Vorträge zu den Themen Daten nutzen in der Produktion, Anwendungsfälle von Industrie 4.0 und automatisierte Auswertung von Produktionsdaten. Gerne besprechen wir mit Ihnen, wie das Thema Anlagenzustand auswerten mit Aggregationen in Ihrer Produktion umgesetzt werden kann. Kontaktieren Sie uns hier.

Ähnliche Beiträge