Nächste Überarbeitung | Vorhergehende Überarbeitung |
de:ost:spektrograph:dados_calibration [2024/12/11 09:30] – rhainich | de:ost:spektrograph:dados_calibration [2024/12/11 09:51] (aktuell) – rhainich |
---|
Hier ist der konvertierte Text in die Doku-Wiki-Syntax: | |
| |
===== DADOS RCU ===== | ===== DADOS RCU ===== |
| |
===== Einführung ===== | ==== Einführung ==== |
Für die Kalibration der //DADOS//-Spektren verwenden wir das [[https://www.shelyak.com/produit/pf0037-module-detalonnage-alpy/?lang=en|Alpy-Kalibrationsmodul]] von //Shelyak//, welches mit einer Argon-Neon-Lampe für die Wellenlängenkalibration und einer Wolfram-Glühbirne für die Flatfieldkalibration ausgestattet ist. | Für die Kalibrierung der //DADOS//-Spektren verwenden wir das [[https://www.shelyak.com/produit/pf0037-module-detalonnage-alpy/?lang=en|Alpy-Kalibrationsmodul]] von //Shelyak//, welches mit einer Argon-Neon-Lampe für die Wellenlängenkalibration und einer Wolfram-Glühbirne für die Flatfieldkalibration ausgestattet ist. |
| |
Um diese Klaibrationseinheit remote zu steuern, wurde ein einfacher Remote-Control-Upgrade/Modul (RCU) erstellt. Es ermöglicht dem Benutzer, sowohl eine Flat-Field-Lampe als auch eine Wellenlängenkalibrierungslampe remote über eine serielle Kommunikation durch einen COM-Port auf einem Computer zu steuern. Das Herzstück des RCU ist ein einfacher Mikrocontroller, der ein zwei-Relais-Modul steuert, das als Schalter fungiert, um die beiden Kalibrierungslampen des Spektrographen zu schalten. | Um diese Klaibrationseinheit remote zu steuern, wurde ein einfacher Remote-Control-Upgrade/Modul (RCU) erstellt. Es ermöglicht dem Benutzer, sowohl eine Flat-Field-Lampe als auch eine Wellenlängenkalibrierungslampe remote über eine serielle Kommunikation durch einen COM-Port auf einem Computer zu steuern. Das Herzstück des RCU ist ein einfacher Mikrocontroller, der ein zwei-Relais-Modul steuert, das als Schalter fungiert, um die beiden Kalibrierungslampen des Spektrographen zu schalten. |
| |
===== Hardware und Setup ===== | ==== Hardware und Setup ==== |
Die DADOS RCU hat genau fünf Kabelverbindungen, die angeschlossen werden müssen, um den RCU zu betreiben. Dazu gehören: | Die DADOS RCU hat genau fünf Kabelverbindungen, die angeschlossen werden müssen, um den RCU zu betreiben. Dazu gehören: |
| |
| |
| |
===== Kommunikationsprotokoll ===== | ==== Kommunikationsprotokoll ==== |
| |
Die Kommunikation mit dem RCU, d.h. dem Mikrocontroller, folgt einem bestimmten Protokoll, das wir im Folgenden beschreiben. Jeder Befehl, der übertragen wird, muss mit einem Semikolon (**;**) enden. Einige Befehle werden den Zustand einer der beiden Kalibrierungslampen ändern. Die folgende Auflistung sollte einen Überblick über die möglichen Befehle zur Steuerung der Kalibrierungslampen geben. | Die Kommunikation mit dem RCU, d.h. dem Mikrocontroller, folgt einem bestimmten Protokoll, das wir im Folgenden beschreiben. Jeder Befehl, der übertragen wird, muss mit einem Semikolon (**;**) enden. Einige Befehle werden den Zustand einer der beiden Kalibrierungslampen ändern. Die folgende Auflistung sollte einen Überblick über die möglichen Befehle zur Steuerung der Kalibrierungslampen geben. |
| |
===== Ein-Lampen-Befehle ===== | === Ein-Lampen-Befehle === |
| |
Die Befehle beginnen normalerweise mit einem Großbuchstaben (F für die Flat-Field-Lampe oder W für die Wellenlängenkalibrierungslampe). Wir verwenden ''#'' als Platzhalter, der in einem praktischen Beispiel durch den jeweiligen Buchstaben F oder W ersetzt werden sollte. | Die Befehle beginnen normalerweise mit einem Großbuchstaben (F für die Flat-Field-Lampe oder W für die Wellenlängenkalibrierungslampe). Wir verwenden ''#'' als Platzhalter, der in einem praktischen Beispiel durch den jeweiligen Buchstaben F oder W ersetzt werden sollte. |
* ''#''<fc #4682b4>get</fc>: Evaluiert den aktuellen Zustand der jeweiligen Kalibrierungslampe. Die Ausgabe wird entweder **true** oder **false** sein. | * ''#''<fc #4682b4>get</fc>: Evaluiert den aktuellen Zustand der jeweiligen Kalibrierungslampe. Die Ausgabe wird entweder **true** oder **false** sein. |
| |
===== Sicherheitsmodus ===== | === Sicherheitsmodus === |
| |
| Die Wellenlängenkalibrierungslampe für viele Spektrographen-Kalibrierungseinheiten ist normalerweise eine Bogenlampe (z.B. Th-Ar oder Ne-Ar). Diese Lampen haben typischerweise eine vergleichsweise kurze Lebensdauer, weshalb der RCU einen Sicherheitsmechanismus standardmäßig aktiviert hat. Dieser Modus kann mit der Variablen force''#'' gesteuert werden und ist standardmäßig auf **false** gesetzt. Die Idee ist, die Lampen nach einer bestimmten Zeit auszuschalten, nach der sie als "versehentlich" eingeschaltet angesehen werden kann. Je nach Variablen maxtime''#'' kann diese Zeit individuell festgelegt werden. Standardmäßig ist sie jedoch auf 600 Sekunden gesetzt. Der numerische Wert wird in Sekunden interpretiert. |
| |
| * ''#''<fc #4682b4>forceon</fc>: Überschreibt den Sicherheitsmodus und ignoriert die maximale zulässige Einschaltzeit. Dieser Befehl sollte vorsichtig verwendet werden, da man so den Sicherheitsmodus verlässt. Es ist ratsam, stattdessen die Variable maxtime''#'' zu erhöhen. Wenn die Variable force''#'' vorher bereits auf true gesetzt war, passiert nichts nach der Ausführung dieses Befehls. |
| * ''#''<fc #4682b4>forceoff</fc>: Aktiviert den Sicherheitsmodus (wie bereits im vorherigen Abschnitt beschrieben) für die jeweilige Lampe. Wenn die Variable force''#'' vorher bereits auf false gesetzt war, passiert nichts nach der Ausführung dieses Befehls. |
| * ''#''<fc #4682b4>forceget</fc>: Gibt einen **true**- oder **false**-Wert zurück, je nachdem, ob der Sicherheitsmodus aktiviert ist. |
| * ''#''<fc #4682b4>setmax</fc>: Passt die maximale Einschaltzeit der ausgewählten Lampe an. Die Zeit kann durch direktes Eingeben der entsprechenden ganzen Zahl nach dem Befehl festgelegt werden. Ein Beispiel könnte lauten: ''Fsetmax600'';, um die Variable maxtimeF auf 600 Sekunden zu setzen. |
| * ''#''<fc #4682b4>getmaxtime</fc>: Gibt die maximale Einschaltzeit für die ausgewählte Lampe zurück. Der zurückgegebene numerische Wert entspricht der Zeit in Sekunden. |
| |
| === Beispiele für Befehle === |
| |
| Die folgenden Beispiele zeigen, wie die Befehle in einem praktischen Kontext aussehen. Zeilen, die mit ">>> " beginnen, stellen eine Antwort des RCU dar, die durch den vorherigen Befehl ausgelöst wurde. Alles nach dem Doppelpunkt wird in diesem Kontext als Kommentar betrachtet und erscheint nicht im realen Kommunikationsprotokoll. |
| |
| == Flat-Field-Lampe ein- und ausschalten: == |
| |
| <code c> |
| Fget; // ask for the current state of the flat field lamp |
| >>> 0 // flat field lap is OFF (i.e. the result is 0), OFF is the default state for any calibration lamp with which it is initialized in the beginning |
| Fon; // switch the flat field lamp on |
| Fget; // ask for the current state of the flat field lamp |
| >>> 1 // now, the flat field lamp is switched ON (i.e. the response is a 1) |
| Foff; // switch the flat field lamp off again |
| </code> |
| |
| == maxtimeW-Variable anpassen: == |
| |
| <code c> |
| Wforceget; // queries the current state of the forced operation mode |
| >>> 0 // is initialized with False (i.e. the response is 0) by default |
| Wgetmaxtime; // asks for the current maximum allowed on-time for the wavelength calibration lamp |
| >>> 600.00 // default is 600 seconds |
| Wsetmax60; // sets the maxtimeW to 60. We can check whether the command was successful with ... |
| Wgetmaxtime; |
| >>> 60.00 // now the maxtimeW variable is indeed fixed at 60 seconds after which the wavelength calibration lamp will automatically switch off if forced operation mode is disabled (recommended) |
| </code> |