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  <20172018  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  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Base 3.15 and record initialization
From: "Dunning, Michael" <[email protected]>
To: EPICS Tech-Talk <[email protected]>
Cc: "Condamoor, Shantha" <[email protected]>
Date: Fri, 1 Sep 2017 16:21:32 -0700
We're upgrading some IOCs to base 3.15.5, and are seeing some new behavior with self-referential calc records.  Here's a simplified example:

=================================
record(ao, "TEST123:AoTest") {
  field(HIGH, "5")
  field(HIHI, "10")
  field(HSV,  "MINOR")
  field(HHSV, "MAJOR")
  field(PINI, "1")
  field(FLNK, "TEST123:CalcTest")
}

record(calc, "TEST123:CalcTest") {
  field(INPA, "TEST123:CalcTest NPP MS")
  field(INPB, "TEST123:AoTest NPP MS")
  field(CALC, "B<100?(A+1):A")
  field(FLNK, "TEST123:AiTest")
}

record(ai, "TEST123:AiTest") {
  field(INP,  "TEST123:CalcTest")
  field(HIGH, "5")
  field(HIHI, "10")
  field(HSV,  "MINOR")
  field(HHSV, "MAJOR")
}
=================================

Notice the "MS" in the calc record's INPA.  We don't yet know why the original developer did this, and it seems that it would just cause the record to get stuck in an alarm state if any input went into an alarm state.

Also notice that the calc record gets processed by the ao record, so it's not an issue of anything being undefined.

With base 3.15.5, when the IOC starts, the calc record has SEVR: INVALID and STAT: LINK.
If I change INPA from "MS" to "NMS" and restart the IOC, the record has SEVR: NO_ALARM and STAT: NO_ALARM.  

I verified that with base 3.14.11 and 3.14.12 the problem doesn't happen; i.e. the record has SEVR: NO_ALARM and STAT: NO_ALARM.

Can anyone comment on whether we can safely replace "MS" with "NMS" in a record chain like this?  And if there have been more significant changes to the way that records are initialized, should we expect anything else to break?

Thanks,
Mike


Michael Dunning
SLAC National Accelerator Laboratory
2575 Sand Hill Road, MS 63
Menlo Park, CA 94025


Replies:
Re: Base 3.15 and record initialization Bruce Hill

Navigate by Date:
Prev: Re: Archiver: Problems with disconnected PVs Shankar, Murali
Next: Re: Base 3.15 and record initialization Bruce Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: C++ multi threaded application. Andrew Johnson
Next: Re: Base 3.15 and record initialization Bruce Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·