update configuration of smaract in optics hutch and experimental hutch. Correct some parameters in the readout of XBPMs and BIM. We also added an example for a Smaract stage in the user_template.yaml #218

Merged
wakonig_k merged 3 commits from update_bl_configs into main 2026-06-02 15:58:13 +02:00
4 changed files with 174 additions and 157 deletions
+61 -61
View File
@@ -1019,71 +1019,71 @@ dettrx:
# ### This requires galilrioesxbox device. On top of that the gain control devices and slow readback devices are built.
# ####################
# galilrioesxbox:
# description: Galil RIO for remote gain switching and slow reading XBox ES
# deviceClass: csaxs_bec.devices.omny.galil.galil_rio.GalilRIO
# deviceConfig:
# host: galilrioesxbox.psi.ch
# enabled: true
# onFailure: retry
# readOnly: false
# readoutPriority: baseline
# connectionTimeout: 20
galilrioesxbox:
description: Galil RIO for remote gain switching and slow reading XBox ES
deviceClass: csaxs_bec.devices.omny.galil.galil_rio.GalilRIO
deviceConfig:
host: galilrioesxbox.psi.ch
enabled: true
onFailure: retry
readOnly: false
readoutPriority: baseline
connectionTimeout: 20
# gain_bpm_xbox2:
# description: Gain control for BPM XBox2
# deviceClass: csaxs_bec.devices.pseudo_devices.bpm_control.BPMControl
# deviceConfig:
# gain_lsb: galilrioesxbox.digital_out.ch0 # Pin 10 -> Galil ch0
# gain_mid: galilrioesxbox.digital_out.ch1 # Pin 11 -> Galil ch1
# gain_msb: galilrioesxbox.digital_out.ch2 # Pin 12 -> Galil ch2
# coupling: galilrioesxbox.digital_out.ch3 # Pin 13 -> Galil ch3
# speed_mode: galilrioesxbox.digital_out.ch4 # Pin 14 -> Galil ch4
# enabled: true
# readoutPriority: baseline
# onFailure: retry
# needs:
# - galilrioesxbox
gain_bpm_xbox2:
description: Gain control for BPM XBox2
deviceClass: csaxs_bec.devices.pseudo_devices.bpm_control.BPMControl
deviceConfig:
gain_lsb: galilrioesxbox.digital_out.ch0 # Pin 10 -> Galil ch0
gain_mid: galilrioesxbox.digital_out.ch1 # Pin 11 -> Galil ch1
gain_msb: galilrioesxbox.digital_out.ch2 # Pin 12 -> Galil ch2
coupling: galilrioesxbox.digital_out.ch3 # Pin 13 -> Galil ch3
speed_mode: galilrioesxbox.digital_out.ch4 # Pin 14 -> Galil ch4
enabled: true
readoutPriority: baseline
onFailure: retry
needs:
- galilrioesxbox
# bpm_xbox2_slowrb:
# description: BPM Xbox 2 (First Xbox in ES hutch) readback
# deviceClass: csaxs_bec.devices.pseudo_devices.bpm.BPM
# deviceConfig:
# left_top: galilrioesxbox.analog_in.ch0
# right_top: galilrioesxbox.analog_in.ch1
# right_bot: galilrioesxbox.analog_in.ch2
# left_bot: galilrioesxbox.analog_in.ch3
# enabled: true
# readoutPriority: baseline
# onFailure: retry
# needs:
# - galilrioesxbox
bpm_xbox2_slowrb:
description: BPM Xbox 2 (First Xbox in ES hutch) readback
deviceClass: csaxs_bec.devices.pseudo_devices.bpm.BPM
deviceConfig:
left_top: galilrioesxbox.analog_in.ch0
right_top: galilrioesxbox.analog_in.ch1
right_bot: galilrioesxbox.analog_in.ch2
left_bot: galilrioesxbox.analog_in.ch3
enabled: true
readoutPriority: monitored
onFailure: retry
needs:
- galilrioesxbox
# gain_bim_xbox3:
# description: Gain control for beam intensity monitor ES Xbox3
# deviceClass: csaxs_bec.devices.pseudo_devices.bpm_control.BPMControl
# deviceConfig:
# gain_lsb: galilrioesxbox.digital_out.ch6 # Pin 10 -> Galil ch0
# gain_mid: galilrioesxbox.digital_out.ch7 # Pin 11 -> Galil ch1
# gain_msb: galilrioesxbox.digital_out.ch8 # Pin 12 -> Galil ch2
# coupling: galilrioesxbox.digital_out.ch9 # Pin 13 -> Galil ch3
# speed_mode: galilrioesxbox.digital_out.ch10 # Pin 14 -> Galil ch4
# enabled: true
# readoutPriority: baseline
# onFailure: retry
# needs:
# - galilrioesxbox
gain_bim_xbox3:
description: Gain control for beam intensity monitor ES Xbox3
deviceClass: csaxs_bec.devices.pseudo_devices.bpm_control.BPMControl
deviceConfig:
gain_lsb: galilrioesxbox.digital_out.ch6 # Pin 10 -> Galil ch0
gain_mid: galilrioesxbox.digital_out.ch7 # Pin 11 -> Galil ch1
gain_msb: galilrioesxbox.digital_out.ch8 # Pin 12 -> Galil ch2
coupling: galilrioesxbox.digital_out.ch9 # Pin 13 -> Galil ch3
speed_mode: galilrioesxbox.digital_out.ch10 # Pin 14 -> Galil ch4
enabled: true
readoutPriority: baseline
onFailure: retry
needs:
- galilrioesxbox
# bim_xbox3_slowrb:
# description: Beam intensity slow readback ES XBox3
# deviceClass: csaxs_bec.devices.pseudo_devices.signal_forwarder.SignalForwarder
# deviceConfig:
# signal: galilrioesxbox.analog_in.ch6
# enabled: true
# readoutPriority: baseline
# onFailure: retry
# needs:
# - galilrioesxbox
bim_xbox3_slowrb:
description: Beam intensity slow readback ES XBox3
deviceClass: csaxs_bec.devices.pseudo_devices.signal_forwarder.SignalForwarder
deviceConfig:
signal: galilrioesxbox.analog_in.ch6
enabled: true
readoutPriority: monitored
onFailure: retry
needs:
- galilrioesxbox
+82 -82
View File
@@ -91,88 +91,88 @@ ccm_energy:
######################## SMARACT STAGES ##################################
##########################################################################
# xbpm2x:
# description: X-ray beam position monitor 1 in OPbox
# deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
# deviceConfig:
# axis_Id: A
# host: x12sa-eb-smaract-mcs-03.psi.ch
# limits:
# - -200
# - 200
# port: 5000
# sign: 1
# enabled: true
# onFailure: buffer
# readOnly: false
# readoutPriority: baseline
# connectionTimeout: 20
# userParameter:
# # bl_smar_stage to use csaxs reference method. assign number according to axis channel
# bl_smar_stage: 0
# xbpm2y:
# description: X-ray beam position monitor 1 in OPbox
# deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
# deviceConfig:
# axis_Id: B
# host: x12sa-eb-smaract-mcs-03.psi.ch
# limits:
# - -200
# - 200
# port: 5000
# sign: 1
# enabled: true
# onFailure: buffer
# readOnly: false
# readoutPriority: baseline
# connectionTimeout: 20
# userParameter:
# # bl_smar_stage to use csaxs reference method. assign number according to axis channel
# bl_smar_stage: 1
# cu_foilx:
# description: Cu foil in OPbox
# deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
# deviceConfig:
# axis_Id: C
# host: x12sa-eb-smaract-mcs-03.psi.ch
# limits:
# - -200
# - 200
# port: 5000
# sign: 1
# enabled: true
# onFailure: buffer
# readOnly: false
# readoutPriority: baseline
# connectionTimeout: 20
# userParameter:
# # bl_smar_stage to use csaxs reference method. assign number according to axis channel
# bl_smar_stage: 2
# scinx:
# description: scintillator in OPbox
# deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
# deviceConfig:
# axis_Id: D
# host: x12sa-eb-smaract-mcs-03.psi.ch
# limits:
# - -200
# - 200
# port: 5000
# sign: 1
# enabled: true
# onFailure: buffer
# readOnly: false
# readoutPriority: baseline
# connectionTimeout: 20
# userParameter:
# # bl_smar_stage to use csaxs reference method. assign number according to axis channel
# bl_smar_stage: 3
xbpm2x:
description: X-ray beam position monitor 1 in OPbox
deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
deviceConfig:
axis_Id: A
host: x12sa-eb-smaract-mcs-03.psi.ch
limits:
- -200
- 200
port: 5000
sign: 1
enabled: true
onFailure: retry
readOnly: false
readoutPriority: baseline
connectionTimeout: 20
userParameter:
# bl_smar_stage to use csaxs reference method. assign number according to axis channel
init_position: 22.5
bl_smar_stage: 0
xbpm2y:
description: X-ray beam position monitor 1 in OPbox
deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
deviceConfig:
axis_Id: B
host: x12sa-eb-smaract-mcs-03.psi.ch
limits:
- -200
- 200
port: 5000
sign: 1
enabled: true
onFailure: retry
readOnly: false
readoutPriority: baseline
connectionTimeout: 20
userParameter:
# bl_smar_stage to use csaxs reference method. assign number according to axis channel
bl_smar_stage: 1
scinx:
description: scintillator in OPbox
deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
deviceConfig:
axis_Id: E
host: x12sa-eb-smaract-mcs-03.psi.ch
limits:
- -200
- 200
port: 5000
sign: 1
enabled: true
onFailure: retry
readOnly: false
readoutPriority: baseline
connectionTimeout: 20
userParameter:
# bl_smar_stage to use csaxs reference method. assign number according to axis channel
init_position: -23
bl_smar_stage: 4
poly:
description: polarizer holder in OPbox
deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
deviceConfig:
axis_Id: D
host: x12sa-eb-smaract-mcs-03.psi.ch
limits:
- -200
- 200
port: 5000
sign: 1
enabled: true
onFailure: retry
readOnly: false
readoutPriority: baseline
connectionTimeout: 20
userParameter:
# bl_smar_stage to use csaxs reference method. assign number according to axis channel
init_position: -23
bl_smar_stage: 3
# dmm1_trx_readback_example: # This is the same template as for i.e. bpm4i
# description: 'This is an example of a read-only Epics signal'
@@ -214,7 +214,7 @@ ccm_energy:
# enabled: true
# onFailure: retry
# readOnly: false
# readoutPriority: baseline
# readoutPriority: monitored
# connectionTimeout: 20
# gain_bpm_xbox1:
@@ -227,7 +227,7 @@ ccm_energy:
# coupling: galilrioop.digital_out.ch3 # Pin 13 -> Galil ch3
# speed_mode: galilrioop.digital_out.ch4 # Pin 14 -> Galil ch4
# enabled: true
# readoutPriority: baseline
# readoutPriority: monitored
# onFailure: retry
# needs:
# - galilrioop
@@ -241,7 +241,7 @@ ccm_energy:
# right_bot: galilrioop.analog_in.ch2
# left_bot: galilrioop.analog_in.ch3
# enabled: true
# readoutPriority: baseline
# readoutPriority: monitored
# onFailure: retry
# needs:
# - galilrioop
+26 -1
View File
@@ -145,4 +145,29 @@ test_cam_mic:
onFailure: buffer
readOnly: false
readoutPriority: async
############################################################
####################### Smaract ############################
############################################################
xbpm3x:
description: X-ray beam position x monitor 1 in ESbox1
deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor
deviceConfig:
axis_Id: A
host: x12sa-eb-smaract-mcs-04.psi.ch
limits:
- -200
- 200
port: 5000
sign: -1
# precision: 3
# tolerance: 0.005
enabled: true
onFailure: retry
readOnly: false
readoutPriority: baseline
connectionTimeout: 20
userParameter:
init_position: -22.5
# bl_smar_stage to use csaxs reference method. assign number according to axis channel
bl_smar_stage: 0
@@ -15,27 +15,19 @@ class SignalForwarder(PSIPseudoDeviceBase):
BECProcessedSignal,
name="signal",
model_config=None,
kind=Kind.config,
# kind=Kind.config,
kind=Kind.normal,
doc="Forwarded signal",
)
def __init__(
self,
name,
signal: str,
device_manager=None,
scan_info=None,
**kwargs,
):
def __init__(self, name, signal: str, device_manager=None, scan_info=None, **kwargs):
super().__init__(name=name, device_manager=device_manager, scan_info=scan_info, **kwargs)
src = self.signal.get_device_object_from_bec(
object_name=signal,
signal_name=self.name,
device_manager=device_manager,
object_name=signal, signal_name=self.name, device_manager=device_manager
)
self.signal.set_compute_method(self._compute_signal, signal=src)
def _compute_signal(self, signal: Signal) -> float:
return signal.get()
return signal.get()