Requirement specification: XTC (X-Ray Topographic Camera) -Control program

Function: Manual Adjustment of Sample and Collimator


Document Version:
1.01 (14. July 1999)

Author:
K. Bothe
Remarks: U. Sacklowski, B. Wolf, Mr. Pfeiffer
Revision: J. Wegener (DaimlerChrysler)
English translation: Z. Budimac

Status:
Under way

Dialog box:


Remarks on english version of dialog box:

"Special drives" -> better -> "Quick choice of drives"
"Omega" -> better -> "DF - Fine adjustment"
 
 

1. Functional Description:

1.1 Summary:
 

The task of the function Manual Adjustment of Sample and Collimator is to position a sample and a collimator in three-dimensional space for a special experiment in Physics. There are four different positioning drives for positioning of the sample. They enable motion of the sample in different directions. Drives are the following:

There is also one additional drive for curving of Collimator (i.e., plates for deflection of X-rays):


Probe = Sample
Probenhalter = Sample holder
Figure: Degrees of freedom of the sample holder drives

1.2 Application scenario:

Drives are served independently of each other and can be simultaneously moved. Only drives DF and DC cannot be moved simultaneously, because they work in the same moving direction.

If a drive is currently moving, other user inputs for that drive are ignored until the moving stops. In that case user will be notified with warning "Drive  <Drive Name > in motion" (better: forbid further user inputs while drive is moving). User inputs to other drives are possible.

For the experiment, the sample is positioned by moving the known drive and by adjusting the curvature of Collimator. To do this, user will set the position of every drive to the wanted position (Target-position) using the dialog box Manual Adjustment. After chosen operation mode, drives will move from their current position (Current-position) to the wanted position (Target-position).

First, positions of drives DC and AR must be set. After that, positions of three other drives (DF, TL, CC) must be changed accordingly (iterative process - therefore that possibility must be provided as a "quick choice" in dialog box.) During the process, the half-width of the reflection curve is being measured (this is used to asses the goodness of settings). The iterative process repeats usually 20 to 100 times.

Kollimator = Collimator
Fotoplatte = Photo plate
Quelle = Source
Probe = Sample
Bild: ... = Figure: Double crystal topography.
a: usual double crystal configuration with asymmetric collimator
b: double crystal configuration with curved, asymmetric collimator, whose curvature corresponds to the curvature of probe
 
 

1.3 Motion of an individual drive:

The following statements hold for every drive:

  1. Current position

  2. Every drive is in its Current-position, that can be seen in a field of dialog box (Angle) as a numerical value, and as a position of button in a horizontal scrollbar. Graphical user-interface ensures that numerical value and state of the scrollbar are in accordance.

     Exception:
    Text in a title row of dialog box gives advice on the correctness of the shown Current-Position after initialization of the system (i.e., start of the program):

  3. Operation modes

  4. There are three operation modes for every drive. They reflect three different ways to move a drive to the Target-position:
    1. Direct motion: Target-position is entered in the edit-field New angle as an absolute value. After that, the drive move to the Target-position.

    2. (Question: How the motion can be stopped?)
    3. Stepwise motion: The Target-position is entered relatively to the Current-position as a step-value in the edit-field D=. Motion will start after one of the keyboard cursor-keys (<- or -> ) is pressed;   or one of the arrow-buttons on the scrollbar are clicked on. If the key -> has been pressed (or right scrollbar arrow-button clicked) drive will move to position Current-position + step-value. If the key <- has been pressed (or left scrollbar arrow-button clicked) drive will move to position Current-position - step-value.
    4. Continuous motion: Drive will move continuously while cursor keys (<- or -> ) (or arrow-buttons on the scrollbar) are being pressed. The motion direction depends on pressed key (button). With pressed ->  (i.e., right arrow-button of the scrollbar) an angle (= position) will get bigger, while with pressed <-  (i.e., left arrow-button of the scrollbar) angle (position) will get smaller.

    5.  
  5. Motion speed

  6. For operation modes Direct motion and Continuous motion a speed of the drive motion can be set. The speed is entered by the user in edit-field with V = ... s-1. During operation mode Stepwise motion, the drive will move always with fastest possible speed.
     
  7. Relative zero

  8. Operation mode Direct motion assumes that Target-position will be reached starting from relative zero position. Initially, it is assumed that the relative zero position is absolute zero. However, any Current-position can be taken as relative zero position by pressing the button Set the relative zero in the dialog box. By pressing the button Skip the relative zero the relative zero position will be again set to absolute zero. New relative zero position can be set by the new press to the Set the relative zero button in appropriate moment.

    Example: The Current-position is over absZero and will be taken as relZero.
    minPos---------|absZero---|CurrPos=relZero----|maxPos

    Remark: Setting the relative zero   has a consequence to the setting the correct values to   'Angle' i.e. 'New angle'. When, for example, the relative zero is set to minimal angle, then only the positive angle positions can be entered.
     

  9. Reaction to invalid inputs

  10. Drives must be protected by the software from invalid user inputs. In case of invalid input, user will be notified (acoustically) with a warning tone:
    1. If in Direct motion-mode a Target-position is entered that is out of permitted range, then the position specification will be automatically corrected to minimal or maximal permitted position, depending on whether invalid input was below or above permitted range of values. The same holds when in Stepwise motion-mode such step-value is entered that leads to position out of permitted range. Then the step-value will be accordingly corrected. Similarly, in Continuous motion-mode the drive can move only inside the permitted range of values. Attempt to cross the boundaries of permitted range will result in stopping the drive.
    2. If in Direct motion-mode or in Continuous motion-mode an invalid speed is entered, then the speed will be adjusted by the software to maximal possible speed.
    3. If in Stepwise motion-mode the entered value for step-value is out of permitted range of values, the step-value will be automatically set to the minimal or to the maximal allowed value, depending on whether invalid input was below or above permitted range of values.


1.4 Measuring the half-width of the reflection curve:

During positioning of drive(s), the half-width is measured. After pressing a button [Measure half-width] one message box is shown containing the result. This value is detected in the moment of request (i.e., pressing the button) and it gives an advice of the goodness of the drive settings. The half-width is measured after moving drive DF for current step-value of DF.
 
 

2. Input data

  1. Summary

  2.  
  3. Permitted drive positions (absolute positions)

  4. For drives DC, DF and TL the Target-position is entered in arcseconds (1 degree = 3.600 arcseconds); for drive AR in degrees, and for drive CC in micro-meters. The permitted ranges of values (constants in ini-File: AngleMin, AngleMax) for every drive, are as follows:
      Remark / Error: DC and TL: minimal and/or maximal value is not multiple of resolution (maximal position is not achievable)!?

    Attention: Setting the relative zero has a consequence to the range of values of relative positions.
    Current-positions and Target-positions in edit-fields 'Angle' and 'New angle' will be taken as relative positions.

  5. Step-values

  6. For the drives DF, DC, and TL the step-value is entered in arcseconds, for drive AR in degrees, and for drive CC in micro-meters. The permitted range of values (constants in ini-File: MinimalWidth, MaximalWidth) for every drive, are as follows:
     
  7. Motion speed

  8. For drives DF, DC, and TL the motion speed is entered in arcseconds/sec, for drive AR in degrees/sec and for drive CC in micro-meters/sec. The permitted ranges of values (constants in ini-File: MaxVelocity) for every drive, are as follows:
     


3. Wishes for changes, errors:

  1. All drives should be manipulated with, simultaneously,

  2. - using separate windows (one window for every drive) or
    - using one window with possibility for manipulation of more drives (5) at the same time
     
  3. Storing of states in ini-File:

  4.  

     

    Ini-File: Fixed default values are loaded at every program start for all initial values, which is the cause of previous inflexible practice.

    Previous practice was to edit ini-File for every personal settings. This was done on the basis of existing ini-file entries. This practice is problematic and caused difficulties in finding an error.

    Suggestion: Settings of manual adjustments should be saved in other files. Thus, one could deal with different exit situations.

    Controlled settings of ini-File parameters should be implemented only in dialog with checking of logic consistencies of values, and with possibility to save them in a "private" ini-File.

    Attention: particular drive-specific parameters in ini-Files should be protected (from unnecessary changes during normal operations). Those parameters are the following: IOADDR, RamAddr, Torque, RemoveLimit, Koeff_1/2/3.
     

  5.  Motion speed V could be the same for all three operation modes.

  6. (Remark: for step-value it suffices maximal motion speed - prediction of Mr. Pfeiffer)
     
  7.  In Continuous motion-mode initiated with cursor-keys the keyboard buffer gets overloaded, which shouldn't happened.

  8.  
  9. Direct manipulation with command switches of the device will not be adequately supported by the software.

  10.  
  11. Integral dialog box is not ergonomically optimal for the aimed functionality.

  12.  
  13. To offer an assistance (help - as the list of predetermined values to choose from) when entering step-value (for Target-position) in dialog box

  14.  
  15. Input for moving drives should not be ignored, but prevented (function of the user-interface)!


4. Open questions:

  1. Can one in Direct motion-mode (Stepwise motion-mode) stop the moving drive (and how?)?
  2. Does the horizontal scrollbar shows the relative or absolute zero?
  3. Can the relative zero be set for the moving drive (better not)?
  4. Quitting dialog box: what happens with moving drives (are they stopped or left to move further)?
  5. DC and TL: maximal and/or minimal values of permitted range of values are not a multiple of resolution (i.e., the smallest possible step of motion). Therefore maximal position cannot be reached!
  6. Measure of step-value: drive-step?
  7. Step-value for AR doesn't suit range for AR!
  8. Motion speed of AR: measure in arcseconds/sec (not in degrees/sec)?
  9. To add resolution for step-value (the same as for position) and for the speed?
  10. Correction of invalid inputs (for example: out of range or not appropriate for the resolution): to inform the user of changed values?
  11. When is the warning tone issued if all invalid values are automatically corrected?