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  <20212022  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  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: calcout record processing
From: "Arnold, Ned D. via Tech-talk" <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, Randall Cayford <rcayford at lbl.gov>
Date: Thu, 6 May 2021 17:49:15 +0000
>  I thought calc records were supposed to be processed whenever their inputs were processed.

Only of the CP flag is set for that input link.

So you have two choices ...

    FLNK from fsControl to fsCalc. 
        or
    Change fsCalc.INPA to. "$(P):fsControl CP"

  Ned


From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Randall Cayford via Tech-talk <tech-talk at aps.anl.gov>
Sent: Thursday, May 6, 2021 12:43 PM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: calcout record processing
 
I’m trying to do a simple chain of an input record, a calc record and an output record.  I can’t get the calc record to process unless I force it.

I have:
record(ai, “$(P):fsControl")
{
    field(DTYP, "asynInt32")
    field(PREC, "5")
    field(SCAN, "Passive")
    field(FLNK, "$(P):fsCalc PP")
}

record(calcout, "$(P):fsCalc")
{
    field(DESC, "Convert 1,0 shutter to 3,1")
    field(INPA, "$(P):fsControl")
    field(CALC, "A * 2 + 1")
    field(OUT,  "$(P):fsSet PP")
    field(OOPT, "Every Time")
    field(SCAN, "Passive")
}

record(ao, "$(P):fsSet")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT,recursive),0,1)PMAC_WI_M8192")
    field(SCAN, "Passive")
}

If I put to fsControl, it sets but nothing happens.  If I put to fsCalc.PROC, everything works correctly - it reads fsControl, calculates the VAL and triggers fsSet with the calculated value.  If I make fsCalc SCAN periodic it also works.  I thought calc records were supposed to be processed whenever their inputs were processed.  I’ve tried with and without the FLNK in fsControl.  So I’m missing something about how calc record processing is triggered.

Randall Cayford
BCSB - LBNL


Replies:
RE: calcout record processing Mark Rivers via Tech-talk
References:
calcout record processing Randall Cayford via Tech-talk

Navigate by Date:
Prev: RE: calcout record processing Mark Rivers via Tech-talk
Next: RE: calcout record processing Mark Rivers 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  <20212022  2023  2024 
Navigate by Thread:
Prev: RE: calcout record processing Mark Rivers via Tech-talk
Next: RE: calcout record processing Mark Rivers 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  <20212022  2023  2024 
ANJ, 06 May 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·