EPICS Home

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: Pete Jemian <[email protected]>
To: <[email protected]>
Date: Tue, 7 Feb 2017 09:28:18 -0600
This is possible, to make a new device support independent of other motor support and has been demonstrated previously.

But I suggest supprting this controller using the asyn motor 3, as previously described. By supporting a new motor controller within the motor record, the new controller becomes available to additional tools that meet the motor record API. First off are the tools in the IOC that report how many motors in this IOC are in motion and provides a single PV to STOP ALL motors in this IOC. These features come for "free" (as in no additional work necessary) and are valuable in the management of a facility with many IOCs providing motor records. Then there are the many client tools that operate motors: the sscan record, SPEC, BlueSky, PyEpics, just to name a few.

Pete



On 02/07/2017 08:45 AM, Maren Purves wrote:
Coming from the EPICS of 20 years ago, I still would do the same
only with more modern drivers/device support (we're still using
drvAscii, drvSerial, tnetIo from when we implemented ours):

it's just a device on a serial line, it an be controlled with analogout-s
or stringout-s, and similar for input, strings being put together or
split apart in gensub-s/asub-s.

Being faced with a similar problem, what is/are today's serial line
on terminal server/CMS drivers of choice?

Maren

On Mon, Feb 6, 2017 at 11:53 PM, Ralph Lange <[email protected]
<mailto:[email protected]>> 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? Mark Rivers
References:
How to support a new stepper motor controller? Ralph Lange
Re: How to support a new stepper motor controller? Maren Purves

Navigate by Date:
Prev: Re: How to support a new stepper motor controller? Maren Purves
Next: Re: LAN asyn connection error Eric Norum
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? Maren Purves
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