Hi Martin,
You might try setting the soft motors' SPMG fields to "Stop", and then back to "Go",
to see if this gets the DMOV fields back in sync. It's not a fix, but it might make
finding the sequence of events that gets the database into this state go more quickly,
if you didn't have to reboot every time it happens. Do you have any clues about the
circumstances leading into this state?
DMOV is not the same as the "done" bit of the MSTA field. DMOV means a complete
motion, possibly including backlash takeout and retries, is done. There may be several
instances of MSTA declaring a motor motion done while DMOV remains false. Also,
DMOV is cleared in special(), before motion ever starts, so that there will be a guaranteed
1-0-1 transition of DMOV in response to a write to VAL - even if the write doesn't cause
any motion (for example, because the new value isn't different enough from the old value).
I think the soft motor might be holding out for a callback from device support, which
should result from a transition of the PV that the DINP field links to. Can you make that
PV cycle again to 0 and then back to 1, and see if the 0-1 transition is noticed by soft
device support? One possibility is that the transition that should have sent DMOV to 1
occurred too quickly, so that soft device support never noticed the PV being in the 0 state.
This is particularly likely to happen on Linux, which has a relatively sluggish task switch
compared to vxWorks. (Soft device support just puts a CA monitor on the PV to which
DINP links.)
I wasn't able to build your application directory, because I don't have the external
software on which the aSub records depend.
Tim
________________________________________
From: Konrad, Martin [[email protected]]
Sent: Tuesday, August 27, 2013 4:24 PM
To: [email protected]; Sluiter, Ronald L.; Mooney, Tim M.; Sullivan, Joseph
Subject: motor record: soft motor & DMOV
Hi,
I'm using two hard motor records and two soft motor records in a
multi-axis configuration with some nasty non-linear coordinate transform
in between. From time to time my soft motor records get stuck in a weird
state:
-The record, the DINP fields of the soft records point to, has VAL=1.
-The MSTA field says the soft motor is done (MSTA=2).
-Nevertheless DMOV is off for both soft records.
-Neither sending a new position nor STOPing the soft motor works. The
only way I'm able to move the motor again is to restart the IOC to set
the DMOV field.
As far as I understand the Motor Record documentation DMOV should be the
same as the "done" bit in MSTA.
It somehow sounds similar to this issue:
http://www.aps.anl.gov/epics/tech-talk/2008/msg00238.php Unfortunately
it seems to be difficult to reproduce this issue :-(
Any ideas how this can happen?
Martin
P.S.: I'm using MotorRecord R6-8. See the attached file for the complete
output of dbpr. The full sources of the IOC can be found here:
https://github.com/mark0n/stripperFoilPlatterTestbed
- Replies:
- Re: motor record: soft motor & DMOV Kevin Peterson
- References:
- motor record: soft motor & DMOV Konrad, Martin
- Navigate by Date:
- Prev:
has anyone used ipc-100 of ADVANTECH company as softioc? Silver
- Next:
Re: TPG261 : "message too small=0" for EPICS Sanguk Won
- 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:
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
|