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  2018  2019  2020  2021  <20222023  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  2019  2020  2021  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: RBV value for Soft Channel motor not always being set properly on IOC startup
From: "Gregory, Ray via Tech-talk" <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Thu, 9 Jun 2022 14:13:25 +0000

Hi,

 

I am developing a Soft Channel motor to be a virtual motor that controls two other motors. The virtual motor is essentially a copy of one of the underlying motors and applies ‘adjustment’ moves to the other motor it controls in accordance with a pre-specified alignment profile (using a simple linear equation determined by calibration).

 

Most of this is working well. However, when the IOC starts, the virtual motor often fails to retrieve its RBV value from the underling motor. I’ve included the soft channel motor record below.

 

How do I fix this?

 

I am using EPICS base version 3.14.12.6. I am currently developing on my VM with Simulated motors. I’m not sure what differences to expect when I deploy this to an actual instrument.

 

So far I haven’t found a simple solution.

 

However, I have created horribly complicated solution that seems to work: I created another do-nothing Soft Channel motor and make it part of the virtual motor system, so now the overall virtual motor controls 3 motors, one of them being the do-nothing motor. Then, if the RBV value was not set properly at launch time, I move this do-nothing motor. This has the effect of sometimes properly setting the RBV of the main virtual motor. If that doesn’t work, I try it again, and again, up to some maximum number. I call this process ‘kicking’ the RBV.

 

It's a kludgy and nasty solution. I would very much appreciate knowing how to fix this in some simple way.

 

Thank you,

 

Ray Gregory

Oak Ridge National Laboratory

 

 

################################################################

#

# Database template to create a Virtual ISD (Incident Slit Distance)

# soft motor record based on three underlying real motors:

#

#   1) Real ISD motor

#

#   2) Motor controlling the center of the incident slits.

#      NOTE: This is also a virtual soft motor defined elsewhere.

#

#   3) do-nothing Auxiliary soft motor with the only purpose of

#      being used to 'kick' the RBV of the main virtual motor into shape

#      (see code and comments below).

#

# Derived from slit.template (Matthew Pearson; Feb 2014).

# Adapted for Virtual ISD (Ray Gregory; Jun 2022).

 

#

# Macros:

# VM - PV name of Virtual ISD axis

# M1 - The real ISD motor PV

# M2 - The incident slit center motor PV

# DESC - Description used for virtual ISD axis (e.g., 'Virtual ISD')

# PREC (optional) - Display precision for virtual motor

# MRES (optional) - Virtual motor resolution

#

# Notes:

# * Do not set an offset on the virtual motor, otherwise the readback

#   will be out of sync with the demand.

# * Errors on the underlying real motors that generate an alarm condition

#   should be visible in the virtual motor. However, if the real motor

#   doesn't move and doesn't generate an alarm then we will not see this.

#   In this case only one real motor will move (and virtual ISD will

#   compensate to take it into account). To deal with soft limit

#   violations, it will be necessary to set up soft limits on the virtual

#   motor to prevent soft limit violations on the real motors (which

#   don't generate alarm states).

# * Using an offset on the virtual ISD will not affect any software limits

#   on the virtual motor, so these should be manually changed as well. Not sure

#   if we want to automate this. Ideally the motor record should be fixed so limits

#   work with soft motors.

 

################################################################

 

################################################################

# Virtual ISD motor calculation

################################################################

 

# ///

# /// Virtual ISD soft motor

# ///

record(motor, "$(VM)") {

  field(DESC, "$(DESC)")

  field(DTYP, "Soft Channel")

  field(OUT, "$(VM):Set PP")

  field(RDBL, "$(M1).RBV")

  field(RRES, "1")

  field(URIP, "Yes")

  field(TWV, "0.1")

  field(DINP, "$(VM):Done.VAL")

  field(STOO, "$(VM):Stop PP")

  field(RTRY, "0")

  field(OFF, "0")

  field(FOFF, "Frozen")

  field(NTM, "NO")

  field(PREC, "$(PREC=4)")

  field(MRES, "$(MRES=0.0001)")

  field(DLLM, "0")

  field(DHLM, "100")

  field(EGU, "mm")

  info(autosaveFields, "DLLM DHLM TWV DLY ADEL MDEL DISA DISP")

  info(archive, "Monitor, 00:00:01, VAL RBV DMOV STAT LVIO HLS LLS")

}

 

Ray Gregory

 

IDAC HFIR Software Team

Instrument Data Acquisition and Controls Group

Neutron Technologies Division

Neutron Sciences Directorate

Oak Ridge National Laboratory

Building 7964K Room 19

 

ph     (865) 241-1116

cell    (417) 827-6515

email:  gregoryrd at ornl.gov

 

Oak Ridge National Laboratory

P. O. Box 2008

1 Bethel Valley Road, MS-6430

Oak Ridge, TN               37831

 

 


Replies:
Re: RBV value for Soft Channel motor not always being set properly on IOC startup Kevin Peterson via Tech-talk
Re: RBV value for Soft Channel motor not always being set properly on IOC startup Kevin Peterson via Tech-talk

Navigate by Date:
Prev: Testing Rocky Linux with EPICS Abdalla Ahmad via Tech-talk
Next: Re: RBV value for Soft Channel motor not always being set properly on IOC startup Kevin Peterson 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  2019  2020  2021  <20222023  2024 
Navigate by Thread:
Prev: RE: Testing Rocky Linux with EPICS Abdalla Ahmad via Tech-talk
Next: Re: RBV value for Soft Channel motor not always being set properly on IOC startup Kevin Peterson 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  2019  2020  2021  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·