• Keine Ergebnisse gefunden

MOS unit control, function- and motion sequences

3.5. Auto correction and recovery sequences

3.5. Auto correction and recovery sequences

Translator position correction

As explained in section 2.4.3, positioning of the translator is done by commanding motor steps to the translator drive. The translator position is checked by comparing the com-manded steps with the measured steps (i.e. travelled distance) that is calculated from the angular and incremental encoder signal. It became obvious during extended tests that this positioning scheme is not sufficient. The new developed positioning scheme is two fold. First, we move the robot to the desired position by moving a certain number motor steps. A lookup table holds the absolute steps measured from the init (zero) point for each translator position (all 33 mask storage places, FPU positions, other important positions) along with their corresponding spindle angles (modulus of 2π). The needed number of motor steps are the difference between the current position count and the target position count. If, after moving the calculated number of steps, the spindle an-gle corresponds to the anan-gle stored in the LUT within a tolerance, the motion sequence stops. If not, the nominal angle is commanded and the translator drive rotates to this angle. The check and correction is repeated 3 times. Small step-losses can be reliably corrected with this motion scheme.

In some orientations of the MOS the translator position for grabbing a mask and the translator position for extracting the mask from the storage cabinet (rotating it to the transport position) arenotthe same. An adaptive motion has been developed for flexibil-ity and to avoid lengthy lookup tables.

At first the mask is rotated to a test angle after the mask has been grabbed and the re-tainer has un-blocked the mask. The motion continues to transport position if this test extraction angle is reached. If the extraction test angle has not been reached, some-thing is blocking the motion; in all practical cases the translator position is off where it should be. The translator position is then varied in a back and forth motion inside a given interval. A retry to rotate the mask to the test angle is done after each new trans-lator position. If the boundaries of the interval are reached before the mask could be successfully extracted, the sequence stops, producing an error state.

Rotator position correction

The two gear wheels of the rotator drive are mounted twisted in respect to each other to avoid backlash in the rotating motion. Because of flexure in the rotation head and the robots body, it can occur, that the target angle for transport and the FPU angle are not reached in one go. Normally these positions are exactly defined by the target angle and in most cases one retry is sufficient. It can happen though, that the reached position is close to the target angle, but that flexure changes the position of the stepper motor axle in a way that commanding less than 5 motor-steps is not causing any motion. In this case the correcting sequence first moves farer away from the target position (into the direction the motion originated from) and does a retry using more steps.

Other motors

We have found that stepper motors and drivetrains which have not been used for a long time in the cold tend to fail in the first motion. This is for example the case for the cabinet lock. The motion is commanded as ’move to limit switch’ and the lookup table for the stepper motor steps contains a back-and-forth motion as the first entries.

The retainer drive has a similar lookup table that produces a back and forth motion if the limit switch has not ben reached in the first go.

For the retainer selection motor an adaptive sequence was developed which analyzes the reached and nominal motion, compares with the previous motions and chooses the best strategy ’retry or move backwards and forward’ according to the debug history so far.

This enables to use the motor even if one turning direction fails, since the motion can be carried out clock- or counterclockwise.

3.5.2. Error recovery

The control software builds up an execution tree while executing a sequence or a col-lection of sequences to facilitate debugging. The tree contains all the completed, failed, and and not completed steps. The reason why a sequence was stopped is explained. Ad-ditional debugging information for the system engineer is written to a detailed log file that also contains info on reached angles or positions if necessary. Also the complete communication between the instrument server and the MCU can be logged. The log file can be accessed via a specialized web interface which allows to search for events ac-cording to type, date, subunit, sequences, running processes and others. Also standard SQL-queries are allowed.

The initialization routine is adaptive in the sense that it produces an initialized state from which the unit can be restarted from the user panel. This one-button-auto-recovery is still under development.

3.5.3. Motion pausing and skipping

The sequence execution tree allows to pause sequences and also to run step-wise in order to test new parameter sets after hardware modifications. This is mostly needed during debugging, when single sequence steps are to be checked for errors. Pausing can happen on two levels. On sequence level the whole (sub)sequence is paused or continued. On the ’atomic’ transition level all transitions, including the activation of holding currents, has to be acknowledged by the engineer.

3.5. Auto correction and recovery sequences

With the help of skipping, paused sequences or sequences that got interrupted by an error condition can be recovered and continued after the error has been corrected. To do so all steps are replayed and the current status of the instrument is checked against pre- and postconditions. When a matching state is found, the sequence is carried on from that point. Skipping, however, only works up to a sequence level. Additional conditions imposed by super sequences cannot be checked in this recovery scheme. Thus skipping is not a general cure-all debugging tool.

Design of two high performance gratings