HIFI Zero field controller - ISISComputingGroup/ibex_developers_manual GitHub Wiki
HIFI zero-field controller
The zero field controller on HIFI follows a similar design to the zero field controller used on other instruments such as EMU and MuSR, but is implemented as a separate IOC, ZFHIFI
, due to a number of differences.
The main differences are:
- There are 6 field probes, across 2 magnetometer devices (each an instance of a Group3 hall probe,
G3HALLPR
).- There is HIFI-specific field correction logic used to get a corrected field from these 6 probes
- The zero field system on HIFI uses the shim coils from the HIFI cryomag as it's outputs. These are
CRYOSMS_02
..CRYOSMS_04
, hosted onhifi-cryomag
Expected setup
The expected setup for this system is:
CRYOSMS
IOCs onHIFI-CRYOMAG
for the shim coils, configured with:"CRYOMAGNET": "No"
(The shim coils should not be set up as a cryomagnet)"NON_PERSISTENT_SETTLETIME": 0
(To avoid excessive settle times on ZF writes)"HOLD_TIME": 0
(To avoid excessive settle times on ZF writes)"HOLD_TIME_ZERO": 0
(To avoid excessive settle times on ZF writes)
G3HALLPR
IOCs onNDXHIFI
configured with:"FIELD_SCAN_RATE": "Passive"
(the zero-field system will scan these when relevant)"FLNK0": "IN:HIFI:ZFHIFI_01:MAGNETOMETER:X1:READINGS_UPDATED.PROC CA"
(and similar forflnk1/2
)
ZFHIFI_01
configured with:"PSU_X": f"IN:HIFI-C11:CRYOSMS_02"
(and similar forPSU_Y
/PSU_Z
)"MAGNETOMETER_X1": f"IN:HIFI:G3HALLPR_01:0"
"PSU_X_MIN": -15
(and similar forY
&Z
, andMIN
/MAX
)
The flow of control is:
- The
ZFHIFI
ioc will request the magnetometers to take readings by processingG3HALLPR:...:TRIGGER
- The
G3HALLPR
ioc will take a reading - The
G3HALLPR
ioc will process theREADINGS_UPDATED
pv on theZFHIFI
ioc - When all probes are ready, the zero-field ioc will calculate corrected fields
- The zero-field controller will write a new setpoint to the cryosms IOCs
- The cryosms IOCs will ramp the fields on the shim coils using it's internal state-machine
- The zero-field controller will wait for the cryosms to be "within tolerance" of the setpoint and reporting
READY
status.