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: using motor / steppermotor record for Trinamic TMCM-351 controller
From: Mark Rivers <[email protected]>
To: Christian Pauly <[email protected]>, "[email protected]" <[email protected]>
Date: Wed, 15 Jul 2015 12:34:52 +0000
Hi Christian,

I would recommend writing a "model 3" motor driver.  You write 2 new C++ classes that are derived from asynMotorController and asynMotorAxis.  You basically implement a few methods like TMCM-351::move(), TMCM-351::poll(), etc.

There are several examples you can follow.  The following 2 are quite simple drivers that use ASCII commands.

motor/motorApp/AcsSrc/MCB4BDriver.cpp
This is 336 lines of code

motor/motorApp/ACRSrc/ACRMotorDriver.cpp
This is 507 lines of code.  In addition to motion it implements auxiliary digital I/O registers.

If you search through motorApp/*/*.cpp almost all of those files are motor 3 motor drivers.

There is not yet a good document that describes how to write a Model 3 motor driver.  However, there is Doxygen generated documentation that describes the base classes and the derived classes for several real drivers here:

http://cars.uchicago.edu/software/epics/motorDoxygenHTML/

Here is a link to a nice talk that Joe Sullivan from the APS gave on Model 3 motor drivers recently:

http://www.aps.anl.gov/epics/docs/APS2015/16-Motor-Support.pdf

Mark

________________________________________
From: [email protected] [[email protected]] on behalf of Christian Pauly [[email protected]]
Sent: Wednesday, July 15, 2015 3:20 AM
To: [email protected]
Subject: using motor / steppermotor record for Trinamic TMCM-351 controller

Dear experts
I guess i need your help / advice again:

We have bought a Trinamic TMCM-351 3-axis step motor controller, and
want to control a XY-table with this.
It communicates via USB / serial, and we want to run the soft IOC on a
connected Raspberry Pi under Linux.

 From what i understand by scanning through various EPICS pages and
docs, the motor module/record, or, alternatively, the steppermotor
module should provide all i need to work with such a multi-axis setup
under EPICS.

However, from what i learn from the motor record documentation, there is
no direct support for exactly this controller.
The controller is fairly simple, and understands plain ASCII / Byte
commands send via serial port, so i am pretty sure it is very similar to
other controllers which actually are supported.

But how do i proceed now ?
Is there some kind of general interface, where i can just define the
needed commands to make the motor record work with this controller ?
Or do i have to program a full new driver (starting maybe with one of
the existing ones) ?
The documentation (i found so far) regarding setting up a controller
with motor record is really sparse.


I am not an EPICS expert, but have done some projects with epics before.
In particular i am running another similar scanning table, where i did
the complete control (for a much simpler controller) only using
streamdevice and interconnecting records. But i guess, using the
particular stepmotor records is a more elegant way to go ???

In the documentation of motor record, it says: "The following
controllers are supported IN ADDIDION TO SOFT CHANNEL SUPPORT".
What is meant with this ?


Any help or advice (including links to some more detailed how-to
documentation) is very welcome !

Best regards,

Christian


References:
using motor / steppermotor record for Trinamic TMCM-351 controller Christian Pauly

Navigate by Date:
Prev: Re: record to record ... Ralph Lange
Next: Re: Stepper Motor Controllers Pearson, Matthew R.
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: using motor / steppermotor record for Trinamic TMCM-351 controller Christian Pauly
Next: Re: using motor / steppermotor record for Trinamic TMCM-351 controller 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 ·