# Bewertungen

> Die Kriterien für das Bestehen, nach denen ein Lauf beurteilt wird, jedes Feld eines Kriteriums, was jedes Ergebnis mit dem Lauf macht und wie sich die Ergebnisse zu einem Prüfergebnis zusammenfassen.

Eine **Bewertung** ist ein wiederverwendbarer Satz von Kriterien für das Bestehen. Jedes Kriterium
beobachtet einen lesbaren Kanal innerhalb eines Fensters des Laufs und beurteilt dessen
aufgezeichnete Abtastwerte gegen ein festes Band oder eine Toleranz um einen anderen Kanal; jedes
schließt mit einem eigenen Ergebnis, und das Prüfergebnis des Laufs ist deren Zusammenfassung. Die
Maschine beurteilt live über den Zeilen, die das Datalog aufzeichnet, der Kanal eines Kriteriums und
sein Bezugskanal müssen also Spalten des Datalogs des Ablaufs sein: Die Laufdatei beweist, was
beurteilt wurde. Bewertungen wohnen unter Process > Modelle > Modell > Setup > **Bewertungen** und
brauchen die Berechtigung **Rezepte und Bewertungen ändern**.

## Der Ordner Bewertungen {#the-evaluations-folder}

Die Auswahl der Zeile **Bewertungen** öffnet die Ordnerseite ("Kriterien für Bestehen und
Nichtbestehen, nach denen ein Lauf beurteilt wird. Die Bewertung liest Kanäle des Prozesses.") mit
einer Karte je
Bewertung, nach Namen; ein Klick auf eine Karte öffnet sie, und das X entfernt sie. Ohne eine sagt
die Seite "Noch keine Bewertungen. Fügen Sie eine hinzu."

| Befehl | Was er tut | Ausgegraut, wenn (Lage) | Nicht gezeichnet, wenn (Rolle) |
| --- | --- | --- | --- |
| **Bewertung** (Detailleiste, Ordner gewählt; Rechtsklick **Bewertung hinzufügen**) | Fügt `Bewertung <n>` ohne Kriterien hinzu. Die Zeile kommt in ihre Gruppe, dort markiert und in den sichtbaren Bereich gerollt; ihre Karte öffnet sie. | Irgendeine Einheit hält einen Lauf, oder die Runtime ist gestoppt. | Ohne Rezepte und Bewertungen ändern. |

## Die Seite der Bewertung {#the-evaluations-page}

Der Kopf trägt den Namen, die Zeile "Kriterien für Bestehen und Nichtbestehen, nach denen ein Lauf
beurteilt wird." und eine Pille, die die Kriterien zählt. Jedes Feld speichert von selbst, und jede Änderung
zeichnet die Vorschau des gewählten Kriteriums neu.

### Definition {#definition}

| Feld | Was es ist | Werte / Vorgabe |
| --- | --- | --- |
| **Bezeichnung** | Wie die Bewertung im Baum heißt, in der Auswahl Bewertung eines Ablaufs und in der Auswahl Jetzt bewerten eines Einheitenbereichs, und ihr Ordner unter `LastRun.Evaluations` jeder Einheit ([Namen sind Adressen](#names-are-addresses)). Er wird übernommen, wenn Sie das Feld verlassen, über die Umbenennung, die vorher sagt, wie viele Verweise mitwandern; ein leerer Name wird abgewiesen. | Freier Text; `Bewertung <n>` beim Anlegen. |
| **Anmerkungen** | Freier Text für alle, die sie lesen. | Leer als Vorgabe. |

Unter den beiden Feldern sagt die Karte, wenn ein Name dieser Bewertung oder eines ihrer Kriterien
sich gleich liest wie der eines anderen, was eine veröffentlichte Version gespeichert haben kann
(siehe [Namen sind Adressen](#names-are-addresses)).

### Wie der Lauf beurteilt wird {#how-the-run-is-judged}

Diese Karte nennt die Zusammenfassung, die die Maschine anwendet, in ihrer eigenen Reihenfolge:

- **NOK**, wenn auch nur ein Kriterium scheitert.
- **Unbestimmt**, wenn keines gescheitert ist und eines nicht bewertet werden konnte.
- **OK**, nur wenn jedes einzelne bestanden hat.

"Der Schweregrad ändert daran nichts. Er wird gegen die Abbruchschwelle des Ablaufs gelesen und
entscheidet allein, ob ein Fehlschlag den Lauf dort auch beendet." Die Karte warnt außerdem, bevor
ein Lauf es tut: "Ein Kriterium lässt sich so konfiguriert nicht bewerten, ein Lauf würde also
Unbestimmt enden." (oder "`<n>` Kriterien lassen sich so konfiguriert nicht bewerten …") und sagt
"Noch führt kein Ablauf dieses Modells gegen diese Bewertung aus.", solange nichts auf sie verweist.

## Die Liste der Kriterien {#the-criteria-list}

Die Liste ist mit **Kriterien** überschrieben, und ihre Schaltfläche **Kriterium** fügt auf dem
ersten lesbaren Kanal des Modells eine Zeile hinzu (Anker Ganzer Lauf, Modus Ganzes Zeitfenster, ein festes Band mit
beiden Seiten offen, Schweregrad Erheblich, kein Name) und wählt sie aus. Ein Klick auf eine Zeile
öffnet sie in der Spalte **Kriterium**; ohne Auswahl sagt die Spalte "Wählen Sie ein Kriterium, um
es ganz an einer Stelle zu bearbeiten, mit dem, worüber jedes Feld entscheidet, daneben." Die Liste
trägt das ganze Kriterium und läuft seitlich über die Breite des Bereichs hinaus.

| Spalte | Was sie hält |
| --- | --- |
| **Bezeichnung** | Der Name des Kriteriums, an Ort und Stelle änderbar. Er wird übernommen, wenn Sie das Feld verlassen, über dieselbe Umbenennung wie das Feld **Bezeichnung** der Spalte; eine Abweisung steht in der Statusleiste. |
| **Kanal** | Der beurteilte lesbare Kanal. |
| **Verankerung** | Ganzer Lauf, Zeitfenster oder Rezeptsegment, jedes mit der Form des Abschnitts, den es beurteilt, neben seinem Namen und seiner Folge als Tooltip. |
| **Fenster** | Die zwei Einstellungen, die der Anker braucht: **Seg** und **Stab** bei einem Anker Rezeptsegment, **Von** und **Bis** bei einem Anker Zeitfenster, "Ganzer Lauf" beim Anker Ganzer Lauf. |
| **Modus** | Ganzes Zeitfenster oder Ein Messwert, mit seiner Form. |
| **Grenze** | Feste Grenzen oder Um den Sollwert, mit seiner Form. |
| **Bereich** | **Min.** und **Max.** bei einem festen Band ("leer lässt die Seite offen"); der Bezugskanal und die Toleranz **±** bei einer relativen Grenze. |
| **Schweregrad** | Gering, Erheblich oder Kritisch. |
| **Ergebnis** | Was das Kriterium zum Lauf beiträgt ("NOK lässt den Lauf scheitern", "NOK lässt den Lauf scheitern und beendet ihn", "Nicht bewertbar"), mit dem ganzen Satz als Tooltip. |
| Zeilenbefehl | **Entfernen** fragt "Kriterium löschen": den Namen (oder den Namen des Kanals), "Das entfernt das Kriterium aus der Bewertung." |

## Das Kriterium vollständig {#the-criterion-in-full}

Die Spalte öffnet mit einer Vorschau: dem Band des gewählten Kriteriums und dem Abschnitt, den es
beurteilt, über erklärten Achsen ohne einen Abtastwert in ihrer Nähe (hinter einem
Konfigurationsbildschirm steht kein Lauf). Ein festes Band wird in den technischen Werten des Kanals
gezeichnet, mit Platz für einen Fehlschlag auf jeder Seite; ein relatives Band wird als Abweichung
vom Bezugskanal gezeichnet, der als Linie bei null steht. Wenn sich nichts zeichnen lässt (keine
Grenze gesetzt, kein Bezug gewählt), sagt der Rahmen warum, statt leer zu stehen. Darunter steht
jedes Feld über einer festen Erklärung und, wo die Antwort mit den Eingaben wandert, über der
Wirkung dessen, was gilt. Die Zeilen der Wirkung schreiben ihre Zahlen im Zahlenformat der Station
([Lokalisierung](settings-localization)), mit den Stellen, die jede hat: eine Grenze des Bereichs
oder eine Toleranz mit bis zu den sechs Stellen, die ihr Feld zeigt, und eine Zeit unter einer
Sekunde in Millisekunden, ab einer Sekunde in Sekunden.

| Feld | Was es ist | Werte / Vorgabe | Zeile der Wirkung |
| --- | --- | --- | --- |
| **Bezeichnung** | "Benennt diese Prüfung überall dort, wo ihr Ergebnis gezeigt wird." Leer fällt im Bericht und in der Adresse des Kriteriums unter `LastRun` auf den Kanal zurück; die Spalte überschreibt sich selbst mit `Kriterium <n>`, bis die Zeile benannt ist. | Freier Text; leer beim Anlegen. | Was das Übernehmen des Namens mitnimmt, wie jedes Feld zum Umbenennen es sagt: wie viele Verweise mitwandern, oder dass keiner mitwandert. |
| **Kanal** | "Der beurteilte Messwert. Er muss eine Datalog-Spalte des Ablaufs sein." | Die lesbaren Kanäle des Modells; der erste beim Anlegen. | |
| **Verankerung** (FENSTER) | "Über welche Strecke des Laufs dieses Kriterium beurteilt wird." | **Ganzer Lauf** (Vorgabe), **Zeitfenster**, **Rezeptsegment**. | Ganzer Lauf: "Über den ganzen Lauf beurteilt. Es braucht kein Rezept." Zeitfenster: "Zwischen zwei Zeitpunkten beurteilt, ab dem Laufbeginn gemessen." Rezeptsegment: "Beurteilt, solange das Rezept in diesem Segment ist, nach der Verzögerung. Ein Anhalten verlängert es." |
| **Segment (ab 0 gezählt)** und **Beruhigung (ms)** (Anker Rezeptsegment) | "Welches Segment des Rezepts beurteilt wird und wie weit hinein das Fenster wartet, bevor es öffnet." | Ganze Zahlen; 0 und 0 als Vorgabe. Keines der Felder nimmt eine negative Zahl an: Die Eingabe wird abgelehnt, der Hinweis unter dem Feld sagt das, und der vorherige Wert kommt zurück. | "Öffnet mit Segment 1." oder "Öffnet 2 s nach Beginn von Segment 1." |
| **Von (ms)** und **Bis (ms, 0 = Laufende)** (Anker Zeitfenster) | "Die beiden Zeitpunkte, ab dem Laufbeginn gezählt, zwischen denen das Fenster steht." | Millisekunden; 0 und 0 als Vorgabe. Bis = 0 heißt bis zum Ende des Laufs; sonst muss Bis nach Von stehen. | "Von 5 s bis zum Ende des Laufs.", "Von 5 s bis 30 s." oder "Bis liegt auf oder vor Von, also ist das Fenster leer." |
| **Modus** | "Auf wie viel dieser Strecke das Prüfergebnis beruht." | **Ganzes Zeitfenster** (Vorgabe), **Ein Messwert**. | Ganzes Zeitfenster: "Jeder Abtastwert im Fenster muss bestehen." Ein Messwert: "Nur der letzte Abtastwert des Fensters entscheidet." |
| **Grenze** (GRENZEN) | "Welche Form die Grenze annimmt, was auch bestimmt, wonach die Felder darunter fragen." | **Feste Grenzen** (Vorgabe), **Um den Sollwert**. | Feste Grenzen: "Ein fester technischer Bereich. Jede Seite darf offen bleiben." Um den Sollwert: "Ein Bereich um einen anderen Kanal, in derselben Zeile abgetastet." |
| **Min.** und **Max.** (festes Band) | "Die technischen Werte, zwischen denen der Messwert bleiben muss. Eine leer gelassene Seite bleibt offen." | Zahlen oder leer; beide leer beim Anlegen. | "Keine Grenze gesetzt, also besteht jeder Messwert.", "Besteht bei 20 oder darüber.", "Besteht bei 80 oder darunter.", "Besteht zwischen 20 und 80." oder "Min. liegt über Max., das lässt sich also nicht bewerten und ein Lauf würde Unbestimmt enden.", was der Block ERGEBNIS unter der Zeile ebenfalls sagt |
| **Referenz** und **± Toleranz** (relativ) | "Der Kanal, gegen den der Messwert gemessen wird, und wie weit er davon entfernt liegen darf." | Ein lesbarer Kanal des Modells und eine Zahl; keiner und 0 beim Anlegen. | "Besteht innerhalb von ±0,5 um Sollwert." oder "Wählen Sie den Kanal, um den herum die Toleranz gemessen wird." |
| **Schweregrad** | "Wird gegen die Abbruchschwelle des Ablaufs gelesen. Er setzt außerdem die Betonung im Bericht." | **Gering**, **Erheblich** (Vorgabe), **Kritisch**. | |
| **ERGEBNIS** | Was das Kriterium erzeugt und was das mit dem Lauf macht. | Schreibgeschützt. | Siehe unten. |

### Was das Ergebnis sagt {#what-the-result-says}

| Zeile | Einzelheit | Wann |
| --- | --- | --- |
| "NOK lässt den Lauf scheitern" | "Ein Fehlschlag macht den Lauf NOK." oder, wenn irgendein Ablauf die Bewertung ausführt, "Ein Fehlschlag macht den Lauf NOK. Der Lauf läuft dennoch zu Ende, weil kein Ablauf bei diesem Schweregrad abbricht." | Kein Ablauf, der diese Bewertung ausführt, bricht beim Schweregrad dieses Kriteriums ab. |
| "NOK lässt den Lauf scheitern und beendet ihn" | "Ein Fehlschlag macht den Lauf NOK und beendet ihn dort, weil `<procedure>` bei diesem Schweregrad abbricht." | Ein Ablauf, der diese Bewertung ausführt, hat Abbrechen bei NOK auf oder unter diesem Schweregrad. |
| "Nicht bewertbar" | "So konfiguriert lässt es sich nicht bewerten, der Lauf bliebe damit Unbestimmt." gefolgt vom Grund. | Einer der Gründe unten gilt. |

Die Gründe, aus denen ein Kriterium nicht beurteilt werden kann, zur Zeit der Konfiguration in der
eigenen Reihenfolge der Maschine gefragt: "Es überwacht keinen Kanal dieses Modells."; "Der
überwachte Kanal wird vom Datalog des ausführenden Ablaufs nicht aufgezeichnet."; "Es folgt keinem
Referenzkanal dieses Modells."; "Bis liegt auf oder vor Von, also ist das Fenster leer."; "Seine
Grenzen sind unvollständig oder verkehrt herum."; "Der Referenzkanal wird vom Datalog des
ausführenden Ablaufs nicht aufgezeichnet." Die Gründe zum Datalog werden allein den Abläufen gestellt, die
die Bewertung ausführen; eine Bewertung, die noch kein Ablauf aufgegriffen hat, ist unfertig und
nicht falsch.

## Wie Kriterien sich zu einem Prüfergebnis zusammenfassen {#how-criteria-fold-into-a-verdict}

Jede aufgezeichnete Zeile innerhalb eines aktiven Fensters wird einmal eingestuft: **bewertet**,
**nicht verfügbar** (ein fehlender Wert oder eine schlechte Qualität) oder **ungültig** (ein guter
Wert, der keine endliche Zahl ist; ein gutes `NaN` bleibt nachprüfbares Rohmaterial, kann aber ein
numerisches Kriterium nicht bescheinigen). Eine feste Grenze braucht den beobachteten Wert; eine
relative Grenze braucht den beobachteten und den Bezugswert aus derselben Zeile. Die Zähler
Bewertete Abtastwerte, Abtastwerte außerhalb, Nicht verfügbare Abtastwerte und Ungültige Abtastwerte
sowie der eingefrorene Satz betroffener Kanäle werden je Kriterium aufgezeichnet und sind auch live
unter den Punkten `Procedure.*` der Einheit lesbar
(siehe [Der Adressraum einer Einheit](process-addresses)).

Jedes Ergebnis zeichnet auch auf, was gemessen wurde: den letzten bewerteten Wert des beobachteten
Kanals im Fenster (im Modus Ein Messwert den beurteilten Abtastwert), den kleinsten und den größten
bewerteten Wert sowie die größte Abweichung, den größten Abstand jenseits einer Grenze unter den
gezählten Abtastwerten (0, wenn Abtastwerte bewertet wurden und keiner außerhalb lag). Nicht
verfügbare und ungültige Zeilen zählen nie mit, ein Fenster ohne bewerteten Wert zeichnet also
nichts davon auf. Eine Laufdatei, die eine frühere Version geschrieben hat, hat keine gemessenen
Werte und liest sie leer.

Jedes Ergebnis hält außerdem den Abschnitt des Laufs fest, den es bewertet hat: den Modus, die
Verankerung, Beginn und Ende eines Zeitfensters, das Segment und seine Beruhigung. Ein später
geöffneter Lauf sagt so weiterhin, was bewertet wurde, und der Nachweis in der Laufaufzeichnung und
im PDF-Bericht beginnt damit (siehe [Bewertete Kriterien](histories-record#judged-criteria)). Eine
Laufdatei, die eine frühere Version geschrieben hat, hat ihn nicht festgehalten, und ihr Nachweis
zeigt nur die Zähler.

Die Ergebnisse sind streng, was den Nachweis angeht. Im Modus **Ganzes Zeitfenster** beweist jede
bewertete Verletzung **NOK**; sonst macht eine nicht verfügbare oder ungültige Zeile, eine
unterbrochene Beobachtung oder ein leeres Fenster das Kriterium **Unbestimmt**; nur ein
vollständiger Nachweis innerhalb des Bandes macht es **OK**. Der Modus **Ein Messwert** entscheidet
allein am letzten aktiven Abtastwert des Fensters, und die Zähler, die größte Abweichung und die
betroffenen Kanäle seines Ergebnisses gehören allein zu diesem Abtastwert; der kleinste und der
größte Wert umfassen weiterhin das ganze beobachtete Fenster. Ein zeitgeführter Ablauf verankert
jedes Kriterium je Zyklus neu und zählt die gescheiterten Zyklen. Das Prüfergebnis des Laufs fasst
in dieser Reihenfolge zusammen: ein abgebrochener Lauf oder irgendein Kriterium mit NOK macht es
**NOK**; sonst macht irgendein unbestimmtes Ergebnis es **Unbestimmt**; lauter Ergebnisse mit OK
machen es **OK**; ein Lauf ohne Bewertung endet ohne Prüfergebnis. Allein ein bestätigtes NOK löst
die Abbruchschwelle des Ablaufs oder die Zählung der gescheiterten Zyklen aus.

## Namen sind Adressen {#names-are-addresses}

Jede Einheit veröffentlicht das Ergebnis ihres letzten Laufs unter
`Process.<Model>.<Unit>.LastRun.Evaluations.<Evaluation>.<Criterion>`
([LastRun](process-addresses#lastrun)), daher sind der Name der Bewertung und der Name jedes
Kriteriums (oder, bei einem Kriterium ohne Namen, der seines Kanals) Adressabschnitte, die
bereinigten Namen: "Soak check" ist `Soak_check`. Einen davon umzubenennen verschiebt diese Adressen
und schreibt die Ausdrücke, Skripte und Bilder um, die sie geschrieben haben, wie jede Umbenennung
des Modells; den Kanal eines Kriteriums ohne Namen umzubenennen verschiebt es ebenfalls.

Zwei Namen, die sich gleich lesen, antworten auf eine einzige Adresse, die nicht sagen kann, welches
Ergebnis sie hält, daher:

| Situation | Was geschieht |
| --- | --- |
| Ein Name gäbe zwei Bewertungen des Modells, oder zwei Kriterien dieser Bewertung, denselben Abschnitt (Groß- und Kleinschreibung zählen nicht) | Abgewiesen, mit dem Abschnitt und dem, der schon darauf antwortet. |
| Zwei Kriterien dieser Bewertung haben keinen Namen und beobachten denselben Kanal | Erlaubt, denn ein neues Kriterium beginnt so; keines der beiden Ergebnisse kann unter `LastRun` gelesen werden, bis eines einen Namen bekommt. |
| Ein Modell, das eine frühere Version gespeichert hat, hält schon zwei solche Namen | Bleiben, wie sie sind, und werden so gespeichert. Die geteilte Adresse liest nichts, und die Karte Definition sagt es: "Ihr Adressabschnitt Soak_check ist auch der von Soak Check, daher liest Logic die Ergebnisse des letzten Laufs von keiner der beiden. Benennen Sie eine davon um." oder "Die Kriterien Oven air, Oven Air teilen sich den Adressabschnitt Oven_air, daher liest Logic das Ergebnis des letzten Laufs von keinem davon. Geben Sie jedem einen eigenen Namen." |
| Ein Modell mit solchen Namen wird kopiert | Die Kopie behält sie, wie ihre Quelle sie hatte. |

## Wo eine Bewertung benutzt wird {#where-an-evaluation-is-used}

| Fläche | Was sie mit der Bewertung tut |
| --- | --- |
| Die Stufe **Bewerten** eines Ablaufs | Beurteilt jeden Lauf des Ablaufs; die Auswahl **Abbrechen bei NOK ≥** kommt mit ihr. Die Zeile der Stufe sagt "Bewertet 4 Kriterien, und ein NOK mit dem Schweregrad Erheblich bricht den Lauf ab." oder "…, und ein NOK bricht den Lauf nie ab." Ein Ablauf mit einer Bewertung und ohne Datalog ist nicht gültig. Siehe [Abläufe](process-procedures). |
| Die Karte **Einzelbefehle** eines Einheitenbereichs | **Jetzt bewerten** zeichnet über ein Datalog eine Zeile auf und beurteilt sie gegen die Bewertung; das Prüfergebnis wird in den Historien aufgezeichnet. Die Kanäle der Bewertung müssen Spalten des gewählten Datalogs sein. |
| Etikettenbefehle | Ein Platzhalter darf den Namen, den Kanal, die Grenzen, den Schweregrad, das Ergebnis, den Fehler, die Zeitpunkte des Fensters, die Zähler der Abtastwerte, die betroffenen Kanäle oder die größte Abweichung eines Kriteriums lesen, für einen ausdrücklichen Zyklus. Siehe [Aktionen](process-actions#markers). |
| Berichte | Der Abschnitt der Kriterien druckt das Ergebnis jedes Kriteriums mit der Betonung, die sein Schweregrad setzt. |
| Logic | `LastRun.Evaluations` jeder Einheit liest das Ergebnis jedes Kriteriums im letzten Lauf der Einheit (Ergebnis, gemessener Wert, Extremwerte, Grenzen, schlimmste Abweichung, gescheiterte Zyklen), für eine bei Laufabschluss ausgelöste Logic-Aktion, ein Bild oder einen Alarm. Siehe [LastRun](process-addresses#lastrun). |

## Bewertung entfernen {#remove-evaluation}

**Bewertung entfernen** steht in der Gefahrengruppe der Detailleiste, wenn die Bewertung gewählt
ist, in ihrem Rechtsklickmenü und als X auf der Karte der Ordnerseite. Es fragt zuerst ("Bewertung
löschen", "Das entfernt die Bewertung und ihre Kriterien."). Jeder Ablauf, der nach ihr beurteilt
hat, leert seinen Verweis Bewertung und beendet seine Läufe ohne Prüfergebnis. Es braucht Rezepte
und Bewertungen ändern und ist unter der Projektierungssperre und bei gestoppter Runtime ausgegraut.

## Was eine Bewertung nicht tut {#what-an-evaluation-does-not-do}

- Sie beurteilt nichts, was ein Datalog nicht aufzeichnet, und nichts außerhalb eines Laufs oder
  einer Momentaufnahme.
- Sie hat keine Kriterien aus Ausdrücken: Ein Kriterium ist ein Band oder eine Toleranz auf einem
  Kanal.
- Sie unterscheidet sich zwischen Einheiten in nichts: Ein Satz Grenzen dient jeder Einheit des
  Modells.
- Sie beendet von selbst keinen Lauf. Ob ein NOK den Lauf abbricht, ist die Schwelle Abbrechen bei
  NOK des Ablaufs, gegen den Schweregrad des Kriteriums gelesen.
