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  <20152016  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  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Misunderstanding of epid record ODEL field?
From: "Mooney, Tim M." <[email protected]>
To: Peter Linardakis <[email protected]>, "[email protected]" <[email protected]>
Date: Wed, 22 Apr 2015 14:37:25 +0000
Hi Peter,

In the meantime, you could drive the motor through a calcout record, like this:

epid writes to suppress.A

record(calcout, "suppress") {
    field(INPC, "epid.ODEL")
    field(CALC, abs(a-b)>c")
    field(OOPT, "When Non-zero")
    field(DOPT, "Use OCAL")
    field(OCAL, "b:=a;b")
    field(OUT, "motor PP")
}

Tim Mooney ([email protected]) (630)252-5417
Software Services Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab


From: [email protected] [[email protected]] on behalf of Peter Linardakis [[email protected]]
Sent: Wednesday, April 22, 2015 1:08 AM
To: [email protected]
Subject: Misunderstanding of epid record ODEL field?

Hello techtalkers

 

I am trying to control a motor that drives a slow tuner based on phase and/or amplitude error signals.  It’s still just in testing but the basic control works.  However, The motor seems to attempt to move on every iteration of the epid loop, even if the magnitude of the epid.OVAL field is less than the epid.ODEL field.  Do I understand the intention of the ODEL field correctly?  I’d rather not have the motor try to move on every loop iteration.  The relevant records are below:

 

record(calc, "$(res):$(ta):tuning_error") {

  field(DESC, "Overall tuning error")

  field(INPA, "$(res):$(ta):phase_error")

  field(INPB, "$(res):$(ta):ampl_error")

  field(CALC, "B-3*A")

}

 

record(epid, "$(res):$(ta):tuner:control_pid") {

  field(DESC, "PID loop to control tuner postion")

  field(INP, "$(res):$(ta):tuning_error CPP")

  field(SCAN, ".1 second")

  field(SMSL, "supervisory")

  field(VAL, "0")

  field(OUTL, "$(res):$(ta):tuner:motor.RLV PP")

  field(FBON, "1")

  field(MDT, "5")

  field(KP, "-0.12")

  field(KI, "0")

  field(KD, "0")

  field(EGU, "mm")

  field(ODEL, "0.04")

  field(DRVL, "-1")

  field(DRVH, "1")

  field(DISV, "0")

  field(SDIS, "$(res):$(ta):tuner:mode CPP")

}

 

Thanks in advance

Peter

 

Dr Peter Linardakis

Accelerator Research & Development Engineer

Nuclear Physics | Research School of Physics and Engineering

Australian National University

e: [email protected]

p: +61 2 6125 2862

w: http://physics.anu.edu.au/nuclear/

 


Replies:
RE: Misunderstanding of epid record ODEL field? Peter Linardakis
References:
Misunderstanding of epid record ODEL field? Peter Linardakis

Navigate by Date:
Prev: Re: conditional process two records Isabella Rey
Next: Re: Misunderstanding of epid record ODEL field? Pearson, Matthew R.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Misunderstanding of epid record ODEL field? Pearson, Matthew R.
Next: RE: Misunderstanding of epid record ODEL field? Peter Linardakis
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·