Hello Mark
Thanks for the feedback. The setup is working, will test it with sscan soon. I have a question, what is “grecord” in sumDiff2D.db? is it different from standard
“record”?
Best Regards,
Abdalla.
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Wednesday, September 20, 2023 3:23 PM
To: tech-talk at aps.anl.gov; Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>
Subject: Re: Use sscan with transform record coordinate motion
I think the best way to do what you are doing is with the soft motor record capability in the motor module. This involves 2 steps:
-
Instantiate the motor records with soft device support using the pseudomotor.db file in motor. Here is an example:
file "$(MOTOR)/db/pseudoMotor.db"
{P, M, DINP, OUT, RDBL, STOO, DESC, EGU, DIR, VELO, VBAS,
ACCL, BDST, BVEL, BACC, MRES, RRES, PREC, DHLM, DLLM}
{13BMD:, pm5, "13BMD:KBH:Done NPP NMS", "13BMD:pm5DVAL.VAL PP MS", "13BMD:KBH:Readback.G NPP NMS", "13BMD:KBH:Stop PP MS", "Curvature", mm, Pos, 1, .1,
.1, 0, 1, .1, .1, 1.0, 1, 10000, -10000}
{13BMD:, pm6, "13BMD:KBH:Done NPP NMS", "13BMD:pm6DVAL.VAL PP MS", "13BMD:KBH:Readback.H NPP NMS", "13BMD:KBH:Stop PP MS", "Ellipticity", mm, Pos, 1, .1,
.1, 0, 1, .1, .1, 1.0, 1, 10000, -10000}
-
Load a database that implements the geometry code connecting the real motors with the pseudo motors. There is a database called symDiff2D.db where the first pseudomotor moves both real motors in the same direction (e.g. slit position) and the second pseudomotor
moves them in opposite directions (e.g. slit width).
file "$(MOTOR)/db/sumDiff2D.db"
{P, T, SUM, DIFF, M1DRV, M1RBV, M2DRV, M2RBV, M1STOP, M1DONE, M2STOP, M2DONE, PREC}
{13BMD:, KBH:, pm5, pm6, m47.VAL, m47.RBV, m48.VAL, m48.RBV, m47.STOP, m47.DMOV, m48.STOP, m48.DMOV, 1}
The above example is actually for a mirror bender where the SUM pseudomotor bends both ends of the mirror in the same direction (curvature) and the second pseudomotor bends them opposite (ellipticity). But it
can be used for a slit or many other mechanical systems with 2 motors.
The nice things about using the soft motor record:
-
Works correction with the sscan record, it will wait for the real motors to complete their motion.
-
Has the ability to stop the pseudomotor and both real motors will stop.
-
Existing OPI screens for motor records can be used.
Hi
We want to use the sscan module to scan a coordinate motion for a slit system. The slit’s gap and center are calculated using two transform records, forward and reverse (COPT = Always). When starting a scan,
if the scan’s start point is far from the current position, the scan goes quickly through the scan points and does not wait for the target set point unlike when using a motor record where the scan waits for a callback indicating the positioner is done moving.
If we relatively increase the positioners’ settling time, the scan goes through all scan points.
I would like to ask, is there a way to tell the scan record from the transform record that the positioner is done moving and go to the next step of the scan?
Abdalla Al-Dalleh
Control Engineer
SESAME (Synchrotron-light for Experimental Science and Applications in the Middle East)
P.O. Box 7, Allan 19252, Jordan
Tel: +96253511348 , ext. 265
Fax: +96253511423
abdalla.ahmad at sesame.org.jo
www.sesame.org.jo
|