g+
g+ Communities
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  <20122013  2014  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
<== Date ==> <== Thread ==>

Subject: Calcout using CA output link sometimes gets INVALID severity
From: "J. Lewis Muir" <jlmuir@imca-cat.org>
To: EPICS Tech Talk <tech-talk@aps.anl.gov>
Date: Thu, 11 Oct 2012 20:06:22 -0500
I've got a problem with a calcout record where, if I do a dbpf
after iocInit on an ao record that has a forward link to the
calcout record which in turn reads the ao record VAL field and
writes a calculated value to an ai record using a Channel Access
output link, sometimes the calcout record's SEVR field will be
INVALID, and it does not write the calculated value to the ai
record.  This doesn't happen every time, but I can usually get
it to happen within 5 tries.  If I change the output link type
from CA to PP, the problem goes away.  Does anyone know what's
wrong?

To reproduce this, load the attached calcout-test.db into a
soft IOC like this:

  dbLoadRecords("calcout-test.db", "P=ioc23:")

And immediately after iocInit do a dbpf like this:

  dbpf("ioc23:Preset", "300.0")

Check the SEVR field from a Terminal like this:

  $ caget ioc23:PresetHistoryAdd.SEVR

Check the calculated value from a Terminal like this:

  $ caget -a ioc23:PresetHistory

Repeatedly stop and start the IOC until you succeed in
reproducing the problem.

Environment:
* Processor: 2.3 GHz Intel Core i7
* Memory: 8 GB
* OS: Mac OS X 10.8.2
* EPICS Base 3.14.12.2 (+ Known Problems patches)
  Architecture: darwin-x86
  OS Class: x86_64

Thanks,

Lewis
#
# If load this database and on the IOC console do a dbpf to $(P)Preset
# immediately after iocInit, sometimes $(P)PresetHistoryAdd.SEVR will be
# INVALID and $(P)PresetHistory will not get set to the value of $(P)Preset.
#
# Parameters:
#   $(P)    PV name prefix (e.g. "ioc23:")
#

record(ao, "$(P)Preset") {
  field(FLNK, "$(P)PresetHistoryAdd")
}

record(calcout, "$(P)PresetHistoryAdd") {
  field(INPA, "$(P)Preset.VAL NPPNMS")
  field(CALC, "A")
  field(OUT, "$(P)PresetHistory.VAL CA")
}

record(ai, "$(P)PresetHistory") {
}

Replies:
Re: Calcout using CA output link sometimes gets INVALID severity Andrew Johnson

Navigate by Date:
Prev: Re: API to get list of record names Andrew Johnson
Next: Re: API to get list of record names Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
Navigate by Thread:
Prev: Re: API to get list of record names Benjamin Franksen
Next: Re: Calcout using CA output link sometimes gets INVALID severity Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·