Verhaltensspezifikation (Pflichtenheft XCTL-Steuerprogramm)
 

Hauptfunktion: Diffraktometrie/Reflektometrie
Teilfunktion: Einstellungen und Ablauf beim LineScan



 
Dokumentversion: 2.1.1. (letzte Änderung: 2. November 2001)
Autor: J. Ullrich, S.Berndt
Änderungen: Änderungen im Abschnitt: Änderungswünsche
Zustand: abgeschlossen


Gliederung

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 ContinuousScan
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. Daten
3.1 Benutzerschnittstelle
3.1.1 Dialogbox ,Einstellungen StepScan'
3.1.1.1 Steuerung
3.1.1.2 Eingabe/Ausgabe und Prüfung
3.1.2 Dialogbox ,Einstellungen ContinuousScan'
3.1.2.1 Steuerung
3.1.2.2 Eingabe/Ausgabe und Prüfung
3.2 Dateien
3.2.1 ini-Datei
3.2.2 crv-Dateien
3.2.3 bk-Dateien
4. Testfälle
5. Fehler
6. Änderungswünsche
7. Offene Fragen
8. Anmerkungen
9. Verwandte Dokumente
10. Glossar

1. Überblick

Die Teilfunktion 'Einstellungen und Ablauf des Linescan' ist Teil des Diffraktometrie/ Reflektometrie-Gesamtvorganges (Dokument: 'Diffr./Refl.-Gesamtvorgang'). Der Begriff Linescan steht als Überbegriff für den Stepscan und den Continuousscan. Er beinhaltet die Scans, bei denen ein 0-dimensionaler Detektor nur über eine Achse mißt. Der Unterschied zwischen Step- und Continuousscan besteht darin, daß beim Stepscan die Probe schrittweise und beim Continuousscan die Probe kontinuierlich bewegt wird. Im Dokument: 'Diffr./Refl.-Gesamtvorgang' 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 Linescan alle dafür relevanten Angaben eingebbar. 

Mit der Teilfunktion 'Ablauf des Linescan' 


Verlauf der Messung, 

Mit der Teilfunktion 'Sonstige Funktionen' können Kurven 



2. Funktionale Beschreibung

2.1 Einstellungen

2.1.1 StepScan im Standard-Modus

Dialogbox ,Einstellungen Stepscan'

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 den 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: 

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-dimensionaler 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 bezüglich der Omega-Winkel als Kurve abgetragen.

Im Einzelnen werden eingestellt:
- Der Scan-Typ: Omega2Theta
- Der 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: 

2.1.3 Sichern von StepScan-Kurven

DIALOGBOX wie unter 2.1.1 

Beim Standard- sowie Omega2Theta-Scan entsteht je Messung eine Kurve. Diese kann während der Messung Punkt für Punkt oder am Ende der Messung in einer Datei ablegt werden ('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-Datei.

Erforderliche Parameter: 

2.1.4 Verwenden eines Kontroll-Detektors

DIALOGBOX wie unter 2.1.1 

Um verfälschten 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:

2.1.5 ContinuousScan

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 Continuousscan ist sinnvoll als Übersichtsscan, zum Anschauen der Strukturen und um Peaks zu erkennen. 

Dialogbox ,Einstellungen Continuousscan'

Im Einzelnen werden eingestellt:
- Der Motor ('Scan-Achse'), über den 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: 

(#Fehler:12)

2.1.6 Start und Beenden der Teilfunktionen


Start:

Die Dialogbox 'Einstellungen Stepscan' wird geöffnet über:

à das Scanfenster-Menü - ,Setup Stepscan ...'

Die Dialogbox 'Einstellungen ContinuousScan' wird geöffnet über:

à das Scanfenster-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'

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

Dialogbox ,Sichern unter...'

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 Messagebox, die über den jeweils gewählten Scanmodus (Standard, Omega-2Theta, Continuous), die Scanachse, über welche 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. fortzusetzen. 

Messageboxen ,Start Scan'

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.

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, die 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) ist, 

· ZZZ die bis zum Ende des Scans verbleibende Zeit ist (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 über der Motorposition die dazugehörige Detektorintensität ins Koordinatensystem des Linescan-Fensters 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 + der eingestellten 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 komplette 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 gemessenen Intensität an dieser
Position und der vom Monitordetektor gemessenen Intensität an dieser
Position (Monitor eingestellt) ist, 

·ZZZ die bis zum Ende des Scans verbleibende Zeit ist(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 über der Omegamotorposition die dazugehörige Detektorintensität ins Koordinatensystem des Linescan-Fensters eingezeichnet und bei aktiviertem 'Ständig sichern' inclusive 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 und der eingestellten Schrittweite aus der Einstellungs-Dialogbox. 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 komplette 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 Omega-2ThetaScan 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. Omega2Theta-Scan 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 Linescan-Fenster geöffnet ist. Eine Auswahl der zu ladenden Datei geschieht über folgende 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: 

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 Linescan-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 Linescan-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 3.2.2) Anschließend wird dieser neue Dateiname in die Titelleiste des Scanfensters eingetragen. 

b) fixierte Kurve

Eine fixierte Kurve läßt sich über das Scanfenster-Menü '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 3.2.3) 


2.3.3 Kurve löschen

a)Hauptkurve
Eine Hauptkurve läßt sich über das Hauptfenster-Menü '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 Scanfenster-Menü '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 bereits fixierte Kurve gelöscht. Diese Funktion wird über das Scanfenster-Menü 'Scan' -> 'Fixieren' aufgerufen. Diese Kurve wird aber erst beim 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)

Ein Linescan-Fenster 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 XCTL-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 3.2.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. Nach dem Öffnen eines Scanfensters läßt sich das Scanfenster-Menü durch Betätigen der rechten Maustaste an der aktuellen Position des Mauszeigers aufrufen. 

Linescan-Fenster

2.4.2 Beenden der Teilfunktion (Fenster)

Ein Linescan-Fenster 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 3.2.1). 

3. Daten


3.1 Benutzerschnittstelle


3.1.1 Dialogbox ,Einstellungen StepScan'

Dialogbox ,Einstellungen StepScan'

3.1.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.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 durch den Nutzer editierbare Feld zeigt die zum eingestellten Motor zugehörige Einheit an.
à Wert kommt vom Motor (aus ini-File des aktuellen 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 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, 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:08)
- '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:08)
- 'Impulse' wird nur übernommen, wenn der Wert ungleich 0 ist. (#Fehler:08)
- '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.1.2 Dialogbox ,Einstellungen ContinuousScan'

Dialogbox ,Einstellungen ContinuousScan'
 

3.1.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.1.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 durch 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 eventuell werden einige Einstellungen automatisch geändert:
- 'Meßpunkte' werden übernommen, wenn der Wert ungleich 0 ist, 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.

3.2 Dateien

3.2.1 ini-Datei

Erforderlich ist der Scan-Abschnitt mit zahlreichen Parametern. Dies soll an einem Beispiel erläutert werden:

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:

3.2.2 crv-Dateien

Die Meßwertreihen werden in einem Dateiformat abgelegt, welches sich in einen Header- und einen Daten-Abschnitt unterteilt. Dies soll an einem Beispiel erläutert werden: 

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' 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 Omega2Theta-Scan (der zugehörige Thetawinkel)

3.2.3 bk-Dateien

Die fixierten Kurven werden in einem Dateiformat abgelegt, welches sich in einen Header- und einen Daten-Abschnitt unterteilt. Dies soll an einem Beispiel erläutert werden:

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) 

4. Testfälle

Folgende Abläufe beinhalten eine minimale Überdeckung der Funktionalitäten von LineScan und AreaScan. Dabei wurde auf den Test der fehlerhaften Funktionalitäten (ContinuousScan, External sync.) verzichtet.
Testabläufe

5. Fehler

Bei allen Fehlern siehe auch die Fehlerliste

Die Fehlernummern entsprechen den Nummern der Fehlerliste. 

6. Änderungswünsche

Erweiterung um 

7. Offene Fragen

keine

8. Anmerkungen

Nach dem Durcharbeiten des Dokuments Diffraktometrie/Reflektometrie-Gesamtvorgang, Analyse des XCTL-Steuerprogramms und der zugehörigen Quellen sowie Klärung offener Fragen mit Physikern entstand dieses Pflichtenheft. Grundlage für die Form des Dokuments war das Pflichtenheft der Topographie.
Neuerungen zur Version 2.1: 

9. Verwandte Dokumente
10. Glossar


Kurve
Eine Kurve ist eine Folge von Tripeln (x,y,z), wobei x die Motorposition, y die an dieser Motorposition gemessene Intensität und z eine Zusatzinformation (z.B. die Monitorintensität), die nicht im Linescan-Fenster dargestellt wird, angibt. Die Messungen während eines Linescans werden in einer solchen Struktur abgelegt.

Dynamische Schrittweitensteuerung
Die dynamische Schrittweitensteuerung ist ein Mechanismus, der es erlaubt, während des laufenden Scans die Schrittweite zum nächsten Meßpunkt abhängig von der gerade gemessenen Detektorintensität festzulegen. Dadurch ist es möglich, einen für die Auswertung besonders wichtigen Bereich (z.B. den Peak) genauer und unwichtige Bereiche nur grob zu betrachten.