Slow down of motors if included in a PseudoMotor

The position attribute and state of all the motors included in a Motor Group (this is the case for the physical motors used in a pseudomotor) are linked, in such a way that the updates of the attributes are done synchronously and for that reason the execution time sums. If the time for reading the Position of one of the motors in a pseudomotor or of the pseudomotor itself is noticeable larger than for the rest ones, all of them will be affected, and they will be effectively slower. This can increase considerable the movement time of any of those motors and consequently the scan time.

This was observed when scanning any of the motors involved in the Diffractometer (a PseudoMotor in Sardana). The update of the positions for the diffractometer axis (hkl) performs a readout of the energy for updating the wavelength, and this readout increase the execution time. The readout of the energy can be deactivated in the Tango Device of the diffractometer controller (setting the attribute AutoEnergyUpdate to 0). This will avoid this 'artificial' increment in the movement time, but it should be only done in case the energy is not changing during the movement.

2019-11-13