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

Subject: Re: Question about "indirect processing" mentioned in documentation for the SSEQ
From: "Wang, Andrew via Tech-talk" <tech-talk at aps.anl.gov>
To: "Mooney, Tim M." <mooney at anl.gov>, EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Sun, 7 Aug 2022 05:38:49 +0000
Hi Tim,

Thank you for the prompt response! Greatly appreciate your clarification about what indirect processing entails. Trying to understand the behind-the-scenes of linking so that my drivers have as minimal issues as possible, so I apologize for my abundance of questions.

I guess my remaining question pertains to asynchronous chaining. If I have a SSEQ record, whose LNKn contains an asynchronous record "rec_1" that is forward-linked to another asynchronous record "rec_2". I could be wrong but does SSEQ only wait for "rec_1" to complete processing without waiting for "rec_2" before moving onto the other LNKn/DLYn/DOLn groups? Section 5.9.3 of 5. Database Locking, Scanning, And Processing (anl.gov) seems to imply that "rec_2" won't process until after "rec_1" has finished processing. Based upon the idea that "rec_1" has finished its processing, would SSEQ move on without waiting for "rec_2" to finish its processing since "rec_1" is the target record?

Thanks,
Andy

From: Mooney, Tim M. <mooney at anl.gov>
Sent: Saturday, August 6, 2022 7:49 AM
To: EPICS tech-talk <tech-talk at aps.anl.gov>; Wang, Andrew <wang126 at llnl.gov>
Subject: Re: Question about "indirect processing" mentioned in documentation for the SSEQ
 
Hi Andrew,

By "indirect" I mean, for example, a record with a CPP link on a PV whose value changes as the result of the SSEQ record's processing.  EPICS doesn't include that record's processing in its execution trace of SSEQ-record-driven processing.

It doesn't matter whether records that are included in an EPICS execution trace are synchronous or asynchronous, because EPICS uses a record's forward link to determine when that record is done, and asynchronous record processing doesn't execute the forward link until the end of the second pass of asynchronous processing.

See slides 31 and following ("completion reporting") of this powerpoint presentation for an illustrated guide to the possibilities that can be involved in an execution trace:

Tim Mooney (mooney at anl.gov) (630)252-5417
Beamline Controls Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab


From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Wang, Andrew via Tech-talk <tech-talk at aps.anl.gov>
Sent: Saturday, August 6, 2022 12:59 AM
To: EPICS tech-talk <tech-talk at aps.anl.gov>
Subject: Question about "indirect processing" mentioned in documentation for the SSEQ
 
Hi all,

I have a quick question regarding this one sentence about WAIT in the SSEQ documentation. It states:

"Finally, if the sseq record successfully waits for targetRecord to finish processing, it is still possible for other records to process as an indirect result of LNKn, and the sseq record cannot wait for this indirectly caused processing to finish unless the database developer has arranged for the indirectly caused processing to be traceable by EPICS."

Two questions I have.
  1. Suppose LNKn processes a record called "rec_1" through CA, "rec_1" is forward-linked to "rec_2", and "rec_2" is forward-linked to "rec_3". Does the statement about indirect processing apply in the case of "rec_1", "rec_2", and "rec_3" all being synchronous records when WAITn is set to be "Wait".
  2. Using the same example, except with "rec_1", "rec_2", and "rec_3" all being asynchronous records (StreamDevice), would indirect processing apply to this case when WAITn is set to be "Wait"? For instance, would SSEQ just wait for "rec_1"'s completion routine or "rec_3"'s completion routine?  

Thank you very much,
Andy

Replies:
Re: Question about "indirect processing" mentioned in documentation for the SSEQ Mark Rivers via Tech-talk
References:
Question about "indirect processing" mentioned in documentation for the SSEQ Wang, Andrew via Tech-talk
Re: Question about "indirect processing" mentioned in documentation for the SSEQ Mooney, Tim M. via Tech-talk

Navigate by Date:
Prev: Re: StreamDevice record locking and processing question Zimoch Dirk (PSI) via Tech-talk
Next: Re: StreamDevice record locking and processing question Wang, Andrew via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
Navigate by Thread:
Prev: Re: Question about "indirect processing" mentioned in documentation for the SSEQ Mooney, Tim M. via Tech-talk
Next: Re: Question about "indirect processing" mentioned in documentation for the SSEQ Mark Rivers via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·