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  <20202021  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  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Tips for doing conditional logic in EPICS records
From: Mark Davis via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, John Priller <priller at nscl.msu.edu>
Date: Mon, 27 Apr 2020 11:05:16 -0400
Hi all,

I am looking for some tips on the best way to implement logic such as the following using EPICS records:


flag = 1;
for (each new set of readings)  {
    if (readbackA == fixedVal1)   flag = 1;  else
    if (flag == 1)  setVal = readbackB;  else
    if (readBackC == fixedVal2)  setVal = readbackD;
    flag = 0;
}


For the initial setting I figured simply a record that includes the initial value in the VAL field (and PINI set to "Yes"?).

The for "loop" would be simply an FLNK in the record (or last in a sequence of records) that gets the new readings, triggering the processing of the the record that handles the 1st if condition (in this case, I have one record that gets them all at once).

At that point how to best to proceed is not obvious to me, and there are probably  lots of possibilities (A sequence of calcout or scalcout records?  Maybe a transform record?)

Suggestions?

--
Mark Davis
NSCL/FRIB Control Systems Software Engineer
davism50 at msu.edu

Replies:
Re: [EXTERNAL] Tips for doing conditional logic in EPICS records Kasemir, Kay via Tech-talk
Re: Tips for doing conditional logic in EPICS records Mark Rivers via Tech-talk
Re: Tips for doing conditional logic in EPICS records Mooney, Tim M. via Tech-talk

Navigate by Date:
Prev: Adding new record to EPICS 7 IOC with pvDatabase Joao Paulo Martins via Tech-talk
Next: Re: [EXTERNAL] Tips for doing conditional logic in EPICS records Kasemir, Kay 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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Adding new record to EPICS 7 IOC with pvDatabase Joao Paulo Martins via Tech-talk
Next: Re: [EXTERNAL] Tips for doing conditional logic in EPICS records Kasemir, Kay 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  <20202021  2022  2023  2024 
ANJ, 27 Apr 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·