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

Subject: Re: Undefined Timestamp on Motor Record
From: Torsten Bögershausen via Tech-talk <[email protected]>
To: Dominic Oram - UKRI STFC <[email protected]>, "[email protected]" <[email protected]>
Date: Fri, 16 Aug 2019 08:44:34 +0200


On 15/08/19 19:16, Dominic Oram - UKRI STFC via Tech-talk wrote:
Hello,

I'm in the process of writing a model 3 motor driver using version 6-11 of the motor record.

I have found some unexpected behaviour on initialisation if the driver has no device connected.

It appears the motor stays in the following state unless a parameter is updated at some point after initialisation (I'm not sure when):

caget -a MOTOR
MOTOR        <undefined> 0

If I have no device connected I set motorStatusCommsError_ to 1 on the first call to poll(). However, because all subsequent calls to poll() do not change any parameters I stay in the above state. I would instead expect to see something like:

caget -a MOTOR
MOTOR        2019-08-15 15:57:41.931650 0 COMM INVALID

as in the undefined timestamp situation it's not obvious to users that there is a comm error.

Setting motorStatusCommsError_ to 1 at some time after initialisation does give me the expected state.

Is this actually expected behaviour?
May be, may be not.
My understanding is, that all EPICS records stay in "undefined" state (UDF) until the device support is able to talk to the device.
In that sense the "undefined" state is OK.
(And this is what we do with motors here at ESS,
 never connected -> undefined.)

> Do other people see something similar?
Yes, fully reproducible here.
I think that easiest solution is to do a workaround like this:

  status = initialPollInternal();
  if (status != asynSuccess) {
    setIntegerParam(pC_->motorStatusCommsError_, 0);
    setIntegerParam(pC_->motorStatusCommsError_, 1);
  }


Thanks,

Dominic Oram
Senior Software Engineer
Experimental Controls
ISIS Neutron and Muon Source


Replies:
RE: Undefined Timestamp on Motor Record Dominic Oram - UKRI STFC via Tech-talk
References:
Undefined Timestamp on Motor Record Dominic Oram - UKRI STFC via Tech-talk

Navigate by Date:
Prev: RE: connection timeout between ioc and logstash Kivel Niko (PSI) via Tech-talk
Next: RE: Undefined Timestamp on Motor Record Dominic Oram - UKRI STFC via Tech-talk
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  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Undefined Timestamp on Motor Record William Layne via Tech-talk
Next: RE: Undefined Timestamp on Motor Record Dominic Oram - UKRI STFC via Tech-talk
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  <20192020  2021  2022  2023  2024