DOKUMENTENNAME:
Pflichtenheft: RTK-Steuerprogramm
Funktion: Probe und Kollimator manuell justieren
Dokumentversion:
1.01 (14. Juli 1999)
Autor: ]
K. Bothe
Anmerkungen ausgewertet von U. Sacklowski, B. Wolf, Herr Pfeiffer
Ueberarbeitung: J. Wegener (DaimlerChrysler)
Zustand:
in Bearbeitung
Dialogbox:
1. Funktionale Beschreibung:
1.1 Zusammenfassung:
Aufgabe der Funktion Probe und Kollimator manuell justieren ist
es, eine Probe und einen Kollimator im dreidimensionalen Raum für
ein physikalisches Experiment zu positionieren. Für die Positionierung
der Probe stehen vier unterschiedliche Antriebe zur Verfügung, die
eine Bewegung der Probe in verschiedenen Richtungen ermöglichen. Es
handelt sich um die Antriebe (synonym: Motoren)
-
DC (Diffraction angle coarse, Grobeinstellung des Beugungswinkels; Beugung
grob),
-
DF (Diffraction angle fine, Feineinstellung des Beugungswinkels; Beugung
fein),
-
AR (Azimutale Rotation) und
-
TL (Tilt, Verkippung).
Zusätzlich existiert ein weiterer Antrieb zur Krümmung des Kollimators
(Plättchen zur Ablenkung des Röntgenstrahls):
1.2 Anwendungsszenarium:
Die Antriebe (Motoren) werden unabhängig voneinander bedient und
können gleichzeitig bewegt werden. Lediglich die Antriebe DF und DC
können nicht gleichzeitig bewegt werden, da sie in derselben Bewegungsrichtung
wirken.
Befindet sich ein Antrieb in Bewegung, so werden weitere Benutzereingaben
für diesen Antrieb ignoriert, bis die Bewegung abgeschlossen wurde.
Der Benutzer wird darüber mit einer Warnung "Motor <Name
des Motors> in Bewegung" informiert (besser: erst keine Eingabe ermöglichen).
Eingaben zu anderen Antrieben sind möglich.
Vor jedem physikalischen Experiment werden mit Hilfe der genannten Antriebe
die Probe positioniert und die Krümmung des Kollimators eingestellt.
Hierzu werden vom Benutzer über die Dialogbox Manuelle Justage
für jeden Antrieb die einzustellenden Positionen (Soll-Positionen)
angesteuert. Je nach gewählter Betriebsart (s. u.) werden die
Antriebe in unterschiedlicher Weise von ihrer aktuellen Position (Ist-Position)
auf die Soll-Position gefahren.
Zunächst werden die Antriebe DC und AZ eingestellt. Danach im Wechsel
(iterativer Prozeß) die drei anderen Antriebe: DF, TL, CC (deshalb
als Schnellauswahl im Dialogfenster bereitgestellt). Zwischenzeitlich
wird die Halbwertsbreite gemessen (s. u.). Der iterative Prozeß wird
ca. 20 - 100 Mal wiederholt.
1.3 Bewegung der einzelnen Antriebe:
Die folgenden Angaben treffen auf jeden Antrieb zu:
-
Aktuelle Position
Jeder Antrieb besitzt eine aktuelle Position (Ist-Position), die dem
Anwender in einem Feld der Dialogbox (Anzeigefeld Winkel) als Zahlenwert
und durch einen Schieberegler in horizontaler Ausrichtung angezeigt wird.
Die graphische Benutzungsoberfläche des Systems stellt sicher, daß
Zahlenwert und Position des Schiebereglers stets miteinander übereinstimmen.
Ausnahme:
Text im Kopf der Dialogbox: Gibt Hinweis auf Gueltigkeit der angezeigten
Ist-Postion [Anzeigefeld: Winkel] nach der Initialisierung des Systems
(Programmstart):
-
"Manuelle Einstellungen" bedeutet: angezeigte Ist-Position ist korrekt
-
"Manuelle Einstellungen: Kein gueltiger Referenzpunktlauf" bedeutet:
Aktuell angezeigte Position [Winkel] ist nicht zutreffend fuer die reale
Position, da zuletzt ein Programmabsturz erfolgt war (Position konnte in
diesem Fall nicht gerettet werden).
-
Betriebsart
Für jeden Antrieb gibt es drei Betriebsarten, um die gewünschte
Soll-Position anzusteuern:
-
Direktbetrieb: Die Soll-Position wird im Eingabefeld Neuer Winkel
als Absolutwert angegeben. Der Antrieb fährt in die gewünschte
Soll-Position.
(Frage: Wie kann hier die Bewegung gestoppt werden ?)
-
Schrittbetrieb: Die Soll-Position wird relativ zur Ist-Position durch die
Eingabe einer Schrittweite im Eingabefeld D= definiert. Die Bewegung
wird aktiviert, wenn eine der Cursortasten der Tastatur (<-
oder -> ) betätigt wird bzw. auf der Scrollbar rechts oder links
angeklickt wird. Durch Betätigen der Cursortaste -> (bzw. Scrollbar
links) fährt der Antrieb bis zur Position Ist-Position + Schrittweite.
Durch Betätigen der Cursortaste <- (bzw. Scrollbar rechts) wird
der Antrieb auf die Position Ist-Position - Schrittweite bewegt.
-
Fahrbetrieb: Der Antrieb wird solange bewegt, wie die Cursortasten (<-
oder -> ) der Tastatur gedrückt gehalten werden oder auf der
Scrollbar rechts oder links angeklickt wird. Die Bewegungsrichtung richtet
sich nach der betätigten Cursortaste. Mit der Cursortaste ->
(bzw. Scrollbar rechts) wird ein größerer Winkel (= größere
Position) eingestellt, mit der Cursortaste <- (bzw. Scrollbar
links) wird der Winkel (die Position) verkleinert.
-
Bewegungsgeschwindigkeit
In den Betriebsarten Direktbetrieb und Fahrbetrieb kann
die Bewegungsgeschwindigkeit des Antriebs vorgegeben werden. Sie kann vom
Benutzer im Eingabefeld Fahren mit V = ... s-1 eingetragen werden.
Im Schrittbetrieb wird der Antrieb immer mit der maximal möglichen
Geschwindigkeit bewegt.
-
Relative Null
Für den Direktbetrieb erfolgt die Definition der Soll-Position
immer in Bezug auf die relative Null-Position. Initial entspricht die relative
Null-Position der absoluten Null. Es kann aber jede beliebige Ist-Position
durch das Eingabefeld relative Null setzen zur relativen Null erklärt
werden. Durch das Eingabefeld relative Null löschen wird die
relative Null-Position wieder auf die absolute Null zurückgesetzt,
durch erneutes relative Null setzen kann eine andere Position zur
relativen Null erklärt werden.
Bsp.: Die Ist-Position liegt oberhalb der abs.Null und wird zur rel.Null
erklaert.
minPos---------|absNull---|istPos=relNull----|maxPos
Anm.: Das Setzen der relativen Null hat eine Auswirkung auf den
als 'Winkel' bzw. 'Neuer Winkel' g|ltigen Wertebereich. Wenn z.B.
die relative Null auf den minimalen Winkel gesetzt wurde, können
nur noch positive Winkelpositionen auftreten.
-
Reaktion auf unzulässige Eingaben
Die Antriebe müssen durch die Software vor unzulässigen Eingaben
geschützt werden. Bei unzulässigen Eingaben wird der Benutzer
durch einen Warnton akustisch gewarnt:
-
Wird im Direktbetrieb eine Soll-Position eingegeben, die außerhalb
des zulässigen Wertebereichs liegt, so wird die Positionsangabe auf
die minimal oder maximal zulässige Position korrigiert, je nachdem,
ob der zulässige Wertebereich unterschritten oder überschritten
wird. Dasselbe gilt, wenn im Schrittbetrieb eine Schrittweite eingegeben
wird, die zu einer Position außerhalb des zulässigen Wertebereichs
führt. Dann wird die Schrittweite entsprechend korrigiert. Im Fahrbetrieb
kann der Antrieb ebenfalls nur innerhalb des zulässigen Wertebereichs
bewegt werden. Eine Unter- oder Überschreitung wird in diesem Fall
durch Stoppen des Antriebs verhindert.
-
Wird im Direktbetrieb oder im Fahrbetrieb eine unzulässige
Bewegungsgeschwindigkeit eingegeben, so wird die Bewegungsgeschwindigkeit
durch die Software auf die maximal mögliche Bewegungsgeschwindigkeit
gesetzt.
-
Wird im Schrittbetrieb für die Schrittweite ein Wert eingegeben,
der außerhalb des zulässigen Wertebereichs für die Schrittweite
liegt, wird die Schrittweite auf den minimal oder maximal möglichen
Wert gesetzt, je nachdem, ob der zulässige Wertebereich unterschritten
oder überschritten worden ist.
1.4 Messung der Halbwertsbreite:
Während des Positionierungsvorganges wird eine Messung der Halbwertsbreite
vorgenommen: Bei Betaetigung von [Halbwertsbreite messen] erscheint eine
Message-Box mit dem Ergebnis. Der Wert wird im Moment der Anfrage ermittelt
und gibt einen Hinweis auf die Güte der Einstellung. Die Halbwertsbreite
wird durch Bewegung des Antriebs von Beugung fein mit der aktuellen
Schrittweite von Beugung fein gemessen.
2. Eingaben:
-
Zusammenfassung
-
Auswahl des Antriebs (DF, DC, TL, AR, CC),
-
Betriebsart (Direktbetrieb, Schrittbetrieb, Fahrbetrieb),
-
Soll-Position (Eingabefeld Neuer Winkel),
-
Schrittweite (Eingabefeld D=),
-
Bewegungsrichtung (Betätigen der Cursortasten <- oder ->),
-
Bewegungsgeschwindigkeit (Eingabefeld Fahren mit V = ... s-1),
-
relative Null setzen, relative Null löschen.
-
Zulässige Motorpositionen (absolute Positionen)
Für die Antriebe DC, DF und TL erfolgt die Eingabe der Soll-Position
in Winkelsekunden (1 Grad = 3.600 Winkelsekunden), für den Antrieb
AR in Grad und für den Antrieb CC in Mikrometer. Die zulässigen
Wertebereiche (Konstanten im ini-File: AngleMin, AngleMax) ind für
den jeweiligen Antrieb sind
-
DC [-15.399,4 .. 15.815,6], Auflösung 0,4 Sekunden,
-
DF [-1.255,6 .. 1.255,6], Auflösung 0,02 Sekunden,
-
TL [-18.990,38 .. 16.211,30], Auflösung 0,5 Sekunden,
-
AR [-296,91 .. 296,04], Auflösung 0,001 Grad,
-
CC [-1.063,8 .. 1.063,8], Auflösung 0,12 Mikrometer.
Bem. / Fehler: bei DC und TL: Wertebereich kein Vielfaches der Auflösung
(Maximalposition nicht erreichbar)!?
Achtung: Das Setzen der relativen Null hat Auswirkungen auf den Wertebereich
der relativen Positionen.
Ist-Positionen und Soll-Positionen in den Eingabefeldern 'Winkel'
und 'neuer Winkel' werden als relative Positionen eingetragen.
-
Schrittweite
Für die Antriebe DF, DC und TL erfolgt die Eingabe der Schrittweite
in Winkelsekunden, für den Antrieb AR in Grad und für den Antrieb
CC in Mikrometer. Die zulässigen Wertebereiche (Konstanten im
ini-File: MinimalWidth, MaximalWidth) für den jeweiligen Antrieb sind
-
DC [4 .. 1000],
-
DF [2 .. 800],
-
TL [2 .. 10.000],
-
AR [2 .. 800],
-
CC [2 .. 500] .
-
Bewegungsgeschwindigkeit
Für die Antriebe DF, DC und TL erfolgt die Eingabe der Bewegungsgeschwindigkeit
in Winkelsekunden/Sekunde, für den Antrieb AR in Grad/Sekunde und
für den Antrieb CC in Mikrometer/Sekunde. Die zulässigen Wertebereiche
(Konstante im ini-File: MaxVelocity) für den jeweiligen Antrieb sind
-
DF [0 .. 8.000],
-
DC [0 .. 8.000],
-
TL [0 .. 8.000],
-
AR [0 .. 8.000],
-
CC [0 .. 1.000].
3. AENDERUNGSWUENSCHE, Fehler:
-
Alle Antriebe sollten gleichzeitig bearbeitbar sein, d.h.
- über getrennte Fenster (je Motor ein Fenster) oder
- ein Fenster mit der Möglichkeit der gleichzeitigen Bedienung
von mehreren (5) Motoren
-
Abspeicherung von Zuständen im ini-File:
ini-File: Feste Vorgabewerte werden bei jedem Programmstart fuer alle
Anfangswerte geladen, womit eine unflexible Arbeitsweise verbunden ist.
bisherige Arbeitsweise: Editieren im ini-File. um persoenliche Einstellungen
auf der Grundlage vorheriger Versuchsreihen vorzunehmen. Diese Arbeitsweise
ist problematisch und fuehrte in der Vergangenheit zu schwer zu lokalisierenden
Fehlern.
Sinnvoll: Erarbeitete manuelle Einstellungen sollte man in unterschiedlichen
Files retten koennen. Damit kann man mit verschiedenen Ausgangssituationen
operieren (Versuchsreihen)
Kontrollierte Einstellungen der ini-File-Parameter nur im Dialog
mit Ueberpruefung der logischen Konsistenz der Werte sowie der Moeglichkeit,
die Einstellungen in einem privaten ini-File zu retten (s. o.)
Achtung: bestimmte geraetespezifische Parameter des ini-Files sollten
nach einer gesicherten Einstellung geschuetzt werden (keine Notwendigkeit
der Aenderung im normalen Betrieb). Hierzu zaehlen: IOADDR, RamAddr, Torque,
RemoveLimit, Koeff_1/2/3
-
Die Geschwindigkeit V koennte einheitlich auf alle drei Bedienungsarten
Einfluss haben.
(Anm.: Fuer den Schrittbetrieb reicht die maximale Geschwindigkeit
aus - Aussage von Herrn Pfeiffer)
-
Im Fahrbetrieb verursacht die Tastaturbenutzung (Pfeiltasten) einen
Tastaturpufferueberlauf, da die Taste staendig gedrueckt werden muss.
-
Handhabung der Endlagenschalter der Geraete wird softwaremaessig nicht
ausreichend unterstuetzt.
-
Die zugehoerige Dialogbox entspricht ergonomisch nicht optimal der angestrebten
Funktionalitaet.
-
Wertebereiche (u. a. für Soll-Position) in Dialogbox als Eingabehilfe?
-
Eingaben für sich bewegende Motoren nicht ignorieren, sondern erst
gar nicht ermöglichen (Funktion der Oberfläche)!
4. Offene Fragen:
-
Kann ein sich im Direktbetrieb (Schrittbetrieb) bewegender Motor auch gestoppt
werden (und wie)?
-
Bezieht sich der Schieberegler auf die relative oder absolute Null?
-
Kann die relative Null bei laufendem Motor gesetzt werden (eigentlich nicht
sinnvoll)?
-
Verlassen des Dialogs: was passiert mit sich bewegenden Motoren (stoppen
oder weiterlaufen lassen)?
-
bei DC und TL: Wertebereich der Position kein Vielfaches der Auflösung
(Maximalposition nicht erreichbar)!
-
Maßeinheit der Schrittweite: Motorschritte ?
-
AR-Schrittweite paßt nicht zum AR-Bereich!
-
AR-Bewegungsgeschwindigkeit: Maßeinheit in Winkelsekunde / Sekunde
(nicht: Grad/Sekunde)?
-
Auflösung auch bei Schrittweite (dieselbe wie bei Position) und bei
der Geschwindigkeit?
-
Korrektur ungültiger Eingabewerte (z. B.außerhalb der Bereiche
oder nicht entsprechend der Auflösung):Information des Nutzers zu
begradigten / geänderten Werten?