ICD 1.6/1.10f

A&G to Near-infrared Integral Field Spectrograph (NIFS) On Instrument Wavefront Sensor

 

 

 

 

Mark Jarnyk

10 September 2001

 

 

 

 

 

Version: 1.00

 

Issued By: Mark Jarnyk

 

Date:

Approved By: __________________________ Group Manager _________

 

__________________________ Group Manager (if req) _________

 

__________________________ Systems Engineering _________

 

 

 

 

Revision Control

 

 

1. Revision Version # 1.0

Date: 10 September 2001

Revised by: Mark Jarnyk

Reason for / items changed: Original NIFS version as ICD 1.6/1.10f, modeled after NIRI ICD 1.6/1.10[ab]See niri_hty_005.fm "ICD 1.6/1.10[ab] NIRI Science Instrument to On Instrument Wavefront Sensor", Hubert Yamada, University of Hawaii, Institute for Astronomy..

 

Introduction

Description
Purpose

This Interface Control Document (ICD) serves the following purpose:

  • To describe the commands and parameters that will pass between the A&G system and the On-Instrument Wavefront Sensor (OIWFS) Components Controller (CC).

The specific interfaces described in this document are governed by the following parent Interface Control Documents, which describe the general properties of particular kinds of interface:

The intended audience for this document is:

  • The NIFS reviewers;
  • The developers of the Gemini Acquisition and Guidance units;
Scope

This document describes only aspects of the NIFS OIWFS software system which differ from, or are more specific than, the Gemini standard OIWFS, described in See ic16110.doc, "ICD 1.6/1.10 A&G to On-Instrument Wavefront Sensors", Nick Dillon, Malcolm Stewart, Steven Beard, Brian Leckie..

This document does not describe the following topics:

Related Documents and Drawings
References
  1. gscg.kkg.009, "ICD 1a -- The System Command Interface" , Kim Gillies, NOAO.
  2. gscg.kkg.024, "ICD 1b -- The Baseline Attribute/Value Interface" , Kim Gillies, NOAO.
  3. gscg.grp.015, "ICD 7a -- ICS Subsystem Interfaces" , Steven Beard, Steve Wampler and Chris Mayer, Gemini 8m Telescopes Project.
  4. gscg.kkg.010, "ICD 2 -- Systems Status and Alarm Interfaces" , Gemini 8m Telescopes Project.
  5. gscg.grp.009, " ICD 7b-- TCS Subsystem Interfaces", Philip Taylor
  6. ic16110.doc, "ICD 1.6/1.10 A&G to On-Instrument Wavefront Sensors", Nick Dillon, Malcolm Stewart, Steven Beard, Brian Leckie.
  7. niri_hty_005.fm "ICD 1.6/1.10[ab] NIRI Science Instrument to On Instrument Wavefront Sensor", Hubert Yamada, University of Hawaii, Institute for Astronomy.
  8. "NIFS Conceptual Design Review Vol 1", Research School of Astronomy and Astrophysics, Australian National University
  9. "NIFS Critical Design Review Vol 1", Research School of Astronomy and Astrophysics, Australian National University
  10. cics_smb_013, "Science Instrument to Observatory Control System", Steven Beard, Royal Observatory Edinburgh.
  11. ag_jms_004, "Control of Wavefront Sensors", Malcolm Stewart
  12. SPE-C-G0037, "Software Design Description" , Gemini 8m Telescopes Project
  13. "NIFS Software Maintenance Manual" - To be written, Research School of Astronomy and Astrophysics, Australian National University
Acronyms and Abbreviations

A&G Acquisition and Guidance

CAD Command Action Directive

CAR Command Action Response

CC Components Controller

DC Detector Controller (software system)

DHS Data Handling System

EPICS Experimental Physics and Industrial Control System

FITS Flexible Image Transport System

ICD Interface Control Document

IOC Input Output Controller

IS Instrument Sequencer

ISS Instrument Support Structure

N/A Not Applicable

OCS Observatory Control System

OIWFS On Instrument Wavefront Sensor

SAD Status and Alarm Database

SIR Status and Information Record

TCS Telescope Control System

WFS Wavefront Sensor

Definitions
Action

The process started as a result of a See Command . For example, a command to select a new filter will start the filter wheel mechanism in motion. There can be a many-to-one correspondence between commands and actions. For example, several different filter commands can all result in the same filter wheel movement action. The status of an action is reported through a CAR record.

Attribute

An entity which describes some aspect of the configuration of a science instrument, such as the name of a filter or the tilt angle of a grating. Some attributes will be used by the Instrument Control System as command parameters. The OCS communicates with a science instrument by sending it sets of " See Attribute " and " See Value s".

Command

An instruction commanding the Instrument Control System to start some action. The action may result in a mechanism moving or some internal parameters being set to particular values. A command may have command parameters (aka "command arguments") which contain the details of the instruction to be obeyed. Commands are activated by means of CAD records, and the OCS maps each command arguments onto an " See Attribute ".

Components Controller (CC)

An instrument subsystem responsible for the various mechanisms (e.g. motors and heaters) contained in an instrument.

Datum

The reference point used to define the coordinate system of a mechanism which does not have absolute encoders. Also knows as " See Index " and " See Home ".

Detector Controller (DC)

An instrument subsystem responsible for controlling a detector array and reading data from it. Note that this term has been used in Gemini documentation to refer both to the detector control electronics and the detector control software system . In the context of this software document the term refers to the detector control software system unless otherwise stated.

Hall-effect Sensor.

An electronic component which is used to detect and to measure magnetic field strength.

Home

See " See Datum ".

Index

See " See Datum ".

Instrument Sequencer (IS)

That part of an Instrument Control System responsible for coordinating the actions of a Detector Controller and one or more Components Controllers. The A&G subsystem has a "Guidance and Beam Direction Sequencer" for coordinating its components.

Principal Systems

The Gemini Control System is made up of the OCS, TCS, DHS and one ICS for each instrument. These systems constitute the principal systems of the Gemini Control System.

Status information

Small quantities of information describing the configuration or status of a system. This information is usually stored in an EPICS database and communicated by channel access.

Sequence Commands

The set of standard commands mandated by the OCS which all instruments must obey. These are described in referenceSee gscg.kkg.009, "ICD 1a -- The System Command Interface", Kim Gillies, NOAO..

Status/Alarm Database (SAD)

This is an EPICS database containing the public status information for a Gemini principal system. For an Instrument Control System, the SAD would contain information about the configuration of the instrument's mechanisms, its current state and health, and information obtained from sensors.

Value

The value associated with an " See Attribute ".

VME

A real-time system obeying the ANSI/IEEE 1014-1987 Versatile Backplane Bus standard.

VxWorks

The Real Time Operating system from Wind River.

Stylistic Conventions

References to documents are given like this [1].

 

Details of the A&G to NIFS OIWFS Interface

Introduction
Physical System Interfaces
Mechanical Interface

Not Applicable for a software ICD.

Optical Interface

Not Applicable for a software ICD.

Electronic Interface
NIFS

The NIFS electronic system uses the following VME modules:

  • The XVME-240 Digital I/O Board, (shared between the NIFS CC, the NIFS OIWFS, and the interlock bus):
To monitor the status of the stepper-motor control modules;
To reset the stepper-motor control modules;
To handle the cabinet door interlock
  • Four custom-built VME sensor-support boards:
To read out the NIFS OIWFS Hall-effect sensors;
  • Two XVME-566 Analog Input Modules:
To read out the VME sensor-support boards for the NIFS OIWFS Hall-effect sensors;
  • A XYCOM-490 serial I/O board:
To control the temperature controllers and the Omega CYD208 digital thermometer
  • Two Oregon Microsystems VME8-8 Stepper-motor controller boards
To control the NIFS OIWFS stepper-motors.

Note that these boards will be shared between the NIFS OIWFS hardware and the NIFS hardware, and will perform other functions that are not listed above..

Mass/Balance

Not Applicable for a software ICD.

Thermal Interface

Not Applicable for a software ICD.

Software/Control Function Interface
Overview
Communications infrastructure

The communications infrastructure is the same as described in See cics_smb_013, "Science Instrument to Observatory Control System", Steven Beard, Royal Observatory Edinburgh..

Behavior

The behavior of the NIFS OIWFS/A&G interface is the same as described in See ic16110.doc, "ICD 1.6/1.10 A&G to On-Instrument Wavefront Sensors", Nick Dillon, Malcolm Stewart, Steven Beard, Brian Leckie. and See ag_jms_004, "Control of Wavefront Sensors", Malcolm Stewart.

Implementation

This section contains tables summarizing the EPICS records used for the interface. The next sections (See Detailed Command Description and See Detailed Status information) contain the details of what those records do.

It is assumed in all cases that the record names given in this document will be prefixed by the string "nifs:" except for the SAD database which will be prefixed by "nifs:sad".

Command (CAD/CAR) records

The columns of the command record tables are as follows:

Description

A brief description of the command.

Attribute

The name of the attribute which the Observatory Control System associates with a particular parameter of a particular command. Component position names are listed separately in See Position Names (observing commands).

CAD Record / Cad Record.FIELD

The name of the EPICS (minus the "nifs:" prefix) together with the field in that CAD record associated with each parameter of the command.

CAD ordering number

The recommended order in which this command should be executed. CAD records should be connected to their associated APPLY record in the order 1, 2, 3, 4, 5, etc... CAD records within the same ordering number set can be connected to the APPLY record in any order in that set.

CAR record

The CAR record associated with the command. Note that several CAD records may share the same CAR record.

 

 

 

CAD/CAR records--System Commands

These commands affect the overall behavior of the NIFS OIWFS. Note, in particular, that itis not possible to reboot NIFS and the NIFS OIWFS separately..

NIFS system command CAD/CAR records

Description

Attribute1

CAD record /
CAD record.FIELD
("nifs:" +)

CAD

ordering

number

CAR record ("nifs:" +)

Test.

(none)

wfs:test

1

testC

Initialize. TBD - sim mode?

(none)

wfs:init

2

initC

Datum mechanisms.

(none)

wfs:datum

3

datumC

Park

(none)

wfs:park

4

parkC

Verify

(none)

wfs:verify

5

verifyC

End verify

(none)

wfs:endVerify

6

endVerifyC

NIFS system engineering command CAD/CAR records

Description

Attribute2

CAD record /
CAD record.FIELD
("nifs:" +)

CAD

ordering

number

CAR record
("nifs:" +)

Select debug mode

(none)

wfs:debug.A

7

 

Reboot the system

(none)

wfs:reboot

8

rebootC

OIWFS command CAD/CAR records--OIWFS components

The commands in See NIFS OIWFS CC command CAD/CAR records are the only ones that are used during routine observation.

NIFS OIWFS CC command CAD/CAR records

Description

Attribute3

CAD Record /
CAD Record.FIELD
("nifs:" +)

CAD ordering number

CAR record
("nifs:" +)

Select a filter in the filter wheel4.

filter name

wfs:filtMove.A

17

wfs:filtC

Park the filter wheel.

(none)

wfs:filtPark

16

Move gimbal mirrors, to given (x, y) position and leave it stationary. (x, y) is the position in the focal plane measured in mm in the instrument's frame of reference.

x
y

wfs:prbMove.A
wfs:prbMove.B

37

wfs:prbC

Park the gimbal mirror.

(none)

wfs:prbPark

36

The gimbal and focus stage are caused to follow a continuous stream of updated (x=gimbal x, y=gimbal y, z=focus) positions. These positions are not defined as CAD record arguments but in separate records (see ICD 1.6/1.10).

(none)

wfs:folFollow

39

folC

"Follow" mode, initiated by the wfs:folFollow command, is terminated.

(none)

wfs:folStop

40

Set the tolerance values for all three axes (x=gimbal x, y=gimbal y) in mm. The tolerance is used to calculate the wfs:folInToler SIR record.

x
y

wfs:folSetTol.A
wfs:folSetTol.B

38

folSetC

OIWFS Engineering commands CAD/CAR records--OIWFS components

The following commands are used for engineering purposes, and are not expected to be used during normal observing. Note that, although these commands are connected to the OIWFS APPLY record, they are normally activated directly by the engineering user interface.

The following commands affect the overall behavior of the OIWFS but do not affect the science detector.

NIFS OIWFS CC engineering command CAD/CAR records

Description

Attribute

CAD Record /
CAD Record.FIELD
("nifs:" +)

CAD ordering number

CAR record
("nifs:"+)

Datum filter wheel.

 

wfs:filtDatm

13

wfs:filtC

Set filter wheel position in position numbers5.

position

wfs:filtMove.A

16

Set filter wheel position in engineering units (motor microsteps)See Only the standard positions (excluding datum and park) are fully repeatable..

motor position

wfs:filtEngMove.A

18

Confirm that filter wheel has not lost its datum position.

 

wfs:filtRdtm

14

Confirm that filter wheel and its Hall-effect sensors are operational

 

wfs:filtDiag

15

Datum the gimbal mirror.

 

wfs:prbxDatm

34

wfs:prbC

Datum the x-axis of the gimbal mirror.

 

wfs:prbDatm

18

wfs:prbxC

Tip gimbal mirror along its x-axis, given x position in engineering units (motor microsteps).

motor position

wfs:prbxEngMove.A

23

Confirm that the OIWFS gimbal mirror x-axis motor has not lost its datum position.

 

wfs:prbxRdtm

19

Confirm that the OIWFS gimbal mirror x-axis and its Hall-effect sensors are operational

 

wfs:prbxDiag

20

Datum the y-axis of the gimbal mirror.

 

wfs:prbyDatm

26

wfs:prbyC

Tip gimbal mirror along its y-axis, given y position in engineering units (motor microsteps).

motor position

wfs:prbyEngMove.A

31

Confirm that OIWFS gimbal mirror y-axis motor has not lost its datum position.

 

wfs:prbyRdtm

27

Confirm that OIWFS gimbal mirror y-axis motor and its Hall-effect sensors are operational

 

wfs:prbyDiag

28

Status Information Records

The following tables show the status information provided by the OIWFS. The tables have the following columns:

SIR record

The part of the name of the EPICS SIR record which follows the "nifs:sad" prefix..

Units

The units in which the quantity is stored. (Ustep refers to units of motor microsteps; "user units" or "real-world units" refer to the arbitrary units described by the Units SIR variable.)

Comments

A description of the item. The first paragraph of this will go into the SIR record description and also the comment field in the FITS header.

Note that only the type, units and comments are actually contained in the SIR records. The FITS keyword is provided by the DHS .

WFS Status Information

See The WFS Overall Status Information contains status information for all of the WFS.

The WFS Overall Status Information

SIR record
("nifs:sad"+)

FITS
Keyword

FITS
included

Type

Units

Comments

wfs:debugMode

 

Never

string

 

Debugging mode [NOLOG | NONE | MIN | FULL]

wfs:health

 

Never

string

 

WFS Health [GOOD | WARNING | BAD]

wfs:heartBeat

 

Never

long

count

Heart beat record: Shows that WFS software is alive by returning a constantly increasing value.

wfs:historyLog

 

Never

array of char6

 

History log record7

wfs:issPort

 

Never

long

number

ISS port on which instrument is installed

wfs:label

 

Never

string

 

The FDSC field describes the WFS Components Controller

wfs:name

 

Never

string

 

WFS Components Controller Name

wfs:simMode

 

Never

string

 

Simulation mode [NONE | FULL | FAST | VSM]

wfs:state

 

Never

string

 

Inst. state [BOOTING | INITIALIZING | RUNNING | CONFIGURING]

wfs:wfsBeam

 

Never

long

0/1

Is the WFS detector unobstructed? [YES=0 | NO=1]8

The Wavefront Sensor Components Status Information

The following table summarizes the information for the various components.

NIFS On-Instrument Wave-Front Sensor Status Records

SIR record
("nifs:sad" +)

FITS Keyword

FITS Included

Type

Units

Comments

wfs:filtDatumed

 

Never

long

0/1

Is the filter wheel datumed? [YES=0 | NO=1]

wfs:filtEngCyclic

 

Never

long

0/1

Ignore limits for the filter wheel? [YES=0 | NO=1]

wfs:filtEngMax

 

Never

long

motor microsteps

Maximum position of the filter wheel in engineering units (motor microsteps)

wfs:filtEngMin

 

Never

long

motor microsteps

Minimum position of the filter wheel in engineering units (motor microsteps)

wfs:filtEngName

OIFILT

Start

string

 

Engineering name of the filter wheel position

wfs:filtEngPos

 

Never

long

motor microsteps

Position of the filter wheel in engineering units (motor microsteps)

wfs:filtLabel

 

Never

string

 

The FDSC field describes the filter wheel

wfs:filtMax

 

Never

double

position number

Maximum position of the filter wheel in real-world units (position number)

wfs:filtMin

 

Never

double

position number

Minimum position of the filter wheel in real-world units (position number)

wfs:filtName

OIFLTNAM

Start

string

 

User name of the filter wheel position

wfs:filtParked

 

Never

long

0/1

Is the filter wheel parked? [YES=0 | NO=1]

wfs:filtPos

OIFLTPOS

Start

double

position number

Position of the filter wheel position in real-world units (position number)

wfs:filtRdtmVal

 

Never

long

motor microsteps

Returned value from the filter wheel redatum command

wfs:filtReject

 

Never

long

0/-1

Combined the filter wheel CAR state [GOOD=0 | REJECT=-1]

wfs:filtState

 

Never

string

 

the filter wheel SNL state

wfs:filtUnits

 

Never

string

 

Definition of real-world units ("user units") for the filter wheel ("pos num").

wfs:folIsFollow

 

Never

long

0/1

Are all dynamic components in follow mode? [YES=0 | NO=1]

wfs:folIsIdle

 

Never

long

0/1

Are all components idle? [YES=0 | NO=1]

wfs:folReject

 

Never

long

0/1

Combined reject state for Follow Command

wfs:prbDatumed

 

Never

long

0/1

Is/Are Gimbal Mirror datumed? [YES=0 | NO=1]

wfs:prbLabel

 

Never

string

 

The FDSC field describes the gimbal mirror

wfs:prbName

OIPBSNAM

Start

string

 

the gimbal mirror name of current position9

wfs:prbParked

 

Never

long

0/1

Is the gimbal mirror parked? [YES=0 | NO=1]

wfs:prbReject

 

Never

long

0/1

Combined reject state for the gimbal mirror

wfs:prbSky:xPos

 

Never

double

sky units

Position of the gimbal mirror x in sky units

wfs:prbSky:yPos

 

Never

double

sky units

Position of the gimbal mirror y in sky units

wfs:prbSkyLabel

 

Never

string

 

The FDSC field describes the gimbal mirror

wfs:prbSkyUnits

 

Never

string

 

Definition of "sky units"

wfs:prbxAgDiff

 

Never

double

mm

The gimbal-mirror x-axis offset error in real-world units (mm in the focal plane)

wfs:prbxAgEngDiff

 

Never

double

motor microsteps

The gimbal-mirror x-axis offset error in engineering units (motor microsteps)

wfs:prbxDatumed

 

Never

long

0/1

Is the gimbal-mirror x-axis datumed? [YES=0 | NO=1]

wfs:prbxEngCyclic

 

Never

long

0/1

Ignore limits for the gimbal-mirror x-axis? [YES=0 | NO=1]

wfs:prbxEngMax

 

Never

long

motor microsteps

Maximum position of the gimbal-mirror x-axis in engineering units (motor microsteps)

wfs:prbxEngMin

 

Never

long

motor microsteps

Minimum position of the gimbal-mirror x-axis in engineering units (motor microsteps)

wfs:prbxEngName

 

Never

string

 

Engineering name of the gimbal-mirror x-axis position10

wfs:prbxEngPos

 

Never

long

motor microsteps

Position of the gimbal-mirror x-axis in engineering units (motor microsteps)

wfs:prbxInToler

 

Never

long

0/1

Is the gimbal-mirror x-axis offset in tolerance? [YES=0 | NO=1]

wfs:prbxLabel

 

Never

string

 

The FDSC field describes the gimbal-mirror x-axis

wfs:prbxMax

 

Never

double

mm

Maximum position of the gimbal-mirror x-axis in real-world units (mm in the focal plane)

wfs:prbxMin

 

Never

double

mm

Minimum position of the gimbal-mirror x-axis in real-world units (mm in the focal plane)

wfs:prbxName

OIPBXNAM

Start

string

 

User name of the gimbal-mirror x-axis position11

wfs:prbxParked

 

Never

long

0/1

Is the gimbal-mirror x-axis parked? [YES=0 | NO=1]

wfs:prbxPos

OIPBXPOS

Always

double

mm

Position of the gimbal-mirror x-axis position in real-world units (mm in the focal plane)

wfs:prbxRdtmVal

 

Never

long

motor microsteps

Returned value from the gimbal-mirror x-axis redatum command

wfs:prbxReject

 

Never

long

0/-1

Combined the gimbal-mirror x-axis CAR state [GOOD=0 | REJECT=-1]

wfs:prbxState

 

Never

string

 

the gimbal-mirror x-axis SNL state

wfs:prbxTol

 

Never

double

mm

Tolerange of the gimbal-mirror x-axis offset in real-world units (mm in the focal plane)

wfs:prbxUnits

 

Never

string

 

Definition of real-world units ("user units") for the gimbal-mirror x-axis. ("mm").

wfs:prbyAgDiff

 

Never

double

mm

The gimbal-mirror y-axis offset error in real-world units (mm in the focal plane)

wfs:prbyAgEngDiff

 

Never

double

motor microsteps

The gimbal-mirror y-axis offset error in engineering units (motor microsteps)

wfs:prbyDatumed

 

Never

long

0/1

Is the gimbal-mirror y-axis datumed? [YES=0 | NO=1]

wfs:prbyEngCyclic

 

Never

long

0/1

Ignore limits for the gimbal-mirror y-axis? [YES=0 | NO=1]

wfs:prbyEngMax

 

Never

long

motor microsteps

Maximum position of the gimbal-mirror y-axis in engineering units (motor microsteps)

wfs:prbyEngMin

 

Never

long

motor microsteps

Minimum position of the gimbal-mirror y-axis in engineering units (motor microsteps)

wfs:prbyEngName

 

Never

string

 

Engineering name of the gimbal-mirror y-axis position12

wfs:prbyEngPos

 

Never

long

motor microsteps

Position of the gimbal-mirror y-axis in engineering units (motor microsteps)

wfs:prbyInToler

 

Never

long

0/1

Is the gimbal-mirror y-axis offset in tolerance? [YES=0 | NO=1]

wfs:prbyLabel

 

Never

string

 

The FDSC field describes the gimbal-mirror y-axis

wfs:prbyMax

 

Never

double

mm

Maximum position of the gimbal-mirror y-axis in real-world units (mm in the focal plane)

wfs:prbyMin

 

Never

double

mm

Minimum position of the gimbal-mirror y-axis in real-world units (mm in the focal plane)

wfs:prbyName

OIPBYNAM

Start

string

 

User name of the gimbal-mirror y-axis position13

wfs:prbyParked

 

Never

long

0/1

Is the gimbal-mirror y-axis parked? [YES=0 | NO=1]

wfs:prbyPos

OIPBYPOS

Always

double

mm

Position of the gimbal-mirror y-axis position in real-world units (mm in the focal plane)

wfs:prbyRdtmVal

 

Never

long

motor microsteps

Returned value from the gimbal-mirror y-axis redatum command

wfs:prbyReject

 

Never

long

0/-1

Combined the gimbal-mirror y-axis CAR state [GOOD=0 | REJECT=-1]

wfs:prbyState

 

Never

string

 

the gimbal-mirror y-axis SNL state

wfs:prbyTol

 

Never

double

mm

Tolerange of the gimbal-mirror y-axis offset in real-world units (mm in the focal plane)

wfs:prbyUnits

 

Never

string

 

Definition of real-world units ("user units") for the gimbal-mirror y-axis ("mm").

Component Health Information

The following table summarizes the health information records. All records return one of the strings: "GOOD", "WARNING", or "BAD". Each record describes one aspect of the health of a component

OIWFS Components Controller Component Health Information

SIR record
("nifs:sad:" +)

FITS
Keyword

FITS
Included

Type

Units

Comments

wfs:filtDatumHealth

 

Never

string

 

The health of the filter wheel datum state

wfs:filtHallHealth

 

Never

string

 

The health of the filter wheel Hall-effect sensors

wfs:filtHealth

 

Never

string

 

The overall health of the filter wheel

wfs:filtModuleHealth

 

Never

string

 

The health of the filter wheel driver

wfs:filtPosErrHealth

 

Never

string

 

The health of the filter wheel backlash correction

wfs:filtSnlHealth

 

Never

string

 

The health of the filter wheel state code

wfs:prbHealth

 

Never

string

 

The overall health of the gimbal mirror

wfs:prbxDatumHealth

 

Never

string

 

The health of the gimbal-mirror x-axis datum state

wfs:prbxHallHealth

 

Never

string

 

The health of the gimbal-mirror x-axis Hall-effect sensors

wfs:prbxHealth

 

Never

string

 

The overall health of the gimbal mirror x-axis

wfs:prbxModuleHealth

 

Never

string

 

The health of the gimbal-mirror x-axis driver

wfs:prbxPosErrHealth

 

Never

string

 

The health of the gimbal-mirror x-axis backlash correction

wfs:prbxSnlHealth

 

Never

string

 

The health of the gimbal-mirror x-axis state code

wfs:prbyDatumHealth

 

Never

string

 

The health of the gimbal-mirror y-axis datum state

wfs:prbyHallHealth

 

Never

string

 

The health of the gimbal-mirror y-axis Hall-effect sensors

wfs:prbyHealth

 

Never

string

 

The overall health of the gimbal mirror y-axis

wfs:prbyModuleHealth

 

Never

string

 

The health of the gimbal-mirror y-axis driver

wfs:prbyPosErrHealth

 

Never

string

 

The health of the gimbal-mirror y-axis backlash correction

wfs:prbySnlHealth

 

Never

string

 

The health of the gimbal-mirror y-axis state code

Position names

See Position Names (observing commands) contains a list of valid position names. Note that these names are case sensitive and must be entered exactly as presented here, including underscores. In addition to the listed positions, all mechanisms respond to the special names "datum" and "park" which may or may not be distinct from the listed positions.

Position Names (observing commands)

Component

Position Names

Engineering Position14

Comments

Filter Wheel

Z10

(comp)

Z filter + 1.0" diameter circular aperture

Z20

(comp)

Z filter + 2.0" diameter circular aperture

J05

(comp)

J filter + 0.5" diameter circular aperture

J10

(comp)

J filter + 1.0" diameter circular aperture

J20

(comp)

J filter +2.0" diameter circular aperture

H05

(comp)

H filter + 0.5" diameter circular aperture

H10

(comp)

H filter + 1.0" diameter circular aperture

H20

(comp)

H filter + 2.0" diameter circular aperture

K10

(comp)

K filter + 1.0" diameter circular aperture

K20

(comp)

K filter + 2.0" diameter circular aperture

Clear

(comp)

Clear

Blocked

(comp)

Blocked

Gimbal Mirror

Neutral

(comp)

 

Minimum

(comp)

 

Maximum

(comp)

 

Gimbal Mirror X-Axis

Neutral

(comp)

Mirror centered

Minimum

(comp)

Minimum travel location

Maximum

(comp)

Maximum travel location

Gimbal Mirror Y-Axis

Neutral

(comp)

Mirror centered

Minimum

(comp)

Minimum travel location

Maximum

(comp)

Maximum travel location

Detailed Command Description

A general table of the commands accepted by the NIFS OIWFS CC, together with their arguments, is given in . This section contains a detailed description of each of the commands that will be sent between the A&G and the NIFS control software.

If a directive is accepted it will cause the NIFS OIWFS CC to change its configuration. The "applyC" CAR record will go "BUSY" while the OIWFS control software is changing its configuration and go to "IDLE" if completed successfully or to "ERR" if the configuration change fails.

Sequence Commands
INIT

On receipt of this command, the OIWFS control software will execute its initialization sequence, in which it will: read its hardware setup files and lookup tables, and reset itself to the start-up state. The "initC" CAR record will go "BUSY" while the initialization is being carried out and go to "IDLE" if completed successfully or to "ERR" if the initialization fails. No mechanisms will be moved.

DATUM

The OIWFS CC will locate the datum (i.e. index, home or reference point) for all its mechanisms. The "datumC" CAR record will go "BUSY" while the datum search is being carried out and go to "IDLE" if completed successfully or to "ERR" if the datum searched fails.

PARK

On receipt of this command, the OIWFS will move its mechanisms to a configuration in which it can safely be switched off. It will utilize all the low-level CAD records dedicated to parking the individual mechanisms. The "parkC" CAR record will go "BUSY" while the mechanisms are being parked and go to "IDLE" if completed successfully or to "ERR" if any mechanism fails to park successfully.

General Engineering Commands
REBOOT

On receipt of this command, the OIWFS control software will reboot its IOC and go through the same start-up procedure it would normally do when first switched on. The working system will reboot into the simulation mode NONE and debug mode NONE. The simulator will reboot into simulation mode FULL and debug mode NONE. There is no CAR record associated with this command because connection with the IOC will be lost while it reboots.

This command will also reboot the NIFS CC and IS. It will not reboot the GNIRS CC and IS.

DEBUG

On receipt of this command, the NIFS control software will change to the given debug mode (NONE, MIN or FULL). This mode determines the amount and frequency of information logged by the NIFS control software, as described in the "Debugging Modes" section of ICD 1a, See gscg.kkg.009, "ICD 1a -- The System Command Interface", Kim Gillies, NOAO.. The "debugC" CAR record will go briefly "BUSY" and then back to "IDLE".

NIFS Standard Mechanisms

NIFS will have two filter wheels, a pupil-plane wheel (pupil-mask wheel / additional filter wheel), a focal-plane mask wheel, two steering mirrors (treated as a single, multi-axis mechanism), a focus stage, a window cover, and a pupil viewer. The filter wheels, pupil-plane wheel, focal-plane mask wheel, steering mirrors, window cover, and pupil viewer are considered "discrete" mechanisms, because they normally are moved only to one of a small number of locations. The focus stage is considered a continuous mechanism, because it can move to a wide range of locations.

The following commands will act on all of the above mentioned mechanisms; however, as noted below, the use of certain commands with certain mechanisms is discouraged.

Sel--Select Position by Name

This is the principal interface for all continuous mechanisms. It is provided as a convenience for discrete mechanisms. Note that for multi-axis components (e.g., the steering mirrors), there are commands that act on the combined components and on the individual mechanisms.

On receipt of this command, the NIFS CC control software will:

Ensure an observation is not taking place.

Translate desired position name into an engineering position with the aid of a look-up table.

Look up the expected value for the Hall-effect sensors at the desired position location.

Check to insure that protective interlocks are not set.

Wait until the number of active mechanisms drops below the number of mechanisms that the power supply can support.

Move the mechanism to the engineering position corresponding to the desired position.

Verify that the expected sensor value matches the measured value.

Move--Move to specified Position

This is the principal interface for all discrete components. It is available for continuous components, but is of limited use for normal use of the instrument15. Note that for multi-axis components (e.g., the steering mirrors), there are commands that act on the combined components and on the individual mechanisms.

On receipt of this command, the NIFS CC control software will:

Ensure an observation is not taking place.

Check to insure that protective interlocks are not set.

Wait until the number of active mechanisms drops below the number of mechanisms that the power supply can support.

Move the focus mechanism to the engineering position corresponding to the desired focus.

For some mechanisms, compute the expected values for the Hall-effect sensors.

For some mechanisms, verify that the final hall effect sensors match the expected values.

Park--Park Mechanism

This command is used to prepare a mechanism for instrument shutdown. Note that for multi-axis components (e.g., the steering mirrors), there are commands that act on the combined components and on the individual mechanisms.

On receipt of this command, the NIFS CC control software will:

Ensure an observation is not taking place.

Check to insure that protective interlocks are not set.

Wait until the number of active mechanisms drops below the number of mechanisms that the power supply can support.

Move the mechanism to its parking position.

Verify that the expected sensor value matches the measured value.

The park command is not needed for most NIFS components, and is provided for uniformity. The single exception is the focus stage. The focus stage must be parked before disassembly.

Datm--Datum mechanism

This command is used to find the datum (home) position which defines the mechanism locations. Note that for multi-axis components (e.g., the steering mirrors), there are commands that act on the combined components and on the individual mechanisms.

On receipt of this command, the NIFS CC control software will:

Ensure an observation is not taking place.

Check to insure that protective interlocks are not set.

Wait until the number of active mechanisms drops below the number of mechanisms that the power supply can support.

Move the mechanism and search for its datum.

Set the hardware datum position.

MoveEng--Set position in engineering units (motor microsteps)

This command is used to move the components to locations using units that are convenient for working directly with the hardware. Note that for multi-axis components (e.g., the steering mirrors), the command acts only on the individual mechanisms.

On receipt of this command, the NIFS CC control software will:

Ensure an observation is not taking place.

Check to insure that protective interlocks are not set.

Wait until the number of active mechanisms drops below the number of mechanisms that the power supply can support.

Move the mechanism to the specified engineering position.

The Hall-effect sensors will not be used for confirmation.

Rdtm--Redatum mechanism.

This command provides a quick test that will detect a loss of positioning. It will detect small positioning errors, but can underestimate large positioning errors. Note that for multi-axis components (e.g., the steering mirrors), the command acts only on the individual mechanisms. It returns an estimate of the difference between the actual datum position and the current datum position (which can occur, e.g., if a mechanism is sticking, being driven too quickly, or being driven with too high an acceleration).

On receipt of this command, the NIFS CC control software will:

Ensure an observation is not taking place.

Check to insure that protective interlocks are not set.

Wait until the number of active mechanisms drops below the number of mechanisms that the power supply can support.

Move the mechanism and search for its datum.

The hardware datum position will be left unchanged. This command returns a value in the RdtmVal record for this mechanism.

This command is not supported by the pupil viewer or the window cover, because those mechanisms use a home-finding algorithm which is incompatible with this command.

Diag--Diagnose mechanism

This is a quick test that will detect a loss of positioning. It will detect arbitrarily large positioning errors, but will fail to detect small positioning errors. Note that for multi-axis components (e.g., the steering mirrors), command acts only on the individual mechanisms.

On receipt of this command, the NIFS CC control software will:

Ensure that an observation is not taking place.

Check to insure that protective interlocks are not set.

Wait until the number of active mechanisms drops below the number of mechanisms that the power supply can support.

Move the mechanism and attempt to verify that the motors and Hall-effect sensors are operating.

If an error is detected, the diagnose command will fail and will return an error code in its CAR record.

Detailed Status information
General records
name

This record contains a string constant describing the name of the instrument. For NIFS this record will contain "NIFS WFS".

state

This record will take the values BOOTING, INITIALIZING, RUNNING and CONFIGURING and reflect the state of the NIFS control software while it is initializing. The activities corresponding to these states are

  • BOOTING -- the state during IOC Init and while any database default values are being set.
  • INITIALIZING -- the NIFS control software will be checking its own hardware and reading its hardware configuration files during this phase.
  • RUNNING -- the NIFS control software is ready to accept commands.
  • CONFIGURING -- the NIFS control software is ready to accept commands but it is busy configuring and unable to make observations.
health

This record will reflect the overall health of the OIWFS. Expected values are GOOD, WARNING or BAD. If the overall health is BAD then the NIFS control software will be unusable. If the Health is set to WARNING then the OIWFS control software will be able to execute some functions but not perhaps to specification.

 

Component Status Records
Datumed

This record indicates that a component has been datumed. For multi-axis components, this flag will only be set if all mechanisms have been datumed. This record takes on the following values:

  • 0 = Datumed
  • 1 = Not Datumed
EngCyclic

This record indicates that a mechanism may be set to a location beyond its physical limits (convenient for circular mechanisms like filter wheels). Note that this only affects the higher level commands; the low-level software may choose to ignore any invalid requests. This record takes on the following values:

  • 0 = Limits can be exceeded
  • 1 = Limits may not be exceeded

This record is for internal use by the NIFS software. Its value should not be changed. It is documented here only for completeness.

EngMax

This record contains the maximum position that the mechanism can be moved to, in engineering units (motor microsteps).

EngMin

This record contains the minimum position that the mechanism can be moved to, in engineering units (motor microsteps).

EngName

This record contains the engineering name of the current mechanism position. This represents a physical configuration of a component, and will never change (unlike the "Name" record which may change, if filters or other optical elements are replaced or rearranged). The names of the positions are:

  • park;
  • home;
  • pos00, pos01, pos02, ... , up to the maximum number of positions;
  • INVALID (if not in a standard location).
EngPos

This record contains the current position of a mechanism, in engineering units (motor microsteps).

Label

The FDSC field of this record contains a text string which describes a component. This is convenient in providing a title string for edd/dm screens.

Max

This record contains the maximum position that the mechanism can be moved to, in real-world units. A text string describing the real-world units may be found in the Units record. For mechanisms such as a filter wheel in which there are no appropriate units, the position will typically be given as a position number, i.e., position 0 is 0.0, position 1 is 1.0.

Min

This record contains the maximum position that the mechanism can be moved to, in real-world units. A text string describing the real-world units may be found in the Units record. For mechanisms such as a filter wheel in which there are no appropriate units, the position will typically be given as a position number, i.e., position 0 is 0.0, position 1 is 1.0.

Name

This record contains the name of the current component position. This name typically describes a filter or other optical element and will be redefined if filters or other optical elements are replaced or rearranged (unlike the "EngName" record which describes a component's physical configuration). The current names are listed in @@@.

Note that for multi-axis components, there will be a Name record for each individual mechanism, as well as for the component as a whole.

Parked

This record indicates that a component is in a parked state. For multi-axis components, this record will be set only if all mechanisms are parked. This field takes the values:

  • 0 = All mechanisms parked;
  • 1 = Not all mechanisms are parked.
Pos

This record contains the current position of a mechanism, in real-world units. A text string describing the real-world units may be found in the Units record. For mechanisms such as a filter wheel in which there are no appropriate units, the position will typically be given as a position number, i.e., position 0 is 0.0, position 1 is 1.0.

RdtmVal

This record contains the result of the last redatum command, in engineering units (motor microsteps). (The redatum command returns an estimate of the how far the current mechanism datum position is from the actual datum position; it is useful in diagnosing hardware problems.)

Reject

This record contains a combination of the values of all CAD records for all mechanisms that make up a component. It contains the following values:

  • -1 = At least one CAD record is in a reject state;
  • 0 = No CAD records are in a reject state.

This record exists as a convenience for the user interface. There is no reason for the OCS to use it. It is documented here only for completeness.

State

This record contains a string which describes the current state of the mechanism-support code.

This record is for debugging the NIFS software. The possible values that this record may take may change, without notice. It is documented here only for completeness.

Units

This record contains a text string which describes the real world units (e.g., "mm" or "arc sec")

Component Health Records

All of these records return the standard health values: "GOOD", "WARNING", and "BAD".

DatumHealth

This record reports "WARNING" if a mechanism (or if any mechanism of a multi-axis component) is not datumed. It is cleared by successful execution of a datum command.

HallHealth

This record reports "WARNING" if a Hall-effect sensor has been disabled. (The sensors can only be disabled from the engineering user interface, and are normally disabled only to deal with a failed sensor.)

This record reports "BAD" if both sensors of a Hall-effect sensor pair have been disabled. Note that a mechanism is still usable if both sensors are disabled, but cannot be datumed. (The sensors can only be disabled from the engineering user interface, and are normally disabled only to deal with a failed sensor.)

Health

This record reports the most severe error value of all other health records.

ModuleHealth

This record reports "BAD" if the stepper-motor driver module has entered a fault state. This normally indicates a serious hardware problem. It may be possible to clear the error state by issuing a driver-reset from the engineering user interface. If it is not possible to clear the error, then the stepper-motor driver module or other related hardware has failed, and must be repaired.

PosErrHealth

This record reports "WARNING" if a mechanism (or if any mechanism of a multi-axis component) has been moved in such a way that proper backlash correction has not been made. In this case, the reported mechanism position may not be the actual mechanism position. This situation can arise if a movement command has been canceled while a motion is in progress; if a movement command failed to complete correctly, if certain low-level engineering commands are executed, and immediately after the control software has been rebooted. It is cleared by successful execution of any motion command.

SnlHealth

This record reports "BAD" or "WARNING" if the underlying mechanism support code detects an error while a mechanism is in motion. The only situation which is likely to arise is "WARNING", if an operation takes longer than expected.

Alarm conditions

The following situations will generate an alarm.

  • Hall effect sensor disabled
  • Motor-control module fault
  • Mechanism not datumed
  • Mechanism not backlash corrected
  • Problem detected by SNL code (time-out)
  • Temperature changing
  • Temperature out of range
Debugging and Maintenance

This interface can be tested and debugged by means of an engineering user interface supplied as part of the NIFS.

Debugging Modes

The NIFS control software will have the standard debugging modes described in ICD 1a, See gscg.kkg.009, "ICD 1a -- The System Command Interface", Kim Gillies, NOAO..

Calibration

If a hall sensor fails or if a mechanism must be disassembled for maintenance, the sensors will need to be recalibrated. A separate program is be provided for this purpose. Calibration procedures are be described in a separate document See "NIFS Software Maintenance Manual" - To be written, Research School of Astronomy and Astrophysics, Australian National University.

Simulation

The Gemini simulation modes are described in ICD 1a, See gscg.kkg.009, "ICD 1a -- The System Command Interface", Kim Gillies, NOAO.. The NIFS control software supports only the "NONE" mode. The simulator supports only the "FULL" and "FAST" modes.

The "FAST" simulation mode removes most of the simulated delays which are built into the "FULL" simulation mode, but does not fully meet the Gemini specification for the FAST simulation mode. The "VSM" mode is not available.

To switch from operating mode to simulation mode requires an alternate start-up script to be selected, and a reboot. The command to switch between the "FAST" and "FULL" simulations modes is an engineering-only command and does not fall within the scope of this document.

Safety Issues

It will be necessary to avoid moving OIWFS components while the mechanical components are not at thermal equilibrium. Records are be provided to provide a temperature interlock. Details are described in See ic16110.doc, "ICD 1.6/1.10 A&G to On-Instrument Wavefront Sensors", Nick Dillon, Malcolm Stewart, Steven Beard, Brian Leckie..


1. "(none)" means that there are no arguments

2. "(none)" means that there are no arguments

3. "(none)" means that there are no arguments.

4. ICD 1.6/1.10 See ic16110.doc, "ICD 1.6/1.10 A&G to On-Instrument Wavefront Sensors", Nick Dillon, Malcolm Stewart, Steven Beard, Brian Leckie. has three separate components: a field-stop, a neutral-density filter, and a color filter. For the NIFS OIWFS CC, these are combined into a single wheel which may have multiple optical elements at each position.

5. Only the standard positions (excluding datum and park) are fully repeatable.

6. Should be "bigstring"

7. This record is not useful, because of various EPICS limitations.

8. The wfs:wfsBeam record only indicates whether the OIWFS components controller mechanisms are obstructing the beam; it does not indicate that light is actually getting to the detector. The instrument needs to combine the wfs:wfsBeam with information about any other components in order to provide an instrument-wide wfsBeam record.

9. For the gimbal mirror, the position returned by wfs:prbName will often be "INVALID". This should not be treated as an error, merely as an indication that only a few positions (e.g., the PARK position) have names.

10. For the gimbal mirror x-axis, the position returned by wfs:prbxEngName will often be "INVALID". This should not be treated as an error, merely as an indication that only a few positions (e.g., the PARK position) have names.

11. For the gimbal mirror x-axis, the position returned by wfs:prbxName will often be "INVALID". This should not be treated as an error, merely as an indication that only a few positions (e.g., the PARK position) have names.

12. For the gimbal mirror y-axis, the position returned by wfs:prbyEngName will often be "INVALID". This should not be treated as an error, merely as an indication that only a few positions (e.g., the PARK position) have names.

13. For the gimbal mirror y-axis, the position returned by wfs:prbyName will often be "INVALID". This should not be treated as an error, merely as an indication that only a few positions (e.g., the PARK position) have names.

14. "(comp)" means that the positions are mapped into component positions, and not sent directly to a mechanism.

15. For discrete mechanisms, the units are position numbers; i.e., the first position is at 1.0, the second position is at 2.0.