Added positioners #26

Merged
hitz_s merged 1 commits from feat-add-positioners into main 2026-06-03 16:00:30 +02:00
5 changed files with 274 additions and 350 deletions
@@ -1,27 +0,0 @@
manip_new_trx:
description: Sample Manipulator X-Translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-MAN:TRX
enabled: true
onFailure: retry
readoutPriority: baseline
softwareTrigger: false
manip_new_try:
description: Sample Manipulator Y-Translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-MAN:TRY
enabled: true
onFailure: retry
readoutPriority: baseline
softwareTrigger: false
manip_new_trz:
description: Sample Manipulator Z - Along beam
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-MAN:TRZ
enabled: true
onFailure: retry
readoutPriority: baseline
softwareTrigger: false
@@ -0,0 +1,115 @@
###################################
## Optical Table ES1 ##
###################################
es1ot_trx:
readoutPriority: baseline
description: ES1 Table X Translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-ET1:TRX
onFailure: retry
enabled: true
softwareTrigger: false
es1ot_try:
readoutPriority: baseline
description: ES1 Table Y Translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-ET1:TRY
onFailure: retry
enabled: true
softwareTrigger: false
###################################
## Exit Window ##
###################################
eswi_try:
readoutPriority: baseline
description: End Station 0 Exit Window Y-translation
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-PP1:MOT8
onFailure: retry
enabled: true
softwareTrigger: false
###################################
## Ionization Chambers ##
###################################
es1ic0_try:
readoutPriority: baseline
description: Ionization Chamber IC0 Y-translation
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-IC1:TRY
onFailure: retry
enabled: true
softwareTrigger: false
es1ic1_try:
readoutPriority: baseline
description: Ionization Chamber IC1 Y-translation
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-IC2:TRY
onFailure: retry
enabled: true
softwareTrigger: false
es1ic2_try:
readoutPriority: baseline
description: Ionization Chamber IC2 Y-translation
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-IC3:TRY
onFailure: retry
enabled: true
softwareTrigger: false
###################################
## Sample Manipulator ##
###################################
es1man_trx:
readoutPriority: baseline
description: Sample Manipulator X-Translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-MAN:TRX
enabled: true
onFailure: retry
softwareTrigger: false
es1man_try:
readoutPriority: baseline
description: Sample Manipulator Y-Translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-MAN:TRY
enabled: true
onFailure: retry
softwareTrigger: false
es1man_trz:
readoutPriority: baseline
description: Sample Manipulator Z-Translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-MAN:TRZ
enabled: true
onFailure: retry
softwareTrigger: false
es1man_roty:
readoutPriority: baseline
description: Sample Manipulator Y-Rotation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-ES1-MAN:ROTY
enabled: true
onFailure: retry
softwareTrigger: false
+119 -295
View File
@@ -27,177 +27,91 @@ mo1_trx:
## Optics Slits + Beam Monitor 1 ##
###################################
# sl1_trxr:
# readoutPriority: baseline
# description: Optics slits 1 X-translation Ring-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:TRXR
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
bm1_try:
readoutPriority: baseline
description: Beam Monitor 1 Y-translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-OP-BM2:TR2
onFailure: retry
enabled: true
softwareTrigger: false
deviceTags:
- optics
- slits
# sl1_trxw:
# readoutPriority: baseline
# description: Optics slits 1 X-translation Wall-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:TRXW
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
sl1_centerx:
readoutPriority: baseline
description: Optics slits X-center
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
prefix: X10DA-OP-SH
readback_suffix: t2.D
setpoint_suffix: center
atol: 0.02
egu: mm
onFailure: retry
enabled: true
softwareTrigger: false
deviceTags:
- optics
- slits
# sl1_tryb:
# readoutPriority: baseline
# description: Optics slits 1 Y-translation Bottom-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:TRYB
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
sl1_gapx:
readoutPriority: baseline
description: Optics slits X-gap
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
prefix: X10DA-OP-SH
readback_suffix: t2.C
setpoint_suffix: size
atol: 0.02
egu: mm
onFailure: retry
enabled: true
softwareTrigger: false
deviceTags:
- optics
- slits
# sl1_tryt:
# readoutPriority: baseline
# description: Optics slits 1 X-translation Top-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:TRYT
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
sl1_centery:
readoutPriority: baseline
description: Optics slits Y-center
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
prefix: X10DA-OP-SV
readback_suffix: t2.D
setpoint_suffix: center
atol: 0.02
egu: mm
onFailure: retry
enabled: true
softwareTrigger: false
deviceTags:
- optics
- slits
# bm1_try:
# readoutPriority: baseline
# description: Beam Monitor 1 Y-translation
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-BM1:TRY
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl1_centerx:
# readoutPriority: baseline
# description: Optics slits 1 X-center
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:CENTERX
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl1_gapx:
# readoutPriority: baseline
# description: Optics slits 1 X-gap
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:GAPX
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl1_centery:
# readoutPriority: baseline
# description: Optics slits 1 Y-center
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:CENTERY
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl1_gapy:
# readoutPriority: baseline
# description: Optics slits 1 Y-gap
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL1:GAPY
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
sl1_gapy:
readoutPriority: baseline
description: Optics slits Y-gap
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
prefix: X10DA-OP-SV
readback_suffix: t2.C
setpoint_suffix: size
atol: 0.02
egu: mm
onFailure: retry
enabled: true
softwareTrigger: false
deviceTags:
- optics
- slits
###################################
## Focusing Mirror ##
###################################
# fm_trxu:
# readoutPriority: baseline
# description: Focusing Mirror X-translation upstream
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-FM:TRXU
# onFailure: retry
# enabled: true
# softwareTrigger: false
# fm_trxd:
# readoutPriority: baseline
# description: Focusing Mirror X-translation downstream
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-FM:TRXD
# onFailure: retry
# enabled: true
# softwareTrigger: false
# fm_tryd:
# readoutPriority: baseline
# description: Focusing Mirror Y-translation downstream
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-FM:TRYD
# onFailure: retry
# enabled: true
# softwareTrigger: false
# fm_tryur:
# readoutPriority: baseline
# description: Focusing Mirror Y-translation upstream ring
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-FM:TRYUR
# onFailure: retry
# enabled: true
# softwareTrigger: false
# fm_tryuw:
# readoutPriority: baseline
# description: Focusing Mirror Y-translation upstream wall
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-FM:TRYUW
# onFailure: retry
# enabled: true
# softwareTrigger: false
fm_bnd:
readoutPriority: baseline
description: Focusing Mirror bender
@@ -222,10 +136,13 @@ fm_bnd:
fm_rotx:
readoutPriority: baseline
description: Focusing Morror Pitch
deviceClass: ophyd.EpicsSignalRO
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
auto_monitor: true
read_pv: X10DA-OP-MI1:pitch
prefix: 'X10DA-OP-MI1:'
readback_suffix: m2.F
setpoint_suffix: pitch
atol: 0.01
egu: mrad
onFailure: retry
enabled: true
softwareTrigger: false
@@ -233,10 +150,13 @@ fm_rotx:
fm_roty:
readoutPriority: baseline
description: Focusing Morror Yaw
deviceClass: ophyd.EpicsSignalRO
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
auto_monitor: true
read_pv: X10DA-OP-MI1:yaw
prefix: 'X10DA-OP-MI1:'
readback_suffix: t2.C
setpoint_suffix: yaw
atol: 0.01
egu: mrad
onFailure: retry
enabled: true
softwareTrigger: false
@@ -244,21 +164,26 @@ fm_roty:
fm_rotz:
readoutPriority: baseline
description: Focusing Morror Roll
deviceClass: ophyd.EpicsSignalRO
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
auto_monitor: true
read_pv: X10DA-OP-MI1:roll
onFailure: retry
prefix: 'X10DA-OP-MI1:'
readback_suffix: m2.E
setpoint_suffix: roll
atol: 0.01
egu: mrad
enabled: true
softwareTrigger: false
fm_trx:
readoutPriority: baseline
description: Focusing Morror Center Point X
deviceClass: ophyd.EpicsSignalRO
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
auto_monitor: true
read_pv: X10DA-OP-MI1:trans
prefix: 'X10DA-OP-MI1:'
readback_suffix: t2.D
setpoint_suffix: trans
atol: 0.01
egu: mm
onFailure: retry
enabled: true
softwareTrigger: false
@@ -266,131 +191,30 @@ fm_trx:
fm_try:
readoutPriority: baseline
description: Focusing Morror Center Point Y
deviceClass: ophyd.EpicsSignalRO
deviceClass: superxas_bec.devices.epics_pv_motor.EpicsPVMotor
deviceConfig:
auto_monitor: true
read_pv: X10DA-OP-MI1:y
prefix: 'X10DA-OP-MI1:'
readback_suffix: m2.D
setpoint_suffix: y
atol: 0.01
egu: mm
onFailure: retry
enabled: true
softwareTrigger: false
###################################
## Optics Slits + Beam Monitor 2 ##
## Beam Monitor 2 ##
###################################
# sl2_trxr:
# readoutPriority: baseline
# description: Optics slits 2 X-translation Ring-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:TRXR
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl2_trxw:
# readoutPriority: baseline
# description: Optics slits 2 X-translation Wall-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:TRXW
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl2_tryb:
# readoutPriority: baseline
# description: Optics slits 2 Y-translation Bottom-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:TRYB
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl2_tryt:
# readoutPriority: baseline
# description: Optics slits 2 X-translation Top-edge
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:TRYT
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# bm2_try:
# readoutPriority: baseline
# description: Beam Monitor 2 Y-translation
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-BM2:TRY
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl2_centerx:
# readoutPriority: baseline
# description: Optics slits 2 X-center
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:CENTERX
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl2_gapx:
# readoutPriority: baseline
# description: Optics slits 2 X-gap
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:GAPX
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl2_centery:
# readoutPriority: baseline
# description: Optics slits 2 Y-center
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:CENTERY
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
# sl2_gapy:
# readoutPriority: baseline
# description: Optics slits 2 Y-gap
# deviceClass: ophyd.EpicsMotor
# deviceConfig:
# prefix: X10DA-OP-SL2:GAPY
# onFailure: retry
# enabled: true
# softwareTrigger: false
# deviceTags:
# - optics
# - slits
bm2_try:
readoutPriority: baseline
description: Beam Monitor 2 Y-translation
deviceClass: ophyd.EpicsMotor
deviceConfig:
prefix: X10DA-OP-BM3:TR2
onFailure: retry
enabled: true
softwareTrigger: false
deviceTags:
- optics
- slits
@@ -7,10 +7,6 @@
machine_config:
- !include ./x10da_machine.yaml
## Beam Monitors OP + EH
# beam_monitors_config:
# - !include ./x10da_beam_monitors.yaml
###################################
## Frontend ##
###################################
@@ -51,15 +47,6 @@ mo1_bragg:
onFailure: retry
enabled: true
softwareTrigger: false
# mo1_bragg_angle:
# readoutPriority: baseline
# description: Positioner for the Monochromator
# deviceClass: superxas_bec.devices.mo1_bragg.mo1_bragg_angle.Mo1BraggAngle
# deviceConfig:
# prefix: "X10DA-OP-MO1:BRAGG:"
# onFailure: retry
# enabled: true
# softwareTrigger: false
# Remaining optics hutch
optics_config:
@@ -80,19 +67,6 @@ nidaq:
enabled: true
softwareTrigger: false
## XAS (ICx, SDD, ref foils)
# xas_config:
# - !include ./x10da_xas.yaml
## XRD (Pilatus, pinhole, beamstop)
#xrd_config:
# - !include ./x10da_xrd.yaml
# Commented out because too slow
## Hutch cameras
# hutch_cams:
# - !include ./x10da_hutch_cameras.yaml
## Remaining experimental hutch
# es_config:
# - !include ./x10da_experimental_hutch.yaml
es_config:
- !include ./x10da_experimental_hutch.yaml
+38
View File
@@ -0,0 +1,38 @@
"""Module for the Epics PV Positioners of SuperXAS"""
from bec_lib.logger import bec_logger
from ophyd import EpicsSignal, EpicsSignalRO
from ophyd import FormattedComponent as FCpt
from ophyd.pv_positioner import PVPositionerIsClose
logger = bec_logger.logger
class EpicsPVMotor(PVPositionerIsClose):
"""Positioner without a motorRecord, just two PVs for
readback and setpoint.
"""
readback = FCpt(
EpicsSignalRO, "{self.prefix}{self.readback_suffix}", kind="hinted", auto_monitor=True
)
setpoint = FCpt(
EpicsSignal, "{self.prefix}{self.setpoint_suffix}", kind="normal", auto_monitor=True
)
def __init__(
self,
*,
name,
prefix: str,
readback_suffix: str = "",
setpoint_suffix: str = "",
atol: float,
rtol: float = 0,
egu: str = "",
**kwargs,
):
self.readback_suffix = readback_suffix
self.setpoint_suffix = setpoint_suffix
super().__init__(prefix, name=name, egu=egu, atol=atol, rtol=rtol, **kwargs)
self.readback.name = self.name