MMT Primary Mirror Cell -- Hardpoint Limits
The following is an overview of hardpoint limits, and in particular the
way to recover from being in one (or more). The following screenshot of the hardpoint
window will be useful to refer to during the introductory discussion.
The column "limits" is where the limit status is displayed. If you are in a limit,
this will display "upper" or "lower", to tell you which limit you are in.
It can also display "broke" (or broken or "Both!") to indicate that both limit
status bits are asserted. This should be an impossible state, but it can (and has)
occured, and the explanation will follow.
Sign conventions and such
A positive count extends the hardpoint (moves out of a lower limit).
A negative count retracts the hardpoint (moves out of an upper limit).
10,000 motor pulses (counts) will move 1 mm.
Hardpoint numbering
Several inconsistent numbering systems have been used to label the hardpoints.
Hardpoints are numbered 0-5, corresponding to the electrical channels in the
hardware, i.e. motor 0 is the first channel on the ADC reading the harpoint loadcell
and lvdt, as well as the first group of bits on the PIO that sends pulses. You should
be able to identify the physical hardpoint in the cell from a label nearby that says
GUI-0 or something like that. The mechanical group had one or more other numbering schemes.
Hardpoint numbers increase clockwise as viewed from the sky. We have hardpoints
0 through 5 in pairs. 0/1 are at the north end of the cell. 2/3 are at the SE end,
and 4/5 are at the SW end. Pod 0 is at the north end, but towards the west,
1 is the next clockwise (viewed from the sky) and numbers increase clockwise.
This description, although awkward, should enable you to unambiguously locate
a hardpoint in the cell.
One other number scheme used these same numbers, except they called my number
0 number 6, thus getting 1-6. You are probably well off to forget I even mentioned
this, except that this is the convention used in the paper by Steve West that defines
the transformation matrices. In essence this just starts counting with 1, but
starts with my second hardpoint (which I call 1). Both schemes count clockwise
as viewed from the sky, but one starts counting one hardpoint ahead of the other.
Limit switches
There are 3 limit switches. Two are proximity switches ("prox switches") that provide
an upper and lower limit to motion, as well as limit status to software. The third
switch is a mechanical switch that opens if we manage to get beyond the upper prox limit.
This switch removes motor power, but does not provide any additional status information.
A side effect of removing power is that both prox switches will read as "in the limit"
yielding the "busted" status; so named because a status of being in both upper and lower
limits was viewed as impossible and must mean something is seriously broken.
Getting out of a limit
The process for getting out of a limit is somewhat tedious, but here is how the game
goes. You use the lower left part of this GUI, the bottom row in particular.
In the entry field to the right of the "go" button, you enter a number of motor
steps you would like to go, and hit return. The value you enter should then transfer
to the display field to the right (but no motion has happened yet). The "go" button
sends this many pulses to the selected motor when pressed. To repeat the move you just
hit go again. The motor you are fiddling
with is selected by repeatedly pressing the "motor" button. This will cycle through
motors 0-5 (corresponding to the labels on the above GUI, and also allows "all"
motors to be selected. In the screenshot shown, we are ready to move 1000 motor steps (0.1 mm)
on hardpoint 0 when the go button is clicked. Once you have entered the pulse count and picked the motor
you are almost ready to go. Before hitting the go button, you must override the limit
by clicking on the override button, when you do this, the background color on all of
the limit status fields goes to red to warn you that the override is active. After
approximately 30 seconds, the override is automatically cancelled, so you will
want to click "override" and then "go" without much delay between them.
Note that when in a limit, the direction of the move is forced by hardware to get you
out of the limit. If you make the wrong choice (such as performing a positive move
when in the upper limit), the hardpoint will back out of the limit till the limit
status clears, then the direction chosen by software will take over and back into the
limit you will go. This leads to a back and forth motion which gets you nowhere,
may very well be confusing, but is safe. All of this, except the confusion, is a design feature.
Choosing the correct sign will get you cleanly out of the limit.
Final hardware limit
A late addition made at the MMT was to add a final upper limit switch (there is no final
lower limit switch). If we somehow manage to move beyond the upper soft limit, we will
encounter this switch, which interrupts the 20 volt power to the stepper driver, making
further motion impossible. This also removes power from the circuitry that delivers
the upper/lower limit status to the software, and this causes a status of being in both
limits to be displayed. It is possible that the final switch engagement is almost
identical to the soft upper limit, in which case both upper limits are flagged, and
a status of "busted" will be displayed.
Also note that once the final upper limit switch is engaged, it can only be overridden
by removing a cell cover plate, finding, and pressing an override button that is located somewhere
inside the cell and near the hardpoint in question. For this reason it is desirable
that this final encounter be distinct from the soft limit encounter (the proximity switch),
because it is a giant hassle to perform this override. It is done this way because if we
are in the final upper limit, the mirror is in peril, and we want someone to be performing
a visual check of proper hardpoint motion while moving out of the limit.
Some information from a recent mirror raise
Around noon on 4-7-2008, we raised the mirror twice while zenith pointing.
This is the data from the second lift - after the mirror had been picked up and set down
once to ensure a nice calm starting point. Note that the lvdt values are given in millimeters
relative to the nominal up position (the "magic" position), so that when up, the nominal
lvdt position is all zeros. The absolute lvdt positions are also shown, as well as the motor
counts (10,000 per millimeter) needed to extend the hardpoints while lifting the mirror. It is
interesting to note that the motor counts are in all cases in excess of the motion shown
by the LVDTs. This probably indicates that we are pushing the motors hard and operating
near their stall speed and dropping some pulses. Note that the absolute lvdt zero point
is arbitrary, and may change when a hardpoint is serviced or a spare swapped in.
Hardpoint |
Down-lvdt |
Down-lvdt(abs) |
Up-lvdt |
Up-lvdt(abs) |
Up, Motor counts |
0 |
-6.52 |
-7.55 |
0 |
-1.03 |
708305 |
1 |
-6.91 |
-9.88 |
0 |
-2.97 |
745998 |
2 |
-7.10 |
-9.30 |
0 |
-2.18 |
771720 |
3 |
-6.98 |
-7.93 |
0 |
-0.95 |
737753 |
4 |
-6.95 |
-7.29 |
0 |
-0.34 |
723659 |
5 |
-7.25 |
-9.90 |
0 |
-2.65 |
790190 |
Note that each hardpoint extends about 7 mm while moving the mirror from the down and parked position to the up and
operating position. Also note that a positive motor pulse count raises the mirror.