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)