06.2026
This commit is contained in:
@@ -41,6 +41,4 @@ def select_Keithley_11_range():
|
||||
Keithley_11_range = get_string(msg, default = "AUTO", alternatives = ["AUTO", "20 mA", "2 mA", "200 uA", "20 uA","2 uA", "200 nA", "20 nA", "2 nA", "200 pA", "20 pA"], password = False)
|
||||
# print(Keithley_11_range)
|
||||
return Keithley_11_range
|
||||
|
||||
|
||||
|
||||
c(5.0)
|
||||
|
||||
@@ -25,7 +25,9 @@ from javax.swing import JFrame, JFileChooser
|
||||
from javax.swing.filechooser import FileNameExtensionFilter
|
||||
from java.io import File
|
||||
|
||||
BEAMLINE_PARAMETERS_FILE = "/home/gac-x11ma/pshell/home/script/beamline_alignment/bml_align_params.json"
|
||||
|
||||
BEAMLINE_PARAMETERS_FILE = "/sls/x11ma/config/pshell/home/script/beamline_alignment/bml_align_params.json"
|
||||
#BEAMLINE_PARAMETERS_FILE = "/home/gac-x11ma/pshell/home/script/beamline_alignment/bml_align_params.json"
|
||||
DATA_FILE = "/home/gac-x11ma/pshell/home/data/2025_11/20251113/Monocam_AU_131.json"
|
||||
DATA_DIR = "/home/gac-x11ma/network_drives/home/Data/2025_11/"
|
||||
|
||||
@@ -374,6 +376,7 @@ def bml_restore_saved_settings(selected_components=None):
|
||||
try:
|
||||
with open(restore_file, "r") as f:
|
||||
saved_data = json.load(f, object_pairs_hook=OrderedDict)
|
||||
print("Restore:", restore_file)
|
||||
except:
|
||||
print("Error loading restore file:", restore_file)
|
||||
return
|
||||
@@ -475,6 +478,7 @@ def bml_display_saved_settings(selected_components=None):
|
||||
try:
|
||||
with open(restore_file, "r") as f:
|
||||
saved_data = json.load(f, object_pairs_hook=OrderedDict)
|
||||
print("Display:", restore_file)
|
||||
except:
|
||||
print("Error loading restore file:", restore_file)
|
||||
return
|
||||
@@ -545,6 +549,7 @@ def bml_show_difference_to_saved_settings(selected_components=None):
|
||||
try:
|
||||
with open(restore_file, "r") as f:
|
||||
saved_data = json.load(f, object_pairs_hook=OrderedDict)
|
||||
print("Compare to:", restore_file)
|
||||
except:
|
||||
print("Error loading restore file:", restore_file)
|
||||
return
|
||||
@@ -615,7 +620,7 @@ def bml_show_difference_to_saved_settings(selected_components=None):
|
||||
difference = "NaN"
|
||||
# print(read_cmd + " = " + str(display_value) + ", diff = " + str(round(difference, 5)) + ", tolerance = " + str(round(tolerance, 5)))
|
||||
if float(difference) > float(tolerance):
|
||||
print(key + " - Differs from saved value: " + str(round(saved_value, 5)))
|
||||
print(key + " Current value: " + str(round(display_value, 5)) + " - Differs from saved value: " + str(round(saved_value, 5)))
|
||||
# write_cmd_new = "\"" + write_cmd + "\""
|
||||
# print(write_cmd_new)
|
||||
# caput(write_cmd, float(saved_value))a
|
||||
|
||||
Executable → Regular
-1
@@ -62,7 +62,6 @@ def scan_2dfe_center():
|
||||
|
||||
BML_FE_centerX.move(xmin)
|
||||
BML_FE_centerY.move(ymin)
|
||||
|
||||
sensors = [BML_FE_CX_RBV, BML_FE_CY_RBV, BML_FE_CX_RBV, BML_FE_CX_RBV, BML_FE_CX_RBV, CADC2]
|
||||
#sensors = [BML_FE_CX_RBV, BML_FE_CY_RBV, BML_XBPM_B_SUM, BML_XBPM_B_POS_X, BML_XBPM_B_POS_Y, CADC2]
|
||||
#detector = Keithley_2_raw
|
||||
|
||||
@@ -59,17 +59,17 @@ def scan_2D_FE_slits():
|
||||
# FE_centerX = -1.15
|
||||
# FE_centerY = 1.45
|
||||
|
||||
FE_centerX = -1.25
|
||||
FE_centerY = 1.0
|
||||
FE_centerX = -0.3
|
||||
FE_centerY = 0.3
|
||||
|
||||
FE_sizeX = 0.1
|
||||
FE_sizeY = 0.1
|
||||
FE_sizeX = 0.15
|
||||
FE_sizeY = 0.15
|
||||
|
||||
x_range = 1.0
|
||||
x_range = 1.5
|
||||
y_range = 1.0
|
||||
|
||||
x_steps = 0.05
|
||||
y_steps = 0.05
|
||||
x_steps = 0.1
|
||||
y_steps = 0.1
|
||||
|
||||
xmin = FE_centerX - x_range/2
|
||||
xmax = FE_centerX + x_range/2
|
||||
@@ -92,7 +92,7 @@ def scan_2D_FE_slits():
|
||||
|
||||
sleep(1.0)
|
||||
|
||||
ascan([BML_FE_centerX, BML_FE_centerY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=0.1, zigzag=True)
|
||||
ascan([BML_FE_centerX, BML_FE_centerY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=0.1, zigzag=False)
|
||||
|
||||
# 5 Put back to initial settings
|
||||
|
||||
@@ -166,7 +166,7 @@ def scan_3D_FE_slits(Scan_params, Sensors):
|
||||
|
||||
started = time.strftime("%H:%M:%S", time.localtime())
|
||||
|
||||
ascan([BML_energy, BML_FE_centerX, BML_FE_centerY], sensors, [emin, xmin, ymin,], [emax, xmax, ymax], [esteps, xsteps, ysteps], latency=0.1, zigzag=False)
|
||||
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)
|
||||
|
||||
# 5 Put back to initial settings
|
||||
|
||||
|
||||
@@ -38,10 +38,10 @@ def scan_CMU_zRy():
|
||||
|
||||
sensors = [Keithley_2_raw, CADC2, BML_CMU_z_RBV, BML_CMU_Ry_RBV]
|
||||
|
||||
centerTRZ = 1.0
|
||||
centerROY = -0.14
|
||||
centerTRZ = 1.23
|
||||
centerROY = 0.2
|
||||
|
||||
TRZ_range = 3.0
|
||||
TRZ_range = 2.0
|
||||
ROY_range = 0.2
|
||||
|
||||
TRZ_steps = 0.2
|
||||
|
||||
@@ -58,13 +58,13 @@ def scan_FMU_TRX_ROTY():
|
||||
|
||||
sensors = [Keithley_2_raw, CADC2, BML_FMU_X, BML_FMU_YAW]
|
||||
|
||||
centerTRX = 1.0
|
||||
centerROTY = -0.10
|
||||
centerTRX = 0.3
|
||||
centerROTY = -0.38
|
||||
TRX_range = 6.0
|
||||
ROTY_range = 0.2 # 0.1 mm corresponds to 0.25 mrad!
|
||||
ROTY_range = 0.4 # 0.1 mm corresponds to 0.25 mrad!
|
||||
|
||||
TRX_steps = 0.3
|
||||
ROTY_steps = 0.01
|
||||
TRX_steps = 0.6
|
||||
ROTY_steps = 0.02
|
||||
|
||||
xmin = centerTRX - TRX_range/2
|
||||
xmax = centerTRX + TRX_range/2
|
||||
|
||||
@@ -23,8 +23,10 @@ def scan_energy(scan_energy_values, sensors):
|
||||
print(sen)
|
||||
|
||||
started = time.strftime("%H:%M:%S", time.localtime())
|
||||
lscan(BML_energy_set, sensors, emin, emax, esteps, latency)
|
||||
BML_energy.update()
|
||||
lscan(BML_energy, sensors, emin, emax, esteps, latency)
|
||||
#This is working: lscan (BML_energy, SR_current, 780.0, 800.0, 1.0)
|
||||
#lscan(BML_energy, sensors, 680.0, 720.0, 2.0, 0.1)
|
||||
|
||||
json_path = get_exec_pars().path
|
||||
bml_save_scan_settings_json(json_path)
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#class PseudoPositioner(Writable):
|
||||
# def write(self,pos):
|
||||
# sleep(3.0)
|
||||
# print "Step = " + str(pos)
|
||||
# caput
|
||||
#
|
||||
#positioner=PseudoPositioner()
|
||||
#
|
||||
|
||||
def scan_energy(scan_energy_values, sensors):
|
||||
|
||||
|
||||
# 1 Set scan parameters
|
||||
|
||||
emin = scan_energy_values[0]
|
||||
emax = scan_energy_values[1]
|
||||
esteps = scan_energy_values[2]
|
||||
latency = scan_energy_values[3]
|
||||
|
||||
for s in scan_energy_values:
|
||||
print(s)
|
||||
for sen in sensors:
|
||||
print(sen)
|
||||
|
||||
started = time.strftime("%H:%M:%S", time.localtime())
|
||||
BML_energy.update()
|
||||
lscan(BML_energy, sensors, emin, emax, esteps, latency)
|
||||
#This is working: lscan (BML_energy, SR_current, 780.0, 800.0, 1.0)
|
||||
#lscan(BML_energy, sensors, 680.0, 720.0, 2.0, 0.1)
|
||||
|
||||
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)
|
||||
@@ -0,0 +1,10 @@
|
||||
# From Alexandre Gobbo, see MS Teams
|
||||
# After you run it the first time you must configure the device, and the initialize it:
|
||||
|
||||
class EnergyPGM(Positioner):
|
||||
def doWrite(self, val):
|
||||
energy_pgm.getSetpoint().write(val)
|
||||
caput ("X11MA-PGM:setE.PROC", 1)
|
||||
|
||||
add_device(EnergyPGM("energy_pgm", "X11MA-PGM:energy", "X11MA-PGM:rbkenergy"), True)
|
||||
energy_pgm.monitored=True
|
||||
@@ -0,0 +1 @@
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
@@ -5,14 +5,15 @@
|
||||
def scan_2DFE_energy():
|
||||
# 1 Define detector and scan parameters
|
||||
|
||||
sensors = [Keithley_2_raw.getAlias(), CADC2.getAlias(), SR_current.getAlias(), BML_energy_RBV.getAlias()]
|
||||
#sensors = [Keithley_2_raw.getAlias(), CADC2.getAlias(), SR_current.getAlias(), BML_energy_RBV.getAlias()]
|
||||
sensors = [Keithley_2_raw, CADC2, SR_current, BML_energy]
|
||||
Keithley_channel = Keithley_2_raw.getChannelName()
|
||||
Keithley_range = "2 uA"
|
||||
#Keithley range: "AUTO", "20 mA", "2 mA", "200 uA", "20 uA", "2 uA", "200 nA", "20 nA", "2 nA", "200 pA", "20 pA"
|
||||
|
||||
emin = 450.0
|
||||
emax = 470.0
|
||||
esteps = 5.0
|
||||
emin = 400
|
||||
emax = 415
|
||||
esteps = 20
|
||||
|
||||
#FE_centerX = -0.75
|
||||
#FE_centerY = 1.25
|
||||
@@ -22,11 +23,20 @@ def scan_2DFE_energy():
|
||||
FE_size_x = 0.1
|
||||
FE_size_y = 0.1
|
||||
|
||||
x_range = 4.0
|
||||
y_range = 4.0
|
||||
x_range = 3.0
|
||||
y_range = 3.0
|
||||
|
||||
x_steps = 0.1
|
||||
y_steps = 0.1
|
||||
|
||||
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
|
||||
|
||||
|
||||
# Set detector and slit parameters for scan>
|
||||
@@ -42,11 +52,22 @@ def scan_2DFE_energy():
|
||||
BML_FE_sizeX.write(FE_size_x)
|
||||
BML_FE_sizeY.write(FE_size_y)
|
||||
|
||||
Scan_params = [emin, emax, esteps, FE_centerX, FE_centerY, FE_size_x, FE_size_y, x_range, y_range, x_steps, y_steps]
|
||||
#Scan_params = [emin, emax, esteps, FE_centerX, FE_centerY, FE_size_x, FE_size_y, x_range, y_range, x_steps, y_steps]
|
||||
|
||||
# 3 Perform scans
|
||||
|
||||
scan_3D_FE_slits(Scan_params, sensors)
|
||||
|
||||
for energy in range(emin, emax, esteps):
|
||||
print(energy)
|
||||
BML_energy.update()
|
||||
BML_energy.move(float(energy))
|
||||
print(BML_energy.read())
|
||||
ascan([BML_FE_centerX, BML_FE_centerY], sensors, [xmin, ymin], [xmax, ymax], [xsteps, ysteps], latency=0.1, zigzag=False)
|
||||
json_path = get_exec_pars().path
|
||||
bml_save_scan_settings_json(json_path)
|
||||
BML_energy.update()
|
||||
|
||||
|
||||
# scan_3D_FE_slits(Scan_params, sensors)
|
||||
|
||||
|
||||
# 4 Restore FE motor speed
|
||||
@@ -118,48 +139,87 @@ def scan_harmonic_energy_pol():
|
||||
# 6 +45 deg
|
||||
# 7 -45 deg
|
||||
|
||||
sensors = [Keithley_1_raw.getAlias(), CADC1.getAlias(), SR_current.getAlias(), BML_energy_RBV.getAlias()]
|
||||
polarizations = [1,2,3,4,5,6]
|
||||
sensors = [Keithley_2_raw.getAlias(), CADC2.getAlias(), SR_current.getAlias(), BML_energy.getAlias()]
|
||||
polarizations = [1]
|
||||
# polarizations = ["Linear H", "Linear V+", "Linear V-","Circular+", "Circular-", "+45 deg", "-45 deg"]
|
||||
Keithley_channel = Keithley_2_raw.getChannelName()
|
||||
Keithley_range = "AUTO"
|
||||
#Keithley range: "AUTO", "20 mA", "2 mA", "200 uA", "20 uA", "2 uA", "200 nA", "20 nA", "2 nA", "200 pA", "20 pA"
|
||||
|
||||
emin = 500.0
|
||||
emax = 900.0
|
||||
esteps = 0.1
|
||||
latency = 1.0
|
||||
emax = 800.0
|
||||
esteps = 5.0
|
||||
latency = 0.1
|
||||
|
||||
FE_centerX = 0.0
|
||||
FE_centerY = 0.0
|
||||
FE_size_x = 4.0
|
||||
FE_size_y = 4.0
|
||||
|
||||
energy_slit = 200.0
|
||||
energy_slit = 20.0
|
||||
|
||||
# # 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
|
||||
#
|
||||
# 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_sizeX.update()
|
||||
BML_FE_sizeY.update()
|
||||
BML_FE_centerX.update()
|
||||
BML_FE_centerY.update()
|
||||
|
||||
# BML_FE_centerX.write(FE_centerX)
|
||||
# BML_FE_centerY.write(FE_centerY)
|
||||
# BML_FE_sizeX.write(FE_size_x)
|
||||
# BML_FE_sizeY.write(FE_size_y)
|
||||
#
|
||||
# exit_slit.move(energy_slit)
|
||||
|
||||
exit_slit.move(energy_slit)
|
||||
|
||||
scan_energy_values = [emin, emax, esteps,latency]
|
||||
|
||||
for p in polarizations:
|
||||
print(p)
|
||||
caput("X11MA-UIND2:MODE", p)
|
||||
BML_energy_set.write(emin)
|
||||
# caput("X11MA-UIND2:MODE", p)
|
||||
BML_energy.write(emin)
|
||||
# ID2_mode.move("Linear H")
|
||||
sleep(300)
|
||||
sleep(1)
|
||||
ID_state = caget("X11MA-UIND2:MODE")
|
||||
print(ID_state)
|
||||
ID_energy = caget("X11MA-UIND2:ENERGY-RBV")
|
||||
print(ID_energy)
|
||||
scan_energy(scan_energy_values, sensors)
|
||||
|
||||
BML_FE_sizeX.write(0.0)
|
||||
BML_FE_sizeY.write(0.0)
|
||||
# BML_FE_sizeX.write(0.0)
|
||||
# BML_FE_sizeY.write(0.0)
|
||||
#
|
||||
def scan_2DFE_energy_OTF():
|
||||
|
||||
for energy in range(380, 420, 5):
|
||||
print(energy)
|
||||
BML_energy.update()
|
||||
BML_energy.move(float(energy))
|
||||
BML_energy.update()
|
||||
run_parallel_scan()
|
||||
|
||||
|
||||
def scan_2DFE_energy_OTF_pol():
|
||||
|
||||
# polarizations = [7,6,5,4,3,2,1]
|
||||
polarizations = [2,7,1]
|
||||
# polarizations = ["Linear H", "Linear V+", "Linear V-","Circular+", "Circular-", "+45 deg", "-45 deg"]
|
||||
for p in polarizations:
|
||||
print(p)
|
||||
caput("X11MA-PGM:energy", 1650.0)
|
||||
caput("X11MA-PGM:setE.PROC", 1)
|
||||
# caput("X11MA-UIND2:ENERGY-SP", 1650.0)
|
||||
# sleep(10)
|
||||
caput("X11MA-UIND2:MODE", p)
|
||||
sleep(300)
|
||||
for i in range(16500, 17500, 50): # 0.2 → Faktor 10
|
||||
energy = i / 10.0
|
||||
print(energy)
|
||||
caput("X11MA-PGM:energy", energy)
|
||||
caput("X11MA-PGM:setE.PROC", 1)
|
||||
# caput("X11MA-UIND2:ENERGY-SP", energy)
|
||||
sleep(10)
|
||||
run_parallel_scan()
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
#tscan(['ca://X11MA-FE-SL1:TRXW-PosAct', CADC2], points=50, interval=0.001, keep=False, save=False, name='Unknown', domain_axis='Time')
|
||||
#
|
||||
####################################################################################################
|
||||
## Example on running simultaneous scans.
|
||||
####################################################################################################
|
||||
#
|
||||
##Simple example running 2 simultaneous scans, not manipulating same writables.
|
||||
##Each scan plots to a different context.
|
||||
#def scan1():
|
||||
# print "scan1"
|
||||
# return lscan(ao1, ai1, 0, 40, 20, 0.1, title = "scan1", tag = "scan_1")
|
||||
#
|
||||
#def scan2():
|
||||
# print "scan2"
|
||||
# return lscan(ao2, wf1, 0, 40, 20, 0.1, title = "scan2", tag = "scan_2")
|
||||
#
|
||||
#parallelize(scan1, scan2)
|
||||
#
|
||||
#
|
||||
#
|
||||
##Example of simultaneous scans, running one at a time in passes, manipulating same writable.
|
||||
##All scans plot to default context.
|
||||
#
|
||||
#REGIONS = [("R1",(1.0, 2.0, 0.1)), ("R2",(2.0, 8.0, 0.5)), ("R3",(8.0, 9.0, 0.2)), ]
|
||||
#PASSES = 3
|
||||
#
|
||||
#scanning=False
|
||||
#current_index=-1
|
||||
#def scan(region):
|
||||
# name, pars=REGIONS[region]
|
||||
# def before_pass(pass_num, scan):
|
||||
# global scanning, current_index
|
||||
# while (current_index != (region-1)) or scanning:
|
||||
# time.sleep(0.1)
|
||||
# scanning = True
|
||||
# current_index = current_index+1
|
||||
# App.getInstance().mainFrame.setScanDisplays(scan, None)
|
||||
# def after_pass(pass_num):
|
||||
# global scanning, current_index
|
||||
# if current_index>=(len(REGIONS)-1):
|
||||
# current_index=-1
|
||||
# scanning = False
|
||||
# lscan(ao1, [ai1, ai2], pars[0], pars[1], pars[2], 0.1, tag=name, passes=PASSES,
|
||||
# before_pass = before_pass, after_pass=after_pass, initial_move=False)
|
||||
#
|
||||
#parallelize(* [[scan,[i,]] for i in range(len(REGIONS))])
|
||||
#
|
||||
|
||||
def FE_scan_prepare():
|
||||
|
||||
FE_centerX_ini = BML_FE_centerX.read()
|
||||
FE_centerY_ini = BML_FE_centerY.read()
|
||||
FE_speedcX_ini = BML_FE_centerX.getSpeed()
|
||||
FE_speedcY_ini = BML_FE_centerY.getSpeed()
|
||||
FE_sizeX_ini = BML_FE_sizeX.read()
|
||||
FE_sizeY_ini = BML_FE_sizeY.read()
|
||||
FE_speedsX_ini = BML_FE_sizeX.getSpeed()
|
||||
FE_speedsY_ini = BML_FE_sizeY.getSpeed()
|
||||
|
||||
BML_FE_sizeX.setSpeed(1.0)
|
||||
BML_FE_sizeY.setSpeed(1.0)
|
||||
BML_FE_centerX.setSpeed(1.0)
|
||||
BML_FE_centerY.setSpeed(1.0)
|
||||
|
||||
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_sizeX.update()
|
||||
BML_FE_sizeY.update()
|
||||
BML_FE_centerX.update()
|
||||
BML_FE_centerY.update()
|
||||
|
||||
# started = time.strftime("%H:%M:%S", time.localtime())
|
||||
|
||||
BML_FE_sizeX.move(FE_sizeX)
|
||||
BML_FE_sizeY.move(FE_sizeY)
|
||||
|
||||
BML_FE_centerX.move(xmin)
|
||||
BML_FE_centerY.move(ymin)
|
||||
|
||||
def FE_scan_move():
|
||||
|
||||
BML_FE_sizeX.update()
|
||||
BML_FE_sizeY.update()
|
||||
BML_FE_centerX.update()
|
||||
BML_FE_centerY.update()
|
||||
|
||||
BML_FE_centerY.setSpeed(0.05)
|
||||
BML_FE_centerY.moveAsync(2.0)
|
||||
|
||||
for i in range(0,10):
|
||||
|
||||
BML_FE_sizeX.update()
|
||||
BML_FE_sizeY.update()
|
||||
BML_FE_centerX.update()
|
||||
BML_FE_centerY.update()
|
||||
|
||||
BML_FE_centerX.move(2.0)
|
||||
|
||||
BML_FE_sizeX.update()
|
||||
BML_FE_sizeY.update()
|
||||
BML_FE_centerX.update()
|
||||
BML_FE_centerY.update()
|
||||
|
||||
BML_FE_centerX.move(-2.0)
|
||||
print(i)
|
||||
# BML_FE_centerY.move(ymin)
|
||||
|
||||
# stopped = time.strftime("%H:%M:%S", time.localtime())
|
||||
# print("started: " + started)
|
||||
# print("stopped: " + stopped)
|
||||
|
||||
def time_scan_2DFE():
|
||||
sensors = [CADC2, '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']
|
||||
# tscan(sensors, points=850, interval=0.1, keep=False, save=False, name='Unknown', domain_axis='Time')
|
||||
tscan(sensors, 850, 0.1, domain_axis='Time')
|
||||
json_path = get_exec_pars().path
|
||||
bml_save_scan_settings_json(json_path)
|
||||
|
||||
def run_parallel_scan():
|
||||
FE_scan_prepare()
|
||||
parallelize(FE_scan_move, time_scan_2DFE)
|
||||
@@ -0,0 +1,89 @@
|
||||
# Added this as "Parameters" in device definitions
|
||||
|
||||
#X11MA-UIND1-MOVER:X-SP X11MA-UIND1-MOVER:X-RBV
|
||||
#X11MA-UIND1-MOVER:Y-SP X11MA-UIND1-MOVER:Y-RBV
|
||||
#X11MA-UIND1-MOVER:YAW-SP X11MA-UIND1-MOVER:YAW-RBV
|
||||
#X11MA-UIND1-MOVER:PITCH-SP X11MA-UIND1-MOVER:PITCH-RBV
|
||||
|
||||
#X11MA-UIND2-MOVER:X-SP X11MA-UIND2-MOVER:X-RBV
|
||||
#X11MA-UIND2-MOVER:Y-SP X11MA-UIND2-MOVER:Y-RBV
|
||||
#X11MA-UIND2-MOVER:YAW-SP X11MA-UIND2-MOVER:YAW-RBV
|
||||
#X11MA-UIND2-MOVER:PITCH-SP X11MA-UIND2-MOVER:PITCH-RBV
|
||||
|
||||
#lscan(BML_energy, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
|
||||
Pos_X_ini = -0.0408
|
||||
Pos_Y_ini = -0.090
|
||||
YAW_ini = -0.0999
|
||||
PITCH_ini = -0.1250
|
||||
|
||||
ID1_X_POS.write(Pos_X_ini)
|
||||
ID1_Y_POS.write(Pos_Y_ini)
|
||||
ID1_YAW.write(YAW_ini)
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
|
||||
polarizations = [1,2,4,5,6,7,3]
|
||||
|
||||
for p in polarizations:
|
||||
|
||||
print(p)
|
||||
caput("X11MA-UIND1:MODE", p)
|
||||
sleep(60)
|
||||
ID_state = caget("X11MA-UIND1:MODE")
|
||||
print(ID_state)
|
||||
ID_energy = caget("X11MA-UIND1:ENERGY-RBV")
|
||||
print(ID_energy)
|
||||
|
||||
print("Scan X_POS")
|
||||
for i in range(-30, 31, 5):
|
||||
|
||||
x = i / 100.0
|
||||
print(x)
|
||||
ID1_X_POS.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
#lscan(BML_energy, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
#json_path = get_exec_pars().path
|
||||
#json_enum = get_exec_pars().index
|
||||
#bml_save_scan_settings_json(json_path)
|
||||
|
||||
ID1_X_POS.write(Pos_X_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan Y_POS")
|
||||
for i in range(-30, 31, 5):
|
||||
|
||||
x = i / 100.0
|
||||
print(x)
|
||||
ID1_Y_POS.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
ID1_Y_POS.write(Pos_Y_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan YAW")
|
||||
|
||||
for i in range(-150, 151, 25):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID1_YAW.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
ID1_YAW.write(YAW_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan PITCH")
|
||||
|
||||
for i in range(-150, 151, 25):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID1_PITCH.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
sleep(3.0)
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# Added this as "Parameters" in device definitions
|
||||
|
||||
#X11MA-UIND1-MOVER:X-SP X11MA-UIND1-MOVER:X-RBV
|
||||
#X11MA-UIND1-MOVER:Y-SP X11MA-UIND1-MOVER:Y-RBV
|
||||
#X11MA-UIND1-MOVER:YAW-SP X11MA-UIND1-MOVER:YAW-RBV
|
||||
#X11MA-UIND1-MOVER:PITCH-SP X11MA-UIND1-MOVER:PITCH-RBV
|
||||
|
||||
#X11MA-UIND2-MOVER:X-SP X11MA-UIND2-MOVER:X-RBV
|
||||
#X11MA-UIND2-MOVER:Y-SP X11MA-UIND2-MOVER:Y-RBV
|
||||
#X11MA-UIND2-MOVER:YAW-SP X11MA-UIND2-MOVER:YAW-RBV
|
||||
#X11MA-UIND2-MOVER:PITCH-SP X11MA-UIND2-MOVER:PITCH-RBV
|
||||
|
||||
#lscan(BML_energy, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
|
||||
Pos_X_ini = -0.0408
|
||||
Pos_Y_ini = -0.090
|
||||
YAW_ini = -0.0999
|
||||
PITCH_ini = -0.1250
|
||||
|
||||
ID1_X_POS.write(Pos_X_ini)
|
||||
ID1_Y_POS.write(Pos_Y_ini)
|
||||
ID1_YAW.write(YAW_ini)
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
|
||||
polarizations = [2,3,6,7]
|
||||
|
||||
for p in polarizations:
|
||||
|
||||
print(p)
|
||||
caput("X11MA-UIND1:MODE", p)
|
||||
sleep(60)
|
||||
ID_state = caget("X11MA-UIND1:MODE")
|
||||
print(ID_state)
|
||||
ID_energy = caget("X11MA-UIND1:ENERGY-RBV")
|
||||
print(ID_energy)
|
||||
|
||||
p
|
||||
print("Scan YAW")
|
||||
|
||||
for i in range(-300, 301, 50):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID1_YAW.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
ID1_YAW.write(YAW_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan PITCH")
|
||||
|
||||
for i in range(-300, 301, 50):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID1_PITCH.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
sleep(3.0)
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
# Added this as "Parameters" in device definitions
|
||||
|
||||
#X11MA-UIND1-MOVER:X-SP X11MA-UIND1-MOVER:X-RBV
|
||||
#X11MA-UIND1-MOVER:Y-SP X11MA-UIND1-MOVER:Y-RBV
|
||||
#X11MA-UIND1-MOVER:YAW-SP X11MA-UIND1-MOVER:YAW-RBV
|
||||
#X11MA-UIND1-MOVER:PITCH-SP X11MA-UIND1-MOVER:PITCH-RBV
|
||||
|
||||
#X11MA-UIND2-MOVER:X-SP X11MA-UIND2-MOVER:X-RBV
|
||||
#X11MA-UIND2-MOVER:Y-SP X11MA-UIND2-MOVER:Y-RBV
|
||||
#X11MA-UIND2-MOVER:YAW-SP X11MA-UIND2-MOVER:YAW-RBV
|
||||
#X11MA-UIND2-MOVER:PITCH-SP X11MA-UIND2-MOVER:PITCH-RBV
|
||||
|
||||
#lscan(BML_energy, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
|
||||
Pos_X_ini = -0.0393
|
||||
Pos_Y_ini = -0.0702
|
||||
YAW_ini = 0.0499
|
||||
PITCH_ini = -0.0099
|
||||
|
||||
ID2_X_POS.write(Pos_X_ini)
|
||||
ID2_Y_POS.write(Pos_Y_ini)
|
||||
ID2_YAW.write(YAW_ini)
|
||||
ID2_PITCH.write(PITCH_ini)
|
||||
|
||||
polarizations = [1,6,7,3]
|
||||
|
||||
for p in polarizations:
|
||||
|
||||
print(p)
|
||||
caput("X11MA-UIND2:MODE", p)
|
||||
sleep(60)
|
||||
ID_state = caget("X11MA-UIND2:MODE")
|
||||
print(ID_state)
|
||||
ID_energy = caget("X11MA-UIND2:ENERGY-RBV")
|
||||
print(ID_energy)
|
||||
|
||||
print("Scan X_POS")
|
||||
for i in range(-30, 31, 5):
|
||||
|
||||
x = i / 100.0
|
||||
print(x)
|
||||
ID2_X_POS.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, [Keithley_2_raw, ID2_X_POS, ID2_Y_POS, ID2_YAW, ID2_PITCH], 380.0, 420.0, 0.5, 0.2)
|
||||
#lscan(BML_energy, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
#json_path = get_exec_pars().path
|
||||
#json_enum = get_exec_pars().index
|
||||
#bml_save_scan_settings_json(json_path)
|
||||
|
||||
ID2_X_POS.write(Pos_X_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan Y_POS")
|
||||
for i in range(-30, 31, 5):
|
||||
|
||||
x = i / 100.0
|
||||
print(x)
|
||||
ID2_Y_POS.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, [Keithley_2_raw, ID2_X_POS, ID2_Y_POS, ID2_YAW, ID2_PITCH], 380.0, 420.0, 0.5, 0.2)
|
||||
|
||||
ID2_Y_POS.write(Pos_Y_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan YAW")
|
||||
|
||||
for i in range(-300, 301, 50):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID2_YAW.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, [Keithley_2_raw, ID2_X_POS, ID2_Y_POS, ID2_YAW, ID2_PITCH], 380.0, 420.0, 0.5, 0.2)
|
||||
|
||||
ID2_YAW.write(YAW_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan PITCH")
|
||||
|
||||
for i in range(-300, 301, 50):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID2_PITCH.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, [Keithley_2_raw, ID2_X_POS, ID2_Y_POS, ID2_YAW, ID2_PITCH], 380.0, 420.0, 0.5, 0.2)
|
||||
|
||||
ID2_PITCH.write(PITCH_ini)
|
||||
sleep(3.0)
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
#import numpy as np
|
||||
#n_steps = 256
|
||||
#theta_deg = np.linspace(0, 360, n_steps, endpoint=True)
|
||||
#theta_rad = np.deg2rad(theta_deg)
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#vector = [ [1,1] , [1,2] , [1,3] , [1,4] ,
|
||||
# [1.5,2.5] ,
|
||||
# [2,1] , [2,2] , [2,3] , [2,4] ,
|
||||
# [2.5,2.5] ,
|
||||
# [3,1] , [3,2] , [3,3] , [3,4] ]
|
||||
#
|
||||
#r3 = vscan((m1,m2),(ai1,ai2),vector,False, 0.1, title = "2D Vector")
|
||||
|
||||
|
||||
Pos_X_ini = -0.0408
|
||||
Pos_Y_ini = -0.090
|
||||
YAW_ini = -0.0999
|
||||
PITCH_ini = -0.1250
|
||||
|
||||
ID1_X_POS.write(Pos_X_ini)
|
||||
ID1_Y_POS.write(Pos_Y_ini)
|
||||
ID1_YAW.write(YAW_ini)
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
|
||||
|
||||
ID1_Y_POS.write(0.3)
|
||||
|
||||
from org.apache.commons.math3.util import FastMath
|
||||
|
||||
vector = [
|
||||
[
|
||||
0.3 * FastMath.sin(2.0 * FastMath.PI * i / 256.0),
|
||||
0.3 * FastMath.cos(2.0 * FastMath.PI * i / 256.0)
|
||||
]
|
||||
for i in range(256)
|
||||
]
|
||||
|
||||
r3 = vscan((ID1_X_POS,ID1_Y_POS),[Keithley_2_raw, ID1_X_POS, ID1_Y_POS, ID1_YAW, ID1_PITCH, energy_pgm],vector,False, 1.0, title = "ID 1 Circumfence Scan")
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#lscan(exit_slit, CADC2, 30.0, -20.0, 1.0, 0.1)
|
||||
#print("YAW")
|
||||
#print("YAW")
|
||||
|
||||
|
||||
dsg
|
||||
# ID1
|
||||
Pos_X_ini = -0.0408
|
||||
Pos_Y_ini = -0.090
|
||||
YAW_ini = -0.0999
|
||||
PITCH_ini = -0.1250
|
||||
|
||||
ID1_X_POS.write(Pos_X_ini)
|
||||
ID1_Y_POS.write(Pos_Y_ini)
|
||||
ID1_YAW.write(YAW_ini)
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# Added this as "Parameters" in device definitions
|
||||
|
||||
#X11MA-UIND1-MOVER:X-SP X11MA-UIND1-MOVER:X-RBV
|
||||
#X11MA-UIND1-MOVER:Y-SP X11MA-UIND1-MOVER:Y-RBV
|
||||
#X11MA-UIND1-MOVER:YAW-SP X11MA-UIND1-MOVER:YAW-RBV
|
||||
#X11MA-UIND1-MOVER:PITCH-SP X11MA-UIND1-MOVER:PITCH-RBV
|
||||
|
||||
#X11MA-UIND2-MOVER:X-SP X11MA-UIND2-MOVER:X-RBV
|
||||
#X11MA-UIND2-MOVER:Y-SP X11MA-UIND2-MOVER:Y-RBV
|
||||
#X11MA-UIND2-MOVER:YAW-SP X11MA-UIND2-MOVER:YAW-RBV
|
||||
#X11MA-UIND2-MOVER:PITCH-SP X11MA-UIND2-MOVER:PITCH-RBV
|
||||
|
||||
#lscan(BML_energy, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
|
||||
# ID1
|
||||
Pos_X_ini = -0.0408
|
||||
Pos_Y_ini = -0.090
|
||||
YAW_ini = -0.0999
|
||||
PITCH_ini = -0.1250
|
||||
|
||||
ID1_X_POS.write(Pos_X_ini)
|
||||
ID1_Y_POS.write(Pos_Y_ini)
|
||||
ID1_YAW.write(YAW_ini)
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
|
||||
polarizations = [1,2,3,6,7]
|
||||
|
||||
for p in polarizations:
|
||||
|
||||
print(p)
|
||||
caput("X11MA-UIND1:MODE", p)
|
||||
sleep(60)
|
||||
ID_state = caget("X11MA-UIND1:MODE")
|
||||
print(ID_state)
|
||||
ID_energy = caget("X11MA-UIND1:ENERGY-RBV")
|
||||
print(ID_energy)
|
||||
|
||||
p
|
||||
print("Scan YAW")
|
||||
|
||||
for i in range(-300, 301, 50):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID1_YAW.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
ID1_YAW.write(YAW_ini)
|
||||
sleep(3.0)
|
||||
|
||||
print("Scan PITCH")
|
||||
|
||||
for i in range(-300, 301, 50):
|
||||
x = i / 1000.0
|
||||
print(x)
|
||||
ID1_PITCH.write(x)
|
||||
sleep(3.0)
|
||||
lscan(energy_pgm, Keithley_2_raw, 375.0, 415.0, 0.5, 0.2)
|
||||
|
||||
ID1_PITCH.write(PITCH_ini)
|
||||
sleep(3.0)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# From Alexandre Gobbo, see MS Teams
|
||||
# After you run it the first time you must configure the device, and the initialize it:
|
||||
|
||||
class EnergyPGM(Positioner):
|
||||
def doWrite(self, val):
|
||||
energy_pgm.getSetpoint().write(val)
|
||||
caput ("X11MA-PGM:setE.PROC", 1)
|
||||
|
||||
add_device(EnergyPGM("energy_pgm", "X11MA-PGM:energy", "X11MA-PGM:rbkenergy"), True)
|
||||
energy_pgm.monitored=True
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
@@ -0,0 +1,9 @@
|
||||
index=0
|
||||
|
||||
def after_read(rec):
|
||||
if rec[ai2] < 0:
|
||||
time.sleep(1.0)
|
||||
rec.invalidate()
|
||||
|
||||
|
||||
a= lscan((m1), (ai1,ai2), (0,), (0.4,), 20, 0.1, after_read=after_read)
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
|
||||
testing = get_exec_pars().getSource()==CommandSource.ui
|
||||
if testing:
|
||||
START=780.0
|
||||
END= 800.0
|
||||
STEP_SIZE=1.0
|
||||
|
||||
|
||||
|
||||
|
||||
lscan (BML_energy, CADC2, START, END, STEP_SIZE)
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+32
-12
@@ -19,6 +19,24 @@
|
||||
"TOT_bump_Y": {"read_cmd": "AGEBD-ORBITBUMP:X11MA-OFFSET-Y-TOTAL", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"TOT_bump_YP": {"read_cmd": "AGEBD-ORBITBUMP:X11MA-OFFSET-YP-TOTAL", "write_cmd": "None", "tolerance": 0.0001, "restorable": false}
|
||||
},
|
||||
"ID1": {
|
||||
"ID1_energy": {"read_cmd": "X11MA-UIND1:ENERGY-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_mode": {"read_cmd": "X11MA-UIND1:MODE", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_gap": {"read_cmd": "X11MA-UIND1:GAP-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_offset": {"read_cmd": "X11MA-UIND1:ENERGY-OFFS", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_TO_RAD": {"read_cmd": "X11MA-UIND1:TO-RAD-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_BO_RAD": {"read_cmd": "X11MA-UIND1:BO-RAD-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_TI_RAD": {"read_cmd": "X11MA-UIND1:TI-RAD-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_BI_RAD": {"read_cmd": "X11MA-UIND1:BI-RAD-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_TO_SHIFT": {"read_cmd": "X11MA-UIND1:TO-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_BO_SHIFT": {"read_cmd": "X11MA-UIND1:BO-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_TI_SHIFT": {"read_cmd": "X11MA-UIND1:TI-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_BI_SHIFT": {"read_cmd": "X11MA-UIND1:BI-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_X_POS": {"read_cmd": "X11MA-UIND1-MOVER:X-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_Y_POS": {"read_cmd": "X11MA-UIND1-MOVER:Y-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_YAW": {"read_cmd": "X11MA-UIND1-MOVER:YAW-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID1_PITCH": {"read_cmd": "X11MA-UIND1-MOVER:PITCH-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false}
|
||||
},
|
||||
"ID2": {
|
||||
"ID2_energy": {"read_cmd": "X11MA-UIND2:ENERGY-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_mode": {"read_cmd": "X11MA-UIND2:MODE", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
@@ -28,10 +46,14 @@
|
||||
"ID2_BO_RAD": {"read_cmd": "X11MA-UIND2:BO-RAD-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_TI_RAD": {"read_cmd": "X11MA-UIND2:TI-RAD-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_BI_RAD": {"read_cmd": "X11MA-UIND2:BI-RAD-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_TO_SHIFT": {"read_cmd": "X11MA-UIND2:TO-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_TO_SHIFT": {"read_cmd": "X11MA-UIND2:TO-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_BO_SHIFT": {"read_cmd": "X11MA-UIND2:BO-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_TI_SHIFT": {"read_cmd": "X11MA-UIND2:TI-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_BI_SHIFT": {"read_cmd": "X11MA-UIND2:BI-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false}
|
||||
"ID2_BI_SHIFT": {"read_cmd": "X11MA-UIND2:BI-SHIFT-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_X_POS": {"read_cmd": "X11MA-UIND2-MOVER:X-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_Y_POS": {"read_cmd": "X11MA-UIND2-MOVER:Y-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_YAW": {"read_cmd": "X11MA-UIND2-MOVER:YAW-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
"ID2_PITCH": {"read_cmd": "X11MA-UIND2-MOVER:PITCH-RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false}
|
||||
},
|
||||
"XBPM1": {
|
||||
"XBPM1_X_motor": {"read_cmd": "X11MA-FE-XBPM1:TRX.RBV", "write_cmd": "None", "tolerance": 0.0001, "restorable": false},
|
||||
@@ -105,13 +127,12 @@
|
||||
"FMU": {
|
||||
"FMU_X": {"read_cmd": "X11MA-OP-FM:X.RBV", "write_cmd": "X11MA-OP-FM:X", "tolerance": 0.001, "restorable": false},
|
||||
"FMU_Y": {"read_cmd": "X11MA-OP-FM:Y.RBV", "write_cmd": "X11MA-OP-FM:Y", "tolerance": 0.001, "restorable": false},
|
||||
"FMU_PITCH": {"read_cmd": "X11MA-OP-FM:PITCH.RBV", "write_cmd": "X11MA-OP-FM:PITCH", "tolerance": 0.001, "restorable": false},
|
||||
"FMU_ROLL": {"read_cmd": "X11MA-OP-FM:ROLL.RBV", "write_cmd": "X11MA-OP-FM:ROLL", "tolerance": 0.001, "restorable": false},
|
||||
"FMU_YAW": {"read_cmd": "X11MA-OP-FM:YAW.RBV", "write_cmd": "X11MA-OP-FM:YAW", "tolerance": 0.001, "restorable": false},
|
||||
"FMU_ROTX": {"read_cmd": "X11MA-OP-FM:ROTX.RBV", "write_cmd": "X11MA-OP-FM:ROTX", "tolerance": 0.001, "restorable": false},
|
||||
"FMU_ROTZ": {"read_cmd": "X11MA-OP-FM:ROTZ.RBV", "write_cmd": "X11MA-OP-FM:ROTZ", "tolerance": 0.001, "restorable": false},
|
||||
"FMU_TRYD": {"read_cmd": "X11MA-OP-FM:TRYD.RBV", "write_cmd": "X11MA-OP-FM:TRYD", "tolerance": 0.001, "restorable": true},
|
||||
"FMU_TRYUR": {"read_cmd": "X11MA-OP-FM:TRYUR.RBV", "write_cmd": "X11MA-OP-FM:TRYUR", "tolerance": 0.001, "restorable": true},
|
||||
"FMU_TRYUR": {"read_cmd": "X11MA-OP-FM:TRYUR.RBV", "write_cmd": "X11MA-OP-FM:TRYUR", "tolerance": 0.001, "restorable": true},
|
||||
"FMU_TRYUW": {"read_cmd": "X11MA-OP-FM:TRYUW.RBV", "write_cmd": "X11MA-OP-FM:TRYUW", "tolerance": 0.001, "restorable": true},
|
||||
"FMU_TRX": {"read_cmd": "X11MA-OP-FM:TRX.RBV", "write_cmd": "X11MA-OP-FM:TRX", "tolerance": 0.001, "restorable": true},
|
||||
"FMU_TRX": {"read_cmd": "X11MA-OP-FM:TRX.RBV", "write_cmd": "X11MA-OP-FM:TRX", "tolerance": 0.001, "restorable": true},
|
||||
"FMU_ROTY": {"read_cmd": "X11MA-OP-FM:ROTY.RBV", "write_cmd": "X11MA-OP-FM:ROTY", "tolerance": 0.001, "restorable": true}
|
||||
},
|
||||
"ESLIT": {
|
||||
@@ -125,13 +146,12 @@
|
||||
"RMU1": {
|
||||
"RMU1_X": {"read_cmd": "X11MA-OP-RM1:X.RBV", "write_cmd": "X11MA-OP-RM1:X", "tolerance": 0.001, "restorable": false},
|
||||
"RMU1_Y": {"read_cmd": "X11MA-OP-RM1:Y.RBV", "write_cmd": "X11MA-OP-RM1:Y", "tolerance": 0.001, "restorable": false},
|
||||
"RMU1_PITCH": {"read_cmd": "X11MA-OP-RM1:PITCH.RBV", "write_cmd": "X11MA-OP-RM1:PITCH", "tolerance": 0.001, "restorable": false},
|
||||
"RMU1_ROLL": {"read_cmd": "X11MA-OP-RM1:ROLL.RBV", "write_cmd": "X11MA-OP-RM1:ROLL", "tolerance": 0.001, "restorable": false},
|
||||
"RMU1_YAW": {"read_cmd": "X11MA-OP-RM1:YAW.RBV", "write_cmd": "X11MA-OP-RM1:YAW", "tolerance": 0.001, "restorable": false},
|
||||
"RMU1_ROTX": {"read_cmd": "X11MA-OP-RM1:ROTX.RBV", "write_cmd": "X11MA-OP-RM1:ROTX", "tolerance": 0.001, "restorable": false},
|
||||
"RMU1_ROTZ": {"read_cmd": "X11MA-OP-RM1:ROTZ.RBV", "write_cmd": "X11MA-OP-RM1:ROTZ", "tolerance": 0.001, "restorable": false},
|
||||
"RMU1_TRYU": {"read_cmd": "X11MA-OP-RM1:TRYU.RBV", "write_cmd": "X11MA-OP-RM1:TRYU", "tolerance": 0.001, "restorable": true},
|
||||
"RMU1_TRYDW": {"read_cmd": "X11MA-OP-RM1:TRYDW.RBV", "write_cmd": "X11MA-OP-RM1:TRYDW", "tolerance": 0.001, "restorable": true},
|
||||
"RMU1_TRYDW": {"read_cmd": "X11MA-OP-RM1:TRYDW.RBV", "write_cmd": "X11MA-OP-RM1:TRYDW", "tolerance": 0.001, "restorable": true},
|
||||
"RMU1_TRYDR": {"read_cmd": "X11MA-OP-RM1:TRYDR.RBV", "write_cmd": "X11MA-OP-RM1:TRYDR", "tolerance": 0.001, "restorable": true},
|
||||
"RMU1_TRX": {"read_cmd": "X11MA-OP-RM1:TRX.RBV", "write_cmd": "X11MA-OP-RM1:TRX", "tolerance": 0.001, "restorable": true},
|
||||
"RMU1_TRX": {"read_cmd": "X11MA-OP-RM1:TRX.RBV", "write_cmd": "X11MA-OP-RM1:TRX", "tolerance": 0.001, "restorable": true},
|
||||
"RMU1_ROTY": {"read_cmd": "X11MA-OP-RM1:ROTY.RBV", "write_cmd": "X11MA-OP-RM1:ROTY", "tolerance": 0.001, "restorable": true}
|
||||
},
|
||||
"PEEM_Girder": {
|
||||
|
||||
Reference in New Issue
Block a user