Files
x03da/script/users/monney/TemperatureRamp.py
2020-05-01 10:37:37 +02:00

88 lines
2.7 KiB
Python

POSITIONERS = [dummy]
RELATIVE = False
SENSORS = (Counts, SampleCurrent, RefCurrent, MachineCurrent, Scienta.spectrum, EnergyDistribution, AngleDistribution, Scienta.dataMatrix, ManipulatorTempA, ManipulatorTempB, ManipulatorCoolFlow)
LATENCY = 0.0
ENDSCAN = False
adjust_sensors()
set_adc_averaging()
set_exec_pars(compression=True)
set_preference(Preference.PLOT_TYPES, {'Scienta spectrum':1})
def set_4f():
Eph.move(200.)
Scienta.setAcquisitionMode(ch.psi.pshell.epics.Scienta.AcquisitionMode.Swept)
Scienta.lowEnergy.write(130.5)
Scienta.highEnergy.write(137.0)
Scienta.stepSize.write(0.01)
Scienta.setPassEnergy(int(50))
Scienta.stepTime.write(0.0588)
Scienta.setIterations(1)
ExitSlit.write(200.)
Scienta.update()
def set_survey():
Eph.move(1500.)
Scienta.setAcquisitionMode(ch.psi.pshell.epics.Scienta.AcquisitionMode.Swept)
Scienta.lowEnergy.write(800.)
Scienta.highEnergy.write(1500.)
Scienta.stepSize.write(0.1)
Scienta.setPassEnergy(int(50))
Scienta.stepTime.write(0.0588)
Scienta.setIterations(2)
ExitSlit.write(200.)
Scienta.update()
def set_cool_down():
temp = ManipulatorTempA.read()
flow = max(0., min(40., 10. + 0.15 * (300. - temp)))
ManipulatorCoolFlowSet.write(flow)
def set_cool_up():
temp = ManipulatorTempA.read()
flow = max(0., min(40., 0. + 0.15 * (300. - temp)))
ManipulatorCoolFlowSet.write(flow)
def my_after_read_down(rec, scan):
after_readout(rec, scan)
set_cool_down()
def my_after_read_up(rec, scan):
after_readout(rec, scan)
set_cool_up()
try:
#print("survey")
#set_survey()
#lscan(POSITIONERS, SENSORS, 1., 1., 0, LATENCY, RELATIVE, before_read=before_readout, after_read = after_readout)
print("4f ramping down")
set_4f()
caput('X03DA-PC-LAKESHORE:1-TEMP_SP', 10.)
print("scanning")
lscan(POSITIONERS, SENSORS, 0., 1., 1500, LATENCY, RELATIVE, before_read=before_readout, after_read = my_after_read_down)
# print("wait for 10 K")
# the timeout is dangerous, it may cause an exception!
# time.sleep(600) # seconds
# ManipulatorTempA.waitValueInRange(10., 5., 600000) # milliseconds
# print("survey")
# set_survey()
# lscan(POSITIONERS, SENSORS, 1., 1., 0, LATENCY, RELATIVE, before_read=before_readout, after_read = after_readout)
# print("4f ramping up")
# set_4f()
# caput('X03DA-PC-LAKESHORE:1-TEMP_SP', 300.)
# lscan(POSITIONERS, SENSORS, 0., 1., 200, LATENCY, RELATIVE, before_read=before_readout, after_read = my_after_read_up)
# print("survey")
# set_survey()
# lscan(POSITIONERS, SENSORS, 1., 1., 0, LATENCY, RELATIVE, before_read=before_readout, after_read = after_readout)
finally:
if ENDSCAN:
after_scan()