EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
<== Date ==> <== Thread ==>

Subject: Re: Use sscan with transform record coordinate motion
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>
Date: Wed, 20 Sep 2023 12:23:25 +0000
Hi Abdalla,

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:

  1. Instantiate the motor records with soft device support using the pseudomotor.db file in motor.  Here is an example:

file "$(MOTOR)/db/pseudoMotor.db"
{
pattern
{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}
}

  1. 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"
{
pattern
{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.
Mark



From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Abdalla Ahmad via Tech-talk <tech-talk at aps.anl.gov>
Sent: Wednesday, September 20, 2023 4:26 AM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Use sscan with transform record coordinate motion
 

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

 


Replies:
RE: Use sscan with transform record coordinate motion Abdalla Ahmad via Tech-talk
References:
Use sscan with transform record coordinate motion Abdalla Ahmad via Tech-talk

Navigate by Date:
Prev: EPICS 7 bug with epicsStdioRedirect.h / epicsTime.h Priller, John via Tech-talk
Next: Re: EPICS 7 bug with epicsStdioRedirect.h / epicsTime.h Michael Davidsaver via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
Navigate by Thread:
Prev: Use sscan with transform record coordinate motion Abdalla Ahmad via Tech-talk
Next: RE: Use sscan with transform record coordinate motion Abdalla Ahmad via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
ANJ, 03 Oct 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·