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

Subject: Re: info tag asyn:READBACK doesn't work with record in OUT field of calcoout
From: Marco Filho via Tech-talk <[email protected]>
To: tech-talk <[email protected]>, Marco Filho <[email protected]>
Date: Thu, 23 Oct 2025 09:19:51 +0000
Ah, for some reason taking the "CP" out of the calcout INPA field and putting a FLNK in $(P)$(R)SomeOtherRecord solved the issue.

From this:

record(calcout, "$(P)$(R)Helsing") {
field(DESC, "Yes garlic, please")
field(INPA, "$(P)$(R)SomeOtherRecord CP")
field(CALC, "A+64")
field(OUT, "$(P)$(R)Dracula NPP")
}

To this:

record(calcout, "$(P)$(R)Helsing") {
field(DESC, "Yes garlic, please")
field(INPA, "$(P)$(R)SomeOtherRecord")
field(CALC, "A+64")
field(OUT, "$(P)$(R)Dracula NPP")
}

record(..., "$(P)$(R)SomeOtherRecord") {
field(FLNK, "$(P)$(R)Helsing")
}

Works fine for me.

Cheers,

Marco


From: Tech-talk <[email protected]> on behalf of Marco Filho via Tech-talk <[email protected]>
Sent: Thursday, October 23, 2025 11:10
To: tech-talk <[email protected]>
Subject: info tag asyn:READBACK doesn't work with record in OUT field of calcoout
 
Hi, all!

I'm not sure if this is a bug or a feature: I have two records being used as setpoint and readback for the same asyn parameter that work fine, but break when I add a calcout into the chain.

For instance:

record(ao, "$(P)$(R)Dracula"){
field(DESC, "No garlic, please")
field(DTYP, "asynInt32")
field(DRVL, "0")
field(DRVH, "67")
field(SDIS, "$(P)$(R)CalcDISA")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_$(VMM)_ANALOGMON")

info(autosaveFields, "VAL")
info(asyn:READBACK, "1")
}
record(ai, "$(P)$(R)Nosferatu"){
field(DTYP, "asynInt32")
field(PINI, "YES")
field(SCAN, ".5 second")
field(PHAS, "1")
field(SDIS, "$(P)$(R)RingStatus-R")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_$(VMM)_ANALOGMON")
}

This works fine. I tested by changing the parameter in hardware with another software and restarting the IOC, the setpoint gets updated to the correct value, which is the same as the setpoint.

However, as soon as I add a calcout record that points to $(P)$(R)Dracula:

record(calcout, "$(P)$(R)Helsing") {
field(DESC, "Yes garlic, please")
field(INPA, "$(P)$(R)SomeOtherRecord CP")
field(CALC, "A+64")
field(OUT, "$(P)$(R)Dracula NPP")
}

Then the setpoint stops being updated, even if the calcout record is not processing at that time.
Is this supposed to work like this? Is there a way to have both functionalities?

Thanks,

Marco



References:
info tag asyn:READBACK doesn't work with record in OUT field of calcoout Marco Filho via Tech-talk

Navigate by Date:
Prev: info tag asyn:READBACK doesn't work with record in OUT field of calcoout Marco Filho via Tech-talk
Next: asyn:READBACK making aao record process Marco Filho 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  2022  2023  2024  <20252026 
Navigate by Thread:
Prev: info tag asyn:READBACK doesn't work with record in OUT field of calcoout Marco Filho via Tech-talk
Next: asyn:READBACK making aao record process Marco Filho 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  2022  2023  2024  <20252026 
ANJ, 19 Mar 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·