75 lines
1.7 KiB
Python
75 lines
1.7 KiB
Python
"""
|
|
Continuous 1D Manipulator scan
|
|
|
|
set manipulator scan parameters below.
|
|
set analyser parameters in the scienta window. recommended: fixed mode, dwell time between 0.2 and 1.0 s
|
|
|
|
the motor speed is determined from the STEP parameter and the scienta busy time (dwell time + dead time).
|
|
note that the motors have a limited speed range!
|
|
"""
|
|
|
|
import math
|
|
|
|
MOTORS = (ManipulatorX)
|
|
RANGE = (-3.45-0.5, -3.45+0.5)
|
|
STEP = 0.01
|
|
|
|
#MOTORS = (ManipulatorY)
|
|
#RANGE = (-5., +5.)
|
|
#STEP = 0.2
|
|
|
|
# Z axis cannot be used in fly scan. minimum speed is too high.
|
|
#MOTORS = (ManipulatorZ)
|
|
#RANGE = (110., 120.)
|
|
#STEP = 0.5
|
|
|
|
#MOTORS = (ManipulatorTheta)
|
|
#RANGE = (-9., 81.)
|
|
## minimum speed 0.001, maximum speed 0.5 deg/s
|
|
#SPEED = 0.1
|
|
|
|
#MOTORS = (ManipulatorTilt)
|
|
#RANGE = (-20., +20.)
|
|
## minimum speed 0.1, maximum speed 1.4 mm/s
|
|
#SPEED = 1.0
|
|
|
|
#MOTORS = (ManipulatorPhi)
|
|
#RANGE = (-179., +180.)
|
|
## minimum speed 0.6, maximum speed 6.0 mm/s
|
|
#SPEED = 1.0
|
|
|
|
|
|
SENSORS = (Counts, Scienta.dataMatrix, SampleCurrent, RefCurrent, MachineCurrent, EnergyDistribution, AngleDistribution)
|
|
|
|
|
|
# --- do not edit below ---
|
|
|
|
RELATIVE = False
|
|
LATENCY = 0.0
|
|
ZIGZAG = False
|
|
ENDSCAN = False
|
|
|
|
adjust_sensors()
|
|
set_adc_averaging()
|
|
|
|
# time per scienta acquisition in seconds
|
|
time1 = time.time()
|
|
trig_scienta()
|
|
time2 = time.time()
|
|
scienta_time = (time2 - time1)
|
|
print "scienta time: ", scienta_time
|
|
|
|
# time for one scan in seconds
|
|
SPEED = STEP / scienta_time
|
|
print "speed: ", SPEED
|
|
fly_time = (RANGE[1] - RANGE[0]) / SPEED
|
|
STEPS = int(fly_time / scienta_time) + 1
|
|
print "scan time: ", fly_time
|
|
|
|
try:
|
|
cscan(MOTORS, SENSORS, RANGE[0], RANGE[1], STEPS, time=fly_time, before_read=before_readout, after_read = after_readout, check_positions = False)
|
|
|
|
finally:
|
|
if ENDSCAN:
|
|
after_scan()
|
|
|