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  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 
<== Date ==> <== Thread ==>

Subject: RE: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples)
From: Mark Rivers <rivers@cars.uchicago.edu>
To: "'Benoit'" <benpaka.spam@gmail.com>, EPICS mailing list <tech-talk@aps.anl.gov>
Date: Tue, 10 Dec 2013 18:30:16 +0000

Is the database you sent incomplete?  You have

 

            field(FLNK,"$(user):AllInterlocksRdbk") #or field(FLNK,"$(user):AllInterlocksRdbk.VAL PP") 

 

but I don’t see the record $(user):AllInterlocksRdbk in the database, only "$(user):AllInterlocks.

 

Also, if you are going to put a field in a FLNK it should not be the .VAL field, but rather the .PROC field, i.e.

 

    field(FLNK,"$(user):AllInterlocksRdbk.PRO PP") 

 

 

From: tech-talk-bounces@aps.anl.gov [mailto:tech-talk-bounces@aps.anl.gov] On Behalf Of Benoit
Sent: Tuesday, December 10, 2013 11:30 AM
To: EPICS mailing list
Subject: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples)

 

Hi everybody,

 

I've been looking to obtain concrete examples of the following post: http://www.aps.anl.gov/epics/tech-talk/2012/msg02557.php in order to retrieve my data

 

I think I get it well for 

  • pool: scan every 5 seconds the value of TempActRdbk
  • push: getting the value of CtrlManualStat read register when CtrlManualCmd write register is updated (this is done in the asynDriver).

However, I don't manage to use the forward link so that when I write in  CtrlManualCmd I want to obtain an updated value of AllInterlocks.

Can someone tell me how to perform, and what I am doing wrong in the use of FLNK:

 

 

record(bo, "$(user):CtrlManualCmd")
{
        field(DTYP ,"asynInt32")
        field(OUT  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))Ctrl_Manual")
}
record(bi, "$(user):CtrlManualStat")
{
        field(DTYP ,"asynInt32")
        field(INP  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))Ctrl_Manual")
        field(SCAN ,"I/O Intr")
        field(FLNK,"$(user):AllInterlocksRdbk") #or field(FLNK,"$(user):AllInterlocksRdbk.VAL PP") 
}
record(ai, "$(user):AllInterlocks")
{
        field(DTYP ,"asynInt32")
        field(INP  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))Ilk_All")
        field(SCAN ,"I/O Intr")
}
record(ai, "$(user):TempActRdbk")
{
        field(DTYP ,"asynInt32")
        field(INP  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))temp_act")
        field(SCAN ,"5 second")
}


--
Benoit RAT


Replies:
Re: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) Benoit
Re: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) Andrew Johnson
References:
ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) Benoit

Navigate by Date:
Prev: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) Benoit
Next: Re: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) Benoit
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 
Navigate by Thread:
Prev: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) Benoit
Next: Re: ai records: pool (SCAN) VS pull (FLNK) VS push (some examples) Benoit
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 
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 ·