DOKUMENTNAME:
Pflichtenheft RTK-Steuerprogramm
Hauptfunktion: Diffraktometrie/Reflektometrie
Teilfunktion: Einstellungen
und Ablauf
Dokumentversion: 2.0 (letzte Änderung 7.Dezember 2000)
Autor:
J. Ullrich, S.Berndt
Zustand: in Bearbeitung
Inhalt
1. Überblick
2. Funktionale Beschreibung
2.1 Einstellungen
2.1.1 StepScan im Standard-Modus
2.1.2 StepScan im Omega2Theta-Modus
2.1.3 Sichern von StepScan-Kurven
2.1.4 Verwenden eines Kontroll-Detektors
2.1.5 StepScan kontinuierlich fahren
2.1.6 Start und Beenden der Teilfunktionen
!
2.2 Ablauf des StepScan
2.2.1 Start eines Scans
2.2.2 Unterbrechen eines Scans
2.2.3 Fortsetzen eines Scans
2.3 Sonstige Funktionen !
2.3.1 Kurve laden
2.3.2 Kurve speichern
2.3.3 Kurve löschen
2.3.4 Kurve fixieren
2.4 Start und Beenden der Teilfunktion
(Fenster)
2.4.1 Start der Teilfunktion
(Fenster)
2.4.2 Beenden der Teilfunktion
(Fenster)
3. Benutzerschnittstelle
3.1 Dialogbox ,Einstellungen StepScan'
!
3.1.1 Steuerung
3.1.2 Eingabe/Ausgabe und Prüfung
3.2 Dialogbox ,Einstellungen ContinuousScan'
!
3.2.1 Steuerung
3.2.2 Eingabe/Ausgabe und Prüfung
4. Daten
4.1 ini-Datei
4.2 crv-Dateien
4.3 bk-Dateien
5. Testfälle
6. Fehler und Änderungswünsche
6.1 Fehler aus Nutzersicht
6.2 Änderungswünsche
7. Offene Fragen
1. Überblick
Die Teilfunktion 'Einstellungen und Ablauf
des StepScan' ist Teil des Diffraktometrie/Reflektometrie-Gesamtvorganges
(Dokument: 'Diffr./Refl.-Gesamtvorgang').
Dort ist sowohl ihre Einordnung in den
Gesamtvorgang beschrieben, als auch der fachliche Hintergrund. Mit der
Teilfunktion 'Einstellungen' sind vor dem Start und der Kontrolle des StepScan
alle dafür relevanten Angaben eingebbar.
Mit der Teilfunktion 'Ablauf des StepScan'
- kann die Startposition angefahren werden,
- wird die Messung gestartet mit nachfolgender
Information zum Stand und Verlauf der Messung,
- kann eine laufende Messung unterbrochen, sowie eine unterbrochene Messung fortgesetzt werden
- wird die Messung gestoppt.
Mit der Teilfunktion 'Sonstige Funktionen'
können Kurven
- geladen, gespeichert und gelöscht
werden,
- fixiert werden, sowie fixierte Kurven
gespeichert und gelöscht werden.
2. Funktionale Beschreibung
2.1 Einstellungen
2.1.1 StepScan im Standard-Modus
DIALOGBOX:
Es wird eine Probe über eine Achse von
einem Start- zu einem Endwinkel mit einer bestimmten Schrittweite bewegt
und in jedem dieser Schritte wird die von der Probe reflektierte Röntgenstrahlung
mit Hilfe eines 0-dimensionalen Detektors gemessen. Diese über dem
jeweiligen Winkel abgetragene Intensität wird in Form einer Kurve
dargestellt.
Im Einzelnen werden eingestellt:
- Der Scan-Typ: Standard.
- Der Motor ('Scan-Achse'), über die
die Probe bewegt wird mit dem Start-, Endwinkel und der Schrittweite.
- Der Detektor zum Messen des reflektierten
Röntgenstrahls. Zur Ermittlung der Impulsrate werden die Zählzeit
und die maximale Impulsrate angegeben (Detektor-Parameter: Zeit, Counts).
Die maximale Impulsrate gibt den Maximalwert
an, den der Detektor zählen darf. Wird diese vor dem Ablauf der Zählzeit
erreicht, wird die max. Impulsrate auf die Zählzeit hochgerechnet.
Anschließend beginnt ein neues Zeitintervall. Beide Angaben sind
durch ein log. ODER verknüpft.
Erforderliche Parameter:
-
Motor(Scan-Achse), Motor-Parameter: Minimum, Maximum, Schrittweite
-
Detektor, Detektor-Parameter: Zeit, Impulse
-
Scan-Typ
2.1.2 StepScan im Omega2Theta-Modus
DIALOGBOX wie unter 2.1.1
Beim Omega2Theta-Modus wird die Probe über
die Omega-Achse von einem Start- zu einem Endwinkel mit einer bestimmten
Schrittweite bewegt. Dabei wird zusätzlich in jedem Omega-Schritt
ein 0-dimensionale Detektor um 2 Theta-Schritte über die Theta-Achse
bewegt. Die in jedem Omega-Schritt von der Probe reflektierte Röntgenstrahlung
wird mit diesem Detektor gemessen und wird bezüglich der Omega-Winkel
als Kurve abgetragen.
Im Einzelnen werden eingestellt:
- Der Scan-Typ: Omega2Theta
- Den Start-, Endwinkel und die Schrittweite
des Omega-Motors.
- Der Detektor zum Messen des reflektierten
Röntgenstrahls. Zur Ermittlung der Impulsrate werden die Zählzeit
und die maximale Impulsrate angegeben (Detektor-Parameter: Zeit, Counts).
Die maximale Impulsrate gibt den Maximalwert
an, den der Detektor zählen darf. Wird diese vor dem Ablauf der Zählzeit
erreicht, wird die max. Impulsrate auf die Zählzeit hochgerechnet.
Anschließend beginnt ein neues Zeitintervall. Beide Angaben sind
durch ein log. ODER verknüpft.
Erforderliche Parameter:
-
(Omega)Motor-Parameter: Minimum, Maximum, Schrittweite
-
Detektor, Detektor-Parameter: Zeit,
-
Impulse
-
Scan-Typ
2.1.3 Sichern von StepScan-Kurven
DIALOGBOX wie unter 2.1.1
Beim Standard- sowie Omega2Theta-Scan kann
man die Kurven während der Messung Punkt für Punkt oder am Ende
der Messung in einer Datei ablegen('Speicher-Optionen'). Dabei werden zusätzlich
Informationen zur Messung in der Datei gespeichert.
Im Einzelnen werden eingestellt:
- Ständig Sichern (CheckBox: An/Aus)
- Bei Beenden speichern (CheckBox: An/Aus)
- Sicherungs-Verzeichnis für die Kurven-Dateien
Erforderliche Parameter:
-
'Ständig Sichern'-CheckBox'
-
Bei Beenden speichern'-CheckBox
-
Sicherungs-Verzeichnis
2.1.4 Verwenden eines Kontroll-Detektors
DIALOGBOX wie unter 2.1.1
Um verfälschte Intensitätsmessungen
aufgrund eines nichtkonstanten Röntgenstrahls Rechnung zu tragen,
ist es möglich, beim Standard- sowie Omega2Theta-Scan einen zweiten
Detektor als Monitor-Detektor zu benutzen, der in jedem Schritt die Intensität
der Röntgenquelle mißt.
Im Einzelnen werden eingestellt:
- Monitor-Signal (CheckBox: An)
- Monitor-Signal-Button zur Auswahl eines
Kontroll-Detektors
Erforderliche Parameter:
-
Monitor-Signal-CheckBox
-
Monitor-Signal-Button
2.1.5 StepScan kontinuierlich fahren
DIALOGBOX:
In diesem Modus wird die Probe von einem
Startpunkt beginnend über eine Achse mit einer bestimmten Geschwindigkeit
bewegt. Während dieser kontinuierlichen Bewegung der Probe wird eine
bestimmte Zahl von Messungen der reflektierten Strahlung mit einem 0-dimensionalen
Detektor über eine bestimmte Zeit durchgeführt. Der Bereich,
über den die Probe bezüglich der Achse bewegt wird, ergibt sich
aus der Anzahl der Messungen, der Zeit pro Messung und der Geschwindigkeit,
mit der die Probe bewegt wird.
Der Continuous Scan ist sinnvoll als Übersichtsscan, zum Anschauen der Strukturen und
um Peaks zu erkennen.
Im Einzelnen werden eingestellt:
- Der Motor ('Scan-Achse'), über die
die Probe bewegt wird mit dem Startwinkel und der Geschwindigkeit des Motors.
- Der Detektor('Sensor') zum Messen des
reflektierten Röntgenstrahls.
Die Meßzeit gibt an, wie lange der
Detektor die Impulse für einen Meßpunkt zählt.
Die Anzahl der Meßpunkte der Messung.
Erforderliche Parameter:
-
Motor(Scan-Achse),
-
Motor-Parameter: Startpunkt(Minimum), Geschwindigkeit
-
Detektor
-
Meßzeit und Meßpunkte
!!!Diese Funktion ist unvollständig implementiert und deshalb in dieser Programmversion nicht ausführbar!!!
2.1.6 Start und Beenden der Teilfunktionen
Start:
Die Dialogbox 'Einstellungen StepScan'
wird geöffnet über das Scan-Fenster-Menü: Setup StepScan
...
Die Dialogbox 'Einstellungen ContinuousScan'
wird geöffnet über das Scan-Fenster-Menü: Setup ContinuousScan
...
Beendigung:
Die Dialogbox wird geschlossen:
- über die Buttons Abbrechen und OK
- über den Windows-Button 'x'
2.2 Ablauf des StepScan
2.2.1 Start eines Scans
Nur nachdem gültige Parameter eingegeben wurden (d.h. eine der Einstellungsdialogboxen
wurde bereits aufgerufen) und wenn weiterhin gerade kein anderer Scan läuft( dieser
müßte vorher unterbrochen werden), kann ein Scanvorgang gestartet werden.
Dies geschieht über das Scanfenster-Menü => 'Scan starten'
DIALOGBOX

Daraufhin wird eine Dialogbox angezeigt, in der man einen Dateinamen auswählen bzw.
eingeben kann.(Fehler)
DIALOGBOX

Wird diese Dialogbox verlassen ohne einen Dateinamen anzugeben bekommt die Datei automatisch den Namen 'SCANXXX.crv'. Wobei XXX für die kleinste nicht neg. Zahl steht für die so eine Datei noch nicht existiert(z.B. SCAN002.crv wenn SCAN000.crv und SCAN001.crv schon existieren).
Es folgt eine Dialogbox, die über den jeweils gewählten Scan-modus(Standard,Omeg2Theta,
Continuous), die Scanachse über die Probe bewegt werden soll, sowie den Bereich über den
die Probe bewegt werden soll, informiert und die Möglichkeit gibt den Scanstart abzubrechen bzw. fortsetzen.
Wurde beim Standard- oder Omega2ThetaScan in der Einstellungsdialogbox die Speicheroption
'Ständig sichern' oder 'Bei Beenden speichern' aktiviert, so folgt jetzt eine Dialogbox,
in der man den Dateinamen eingeben kann, unter dem die Meßwerte des Scans abgelegt werden
sollen.
Diese Dialogbox erscheint (bei allen Scantypen) auch wenn sich eine nachgeladene Kurve
im Speicher befindet und keine der Speicheroptionen aktiviert wurde. In diesem Fall wird
die aktuelle Hauptkurve unter dem gewählten Dateinamen(mit falschen Headerinformationen)
abgelegt.(Fehler)
a) StandardScan
Der Motor bewegt sich nun auf die Startposition des Scans. Dies wird in der Statusleiste
des Hauptfensters durch den Text "Anfahren der Startposition ..." angezeigt.
Hat der Motor diese Startposition erreicht beginnt die erste Messung des Detektors und
falls eingestellt des Monitordetektors. Nach erfolgter Messung wird folgender Text in der
Statusleiste des Hauptfensters angezeigt.
" Scan ... Winkel = XXX Intensität = YYY verbl. Zeit = ZZZ Min."
wobei XXX die aktuelle Position des Motors ist,
YYY die vom Detektor gemessene Intensität an dieser Position(kein Monitor eingestellt) ist
YYY der Quotient aus der vom Detektor gemessene Intensität an dieser Position und der
vom Monitordetektor gemessenen Intensität an dieser Position( Monitor eingestellt)
ZZZ die bis zum Ende des Scans verbleibende Zeit(da dieser Wert durch hochrechnen der
Dauer der Messung des ersten Punktes auf die Gesamtzahl der Meßpunkte erfolgt, ist
diese Angabe im ersten Schritt sowie bei dynamischer Schrittweitensteuerung falsch
Anschließend wird die Motorposition und dazugehörige Detektorintensität ins Koordinatensystem
des StepScanfensters eingezeichnet und bei aktiviertem 'Ständig sichern' in die ausgewählte
Datei geschrieben.
Nun fährt der Motor auf den nächsten Meßpunkt. Dieser entspricht, wenn keine dynamische
Schrittweitensteuerung aktiviert ist, der aktuellen Motorposition + die eingestellte
Schrittweite aus der Einstellungsdialogbox.
Bei eingestellter Schrittweitensteuerung wird die Schrittweite in Abhängigkeit von der
gemessenen Detektorintensität (die bei eingestelltem Monitor mit der Monitorintensität
normiert wird) ermittelt. Dabei wird diese Intensität mit dem ersten Wert im ini-File unter
'[Scan] Level i ' verglichen und das i ermittelt, für das dieser Wert größer als die
gemessene Intensität ist. Anschließend wird die neue Schrittweite aus dem Produkt des
zweiten Wertes des Level i und der eingestellten Schrittweite aus der Einstellungsdialogbox
gebildet und der nächste Meßpunkt(aktuelle Motorposition + neue Schrittweite) angefahren.
Am nächsten Meßpunkt angekommen beginnt die nächste Messung des Detektors und falls
eingestellt des Monitordetektors. ...
Hat der Motor den letzten Meßpunkt erreicht und die Messung durchgeführt,dargestellt und bei
'Ständig sichern' gespeichert wird in der Statusleiste des Hauptfensters 'Scan Ready'
angezeigt. Jetzt fährt der Motor auf die Position zurück, auf der er sich vor Beginn des
Scans befunden hat.
Wenn 'Bei Beenden speichern eingestellt ist so wird jetzt die komplete Kurve in der
ausgewählten Datei abgelegt und folgende Meldung ausgegeben.

Bei 'Ständig sichern' wird der Headerteil der Datei aktualisiert. Bei 'Ständig sichern' und
bei einem Scan ohne ausgewählte Speicheroptionen wird nun folgende Meldung ausgegeben.

b) Omega2ThetaScan
Der Omega- und der Thetamotor bewegen sich nun auf die Startpositionen des Scans. Dies
wird in der Statusleiste des Hauptfensters durch den Text "Anfahren der Startposition ..."
angezeigt.
Haben die Motoren diese Startpositionen erreicht beginnt die erste Messung des Detektors und
falls eingestellt des Monitordetektors. Nach erfolgter Messung wird folgender Text in der
Statusleiste des Hauptfensters angezeigt.
" Scan ... Winkel = XXX Intensität = YYY verbl. Zeit = ZZZ Min."
wobei XXX die aktuelle Position des Omegamotors ist,
YYY die vom Detektor gemessene Intensität an dieser Position(kein Monitor eingestellt) ist
YYY der Quotient aus der vom Detektor gemessene Intensität an dieser Position und der
vom Monitordetektor gemessenen Intensität an dieser Position( Monitor eingestellt)
ZZZ die bis zum Ende des Scans verbleibende Zeit(da dieser Wert durch hochrechnen der
Dauer der Messung des ersten Punktes auf die Gesamtzahl der Meßpunkte erfolgt, ist
diese Angabe im ersten Schritt sowie bei dynamischer Schrittweitensteuerung falsch
Anschließend wird die Omegamotorposition und dazugehörige Detektorintensität ins
Koordinatensystem des StepScanfensters eingezeichnet und bei aktiviertem 'Ständig sichern'
inclusiver der Thetaposition in die ausgewählte Datei geschrieben.
Nun fahren die Motoren auf den nächsten Meßpunkt. Dieser entspricht, wenn keine dynamische
Schrittweitensteuerung aktiviert ist, der aktuellen Motorenpositionen + die eingestellte
Schrittweite aus der Einstellungsdialogbox.
Bei eingestellter Schrittweitensteuerung wird die Schrittweite in Abhängigkeit von der
gemessenen Detektorintensität (die bei eingestelltem Monitor mit der Monitorintensität
normiert wird) ermittelt. Dabei wird diese Intensität mit dem ersten Wert im ini-File unter
'[Scan] Level i ' verglichen und das i ermittelt, für das dieser Wert größer als die
gemessene Intensität ist. Anschließend wird die neue Schrittweite aus dem Produkt des
zweiten Wertes des Level i und der eingestellten Schrittweite aus der Einstellungsdialogbox
gebildet und der nächste Meßpunkt(aktuelle Motorenpositionen + neue Schrittweite) angefahren.
Am nächsten Meßpunkt angekommen beginnt die nächste Messung des Detektors und falls
eingestellt des Monitordetektors. ...
Haben die Motoren den letzten Meßpunkt erreicht und die Messung durchgeführt,dargestellt und bei
'Ständig sichern' gespeichert wird in der Statusleiste des Hauptfensters 'Scan Ready'
angezeigt. Jetzt fahren der Omegamotor und der Thetamotor auf die Position zurück, auf der er
sich vor Beginn des Scans befunden hat.
Wenn 'Bei Beenden speichern eingestellt ist so wird jetzt die komplete Kurve in der
ausgewählten Datei abgelegt.
Bei 'Ständig sichern' wird der Headerteil der Datei aktualisiert. Es werden jeweils dieselben
Meldungen wie beim StandardScan(2.2.1 a)) ausgegeben.
c)ContinuousScan --> siehe 2.1.5
2.2.2 Unterbrechen eines Scans
Ein laufender Scan kann unterbrochen werden. Dies geschieht entweder über den Hauptfenster-Menüpunkt
'Ausführen'->'Messung unterbrechen' oder durch drücken der ESC-Taste.
Daraufhin wird der Motor gestoppt.
Bei einem Standard- oder Omega2ThetaScan erscheint in der Statusleiste
die Meldung 'Messung wurde unterbrochen'. Es werden keine weiteren Punkte in die aktuelle Kurve
aufgenommen. Weiterhin ändert sich der Menüeintrag des Hauptfenster-Menüs 'Ausführen' von 'Messung
unterbrechen' zu 'Messung fortsetzen'. Es kann jetzt auch wieder ein neuer Scan gestartet werden (der
Menüpunkt 'Scan starten' ist wieder aktiv).
Bei einem ContinuousScan erscheint in der Statusleiste keine Meldung und der Scan kann auch nicht fortgesetzt
werden. Der Menüpunkt 'Messung unterbrechen' wird nicht geändert... --> siehe 2.1.5
2.2.3 Fortsetzen eines Scans
Ein unterbrochener Standard- bzw. Omega2ThetaScan kann fortgesetzt werden. Dies geschieht entweder über
den Hauptfenster-Menüpunkt 'Ausführen'->'Messung fortsetzen' oder durch drücken der ESC-Taste.
Daraufhin wird der Motor auf den nächsten Meßpunkt bewegt und der Scan wird fortgesetzt.
!Achtung! Wenn der Motor während der unterbrochenen Messung bewegt wurde, so wird ab einer falschen
Position weitergemessen.
In der Statusleiste erscheinen wieder die aktuellen Scan-Informationen.
Es werden wieder weitere Punkte in die aktuelle Kurve
aufgenommen. Weiterhin ändert sich der Menüeintrag des Hauptfenster-Menüs 'Ausführen' von 'Messung
fortsetzen' zu 'Messung unterbrechen'.
Ein ContinuousScan kann nicht fortgesetzt werden.
2.3 Sonstige Funktionen !
2.3.1 Kurve laden
Eine in einer Datei abgelegte Meßkurve (Formate '.bk/.crv') kann über den Hauptfenster-Menüpunkt 'Datei' ->
'Nachladen...' geladen und im Scanfenster dargestellt werden.Dieser Menüpunkt ist nur anwählbar, wenn ein
StepScanfenster geöffnet ist. Eine auswahl der zu ladenden Datei geschieht über folgende Dialogbox.
DIALOGBOX

Bei einer Datei wird der Ladevorgang abgebrochen, wenn der Headerteil der Datei weniger als 100 Byte
enthält, die [Header]-marke nicht existiert, oder (bei einer CRV-Datei) in den Headerinformationen ein
Filetyp<>1 eingetragen ist. Folgende Fehlermeldung wird ausgegeben:
DIALOGBOX

Außerdem wird das Nachladen abgebrochen, wenn keine Meßwerte hinter der [DATA]-marke folgen.
Zunächst werden folgende Headerinformationen in die allgemeinen Einstellungen übernommen(nur bei CRV):
User->Nutzer
Target->Name
Orientation->Orientierung
Reflection->untersuchter Reflex
WaveLength->Wellenlänge
Während die Meßwerte geladen werden, erfolgt alle 30 Meßwerte folgende Ausgabe in die Statusleiste
'Points : X' wobei X die Anzahl der schon geladenen Meßpunkte angibt.
Nachdem alle Meßpunkte geladen wurden, wird die Kurve in das auf diese Kurve angepaßte Koordinatensystem des
Stepscan-fensters gezeichnet. Eine eventuell im Scanfenster gezeichnete Kurve wird gelöscht, sofern sie nicht
fixiert wurde. Der Dateiname der geladenen Datei wird nun in die Titelleiste des Stepscan-fensters
eingetragen.
2.3.2 Kurve speichern
a) Hauptkurve
Eine im Scanfenster dargestellte Kurve läßt sich über den Hauptfenster-Menüpunkt 'Datei' -> 'Sichern' oder
'Sichern unter ...' in einer CRV-Datei ablegen. Wobei beim 'Sichern unter ...' in folgender Dialogbox ein
Dateiname einzugeben bzw. auszuwählen ist.
DIALOGBOX wie unter 2.2.1
Beim 'Sichern' einer bereits gespeicherten Kurve wird folgende
Meldung in der Statusleiste des Hauptfensters angezeigt:'File wurde bereits gespeichert !'. Wurde die Kurve
noch nicht gespeichert, so entspricht der Vorgang dem des 'Sichern unter ...'.
Nun werden die Headerinformationen sowie die Daten in diese Datei gespeichert(siehe 4.2)
Anschließend wird dieser neue Dateiname in die Titelleiste des Scanfensters eingetragen.
b) fixierte Kurve
Eine fixierte Kurve läßt sich über das Scanfenstermenü 'Scan' -> 'Speichern' in einer über eine Dialogbox (wie unter
a)) ausgewählten Datei im BK-Format ablegen.
Nun werden die Headerinformationen sowie die Daten in diese Datei gespeichert(siehe 4.3)
2.3.3 Kurve löschen
a) Hauptkurve
Eine Hauptkurve läßt sich über das Hauptfenstermenü 'Datei' -> 'Neu' löschen.
Dabei wird die Kurve aus dem Scanfenster entfernt und die Titelleiste erhält den Eintrag 'untitled.crv'.
b) fixierte Kurve
Eine fixierte Kurve läßt sich über das Scanfenstermenü 'Scan' -> 'Löschen' löschen.
Dabei wird die fixierte Kurve aus dem Scanfenster entfernt.
2.3.4 Kurve fixieren
Eine Hauptkurve läßt sich fixieren, um so die Möglichkeit zu haben sie direkt mit anderen Kurven im
Scanfenster vergleichen zu können. Dabei wird eine gerade fixierte Kurve gelöscht. Diese Funktion wird über
das Scanfenstermenü 'Scan' -> 'Fixieren' aufgerufen. Diese Kurve wird aber erst bei Start eines neuen Scans
bzw. nach dem Laden einer Kurve farblich als fixiert gekennzeichnet( blau ).Sie bleibt solange fixiert, bis
sie gelöscht wird(siehe 2.3.3 b)) oder eine andere Kurve fixiert wird.
2.4 Start und Beenden der Teilfunktion
(Fenster)
2.4.1 Start der Teilfunktion
(Fenster)
FENSTER

Ein Scanfenster kann über den Hauptfenster-Menüpunkt 'Öffnen' -> 'Scan-Fenster' geöffnet werden. Dies ist nur
möglich, wenn nicht bereits ein anderes Scanfenster geöffnet ist oder die Anzahl der geöffneten RTK-Fenster
kleiner als 5 ist. Dabei werden die im [Scan]-Abschnitt des Ini-Files befindlichen Parameter eingelesen bzw.
wenn nicht vorhanden auf ihre Defaultwerte gesetzt.
Anschließend wird das Scanfenster an die im Ini-File (siehe 4.1) angegebene Position gezeichnet. In das
Scanfenster wird ein Koordinatensystem gezeichnet(siehe Pflichtenheft 'Bildnerische Darstellung'). Außerdem
wird der Ausdruck 'untitled.crv' in die Titelleiste des Fensters eingetragen. Die Funktionen unter 2.3.1 bis
2.3.4 lassen sich nur anwählen,wenn ein Scanfenster geöffnet ist.
2.4.2 Beenden der Teilfunktion
(Fenster)
Ein StepScanfenster läßt sich nur über das 'x'-Symbol in der Titelleiste des Scanfensters schließen.
Ein gerade laufender Scan wird abgebrochen.
Wenn sich im Fenster eine Hauptkurve befindet, die noch nicht gespeichert wurde,
so erfolgt vor dem Schließen des Fensters eine Anfrage, ob sie vorher gespeichert
werden soll.
Anschließend werden einige Parameter ins Ini-File übernommen(siehe 4.1).
3. Benutzerschnittstelle
3.1 Dialogbox ,Einstellungen StepScan'
!
DIALOGBOX

3.1.1 Steuerung
- Die Dialogbox ist mausgesteuert.
- Der Wechsel zwischen den Dialogelementen ist mittels TAB möglich.
- Das Drücken von Return innerhalb der Dialogbox aktiviert das
OK-Button.
- Alle CheckBoxen sind über ShortCuts (de)aktivierbar.
3.1.2 Eingabe/Ausgabe und Prüfung
a) Gruppenfeld :[Scan-Achse]
- [Combobox]:Auswahl der Scan-Achse (Motor)
Über die hier ausgewählte Scan-Achse soll die Probe bewegt
werden.
Angezeigt werden alle in der .ini-Datei spezifizierten und physisch
verfügbaren Motoren: .ini-Datei: [Motor i], Name=
-->Der gerade aktive Motor wird vorausgewählt.
Nur bei Standard Scan ist die Auswahl eines Motors möglich.
- [Textfeld]:Einheit
Dieses nicht duch den Nutzer editierbare Feld zeigt die zum eingestellten
Motor zugehörige Einheit an.
--> Wert kommt vom Motor (aus ini-File des akt.Motors)
- [Textfeld]:Minimum
Hier wird die Startposition des ausgewählten Motors für den
Scan eingegeben.
--> Wert bei erstem Aufruf der Box auf -100 * Schrittweite des aktuellen
Motors
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
zulässiger Wertebereich:[min. Winkel des Motors,Schrittweite des
Motors, max. Winkel des Motors- Schrittweite des Motors]
Der Wert muß echt kleiner als das eingegebene Maximum sein.
- [Textfeld]:Schrittweite
Hier wird die Schrittweite, mit der die Probe über den ausgewählten
Motor während des Scans bewegt werden soll, eingegeben.
--> Wert bei erstem Aufruf der Box auf Schrittweite des aktuellen
Motors
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
zulässiger Wertebereich:[Werte ungleich null]
-[Textfeld]:Maximum
Hier wird die Endposition des ausgwählten Motors für den
Scan eingegeben.
--> Wert bei erstem Aufruf der Box auf 100 * Schrittweite des aktuellen
Motors
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
zulässiger Wertebereich:[min. Winkel des Motors+Schrittweite des
Motors,Schrittweite des Motors, max. Winkel des Motors]
b) Gruppenfeld:[Scan-Typ]
- [Combobox]: Auswahl des Scan-Typs
Hier kann die Art des Scans zwischen Standard und Omega2Theta gewählt
werden.
--> Beim ersten Aufruf der Box wird Standard vorausgewählt.
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
Der Scan-Typ 'Omega2Theta' läßt sich nur auswählen,
wenn sowohl der Omega- als auch der Thetamotor verfügbar ist.
c) Gruppenfeld:[Detektor]
- [Combobox]:Auswahl des Detektors
Hier kann der 0-dimensionale Detektor, mit dem während des Scans
gemessen werden soll, ausgewählt werden.
Angezeigt werden alle in der .ini-Datei spezifizierten und physisch
verfügbaren Detektoren: .ini-Datei: [Device i], Name=
-->Der gerade aktive Detektor wird vorausgewählt.
- [Textfeld]: Zeit ... sec
Zeitintervall in Sekunden, in welchem der Detektor die Impulsrate zählt.
--> Bei erstem Aufruf der Box aus ini-File: [Scan], ExposureTime=
--> Bei erstem Aufruf der Box und fehlendem Eintrag in ini-Datei auf
'1.0' setzen
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
- zulässiger Wertebereich: [Wert ungleich null ]
- [Textfeld]: Counts
Maximale Impulsrate, die der Detektor zählen darf.
--> Bei erstem Aufruf der Box aus ini-File: [Scan], ExposureCounts=
--> Bei erstem Aufruf der Box und fehlendem Eintrag in ini-Datei auf
'10000' setzen
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
- zulässiger Wertebereich: [Wert ungleich null]
Detektor-Zeit und -Counts sind durch ein log. ODER verknüpft. Bei
Erfüllung einer Bedingung erfolgt eine Reaktion.
d) Gruppenfeld:[?]
- [Checkbox]:Monitor-Signal
Hier kann man einstellen, ob ein Kontrolldetektor benutzt werden soll
oder nicht.
--> Beim ersten Aufruf der Box nicht markiert.
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
Läßt sich nur aktivieren, wenn ein Detektor zur Verfügung
steht.
- [Button]:?
Hier läßt sich ein Monitordetektor auswählen.
Durch anklicken dieses Buttons wählt man nach dem Rotationsprinzip
einen in der .ini-Datei spezifizierten und physisch verfügbaren
Detektor.
Der Button erhält jeweils den Namen des aktuellen Monitors.
-->
Dieser Button ist nur dann aktiv, wenn die Checkbox 'Monitor-Signal'
markiert ist.
e) Gruppenfeld:[Speicher-Optionen]
- [Checkbox]:Ständig Sichern
Hier kann man einstellen, ob man während des Scans die Meßwerte
fortlaufend in einer crv-Datei ablegen möchte.
--> Beim ersten Aufruf der Box nicht markiert.
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
-[Checkbox]:Bei Beenden speichern
Hier kann man einstellen, ob man die Meßwerte eines Scans erst
nach Beendigung des Scans in einer crv-Datei ablegen möchte.
--> Bei erstem Aufruf der Box aus ini-Datei [Scan],SaveOnReady=
--> Bei erstem Aufruf der Box und fehlendem Eintrag in ini-Datei auf
'markiert' setzen
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
-[Textfeld]:Sicherungs-Verzeichnis
Hier kann man den Pfad angeben, in dem die Kurvendateien abgelegt werden
soll.
--> Bei erstem Aufruf der Box aus ini-Datei [Scan],DataPath=
--> Bei erstem Aufruf der Box und fehlendem Eintrag in ini-Datei auf
'C:\\' setzen
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
-zulässiger Wertebereich[ alle existierenden Verzeichnisse, auf
die man Schreibrecht besitzt]
f) Aktionsschalter: [Abbrechen]
Dialogbox schließen, bereits eingegebene Werte werden verworfen.
??
g) Aktionsschalter: [OK]
Mit der Taste 'OK' werden die aktuellen Einstellungen überprüft.
Bei Korrektheit aller Werte werden die Werte übernommen und die
Dialogbox geschlossen, sonst bleibt die Dialogbox geöffnet und evtl.
werden einige Einstellungen automatisch geändert:
- 'Maximum' wird nur übernommen, wenn der Wert kleiner oder gleich
dem Maximum des Motors ist.
Sonst wird 'Maximum' auf (Maximum des Motors)
- (Schrittweite des Motors) gesetzt.
- 'Schrittweite' wird übernommen, wenn der Eintrag ungleich 0
ist. =>Fehler
- 'Minimum wird übernommen, wenn der Wert größer oder
gleich dem Minimum des Motors ist (I) und weiterhin kleiner als der Wert
für 'Maximum' ist (II).
Trifft (II) nicht zu, wird 'Minimum' auf 'Maximum'-10*(Schrittweite
des Motors) gesetzt.
Trifft (I) nicht zu, wird 'Minimum' auf (Minimum
des Motors)+10*(Schrittweite des Motors) gesetzt.
- 'Zeit' wird übernommen, wenn der Wert ungleich 0 ist. =>Fehler
- 'Impulse' wird nur übernommen, wenn der Wert ungleich 0 ist.
=>Fehler
- 'Sicherungs-Verzeichnis' wird übernommen, wenn der Pfad existiert.
Sonst wird der Pfad auf "C:\\" gesetzt.
- Alle weiteren Einstellungen werden ohne weitere Prüfung übernommen.
3.2 Dialogbox ,Einstellungen ContinuousScan' !
DIALOGBOX

3.2.1 Steuerung
- Die Dialogbox ist mausgesteuert.
- Der Wechsel zwischen den Dialogelementen ist mittels TAB möglich.
- Das Drücken von Return innerhalb der Dialogbox aktiviert das
OK-Button.
3.2.2 Eingabe/Ausgabe und Prüfung
a)Gruppenfeld :[Scan-Achse]
- [Combobox]:Auswahl der Scan-Achse (Motor)
Über die hier ausgewählte Scan-Achse soll die Probe bewegt
werden.
Angezeigt werden alle in der .ini-Datei spezifizierten und physisch
verfügbaren Motoren: .ini-Datei: [Motor i], Name=
-->Der gerade aktive Motor wird vorausgewählt.
Bei Auswahl eines neuen Motors werden alle Felder außer Meßzeit
auf die jeweiligen Defaultwerte gesetzt.
- [Textfeld]:Einheit
Dieses nicht duch den Nutzer editierbare Feld zeigt die zum eingestellten
Motor zugehörige Einheit an.
--> Wert kommt vom Motor (aus ini-File des akt.Motors)
- [Textfeld]:Startpunkt
Hier wird die Startposition des ausgewählten Motors für den
Scan eingegeben.
--> Wert bei erstem Aufruf der Box auf -100 * Schrittweite des aktuellen
Motors
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
zulässiger Wertebereich:[min. Winkel des Motors,Schrittweite des
Motors, max. Winkel des Motors- Schrittweite des Motors]
- [Textfeld]:Geschwindigkeit
Hier kann man die Geschwindigkeit eingeben, mit der die Probe während
des Scans bewegt werden soll.
--> Beim ersten Aufruf der Box wird Geschwindigkeit des aktuellen Motors
gesetzt.
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
zulässiger Wertebereich[keine Einschränkung]
b)Gruppenfeld:[Sensor]
- [Combobox]:Auswahl des Sensors
Hier kann der 0-dimensionale Detektor, mit dem während des Scans
gemessen werden soll, ausgewählt werden.
Angezeigt werden alle in der .ini-Datei spezifizierten und physisch
verfügbaren Detektoren: .ini-Datei: [Device i], Name=
-->Der gerade aktive Detektor wird vorausgewählt.
Bei Auswahl eines neuen Sensors werden alle Felder außer Meßzeit
auf die jeweiligen Defaultwerte gesetzt.
-[Textfeld]:Meßzeit ... sec
Hier kann man die Zeit eingeben, während der der Detektor die
Impulse für einen Meßpunkt zählt.
--> Bei erstem Aufruf der Box aus ini-File: [Scan], ExposureTime=
--> Bei erstem Aufruf der Box und fehlendem Eintrag in ini-Datei auf
'1.0' setzen
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
zulässiger Wertebereich[Werte ungleich null]
-[Textfeld]:Meßpunkte
Hier kann man die Anzahl der Meßpunkte des Scans eingeben.
--> Beim ersten Aufruf der Box auf 100 gesetzt
--> Bei wiederholtem Aufruf der Box werden die Werte vom letzten Aufruf
gesetzt
zulässiger Wertebereich[Werte ungleich null]
c) Aktionsschalter: [Abbrechen]
Dialogbox schließen, bereits eingegebene Werte werden verworfen.
??
d) Aktionsschalter: [OK]
Mit der Taste 'OK' werden die aktuellen Einstellungen überprüft.
Bei Korrektheit aller Werte werden die Werte übernommen und die
Dialogbox geschlossen, sonst bleibt die Dialogbox geöffnet und event.
werden einige Einstellungen automatisch geändert:
- 'Meßpunkte' werden übernommen, wenn der Wert ungleich
0, sonst wird er auf 10 gesetzt.
- 'Startpunkt' wird übernommen, wenn Wert größer oder
gleich dem Minimum des Motors ist. Er wird sonst auf (akt. Winkel des
Motors)-30 gesetzt.
- 'Geschwindigkeit' wird ohne Prüfung übernommen.
- 'Meßzeit' wird übernommen, wenn Wert ungleich 0.
4. Daten
4.1 ini-Datei
Folgende Abschnitte und Parameter sind erforderlich:
Beispiel:
[Scan]
DataPath=C:\DATA\
ExposureTime=1.00
ExposureCounts=150000
Failure=0.02
xo=18
yo=61
dx=694
dy=662
SaveOnReady=1
DynamicStepWidth=1
Level 0 2000 2
Level 1 3000 1.5
Level 2 4000 1.4
Level 3 5000 1.3
Level 4 6000 1.2
Level 5 8000 1.1
Level 6 10000 1
Level 7 12000 0.9
Level 8 16000 0.8
Level 9 20000 0.7
Level 10 25000 0.5
Erklärung:
-
'DataPath' ist der aktuelle Datenpfad, der bei Öffnen des Scan-Fensters
gesetzt wird. Er kann in der Dialogbox 'Setup StepScan' geändert
werden.
Default-Wert, wenn keine Pfadangabe vorhanden: 'C:\\'
-
'ExposureTime' ist die Meßzeit.
Default-Wert, wenn kein 'ExposureTime'-Wert vorhanden: 1.0
-
'ExposureCounts' sind die Meßimpulse.
Default-Wert, wenn kein 'ExposureCounts'-Wert vorhanden: 10000
-
'Failure' wird vom Programm nicht eingelesen (im Programm auf 0.02 gesetzt)
=>Fehler
-
x0 ist X-Koordinate der linken oberen Ecke des Scan-Fensters: der Wert
sollte so gewählt werden, daß das Fenster bei Aufruf sichtbar
ist
Default-Wert, wenn kein x0-Wert vorhanden: 500
-
y0 ist Y-Koordinate der linken oberen Ecke des Scan-Fensters: der Wert
sollte so gewählt werden, daß das Fenster bei Aufruf sichtbar
ist
Default-Wert, wenn kein y0-Wert vorhanden: 400
-
dx und dy geben die Ausmaße des Scan-Fensters ausgehend von der linken
oberen Ecke an
Default-Wert, wenn kein dx-Wert vorhanden: 170
Default-Wert, wenn kein dy-Wert vorhanden: 50
-
'SaveOnReady' ist 0 oder 1, je nachdem, ob am Ende einer Messung gespeichert
werden soll oder nicht.
Default-Wert: 1
-
'Dynamic StepWidth' ist die dynamische Schrittweite; ist 0 (Default-Wert)
wenn nicht anzuwenden, 1 sonst die Schrittweite wird abhängig von
der gemessenen Intensität gesteuert
-
'Leveli' mit i=0..n (n Anzahl der Level (Standard:10) im Ini-File-Abschnitt,
dabei müssen alle Indizes vorkommen) enthält alle Werte für
dynamische Schrittweitensteuerung hinter jedem Level stehen jeweils 2 Werte,
der erste gibt die Intensität an, bei der die Schrittweite um den
Faktor des 2.Wertes geändert werden soll Default-Wert, wenn keine
Werte vorhanden: "" wird nur verwendet, wenn Dynamic StepWidth auf 1 gesetzt
ist
4.2 crv-Dateien
Die Meßwertreihen werden in folgendem Dateiformat abgelegt:
Beispiel:
Comment=Diffraktometrie-Meßplatz
[Header]
User=Gartstein
Date=15.05.2000 Time=17:42:08
DataOffset=1000
Point_Number=21
FileType=1
Target=1445 Reflection=[000] Orientation=[001]
ArgumentMin=-10.00 ArgumentWidth=1.000 ArgumentMax=10.00
WaveLength=1.540 Current=25 HV=30
TimePerScan=1.00
[Data]
-9.998 530.2849 0.0000
-8.999 628.6367 0.0000
-7.995 849.3754 0.0000
-6.996 1173.1509 0.0000
-5.998 1869.6578 0.0000
-4.999 3324.6497 0.0000
-3.995 6308.4224 0.0000
-2.996 11779.9170 0.0000
-1.997 18131.5430 0.0000
-0.999 21413.2988 0.0000
0.000 22541.0898 0.0000
1.004 23267.3555 0.0000
2.003 20869.2754 0.0000
3.002 13469.2734 0.0000
4.000 6937.8330 0.0000
5.005 3470.7600 0.0000
6.004 1964.4679 0.0000
7.002 1231.4954 0.0000
8.001 886.4710 0.0000
9.005 617.1450 0.0000
10.004 499.9311 0.0000
Erklärung:
In der 1.Zeile steht Comment=A, wobei A für den Eintrag unter
'Einstellungen' => 'Programm' steht unter 'Besondere Bedingungen'
Es folgt der Abschnitt [Header], der folgende Einträge enthält:
- 'User' wird aus 'Einstellungen' => 'Programm' unter 'Nutzer' übernommen.
- 'Date' und 'Time' enthalten das aktuelle Datum bzw. die aktuelle
Systemzeit zu Beginn der Messung.
- 'DataOffset' gibt an, ab welchem Byte die Kurvendaten in der Datei
stehen. Der Wert ist vom Programm auf 1000 festgesetzt.
- 'Point_Number' gibt die Anzahl der Punkte der Kurve an.
- 'FileType' Der Wert ist vom Programm auf 1 festgesetzt.
- 'Target', 'Reflection' und 'Orientation' werden aus 'Einstellungen'
=> 'Programm' unter 'Angaben zur Probe' übernommen.
- 'ArgumentMin', 'ArgumentWidth', 'ArgumentMax' enthalten die Werte
für Minimum, Schrittweite, Maximum des verwendeten Motors.
- 'WaveLength', 'Current', 'HV' werden aus dem 'Einstellungen' => 'Programm'
unter 'Betriebsparameter' übernommen.
- TimePerScan' enthält die Meßzeit pro Schritt.
Es folgt der Abschnitt [Data], der folgende Einträge enthält:
- Jede Zeile enthält die Informationen eines Punktes, bestehend
aus 3 Werten: dem Winkel, der Intensität und der Z-Koordinate.
- Der Z-Wert ist immer 0, außer - bei Verwendung eines Monitors
(die gemessene Monitorintensität) oder
- beim Omega2ThetaScan (der zugehörige Thetawinkel)
4.3 bk-Dateien
Fixierte Kurven werden in folgendem Format gespeichert:
Beispiel:
[Header]
Vergleichs-Scan
X >> Intensity >> Z
[Data]
-9.998 530.2849 0.0000
-8.999 628.6367 0.0000
-7.995 849.3754 0.0000
-6.996 1173.1509 0.0000
-5.998 1869.6578 0.0000
-4.999 3324.6497 0.0000
-3.995 6308.4224 0.0000
-2.996 11779.9170 0.0000
-1.997 18131.5430 0.0000
-0.999 21413.2988 0.0000
0.000 22541.0898 0.0000
1.004 23267.3555 0.0000
2.003 20869.2754 0.0000
3.002 13469.2734 0.0000
4.000 6937.8330 0.0000
5.005 3470.7600 0.0000
6.004 1964.4679 0.0000
7.002 1231.4954 0.0000
8.001 886.4710 0.0000
9.005 617.1450 0.0000
10.004 499.9311 0.0000
Erklärung:
Im [Header]-abschnitt stehen nur die beiden Strings wie im Beispiel.
Es folgt der Abschnitt [Data], der folgende Einträge enthält:
- Jede Zeile enthält die Informationen eines Punktes, bestehend
aus 3 Werten: dem Winkel, der Intensität und der Z-Koordinate.
- Der Z-Wert ist immer 0, außer - bei Verwendung eines Monitors
(die gemessene Monitorintensität) oder
- beim Omega2ThetaScan (der zugehörige Thetawinkel)
5. Testfälle
Hier sind umfassende Testfälle zu spezifizieren, wie Kombinationen
von Eingabewerten und die Reaktion darauf beim OK- und Abbrechen-Button.
Des weiteren ist zu testen, ob die Werte in das .ini-File übernommen
werden.
6. Fehler und Änderungswünsche
6.1 Fehler aus Nutzersicht
siehe Fehlerliste
6.2 Änderungswünsche
- Umbenennung StepScan in LineScan
- dynamische Schrittweitensteuerung soll entfernt werden
- alternativ: Steuerung der dynamischen Schrittweite über eine Dialogbox
- in der Dialogbox 'Einstellungen StepScan' soll das gleichzeitige auswählen von 'Bei beenden speichern' und 'Ständig
sichern' verhindert werden
- der angedachte ContinuousScan sollte vollständig implementiert werden
7. Offene Fragen