Files
x11ma/script/beamline_alignment/09_CMU_scans.py
2025-12-17 09:49:26 +01:00

177 lines
4.4 KiB
Python

def scan_CMU_zRy():
# sensors = [Keithley_2_raw, CADC2, BML_FMU_YAW]
# r1 = lscan(BML_FMU_ROTY, sensors, -0.06, 0.00, 30, 0.5)
# sensors = [Keithley_2_raw, CADC2, BML_FMU_X, BML_FMU_YAW]
# r1 = lscan(BML_FMU_TRX, sensors, -3.8, 3.8, 20, 0.5)
# 1 Determine initial state
#
# Keithley:
#
Keithley_11_range_string ='X11MA-KEI11:RANGE'
detector_range_ini = caget('X11MA-KEI11:RANGE')
range_number_ini = range_to_number(detector_range_ini)
# print(range_number_ini)
#
# CMU:
#
BML_CMU_TRZ.update()
BML_CMU_ROY.update()
TRZ_pos_ini = BML_CMU_TRZ.read()
ROY_pos_ini = BML_CMU_ROY.read()
# 2 Set Keithley range for scan
#
detector_range = select_Keithley_11_range()
range_number = range_to_number(detector_range)
caput(Keithley_11_range_string, range_number) # 6 --> 200 nA
# 3 Set motor speed for scan
# BML_FMU_TRX.setSpeed(0.2)
# BML_FMU_ROTY.setSpeed(0.2)
# 4 Set scan parameters
sensors = [Keithley_2_raw, CADC2, BML_CMU_z_RBV, BML_CMU_Ry_RBV]
centerTRZ = 1.0
centerROY = -0.14
TRZ_range = 3.0
ROY_range = 0.2
TRZ_steps = 0.2
ROY_steps = 0.02
xmin = centerTRZ - TRZ_range/2
xmax = centerTRZ + TRZ_range/2
ymin = centerROY - ROY_range/2
ymax = centerROY + ROY_range/2
xsteps = TRZ_steps
ysteps = ROY_steps
# 5 Perform scan
started = time.strftime("%H:%M:%S", time.localtime())
BML_CMU_TRZ.move(xmin)
BML_CMU_ROY.move(ymin)
# ascan([BML_CMU_TRZ, BML_CMU_ROY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=1.0, zigzag=False)
try:
ascan([BML_CMU_TRZ, BML_CMU_ROY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=1.0, zigzag=False)
print "Scan finished"
except:
index = 1
status = "Exception:" #, sys.exc_info()[2]
# params = bml_current_settings_for_functions()
# save_dataset("metadata", params)
json_path = get_exec_pars().path
bml_save_scan_settings_json(json_path)
# 5 Put back to initial settings
caput(Keithley_11_range_string, range_number_ini)
# BML_FMU_TRX.setSpeed(0.1)
# BML_FMU_ROTY.setSpeed(0.1)
BML_CMU_TRZ.move(TRZ_pos_ini)
BML_CMU_ROY.moveAsync(ROY_pos_ini)
BML_FMU_TRX.update()
BML_FMU_ROTY.update()
stopped = time.strftime("%H:%M:%S", time.localtime())
print("started: " + started)
print("stopped: " + stopped)
def scan_CMU_RxRy():
# sensors = [Keithley_2_raw, CADC2, BML_FMU_YAW]
# r1 = lscan(BML_FMU_ROTY, sensors, -0.06, 0.00, 30, 0.5)
# sensors = [Keithley_2_raw, CADC2, BML_FMU_X, BML_FMU_YAW]
# r1 = lscan(BML_FMU_TRX, sensors, -3.8, 3.8, 20, 0.5)
# 1 Determine initial state
#
# Keithley:
#
Keithley_11_range_string ='X11MA-KEI11:RANGE'
detector_range_ini = caget('X11MA-KEI11:RANGE')
range_number_ini = range_to_number(detector_range_ini)
# print(range_number_ini)
#
# CMU:
#
TRZ_pos_ini = BML_CMU_ROX.read()
ROY_pos_ini = BML_CMU_ROY.read()
# 2 Set Keithley range for scan
#
detector_range = select_Keithley_11_range()
range_number = range_to_number(detector_range)
caput(Keithley_11_range_string, range_number) # 6 --> 200 nA
# 3 Set motor speed for scan
# BML_FMU_TRX.setSpeed(0.2)
# BML_FMU_ROTY.setSpeed(0.2)
# 4 Set scan parameters
sensors = [Keithley_2_raw, CADC2, BML_CMU_Rx_RBV, BML_CMU_Ry_RBV]
centerROX = -1.00
centerROY = -0.43
ROX_range = 2.0
ROY_range = 0.10
ROX_steps = 0.05
ROY_steps = 0.005
xmin = centerROX - ROX_range/2
xmax = centerROX + ROX_range/2
ymin = centerROY - ROY_range/2
ymax = centerROY + ROY_range/2
xsteps = ROX_steps
ysteps = ROY_steps
# 5 Perform scan
started = time.strftime("%H:%M:%S", time.localtime())
BML_CMU_ROX.move(xmin)
BML_CMU_ROY.move(ymin)
ascan([BML_CMU_ROX, BML_CMU_ROY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=1.0, zigzag=False)
json_path = get_exec_pars().path
bml_save_scan_settings_json(json_path)
# 5 Put back to initial settings
caput(Keithley_11_range_string, range_number_ini)
# BML_FMU_TRX.setSpeed(0.1)
# BML_FMU_ROTY.setSpeed(0.1)
BML_CMU_ROX.move(ROX_pos_ini)
BML_CMU_ROY.moveAsync(ROY_pos_ini)
stopped = time.strftime("%H:%M:%S", time.localtime())
print("started: " + started)
print("stopped: " + stopped)