g+
g+ Communities
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  <20122013  2014  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
<== Date ==> <== Thread ==>

Subject: RE: asynPortDriver
From: "Szalata, Zenon M." <zms@slac.stanford.edu>
To: Andrew Johnson <anj@aps.anl.gov>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Tue, 24 Jul 2012 15:27:47 -0700
Hi Andrew,
You are absolutely right that aSub record is the way to go.  The reason for the way I have it is somewhat historic.
The aSub record is processed by a FLNK in the waveform record.  In fact, since this now became a test IOC, I will simplify it further to eliminate the sub array records.
Thank you,
Zen

> -----Original Message-----
> From: Andrew Johnson [mailto:anj@aps.anl.gov]
> Sent: Tuesday, July 24, 2012 3:21 PM
> To: tech-talk@aps.anl.gov
> Cc: Szalata, Zenon M.; Mark Rivers
> Subject: Re: asynPortDriver
> 
> Hi Zenon,
> 
> A couple of comments...
> 
> On 2012-07-24 Szalata, Zenon M. wrote:
> >
> > My diagnostic mechanism consists of two sets of EPICS records.
> > The data are passed from the device driver as an array of 17 integers.
> > The  first is a gate counter, which is incremented just before it is
> > put in the  array.  This counter is followed by 16 ADC values.  The
> > array is received  in a waveform record.  The waveform record triggers
> > processing of an aSub  record and a chain of sub array records where
> > the ADC values are extracted  and put into ai records. The aSub record
> > compares the value of the gate  counter with the value of gate counter
> > from a previous event.  If this  value is not greater by 1 than the
> > previous value, it prints a message,  which shows this and previous values.
> 
> If you are looking for high performance a chain of sub-array records is not
> going to be terribly efficient.  Much better would be to use the aSub itself to
> split up your array into 16 individual output fields VALx and point the OUTx
> links to the individual ai records.
> 
> > Here is a typical output:
> >
> > asubMiss: Something wrong: n=53385,lastn=53383
> > asubMiss: Something wrong: n=53385,lastn=53385
> > subASMissing: got a missing ++++++++++++++++
> >
> a=53385.000,b=0.000,c=4294967295.000,d=1.000,e=53383.000,f=1.000,g=1.
> 0
> > 00
> > k=2.000,l=1.000,val=2.000
> > subASMissing: trigger number this=53385.0, prev=53385.0
> >
> > The first two messages come from the aSub record, the next three come
> > from  the sub record. I am not sure how to interpret the presence of
> > the second  of the two messages from the aSub record and the third
> > from the sub  record.  It looks as if the waveform record processed
> > twice when the  problem occurred.
> 
> Actually I would read the first asubMiss as somehow having its input array
> overwritten while it was still processing for n=53384, then immediately getting
> retriggered for the actual n=53385.
> 
> How is your waveform record connected to the aSub record, i.e. what causes
> the aSub to process after the waveform record processes?
> 
> - Andrew
> --
> Never interrupt your enemy when he is making a mistake.
> -- Napoleon Bonaparte


References:
asynPortDriver Szalata, Zenon M.
RE: asynPortDriver Mark Rivers
RE: asynPortDriver Szalata, Zenon M.
Re: asynPortDriver Andrew Johnson

Navigate by Date:
Prev: Re: asynPortDriver Andrew Johnson
Next: RE: asynPortDriver Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
Navigate by Thread:
Prev: Re: asynPortDriver Andrew Johnson
Next: RE: asynPortDriver Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·