}

Secondary Mirror Controller Commands

(*) this command is not used by the TCC

Overview

The secondary mirror controller adjusts the secondary mirror's position in up to five axes to maintain collimation and focus.

Commands

Commands marked with (*) are not used by the TCC. They are generally included for use by engineers, or for symmetry with other controllers.

<BREAK>

Hardware resets the controller and halts any motion. See also INIT

ID (*)

Displays the name of the current axis and the software version number. Sample output:
4 Secondary 26 oct 1994

INIT

Stops motion of the mirror and initializes the internal variables "if necessary".

MOVE piston x-tilt y-tilt x-trans y-trans

Sets the piston (in um), tilt (in arc-seconds) and translation (in um) of the mirror. If the controller does not control all five axes of motion, the controller must accept values for all five axes, but ignore the values that do not apply.

See also PISTON , TILT and TRANS

PISTON piston (*)

Sets the piston of the mirror to the specified value (in decimal microns). Returns immediately (does not wait for the motion to finish). Leaves the other axes of motion unchanged

See also MOVE , TILT , TRANS

REMAP

Initializes all internal variables, retracts the secondary to the limits and resets the position counters to zero. May be interrupted by typing any character, though it may take awhile to respond.

SEC

Notifies the controller that subsequent commands apply to the secondary mirror.

SET.TIME date (*)

Sets the internal clock (optional; not required for proper functioning). Time can be expressed in the normal format (decimal seconds in the day) or in the alternate format: hours minutes seconds (where hours and minutes are integers and seconds is decimal).

STATUS (in transition; new format shown)

Returns the state of the hardware and controller in the APPROXIMATE format:
piston x_tilt y_tilt x_tran y_trans time status_word_0 status_word_1 status_word_2 status_word_3 status_word_4
where:
  • piston is in um
  • tilt is in arc-seconds
  • translation is in um
  • time is in decimal seconds
  • status_word is a status word each positioner, returned in decimal. Click here for details.

Note: The mirror positioners have finite resolution, so requested piston and tilt are rounded. The values returned by STATUS are the rounded positions, not the piston and tilt you requested. Also note that the time will be dead wrong unless somebody has bothered to set the clock.

See also STATUS.LONG

STATUS.LONG (*)

Similar to STATUS , but easier for a person to read. The entries are labelled and the status word is given in binary.

STEP.DUMP (*)

Outputs information about each actuator in the form:
actuator number, requested position, actual position, position change, status_word
where:
  • actuator number is 0, 1, or 2
  • what is "position change"?
  • status_word is described in the STATUS command

TILT x-tilt y-tilt (*)

Sets the x and y tilts as specified (in arcseconds). Returns immediately (does not wait for the motion to finish). Leaves the other axes of motion unchanged.

See also MOVE , PISTON , TRANS

TIME? (*)

Returns the current date. Sample output:
3 5 89 65916.780

Caution: the mirror controllers probably do not know the correct time; they don't need it to function, it probably is never set.

TRANS x-trans y-trans (*)

Sets the x and y translation as specified (in um). Returns immediately (does not wait for the motion to finish). Leaves the other axes of motion unchanged.

See also MOVE , PISTON , TILT

Status Bits

The status words are 8 bits each. The bits are sticky (they stay on until read, even if the condition has cleared). The bits have the following meaning (shown in hexadecimal, but STATUS output is in decimal and STATUS.LONG output is in binary)
0001 limit switch 1 engaged
0002 limit switch 2 engaged
0004 at maximum position
0008 at minimum position
0010 at requested position
0020 actuators powered down
0040 (undefined)
0080 (undefined)

Charles Hull and Russell Owen