Skip to content

Treiberprofile und Dialekte

Ein Treiberprofil beschreibt ein Gerätemodell so, dass der calServer Runner es am Messplatz ansprechen kann. Ein Dialekt ist der Teil des Runners, der eine ganze Gerätefamilie spricht. Zusammen bilden sie die Treiberschicht zwischen Prüfplan und Gerät. Warum diese Schicht getrennt vom Plan ist, erklärt das Konzept; die Bedienung in calServer steht unter Prüfpläne als calScript › Treiberprofile.

Was ein Profil sagt, und was nicht

Ein Profil sagt … Ein Profil sagt nicht …
welche Funktionen das Modell geben und welche es messen kann ob das Gerät Normal oder Prüfling ist (das entscheidet der Lauf)
wie es sich auf *IDN? meldet welche Adresse es am Messplatz hat (das steht am Messplatzgerät)
Schnittstelle, Abschlusszeichen, Zeitlimit welche Punkte gemessen werden (das sagt der Plan)
Befehle je Funktion oder den Dialekt, der sie kennt wann ein Wert bestanden hat (das rechnet calServer)
Bereiche, Integrationszeit, Grenzen, Faktor

Ein Profil, ein Modell. Kombinierte Geräte wie der Fluke 5320A, die in einer Funktion Werte geben und in einer anderen messen, sind ein Profil mit beiden Fähigkeiten, nicht zwei.

Aufbau

Ein Profil ist ein JSON-Dokument im Format calserver-runner.profile. Ein Datenprofil für ein allgemeines SCPI-Multimeter, das alle Befehle selbst trägt:

{
  "format": "calserver-runner.profile",
  "version": 1,
  "revision": 1,
  "manufacturer": "SCPI",
  "model": "Digitalmultimeter (allgemein)",
  "capabilities": { "measure": ["VDC", "VAC", "ADC", "AAC", "OHM", "FREQ"] },
  "settings": { "read_termination": "\n" },
  "commands": { "init": ["*CLS"] },
  "functions": {
    "VDC": { "measure": ["CONF:VOLT:DC", "READ?"] },
    "VAC": { "measure": ["CONF:VOLT:AC", "READ?"] }
  },
  "note": "Allgemeiner SCPI-Satz ohne Kennungsprüfung."
}

Ein Profil, das einen Dialekt nutzt, trägt keine Befehle, sondern Kennung, Schnittstelle und Grenzen; die Befehle kennt der Dialekt:

{
  "format": "calserver-runner.profile",
  "version": 1,
  "revision": 1,
  "manufacturer": "Fluke",
  "model": "5522A",
  "driver": "fluke.55xx",
  "capabilities": { "source": ["VDC", "VAC", "ADC", "AAC", "OHM", "OHM4", "CAP", "FREQ"] },
  "idn": ["FLUKE", "5522A"],
  "settings": { "read_termination": "\n", "write_termination": "\n", "timeout": 10000 },
  "options": { "max_voltage_v": 1020.0, "max_current_a": 20.5 }
}
Feld Bedeutung
revision Stand des Profils. Steht in jeder Fehlermeldung des Runners; wer ändert, zählt hoch.
manufacturer, model Gerätemodell; die Kennung des Profils (fluke-5522a) entsteht daraus.
driver Dialekt. Fehlt er, gilt der Datentreiber scpi.generic mit den Befehlen aus functions.
capabilities source und/oder measure, je mit der Liste der Funktionen. Was hier nicht steht, sendet der Runner nicht.
idn Teile der Antwort auf *IDN?. Meldet sich am Anschluss ein anderes Modell, öffnet der Runner das Gerät nicht.
settings Schnittstelle: Abschlusszeichen, Zeitlimit, bei seriellen Geräten Baudrate, Datenbits, Parität, Stoppbits.
commands.init Befehle beim Öffnen, etwa Rücksetzen und Fehlerschlange leeren.
functions.<F> Befehlsfolgen je Funktion: output (geben), measure (lesen), bei Mehrbereichsgeräten ranges (eine Folge je Bereichsobergrenze), scale (fester Faktor auf den gelesenen Wert).
options Dialektabhängig: Grenzen (max_voltage_v, max_current_a, limits je Funktion), Bereiche, Integrationszeit (nplc), Autozero, Rücksetzen beim Öffnen.
note Quelle und Hinweise, etwa was vor dem ersten Lauf am Gerät zu prüfen ist.

Funktionen

Die Funktionsnamen sind der Vertrag zwischen Plan und Profil:

Funktion Größe
VDC, VAC Gleich- und Wechselspannung
ADC, AAC Gleich- und Wechselstrom
OHM, OHM4 Widerstand in 2- und 4-Draht-Schaltung
CAP Kapazität
FREQ Frequenz
TEMP Temperatur

Ein Plan darf auch die SCPI-Schreibweise nutzen (function "VOLT:DC"); der Runner bildet sie auf dieselbe Funktion ab. Wechselgrößen brauchen eine Frequenz: zuerst der Modifier des Punkts (@ 50 Hz), dann eine Angabe hinter der Funktion (function "VAC 1 kHz"), dann die Bindung. Ohne Frequenz scheitert der Punkt.

Dialekte des Runners

Dialekt Kann Für Was er selbst weiß
scpi.generic geben und messen Geräte, deren Befehle vollständig im Profil stehen nichts Gerätespezifisches; alles kommt aus functions (alte Namen scpi.source, scpi.reader bleiben lesbar)
scpi.dmm messen SCPI-Präzisionsmultimeter (Keysight 34401A/3446x/34470A, Keithley DMM6500) Messung im festen Bereich, feste Integrationszeit, Autozero, Fehlerschlange vor und nach jeder Ablesung, Überlauf als Fehler
fluke.55xx geben Fluke 5500A, 5502A, 5520A, 5522A Ausgabe aller Funktionen, Betrieb/Standby mit Nachweis, Fehlerschlange, Rückfrage des Ausgangs, Sicherheitsabschaltung am Ende und bei jedem Abbruch
fluke.5320a geben und messen Fluke 5320A Widerstand geben, mit Option auch Spannung; mit dem eingebauten Multimeter Spannung und Strom messen; Ausgang bei jedem Fehler aus
fluke.28x messen Fluke 287, 289 über IR-Adapter liest, was am Drehschalter eingestellt ist, prüft die Einheit gegen die Funktion des Schritts, Überlauf und offenes Thermoelement sind Fehler

Ein Dialekt bedient nur seine Fähigkeiten. Ein Profil, das von fluke.55xx Messen verlangt, lädt der Runner nicht.

Mitgelieferte Profile

Jeder Runner bringt diese Profile mit. Sie gelten am Messplatz auch ohne Eintrag in calServer und erscheinen in calServer unter Administration, Treiberprofile als Standardprofile.

Profil Gerät Dialekt Gibt Misst
fluke-5500a, fluke-5502a, fluke-5520a, fluke-5522a Multifunktionskalibratoren fluke.55xx VDC, VAC, ADC, AAC, OHM, OHM4, CAP, FREQ –
fluke-5320a Multifunktions-Elektrikprüfgerät-Kalibrator fluke.5320a VDC, VAC, OHM, OHM4 VDC, VAC, ADC, AAC
keysight-34401a 6½-Stellen-Multimeter scpi.dmm – VDC, VAC, ADC, AAC, OHM, OHM4, FREQ
keysight-34461a, keysight-34465a, keysight-34470a 6½- bis 7½-Stellen-Multimeter scpi.dmm – VDC, VAC, ADC, AAC, OHM, OHM4, CAP, FREQ
keithley-dmm6500 6½-Stellen-Multimeter scpi.dmm – VDC, ADC, OHM
fluke-8846a 6½-Stellen-Multimeter scpi.generic – VDC, VAC, ADC, AAC, OHM, FREQ
fluke-287, fluke-289 Handmultimeter über IR fluke.28x – VDC, VAC, ADC, AAC, OHM, CAP, FREQ (289 auch TEMP)
scpi-dmm allgemeines SCPI-Multimeter, ohne Kennungsprüfung scpi.generic – VDC, VAC, ADC, AAC, OHM, FREQ

Alle Profile sind eigene Fassungen nach öffentlich zugänglichen Programmierhandbüchern der Hersteller. Vor dem ersten Lauf am echten Gerät prüfen (calserver-runner probe).

Welches Profil gilt

Der Runner sucht ein Profil in dieser Reihenfolge, das erste gewinnt:

  1. ein Ordner, den der Aufruf nennt (--profiles);
  2. Profile, die ein Labor am Messplatz selbst ablegt (~/.calserver-runner/profiles);
  3. die aktiven Profile aus calServer, die der Runner vor jedem Lauf holt (ohne Verbindung gilt der letzte Stand);
  4. die mitgelieferten Profile.

Ein in calServer gepflegtes Profil ersetzt also an jedem Messplatz das mitgelieferte mit derselben Kennung.

Sicherheitsregeln

Der Runner arbeitet nach dem Grundsatz „lieber nicht senden als falsch senden“:

  • Kennung prüfen. Meldet sich ein anderes Modell, wird das Gerät nicht geöffnet.
  • Fähigkeit prüfen. Kann das Gerät der Rolle die verlangte Funktion nicht, scheitert der Punkt vor dem ersten Befehl.
  • Grenzen einhalten. Über max_voltage_v, max_current_a oder limits hinaus wird nichts gesendet.
  • Sicher abschalten. Kalibratoren gehen am Ende jedes Laufs, vor jedem Halt und bei jedem Fehler sofort in Standby, mit Nachweis, notfalls per Reset. Ein eigener Geber (scpi.generic) braucht dafür einen Standby-Befehl, sonst lädt er nicht; mit commands.output_query (etwa OUTP?) weist er das Abschalten nach.
  • Nicht raten. Fehlt eine Frequenz, ein Bereich oder ein Befehl, scheitert der Punkt mit einer Meldung, statt einen Wert anzunehmen.

Gefährliche Spannung (ab Runner 0.24.0)

Ab 60 V Gleichspannung oder 30 V Wechselspannung gilt ein Ausgang als gefährlich. Dann:

  • zeigt das Taskleisten-Symbol ein gelbes Warndreieck, Tooltip und erste Menüzeile beginnen mit „ACHTUNG“ und nennen Gerät und Wert, und eine Benachrichtigung erscheint;
  • schaltet ein Fehler (Ablesung scheitert, Gerät meldet Fehler, Verbindung bricht ab) alle Quellen sofort ab, und der Lauf schaltet keine gefährliche Spannung mehr ein. Die übrigen Punkte darunter laufen weiter; nach der Ursache startest du den Lauf neu;
  • bricht der Lauf ab, wenn sich ein Ausgang nicht nachweisbar abschalten lässt. Die Warnung bleibt am Symbol, bis du den Ausgang am Gerät geprüft und Ausgang geprüft, Warnung quittieren gewählt hast.

Die Schwellen lassen sich in config.json des Runners mit hazard_dc_v und hazard_ac_v senken, nicht über 70 V / 33 V heben. Fällt der Rechner hart aus, bleibt der Kalibrator im letzten Zustand; dagegen helfen nur Not-Aus und die Schutzfunktionen des Geräts. Hintergrund: ADR Gefährliche Spannung am Ausgang.

Ein neues Gerät dazunehmen

 Standardprofil übernehmen ─┐
 Neues Treiberprofil ───────┼──► Entwurf (inaktiv) ──► Abnahme am Gerät ──► aktiv ──► Lauf
 Aus Handbuch mit KI ───────┤                          calserver-runner probe          │
 Entwurf aus MET/CAL-Import ┘                                                           ▼
                                   Revision hochzählen ◄── Profil bessern ◄── Fehlerprotokoll
  1. Ausgangspunkt wählen. Unter Administration, Treiberprofile: ein Standardprofil übernehmen, Neues Treiberprofil (calServer schlägt aus dem Gerätetyp das passende Standardprofil oder ein verwandtes Modell vor) oder Aus Handbuch mit KI (Programmierhandbuch als PDF hochladen, die KI verfasst einen Entwurf und prüft ihn gegen das, was jedes mitgelieferte Profil hat). Beim MET/CAL-Import entsteht für einen Prüfling, der über den Bus gelesen wird, ein Entwurf aus den Befehlen der Prozedur.
  2. Am Gerät abnehmen. calserver-runner probe spricht die Geräte an, ohne zu messen: Kennung, Fehlerschlange, Ausgang, Betriebszustand.
  3. Aktiv setzen. Entwürfe aus KI und Import werden immer inaktiv gespeichert; erst das aktive Profil holt der Messplatz.
  4. Aus Fehlern lernen. Scheitert ein Punkt, schickt der Runner ein Fehlerprotokoll mit Profil und Revision, den letzten Befehlen, der Antwort und der Fehlerschlange des Geräts. Es lässt sich für eine KI-Analyse herunterladen; den Vorschlag übernimmt ein Mensch nach eigener Prüfung. Ein Profil ändert niemand automatisch.

Grenzen heute

  • Referenzmultimeter ohne SCPI (etwa 3458A, 8508A) und die Kalibratorfamilie 5700A/5720A/5730A brauchen eigene Dialekte; sie sind noch nicht gebaut.
  • Ein Profil kennt feste Befehlsfolgen, Bereiche und einen festen Faktor, aber keine Rechnung mit Laufzeitwerten und keine Verzweigung. Wie viel Logik ein Treiber tragen darf, wird gerade ausgearbeitet; siehe Konzept › Offen.
  • Benannte Einrichtaktionen mitten im Ablauf (etwa ein Nullabgleich) sind vorgesehen, aber noch nicht gebaut.

Hintergrund: ADR 2026-10-29 Treiberprofile, ADR 2026-10-31 Fähigkeiten statt Rollen, ADR 2026-10-31 Treiberprofile per KI, ADR 2026-11-01 Busbefehle als Profilentwurf.