SANS2D Front Beam Stop inhibit movement - ISISComputingGroup/ibex_developers_manual GitHub Wiki

Wiki > The Backend System > Specific Device IOC > Miscellaneous motion control > SANS2D Front Beam Stop Inhibit

A requirement of ticket #4581 was to inhibit motion of the front beam stop if the front detector was rotated more than 2 degrees in the positive or negative direction and to inhibit motion of the front detector rotation if the front beam stop rotation was more than 2 degrees in the positive or negative direction.

The implementation for this involves 4 records as a part of the motorExtensions support module. One for calculating if the detector rotation is out of the range given in the requirement (this record is processed on any change of the rotation setpoint and readback value). The calculation record then triggers processing of a dfanout record which sends a stop to the front beam stop rotation motor and sets DISP on the axis and the axis setpoint. Two further records are used in the same pattern for inhibiting the front detector rotation based on the front beam stop's rotation.

Setting the DISP means that dbPutFields to the axis and axis setpoint will now be ignored. We did not set DISP on the motor record itself as it presents a safety concern because all fields on the motor record (including the stop field) would then ignore any puts to them. This would prevent the use of the stop button and other safety-critical usages. We are aware that you will still be able to put to the setpoint of the actual motor record that sits beneath the axis, but are ok with this because the inhibiting motorExtensions record we have created will actively notice any changes in the setpoints and readback and send a stop to the motor, therefore you will not be able to move the motor.