Menu

#238 Not possible to read motor's position when it's out of limits

Jul15
resolved
nobody
None
pool-motion
bug
2015-07-08
2014-08-26
No

It is not possible to read motor's position when it is out of it's limits (out of range of Tango attribute "position"). One can reproduce it in the following way:

Door_zreszela_1 [32]: mot01.position = -2

Door_zreszela_1 [33]: %set_lim mot01 -1 0
mot01 limits set to -1.0000 0.0000 (user units)

Door_zreszela_1 [34]: mot01.position
API_WAttrOutsideLimit: Set value for attribute Position is below the minimum authorized (at least element 0)
(For more detailed information type: tango_error)

This behavior does not happen with a normal Tango device (not Sardana).

Related

OLD Tickets: #346

Discussion

  • Carlos Pascual

    Carlos Pascual - 2015-02-06
    • Milestone: Jan15 --> unassigned
     
  • Zbigniew Reszela

    We have analyzed this bug some months ago with the following results.

    This bug is caused by a Tango feature, which protects the attribute set value against updates out of the attribute range. We consider that it should disappear when feature [#286] gets implemented.

    Meanwhile we have evaluated two workarounds. They should be considered only in case that the attribute set value is out of the limits. Keeping in mind that the position attribute is a function of several attributes e.g. offset, sign, etc.

    1. Backup and restore of the limits before and after writing the set value (see patch sent by Vicente: https://sourceforge.net/p/sardana/mailman/message/33051202)
    2. Simply do not update the set value (see patch sent by Carlos Falcon:
      https://sourceforge.net/p/sardana/mailman/message/33086725)

    Regarding solution 1, it could be dangerous in case that the Pool DS dies in the middle of the operation. In this case it could leave the Tango database with the erroneous limits.

    Regarding solution 2, it may affect the "drift correction" - to be investigated,
    and the pending operation feature of Taurus GUIs.

    We could also investigate, how to avoid the limits check of the set value on the Tango level.

    In any case, we should look for the less harmful workaround, meanwhile the feature [#286] is implemented.

     

    Related

    OLD Tickets: #286

  • Teresa Nunez

    Teresa Nunez - 2015-07-08
    • status: waiting --> resolved
     
  • Carlos Pascual

    Carlos Pascual - 2015-07-08
    • Milestone: unassigned --> Jul15