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  <20132014  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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: motor record: soft motor & DMOV
From: Ron Sluiter <[email protected]>
To: "Konrad, Martin" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Wed, 28 Aug 2013 14:24:27 -0500
Hello Konrad,

You should turn on the motor record's Soft Channel diagnostics messages so we can determine if your soft motors are detecting a "HARDMOVE".

To turn on motor record Soft Channel diagnostics messages;
  1. Check if "#!USR_CXXFLAGS += -DDEBUG"  in  <motor>/motorApp/SoftMotorSrc/Makefile is commented out. If so, remove the "#!" from the USR_CXXFLAGS line and do a "make rebuild" in the SoftMotorSrc directory.
  2. Uncomment "#variable(devSoftdebug)" from SoftMotorSrc/devSoftMotor.dbd.
  3. Rebuild your IOC.
  4. Add "var devSoftdebug 6" to your IOC startup script.
What we are looking for is if you get the diagnostic message,
"soft_dinp_func(): HARDMOVE set for %s.\n"
when the soft motor gets stuck (presumably) in the "Moving" state.

In addition, you may want to do a camonitor on the soft motors MIP field.

Send us the results.

Ron



On 8/28/2013 1:12 PM, Konrad, Martin wrote:
Hi Kevin,
When a soft motor is commanded to move, it is the motor record that
initially set the DMOV to zero; the value of DINP PV is ignored at
this point.  The first time the DINP PV is used is the first status
update after the move is initiated.  If the moving-poll rate of the
real motors is high,
60 Hz in my case

there can be a very narrow window during which the DINP calc must be
done.
Sorry, I don't get it, yet. Can you please describe a bit more detailed 
how it is supposed to behave and in contrast to that what you think 
happens if it fails?

In "soft motor record.db" the DINP field is set to
"$(PREFIX):doneMoving_". How is $(PREFIX):doneMoving_ calculated?
record(calc, "$(PREFIX):doneMoving_") {
   field(CALC, "A && B")
   field(INPA, "$(PREFIX):motorRadPiston.DMOV CP MS")
   field(INPB, "$(PREFIX):doneMovingGate_ NPP MS")
}

record(bo, "$(PREFIX):doneMovingGate_") {
   field(FLNK, "$(PREFIX):doneMoving_")
}

record(calcout, "$(PREFIX):doneMovingCloseGate_") {
   field(CALC, "A")
   field(INPA, "$(PREFIX):motorAngPiston.DMOV CP MS")
   field(OUT, "$(PREFIX):doneMovingGate_ PP MS")
   field(OOPT, "Transition To Non-zero")
   field(DOPT, "Use OCAL")
   field(OCAL, "1")
}

This is inspired by a mail by Tim
(http://www.aps.anl.gov/epics/tech-talk/2008/msg00127.php). I hope I 
implemented it the right way...

Thanks,

Martin


References:
motor record: soft motor & DMOV Konrad, Martin
RE: motor record: soft motor & DMOV Mooney, Tim M.
Re: motor record: soft motor & DMOV Konrad, Martin

Navigate by Date:
Prev: Re: motor record: soft motor & DMOV Konrad, Martin
Next: Re: motor record: soft motor & DMOV Kevin Peterson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: motor record: soft motor & DMOV Konrad, Martin
Next: Re: motor record: soft motor & DMOV Kevin Peterson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·