MOUNT LAGUNA OBSERVATORY
40-inch Telescope

One Meter Instrument Control System - OMICS


I. Introduction
II. Startup
III. Telescope Control Language
Appendix I. UNIX to Telescope Control Micro Communications
Appendix II. Command Summary


I. INTRODUCTION

OMICS is a window based program written in the CA language that executes from the 40" SUN PAX computer to help the user control and interact with the telescope. The SUN acts a user interface and command processor to the microprocessor that actually controls the telescope motors. The telescope micro is a "real-time" processor because it responds quickly and predictably to interrupt requests from the telescope and the SUN. The processor used for the telescope control system is a single chip microcontroller (Intel's 8031 8-bit micro). The real-time processor handles all the time-critical and instrument-specific control functions necessary to control the telescope, allowing the communications protocol between it and the SUN to be non-time critical and fairly simple. The SUN is not relied on to perform time-critical functions, though prudence dictates that it not be used for heavy computational loads during observing. If it should become overburdened the worst that should happen is that its response time will worsen and slow down the observing session.

The observer communicates with the telescope through a window on the SUN. There are display only windows set up and user interaction window through which the observer issues commands. These commands can either be typed directly onto the terminal or can be read from a disk file. The observer should be careful within this windowing environment to not disturb the mouse, as it greatly affects the window's operation. In particular the OMICS window can be inadvertently disabled quite easily, in which case OMICS will present a small rectangle prompt instead of the>. The bottom user window should have a heavy border around it. To re-enable this window simply put the cursor into it with the mouse and press the mouse's LEFT button.

Central to this system is the language used by the observer to communicate with the UNIX machine, and to a lesser extent, the language used for communicating between the UNIX machine and the telescope control micro. This document serves as a user guide to operating the program, starting with a start-up and trouble shooting section. A detailed specification of the OMICS telescope control language is given in Section II, and Appendix I contains the commands by which OMICS communicates with the telescope control micro, which is of interest should the observer wish to use the telescope micro directly. Appendix II contains a summary of all the OMICS commands, for quick reference.

II. STARTUP

Operation of OMICS should be done from the SUN windowing terminal located in the control room. It is started by placing the mouse on the background of the terminal, pressing and holding the right button on the mouse and selecting the OMICS program. OMICS will open OMICS is a complex program that starts a total of four tasks - a command interpreter, a telescope device driver, a telescope window display and a switcher. It operates these tasks asynchronously using shared memory, while monitoring the command stream from the user and the telescope micro. The interpreter maintains a command queue for the observer input.

If the telescope seem to be giving nonsense results, such as the OMICS display being different from the telescope micro display, try resetting the telescope micro power with the button on its from panel. OMICS can be exited by entering the 'quit' or 'exit' commands, or by selecting the 'Quit' selection of the windows'pull-down menu. If all else fails, reboot by logging out of your user session and logging back on with the username reboot.

III. TELESCOPE CONTROL LANGUAGE

In the documentation below square brackets [ ]indicate optional arguments; italics indicates a character variable whose name is to be assigned by the observer, whereas quotes indicates that quotes really do have to be entered around a character string. Generally the control language follows a syntax of "verb object", followed by any number of optional arguments. There is a verbose mode of entering commands which is usually used by an observer editing a disk file in advance of an observing run, and a terse mode that is appropriate for direct keyboard entry while observing. Examples are:

move telescope M87 Or: set rate 120.0

mt M87 sr 120.0

 

The commands are entered in OMICS entirely in lower case, and are indicated in this document as lower case as well. Upper case characters may be entered in object names and labels and will be distinguished from lower case characters. A detailed list of the telescope control vocabulary follows. An attempt is made to indicate the rules governing how each command will be used. Syntax rules will be obeyed as follows:

(1) A command can be executed either by writing out its full name or by using its two letter acronym. Misspellings will result in an error message.

(2) Arguments to commands must be given in the order specified by the command documentation. This document indicates with square brackets [J that certain arguments are optional.

(3) One command to a line, please.

 

(4) The syntax for numerical input is tolerant. Thus arguments can be specified as 120.00, 120 or 120.

 

(5) The allowed syntax for coordinate entry, such as for the Define Position (DP) command, is quite flexible. Right ascension always precedes declination, and the nominal syntax is:

hh:mm:ss.ss sdd:mm:ss.s

 

where the s is a sign (+ or -) and the delimiters are colons and periods.

Several relaxations in this syntax are allowed:

(a) any character other than a period, a space or a semicolon may be used instead of a colon as a delimiter.

(b) the 11+11 sign on the declination is optional. The "0" at the beginning of hours or degrees is optional. (c) if seconds or fractional seconds are not entered zeroes will be assumed.

(d) Minute and second entries must be two digits in length. The fractional seconds entry can be any number of digits.

(e) A special format of fractional minutes is allowed - hh:mm.m dd:mm.m for compatibility with older catalogues.

The following are all allowed:

12:04:42.56 +04:45:12.2

12,04,42.5 04x45

2:04 4,45,12.2523

12x04x42 04x45x12

12:04.7 04:45.2

BUT 12:4:42.56 +04:45:12.2 is not allowed

12.04.42.56 04.45.12.2 is not allowed

 

The list of telescope control and program flow commands follows. Examples are given for some of the commands.

define epoch: de yyyy.y

 

Examples: de 1950 define epoch 1988.8 de

Define the default epoch to which coordinates entered into OMICS will be referred to if the epoch is not specified in the Define Position command. This allows the user to use only epoch coordinates, while the OMICS does all precessing calculations to current coordinates before communicating with the telescope control micro. The epoch is to be entered as a four digit year followed by a decimal point and a one digit year fraction. Thus October of 1988 would be 1988.9 or 1988.8. de with no argument sets the default to the current epoch as read from the telescope micro.

define position: dp name [[hh:mm[:ss.ss] [s]dd:mm[:ss.s]]

[[epoch=] yyyy.mm] ["label"]]

 

Examples: dp M87 12:24:54.67+23:34:08.2 epoch=1950.0 "V=8.56 large Virgo E gal"

dp M31 00.23 31:52

dp

Create an entry in the telescope coordinate list to be referenced by n~me; do not enclose name in quotes. name can be an ASCII character string of any length, but it MUST have a character (not a number or a symbol) as its first entry. The optional epoch defines the epoch that this coordinate refers to, and overrides the default epoch specified by the define epoch command for this entry only. The program will precess the given coordinate between this epoch and the current epoch before sending any coordinates to the telescope, since the telescope will only deal with current coordinates. The optional "label" is a character string up to 30 bytes in length that will get displayed in the telescope window to help the observer remember what he's looking at; it must be enclosed in quotes as indicated. If name has already been defined an error message will be given. Coordinate entries can be deleted with the rm name command.

A second mode for using dp exists: to issue just dp name with no further arguments. This will cause the current telescope position (as read from the telescope control micro with a show status command), suitably precessed to the appropriate epoch, to be stored in name . This mode is useful for storing telescope positions that are determined by looking through the TV and manually centering the telescope on desired stars or sky regions. It can be used in conjunction with the update telescope (ut) command, which tells the telescope control micro to update the coordinate offsets that it keeps track of, and are applied to all incoming coordinates. The dp name command will update only the coordinate entry name . If name has not yet been defined, then it is defined as the current telescope position, suitably precessed to the default epoch.

define offset: do 'name2' 'namel' [s][mm:]ss[.s) [s][mm:]ss[.s] ["label")

 

Examples: do SKY M87 2:05.5 0 "sky offset in RA only" do Comp V47 1 -3020 "comparison star" do blank star 140.2 30 "blank sky"

Create an entry in the coordinate list that is constructed by adding angular offsets to already defined coordinates. The units of the offset will both be in units of minutes and seconds of arc, never seconds of time. Coordinates are calculated as:

ra(name2) = ra(namel) + offset.ra/( 15 ~ cos(dec)) dec(name2) = dec(namel) + offset.dec.

A new "label" descriptor is allowed. The new offset position will be stored as a celestial coordinate in the same epoch as the coordinate from which it was derived. Offsets entered as seconds of arc only that are larger than 60 seconds will get properly converted. Offsets are not allowed for service positions.

define service: ds name [s]hh:mm [s]dd:mm

 

Often the telescope must be serviced by placing it in a position that is most easily specified by giving its coordinates in hour angle and declination, though to a lower accuracy than is required for celestial objects. Define Service is this command, and Move Service will cause the telescope to actually move to that coordinate.

 

type position: tp [name]

remove: rm name

Type to the display the position of the defined name position entry. If name is not entered then type out all positions. MACRO contents (see below) can also be typed out with this command. Or remove the named entry.

 

move telescope: mt name

Examples: mt M87

mt SKY

Move the telescope to the position previously defined by name with the dp or do command. If the object name is not defined in the list maintained in central memory then the program goes to the list of disk files specified by the specify files (sf) command described below. If it is not found in any of these then an error message is given and the user is urged to define a new position.

move offset: mo [ [s][mm:]ss[.s] [s][mm:)ss[.s]

 

Move the telescope by the indicated offsets, expressed in minutes and seconds of arc on the sky from the current telescope position, following the same conventions as the define offset (do) command The right ascension will be moved by an amount offset/( 15 * cos(dec)). If no argument is entered then the previously entered argument will be used. This command can be used as a supplement to the paddle buttons to position the telescope by precise amounts. The dp command can then be used to update the position stored in the OMICS, whereas the ut command will update the telescope micro positional offsets to be applied to all subsequent positions.

 

move relative: mr [ [sJ[mm:]ss[.s] [s][mm:]ss[.s]

 

Move the telescope by the indicated amounts, just as for move offset, except that the motion is not from the current telescope position but from the last defined position.

 

move service: ms name

Simply move the telescope to the service coordinate name defined by the define service command. The telescope micro will turn the tracking off.

9'.

move "various mc, mf, mh, mz

 

Just as for the telescope control micro described in Appendix I below these define a service positions to move to: change (a nice service position), the flatfield screen, home, and zenith. They are defined in a script file "/usr/local/lib/omicsrc" that is always executed when OMICS starts up.

specify files: sf name 1 name2 name3

 

Name all the disk files that will be searched through whenever the move telescope (mt) or move service (ms) command is executed and the object name is not found in memory. If that star name is not found in any of the disk files an error message will be given. This provides a convenient way to keep catalogs of coordinates on the OMICS disk, some of which will be shared by all observers and will be kept in a system directory. Others will be used by only one observer, and kept in his directory. Therefore, OMICS pathnames are allowed in the filename designators. Executing Sf each time will delete all previous file specifications, and Sf with no arguments will erase all the file specifications. The format of the star entries is similar to the define position (dp) command above, with one coordinate entry per line, as:

M87 12:34:21.4 12:51:06.3 1950 "OpenStarCluster"

 

except that the dp is left out, the epoch is mandatory, and the object name must begin in the first column. These restrictions were imposed to improve the searching speed. Entries can be ignored or comment lines inserted by putting a # symbol in the first column of the line. Path names can be specified in name. ut update telescope

The computer will simply tell the telescope control micro to update its coordinate system by calculating offsets based on the difference between the coordinates it has been commanded to go to and the coordinates it is now pointing to. This command is usually sent by the observer after he's set the telescope onto a star whose coordinates are well known.

show status: ss

 

The following status variables as read from the telescope control micro will be displayed in the command window:

UT - Universal Time hh:mm:ss.ss

LST - Local Sidereal Time hh:mm:ss.s

LHA- Local Hour Angle hh:mm:ss.ss

RA - Right Ascension hh:mm:ss.ss

DEC - Declination sdd:mm:ss.s

X-Air Mass x.xx

Dome Azimuth ddd.d

Focus Position ffff

where the "sdd" means "sign (+ or-) degrees". The program will precess the celestial coordinates supplied by the telescope micro into default epoch coordinates before displaying them. dr display rates The telescope guide, set and find motion rates in seconds of arc per second of time will be displayed.

telescope tracking: tt Turn the telescope tracking ON.

pointing off: po Do not use pointing corrections to update tracking rates.

no tracking: nt Turn the telescope tracking OFF.

east telescope et Tell OMICS that the telescope is east of the pier. Default.

west telescope wt

abort: ab Abort current command, and stop the telescope motion.

set time: st [ddd hh:mm:ss.s]

when issued with no arguments the Universal Time will be read from the WWV clock with a one or two second delay. With an argument the telescope micro will be set to the indicated value.

The telescope motion rate commands will cause commands to be sent to the telescope control micro that will move the telescope at defined rates. A single argument will be passed that will be interpreted in units of arcsec per sec, both in the right ascension and declination directions. Notice that units of time in right ascension will NOT be used. The command display rates will cause all these rates to be displayed to the command window for the user to check.

guide rate: gr x specify Guide Rate (default = 0.5 arcsec/sec)

set rate: sr y specify Set Rate (default = 5 arcsec/sec)

find rate: fr z specify Find Rate (default = 60 arcsec/sec)

 

Because repetitive series of commands often need to be executed, a facility is included for executing script files from disk. These script files will be executed only once, but may contain definitions of MACROs that contain a series of commands that get loaded into UNIX central memory for repeated execution.

read script: rs name

 

Read the file name from disk and execute it once. This file may contain definitions of MACROs that will be loaded into memory for later execution, or single commands. Or one can simply type in the name of the script, causing the program to search the disk for it, and to read it in and execute if it is found. Path names are allowed in the name specification. dm define macro name

Define a sequence of commands, or a command macro, that is executable any number of times. The sequence will be executed by entering the name of the macro. These macros will be stored in central memory for fast access and execution. A special window is set up for displaying the currently executing macro stream of commands. When entering the macro commands freehand to OMICS the computer will give a prompt with the macro name being defined, such as FOCUS>. Macros may call other macros, but not themselves. Macros defined by disk files can have comments inserted on each line if they are preceded by a # symbol. em end macro Simply indicate where the sequence of commands defining the macro ends.

execute macro: xm name [n]

Execute the named macro n times. Or one can simply type in its name followed by an optional integer that is the number of times the macro will get executed. Since the macros are stored in memory they will execute quickly. One can, for instance, use macro definitions to re-define command names that one does not like, just as the alias does for UNIX. MACRO execution can be stopped immediately anytime by typing in CNTRL C. It's useful to have OMICS type each macro to the terminal as its executed, which can be accomplished by entering the set echo command. The contents of a macro can be displayed with the dump macroname command. Macro execution can be terminated by hitting the AC (control C) keys.

While executing macros some facility is needed to cause the macro to pause execution while the observer does something (like position the telescope or view a CCD image). The PAUSE command does this. Answering a Q, q, N or n to a PAUSE command embedded in a macro will cause macro termination.

write macro: wm macroname filename Write macro to disk as filename

list macro: list macroname List to the terminal the indicated macroname.

directory of macros: list macros List the names of all the defined macros.

pause: pause ["Message") Stop execution until a Carriage Return is hit.

echo: echo string Type the string to the terminal but don't pause.

Pause allows the observer to finish whatever he is doing until the next command is executed. (There is no acronym since it only makes sense to execute it within a macro.) If a Q, q, N or n is entered then macro execution terminates.

Example: pause "Center star with the paddle, continue (Y or N) ?"

 

A number of commands are related to OMICS operation, and are diagnostic or operational in nature. They are as follows:

dump id

 

Display the current contents of id, where it may be a declared position, a macro or one of the following names:

'stab' - display the entire symbol table

'flist' - display the file list specified via the command Sf

'clist' - display the command list

'status'- display the interpreter status

'epoch' - display the default epoch, as defined by de

'macro name' - display the commands defining the macro set move

Set a number of debugging modes, as follows:

'pdump' - dump the parse stack on input 'tdump' - dump the token stream on input

'debug' - set the interpreter mode to debug

'live' - set the interpreter mode to live

'echo' - display macro commands as they're executing unset mode - take OMICS out of the indicated execution mode.

trace name - set OMICS into a mode where it sends all terminal '10 to a file that will be

created in the current directory as filename.

 

endtr

 

Stop the currently executing trace mode of the interpreter.

 

[UNIX command]

 

Interpret the string as a UNIX shell command that will be passed to UNIX directly for execution. All sorts of UNIX commands can be edited without exiting OMICS, such as vi, mail, ls, cat and so on. If no UNIX command is entered then interpret all entries as UNIX commands until an 'exit' is encountered.

keyboard arrows

 

The arrows on the keyboard, to the right and left of the alphabetical keys, can used to edit previously entered command lines. Up arrow selects previously entered command, left and right place the cursor within the command line so characters can be entered and deleted, and down arrow moves one down the command lines list. Use of this command can really speed operations considerably.

quit, exit: Stop executing OMICS and close down its windows.

 

Stop executing the OMICS program, close all the windows, and return to the UNIX shell. Some manipulation of the mouse is required - follow the directions.

help

 

Finally, there's a nice command to help the user with his troubles. Without an argument it should list the various areas of help that are available (tel, ccd, omics or macros). With an appropriate area of help as an argument it will list all the available commands within that area. With a command as an argument it should give help with the execution of that command.

The language by which the UNIX computer communicates with the telescope control microprocessor is documented below in Appendix II. It is very similar to the telescope control language just described and can indeed be executed directly from a terminal directly connected to the telescope control micro serial line.

APPENDIX I - UNIX to TELESCOPE CONTROL MICRO COMMUNICATIONS

This appendix details the language by which the UNIX computer will communicate with the telescope control microprocessor. This language is very similar to the control language of the UNIX machine, with the main differences being that the micro deals only with positions expressed in the current epoch, knows nothing about object names or lists, and does minimal command syntax checking. Communication with the micro occurs on a full duplex 9600 baud RS232 serial line using ASCII characters for everything. The protocol is 9600 baud, 8 data bits, one stop bit, no parity. Coordinates are expressed as ASCII strings. The fundamental telescope control micro command is just Move Telescope (MT) followed by an ASCII string with the RA and DEC coordinates in the same format as for a UNIX computer command. It is a combination of the Define Position and Move Telescope command that is entered into the UNIX computer. Similarly, the Define Offset and Move Offset commands do not exist for the micro, but instead the UNIX machine.

 

MT hh,mm,ss.ss [sjdd,mm,ss.s

Move Telescope to these current epoch celestial coordinates. Commas and periods are required delimiters.

 

MS hh,mm,ss.ss [sjdd,mm,ss.s

Move telescope to these service coordinates, with the first coordinate, the hour angle being in a range of 0-6 or 18-24. Commas and periods are required delimiters.

 

MO [s]mm,ss.s [s]mm,ss.s

Move telescope by the indicated angular Offset from the current telescope position. The arguments are both in angular amounts, not time.

 

MR [ [s]mm,ss.s [sjmm,ss.s ]

Move telescope by the indicated amounts Relative to the last defined position. The arguments are both in angular amounts, not time. If no argument is entered MR uses the previously entered argument.

 

ST [= ddd hh,mm,ss.sJ

Set Time, that is UT. Without arguments the micro will go out and read the WWV clock.

 

UT Update Telescope offsets.

TT Telescope Track.

NT No telescope track.

P0 Turn the Pointing correction contribution to guiding Off.

WT Tell the micro that the telescope is West of the pier.

ET Tell the micro that the telescope is East of the pier.

AB, HA ABort current telescope command - stop the telescope.

GR xxx.x Guide Rate = x arcsec/sec (<375).

SR xxx.x Set Rate = x arcsec/sec ( <375).

FR xxx.x Find Rate = x arcseclsec ( <375).

SS Show Status. This command can only be issued from OMICS.

MD ddd.d Move Dome, argument in fractional degrees.

MI ffff Move Image focal plane by moving the secondary (focus).

 

There are a few more commands that are designed to be redundant with OMICS commands and only of interest if OMICS is not being used. They are not supported in any way by OMICS.

 

SP n Store Position, n = 0-9. Save the current telescope position in a buffer, so UP can access it.

UP n Use Position, n =0-9. Move the telescope to the stored position.

RS Reset the telescope to the last defined position.

RD Re-Draw the micro display.

MC Move to Change the secondary.

MH Move Home, a nice service position.

MZ Move to Zenith.

MF Move to Flat-field, HA = -04,07,00.00 dec=65,42,00.0

 

The telescope control micro may send a message to the UNIX computer depending on what command it was issued. After an MT or MS command the micro will send a DM response to the UNIX machine after the move has been completed. Similarly, after a Show Status command a string of numbers, all ASCII encoded and each one delimited by a space, will be sent back, as indicated below:

 

UT - hh:mm:ss.s

LST - hh:mm:ss.s

LHA - shh:mm:ss.ss

RA - hh:mm:ss.ss

DEC - sdd:mm:ss.s

X - x.xx

Dome Azimuth - ddd.d

Focus Position - ffff

If moving send 0x3 1, if not send 0x30

If tracking send 0x31, if not send 0x30

If telescope functional send 0x3 1, if not send 0x30

Telescope guide rate (arcsec/sec) - xxx.xx

Telescope set rate (arcseclsec) - xxx.xx

Telescope find rate (arcseclsec) - xxx.xx

The telescope micro may misbehave on occasion. The first thing to try is a full hardware reset of the micro, accomplished by hitting the big reset pushbutton on the telescope control micro control box located on the left hand side of the observer's console. If this is necessary, please report it in the log or the suggestion box since it indicates a failure that should be attended to.

APPENDIX II- COMMAND SUMMARY

Telescope Control

define epoch yyyy.y

define position name [ [hh:mm[:ss.ss] [s]dd:mm[:ss.s] ]

[[epoch=] yyyy.mm] ["label"]]

de define offset name2 namel [s][mm:]ss[.s] [s][mm:]ss[.s] ["label"]

ds define service name [s]hh:mm [s]dd:mm

tp type position [name]

rm remove id

mt move telescope name

mo move offset [ [s][mm:]ss[.s] [s][mm:]ss[.s] ]

mr move relative [ [s][mm:]ss[.s] [s][mm:]ss[.s] ]

ms move service name

mc, mf, mh, mz move change, flat-field, home and zenith

sf specify files namel name2 name3

st update telescope

ss show status

dr display rates

tt telescope tracking

po pointing off

nt no tracking

wt west telescope

et east telescope

st set time [ddd hh:mm:ss.s]

ab abort

gr guide rate x specify Guide Rate (default = 0.5 arcsec/sec)

gr set rate y specify Set Rate (default = 5 arcsec/sec)

fr find rate z specify Find Rate (default = 60 arcsec/sec)

rs read script n

Macros

dm define macro name

em end macro

xm execute macro filename [n]

wm macroname filename write macro

pause ["Message"]

echo string

Diagnostic and Miscellaneous

dump 'stab' - display the entire symbol table

'flist' - display the file list specified via the command sf

'clist' - display the command list

'status'- display the interpreter status

'epoch' - display the default epoch, as defined by de

'pdump' - dump the parse stack on input

'tdump' - dump the token stream on input

'debug' - set the interpreter mode to debug

'live' - set the interpreter mode to live

'echo' - set the interpreter mode to echo

unset mode

trace filename

endtr

![UNIX command]

bye

quit

help