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  <20152016  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  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: multi-channel analog i/p
From: Peter Milne <[email protected]>
To: [email protected], [email protected]
Date: Wed, 24 Jun 2015 08:57:33 +0100
Hi Stefen


On 24/06/15 08:32, Stefen Paul wrote:
Hi,

Is there a comprehensive document/website available telling about
including 'driver support' in EPICS  ?

How can one call vxWorks device driver routines from EPICS records and
make the data read by driver routine available to the EPICS records ?

Like in my case where I have a vxWorks driver for VME based 32-channel
analog i/p board. I need to read the h/w through the driver only because
of some FIFO design issues. But once the data is read by the driver, I
would like to pass each channel's raw data to an individual ai record.

Something that works for me with a 96 channel digitizer:

- each AI record, scan ="I/O Intr", is registered with a custom device support. - the device support starts a monitor thread that picks up an array of 96 binary data values on interrupt. - the monitor thread then causes each AI record to update by calling scanIoRequest(). - on update, the AI record simply picks the correct binary value from the array of 96.

The actual code is probably less relevant to you than the principle, but you'd welcome to read and use it:
http://www.d-tacq.com/swrel/acq2ioc.src.111108104002.tgz

We run this at 96 channels x 10Hz on a 400MHz cpu, the actual ADC sample rate is much higher of course ..

Cheers

Peter.

Thanks,
Stefen.

On Tue, Jun 23, 2015 at 6:19 PM, Hartman, Steven M. <[email protected]
<mailto:[email protected]>> wrote:


    > On Jun 23, 2015, at 1:36 AM, Stephen Paul <[email protected] <mailto:[email protected]>> wrote:
    >
    > Instead , I first want a record and its device support to read all the channels from the board in one go and then pass these values to individual 32 ai records for conversion.
    >
    > Can anyone suggest what type of record I can use before ai record to achieve this ?

    Rather then a record for reading all of the hardware values, your
    device driver can have a worker thread responsible for reading from
    the hardware. This can be scheduled either periodically or based on
    some trigger. Your ai records would then read from the cached values
    from this worker thread rather then directly from the hardware.
    There are a number of drivers which take this approach, typically
    with more complicated hardware with a large number of registers to
    be read, or having a variety of different data types to support.

    --
    Steven Hartman
    [email protected] <mailto:[email protected]>





--
Peter Milne
Director of Sales
www.d-tacq.com

References:
multi-channel analog i/p Stephen Paul
Re: multi-channel analog i/p Hartman, Steven M.
Re: multi-channel analog i/p Stefen Paul

Navigate by Date:
Prev: Re: multi-channel analog i/p Stefen Paul
Next: Detecting EPICS record processing Jan Malec
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: multi-channel analog i/p Stefen Paul
Next: RE: multi-channel analog i/p Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·