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  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: passive record/field to process when there is a CA read
From: Andrew Johnson <[email protected]>
To: Dehong Zhang <[email protected]>
Cc: [email protected]
Date: Tue, 05 Feb 2008 11:47:04 -0600
Dehong Zhang wrote:

What we have in mind is a simple case: if no CA client is "getting" data from a PV, the PV can remain un-processed -- processor does nothing. It can be
waiting for events or PP etc. Once a CA client tries to get/read data, the EPICS
internal part checks to see whether there is a recent-enough copy, just return
the data if yes, or process then return if the current data is too old.


So we could have a scan option, which does "process upon CA request but not
more than * Hz".  This way the IOC is protected.

Without such an option, the user would need 2 actions like Dirk pointed out,
or the processor has to waste some cycles to always make sure the data is
current, either by listening to events or process periodically.

There is a significant difference between get and monitor behavior in Channel Access, and from your description you should be talking about monitors rather than gets. Any long-running client program should be setting up monitors rather than polling for updates using ca_get(), and all the main EPICS extensions such as MEDM, EDM, ALH do that. If that's true for your case you should be able to use the technique described on slide 33 of this lecture:


http://www.aps.anl.gov/epics/docs/USPAS2007/lectures/Database2.pdf

This technique is not guaranteed to be future-proof, but it works in all current releases and I'm not expecting it to go away soon. The important part is the subroutine record that can detect whether there are any CA monitors connected to itself; if you have control over the client programs or display screens that you want the database to detect, you only need to arrange that they monitor that subroutine record, and now the IOC can alter its behavior depending on whether anyone's listening or not.

HTH,

- Andrew
--
When a distinguished but elderly scientist states that something is
possible, he is almost certainly right.  When he states that something
is impossible, he is very probably wrong.  -- Arthur C. Clarke

References:
passive record/field to process when there is a CA read Dehong Zhang
Re: passive record/field to process when there is a CA read Andrew Johnson
Re: passive record/field to process when there is a CA read Dehong Zhang

Navigate by Date:
Prev: Re: passive record/field to process when there is a CA read Dehong Zhang
Next: RE: Portable Channel Access Server on vxWorks Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: passive record/field to process when there is a CA read Dehong Zhang
Next: Re: passive record/field to process when there is a CA read Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·