The control system is implemented in two levels of hardware (see fig. 1 ). The mechanical components are controlled by small computers called, naturally enough, controllers. The controllers are, in turn, directed by a single larger computer, the telescope control computer (TCC). In essence, the TCC determines how to move the telescope and the controllers implement the motion.
Figure 1. Overview of the telescope control system.
The controllers provide text-command driven interfaces to the telescope hardware, and perform all fast, time-critical functions such as servo-feedback control. The TCC implements high-level control functions in a powerful but friendly computing environment, with a high-level language, multi-tasking and minimal real-time requirements.
The most important controllers are the axes controllers (azimuth, altitude, instrument rotation and guide camera position) and the guide camera controller. There will be several rotation controllers and guide controller pairs, one for each instrument position requiring these services. Other controllers perform such functions as adjusting the secondary and tertiary, reading the weather station, and controlling the dome. In all, we will have approximately ten controllers in use at one time and more at idle instrument positions; thus it has been our goal to keep the controllers small, simple, and self-contained.
Our tracking method differs from that used elsewhere. Typically, the main control computer performs all axes calculations 10 or 20 times a second, sending position or velocity, but not both, to the axes controllers or directly to the motors (5, 6, 7). This offers the simplicity of synchronous axes control. However, we feel that our method makes more effective use of the main control computer. The real-time performance requirements are greatly reduced, and different functions may be separated naturally into small, distinct processes. These considerations are especially important in a case such as ours, where the main control computer performs many functions in addition to axes control.
The active guide camera controller determines the position of the guide star in camera coordinates and sends it to the TCC. The TCC converts this position to an alt/az offset (guide correction) and immediately sends it to the altitude and azimuth axes controllers. The TCC also continues to track while guiding, so that the guide corrections stay small.
Using the TCC to convert guide corrections from guide camera coordinates to alt/az greatly simplifies the guide camera controllers. However, it also limits the maximum guide rate to about 10 Hz. Normally this should be sufficient, but if an instrument requires faster guiding, its guide camera controller may talk directly to the secondary mirror controller or axes controllers.
Figure 2. Major processes in the telescope control system.
The user process interprets and executes all telescope control commands. Thus, among other things, it acquires objects, specifies guide stars, and initiates guiding. The tracking process maintains the telescope's position, once an object has been acquired. Once each second it sends a new position command (position, velocity, and time) to the axes controllers. The guiding process reads guide star positions sent by the current guide camera controller. The guide process converts these positions to alt/az guide corrections, and sends them as offsets to the azimuth and altitude axes controllers.
These processes execute independently of each other, yet all send commands to the axes controllers. To prevent collisions, only one process at a time is allowed access to the axes controllers, and then only for a restricted amount of time. The maximum possible delay for any process attempting to access the axes controllers is thus well defined. The tracking process must not be late, so it starts early enough to compensate for this potential delay.
These processes also maintain a database containing the positions of the object and guide star, and related information. This database is read by the secondary process, which controls the secondary mirror (maintaining focus and collimation) and the atmospheric dispersion corrector.
Finally, a host of small process (not shown) perform infrequently needed tasks. These include reading the WWVB clock, monitoring the weather station, and updating slowly varying coordinate system data such as refraction coefficients and the sidereal time offset.