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 2023 2024 2025 | 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 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Access motor controller target positions of other axes in asynMotorAxis::move |
From: | Mark L Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, Laurenz Rettig <rettig at fhi-berlin.mpg.de> |
Date: | Fri, 12 Nov 2021 13:37:19 +0000 |
Hi Laurenz,
Your asynMotorController class has access to all of the axes.
You can look at the Newport XPS driver for an example of how to do this.
That driver has the option of "deferred moves". This means that as each axis is told to move the desired position is cached. When that flag is cleared then all of the axes begin
to move at the same time. Note that this is tied to the concept of motion "groups" in the XPS, so the implementation may need to be different for your driver.
asynMotorController and asynMotorAxis also support the concept of ProfileMoves. For this the motion path for each axis is defined in a waveform record. The time per motion element
is also defined, which produces the velocity for each axis in that element. Then the controller is told to execute that motion profile, so that all the axes can move on a complex trajectory in N space.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Laurenz Rettig via Tech-talk <tech-talk at aps.anl.gov>
Sent: Friday, November 12, 2021 3:58 AM To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov> Subject: Access motor controller target positions of other axes in asynMotorAxis::move Hi,
I'm working on a motor driver (Model 3) for a SPECS manipulator controller. In the communication with the controller, I have to provide the target positions of all axes at once, if I want to get it moving correctly. The move function in the asynMotorAxis class only moves one axis at a time. How can I access the target positions (i.e. the values of the main motor axes PVs) of the other axes in the asynMotorAxis::move() function, in order to construct the right command for the controller? Or is there any better way, like a combined axes command, or so? Thanks, Laurenz -- Dr. Laurenz Rettig rettig at fhi-berlin.mpg.de Emmy Noether Research Group Dynamics of Correlated Materials Fritz Haber Institute of the Max Planck Society Department of Physical Chemistry Faradayweg 4-6 Tel: +49 30 8413 5225 14195 Berlin, Germany Fax: +49 30 8413-5387 |