Prüfschritte¶
Prüfschritte sind die einzelnen Messschritte innerhalb einer Kalibrierung. Sie werden über den TestStepController als Unterressource einer Kalibrierung verwaltet.
Konzept¶
Jeder Prüfschritt repräsentiert eine einzelne Messung oder Prüfung im Rahmen einer Kalibrierung. Er definiert den Sollwert, die zulässigen Toleranzen und die Messbedingungen. Die Ergebnisse werden pro Prüfschritt dokumentiert.
Aufbau eines Prüfschritts¶
| Feld | Pflicht | Beschreibung |
|---|---|---|
| Bezeichnung | Ja | Beschreibung des Prüfschritts |
| Sollwert | Ja | Erwarteter Messwert |
| Einheit | Ja | Maßeinheit (z. B. mV, bar, °C) |
| Toleranz (+) | Ja | Obere Toleranzgrenze |
| Toleranz (-) | Ja | Untere Toleranzgrenze |
| Messpunkt | Nein | Position oder Bereich der Messung |
| Reihenfolge | Ja | Sortierung innerhalb der Kalibrierung |
| Bemerkung | Nein | Zusätzliche Hinweise für den Prüfer |
Bearbeiten¶
Im Prüfschritte-Tab einer Kalibrierung zeigt die Tabelle die Schritte nur an. Geändert wird über „Schritte bearbeiten" — derselbe Editor wie bei den Prozedurvorlagen, mit umschaltbarer Tabellen-/Kartenansicht, geführter Toleranz-Eingabe, Messpunkt-Serie und Grenzen-Vorschau. Details zu den Feldern und zur Syntax stehen unter Prozedurvorlagen.
Gespeichert wird die komplette Liste in einem Zug, nicht Zeile für Zeile:
PUT /api/v2/calibrations/{calibrationId}/test-steps
Body: { "steps": [ { "id": "…", "test_type": "Manual Test", … }, … ] }
- Ein Schritt mit
idbehält seine Identität und damit seinen bereits erfassten Messwert. - Ein Schritt ohne
idwird neu angelegt. - Ein Schritt, der nicht mehr im Payload steht, wird gelöscht — zusammen mit seiner Ergebniszeile. Der Editor weist beim Öffnen darauf hin, wenn für einzelne Schritte schon Messwerte vorliegen.
row_numberund die hierarchische Schrittnummertest_stepergeben sich aus der übergebenen Reihenfolge und werden nie vom Client übernommen. Vorhandene Ergebniszeilen wandern beim Umsortieren mit ihrem Schritt mit.
Die Einzeloperationen bleiben für API-Clients erhalten:
POST /api/v2/calibrations/{calibrationId}/test-steps # ein Schritt
PUT /api/v2/test-steps/{id} # ein Schritt
DELETE /api/v2/test-steps/{id}
POST /api/v2/calibrations/{calibrationId}/test-steps/reorder
Der Vorlauf: was vor dem ersten Messwert feststeht¶
Wird ein Prüfplan wirklich gestartet — über „Ausführen" im Prüfschritte-Tab
oder direkt auf der Vollbild-Route /procedure-run/{ctag} —, fragt calServer
zuerst drei Dinge ab. Erst danach lassen sich Messwerte erfassen; der Lauf steht
solange im Zustand Vorlauf.
| Angabe | Pflicht | Warum vorher |
|---|---|---|
| Umgebungsbedingungen (Temperatur, rel. Feuchte, Umgebungsdruck) | Nein | Nicht jede Prüfung hängt daran. Nachtragen aus einem Datenlogger bleibt möglich — ein Pflichtfeld, das mit einer erfundenen 23 gefüllt wird, ist schlechter als ein leeres. |
| Eingangsentscheid (as found) | Ja | Nach der ersten Justage lässt sich der Zustand bei Eingang nicht mehr feststellen. Er entscheidet darüber, ob der Kunde eine Rückwirkungsbetrachtung braucht. |
| Eingesetzte Normale | Ja, mit Ausweg | Eine Rückführung, die nachträglich eingetragen wird, ist eine Behauptung. |
Eingangsentscheid¶
Drei Werte, dieselben wie beim Prüfentscheid am Ende des Laufs:
| Wert | Bedeutung |
|---|---|
Bestanden (Y) |
Gerät kam innerhalb der Toleranz an. |
Nicht bestanden (N) |
Gerät kam außerhalb der Toleranz an. |
Ohne Entscheid (O) |
Kein Eingangsurteil möglich, etwa bei einem Neugerät. |
Der Entscheid gilt dem ganzen Lauf, nicht dem einzelnen Messpunkt. Er landet
auf der Kalibrierung (as_found_result) und steht damit dem Kalibrierschein zur
Verfügung — neben dem Prüfentscheid, der den Zustand bei Ausgang beschreibt.
Normale auswählen¶
Die Vorschlagsliste kommt aus dem Inventar, in dieser Reihenfolge:
- zuletzt verwendet — Normale, mit denen genau dieses Gerät früher schon kalibriert wurde.
- im Haus als Normal genutzt — jedes Inventarobjekt, das irgendwo schon einmal als Normal eingesetzt wurde.
- Suche — freie Suche über Inventarnummer, Hersteller, Modell, Serien- und Typnummer, für ein Normal, das zum ersten Mal zum Einsatz kommt.
Es gibt kein Kennzeichen „ist ein Normal", das erst gepflegt werden müsste: der Bestand definiert den Pool selbst.
Jede Zeile zeigt den Kalibrierstand des Normals: bis wann es kalibriert ist, ob es abgelaufen ist, oder ob gar kein Datum hinterlegt ist.
Abgelaufene Normale werden gekennzeichnet, nicht ausgeblendet
Ein Normal ohne gültige eigene Kalibrierung lässt sich auswählen — der Dialog weist darauf hin. Ausblenden würde die Rückführungslücke verstecken, statt sie zu zeigen, und es gibt legitime Fälle (Normal in Rekalibrierung, Ersatzstellung), in denen die Prüfstelle das begründet tut.
Ohne Normal starten¶
Eine reine Sicht- oder Funktionsprüfung braucht kein Normal. Wird keins gewählt, verlangt der Dialog stattdessen eine Begründung (mindestens fünf Zeichen). Sie wird am Lauf festgehalten. Ein Häkchen ohne Text gibt es nicht — im Audit wäre es wertlos.
Laufende Prüfabläufe sind nicht betroffen
Die Sperre gilt für Läufe, die ab dieser Version geöffnet werden. Ein bereits laufender Prüfablauf lässt sich unverändert weiter erfassen.
Die Vorschau eines Messwerts (Grenzen, voraussichtliche Bewertung) bleibt auch im Vorlauf offen — gespeichert wird dabei nichts. Ebenso unberührt bleibt das Nachtragen von Ergebnissen von Hand außerhalb eines gestarteten Prüfablaufs.
Ergebniserfassung¶
Während der Durchführung einer Kalibrierung wird für jeden Prüfschritt der Istwert eingetragen:
| Feld | Beschreibung |
|---|---|
| Istwert | Gemessener Wert |
| Ergebnis | Automatisch berechnet, siehe Konformitätsbewertung unten |
| Abweichung | Differenz zwischen Soll- und Istwert |
| Bemerkung | Optionale Anmerkung des Prüfers |
Zwei Ansichten: Tabelle und Schrittweise¶
Die Erfassung startet im Prüfschritte-Tab über „Ausführen". Der Umschalter
daneben entscheidet, wie erfasst wird; die Wahl bleibt gespeichert und gilt auch
auf der Vollbild-Route /procedure-run/{ctag}.
| Ansicht | Wofür |
|---|---|
| Tabelle | Schreibtisch und Tastatur. Alle Messpunkte gleichzeitig sichtbar, eine Zeile je Punkt, genau eine Spalte beschreibbar. |
| Schrittweise | Tablet und Werkstatt. Ein Punkt pro Bildschirm, große Flächen, mit Handschuhen bedienbar. |
In der Tabellenansicht ist kein Mausklick nötig:
- Enter übernimmt den Wert und setzt den Cursor in die nächste Messwertzelle. Bestätigungs- und Hinweisschritte werden dabei übersprungen — dort gibt es kein Eingabefeld.
- Pfeil hoch/runter wechselt die Zeile, ohne zu speichern.
- Beim Öffnen steht der Cursor im ersten noch offenen Messpunkt.
Was die Tabelle außerdem zeigt (Muster aus Fluke CalStudio, nicht dessen Look):
- Grenzbalken je Messpunkt in der Spalte „Grenzen“: Band von Unter- bis
Obergrenze, Sollwert als Strich, Guard Band als gelbe Zone an den Rändern,
der Messwert als Marke. Beim Tippen ist die Marke gestrichelt (Vorschau),
nach dem Übernehmen gefüllt und in der Farbe des Urteils. Hängen die Grenzen
an der Ablesung (
%bei UUT Indicated, Referenzablesung), erscheint der Balken erst mit dem Wert. - Ergebnis als Icon: Kreis offen, Haken bestanden, Fragezeichen bedingt,
Kreuz nicht bestanden; das Legendensymbol des Scheins (
?,!?,!) steht daneben. - Kopf mit Fortschrittsbalken, Gesamturteil und Zählung (bestanden, nicht bestanden, bedingt, offen, übersprungen), dazu der Zustand des Laufs („Bereit“, „Läuft“, „Vorlauf offen“) und der Prüfling (Inventarnummer, Gerät, Seriennummer). Wer zwei Läufe offen hat, sieht so, welcher welcher ist.
- Gliederung links: Abschnitte mit Zähler, Schritte mit ihrem Zustand; ein Klick springt in die Zeile und setzt den Cursor. Der Knopf „Gliederung“ blendet sie aus, die Wahl merkt sich der Browser.
Der Probelauf im Schritt-Editor zeigt dieselbe Tabelle und damit dasselbe.
Live: Werte von einem anderen Bildschirm¶
Solange der Lauf offen ist (Vorlauf oder Erfassung), fragt die Tabelle alle drei Sekunden, ob sich am Lauf etwas geändert hat. Schreibt ein Messplatz oder ein Kollege an einem zweiten Bildschirm einen Wert, erscheint er ohne Neuladen, samt Fortschritt und Ergebnis. Übernimmt jemand anderes den Vorlauf, geht der Vorlauf-Dialog von selbst zu. Ein Wert, den du gerade tippst und noch nicht übernommen hast, bleibt dabei stehen.
Ein verdeckter Browser-Tab fragt nicht; sobald er wieder vorne ist, holt er den
Stand nach. Die Schrittweise-Ansicht lädt ihre Schritte selbst und aktualisiert
sich nicht live. Abgefragt wird nur eine Änderungsmarke
(GET /api/v2/procedure-runs/{run}/revision), der Lauf selbst erst, wenn sie
sich ändert.
Eingabe: Komma, Vorsatz und Einheit¶
Der Messwert wird als Text gelesen, nicht als Zahlenfeld:
| Eingabe | Bei einem Punkt in V bedeutet das |
|---|---|
10,03 oder 10.03 |
10,03 V |
10030 mV, 10030mV, 10030m |
10,03 V |
1e3 |
1000 V |
10 Äpfel |
wird abgewiesen, das Feld meldet den Fehler |
Ohne getippte Einheit gilt die des Punktes. Ist eine Einheit angegeben, gewinnt
sie gegen einen gleichnamigen Vorsatz: bei einem Punkt in Metern sind 10m zehn
Meter, nicht zehn Millimeter. Groß- und Kleinschreibung zählt beim Vorsatz
(10mV ≠ 10MV), bei der Einheit nicht.
Im schrittweisen Modus gibt es zusätzlich Auswahlfelder für Vorsatz und Einheit — in einer Tabelle mit zwanzig Zeilen wären das vierzig Auswahlfelder, die niemand anfasst.
Vorschau beim Tippen¶
Während getippt wird, zeigen Abweichung, Toleranzausnutzung und Status schon, worauf es hinausläuft — kursiv beziehungsweise blass, weil es eine Vorschau ist. Maßgeblich ist immer das gespeicherte Ergebnis vom Server. Sollwert, Toleranzgrenzen und Guard Band stehen bereits, sobald ein Punkt offen ist.
Plausibilität ist eine Nachfrage, keine Sperre
Liegt die Abweichung mehr als zehnmal über der Toleranz, weist die Zeile darauf hin — das ist typisch für einen Zahlendreher oder eine vergessene Einheit. Übernehmen lässt sich der Wert trotzdem: ein Prüfling kann kaputt sein, und dann ist der Wert richtig.
Konformitätsbewertung¶
Das System bewertet automatisch, ob der gemessene Istwert innerhalb der definierten Toleranzen liegt. Ist für den Schritt eine erweiterte Messunsicherheit gepflegt, wird zusätzlich das Guard Band nach ILAC-G8 berücksichtigt — dann gibt es vier statt zwei Zustände:
| Anzeige | Symbol im Schein | Bedeutung |
|---|---|---|
| Bestanden (grün) | (leer) | Innerhalb der Spezifikation, auch unter Berücksichtigung der Messunsicherheit |
| Bedingt (gelb) | ? |
Innerhalb der Spezifikation, aber im Guard Band: eine Konformitätsaussage ist nicht möglich |
| Bedingt (rot) | !? |
Außerhalb der Spezifikation, aber innerhalb der Messunsicherheit um die Grenze: eine negative Konformitätsaussage ist nicht möglich |
| Nicht bestanden (rot) | ! |
Außerhalb der Spezifikation, auch unter Berücksichtigung der Messunsicherheit |
Ohne Unsicherheit bleibt es zweiwertig
Trägt ein Schritt keine Unsicherheit, entfallen die beiden mittleren Zonen und die Bewertung ist wie bisher grün oder rot. Die Unsicherheit ist damit der Schalter, mit dem eine Guard-Band-Bewertung überhaupt entsteht.
Die angewandte Entscheidungsregel wird je Ergebniszeile mitgeschrieben
(guardband_meth, ILAC-G8 w=U bzw. ILAC-G8 w=0), damit ein ? im
Kalibrierschein begründbar bleibt.
Gesamtergebnis des Prüfablaufs: Enthält ein abgeschlossener Lauf mindestens
einen bedingten Schritt und keinen eindeutigen Fehler, lautet der Prüfentscheid
weder „bestanden" noch „nicht bestanden", sondern O — die Entscheidung liegt
beim Prüfer. Für die MET/TEAM-Rückgabe und die MET/CAL-Spalte pass_fail werden
die Zwischenzustände auf die Seite der Toleranzgrenze reduziert, auf der sie
liegen; die Feinheit bleibt in test_status.
Prüfschritte aus Prozedurvorlagen¶
Beim Erstellen einer neuen Kalibrierung werden die Prüfschritte aus der zugehörigen Prozedurvorlage übernommen. Diese können anschließend für die konkrete Kalibrierung angepasst werden, ohne die Vorlage zu verändern.
Herkunft der angewandten Vorschrift¶
Beim Laden einer Vorlage hält calServer fest, welche Version angewandt wurde — die Frage eines Auditors lautet „gegen welche Vorgabe wurde damals bewertet?", und die ist rückwirkend nicht mehr zu beantworten.
Festgehalten wird am Prüfablauf (procedure_runs): die Vorlagen-ID, die
Version sowie Name und Hash als Schnappschuss. Der Schnappschuss ist nötig,
weil das Löschen einer Vorlage keine Referenzprüfung kennt; ein später erneut
gedruckter Schein muss trotzdem benennen können, was angewandt wurde.
Wird nach dem Laden an den Schritten gearbeitet — im Editor, über die
Einzeloperationen oder durch Umsortieren —, vermerkt der Lauf das in
steps_modified_at. Die Anzeige über dem Prüfschritte-Grid und im
Ausführungs-Wizard sagt dann „nach dem Laden verändert" dazu, statt eine
Versionsnummer zu behaupten, die nicht mehr trägt. Ein erneutes Laden setzt die
Herkunft neu und löscht den Vermerk.
Die Angabe erscheint zusätzlich
- im Report-Datensatz unter
procedure.template_name/.template_version/.template_modified_at(Contractcalibration-certificateab v1.3) und - im DCC-Export als
dcc:usedMethodmitrefType="calServer_measuringProcedure"— der einzigeusedMethod, der an der konkreten Kalibrierung hängt statt an einer Report-Variable.
Eine Kalibrierung, deren Schritte nie aus einer Vorlage kamen, bekommt keinen Lauf und keine Herkunftsangabe.
Berechtigungen¶
Die Verwaltung von Prüfschritten erfordert die Berechtigung calibration_edit. Das Einsehen der Prüfschritte erfordert calibration_view.