Newport Motor Controller

This service controls a Newport XPS motor controller which controls a set of motors identified by their motor IDs. These motor names are defined in the configuration file and have to follow the naming given to them through the Newport control interface.

Each motor can define an arbitrary number of named positions. These named positions can can also call each other in a chain. This is useful for being able to save motor positions associated with different experiment modes.

Configuration

newport_xps:
  service_type: newport_xps_q8
  interface: newport_xps_q8
  simulated_service_type: newport_xps_q8_sim
  requires_safety: false

  ip_address: xxx.xxx.xxx.xxx
  port: 0000
  timeout: 20
  update_interval: 1
  atol:
    default: 0.001
    lyot_theta: 0.01

  # Any update to the values below might require an update in simulator.yml.
  # Any difference with the values in simulator.yml will cause a misalignment between your hardware and the simulator.
  motors:

    example_motor:
      nominal: in_beam

      in_beam: in_beam_mode2
      on_axis: on_axis_mode2
      out_of_beam: out_of_beam_mode2
      lowfs_beam: lowfs_beam_mode2

      in_beam_mode1: 7.951
      on_axis_mode1: 7.871
      out_of_beam_mode1: 5.9
      lowfs_beam_mode1: 10

      in_beam_mode2: 9.301
      on_axis_mode2: in_beam_mode2
      out_of_beam_mode2: 8
      lowfs_beam_mode2: in_beam_mode2

    Lyot_X:
      nominal: 8.27
    Lyot_Y:
      nominal: in_beam
      in_beam: 2.3
      out_of_beam: 20
    Lyot_Z:
      nominal: 9.7
    Lyot_theta:
      nominal: 56
    camera_position:
      nominal: 5.42

Properties

None.

Commands

None.

Datastreams

{motor_name}_command: A movement command for the motor identified with motor_name. The motor names are defined by the config file.

{motor_name}_current_position: The current position of the motor identified with motor_name. The motor names are defined by the config file.