CalcMotor discrepancy
On ID10, we get a discrepancy error on hardware motor delta
, where delta
is one output of the CalcMotor deltacoup
. This error seems to happen randomly (about every 5 hours). The discrepancy is large (about 100x the tolerance) so it's probably Bliss dial position that gets wrong at some point:
RuntimeError: delta_eh2: discrepancy between dial (5.451219) and controller position (5.651219)
diff=0.2 tolerance=0.0001 => aborting movement.
@berruyer provided the following patch that seems to improve the situation (but does not fix it completely):
index 957b68012..3b08c6e17 100644
--- a/bliss/controllers/motor.py
+++ b/bliss/controllers/motor.py
@@ -962,6 +962,8 @@ class CalcController(Controller):
self._real_move_is_done = done
if done:
self._clear_real_pos_cache()
+ for axis in self.reals:
+ axis._update_settings()
self._calc_from_real()
for axis in self.pseudos:
A simple sync_hard()
is not enough to fix the discrepancy.
We are thinking of disabling the check completely (check_discrepancy = False
) for now.
cc: @cammarat