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.