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  <20172018  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  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: How to support a new stepper motor controller?
From: Kevin Peterson <[email protected]>
To: Ralph Lange <[email protected]>, EPICS Tech Talk <[email protected]>
Date: Tue, 7 Feb 2017 11:04:19 -0600
In general, the recommendation to write a model 3 driver is a good one.
Under some circumstances, however, that is far from the easiest option.

If the controller doesn't have a status command that allows queries of
the moving state, it can be awkward and inefficient to make the model 3
driver work well with the motor record, which expects the driver to
reliably set the done bit of the MSTA field.

If the goal is EPICS support and the motor record is not required, I
have found that StreamDevice support
(http://epics.web.psi.ch/software/streamdevice/) is a much better fit
and significantly easier to write.

Kevin

On 2/7/17 3:53 AM, Ralph Lange wrote:
> Dear motion specialists,
> 
> I am writing on behalf of Paramveer Jain (in CC) who has contacted me
> with this issue, but as I have never done motion control integration
> with EPICS, I'd rather throw this ball up than send him into the wrong
> direction.
> 
> He is being tasked with developing EPICS support for a locally developed
> motor controller.
> 
> The hardware setup can be summarized as:
> 
>   * Moxa embedded TCP-to-serial converter (NE4110S)
>   * Serial connection (RS-232)
>   * Homemade motor controller (based on an AT89C52)
>   * Ark Motion AMS 3630 stepper motor driver.
> 
> The controller software talks ASCII in command/response fashion, e.g.:
> 
>   * Read position (rotary encoder)
>     Command: STX U <CR>
>     Response: STX U pppppp <CR>
>     pppppp = six digit hex (divide by 640 to get millimeter)
>   * Go to position (rotary encoder)
>     Command: STX P1 sss pppppp <CR>
>     Response: \06 (ACK)
>     sss = three digit hex (speed in mm/s multiplied by 240)
>     pppppp = six digit hex (millimeter multiplied by 640)
>   * ...
> 
> What's the best/easiest way to do this? What are the caveats?
> Is there a tutorial he could follow?
> Is there existing support for another motor that he could start from?
> 
> Thanks a lot for your help!
> ~Ralph
> 



Replies:
Re: How to support a new stepper motor controller? Rod Nussbaumer
References:
How to support a new stepper motor controller? Ralph Lange

Navigate by Date:
Prev: RE: How to support a new stepper motor controller? Mark Rivers
Next: RE: How to support a new stepper motor controller? Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: How to support a new stepper motor controller? Mark Rivers
Next: Re: How to support a new stepper motor controller? Rod Nussbaumer
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·