Zielstellung
- Berechnen einer OEE pro Kalendertrag
- Ausgabe der einzelnen Kennzahlen (Verfügbarkeit, Leistung, Qualität)
- Speisen einer neuen Tabelle basierend auf den berechneten Kennzahlen
Einstellungen Trigger
- Art der Ausführung: Nach Zeitplan
- Datenquellen: Datenquelle mit notwendigen Daten
- Zeitpläne: Täglich um 0:00
- Zusätzlich: 20 Minuten & 1 Zeile
- Daten seit letzter Ausführung
- Ausführung verzögern: 5min (Kompensation von Datenverzögerungen)
- Zeitzone: Lokale Zeitzone, in der die Auswertung stattfinden soll
Berechnung

Konfigurieren Sie eine Berechnungskomponente und fügen Sie die gewünschten Zählstände als Input ein. Den Output benennen Sie gleich wie den Input. Dann verknüpfen Sie diese mit einer Tabelle.
Zur Berechnung nutzen Sie diesen Code:
Baustein Verfügbarkeit
const MS_PER_HOUR = 1000 * 60 * 60;
const ARBEITSTAG_STUNDEN = 15; // Länge des Arbeitstags in Stunden
/**
* Verfügbarkeit (OEE-Baustein) aus den Start-/Endzeitpunkten der Produktion.
*
* inputs.startzeit ist eine aufsteigend sortierte Liste von Zeitstempeln pro Artikel
* (ms); die Summe der Abstände zwischen aufeinanderfolgenden Zeitstempeln
* ergibt die Produktionsdauer zwischen dem ersten und letzten Zeitstempel.
*/
function main(inputs) {
const startzeit = inputs.startzeit;
let produktionsdauerStunden = 0;
for (let i = 1; i < startzeit.length; i++) {
produktionsdauerStunden += (startzeit[i] - startzeit[i - 1]) / MS_PER_HOUR;
}
return {
verfuegbar_prozent: (produktionsdauerStunden / ARBEITSTAG_STUNDEN) * 100
};
}
Baustein Leistung
const MINUTEN_PRO_STUNDE = 60;
// TODO: Platzhalter — durch die tatsächliche Soll-Mischzeit pro Artikel (Minuten) ersetzen.
const MISCHZEIT_SOLL_MINUTEN = 3;
/**
* Leistung (OEE-Baustein) aus Ist- vs. Soll-Stückzahl.
*
* inputs.stueck: Liste der tatsächlich produzierten Stücke (Ist).
* inputs.verfuegbarkeit_stunden: verfügbare Produktionszeit in Stunden,
* z.B. aus der Verfügbarkeitsberechnung.
*/
function main(inputs) {
const produkteIst = inputs.stueck.length;
const produkteSoll = (inputs.verfuegbarkeit_stunden * MINUTEN_PRO_STUNDE) / MISCHZEIT_SOLL_MINUTEN;
return {
leistung: (produkteIst / produkteSoll) * 100,
soll_produkte: produkteSoll,
ist_produkte: produkteIst
};
}
Baustein Qualität
/**
* Qualität (OEE-Baustein) aus Toleranzprüfung der Messwerte.
*
* inputs.T05: Messwerte.
* inputs.T05_OSG / inputs.T05_USG: oberer / unterer Sollgrenzwert je Messwert.
* Ein Teil gilt als schlecht, wenn der Messwert außerhalb der Toleranz liegt.
*/
function main(inputs) {
let gutTeile = 0;
let schlechtTeile = 0;
for (let i = 0; i < inputs.T05.length; i++) {
const ausserToleranz = inputs.T05[i] > inputs.T05_OSG[i] || inputs.T05[i] < inputs.T05_USG[i];
if (ausserToleranz) {
schlechtTeile++;
} else {
gutTeile++;
}
}
return {
gut_teile: gutTeile,
schlecht_teile: schlechtTeile,
qualitaet: (gutTeile / (gutTeile + schlechtTeile)) * 100
};
}
Baustein OEE
function main(inputs) {
return {
verfuegbarkeit:inputs.verfuegbarkeit[0],
leistung:inputs.leistung[0],
qualitaet: inputs.qualitaet[0],
OEE: inputs.verfuegbarkeit[0] *inputs.leistung[0]*inputs.qualitaet[0]*100
};
}




