Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rotating sample changer: changes from tests of 4028 #4287

Closed
Tom-Willemsen opened this issue Apr 25, 2019 · 8 comments
Closed

Rotating sample changer: changes from tests of 4028 #4287

Tom-Willemsen opened this issue Apr 25, 2019 · 8 comments

Comments

@Tom-Willemsen
Copy link
Contributor

Tom-Willemsen commented Apr 25, 2019

As a result of testing the changes in #4028 on a real sample changer (on GEM & Polaris), we realised that the change is more complicated than first thought, and that the pull requests that were merged in 4028 are not sufficient (they cover most of the requested functionality, but not all of it, as we did not fully understand some of the subtleties of the device when we implemented that ticket).

Sample dropped

The workflow that needs to happen in this case is:

  • IBEX sends a move request
  • Some time later, the sample changer reports a "dropped sample" error
    • The sample changer will stop at this point
  • At this point, the sample changer may be one or more positions away from where it originally was, and will not have made it fully to the target position
  • IBEX needs to remember the position which the sample changer came from, and send the sample changer back to that position
    • We should not assume that we are only one position away from the old position
    • The sample changer can rotate in either direction, so we can't just add/subtract n positions. We need to remember the old position somewhere.
  • IBEX then needs to request a lower/raise of the sample arm to re-attempt to pick up the sample
  • IBEX needs to verify that the SAMPLE_ARM_UP state is reached
    • Note, SAMPLE_ARM_UP is not necessarily the opposite of SAMPLE_ARM_DOWN i.e. they are not boolean inverses of each other.
  • IBEX then needs to tell the sample changer to go to the position which was originally targeted

All of the above needs to be retried a maximum of 10 times, after which IBEX should give up and display an error.

Currently the change in #4028 doesn't remember the last position, so does not succeed in picking up the dropped sample. This means that it ends up at the target position as expected, but with multiple samples in the beam, which would cause the neutron data to be bad.


A similar issue was seen in #5027 . When doing this ticket, we should be careful to consider all of the known error cases and react appropriately to them. We may be able to get a list of the possible errors from Electronics.

The Polaris sample changer Maclennan control crate indicated an error -
position 3 requested, but the sample had failed to lower. However, the
Move_Finished block indicated "1" (i.e. it though the move has been successful)
and started the next run with no sample in the beam.

@kjwoodsISIS kjwoodsISIS added bucket proposals that didn't make into the sprint and removed proposal labels May 16, 2019
@kjwoodsISIS kjwoodsISIS removed the bucket proposals that didn't make into the sprint label Dec 5, 2019
@kjwoodsISIS kjwoodsISIS added this to the SPRINT_2019_11_07 milestone Jan 9, 2020
@kjwoodsISIS kjwoodsISIS added ready and removed proposal labels Jan 9, 2020
@kjwoodsISIS kjwoodsISIS added the bucket proposals that didn't make into the sprint label Jan 9, 2020
@kjwoodsISIS kjwoodsISIS removed this from the SPRINT_2020_01_09 milestone Feb 6, 2020
@DominicOram
Copy link
Contributor

Also reduced points as I split out some of the work for this

@DominicOram
Copy link
Contributor

Ensure we alarm on the position if there was an error from the device

@DominicOram
Copy link
Contributor

I think the review for this should take a day

@LilithCole
Copy link
Contributor

Looks mostly good, only issue is on the tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants