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

235 lines
5.6 KiB
Python

def move_RMU1_y_relative(step):
BML_RMU1_TRYU.moveRelAsync(step)
BML_RMU1_TRYDR.moveRelAsync(step)
BML_RMU1_TRYDW.moveRelAsync(step)
def scan_RMU1_TRX_ROTY():
# 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)
#
# RMU 1:
#
BML_RMU1_TRX.update()
BML_RMU1_ROTY.update()
# TRX_speed_ini = BML_FMU_TRX.getSpeed()
# ROTY_speed_ini = BML_FMU_ROTY.getSpeed()
TRX_pos_ini = BML_RMU1_TRX.read()
ROTY_pos_ini = BML_RMU1_ROTY.read()
# 2 Set Keithley range for scan
#
# detector_range = select_Keithley_11_range()
## print(detector_range)
# range_number = range_to_number(detector_range)
## print(range_number)
# caput(Keithley_11_range_string, range_number) # 6 --> 200 nA
# 3 Set motor speed for scan
BML_RMU1_TRX.setSpeed(0.1)
BML_RMU1_ROTY.setSpeed(0.1)
## 4 Set scan parameters
# axis.setPolling(200)
# axis_data = AxisData()
# axis_roi = AxisROIIntensity()
sensors = [Keithley_3_raw, CADC2, CADC2, CADC2, PEEM_IMON]
# sensors = [Keithley_3_raw, CADC2, BML_RMU1_X, BML_RMU1_YAW, PEEM_IMON]
# sensors = [Keithley_3_raw, PEEM_PRESSURE_MAIN, BML_RMU1_X, BML_RMU1_YAW, PEEM_IMON, axis_roi, axis_data]
centerTRX = -5.0
centerROTY = -5.6
#
TRX_range = 2.0
ROTY_range = 1.0
#
# TRX_range = 1.0
# ROTY_range = 1.45
TRX_steps = 0.1
ROTY_steps = 0.05
xmin = centerTRX - TRX_range/2
xmax = centerTRX + TRX_range/2
ymin = centerROTY - ROTY_range/2
ymax = centerROTY + ROTY_range/2
xsteps = TRX_steps
ysteps = ROTY_steps
# 5 Perform scan
#
started = time.strftime("%H:%M:%S", time.localtime())
BML_RMU1_TRX.move(xmin)
BML_RMU1_ROTY.move(ymin)
try:
ascan([BML_RMU1_TRX, BML_RMU1_ROTY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=0.1, zigzag=False)
print "Scan finished"
except:
index = 1
status = "Exception:" #, sys.exc_info()[2]
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)
sleep(2.0)
BML_RMU1_TRX.setSpeed(0.1)
BML_RMU1_ROTY.setSpeed(0.1)
BML_RMU1_TRX.move(TRX_pos_ini)
BML_RMU1_ROTY.move(ROTY_pos_ini)
BML_RMU1_TRX.update()
BML_RMU1_ROTY.update()
# axis.setPolling(-200)
stopped = time.strftime("%H:%M:%S", time.localtime())
print("started: " + started)
print("stopped: " + stopped)
def scan_RMU1_xYaw():
# 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)
#
# RMU 1:
#
BML_RMU1_X.update()
BML_RMU1_YAW.update()
# TRX_speed_ini = BML_FMU_TRX.getSpeed()
# ROTY_speed_ini = BML_FMU_ROTY.getSpeed()
X_pos_ini = BML_RMU1_X.read()
YAW_pos_ini = BML_RMU1_YAW.read()
# 2 Set Keithley range for scan
#
# detector_range = select_Keithley_11_range()
## print(detector_range)
# range_number = range_to_number(detector_range)
## print(range_number)
# caput(Keithley_11_range_string, range_number) # 6 --> 200 nA
# 3 Set motor speed for scan
BML_RMU1_X.setSpeed(0.1)
BML_RMU1_YAW.setSpeed(0.1)
## 4 Set scan parameters
# axis.setPolling(200)
# axis_data = AxisData()
# axis_roi = AxisROIIntensity()
sensors = [Keithley_3_raw, CADC2, CADC2, CADC2, PEEM_IMON]
# sensors = [Keithley_3_raw, CADC2, BML_RMU1_X, BML_RMU1_YAW, PEEM_IMON]
# sensors = [Keithley_3_raw, PEEM_PRESSURE_MAIN, BML_RMU1_X, BML_RMU1_YAW, PEEM_IMON, axis_roi, axis_data]
centerX = -3.0
centerYAW = -33.3
#
X_range = 4.0
YAW_range = 6.0
#
# TRX_range = 1.0
# ROTY_range = 1.45
X_steps = 0.1
YAW_steps = 0.05
xmin = centerX - X_range/2
xmax = centerX + X_range/2
ymin = centerYAW - YAW_range/2
ymax = centerYAW + YAW_range/2
xsteps = X_steps
ysteps = YAW_steps
# 5 Perform scan
#
started = time.strftime("%H:%M:%S", time.localtime())
BML_RMU1_X.move(xmin)
BML_RMU1_YAW.move(ymin)
try:
ascan([BML_RMU1_X, BML_RMU1_YAW], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=0.1, zigzag=False)
print "Scan finished"
except:
index = 1
status = "Exception:" #, sys.exc_info()[2]
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)
sleep(2.0)
BML_RMU1_X.setSpeed(0.1)
BML_RMU1_YAW.setSpeed(0.1)
BML_RMU1_X.move(X_pos_ini)
BML_RMU1_YAW.move(YAW_pos_ini)
BML_RMU1_X.update()
BML_RMU1_YAW.update()
# axis.setPolling(-200)
stopped = time.strftime("%H:%M:%S", time.localtime())
print("started: " + started)
print("stopped: " + stopped)