IMACS Software Documentation
Location of this document:
http://instrumentation.obs.carnegiescience.edu/Software/IMACS/mechanics.html
Important note about the encoders:
Most encoders (except for the principal- and SH-guiders)
are turned off when the stage is not moving because
they emit light during operation. Their values are
stored in temporary files and re-stored just before
a stage is about to move.
This requires extreme care when running IMACS from a
differenct computer than usual (eg. laptop vs. 'llama').
It is absolutely necessary to initialize all devices after you
switch control to a another computer.
Mechanics Control
The IMACS mechanical software suite is divided into three groups of programs:
Low Level Control
This group of programs allows
the most detailed level of control for each components of IMACS. Each
program runs independently of the other and has no "knowledge" of
any interference between mechanical parts of any other component.
They are designed for testing and determination of parameters (eg. motor
speed, acceleration, filter- or mask-positions) to be stored in files and
used by the mid- and high-level GUIs.
- cgtest (center-field guider)
- dctest
('Physik Instrumente' DC-motor controller: L05 control )
- dftest (detector focus)
- dstest (disperser server)
- fstest (filter server)
- gitest (GISMO)
- grtest (grating tilt)
- hatest (hatch control)
- hhtest (Heidenhain sensor)
- hptest (HP data acq. unit: read sensors)
- kytest (Keithley power supply -- not available)
- lptest (calibration lamp control)
- mstest (slit-mask server)
- omtest (Omega controller)
- pgtest (principal guider)
- pztest
('Physik Instrumente' piezo controller: flexure-stage)
- rotest (structure rotator)
- sgtest (Shack-Hartman guider)
- tftest (tunable filter, etalon, MMTF)
- vgtest (vacuum gauge readout)
WARNING: Do not startup any two or more programs
in this group simultaneously. To start a second program please
wait until the first is already running. Running two (or more)
programs at the same time is ok, but all synchronization has
to be done by the user.
rotest
- Syntax: rotest [-h pixels] [-p port]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -p : port number the GUI is reading commands from
Note:
This GUI controls IMACS' internal rotator that is NOT
used at the Baade telescope. It was used for testing purposes
at SBS and is not functional.
It is included here for reference only.
1st group
- File: [menu] :
- Configure : apply configuration file (rotator.ini)
- Help : open web-browser with the IMACS documentation
- Exit : close GUI
- Options : [menu] :
- LogFile : edit name of the logfile in dialog-box
- Unit Pulses : display position/move/speeds in 'pulses'
- Unit Degrees : display position/move/speed in 'degress'
2nd group
- Edit-Windows:
- "Position" : enter current position (rotator has no encoder, this
DEFINES the position!)
- "Move[d]" : next rotator move [degrees]
- "S[d/m]" : startup speed [degrees/minute]
- "M[d/m]" : maximum speed [degrees/minute] (should be below 76)
- "A[d/m/s] : acceleration/decelerations [degrees/minute/second]
- Popup-Menus:
- "HoldC" : holding current
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Move[d]")
- "FOR+" : start forward (positive) motion (amount defined by "Move[d]")
- "STOP" : emergency stop
- "WarnLight" : manual control of green blinking light on top of
electronics rack (Note: removed after installation at LCO)
Warning: When a motion exceeds the limits (currently -120, +340)
of the utility wrap
a dialog box will appear and inform you of a possible catastrophe.
If you are absolutely sure that there is no problem, you may
press [Ignore] and the motion will be executed.
Warning: Do not turn off the holding-current unless
you are sure that the structure is balanced.
When started with the '-p' option the GUI will listen for commands on
the port number given. This allows scripts to move the rotator.
TCP/IP commands:
- version
- returns version string: "version=1.00"
- move 5
- rotate structure +5 degrees; returns (after move) "rot= 5.0"
- To read the current position send move 0.
- speed 12
- set rotator speed [deg/minute]; returns "speed= 12.0"
fstest
- Syntax: fstest [-h pixels] [{1,2}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- 1 : LongCamera filter server (default)
- 2 : ShortCamera filter server
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files
(fs?_select.ini,fs?_insert.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
"Options-LogFile" : edit name of the logfile in dialog-box
2nd group
- Edit-Windows:
- "Encoder" : change current encoder value
- "Pulses" : next tray move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- "Brake" : brake manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "HOME" : start home-search routine (initializes encoder)
- "Status" : read encoder and limit/position sensors
3rd group
- Popup-Menus:
- "Filter" : insert/retract filter mechanism
- LEDs:
- Retract: large (left) and small (right) air-cylinder sensor
- Extend: large (left) and small (right) air-cylinder sensor
Note: The filter-positions (encoder values) are stored in
$IMACSINI/fs1_epos.ini and
$IMACSINI/fs2_epos.ini
mstest
- Syntax: mstest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files
(mask_select.ini,mask_insert.ini,mask_latch.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group
- Edit-Windows:
- "Encoder" : change current encoder value
- "Pulses" : next tray move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- "Brake" : brake manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "HOME" : start home-search routine (initializes encoder)
- "Status" : read encoder and limit/position sensors
3rd group
- Popup-Menus:
- "Latched" : latched (yes) or un-latched (no) the mask in the tray
- "Mask" : push mask into (in) or out of beam (out)
- "Clamped" : clamp (yes) or un-clamp (no) mask in focus position
4th group
- LEDs:
- "PSensor" : 8 position sensors 'in-tray', 1 sensor 'in-beam'
Note: The mask-positions (encoder values) are stored in
$IMACSINI/mask_epos.ini.
Here are the values as of May/2004:
slot1=+150250
slot2=+100200
slot3=+50000
slot4=+300
slot5=-50500
slot6=-99750
slot7=-124500
slot8=-149750
dstest
- Syntax: dstest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files
(dsw_select.ini,dsc_insert.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group
- Edit-Windows:
- "Encoder" : change current encoder value
- "Pulses" : next wheel move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- "Brake" : brake manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "HOME" : start home-search routine (initializes encoder)
- "Status" : read encoder and limit/position sensors
- LEDs:
- "InWheel" : sensor on each wheel position (#1..#6)
3rd group
- Popup-Menus:
- "Wheel-Brake" : open/close disperser wheel "bicycle" brake.
4th group
- Popup-Menus:
- "Clamp" : pulls mechanism (grism,grating,mirror) off the wheel onto
the 'matrix' ring.
Note: The disperser-positions (encoder values) are stored in
$IMACSINI/dsw_epos.ini.
Here are the values as of Feb/4/2004:
slot1=+77945 ; grating-A (checked Apr/22)
slot2=+63575 ; mirror (adjusted Feb/04/04)
slot3=+49230 ; grating-B (adjusted Feb/04/04)
slot4=+34885 ; grism-1 (adjusted Feb/04/04)
slot5=+20535 ; grating-C (adjusted Feb/04/04)
slot6=-1625 ; grism-2 (adjusted Feb/04/04)
slot7=+9390 ; open
grtest
- Syntax: grtest [-h pixels] [{A,B,C}] [{1,2,3,4}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- {A,B,C} : grating control channel ID (default=A)
- {1,2,3,4} : grating mechanism ID (default=1)
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files (gr?_select.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group
- Edit-Windows:
- "Encoder" : change current encoder value
- "Pulses" : next grating-tilt move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "HOME" : start home-search routine (initializes encoder)
- "Status" : read encoder and position/limit sensors
dftest
- Syntax: dftest [-h pixels] [-d {2,3}] [{1,2}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -d : Mosaic2 or Mosaic3 dewar
- 1 : f/4 (LongCamera) detector focus (default)
- 2 : f/2 (ShortCamera) detector focus
The detector focus mechanisms for the Mosaic/2 and Mosaic/3 dewars
have an absolute enocder (LVDT).
They do not use the incremental encoder of the
motor. Therefore the 'Encoder' edit window and the 'I+' and
'I-' buttons (search for index pulse) are disabled.
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files
(df1_select.ini,df2_select.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group
- Edit-Windows:
- "Encoder" : change current encoder value
- "Pulses" : next focus motor move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "I-" : search for index pulse (negative direction)
- "I+" : search for index pulse (positive direction)
- "Status" : read encoder and limit sensors
pgtest
- Syntax: pgtest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files
(pgt_select.ini,pgf_insert.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group (theta motion)
- Edit-Windows:
- "Encoder" : change current encoder value
- "Pulses" : next theta move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- "Brake" : brake manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "HOME" : start home-search routine (initializes encoder)
- "Status" : read encoder and limit/position sensors
3rd group
- Popup-Menus:
- "Filter" : insert/retract filter
sgtest
- Syntax: sgtest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files
(sgt_select.ini,sgr_select.ini,sgf_insert.ini,sgo_insert.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group (theta motion)
- Edit-Windows:
- "Encoder" : change current encoder value
- "Pulses" : next theta move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- "Brake" : brake manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "HOME" : start home-search routine (initializes encoder)
- "Status" : read encoder and limit/position sensors
3rd group (radial motion)
- see theta motion above
4th group
- Popup-Menus:
- "Lens" : insert/retract SH-lens barrel
- "Filter" : insert/retract filter
cgtest
- Syntax: cgtest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
1st group
- Drop-Down Menus:
- "File-Configure" : apply configuration files
(cgp_insert.ini,cgf_insert.ini,cgo_insert.ini)
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group (probe insert/retract)
- Edit-Windows:
- "Counter" : change current counter value (has no encoder)
- "Pulses" : next probe move [pulses]
- "S[hz]" : startup speed [pulses/second]
- "M[hz]" : maximum speed [pulses/second]
- "A[hz/s] : acceleration/decelerations [pulses/second/second]
- Popup-Menus:
- "HoldC" : holding current manual control
- "Brake" : brake manual control
- Buttons:
- "REV-" : start reverse (negative) motion (amount defined by "Pulses")
- "FOR+" : start forward (positive) motion (amount defined by "Pulses")
- "STOP" : emergency stop
- "HOME" : start home-search routine (resets counter)
- "Status" : read encoder and limit/position sensors
3rd group
- Popup-Menus:
- "Lens" : insert/retract SH-lens barrel
- "Filter" : insert/retract filter
Note:
The Home-Search function utilizes the reverse limit switch
as the HOME position.
pztest
- Syntax: pztest [-h pixels] [-l {ser,tcp}] [{1,2}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -l ser : use local serial ("com") port
- -l tcp : use remote TCP/IP (Lantronix) terminal server (default)
- 1 : f/4 (LongCamera) position.
Note: uses E515-controller protocol
- 2 : f/2 (ShortCamera) position.
Note: uses E516-controller protocol
1st group
- Drop-Down Menus:
- "File-Configure" : configure controller
- "File-Status" : read positions and voltages
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group
- Edit-Windows:
- "Voltage" : set voltage applied to piezo (servo-off mode)
- "Position" : set position of piezo (servo-on mode)
- Popup-Menus:
- "Servo" : turn on/off servo-loop
Note: Unlike most other GUIs in this group a change in the
"Position" or "Voltage" edit windows will be applied
immediately and causes the piezo to move to a new position.
dctest
Note: L05 disabled as of 2008-01-15 (release 1.14)
- Syntax: dctest [-h pixels] [-l {ser,tcp}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -l ser : use local serial ("com") port
- -l tcp : use remote TCP/IP (Lantronix) terminal server (default)
1st group
- Drop-Down Menus:
- "File-Configure" : configure controller and reset encoder
- "File-Status" : read position of all 3 motors
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
2nd group
- EditWindows, Buttons and LEDs:
- "Position" Edit: displays current position and executes moves
to new position (unit=micro-meter)
- "1" : LED: negative limit-switch active (red)
- "2" : LED: positive limit-switch active (red)
- "curVel" : current velocity (output window only)
- "3" : LED: motor moving (green)
- "H-" : Button: search for index pulse (edge of reference marker)
in neg. direction
- "H+" : Button: search for index pulse (edge of reference marker)
in pos. direction
- "4" : LED: reference sensor active (green)
- "5" : LED: index pulse found (green)
- "maxVel" : Edit: max. velocity of motor motion (um/s)
- "maxAcc" : Edit: max. acceleration (um/s^2)
- "maxFEr" : Edit: max. following error (um)
Notes:
- Unlike other GUIs in this group a change in the "Position"
edit windows will be applied immediately
and cause the motors to move to a new position.
- The flexure-neutral position is at (1800,1800,1800).
- Legal values are between '-200' and '+3200'.
- Important: Never press 'H-' unless you are sure to be
above the reference marker.
Home-search procedure:
For each motor follow these steps: (you may run motors simultaneously)
1. press H+
This will cause the motor to move "upward" (extend, away from detector)
until one of three events:
- an 'index-pulse' is found (LED#5=green), you are NOT done, since
we don't know which edge was found. Goto step-1.
- the upper limit was reached (LED#2=red). Good! Now we know where
we are. Goto step-2.
- an error occurred, please check the 'xterm' output for
the error-message. Try again; or power-cycle the controller
and re-start the GUI; or call your local hardware-guru.
2. press H-
This will cause the motor to move "downward" (retract, toward detector)
until one of two events:
- If the move ends with green LED#4 (reference marker) and
LED#5 (index-pulse) the motor is at its proper HOME' position.
You are done.
- Anything else should be considered suspicious. Repeat the procedure or
power-cycle the controller or contact your local hardware-guru.
Troubleshooting:
When a motor becomes stuck, ie. does not respond to motions commanded
by 'dctest' nor moves when the 'H+' (home) button is pressed,
it appears that disconnecting and running the motors separately may
help:
- Go to the IMACS electronics racks on the West-platform and open the
right-hand door.
Unplug motors #2 and #3 from the front of the L05-controller.
- Go back to the control room and follow the homing-instructions
above using only motor-#1.
- Go to the IMACS electronics racks, unplug motor-#1 and plug-in
motor-#2. Home motor-#2 following the procedure above.
- Repeat the above for motor-#3.
- Once all three motors are homed separately they also should work
together again. Plug in all 3 motors and try initializing the L05
system from the
MechGUI.
hptest
- Syntax: hptest [-h pixels] [-p port] [{1,..,38}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -p : listen on TCP/IP port
- {1,..,38} : number of channels (1-38)
1-channel version:
click on image to see the 38-channel version
1st group
- Drop-Down Menus:
- "File-Initiailize" : initialize HP data acquisition unit
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-SmpTime" : change time between (automatic) updates
- "Options-LogFile" : edit name of the logfile
2nd group
- EditWindows:
- "#" : edit channel number
- Popup Menus:
- "#" : assign data type
{Temperature,Voltage,Current,Pressure}
This GUI reads the sensor values from the HP-Data-Acqusition-Unit.
It automatically updates the current channel every 5 seconds and
increments the current channel by one.
The readings of each channel are written to the file
/tmp/hptest%02d.dat.
When started with the '-p' option the GUI will listen for commands on
the port number given. This allows scripts to read the sensors.
TCP/IP Commands:
- version
- returns version string: "version=0.92"
- read 3
- returns reading of channel 3, eg. "#3= 15.1"
This is the sensor list as of May/2004:
101-110 structure temperature #1-#10
121,122 coolant pressure in/out
201,202 structure temperature #11,#12
203,204 collimator temperaure #1,#2
205,206 f/4 (long) camera temperature #1,#2
207,208 f/2 (short) camera temperature #1,#2
209,210 coolant temperature in/out
221 air pressure
301 saddle-back temperature
302 electronics rack temperature
303 motor-controller 5 volt
304 motor-controller 24 volt
305 f/4 (long) science array 48 volt
306 f/4 (long) flexure array 48 volt
307 f/2 (short) science array 48 volt
308 f/2 (short) flexure array 48 volt
309 guider camera-1 48 volt
310 guider camera-2 48 volt
313 guider camera-3 48 volt
314 RS485-converter 24 volt
315 RS485-converter 12 volt
316 DOS-PC 5 volt
317 AC 120 volt
318 L05-controller 12 volt
hatest
- Syntax: hatest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
1st group
- Drop-Down Menu:
- "File-Configure" : configure digital I/O port
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
2nd group
- Buttons:
- "Close" : move hatch until closed
- "Stop" : stop hatch movement
- "Open" : move hatch until opened
Note:
There is no feed-back (ie. limit-sensors) on the hatch. There are
internal limit-switches inside the enclosed hatch mechanism, but they
just stop the motion of the hatch curtain.
lptest
- Syntax: lptest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
1st group
- Drop-Down Menu:
- "File-Configure" : configure digital I/O port
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
2nd group
- Buttons:
- "Lamp" : toggle lamp on/off
- Popup-Menus:
- "Cont" : set continuum lamp level
Note:
The continuum lamp is disconnected.
vgtest
- Syntax: vgtest [-h pixels] [-p port] [{1,2}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -p : TCP/IP port number
- 1 : LongCamera vacuum gauge (default)
- 2 : ShortCamera vacuum gauge
1st group
- Drop-Down Menus:
- "File-Reset" : re-initialize vacuum gauge
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-SmpTime" : change time between (automatic) updates
- "Options-LogFile" : edit name of the logfile
2nd group
- Output Windows:
- "ubar" : current pressure inside the dewar
This GUI reads the pressure measurements by the vacuum gauge connected
to the IMACS dewar .
It automatically updates the reading every 5 seconds.
The pressure readings are written to the file
/tmp/vgtest%d.dat.
When started with the '-p' option the GUI will listen for commands on
the port number given. This allows scripts to read the the pressure.
TCP/IP commands:
- version
- returns version string: "version=1.00"
- read
- returns a string like "pressure[1]= 2.23" (unit=micro-bar)
- init
- initializes the vacuum gauge and returns a string like "init= 0"
hhtest
- Syntax: hhtest [-h pixels] [-p port]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -p : port number the GUI is reading commands from.
1st group
- Drop-Down Menus:
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-SmpTime" : change time between (automatic) updates
- "Options-LogFile" : edit name of the logfile
2nd group
- Output Windows:
- "X [mm]" : current position of probe 'X'
- "Y [mm]" : current position of probe 'Y'
- Buttons:
- "Sample": read position of this probe.
This GUI reads the positions of the Heidenhain probes. It
assumes that the sensor electronics is connect to the serial port
(/dev/ttya for Solaris, /dev/ttyS0 for Linux).
It automatically updates the positions every 5 seconds.
When started with the '-p' option the GUI will listen for commands on
the port number given. This allows scripts to read the
Heidenhein sensor positions(s).
TCP/IP commands:
- version
- returns version string: "version=1.00"
- read
- returns a string like "X= 123 Y= 0"
- the X/Y positions are in micro-meters [um]
tftest
- Syntax: tftest [-h pixels] [-p port]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -p : port number the GUI is reading commands from.
1st group
- Drop-Down Menus:
- "File-Configure" : re-send current settings to the CS100 controller
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile
2nd group
- Input Windows:
- "Spacing (Z)" : set spacing
- "Parallelism (X)" : set X-parallelism
- "Parallelism (Y)" : set Y-parallelism
3rd group
- Popup-Menu:
- "Mode" : switch between Operate and Balance
- Buttons:
- "R.Time" : set the response time (sum of individual values)
in milli-seconds.
- "Status" : retrieve status information from the CS100 controller
(OK/out-of-range, operate/balance)
When started with the '-p' option the GUI will listen for commands on
the port number given.
TCP/IP commands:
- version
- returns version string: "version=1.00"
- init
- configure the CS-100 controller to default values: "init= 0"
- status
- returns status string: "mode= %d, status= %d"
- mode=0: balance, mode=1: operate
- status=0: ok, status=1: out-of-range
- move #
- move to z-spacing '#'; returns z-spacing: "z= %d"
gitest
- Syntax: gitest [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -l none : ignore LinMot controller (but allow control of the brake)
1st group
- Drop-Down Menus:
- "File-Configure" : configure Linmot controller and Acromag unit
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-LogFile" : edit name of the logfile in dialog-box
- "Options-readAcro" : read status from Acromag (12-bit I/O)
- "Options-writeAcro" : set output (eg. 1on, 2off)
- "Options-cmdLinmot" : send command to Linmot controller
- "Options-testLinot" : run repeatability test
- "Options-MaxCurrent" : set maximal current for Linmot controller
2nd group
- Edit-Windows:
- "Position" : move linear motor to position [mm]
- "V[mm/s]" : speed of linear motor
- "AC[A]" : actual current
- "FF[A]" : friction control parameter
- "P[A/mm]" : proportional control parameter
- "I[A*mm]" : integral control parameter
- "D[A/(mm/2)]" : differential control parameter
- Buttons:
- "HOME" : start home-search routine (initializes encoder)
- Popup-Menus:
- "HoldC" : holding current {on,off}
- WARNING:
If you turn-off the holding current to move the
slide by hand, be carefull when you turn-on the holding
current, because the slide will "snap" back to its
original position.
3rd group
- Popup-Menus:
- "Brake" : apply brake {open,eng'd}
omtest
- Syntax: omtest [-h pixels] [{1,2}]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- 1 : f/4 controller
- 2 : f/2 controller
1st group
- Drop-Down Menus:
- "File-Configure" : configure Omega controller
- "File-Help" : open web-browser with the IMACS documentation
- "File-Exit" : close GUI
- "Options-SmpTime" : change time between (automatic) updates
- "Options-LogFile" : edit name of the logfile
2nd group
- Output-Windows:
- "PV" : 'process value' (digital units from -999 to +9999)
- "Volt" : converted 'process value' to volts
- "mBar" : pressure from selected gauge
- Popup-Menus:
- "Gauge" : { IonPump , Vacuum } interpret the process value
as a pressure reading from the selected gauge
3rd group
- Edit-Windows:
- "SP" : 'setpoint' (digital units from -999 to +9999)
- "SV" : 'setpoint' (volts 0.0 to 10.0)
- Popup-Menus:
- Method: { On/Off, Manual } control method (see Omega manual c.10)
- Mode: { Heat, Cool, H+C, C+H } control mode (see Omega manual c.10)
- Relais1: { Open, Closed } manual setting for relais-1
- Relais2: { Open, Closed } manual setting for relais-2
4th group
- Edit-Windows:
- "AlarmLo" : alarm-low setting (digital units from -999 to +9999)
- "AlarmHi" : alarm-low setting (digital units from -999 to +9999)
- Popup-Menus:
- "AlarmType" : see Omega manual chapter 8
Mid Level Control
EngGUI
- Syntax: enggui [-h pixels] [-k] [-o]
- -h : Font height in pixels (eg. '-h 18' uses a height of 18)
- -k : Keep serial line open. This speeds up the communications
between enggui and the hardware,
but it blocks access to the serial port for other GUIs.
- -o : Startup in passive mode (just as a status display).
This is the default behavior when mechgui is
already running.
The 'Online Components' window allows you to select those parts of IMACS
which are currently up and ready to run.
All components that are 'offline' will be simulated, ie. you can command
them wherever you like but no hardware will actually move.
1st group
- File : [menu] :
- Configure : re-read and apply all .ini files
- Initialize : opens dialog-box to select components for
initialization
- Help : open web-browser with the IMACS documentation
- Exit : close GUI
- Shutdown : shutdown entire IMACS software
(EngGUI,MechGUI,CamGUI,QlTool,Xdbserver)
- Options : [menu] :
- LogFile : edit name of the logfile in a dialog-box
- Sound : define sound effects (not yet implemented)
- Rotator : IMACS' internal rotator. Not used at the
Baade telescope (see rotest)
- Emergency STOP [button] :
- immediately stop all stepper motors.
Warning: Air-cylinders cannot be stopped during motion.
2nd group
- Hatch : [popup] : {open,closed} open/close hatch.
Note:
There are no sensors on the hatch. The GUI shows the last selection.
- Lamp:
- ?: [button] : sample status of calibration lamps
- Ne,NeHg,Ar,Kr,Xe: [button] : turn on/off calibration lamps
- Cont: [menu]: set level of continous calibration lamp
{Off,Lev1,..Lev7}
- Center-Field Guider
- ? : [button] : sample status CF-guider
- CF-Flt : [popup] : insert/retract CF-guider filter
- CF-Opt : [popup] : insert/retract CF-guider SH-lens
- CF-Prb : [popup] : insert/retract CF-guider probe
- Principal Guider
- ? : [button] : read status of PR-guider
- PR-Flt : [popup] : insert/retract PR-guider filter
- PR-Tht : [edit] : PR-guider theta position
- PR-T-C : [popup] : PR-guider theta control
Shack-Hartman Guider
- ? : [button] : read status of SH-guider
- SH-Flt : [popup] : insert/retract SH-guider filter
- SH-Opt : [popup] : insert/retract SH-guider SH-lens
- SH-Tht : [edit] : SH-guider theta position
- SH-T-C : [popup] : SH-guider theta control
- SH-Rad : [edit] : SH-guider radial position
- Slit-Mask Server
- ? : [button] : read status of mask server
- MskSel : [edit] : mask server tray position.
Note:
A green center LED indicates a valid mask-insert position
- MskLtc : [popup] : latch mask in tray
- MskIns : [popup] : insert/retract mask
- MiT : [LED] : mask in tray sensor
- MiF : [LED] : mask in focus sensor
- GISMO
- GISMO : [edit] : linear motor position {0..58}.
Note:
A yellow LED indicates that the LinMot controller is un-initialized
- Clamp : [menu] : GISMO-mask clamp {open,engd}
- MskClp : [menu] : mask-clamp {open,clamped}
- Disperser Server
- ? : [button] : read status of disperser server
- DspSel : [edit] : disperser wheel position.
Note:
A green center LED indicates a valid disperser-clamp position
- DspBrk : [popup] : disperser wheel brake
- DspClp : [popup] : disperser clamp
- DspInW : [LED] : disperser in wheel sensor
- Gratings Tilt
- ? : [button] : read status of grating tilt (position 'A')
- GrA : [edit] : grating tilt value
- ? : [button] : read status of grating tilt (position 'B')
- GrB : [edit] : grating tilt value
- ? : [button] : read status of grating tilt (position 'C')
- GrC : [edit] : grating tilt value
- MMTF (Etalon)
- ? : [button] : read status of the CS100 controller
- X : [edit] : set X-parallelism value
- Y : [edit] : set Y-parallelism value
- Z : [edit] : set Z-spacing value
- Filter-Server-1 (LongCamera,f/4 Filter)
- ? : [button] : read status of filter server-1
- Fil1Sel : [edit] : filter tray position.
Note:
A green center LED indicates a valid filter-insert position
- Fil1Ins : [popup] : filter insert/retract mechanism
- Filter-Server-2 (ShortCamera,f/2 Filter)
- ? : [button] : read status of filter server-2
- Fil2Sel : [edit] : filter tray position.
Note:
A green center LED indicates a valid filter-insert position
- Fil2Ins : [popup] : filter insert/retract mechanism
- L05-motors (LongCamera focus/scale)
- ? : [button] : read status of L05-motors
- L05-M1 : [edit] : L05-lens motor-1 position (-200..+3200 [um])
- L05-M2 : [edit] : L05-lens motor-2 position (-200..+3200 [um])
- L05-M3 : [edit] : L05-lens motor-3 position (-200..+3200 [um])
- L05-A : [edit] : L05-lens tip (-15..+15 [pixels])
- L05-B : [edit] : L05-lens tilt (-15..+15 [pixels])
- L05-Z : [edit] : L05-lens focus (-1800..+1200 [um])
Note: 'M1', 'M2', 'M3' affect 'A','B','Z' and vice versa.
Note: L05 disabled as of 2008-01-15 (release 1.14)
- Flexure stage
- ? : [button] : read status of flexure stage (piezo)
- LFlx-A : [edit] : Mosaic/1 (Long) piezo-A position (0..200 [um])
- LFlx-B : [edit] : Mosaic/1 (Long) piezo-B position (0..200 [um])
- SFlx-A : [edit] : Mosaic/2 (Short) piezo-A position (0..200 [um])
- SFlx-B : [edit] : Mosaic/2 (Short) piezo-B position (0..200 [um])
- Detector focus
- ? : [button] : read status of detector focus drive
- LDtFoc : [edit] : f/4 (Long) detector focus
(0..125000 [EU], 50 EU/um)
- SDtFoc : [edit] : f/2 (Short) detector focus
(-20000..20000 [EU], 10 EU/um)
At this level all edit windows refer to encoder values. When you start
editing a window its background will turn red until you finish your input
by pressing the [Return] key. The edit window will change its color
to yellow, indicating an ongoing motion. After the motion has finished
the edit window will again have a white background and show the current
encoder readout.
Popup menus behave in a similar way. When you select a new value the
window will turn yellow while the motion is in progress, then turn
white again and indicate the current status. A '?' indicates an unknown
position, usually caused by a position sensor not beeing active.
(eg. filter-insert mechanism not fully retracted).
To update the status
(encoders, position-sensors, etc) please press the button labled '?'
on the left of the appropriate line.
Warning: Any encoder readout of '0' is suspicious because it
indicates that the respective component may not have been initialized.
Unless you are absolutely sure that the reading is real
please use the menu entry File->Initialize.
3rd group
- Temperature Sensors:
- [output] : LCamT1,LCamT2: Long(f/4) camera (*)
- [output] : SCamT1,SCamT2: Short(f/2) camera (*)
- [output] : CollT1,CollT2: collimator (*)
- [output] : StrT01...StrT12: structure (*)
- [output] : SadBkT: saddle back electronics
- [output] : ERackT: electronics rack
- [output] : CoolTi,CoolTo: collant-in and coolant-out
- [output] : AveInT: average temperature of (*)
- Pressure Sensors:
- [output] : ClInP,ClOutP: collant in/out pressure (40/20 psi)
- [output] : AirP: pressureized air (80-100 psi)
- Voltage Sensors
- [output] : GCamV1: principal guider power supply (48 V)
- [output] : GCamV2: Shack-Hartman guider power supply (48 V)
- [output] : GCamV3: center-field guider power supply (48 V)
- [output] : MC-5V: motor controller voltage (5V logic)
- [output] : MC-24V: motor controller voltage (24V logic)
- [output] : RS-24V: serial converter voltage (24V)
- [output] : RS-12V: serial converter voltage (12V)
- [output] : MC-PC: motor contoller DOS-PC (5V)
- [output] : L5-12V: L05 controller (12 V)
- [output] : LCamV: Long(f/4) camera science array (48 V)
- [output] : LFlxV: Long(f/4) camera wing chips (48 V)
- [output] : SCamV: Short(f/2) camera science array (48 V)
- [output] : SFlxV: Short(f/2) camera wing chips (48 V)
TCP/IP Interface
enggui listens to port _____ (BasePort+11). This allows scripts
to send commands to it. Here is a simple example of a csh-script
that continously switches between two filters on filter-server-1.
Note:
All TCP/IP commands to enggui are 'blocking', ie. receiving
the return-string indicates that the commanded motion has finished.
#!/bin/csh
#
set e_port = _____ # port
set host = `hostname` # localhost
set command = ( ./tcpsend $host $e_port )
set fpos = ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 )
set fpos[3] = +62600 # encoder value for slot-3
set fpos[12] = -117590 # encoder value for slot-12
## initialize filter
$command if1 # not necessary if you done it already
loop:
## move filter
$command fi 1 out
$command fs 1 $fpos[3]
$command fi 1 in
sleep 2
## move filter
$command fi 1 out
$command fs 1 $fpos[12]
$command fi 1 in
sleep 2
goto loop
exit
Encoder values for the 15 filter positions can be found here
$IMACSINI/fs1_epos.ini and
$IMACSINI/fs2_epos.ini
To execute a script type at the prompt:
birk@llama> csh name.csh
Command List
version
- return version string: "version=1.01"
ht [{closed,open}]
- open/close hatch; return: "ht= open"
cl {1,2,3,4,5,6} [{0..7}]
- turn on/off calibration lamps; return "cl3= 1"
cgp [{out,slitview,center}]
- move CF-guider probe; return: "cgp= out"
cgf [{out,in}]
- move CF-guider filter 'in' or 'out'; return: "cgf= out"
cgo [{image,shl}]
- insert CF-guider Shack-Hartman lens or imaging lens; return: "cgo= SHL"
pgt [value]
- move PR-guider theta to encoder position 'value'; return: "pgt= -26070"
ptc [{off,on}]
- turn PR-guider theta control 'on' or 'off'; return: "ptc= off"
pgf [{out,in}]
- move PR-guider filter 'in' or 'out'; return: "pgf= in"
sgt [value]
- move SH-guider theta to encoder position 'value'; return: "sgt= 12399"
stc [{off,on}]
- turn SH-guider theta control 'on' or 'off'; return: "stc= off"
sgr [value]
- move SH-guider radius to encoder position 'value'; return: "sgr= 3477"
sgf [{out,in}]
- move SH-guider filter 'in' or 'out'; return: "sgf= out"
sgo [{image,shl}]
- insert SH-guider Shack-Hartman lens or imaging lens; return: "sgo= SHL"
ms [value]
- move mask-select (tray) to encoder position 'value'; return: "ms= 3882"
ml [{open,locked}]
- lock/unlock mask; return: "ml= locked"
mi [{out,in}]
- move mask 'in' (focus-position) or 'out' (tray); return: "mi= in"
ds [value]
- move disperser-wheel to encoder position 'value': return: "ds= 36622"
db [{open,engd}]
- engage/open dispserser brake; return: "db= open"
dc [{open,locked}]
- (un-) clamp dispserser (grism,grating or mirror); return: "dc= locked"
grt {1,2,3} [value]
- move grating to encoder position 'value'; return: "grt1= 123559"
tf [value]
- move etalon (MMTF) to Z-position; return: "tf= 1234"
fs {1,2} [value]
- move filter-select (tray) to encoder position 'value'; return: "fs1= 42342"
fi {1,2} [{out,in}]
- move filter-insert 'in' or 'out'; return: "fi1= in"
cf {1,2,3} [value]
- move L05-focus (LongCamera) motor to encoder position 'value';
return: "cf2= 1200"
df [value]
- move detector focus to encoder position 'value'; return: "df= 12000"
flx [value]
- move piezo-1 (flexure-control) to position 'value'; return: "flx= 12.4"
fly [value]
- move piezo-2 (flexure-control) to position 'value'; return: "fly= 130.5"
icg
- initialize CF-guider; return: "done"
ipg
- initialize PR-guider; return: "done"
isg
- initialize SH-guider; return: "done"
ima
- initialize mask server; return: "done"
idi
- initialize disperser-wheel; return: "done"
if1
- initialize filter-server-1 (long=f/4); return: "done"
if2
- initialize filter-server-2 (short=f/2); return: "done"
icf
- initialize L05-focus (LongCamera) motors; return: "done"
idf
- initialize detector focus; return: "done"
High (User) Level Control
MechGUI
Main Window -
HardHat Window
'MechGUI' is the main control center for running IMACS hardware (filters,
masks, etc). It is necessary to run any mechanical component of IMACS
(including the guiders). It is also needed to run 'GraphGUI' (graphical
status display).
The Instrument Motion Control software runs on a (Linux or MacOS-X)
computer in the control room.
IMACS uses a (16-channel) TCP/IP to serial converter to communicate
with a (DOS-) PC that holds a number of PCI-cards. All stepper-motors,
encoders,
air cylinders, limit-switches and fiducials are controlled
via this PC. All higher level commanding and safety checking is
done by this GUI.
The Motion Conrol Software allows the user to setup the
instrument in parallel but will make safety checks to
avoid collisions where they may be possible.
There are several other devices connected to the
TCP/IP serial converter and therefore are directly controlled
by the Linux computer:
- Piezo Controller (flexure control)
- DC-motor controller (L05-focus/scale control)
- HP Data Acquisition Unit (temperature-, pressure-, voltage-sensors)
- CS100 Etalon controller (MMTF tunable filter)
- Granville-Phillips Vacuum Sensors (f/2 and f/4)
- GISMO (linear motor)
Note: As of version-2.0 (March/2008)
there are two ETS-16 TCP/IP-to-serial
converters.
- Syntax: mechgui [-h pixels]
- -h : font height in pixels (eg. '-h 18' uses a height of 18)
- -c : bring up dialog-box at startup that allow to turn-on/off
individual components of IMACS.
- -e : engineering mode:
- turn-off all auto-motions (eg. don't remove mask when inserting
CF-guider; safety check stays active, of course)
- both (f/2 and f/4) devices (eg. filter) are accessible
- at startup the user may select offline devices
(ie. running in simulator mode)
- Configure and Self-Test are available from the
File menu.
- certain warnings are turned off
- control loops are not started automatically
- -k : do not keep serial port to the motor-controller PC open
(ie. allow other programs to access the port).
This slows down operations.
- File : [menu] :
- Load-Setup: load setup-file (n/a)
- Save-Setup: save setup-file (n/a)
- Help: start browser with IMACS software manual
- Configure: configure electronics (engineering-mode only)
- Initialize:
initialize
(HOME,etc) selected component(s)
- Self-Test: self-test selected component (engineering-mode only)
- Exit: close this GUI
- Shutdown: close all IMACS-GUIs
- Modules : [menu] :
- CamGUI: startup the data acquisition
window
- TeleGUI: startup the telescope controls
- GraphGUI: startup the graphical IMACS status
window
- Hardhat: open engineering data
window
- Options : [menu] :
- Logfile: show logfile path
- Sound: set sounds (n/a)
- Rotator: IMACS (internal) rotator (n/a, engineering only)
- Hardhat: open engineering data
window
- FocusOffset:
Add an offset to the current focus
control target. This offset will be automatically reset
to '0' when the effective filter changes.
- Reload: reloads the masks, filters and
dispersers after the setuptool has
been run and removes the necessity to restart the entire
IMACS software suite after a setup change.
(v3.5)
- Hatch:
- [menu] : {open,closed} : open/close hatch.
Note:
There are no sensors on the hatch. The GUI shows the last selection.
- Cal-Lamp
- [button]: [Ne] [NeHg] [Ar] [Kr] [Xe]: turn on/off calibration lamps
- [menu]: set level of continous calibration lamp {Off,L1,..L7}
- CF-Guider
- [menu] : CF-guider {in,out}: move guider probe.
The Slit-Mask should be in 'CF-Guider' position.
- [menu] : Optics {Image,SHL}: select between imaging and Shack-Hartman lens.
- [menu] : Filter {in,out}: move filter.
- Slit-Mask:
- [menu] :
- f/2-Imaging: no mask
- Mask-1..6: slit-masks for multi-object spectroscopy
- CF-Guider: special mask for single-object spectroscopy
- f/4-Imaging: special mask for f/4 imaging (limited field-of-view)
- [button] : MaskLoad:
moves mask-tray mechanism to the loading position.
Disables any further mask motions until this button
is pressed again.
- [menu] : GISMO :
selects sub-mask position {1..5}
- Disperser
- [menu] :
- Grating: spectroscopy with f/2 camera
- Grism: spectroscopy with f/4 camera
- f/2-Imaging: imaging with f/2 camera (open hole)
- f/4-Imaging: imaging with f/4 camera (mirror)
- [edit] : Tilt {22..48}: grating tilt [degrees].
Available only if a grating is in the disperser position.
- [edit] : Etalon {0..4095} etalon spacing.
Available only if the MMTF is in the disperser postition.
- Filter
- [menu] :
- Filter1
- Filter2
- Filter..
- Filter15
- [output] : Foff: the current focus offset
- Focus
- [edit] : f/4 {6900..9300}: set detector focus for f/4 camera
- [edit] : f/2 {6900..9300}: set detector focus for f/2 camera
- [menu] : Control {off,on}: automatic focus control
Initialize Components Window:
Select the component(s) you want to initialize (eg. 'Disperser-Wheel')
and then press the OK button.
The 'Hardhat' window displays the status of components that should
normally not changed by the user. It is used for engineering and
in case of abnormal system behavior.
Some controls are disabled unless the password is given.
PR- and SH-Guiders -
L05 -
Flexure/Piezo Control -
Disperser Service Positions -
MMTF/CS100 -
Sensors
- PRG: Principal Guider
- [edit] : Theta {-17..+22}: move probe in theta direction
- [menu] : Control {On,Off} : guider theta-control
- [menu] : Filt {out,int}: insert filter
- SHG: Shack-Hartman Guider
- [edit] : Radius {-16..+5}: move probe in radial direction
- [edit] : Theta {-21..+17}: move probe in theta direction
- [menu] : Control {On,Off} : guider theta-control
- [menu] : Optics {Image,SHL}: change optics barrel
- [menu] : Filt {out,int}: insert filter
- L05: Long Camera focus/scale adjustment
- [edit] : A {-8..+7}: tip L05 perpendicular to row/column
- [edit] : B {-9..+6}: tilt L05 perpendicular to row/column
- [edit] : Z {-1600..+1100}: move L05 in Z-direction
Note: L05 disabled as of 2008-01-15, ie. run in simulator mode
(release 1.14)
- Flexure: Flexure (Piezo) control
- [edit] : A4 {0..200}: f/4 piezo channel-A position
- [edit] : B4 {0..200}: f/4 piezo channel-B position
- [edit] : A2 {0..200}: f/2 piezo channel-A position
- [edit] : B2 {0..200}: f/2 piezo channel-B position
- [menu] : Control {off,on}: automatic flexure control (open loop)
- Disperser Service Position: Move the wheel to
a special position to replace a disperser unit.
- [button] : 1-A: position-1 (grating-A/MOE/MMTF)
- [button] : 2-M: position-2 (grism/prism)
- [button] : 3-B: position-3 (grating-B/MOE)
- [button] : 4-G: position-4 (mirror/grism)
- [button] : 5-C: position-5 (grating-C/MOE)
- [button] : 6-G: position-6 (grism/prism)
- CS100: MMTF/Etalon parameters
- [menu] {local,remote}: release/acquire CS-100 control.
- [edit] : X: set X-parallelism
- [edit] : Y: set Y-parallelism
- [edit] : Z: set Z-spacing
- [button] Etalon: : read back Z-spacing from CS100.
- [output] : c,f,q : X coarse, X fine, X quadrature balance
- [output] : c,f,q : Y coarse, Y fine, Y quadrature balance
- [output] : c,f,q : Z coarse, Z fine, Z quadrature balance
Note:
The values for c,f,q are read from the mmtf.ini
file that may be changed by the instrument specialist using the
SetupTool.
After the new 'mmtf.ini' has been written it may be
re-loaded by selecting remote in the CS100 menu
(this works even if the CS100 is already in remote mode).
- Temperature Sensors:
- [output] : LCamT1,LCamT2: Long(f/4) camera (*)
- [output] : SCamT1,SCamT2: Short(f/2) camera (*)
- [output] : CollT1,CollT2: collimator (*)
- [output] : StrT01...StrT12: structure (*)
- [output] : SadBkT: saddle back electronics
- [output] : ERackT: electronics rack
- [output] : CoolTi,CoolTo: collant-in and coolant-out
- [output] : AveInT: average temperature of (*)
- Pressure Sensors:
- [output] : ClInP,ClOutP: collant in/out pressure (40/20 psi)
- [output] : AirP: pressureized air (80-100 psi)
- Voltage Sensors
- [output] : GCamV1: principal guider power supply (48 V)
- [output] : GCamV2: Shack-Hartman guider power supply (48 V)
- [output] : GCamV3: center-field guider power supply (48 V)
- [output] : MC-5V: motor controller voltage (5V logic)
- [output] : MC-24V: motor controller voltage (24V logic)
- [output] : RS-24V: serial converter voltage (24V)
- [output] : RS-12V: serial converter voltage (12V)
- [output] : MC-PC: motor contoller DOS-PC (5V)
- [output] : L5-12V: L05 controller (12 V)
- [output] : LCamV: Long(f/4) camera science array (48 V)
- [output] : LFlxV: Long(f/4) camera wing chips (48 V)
- [output] : SCamV: Short(f/2) camera science array (48 V)
- [output] : SFlxV: Short(f/2) camera wing chips (48 V)
- Close: [button] : close the HardHat window
TCP/IP Interface
port = _____ (BasePort+6)
- version
- return version string: eg. "3.19"
- hatch [{closed,open}] [timeout]
- check status hatch;
return: "open" or "closed"
- move hatch; if 'timeout' is omitted or '0' do not block;
return: "ok" , "open" , "closed" , "moving" or "-E..."
- lamp [{1,2,3,4,5,6}] [{0..7}] [timeout]
- get status of calibration lamp;
return: "lamp1= 1" or "lamp7= 5" or "100005"
- set calibration lamp level; lamps 1-5: '0' or '1',
lamp-6: '0'..'7';
return: "ok" or "000005"
- cfguider
- check status of CF-guider;
return: "ok" or "moving" or "not_initialized"
- initialize CF-guider;
return: "ok" or "-E..."
- cgprobe [{out,SlitView,Center}]
- get CF-guider probe; return "out" , "SlitView" or "Center"
- set CF-guider probe; return: "ok" or "moving" or "-E..."
- cgfilter [{in,out}]
- get CF-guider filter; return "in" or "out"
- set CF-guider filter; return: "ok" or "moving" or "-E..."
- cgoptics [{image,shl}]
- get CF-guider optics; return "image" or "shl"
- set CF-guider optics; return: "ok" or "moving" or "-E..."
- prguider
- check status of PR-guider;
return: "ok" or "moving" or "not_initialized"
- initialize PR-guider;
return: "ok" or "-E..."
- pgtheta [theta]
- get PR-guider theta angle [degrees];
return: eg. "12.2" or "moving" or "-E..."
- set PR-guider theta angle; (-16.0 <= theta <= 22.0)
return: "ok" or "moving" or "-E..."
- pgfilter [{in,out}]
- get PR-guider filter; return "in" or "out"
- set PR-guider filter; return: "ok" or "moving" or "-E..."
- shguider
- check status of SH-guider;
return: "ok" or "moving" or "not_initialized"
- initialize SH-guider;
return: "ok" or "-E..."
- sgtheta [theta]
- get SH-guider theta angle [degrees];
return: eg. "5.7" or "moving" or "-E..."
- set SH-guider theta angle; (-17.0 <= theta <= 21.0)
return: "ok" or "moving" or "-E..."
- sgradius [radius]
- get SH-guider radial position [mm];
return: eg. "2.6" or "moving" or "-E..."
- set SH-guider radial position (-15.0 <= radius <= 21.0)
return: "ok" or "moving" or "-E..."
- sgfilter [{in,out}]
- get SH-guider filter; return "in" or "out"
- set SH-guider filter; return: "ok" or "moving" or "-E..."
- sgoptics [{image,shl}]
- get SH-guider optics; return "image" or "shl"
- set SH-guider optics; return: "ok" or "moving" or "-E..."
- mask [name]
- get slit-mask position name; return "None" or "Mask-2"
- insert slit-mask 'name'
(you may use '#5' for position-5, use '#0' for ' none')
- disperser [name]
- get disperser position name
- move/insert disperser 'name'
(you may use '#5' for position-5, '#0' or '#7' for 'open')
- gratingA [angle]
gratingB [angle]
gratingC [angle]
- get grating tilt angle
- move grating to tilt-angle 'angle'
- mmtf [spacing]
etalon [spacing]
- get etalon spacing
- set etalon spacing
- lfocus [#]
- Set or get the f/4 ("long") detector focus.
- Turns off the detector focus control.
-
- sfocus [#]
- Set or get the f/2 ("short") detector focus.
- Turns off the detector focus control.
-
- detfocus #
- Set the detecotor focus of the current camera.
-
- lfilter [name]
- get LongFilter position name
- insert LongFilter 'name' (you may use '#5' for position-5)
- sfilter [name]
- get ShortFilter position name
- insert ShortFilter 'name' (you may use '#5' for position-5)
- status
- return the number of moving devices or "-Eunconfigured" when
querying during startup of the GUI.
- wait [timeout]
- return: "+done" or "+timeout"
- wait for all devices to finish their motion. If a 'timeout' is given
the command blocks for only that many seconds, then returnis with an
error, if not all devices are ready.
GraphGUI
Note: The GraphGUI has been effectively abandoned
due to lack of user interest [CCB, 2012-11-20].
The GraphGUI shows the current status of the IMACS
hardware in form of a diagram.
Below is a snapshot with the following status (f/4 configuration):
- hatch is open; calibration lamps are off
- principal- and SH-guiders are roughly in the middle of their travel;
the center-field guider is retracted
- f/4-Imaging mask (#8) is inserted
- disperser-wheel has the 'mirror' (f/4-Imaging) in position
- Spectroscopic filter is inserted (f/4 camera)
- f/4 focus is at 8615.0
Below is another example (f/2 configuration):
- hatch is open; calibration lamps are off
- principal- and SH-guiders are roughly in the middle of their travel;
the center-field guider is retracted
- the IFU mask is inserted
- disperser-wheel is in the 'open' position (f/2-Imaging)
- Spectroscopic filter is inserted (f/2 camera)
- f/2 focus is at 9365.0
- File : [menu] :
- Load-Setup: load setup-file (n/a)
- Save-Setup: save setup-file (n/a)
- Help: start browser with IMACS software manual
- Initialize:
initialize
(HOME,etc) selected component(s)
- Exit: close this GUI
- Options : [menu] :
- Logfile: show logfile path
- Sound: set sounds (n/a)
TODO ...
2002-12-09,
Christoph C. Birk, Carnegie Observatories (last updated: 2016-02-02)