Experimental Physics and Industrial Control System
|
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;
- 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.
- Uncomment "#variable(devSoftdebug)" from SoftMotorSrc/devSoftMotor.dbd.
- Rebuild your IOC.
- 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
<2013>
2014
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
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|
ANJ, 20 Apr 2015 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|