This commit is contained in:
gac-x11ma
2026-06-24 13:28:45 +02:00
parent b658ce0a15
commit 97ecbd2af2
113 changed files with 5193 additions and 456368 deletions
+11
View File
@@ -0,0 +1,11 @@
from jeputils import import_py
import_py("cpython/LinFit", "linfit")
x=to_array([0,1,2,3,4,5,6,7,8,9], 'd')
y=to_array([1,2,3,6,9,6,3,2,1,0], 'd')
(p, x_fit, y_fit, R2) = linfit(x,y)
#print "Fit: ", (p, x_fit, y_fit, R2)
plot((y,y_fit), name=("data", "fit"),xdata=(x,x_fit))
+26
View File
@@ -0,0 +1,26 @@
add_device(ChannelDouble("cx_rbk","X11MA-FE-SL1:CENTERX-PosAct"), True)
add_device(ChannelDouble("cy_rbk","X11MA-FE-SL1:CENTERY-PosAct"), True)
cx_rbk.monitored=True
cy_rbk.monitored=True
add_device(ChannelDouble("cxm_rbv","X11MA-FE-SL1:CENTERX.RBV"), True)
add_device(ChannelDouble("cym_rbv","X11MA-FE-SL1:CENTERY.RBV"), True)
cxm_rbv.monitored=True
cym_rbv.monitored=True
add_device(Positioner("cx","X11MA-FE-SL1:CENTERX", "X11MA-FE-SL1:CENTERX-PosAct"), True)
add_device(Positioner("cy","X11MA-FE-SL1:CENTERY", "X11MA-FE-SL1:CENTERY-PosAct"), True)
cx.monitored=True
cy.monitored=True
add_device(DummyPositioner("BML_energy_set"), True)
BML_energy_set.monitored=True
add_device(ChannelInteger("dmov","X11MA-FE-SL1:CENTERX.DMOV"), True)
dmov.monitored=True
add_device(ChannelInteger("dmovy","X11MA-FE-SL1:CENTERY.DMOV"), True)
dmovy.monitored=True
+80
View File
@@ -0,0 +1,80 @@
PARALLEL=True
inf = None
def on_command_finished(info):
if info.script == "test/slit_long.py":
print "Setpoint: ", BML_FE_centerX.take()
print "Readback: ", BML_FE_centerX.readback.take()
print "Error: ", BML_FE_centerX.readback.take() -BML_FE_centerX.take()
print "Setpoint Update: ", BML_FE_centerX.read()
print "Readback Update: ", BML_FE_centerX.readback.read()
print "Error Update: ", BML_FE_centerX.readback.take() -BML_FE_centerX.take()
# 1 Define detector and scan parameters
sensors = [Keithley_2_raw, SR_current] #, CADC2, BML_energy_RBV]
Keithley_channel = Keithley_2_raw.getChannelName()
Keithley_range = "2 nA"
#Keithley range: "AUTO", "20 mA", "2 mA", "200 uA", "20 uA", "2 uA", "200 nA", "20 nA", "2 nA", "200 pA", "20 pA"
emin = 1650.0
emax = 1750.0
esteps = 5.0
#FE_centerX = -0.75
#FE_centerY = 1.25
FE_centerX = 0.0
FE_centerY = 0.0
FE_size_x = 0.1
FE_size_y = 0.1
x_range = 4.0
y_range = 4.0
x_steps = 0.1
y_steps = 0.1
# Set detector and slit parameters for scan>
range_number = range_to_number(Keithley_range)
Keithley_range_cmd = Keithley_channel.replace('READOUT', 'RANGE')
caput(Keithley_range_cmd, range_number) # 6 --> 200 nA
BML_FE_centerX.setSpeed(2.0)
BML_FE_centerY.setSpeed(2.0)
x_range = x_range - FE_size_x
y_range = y_range - FE_size_y
xmin = FE_centerX - x_range/2
xmax = FE_centerX + x_range/2
ymin = FE_centerY - y_range/2
ymax = FE_centerY + y_range/2
xsteps = x_steps
ysteps = y_steps
# 3 Perform scan
started = time.strftime("%H:%M:%S", time.localtime())
add_device(DummyPositioner("BML_energy_set"),True)
BML_energy_set.monitored=True
ascan([BML_energy_set, BML_FE_centerX, BML_FE_centerY], sensors, [emin, xmin, ymin,], [emax, xmax, ymax], [esteps, xsteps, ysteps], latency=0.1, zigzag=False, parallel_positioning=PARALLEL)
# 5 Put back to initial settings
json_path = get_exec_pars().path
bml_save_scan_settings_json(json_path)
stopped = time.strftime("%H:%M:%S", time.localtime())
print("started: " + started)
print("stopped: " + stopped)
BML_FE_centerX.setSpeed(0.1)
BML_FE_centerY.setSpeed(0.1)
+71
View File
@@ -0,0 +1,71 @@
def FE_scan_prepare():
FE_centerX_ini = BML_FE_centerX.read()
FE_centerY_ini = BML_FE_centerY.read()
BML_FE_centerX.setSpeed(1.5)
BML_FE_centerY.setSpeed(1.5)
FE_centerX = 0.0
FE_centerY = 0.0
FE_sizeX = 0.1
FE_sizeY = 0.1
x_range = 4.0
y_range = 4.0
x_steps = 0.2
y_steps = 0.2
xmin = FE_centerX - x_range/2
xmax = FE_centerX + x_range/2
ymin = FE_centerY - y_range/2
ymax = FE_centerY + y_range/2
xsteps = x_steps
ysteps = y_steps
BML_FE_centerX.update()
BML_FE_centerY.update()
#started = time.strftime("%H:%M:%S", time.localtime())
BML_FE_centerX.move(xmin)
BML_FE_centerY.move(ymin)
def FE_scan_move():
BML_FE_centerY.setSpeed(0.05)
BML_FE_centerY.moveAsync(2.0)
for i in range(0,10):
BML_FE_centerX.move(2.0)
BML_FE_centerX.move(-2.0)
print(i)
def time_scan_2DFE(samples=850, interval=0.1):
try:
sensors = [SR_current, "ca://X11MA-FE-SL1:TRXR-VelAct", 'ca://X11MA-FE-SL1:TRXW-VelAct', 'ca://X11MA-FE-SL1:TRXR-PosAct', 'ca://X11MA-FE-SL1:TRXW-PosAct', 'ca://X11MA-FE-SL1:TRYB-VelAct', 'ca://X11MA-FE-SL1:TRYT-VelAct', 'ca://X11MA-FE-SL1:TRYB-PosAct', 'ca://X11MA-FE-SL1:TRYT-PosAct']
#85 * PASSES
tscan(sensors, samples, interval, auto_range=(samples<0))
except ScanAbortedException as ex:
print "Stop Scan"
def run_parallel_scan(fixed=True):
FE_scan_prepare()
if fixed:
parallelize(FE_scan_move, time_scan_2DFE)
else:
task = fork((time_scan_2DFE,(-1,)))
try:
FE_scan_move()
except:
print sys.exc_info()
finally:
abort()
run_parallel_scan()
+9
View File
@@ -0,0 +1,9 @@
BML_FE_centerX.setSpeed(2.0)
BML_FE_centerY.setSpeed(2.0)
add_device(MotorGroupBase("mg", BML_FE_centerX, BML_FE_centerY), True)
mg.monitored=True
mg.move([-2.0 ,-2.0], MoveMode.maximumSpeed, 5000)
mg.move([-2.0 ,2.0], MoveMode.maximumSpeed, 5000)
mg.move([-1.9,-2.0], MoveMode.maximumSpeed, 5000)

After

Width:  |  Height:  |  Size: 300 B

+5
View File
@@ -0,0 +1,5 @@
ascan([cx,cy],SR_current , [-0.1,-0.1], [0.1,0.1], [5,5], 0.0, True, passes=1, zigzag=True)
ascan([BML_FE_centerX,BML_FE_centerY],SR_current , [-0.1,-0.1], [0.1,0.1], [100,100], 0.0, True, passes=1, zigzag=True)
ascan([BML_FE_centerX,BML_FE_centerY], (cx_rbk, cy_rbk) , [-0.2,-0.2], [0.2,0.2], [50,50], 0.0, True, passes=1, zigzag=True)