Maschinenzeiten (nur SCADA)

Allgemein

In PROCON-WEB ist möglich, Maschinenzeiten-Kennzahlen (KPI: Key Performance Indicator) nach DIN 8743 berechnen zu lassen. Begrifflichkeiten und Bedeutung der Kennzahlen können der DIN 8743 entnommen werden. Um die Maschinenzeiten-Funktionalität benutzen zu können, ist es zunächst notwendig diese im Projekt zu aktivieren. Dies geschieht über die Konfiguration der Meldungsverarbeitung.

Aktivierung

Allgemeine Projektierung

Allgemeines

Die Berechnung der KPI’s erfolgt immer nur für eine Unit (Maschine) und über einen bestimmten Zeitbereich. Für die Auswertung müssen dem System bestimmte Parameter von „Außen“ zugeführt werden. Dabei handelt es sich um Maschinenzeiten und Maschinenkennzahlen. Die Maschinenzeiten werden über Alarme/Meldungen abgebildet und die Kennzahlen befinden sich entweder in einer SQL-Logger-Tabelle (Berechnung über Skript) oder werden durch Prozessvariablen dargestellt. Folgende Parameter werden benötigt:

  • Theoretisch nutzbare Zeit tT (Zeitbereichsvorgabe über Skript oder automatische Berechnung bei Online-Auswertung)

  • Maschinenarbeitszeit tW

  • Geplante Stillstandszeit tD

  • Systembedingte, ungeplante Stillstandzeit tFS

  • Nicht systembedingte, ungeplante Stillstandzeit tFE

  • Nominalausbringung pn

  • instellausbringung ps

  • Ausbringung p

  • Ausschuss pLQ

Maschinenzeiten

Im Designer können beliebig verschiedene Maschinenzeiten angelegt werden, die jedoch einem bestimmten Maschinenzeiten-Typ zugeordnet sein müssen.

Designer

Folgende Maschinenzeitentypen stehen zur Auswahl:

  • Maschinenarbeitszeit

  • Geplante Stillstandzeit

  • Ungeplante Stillstandzeit (systembedingt)

  • Ungeplante Stillstandzeit (nicht systembedingt)

Projektierung für Online-Berechnung

Allgemein Online-Berechnung

Die theoretisch nutzbare Zeit tT für die Onlineberechnung ergibt sich aus dem Startzeitpunkt des Alert Service und des aktuellen Zeitstempels. Ein Reset der Berechnung erfolgt, je nach Einstellung, bei einem Tageswechsel oder über eine log. Resetvariable. Die Projektierung der Onlineberechnung erfolgt für jede Unit einzeln:

Unit

Nachspezifizier-Obergrenze / Nachspezifizier-Untergrenze (in Min.)

Mit diesen beiden Einträgen kann ein zeitliches Fenster für die Nachspezifizierung definiert werden, innerhalb dessen das Nachspezifizieren einer Meldung (Stillstandplatzhalter) erlaubt ist.

Refreshzyklus für Onlineberechnung (in Sek.)

Die Onlineberechnung wird immer nach Statusänderung eines zugeordneten Maschinenzeitenalarms und zyklisch in einem bestimmten Zeitintervall durchgeführt (Default: alle 30 Sek.). Über diesen Parameter kann dieses Zeitintervall je nach Bedarf angepasst werden. (Achtung: Systemauslastung bei zu niedrig eingestellter Zykluszeit!).

Resetvariable für Onlineberechnung

Logarithmische Variable zum Zurücksetzen der Onlineberechnung. Durch Setzen der Variable werden bei der nächsten Onlineberechnung die Kennzahlen zurück und der Berechnungsstart auf den aktuellen Zeitstempel gesetzt. Die Variable wird nach dem Reset wieder auf 0 gesetzt.

Ausschuss / Einstellausbringung / Ausbringung / Nominalausbringung

Numerische Variablen die die Kennzahlen für Nominalausbringung pn, Einstellausbringung ps, Ausbringung p und Ausschuss pLQ abbilden.

Onlineberechnung nur über Maschinenarbeitszeit

Mit diesem Parameter wird für die Onlineberechnung die theoretisch nutzbare Zeit tT der Maschinenarbeitszeit tW gleichgesetzt, sodass die ungenutzte Zeit ti gleich 0 ist.

Nachspezifizieren notwendig

Logische Prozessvariable zum Anzeigen des aktiven Fensters zur Nachspezifizierung, falls definiert, siehe auch Nachspezifizier-Obergrenze /-Untergrenze.

Autom. Reset der Online-Berechnung bei Tageswechsel

Automatisches Zurücksetzen der Onlineberechnung bei Tageswechsel. Bei der nächsten Onlineberechnung werden die Kennzahlen zurück und der Berechnungsstart auf den aktuellen Zeitstempel gesetzt.

Projektierung für Berechnung über Skript-Funktion

Allgemein Skript-Funktion

Die Maschinenzeitberechnung kann auch über eine Skript-Funktion angestoßen werden. Diese Berechnung erfolgt über einen parametrierbaren Zeitraum und das Ergebnis wird in der Datenbank des AlertService im SQL-Server abgelegt. Da die Funktion asynchron arbeitet, muss im Skript auf das Ende der Berechnung mit Statusabfragen gewartet werden. Ein Client kann also keine parallelen Berechnungen anstoßen. Mit jeder neuen Berechnung erfolgen neue Einträge in den Ergebnistabellen, die nicht vom AlertService gelöscht werden.

Beschreibung der Skriptfunktion CalculateDIN8743()

CalculateDIN8743: (int Aktion, string Auftrag, string AuftragID, string Unitname, real Start, real Ende, real Modus, real Gutteile, real Schlechtteile)

Aktion:

  • 0 = Berechnungsstart

  • 1 = Abbruch der Berechnung

  • 2 = Fortschrittsabfrage der Berechnung

  • 3 = Statusabfrage der Berechnung

Die nachfolgenden Parameter werden nur bei Aktion 0 (Berechnungsstart ausgewertet):

  • Auftrag, Name des Auftrags (Benutzerdefinierter Text zur Kennzeichnung der Berechnung)

  • AuftragID, ID des Auftrags (Benutzerdefinierter Text zur Kennzeichnung der Berechnung)

  • Unitname, eindeutiger Name der zu berechnenden Unit (z.B.:’Anlagenstruktur.Anlage.Linie1.Unit1‘)

  • Start, Startzeitpunkt der Auswertung in Sek. seit 1970

  • Ende, Endzeit der Auswertung in Sek. seit 1970

Modus, DIN-Berechnungsmodus

  • 0 = absolute Zeit (Ende-Start) als Berechnungsgrundlage

  • 1 = Maschinenarbeitszeit tW als Berechnungsgrundlage

Mit den beiden letzten Parametern können die Anzahl der Gut- oder der Schlechtteile aus der Loggertabelle überschrieben werden. Werte >=0 überschreiben oder ersetzen die ermittelten Werte aus der Loggertabelle:

  • Gutteile, Anzahl der Gutteile innerhalb des Berechnungszeitraums

  • Schlechtteile, Anzahl der Schlechtteile innerhalb des Berechnungszeitraums

Returnwerte bei Aktion Statusabfrage:

  • -1 = Fehler

  • 0 = OK oder fertig

  • 1 = Berechnung läuft

  • 2 = Berechnung abgebrochen

Returnwerte bei Aktion Fortschrittsabfrage:

  • -1 = Fehler oder Berechnung abgebrochen

  • 0 – 100 = Fortschrittsangabe

Sonstige Returnwerte:

  • -2 = unbekannter Unitname

  • -3 = falsche Berechnungszeitparameter Start und Ende

  • -4 = aktuell wird schon eine Berechnung ausgeführt

  • -5 = interner Berechnungsfehler (falsche Parameter in der Unit-Definition, usw.)

  • -6 = AlertService ist im Moment blockiert (z.B.: Online-Projektupdate)

Benötigte Parameter aus der Unit-Definition

Zur Berechnung der Maschinenkennzahlen werden zusätzliche Maschinenparameter benötigt. Diese müssen kontinuierlich in einer Datenbanktabelle geloggt werden. Die Informationen über die Loggertabelle werden in der jeweiligen Unit-Definition parametriert. Falls diese nicht vorhanden sind, werden nur die Maschinenzeiten in der Tabelle DINTimes berechnet.

Parameter Unit

Ergebnistabelle DINTimes

Die berechneten DIN-Zeiten einer Unit werden in der Tabelle DINTimes abgelegt. Der Eintrag besteht aus dem eindeutigen Unitnamen, dem Start- und Endzeitpunkt der Berechnung und aller DIN-Zeiten in Sekunden, als Prozentwert zur Gesamtdauer und als Zeitdauer-String.

Ergebnistabelle DINTimes

Ergebnistabelle DINData

Die berechneten DIN-Kenngrößen einer Unit werden in der Tabelle DINData abgelegt. Der Eintrag besteht aus dem eindeutigen Unitnamen, dem Start- und Endzeitpunkt der Berechnung und aller DIN-Kenngrößen.

DINData

Statistikberechnung über Skriptfunktion

Allgemein Skriptfunktion

Die Funktion wird zur Statistikberechnung verwendet. Dabei werden alle Statistikwerte einer Berechnung mit den benutzerdefinierten Kennungen in einer Tabelle gespeichert und können von dort dann gefiltert ausgelesen werden. Mit jeder neuen Berechnung erfolgen neue Einträge in der Ergebnistabelle, die nicht vom AlertService gelöscht werden.

Beschreibung der Skriptfunktion CalculateStatistic()

CalculateStatistic (int Aktion, string Auftrag, string AuftragID, string Länderkennung, real Start, real Ende)

Aktion:

  • 0 = Berechnungsstart

  • 1 = Abbruch der Berechnung

  • 2 = Fortschrittsabfrage der Berechnung

  • 3 = Statusabfrage der Berechnung

Die nachfolgenden Parameter werden nur bei Aktion 0 (Berechnungsstart ausgewertet):

  • Auftrag, Name des Auftrags (Benutzerdefinierter Text zur Kennzeichnung der Berechnung)

  • AuftragID, ID des Auftrags (Benutzerdefinierter Text zur Kennzeichnung der Berechnung)

  • Länderkennung, gewünschte Sprache der Alarmtexte in der Ergebnistabelle (z.B.: de-DE)

  • Start, Startzeitpunkt der Statistikberechnung in Sek. seit 1970

  • Ende, Endzeit der Statistikberechnung in Sek. seit 1970

Returnwerte bei Aktion Statusabfrage:

  • -1 = Fehler

  • 0 = OK oder fertig

  • 1 = Berechnung läuft

  • 2 = Berechnung abgebrochen

Returnwerte bei Aktion Fortschrittsabfrage:

  • -1 = Fehler oder Berechnung abgebrochen

  • 0 – 100 = Fortschrittsangabe

Sonstige Returnwerte:

  • -3 = falsche Berechnungszeitparameter Start und Ende

  • -4 = aktuell wird schon eine Berechnung ausgeführt

  • -5 = interner Berechnungsfehler (falsche Parameter in der Unit-Definition, usw.)

  • -6 = AlertService ist im Moment blockiert (z.B.: Online-Projektupdate)

Ergebnistabelle Statistik

Die berechneten Statistikwerte jedes Alarms einer Auswertung werden mit der übergebenen Kennung (Spalte ID) und dem Start- und Endzeitpunkt der Berechnung abgelegt.

Statistik

Nachspezifizieren

Über die Funktion „Nachspezifizieren“ können Meldungen, die im Designer als „Grund = zuzuordnen“ markiert sind, zur Laufzeit nachspezifiziert werden. Dabei werden im Designer Meldungsdefinitionen mit „Grund = Auswahl“ benötigt. Über den Nachspezifizieren-Dialog können im Nachhinein für Platzhalter die wirklichen Gründe für Stillstände oder sonstige Maschinenzeiten ausgewählt werden.

Funktionsbeschreibung

Im Dialog „Stillstandursachen zuordnen“ wird die zu spezifizierende Meldung angezeigt. Über die Schaltflächen rechts daneben kann zwischen den zu spezifizierenden Meldungen gewechselt werden, sofern es mehrere gibt. Angezeigt werden Meldungsnummer, Meldungstext, Zeitraum und Tooltip. In der Tabelle darunter werden die entsprechenden Gründe angezeigt. Der angezeigte Alarm kann nachspezifiziert werden, indem man einen Grund markiert und mit OK bestätigt. Alternativ kann man mit einem Doppelklick auf einen Grund die Meldung nachspezifizieren. Sind keine Meldungen mehr vorhanden, wird der Dialog automatisch geschlossen.

Stillstandursachen

Aufruf des Dialoges über Button-Funktion

Der Nachspezifizieren-Dialog kann über eine Button-Funktion „Nachspezifizieren“ aufgerufen werden.

Button

Der dabei übergebene Text gilt als Vorfilter. Durch Eingabe einer eindeutigen Unit-Kennzeichnung werden nur die Meldungen der übergebenen Unit angezeigt. Bleibt der Text leer, werden die Meldungen aller Units angezeigt.

Bedienung der Features

Konfiguration der Meldungsgründe-Tabelle

Die Tabelle im unteren Bereich des Nachspezifizieren-Dialogs kann über die Meldungsansicht „Default_Nachspezifizieren_Ansicht“ konfiguriert werden.

Nachspezifizieren-Ansicht

So kann ausgewählt werden, welche Spalten angezeigt werden sollen, wie sortiert wird und welche Farbdefinitionen angewandt werden sollen.

Verzögern und Ausblenden nach Zeit

Die Konfiguration der Unit enthält unter anderem folgende Einträge:

Unit-Konfiguration

Ist eine Untergrenze gesetzt, so wird die Meldung erst nach Ablauf dieser im Nachspezifizieren-Dialog sichtbar. Ist eine Obergrenze gesetzt, so verschwindet die Meldung, sobald diese abgelaufen ist.

Typ-Vorfilter

Hat die zuzuordnende Meldung einen Maschinenzeit-Typ definiert, so wird die Liste der Gründe automatisch nach diesem vorgefiltert.

Gleichzeitige Bedienung an mehrere Terminals

Wird ein Alarm nachspezifiziert, so aktualisieren sich alle geöffneten Nachspezifizieren-Dialoge, um eine doppelte Spezifizierung zu vermeiden. Spezifiziert ein Benutzer die letzte offene Meldung, so schließen sich automatisch alle geöffneten Dialoge.