Skip to content

Interface for an actuator controller

It can be applied for any type of hardware, which requires a two state action (set_in/set_out) and might couple the action with a test of achievement.


The underlying controller should at least have a method .set() and if possible a method .get().

Example YAML configuration file

   class: actuator
   name: detector_cover
   controller: $wcid29a
   actuator_cmd: detcover
   actuator_state_in: detcover_in
   actuator_state_out: detcover_out
   actuator_inout: {"in":0, "out":1}

The controller is Wago. The predefined tags correspond to:

  • actuator_cmd: the name of the control channel
  • actuator_state_in and/or actuator_state_out: names of channels, commected to the limit switches
  • actuator_inout: values to set 0 or 1


in case there are no actuator_state_in and actuator_state_out channels, the state is simulated and corresponds to the last executed set command.


should the equipment state be given by the value of the actuator_cmd channel, the same channel can be defined as actuator_state_in or actuator_state_out in order to force the reading of the hardware.

   class: actuator
   name: capillary
   controller: $diffractometer
   actuator_cmd: CapillaryPosition
   actuator_state_in: CapillaryPosition
   actuator_state_out: CapillaryPosition
   actuator_inout: {"in": "ON", "out": "OFF"}

The controller is MD2S. The predefined tags correspond to:

  • actuator_cmd: command to set the actuator
  • actuator_state_in and actuator_state_out: commands to read the status
  • actuator_inout: values to set ON and OFF

The plugin for this controller is bliss:

   plugin: bliss
should either be in __init__.yml in the same directory or added to the above configuration.