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  <20152016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Motor Record monitoring of Demand Value
From: "Pearson, Matthew R." <[email protected]>
To: "[email protected]" <[email protected]>
Cc: "[email protected] list" <[email protected]>
Date: Thu, 24 Sep 2015 14:36:21 +0000
Hi Giles,

A new NTM mode might make sense to solve this. 

However, since you're using the model 3 driver support, another way would be to write directly to the motorMoveAbs parameter in the driver using a separate ao record (using the MOTOR_MOVE_ABS string in the asyn OUT link). You'd need to have a separate record for each motor, with the asyn address specifying the axis. Then modify the high level software that does the deferred moves to write to these new PVs instead of the motor record VAL field.

Although there would be no callback support for the end of the move, but this could be done via a busy record and a calc record that looks at the motor record DMOV field. So maybe it's simpler to have a new NTM mode.

Cheers,
Matt



On Sep 24, 2015, at 8:37 AM, Mark Rivers <[email protected]> wrote:

> Hi Giles,
> 
> An alternative approach you might consider is to use the new ProfileMove API of the Model 3 motor drivers.  This is what we use for coordinated multi-axis motion on the XPS.  Your client send an array of target positions for each axis in waveform records.  In your case that might be a 2-element array if there is only a start and end position, but in general it can be an arbitrary move along a non-linear path in N-space.  Your PMAC driver then has complete control on how that move is implemented, rather than relying on the behavior of the motor record.  Your driver can still read back the actual positions while the motor is moving to have the motor record RBV field update correctly.  
> 
> The Model 3 XPS driver (XPSController.cpp, XPSAxis.cpp) is an example of how this is implemented for that controller.
> 
> Mark
> 
> 
> ________________________________________
> From: [email protected] [[email protected]] on behalf of [email protected] [[email protected]]
> Sent: Thursday, September 24, 2015 6:31 AM
> To: [email protected]; [email protected]
> Subject: Motor Record monitoring of Demand Value
> 
> Hello,
> 
> I have a requirement for the motor record to have a mode in which it always immediately sends new demand positions down to the driver (always call move).
> 
> I believe at present the NTM behaviour does not include this capability.
> 
> I am looking for advice as to the best approach to adding this option in the motor record. Or even better, information on how to achieve this with the existing motor record.
> 
> See below for a detailed explanation of the requirement.
> 
> Many thanks,
>   Giles.
> 
> 
> 
> I have implemented an extension to deferred moves in the type 3 driver for the Delta Tau Pmac. This new type of deferred move is coordinated so that all axes start and finish at the same time with the longest move determining the speed of all axes. This uses a pmac coordinate system and motion program to control the axes. It is used for the 6 circle diffractometer on I16, all 6 axes are in the same coordinate system - in a deferred coordinated move the driver passes parameters to the motion program giving the new position one or more axes, then executes the program.
> 
> The approach has been very successful except that occasionally the driver does not receive all of the demand positions that the client sends. In one instance this week, this resulted in a crash.
> 
> I am guessing this happens because the motor record does not always send a demand value when it sees an axis is moving. Consider the following steps
> 
> 
>  1.  a previous move of axes kappa and kphi completes and causes a momentary adjustment in ktheta
>  2.  ktheta is polled and its in position state is false, so its motor record DMOV is now false (and will be until the next poll in 1/10 seconds)
>  3.  client sets PV -> driver mode = coordinated deferred
>  4.  client sets new demand position on kappa
>  5.  motor record calls move and the driver records the demanded position
>  6.  client sets demand on ktheta
>  7.  the new demand is for the same direction as ktheta is currently travelling and further than its current demand so NTM behaviour means that the driver is not called yet
>  8.  client sets PV -> driver mode = GO
>  9.  the driver sends the demanded positions and executes the motion program - but it has only seen kappa demand and ktheta does not move
>  10. 1/10 sec after step 2 ktheta is polled and found to be in position - the demand will now be sent to the driver but all the axes are now under control of the motion program until kappa reaches its target.
> 
> 
> 
> 
> --
> This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
> Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
> Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
> Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
> 
> 
> 
> 



References:
Motor Record monitoring of Demand Value giles.knap
RE: Motor Record monitoring of Demand Value Mark Rivers

Navigate by Date:
Prev: Re: Unable to build support modules on Windows, with base 3.15.2 Mark Engbretson
Next: signal enable/disable in drvSIS3820 driver Hovanes Egiyan
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Motor Record monitoring of Demand Value Mark Rivers
Next: Re: Motor Record monitoring of Demand Value Ron Sluiter
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·