111 lines
2.7 KiB
Python
111 lines
2.7 KiB
Python
def move_FMU_y_relative(step):
|
|
|
|
BML_FMU_TRYD.moveRelAsync(step)
|
|
BML_FMU_TRYUR.moveRelAsync(step)
|
|
BML_FMU_TRYUW.moveRelAsync(step)
|
|
|
|
def move_FMU_x_relative(step):
|
|
|
|
BML_FMU_TRX.moveRelAsync(step)
|
|
|
|
|
|
def move_FMU_Ry_relative(step):
|
|
|
|
BML_FMU_YAW.moveRelAsync(step)
|
|
|
|
|
|
def scan_FMU_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)
|
|
#
|
|
# FMU:
|
|
#
|
|
BML_FMU_TRX.update()
|
|
BML_FMU_ROTY.update()
|
|
#
|
|
# TRX_speed_ini = BML_FMU_TRX.getSpeed()
|
|
# ROTY_speed_ini = BML_FMU_ROTY.getSpeed()
|
|
TRX_pos_ini = BML_FMU_TRX.read()
|
|
ROTY_pos_ini = BML_FMU_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_FMU_TRX.setSpeed(0.2)
|
|
# BML_FMU_ROTY.setSpeed(0.2)
|
|
|
|
# 4 Set scan parameters
|
|
|
|
sensors = [Keithley_2_raw, CADC2, BML_FMU_X, BML_FMU_YAW]
|
|
|
|
centerTRX = 1.0
|
|
centerROTY = -0.10
|
|
TRX_range = 6.0
|
|
ROTY_range = 0.2 # 0.1 mm corresponds to 0.25 mrad!
|
|
|
|
TRX_steps = 0.3
|
|
ROTY_steps = 0.01
|
|
|
|
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_FMU_TRX.move(xmin)
|
|
BML_FMU_ROTY.move(ymin)
|
|
|
|
|
|
try:
|
|
ascan([BML_FMU_TRX, BML_FMU_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)
|
|
# BML_FMU_TRX.setSpeed(0.1)
|
|
# BML_FMU_ROTY.setSpeed(0.1)
|
|
BML_FMU_TRX.move(TRX_pos_ini)
|
|
BML_FMU_ROTY.moveAsync(ROTY_pos_ini)
|
|
|
|
BML_FMU_TRX.update()
|
|
BML_FMU_ROTY.update()
|
|
|
|
stopped = time.strftime("%H:%M:%S", time.localtime())
|
|
print("started: " + started)
|
|
print("stopped: " + stopped) |