Manche Ergebnisse werden gemessen, andere abgeleitet: die Gesamthärte aus Calcium und Magnesium, eine Konzentration aus Messwert und Verdünnungsfaktor, ein Ergebnis auf Trockenmasse aus einem auf Feuchtmasse. Sobald jemand neben SENAITE zum Taschenrechner oder zur Tabellenkalkulation greift, gehört die Rechnung in eine Berechnung (Calculation). Dann ist die Formel einmal hinterlegt, die Eingangswerte stehen an der Probe, und das abgeleitete Ergebnis wird geprüft und verifiziert wie jedes andere.
Die Formel
Berechnungen finden Sie unter Setup, Berechnungen. Jede hat einen Namen und eine Berechnungsformel. Eingangswerte werden über ihr Schlüsselwort in eckigen Klammern angesprochen:
[Ca] * 2.497 + [Mg] * 4.118
Das ist die Gesamthärte als CaCO3 in mg/L, aus den Ergebnissen
der Leistungen mit den Schlüsselwörtern Ca und Mg. Verknüpfen
Sie die Berechnung im Reiter Methoden mit einer Leistung
“Gesamthärte”, nimmt diese keine manuelle Eingabe mehr an: Ihr
Ergebnis erscheint, sobald beide Eingangswerte vorliegen.
Die Formel ist ein Python-Ausdruck. Neben + - * / % und
Klammern stehen min, max, round, pow, sum, das Modul
math (math.log10([x])) und bedingte Ausdrücke wie
[A] - [B] if [A] > [B] else 0 zur Verfügung. In der Formel
gilt der Punkt als Dezimaltrennzeichen. Weitere Funktionen lassen
sich unter Zusätzliche Python-Bibliotheken importieren;
floor und ceil aus math sind dort voreingestellt. Für
aufwendigere Mathematik kann ein Labor Funktionen aus einem
eigenen Python-Modul auf dem Server einbinden.
Abhängigkeiten fügen sich selbst hinzu
Bekommt eine Probe die “Gesamthärte”, ergänzt SENAITE Ca und
Mg, weil die Berechnung sie braucht. Dasselbe gilt über ein
Analysenprofil:
Ein Profil, das nur die berechnete Leistung enthält, bringt ihre
Eingangswerte mit.
Abhängigkeiten schützen auch das Setup. Eine Leistung lässt sich nicht deaktivieren, solange eine aktive Leistung noch aus ihr rechnet, und eine Leistung, deren Berechnung oder Eingangsleistungen inaktiv sind, lässt sich nicht aktivieren.
Interim-Felder
Nicht jeder Eingangswert ist das Ergebnis einer anderen Analyse.
Ein Verdünnungsfaktor, eine Einwaage oder ein Volumen kommt aus
dem Labor. Dafür gibt es die Interim-Felder der Berechnung,
die an der Berechnung definiert und genauso angesprochen werden,
etwa [x_df].
Jedes Interim-Feld hat ein Schlüsselwort, einen Titel, einen
optionalen Standardwert, eine Einheit und einen Ergebnistyp
(numerisch oder eine Auswahl mit Optionen wie
1:1|10:10|100:100). Dazu kommen drei Schalter:
- Leere Eingabe erlauben: Das Feld darf leer bleiben.
- Bericht: Der Wert erscheint im Bericht als Hinweis unter dem Ergebnis.
- Global anwenden: Auf einem Arbeitsblatt lässt sich ein Wert für alle Analysen dieser Leistung auf einmal setzen, statt denselben Verdünnungsfaktor dreißigmal einzutippen.
Interim-Felder erscheinen bei der Ergebniserfassung als
zusätzliche Spalten neben dem Ergebnis. Ihre Werte gehören zur
Analyse und werden mit ihrem Ergebnis übermittelt und
verifiziert. Ihre Schlüsselwörter müssen im ganzen System
eindeutig sein und dürfen nicht mit einem Leistungsschlüsselwort
kollidieren; viele Labore setzen ein Präfix x_.
Nachweisgrenzen in der Formel
Für jede Eingangsanalyse kann eine Formel auch deren Grenzen und
Kennzeichen lesen, über ein Suffix am Schlüsselwort: [Ca.LDL],
[Ca.UDL], [Ca.LOQ] sowie die Kennzeichen [Ca.BELOWLDL],
[Ca.ABOVEUDL], [Ca.BELOWLOQ], die 1 oder 0 sind. So lassen
sich Regeln wie “ein Wert unter der Nachweisgrenze zählt als
null” abbilden:
(0 if [Ca.BELOWLDL] else [Ca]) * 2.497
+ (0 if [Mg.BELOWLDL] else [Mg]) * 4.118
Ob ein Wert unter der Nachweisgrenze als null zählt, als halbe Grenze oder die Summe selbst zu einem Wert unter der Grenze macht, entscheidet die Methode des Labors, nicht die Software. Schreiben Sie es auf und bringen Sie es in die Formel. Unser Beitrag zu den Nachweisgrenzen erklärt, woher diese Grenzen kommen.
Testen, bevor Sie verknüpfen
Unter der Formel listen die Testparameter jedes
Schlüsselwort auf, das die Formel verwendet: die
Eingangsleistungen und die Interim-Felder. Tragen Sie
realistische Werte ein und speichern Sie; Ergebnis testen
zeigt, was die Formel liefert. Mit Ca = 40 und Mg = 12
ergibt die Härteformel oben 149,296. Prüfen Sie ein oder zwei
bekannte Werte aus Ihrer bisherigen Tabelle, bevor die Berechnung
produktiv geht.
![Berechnung Total Hardness: Formel [Ca] + [Mg], Testparameter Ca 11 und Mg 5, Testergebnis 16.](/_astro/training-calculation-formula.C1R2LcIO_QHmLx.webp)
Was passiert, wenn etwas fehlt oder falsch ist
| Situation | Berechnetes Ergebnis |
|---|---|
| Eine Eingangsanalyse hat noch kein Ergebnis | leer; es wird nichts berechnet |
| Ein Eingangsergebnis wird wieder entfernt | das berechnete Ergebnis wird geleert |
| Division durch null | 0/0 |
| Ein Schlüsselwort lässt sich nicht auflösen, ein Eingangswert ist keine Zahl | NA |
NA und 0/0 sind an der Analyse sichtbar und fallen bei der
Verifizierung auf. Ein leeres Ergebnis wartet einfach auf seine
Eingangswerte.
Momentaufnahmen: was eine Änderung an der Berechnung bewirkt
Ab SENAITE 2.7 behält eine Analyse eine Kopie von Formel, Importen und Interim-Feldern aus dem Moment, in dem die Berechnung mit ihr verknüpft wurde. Eine Änderung an der Berechnung betrifft Analysen, die danach angelegt werden. Bestehende Ergebnisse werden nicht mit einer Formel neu berechnet, mit der sie nie berechnet wurden, und genau das erwartet ein Auditor.
Stolperfallen für neue Labore
Ein Schlüsselwort umbenennen. Formeln verweisen als Text auf
Schlüsselwörter. SENAITE lehnt ein neues Schlüsselwort ab, das
eine Formel bereits verwendet, schreibt aber keine Formeln um,
wenn sich ein bestehendes Schlüsselwort ändert. Benennen Sie Ca
um, kann die Härteformel es nicht mehr auflösen. Legen Sie
Schlüsselwörter vor dem Produktivstart fest.
Rundung. Berechnungen verwenden die gespeicherten Ergebnisse,
nicht die gerundeten Werte auf dem Bildschirm. Eine Formel mit
1.234 rechnet mit 1.234, auch wenn die Leistung 1,2
anzeigt. Verlangt Ihre Methode gerundete Zwischenwerte, runden
Sie in der Formel mit round([Ca], 1).
Unsicherheit und Grenzen der berechneten Leistung. Die berechnete Leistung ist eine normale Leistung: Genauigkeit, Unsicherheit und Spezifikationen kommen aus ihren eigenen Einstellungen, nicht aus den Eingangswerten. SENAITE pflanzt Unsicherheiten nicht durch die Formel fort. Brauchen Sie die kombinierte Unsicherheit, berechnen Sie sie.
Eine Berechnung pro Variante. Läuft dieselbe Rechnung mit unterschiedlichen Faktoren, nehmen Sie ein Interim-Feld mit Standardwert, statt die Berechnung zu kopieren. Kopien laufen auseinander.
Jede wiederkehrende Rechnung außerhalb von SENAITE ist ein Übertragungsschritt, den niemand verifiziert. Sie in eine Berechnung zu verlegen, dauert ein paar Minuten und entfernt diesen Schritt für jede folgende Probe.