GM-Zähler Kommunikationsprotokoll
Basierend auf der dänischen Anleitung für den GM-Zähler.
Datenstrom
Das automatische Streaming sendet Daten als Text mit 9600 Bits pro Sekunde. Standardmäßig wird ein Komma zwischen den Werten eingefügt:
aktuelle Zählnummer
letztes abgeschlossenes Ergebnis
Zählzeit
Wiederholung (0/1)
Fortschritt
Spannung
Fortschritt bedeutet hier: Prozentsatz der gewählten Zählzeit. Oder (bei unendlicher Zählzeit): Verstrichene Zeit in Sekunden.
Kommunikationsprotokoll
Die Befehle an das Gerät bestehen aus einem Buchstaben, eventuell gefolgt von einer Zahl. Die möglichen Antworten des Gerätes hängen von dem Befehl ab.
Befehle
Streaming-Steuerung (b)
Bei alleiniger Verwendung gibt der Befehl den Status zurück. Wenn er mit einem Parameter 0-8 verwendet wird, ändert sich die Funktion wie folgt:
Befehl |
Funktion |
|---|---|
|
Streaming stoppen |
|
Streaming-Daten senden, wenn die Messung bereit ist |
|
Streaming-Daten jetzt senden |
|
Jetzt senden und fortfahren, wenn bereit (b2+b1) |
|
Daten alle 50 ms senden |
|
Komma zwischen den Werten verwenden |
|
Semikolon zwischen den Werten verwenden |
|
Leerzeichen zwischen den Werten verwenden |
|
Tabulator zwischen den Werten verwenden |
Standard: b4 und b5. Wenn beim Einschalten des Geräts Start/Stop gedrückt und gehalten wird, entspricht dies b0.
Beispiel: b1 startet das Streaming, wenn die Messung bereit ist.
Unternehmensinformationen (c)
Rückgabe der Unternehmensinformation als Zeichenkette:
(c) copyright 2020 Frederiksen Scientific A/S
Registerwerte lesen (d)
Rückgabe des aktuellen Wertes aus dem Sekundärregister und Primärregister.
Ergebnisse senden (e)
Wenn der Befehl allein verwendet wird, wird der Status zurückgegeben. Wenn der Befehl mit den Parametern 0-1 verwendet wird, ändert sich der Status wie folgt:
Befehl |
Funktion |
|---|---|
|
Zählnummern werden nicht automatisch gesendet |
|
Zählnummern werden automatisch gesendet, wenn jede Zählperiode abgeschlossen ist |
Beispiel: e1 aktiviert das automatische Senden der Zählnummern nach jeder Zählperiode.
Zählzeit (f)
Bei alleiniger Verwendung gibt der Befehl die aktuelle Zählzeit in Sekunden zurück. Wenn der Befehl mit den Parametern 0-5 verwendet wird, ändert sich die Zählzeit:
Befehl |
Zählzeit |
|---|---|
|
Unendlich |
|
1 Sekunde |
|
10 Sekunden |
|
60 Sekunden |
|
100 Sekunden |
|
300 Sekunden |
Andere Zählzeiten sind ungültig. Die Anzeigesymbole werden in Abhängigkeit von der Zählzeit aktiviert.
Beispiel: f3 setzt die Zählzeit auf 60 Sekunden.
GM-Spannung (j)
Bei alleiniger Verwendung gibt der Befehl die aktuelle GM-Spannung in Volt zurück. Wenn der Befehl mit den Parametern 400-700 verwendet wird, wird die GM-Spannung entsprechend gesetzt.
Beispiel: j520 setzt die GM-Spannung auf 520V.
Einzel-/Wiederholungsmodus (o)
Wenn der Befehl allein verwendet wird, wird der Status zurückgegeben. Bei Verwendung des Befehls mit den Parametern 0-1 ändert sich der Modus:
Befehl |
Modus |
|---|---|
|
Einzeln |
|
Wiederholung |
Beispiel: o1 setzt den Modus auf Wiederholung.
Start/Stopp der Zählung (s)
Wenn der Befehl allein verwendet wird, gibt er den Status zurück (0 = keine Zählung aktiv). Mit einer Zahl kann eine Zählung gestartet oder gestoppt werden:
Befehl |
Funktion |
|---|---|
|
Stoppt die Zählung |
|
Startet die Zählung |
Beispiel: s1 startet die Zählung.
Lautsprecher (U)
Wenn der Befehl allein verwendet wird, gibt er den aktuellen Status des Lautsprechers zurück. Mit einer Nummer wird der Lautsprecher entsprechend ein-/ausgeschaltet:
Befehl |
Funktion |
|---|---|
|
GM-Ton aus - Bereitschaftston aus |
|
GM-Ton an - Bereitschaftston aus |
|
GM-Ton aus - Bereitschaftston ein |
|
GM-Ton ein - Bereitschaftston ein |
Beispiel: U1 schaltet den GM-Ton ein, ohne den Bereitschaftston zu aktivieren.
Versionsnummer (v)
Rückgabe der Versionsnummer:
GM-Zähler. Firmware-Version xxxxxxxx
Zählnummern lesen (w)
Liest das Register, in das der Wert aus dem Primärregister nach Ende der Zählzeit kopiert wird. Das Register wird gelöscht, wenn es gelesen wird. Wenn das Register leer ist, wird „-1“ zurückgegeben.
Wichtig: Um sicherzustellen, dass alle Werte übertragen werden, muss dieses Register mit einer Frequenz gelesen werden, die höher ist als die Zählzeitfrequenz.
Implementierung in HRNGGUI
Die HRNGGUI implementiert diese Befehle in der DeviceManager-Klasse (siehe API-Dokumentation), die die serielle Kommunikation mit dem GM-Zähler verwaltet. Jeder Befehl wird durch eine entsprechende Methode gekapselt, um eine benutzerfreundliche API zu bieten.