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  <20132014  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  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EDM
From: Andrew Johnson <[email protected]>
To: Zenon Szalata <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Fri, 10 May 2013 13:08:30 -0500
Hi Zenon,

On 2013-05-10 Zenon Szalata wrote:
> The hardware registers are read/write.
> When the IOC starts, the register has some value previously set.
> After IOC init, I issue a series of dbpf commands, one for each register.
> These trigger processing a record that reads the register.
> After the register is read, the read value is put into the output record
> with NPP.

The record you showed was Soft Channel though, was this what you're calling an 
an output record?  I see that it does have a forward link.

> These are Beckhoff bus terminal records which are a bit complicated to
> read from and especially to write to.  To have it work correctly, I need
> to insert a 0.2 second delay between dbpf commands.
> I decided to use NPP because the output record, although it is soft
> channel, when processed will result in the value being written back to
> the register, which should be harmless, but I wanted to avoid it,
> because significantly more delay would be needed.

Unfortunately for most record types doing a dbPut() to the VAL field without 
processing the record will *not* trigger a CA monitor for the field.  If the 
VAL field is PP(TRUE) the code in dbPut() assumes that puts to the field will 
cause the record to be processed and that processing will trigger a monitor, 
so it doesn't do one itself to avoid sending an unnecessary double update.  In 
your case though you're not processing the record, so EDM never gets sent an 
update even though subsequent caget or dbpr commands do show the new value.

> If this is really the cause of my difficulty, I will think how to modify
> the records such that the target output record gets the value and gets
> processed and somehow writing back to the register will be suppressed.
> I was trying to avoid the extra complication.

The SDIS link of the subsequent record might be useful here.

- Andrew
-- 
It is difficult to get a man to understand something, when his salary
depends upon his not understanding it. -- Upton Sinclair

Replies:
Re: EDM Zenon Szalata
References:
EDM Zenon Szalata
Re: EDM Andrew Johnson
Re: EDM Zenon Szalata

Navigate by Date:
Prev: Re: Asyn-based TCP/VXI-11 interface to many devices Rod Nussbaumer
Next: Re: channel archiver questions James F Ross
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EDM Zenon Szalata
Next: Re: EDM Zenon Szalata
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·