Hi Jesse,
sscan can scan any PV, so it can scan the ao records in 2slit.db. That database supports caputCallback, so it works with the sscan record. I have not tried the 2slit_soft. That might be good for SPEC which
really does like to scan “motors”.
Mark
From: Jesse Hopkins <jhopkins1 at iit.edu>
Sent: Tuesday, October 15, 2024 2:20 PM
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: EPICS Tech Talk <tech-talk at aps.anl.gov>
Subject: Re: [Ext] RE: Help setting up coordinated motions for Galil controller
Hi Mark,
Thanks! Based on what I was reading in the optics module docs, it looks like the 2slit.db definitions return the center and gap positions as AOs. We often want to do things like scan the slit center and gap positions/sizes, so I'm assuming
the 2slit_soft.vdb definitions would be better, since those provide a soft motor that I could then use with sscan?
----
Jesse Hopkins, PhD
Deputy Director
BioCAT, Sector 18
Advanced Photon Source
Hi Jesse,
I have not yet started to use the CS motors, so I can’t help with those.
We are using the 2slit.db for slits, with template file entries like this:
# BMD slits in vacuum
file "$(OPTICS)/db/2slit.db"
{
pattern
{P, SLIT, mXp, mXn}
{13BMD:, BMDV, m31, m32}
{13BMD:, BMDH, m30, m29}
}
Mark
Hi folks,
At my beamline we're working on switching over to the Galil DMC41x3 controllers for a lot of our basic motion controls. I have a couple of controllers set up, and I'm trying to
figure out how to set up coordinated motion, in particular gap and center pseudo motors for a couple of sets of slits (and, eventually, some optics such as monochromator and mirrors).
It seems like the most straightforward approach for this would be to use the Galil coordinate system (CS) motors, motors I-P, and define appropriate forward/back transforms for
the motors of interest. However, I can't figure out the right way to do those definitions. I defined the basic CS and kinematics as in the GalilTestApp from the git, and as far as I can tell there doesn't seem to be any additional setup that needs to be done
on the database side (but I may well be wrong about this). I tried opening the CS motor kinematics window (e.g. "Motor I kinematics", which opens the galil_csmotor_kinematics screen), which provides access to the 8 reverse transforms and one forward transform
for that motor, but I can't seem to set the values of the transform. For example, I try to set the motor I forward transform as (A-B)/2 (slit center position) and get the following message:
Tue Oct 15 10:54:41 CDT 2024
textEntryValueChanged: Invalid value:
Name: 18ID_DMC_E04:I_FTRANSFORM_SP
Value: "(A-B)/2"
I've tried various other permutations, such as I=(A-B)/2, or simply just A, for example, and always get the same error message. I also tried using the epics PVs rather than the
channel and got the same message. I figure I must be missing something pretty fundamental about how to set this up, and I'm hoping someone can point me in the right direction.
I'm running the IOC with the following:
DMC controller firmware: 1.3h
Another option might be to do this using something like the slit soft motor support in the synApps Optics module. Is this what most people are still doing, or is there another standard
approach for this these days?
----
Jesse Hopkins, PhD
Deputy Director
BioCAT, Sector 18
Advanced Photon Source
|