MTRotator

Note

This page is generated by python script generate_cet.py.

Back to table

Commands

configureAcceleration

Description: Specify a new maximum acceleration.

EFDB_Topic:

MTRotator_command_configureAcceleration

alimit

IDL_Type:

double

Units:

deg/s2

Description: acceleration limit

configureEmergencyAcceleration

Description: Specify a new emergency maximum acceleration. This is for the test/tuning purpose only. Remove this after the tuning is done.

EFDB_Topic:

MTRotator_command_configureEmergencyAcceleration

alimit

IDL_Type:

double

Units:

deg/s2

Description: acceleration limit

configureEmergencyJerk

Description: Specify a new emergency maximum jerk. This is for the test/tuning purpose only. Remove this after the tuning is done.

EFDB_Topic:

MTRotator_command_configureEmergencyJerk

jlimit

IDL_Type:

double

Units:

deg/s3

Description: jerk limit

configureJerk

Description: Specify a new maximum jerk. This is for the test/tuning purpose only. Remove this after the tuning is done.

EFDB_Topic:

MTRotator_command_configureJerk

jlimit

IDL_Type:

double

Units:

deg/s3

Description: jerk limit

configureVelocity

Description: Specify a new maximum velocity.

EFDB_Topic:

MTRotator_command_configureVelocity

vlimit

IDL_Type:

double

Units:

deg/s

Description: Velocity limit

fault

Description: Stop the rotator and send the system to the FAULT state. This is primarily for testing the low-level controller’s fault command.

EFDB_Topic:

MTRotator_command_fault

move

Description: Move to a specified position.

EFDB_Topic:

MTRotator_command_move

position

IDL_Type:

double

Units:

deg

Description: Desired position.

stop

Description: Stop the MTRotator and go to enabled substate Stationary.

EFDB_Topic:

MTRotator_command_stop

track

Description: Specify the target position and velocity, in slewing/tracking mode. Call the trackStart command to enter this mode.

EFDB_Topic:

MTRotator_command_track

angle

IDL_Type:

double

Units:

deg

Description: Desired position at the time specified by “tai”.

velocity

IDL_Type:

double

Units:

deg/second

Description: Desired velocity at the time specified by “tai”.

tai

IDL_Type:

double

Units:

second

Description: TAI time of the “position” and “velocity” fields.

trackStart

Description: Enter slewing/tracking mode (go to enabled substate SlewingOrTracking). Then specify the target path with a series of “track” commands. Finally, issue the “stop” command to end tracking/slewing.

EFDB_Topic:

MTRotator_command_trackStart

disable

Description: Transition from state Enabled to Disabled.

EFDB_Topic:

SALGeneric_command_disable

Category:

csc

enable

Description: Transition from state Disabled to Enabled.

EFDB_Topic:

SALGeneric_command_enable

Category:

csc

exitControl

Description: Transition from state Standby to Offline. Most CSCs will quit, but CSCs that support the enterControl command will keep running.

EFDB_Topic:

SALGeneric_command_exitControl

Category:

csc

setLogLevel

Description: Set the logging level.

EFDB_Topic:

SALGeneric_command_setLogLevel

Category:

csc

level

IDL_Type:

int

Units:

unitless

Description: Logging level, as a Python logging level: error=40, warning=30, info=20, debug=10.

subsystem

IDL_Type:

string

Units:

unitless

Description: If this CSC itself has sub-ordinate components, they may be listed here. An empty string means the setting applies to all such sub-ordinate components, or just to this CSC itself.

standby

Description: Transition from state Offline/Available, Disabled or Fault to Standby.

EFDB_Topic:

SALGeneric_command_standby

Category:

csc

start

Description: Transition from state Standby to Disable, in a specified configuration.

EFDB_Topic:

SALGeneric_command_start

Category:

csc

configurationOverride

IDL_Type:

string

Units:

unitless

Description:

Configuration override in the form [{name}][:{version}]. For salobj-based CSCs: name is a filename with “.yaml” suffix and version is a git hash; for example:

  • “foo.yaml” specifies just a file. Two or three config files are loaded: “_init.yaml”, “_{site}.yaml” (if present), and “foo.yaml”.

  • “:37bf936” specifies just a git hash. One or two config files are loaded from the specified git commit: “_init.yaml” and “_{site}.yaml” (if present.

  • “bar.yaml:HEAD~2” specifies both a file and a git hash. Two or three config files are read from the specified git commit: “_init.yaml”, “_{site}.yaml” (if present), and “bar.yaml”.

Enumerations

ControllerState:
  • Standby=0

  • Disabled=1

  • Enabled=2

  • Offline=3

  • Fault=4

OfflineSubstate:
  • PublishOnly=0

  • Available=1

EnabledSubstate:
  • Stationary=0

  • MovingPointToPoint=1

  • SlewingOrTracking=2

  • ControlledStopping=3

  • Initializing=4

  • Relative=5

  • ConstantVelocity=6

FaultSubstate:
  • NoError=0

  • EmergencyStopping=1

  • WaitClearError=2

ApplicationStatus:
  • EUI_CONNECTED = 0x4

  • COMMAND_REJECTED = 0x20

  • SAFETY_INTERLOCK = 0x40

  • EXTEND_LIMIT_SWITCH = 0x80

  • RETRACT_LIMIT_SWITCH = 0x100

  • ETHERCAT_PROBLEM = 0x200

  • DDS_COMMAND_SOURCE = 0x400

  • DDS_CONNECTED = 0x1000

  • DRIVE_FAULT = 0x2000

  • SIMULINK_FAULT = 0x4000

  • ENCODER_FAULT = 0x8000

ErrorCode:
  • CONTROLLER_FAULT

  • CONNECTION_LOST

  • NO_CONFIG

Events

commandableByDDS

Description: Can the CSC can control the MTRotator?

EFDB_Topic:

MTRotator_logevent_commandableByDDS

state

IDL_Type:

boolean

Units:

unitless

Description: If true the CSC can control the MTRotator; else the Engineering User Interface has control.

configuration

Description: MTRotator configuration.

EFDB_Topic:

MTRotator_logevent_configuration

positionAngleLowerLimit

IDL_Type:

double

Units:

deg

Description: Minimum position.

positionAngleUpperLimit

IDL_Type:

double

Units:

deg

Description: Maximum position.

velocityLimit

IDL_Type:

double

Units:

deg/s

Description: Maximum velocity.

accelerationLimit

IDL_Type:

double

Units:

deg/s2

Description: Maximum acceleration.

emergencyAccelerationLimit

IDL_Type:

double

Units:

deg/s2

Description: Maximum acceleration for emergency stops.

emergencyJerkLimit

IDL_Type:

double

Units:

deg/s3

Description: Maximum jerk for emergency stops.

positionErrorThreshold

IDL_Type:

double

Units:

deg

Description: Difference between commanded and actual position that may trigger a slew.

followingErrorThreshold

IDL_Type:

double

Units:

deg

Description: Difference between commanded and actual position that triggers a following error fault.

trackingSuccessPositionThreshold

IDL_Type:

double

Units:

deg

Description: Difference between commanded and actual position that triggers a tracklost event.

trackingLostTimeout

IDL_Type:

double

Units:

s

Description: Maximum interval between “track” commands before a tracklost event.

disableLimitMaxTime

IDL_Type:

double

Units:

second

Description: Maximum time that one can disable position limit checking.

maxConfigurableVelocityLimit

IDL_Type:

double

Units:

deg/s

Description: Maximum value that can be specified for velocityLimit, using the “configureVelocity” command or the EUI.

drivesEnabled

IDL_Type:

boolean

Units:

unitless

Description: Drives are enabled or not.

connected

Description: State of TCP/IP connection to the low level controller.

EFDB_Topic:

MTRotator_logevent_connected

connected

IDL_Type:

boolean

Units:

unitless

Description: Is the socket connected (true=yes, false=no)?

controllerState

Description: State reported by the low level controller. All values except applicationStatus are 1 greater than those reported by the controller for temporary and historical reasons.

EFDB_Topic:

MTRotator_logevent_controllerState

controllerState

IDL_Type:

long

Units:

unitless

Description: Basic state. A ControllerState enumeration value. The state names and meanings are the same as standard CSC summaryState, but the numeric values are ordered differently. We report the controller state in addition to summaryState because we need to report a summaryState even when the controller is not connected, and to aid diagnostics, e.g. in case the controller reports an unrecognized state.

faultSubstate

IDL_Type:

long

Units:

unitless

Description: Substate in FAULT mode. A FaultSubstate enumeration value.

enabledSubstate

IDL_Type:

long

Units:

unitless

Description: Substate in ENABLED mode. An EnabledSubstate enumeration value.

applicationStatus

IDL_Type:

long

Units:

unitless

Description: Application state. A bitmask of ApplicationStatus enumeration values.

inPosition

Description: Is the rotator in position?

EFDB_Topic:

MTRotator_logevent_inPosition

inPosition

IDL_Type:

boolean

Units:

unitless

Description: True if the rotator is in position, false otherwise.

interlock

Description: Safety interlock engaged (preventing motion) or disengaged.

EFDB_Topic:

MTRotator_logevent_interlock

engaged

IDL_Type:

boolean

Units:

unitless

Description: Is the interlock engaged (true) or not (false)?

target

Description: Commanded target position, velocity and time.

EFDB_Topic:

MTRotator_logevent_target

position

IDL_Type:

double

Units:

deg

Description: Target position at the time specified by “tai”.

velocity

IDL_Type:

double

Units:

deg/second

Description: Target velocity at the time specified by “tai”.

tai

IDL_Type:

double

Units:

second

Description: TAI time of the “position” and “velocity” fields.

tracking

Description: Specify whether the MTRotator is tracking.

EFDB_Topic:

MTRotator_logevent_tracking

tracking

IDL_Type:

boolean

Units:

unitless

Description: Is the rotator tracking accurately? The value of Flags_trackingSuccess from the low-level controller.

lost

IDL_Type:

boolean

Units:

unitless

Description: Is the rotator doing badly at tracking? This uses a different algorithm than “tracking”. The value of Flags_trackingLost from the low-level controller.

noNewCommand

IDL_Type:

boolean

Units:

unitless

Description: No new tracking command was received in time; tracking fails. The value of Flags_noNewTrackCmdError from the low-level controller.

clockOffset

Description: Clock error between a low-level controller and its CSC. Only relevant to CSCs that control a single low-level controller.

EFDB_Topic:

SALGeneric_logevent_clockOffset

offset

IDL_Type:

double

Units:

second

Description: Low-level controller time - CSC time. For most CSCs this is only accurate to 0.01 seconds or so, and thus is only intended to detect gross error.

configurationApplied

Description: Information about this CSC’s current configuration overrides.

EFDB_Topic:

SALGeneric_logevent_configurationApplied

Category:

configurable

configurations

IDL_Type:

string

Units:

unitless

Description: A comma-separated list of configurations applied. If configuration comes from a clone of a git repo, or similar directory, then it will be a list of file names, without the file extension. Ignore whitespace after commas.

version

IDL_Type:

string

Units:

unitless

Description: Version of the configuration source. For a clone of a git repo it will be a git hash.

url

IDL_Type:

string

Units:

unitless

Description: URL of the configuration source. For a clone of a git repo this will be a file URL. For a database it will be a standard database URL. This should always match the same-named field in configurationsAvailable.

schemaVersion

IDL_Type:

string

Units:

unitless

Description: Version of config schema used by this CSC. For a configuration git repo, this is the name of a folder in the config package, and is typically something like “v1”. This should always match the same-named field in configurationsAvailable.

otherInfo

IDL_Type:

string

Units:

unitless

Description: A comma-separated list of event topics (without the logevent prefix) used to publish the entire set of configuration parameters loaded by this CSC, and any other pertinent information. Ignore whitespace after commas.

configurationsAvailable

Description: Available configuration overrides for this CSC.

EFDB_Topic:

SALGeneric_logevent_configurationsAvailable

Category:

configurable

overrides

IDL_Type:

string

Units:

unitless

Description: Available overrides as a comma-separated list. Each entry is a possible value of the configurationOverride field of the start command. Ignore whitespace after commas.

version

IDL_Type:

string

Units:

unitless

Description: Version of the configuration source. For a clone of a git repo it will be a git hash.

url

IDL_Type:

string

Units:

unitless

Description: URL of the configuration source. For a clone of a git repo this will be a file URL. For a database it will be a standard database URL.

schemaVersion

IDL_Type:

string

Units:

unitless

Description: Version of config schema used by this CSC. For a configuration git repo, this is the name of a folder in the config package, and is typically something like “v1”.

errorCode

Description: Output when this CSC goes into the Fault state as an explanation of the problem.

EFDB_Topic:

SALGeneric_logevent_errorCode

Category:

csc

errorCode

IDL_Type:

long

Units:

unitless

Description: A numeric error code.

errorReport

IDL_Type:

string

Units:

unitless

Description: An string providing detailed information about the error.

traceback

IDL_Type:

string

Units:

unitless

Description: An optional stack trace of the error condition.

heartbeat

Description: Event output at regular intervals (typcally once per second) to show that the SAL component is alive.

EFDB_Topic:

SALGeneric_logevent_heartbeat

Category:

mandatory

heartbeat

IDL_Type:

boolean

Units:

unitless

Description: Deprecated field that you should ignore.

logLevel

Description: Current logging level.

EFDB_Topic:

SALGeneric_logevent_logLevel

Category:

mandatory

level

IDL_Type:

int

Units:

unitless

Description: Current logging level, a Python logging level: error=40, warning=30, info=20, debug=10.

subsystem

IDL_Type:

string

Units:

unitless

Description: If this CSC itself has sub-ordinate components, they may be listed here. An empty string means the setting applies to all such sub-ordinate components, or just to this CSC itself.

logMessage

Description: A log message.

EFDB_Topic:

SALGeneric_logevent_logMessage

Category:

mandatory

name

IDL_Type:

string

Units:

unitless

Description: Log name.

level

IDL_Type:

int

Units:

unitless

Description: Message level, a Python logging level: error=40, warning=30, info=20, debug=10.

message

IDL_Type:

string

Units:

unitless

Description: Log message.

traceback

IDL_Type:

string

Units:

unitless

Description: Exception traceback; “” if not an exception.

filePath

IDL_Type:

string

Units:

unitless

Description: Path to source file.

functionName

IDL_Type:

string

Units:

unitless

Description: Function or method name.

lineNumber

IDL_Type:

long

Units:

unitless

Description: Line number in the file specified by filePath.

process

IDL_Type:

long

Units:

unitless

Description: Process ID.

timestamp

IDL_Type:

double

Units:

second

Description: The time at which the condition being reported was observed (TAI unix seconds). 0 if unspecified.

simulationMode

Description: Current simulation mode.

EFDB_Topic:

SALGeneric_logevent_simulationMode

Category:

csc

mode

IDL_Type:

int

Units:

unitless

Description: Current simulation mode; 0 for normal operation (no simulation); other supported values are specific to each CSC.

softwareVersions

Description: Current versions of software in use by CSC.

EFDB_Topic:

SALGeneric_logevent_softwareVersions

Category:

mandatory

salVersion

IDL_Type:

string

IDL_Size:

256

Units:

unitless

Description: This is the current version of SAL generation.

xmlVersion

IDL_Type:

string

IDL_Size:

256

Units:

unitless

Description: This is the current version of CSC XML.

openSpliceVersion

IDL_Type:

string

IDL_Size:

256

Units:

unitless

Description: This is the current version of OpenSplice.

cscVersion

IDL_Type:

string

IDL_Size:

256

Units:

unitless

Description: The software version of this CSC.

subsystemVersions

IDL_Type:

string

Units:

unitless

Description: A comma delimited list of key=value pairs relating subsystem name (key) to its version number (value). This may be left blank if there are no subsystems within this CSC.

summaryState

Description: Current summary state of this CSC.

EFDB_Topic:

SALGeneric_logevent_summaryState

Category:

csc

summaryState

IDL_Type:

long

Units:

unitless

Description: High level state machine state identifier.

Telemetry

ccwFollowingError

Description: Camera cable wrap following error.

EFDB_Topic:

MTRotator_ccwFollowingError

positionError

IDL_Type:

double

Units:

deg

Description: Rotator actual position - camera cable wrap actual position.

velocityError

IDL_Type:

double

Units:

deg/second

Description: Rotator actual velocity - camera cable wrap actual velocity.

timestamp

IDL_Type:

double

Units:

second

Description: The time at which the rotation telemetry was measured (TAI, unix seconds).

The CCW position is extrapolated to this time.

electrical

Description: Rotator drive/electrical information.

EFDB_Topic:

MTRotator_electrical

copleyStatusWordDrive

IDL_Type:

unsigned short

Units:

unitless

Count:

2

Description: Copley drive status word (0x6041).

copleyLatchingFaultStatus

IDL_Type:

unsigned short

Units:

unitless

Count:

2

Description: Copley latching fault status register (0x2183).

copleyFaultStatus

IDL_Type:

unsigned int

Units:

unitless

Count:

2

Description: Copley sticky amplifier event status register (0x2180).

motors

Description: Data about the two rotator motors, in order A, B

EFDB_Topic:

MTRotator_motors

raw

IDL_Type:

double

Units:

unitless

Count:

2

Description: Motor encoder readings in raw counts.

torque

IDL_Type:

double

Units:

N m

Count:

2

Description: Motor torque.

current

IDL_Type:

double

Units:

A

Count:

2

Description: Motor current.

busVoltage

IDL_Type:

double

Units:

V

Description: Bus voltage for the pair of motors.

rotation

Description: Demand and actual rotator position and velocity.

EFDB_Topic:

MTRotator_rotation

demandPosition

IDL_Type:

double

Units:

deg

Description: Rotator position computed by the path generator.

demandVelocity

IDL_Type:

double

Units:

deg/second

Description: Rotator velocity computed by the path generator.

demandAcceleration

IDL_Type:

double

Units:

deg/second

Description: Rotator acceleration computed by the path generator.

actualPosition

IDL_Type:

double

Units:

deg

Description: Rotator position computed from the encoders.

actualVelocity

IDL_Type:

double

Units:

deg/second

Description: Rotator velocity computed from the two linear encoders. Warning: not yet trustworthy.

debugActualVelocityA

IDL_Type:

double

Units:

deg/second

Description: Rotator velocity computed from linear encoder A. Warning: this field is purely for debugging the low-level controller. Do not rely on it.

debugActualVelocityB

IDL_Type:

double

Units:

deg/second

Description: Rotator velocity computed from linear encoder B. Warning: this field is purely for debugging the low-level controller. Do not rely on it.

odometer

IDL_Type:

double

Units:

deg

Description: Cumulative distance the rotator has traveled.

timestamp

IDL_Type:

double

Units:

second

Description: Time at which telemetry was obtained. Will not be fully accurate until DM-26382 is implemented and the CSC updated to use it.