Reflectomtery IOC INTER - ISISComputingGroup/ibex_developers_manual GitHub Wiki
Wiki > The Backend System > Specific Device IOC > Miscellaneous motion control > Reflectometry IOC > CRISP
Specific information about INTER.
Mirrors
Inter is equipped with 2 supermirrors, which may be used in any combination (just SM1
, just SM2
, both in, neither in) depending on the experiment. SM2
also presents a special case for the reflectometry IOC - when it is not used to bounce the beam, it is used as a beam guide. In this configuration the mirror is physically moved out of the beam, but still has to track the beam as reflected by SM1
at an offset. SM2
is never in a fixed parked position.
Axes
The following were unused axes on August 2020:
SM Trans Y
FOMS - Z2
SM Angle2
SM2 AngleEnc
Long travel
PD Distance
PD2 Angle
The SM2 AngleEnc
is the axis which has the SM2 angle encoder connected to enable us to record the encoder and motor position separately.
They don't currently use the detector z axis so we don't need to have this in the reflectometry server
Blocks
Blocks that may be confusing:
Height
: Distance from the sample centre of rotation to the sample. This is used to align the sample with the beam.Height2
: Distance between the beam and the centre of rotation; usually set a 0. This moves the course z stage tracking the beam.
Slit 3/Beam blocker
The beam blocker on INTER is not setup yet.
Sample height correction
INTER has a correction function on sample height which is a fudge factor to account for engineering imperfections in the mirror alignment. See here for more detail
Initial Testing
Initial testing on INTER
was performed from 19 Aug 20 to 21 Aug 20. Tests performed:
- Correctness of SECI <-> IBEX swap scripts
- Motor setup has been transferred correctly
- Compared current positions/limits after swap
- Compared direction of movement/backlash
- Testing tracking for different combinations of SM1 angle, SM2 Angle and Theta.
- Using Laser: checking the dot reaches the centre of the detector
- Using motor positions: Recorded positions and compared them to motor positions under SECI
Notes
We noticed some discrepancies between the motor positions in SECI and IBEX for the mirror/theta tests. Investigation revealed that parts of the SECI calculations are incorrect. The theoretical IBEX approach is correct - correctness of the IBEX implementation still needs to be confirmed by the scientists. SECI implementation may need to be fixed as INTER will likely still be running on SECI in the near future.
Issues found with conversion script:
- "Home position" offset applied to
MTRXXXX.OFF
- In our case we wanted to ignore this value as homing is only done in SECI for now, but in other cases this is the correct behaviour
- Offset sign was incorrect
- De-energise set incorrectly
- Encoders were not set
- This is due to running the conversion on simulated motors. Information added to the motor migration wiki page.
--> Ticket 5654
Issues found with reflectometry server:
- InBeam status incorrect at component level
- Noticed a slight delay before move starts
- Some axes sounded unhappy when moving synchronously at a slow speed (e.g. detector height, optimised for certain speeds)
- Marked SM1/2 height driver as not synchronised as super mirror height axes are slow and are likely the main cause for this issue
Issues found with IBEX in general
- If a motor drives past its limits due to backlash it can stall and not complete the move
- This is an edge case but we should have a discussion whether this is the right behaviour
- Noticed IBEX IOC list to be blank after running SECI to IBEX swap script
- Boy console popping up hides scripting window
- Slit 3 West value was slightly off after a switch from SECI to IBEX.
- When switching back to SECI later it was the same as in IBEX, suggesting it is not an issue with the readback value between the two systems, but rather the axis had actually moved. The axis was not moved explicitly during this whole time, so not sure what exactly happened. We should keep an eye out to see whether this happens again.