EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: VxWorks global variable device support
From: [email protected]
To: [email protected] (William Lupton)
Cc: EPICS Tech-Talk <[email protected]>
Date: Thu, 3 Feb 2000 14:08:37 +0100 (MET)
William,

I plead guilty for subtleness.

  > So, the variable value is read back at startup only in the last case. So
  > this could happen inadvertently if:

  > [...]

  > b) someone has previously created a database with DOL set to an empty or
  >    blank string (which will be interpreted as "not set") and has _intended_
  >    that to be the initial value written (this would probably be unintentional
  >    for anything other than a stringout?)

This brings up some more subtleness. Enjoy.

There is no constant string. Anything non-numeric in a DOL field will be
interpreted as a link specification. The stringout record does not take
its initial value from DOL. It is really exceptional in that it is the
only record type that has its VAL field DCT accessible, so you have to
set the VAL field to the initial value. If DOL is a (numeric) CONSTANT,
VAL will be overwritten at record initialization, though. (You might run
into this when loading a pre-3.13 database with DOL set to CONSTANT 0,
which was default back then, but overwrites the VAL field now.)

BTW: Andrew's new link support would instantly put an end to this crappy
situation. (Just when?)

  > What if the programmer wants PINI = NO and wants the variable to be read
  > back at init time? This seems reasonable to me: it means that after
  > database initialization the record will correctly show the value which
  > is currently in use.

But: Why should the programmer want PINI=NO if PINI=YES gets the desired
behaviour?

Wait ... there is a (subtle) difference: PINI=YES would fire the FLNK
after initialisation, PINI=NO wouldn't. I guess either way is reasonable
in some situations.

So yes: I agree. There should be an explicit way of specifying that
readback at init time is wanted for an output record.

I don't know enough about how Bob's archiver handles these bumpless
reboot situations. (I guess it is by IOC, not by record.) Most of our
outputs are read back during IOC initialisation (the inherent luxury of
a fieldbus based design) --- this is handled record-wise by device
support looking at the PINI field.

Specifying "readback wanted" in the OUT link seems absolutely
appropriate in your case.

Maybe all output records should have a menu-type field that specifies if
readback at init time should be performed.

Should they?

Ralph


References:
Re: VxWorks global variable device support William Lupton

Navigate by Date:
Prev: Re: VxWorks global variable device support Benjamin Franksen
Next: Re: unbundled sequencer v1.9.4 is available Rozelle Wright
Index: 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: VxWorks global variable device support Benjamin Franksen
Next: Re: VxWorks global variable device support Deb Kerstiens
Index: 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·