[Date Prev][Date Next][Date Index]

FW: New On-the-Fly Scanning software for MM4005





Folks, 

The Newport MM4005 motor controller is capable of executing complex
coordinated motions.  Trajectories can be defined which move any or all of
the axes through any set of complex motions. The controller will coordinate
these motions, keeping each axis very close to the theoretical position
during the entire motion. The controller can output logic pulses during the
execution of the traejctory, permitting external equipment to be
synchronized to the motion. These capabilities are ideally suited to
'on-the-fly' data collection. 

At the APS the MM4005 is primarily used to drive the large Newport
diffractometer. This diffractometer has rather long settling times because
of the mass of the moving elements. However, with this trajectory scanning
software one can use SPEC, for example, to compute a set of diffractometer
positions for a scan in HKL space, and then download these positions to the
MM4005.  The entire scan can be executed the entire scan without stopping,
collecting data in a multi-channel scaler. This can reduce data collection
times dramatically relative to traditional step scanning.

I have written an EPICS interface for the trajectory scanning capabilities
of the Newport MM4005 motor controller used to drive the Newport
diffractometer.

The interface lets any EPICS channel access client do the following:

- Define the total number of trajectory elements. 
- Define the absolute or relative position of each axis for each point in
the trajectory. 
- Define the time for each element of the trajectory, or alternatively the
total execution time with equal time per trajectory element. 
- Define the total number of output synchronization pulses. 
- Define the trajectory elements where pulse outputs begin and end. 
- Define detector triggers to start detectors at the beginning of the
trajectory and stop them at the end of the trajectory. 
- Build the trajectory, checking for completion and errors. 
- Define a total time scaling factor from .01 to 100 which will speed up or
slow down the trajectory execution relative to its original definition. 
- Execute the trajectory, checking for completion and errors. This can be
done repeatedly without rebuilding if the only changes are in the start
position or the execution time scale factor. 
- Read back the actual position of each axis when each synchronization pulse
was output. 
- Read back the following error (actual-theoretical positions) when each
synchronization pulse was output. 

Complete documentation and source files are available at: 
http://cars.uchicago.edu/software/trajectoryScan.html

Cheers,
Mark Rivers