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

Subject: Delta Tau motor control problem
From: Mark Davis <[email protected]>
To: "[email protected]" <[email protected]>
Date: Wed, 1 Aug 2018 09:35:38 -0400
HI all,

I have run in to another problem with my attempts to control a stepper motor using a Delta Tau controller.

Current configuration:

   Motor Controller:  Delta Tau Power Brick LV-IMS
   EPICS version:  3.14.12.2
   Asyn module:  4.32
   powerPMAC driver:  The 2014-09-25 version at http://www.observatorysciences.co.uk/deltatau_downloads.php
   IOC config:

      #===== for Power Brick LV-IMS controllers =====
      drvAsynPowerPMACPortConfigure("SSH1", "192.168.137.234", "root", "deltatau", "0", "0", "0")

      # 'Ctlr port name', 'SSH port name'. 'port address'. '#axes' 'Moving poll interval (ms)', 'Idle poll interval (ms)'
      powerPmacCreateController("PBRICK1", "SSH1", "0", "32", "25", "100")

      # open-loop axes (they don't use the encoder readback)
      pmacCreateAxis("PBRICK1", "3")

      asynSetTraceMask("PBRICK1", 0, 0)
      asynSetTraceMask("SSH1", -1, 0)
      asynSetTraceIOMask("SSH1", -1, 0)

      # includes a motor record...
      dbLoadTemplate("db/powerPMAC.substitutions")


Using this configuration, I can control the motor via the motor record just fine, as long as I wait until the motor reaches the new position after each new setpoint.

However, if I change the setpoint while the motor is still moving, it will stop before getting to either the new or the previous setpoint, the done moving bit in the status value from the controller stays at 0, and new setpoints to the motor record are ignored.

If I then give the controller a move command directly, this works fine:  The motor moves to the new position and the done moving bit goes back to 1, at which point new setpoints applied to the motor record will work again.

NOTE:  Changing the setpoint in a middle of the move using commands on the controller itself also works fine (e.g. it will happily reverse direction in the middle of a move to get to the latest setpoint).


Given how long the motor record has been around, I assume that such a basic problem would have been resolved long ago.  And the controller is fine with changes to the setpoint during a move, so I would think that the problem must be in the driver.

Has anyone run in to this sort of thing before?  Someone mentioned that the driver available from the Diamond Light Source incorporates the driver I am using (i.e. it should work for Geo Brick and Power Brick controllers?).  Does anyone now if this is a driver bug and whether or not it is fixed in the DLS version?

Thanks.

--
Mark Davis
NSCL/FRIB
Control Systems Software Engineer
[email protected]


Replies:
Re: Delta Tau motor control problem Mark Rivers

Navigate by Date:
Prev: EPICS Collaboration Meeting, 12-16 November Andraz Pozar
Next: Re: Delta Tau motor control problem 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  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: EPICS Collaboration Meeting, 12-16 November Andraz Pozar
Next: Re: Delta Tau motor control problem 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  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 01 Aug 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·