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> | 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> |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Questions about creating a Model 3 Driver for stepper motor axis |
From: | Torsten Bögershausen via Tech-talk <tech-talk at aps.anl.gov> |
To: | Paul-Elie GUILLOT <peguillot at irelec-alcen.com>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 17 Jan 2024 10:48:05 +0000 |
Salut Paul-Elie, welcome to the world of motion and EPICS. I try to answer some. First of all, we do our microstepping, hadnling the encoder, and calculating EGU (mm) inside the Beckhoff, using TwinCAT and the motion libraries. (NC in TwinCAT speech). (I need to mention that we also have a complete different solution, where not TwinCAT is used, but Linux. This does include an EPICS driver and everything.
Please see
https://github.com/epics-modules/ecmc ) If you go for TwinCAT, what do you use ? and then written a model 3 driver, that talks to the PLC. Of course, the PLC program must match the EPICS driver, and vice versa. Over the years, there are 2 generations of PLC/EPICS, the first one more straightforward, the second one more advanced. Both versions of the PLC code are (still) in one EPICS module . The first generation of an Axis is here : <https://github.com/EuropeanSpallationSource/m-epics-ethercatmc/blob/master/ethercatmcApp/src/ethercatmcAxis.cpp>
(And then you find the other stuff as well, I think). HTH From:
Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Paul-Elie GUILLOT via Tech-talk <tech-talk at aps.anl.gov> Hello to everyone at tech-talk, I am currently working on implementing an EPICS driver for controlling axis which are stepper motors with absolute encoders. I have read multiple documentation and I have started to implement a driver based on the Model 3 drivers, I have heavily inspired myself from the MCB4B Driver for ACS and the Phytron driver. I am starting to get a better understanding on how it works but I still need clarifications on some points. Would you be so kind to help me on those matters? First of all,
Because from what I gathered the motorEncoderPosition_ must be linked to the Field REP and is the hardware counter of the encoder.
Is it defined by the user, or should initialize UEIP at 1, in my template defined in “motor.substitutions.irelec” adding the field UEIP to my .db file (which is derived from basic_asyn_motor.db
with some field added)?
In Model 3, it seems the asynMotorController directly handles the modification of its parameters by calling the needed function of an axis. How does the record interface with the asynMotorController
parameters? I can’t find where devMotorAsyn.c writes to the asynMotorController parameters. Bottom line of this topic is: Can I use the record advanced functions such as backlash compensation even with a Model 3 Driver?
It could be the home procedure, just sending a setposition() to the stepper based on the encoder position? Or does the home position require motion?
I need it’s a lot of questions, I hope it is clear enough. In any case, thank you for your time and help. Paul-Elie GUILLOT Technology Manager in Automation and Robotics Téléphone: +33
(0)4 76 44 98
93 20 rue du Tour de l'Eau F-38400 St Martin d’Hères Cedex Phone : +33 (0)4 76 44 12 96 IRELEC after sales services – please send your request to
support at irelec-alcen.zendesk.com
Any disclosure, use, dissemination or reproduction (either whole or partial) of this message or the information contained herein
is strictly prohibited without prior consent of Irelec. |