|
|
|
Small-angle scattering is a technique that measures the deviation to small angles (much less than one degree to several degrees) of an X-ray or neutron beam due to structures of small size in the sample. “Small” means dimensions of a few tenths to about 100 nanometres, such as clusters in alloys, polymers, or biological macromolecules.

Instructions for the use of D22's robotThis document describes how to set up the robot arm, determine the sample positions, and set up the commands for the use of the robot. Please, refer to the D22 Manual and the D22 documentation for other topics. Technical details on the programs can be found in the "Rapport de Stage" by Yaël André (August 1999), available at D22 and in the ILL library. The "isel C-Series Wiring and Setup Manual" can be found here as a pdf file. Contents1. IntroductionD22's ISEL robot uses a command interface provided by the manufacturer. A summer student of the ILL, Yaël André, has written several procedures to facilitate its use. The first procedure, running on the instrument control PC, sets up the co-ordinates of the sample rack and in-beam positions with respect to the origin of the robot arm. The second procedure uses this coordinate information to create command files that select a sample in the sample rack and move it to the in-beam position, and others that return it to the rack. 2. Mounting the robotText yet to be written 2. Determining the sample rack and in-beam positions2.1. Connections
2.2. Manual control of the armThe robot arm can be manually controlled using the BASIC program keymove1.bas, a slightly modified version of Yaël André's keymove.bas. This program is found in the subdirectory c:\Winnt40\I5\RobotT on the instrument supervision PC. Move down (cd) to this subdirectory. Then
The program keymove1.bas starts by setting the robot to its internal origin (0,0,0), i.e. sample holder close to the detector tube, on the right, and up. The program allows one to move the robot arm in all directions using the French keyboard keys A and W for the +/- "X" movement (along the neutron direction), Z and X for the "Y" movement across the beam, and E and C for the "Z" down/up movement. (A, Z and E are the first three characters in the top line, and W, X and C the first characters in the bottom line on a French keyboard.) Three step sizes are available. The program starts with "low", corresponding to 0.1 mm. Pressing the space bar once toggles to "medium" (1 mm), then to "high" (10 mm), and back to "low". Pushing the ENTER or RETURN keys prints a 19-digit hexadecimal arm co-ordinate. The meaning of this is These hexadecimal values are translated by the qbasic program into decimal values and positions in mm with respect to the robot reference co-ordinates. Typing Q (and then any key) quits the program. Move the robot arm to the first sample rack position and to the position of the sample in the beam and note the two corresponding hexadecimal values. It is suggested that you leave the robot in a position slightly off the reference co-ordinates. (This is performed automatically by the MAD command file "isel_reference.cmd".) 3. Preparing the command filesYaël André also wrote a Tk/Tcl procedure ("robot_files") that prepares a set of command files necessary for picking up a sample in the rack, moving it in the beam, and returning it from there to the initial rack position. Although the names of these files can be chosen, it is advised to keep the original ones: putsample01.cmd to putsamplenn.cmd and getsample01.cmd to getsamplen.cmd. At present Tk/Tcl is not yet installed on the instrument control computer. Therefore, it is necessary to run the procedure robot_files on a UNIX workstation (d22lnx, lsslnx1, d22sgi...). We advise you to create a subdirectory, e.g. "Robot", in your user zone, moving to it (cd Robot), and to copy a few items to it from the directory /home/ce/sans/Linux/Robot. The files needed are
The latter four files are default files that contain symbolic positions and speeds for the partial positioning movements and are used for creating the files corresponding to individual sample movements. putsample serves to create files that pick up a sample, leave it in a recipient in the measuring position and return the robot arm to its parking position. The files created with the help of getsample return the sample to the rack. holdsample serves to create files that pick up a sample and hold it in the measuring position. get_from_hold files return the sample into the rack and return the robot arm to its parking position. Run (/usr/public/bin/)expectk robot_files to create command files to be used with MAD. The file isel_init contains the last-used start values for robot_files. The file isel_reference.cmd, when executed by MAD, moves the robot to its origin. The file names need to be entered, one by one, in the field "Files to load" of robot_files. They also contain a description of the meaning of every line. A few other necessary files will be created by starting the procedure robot_files: robot_files needs the co-ordinates of the first sample, the increment to reach the following sample, and the co-ordinates of the in-beam position of the sample, either in coder steps as indicated by the value determined above, but in decimal, or in mm. Once the command files exist on the data treatment UNIX workstation, they need to be copied to the acquisition workstation (d22), by using ftp or xftp. ftp to d22 as user d22, password d22d22, and copy files with extension cmd. The command files contain strings that are sent to the motor control unit as normal MAD commands. Example: rs232 @07 The rs232 command sends a character string to an RS232 communication line (COMM2) that is connected to the ISEL unit "Schrittmotor-Controller C142-4". For use with John Allibon's program robot, see below, "rs232" needs to be replaced by "unix robot". The newest version of robot_files does this automatically. The order of events in this example is the following: The robot arm starts from some position to move above the sample in-beam position, moves down to the sample, closes a contact e.g. to use a Venturi valve to soak up the sample, transports the sample to its original rack position, opens the contact again to liberate the sample, and moves back to the robot origin. 4. Controlling the robot with MADJohn Allibon has written an application "robot" that allows one to send command strings to the robot, have them executed and get a return string. robot uses unit $robot_term_line, e.g. /dev/ttya02s. robot works on the system level and can be called from within MAD via MAD> start putsample07 The wait commands are necessary since responses from the robot cannot be treated as yet. 5. Appendix5.1. Steps per mm X direction: 40 steps/mm 2.2. Maximal movements X direction: 17000 steps/ 425 mm 5.3. Robot command summaryImmediate modeAbsolute motion @(GN)M(GX),(SX),(GY),(SY),(GZ),(SZ),(GZ1),(SZ1) Program modeAbsolute motion m(GX),(SX),(GY),(SY),(GZ),(SZ),(GZ1),(SZ1) 5.4. Robot error messages0 no error 5.5. Meaning of parameters in put/getsample files%1 abscissa of the first sample |