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.

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.

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:

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.

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 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.

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.

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.

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.

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:

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.