EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

<19941995  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  2022  2023  2024  Index <19941995  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  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Analog input record offsets
From: [email protected] (Marty Kraimer)
Date: Tue, 29 Nov 1994 08:08:47 -0600
> From [email protected] Mon Nov 28 20:22 CST 1994
> Date: Mon, 28 Nov 94 16:23:38 HST
> From: [email protected] (Nick Rees)
> To: [email protected]
> Subject: Analog input record offsets
> Content-Type> : > text> 
> Content-Length: 2155
> 
> 
> I have a rotary encoder with a range of travel less than 360 degrees
> that I want to read into an analog input record. (Yes, its the
> telescope mount encoder).  Unfortunately I have no guarantee where the
> encoder zero point is. The zero point adjustment has to be added to the
> raw value in encoder units, and then the value circularly normalised so
> the value from the encoder always lies between two accepted values.
> 
> I have to write analog input device support for the hardware, so I was
> intending to do this fiddling in device support. Looking at the record
> support, it would seem that the ROFF field might be a field I could use
> - it is in digitizer units (the most convenient in this case) and is
> added to the raw value just after it is returned from device support.
> Device support would then:
> 
> a. Read the value.
> b. Add ROFF
> c. Circularly normalize between the maximum and minimum possible values.
> d. Subtract ROFF (so that it can be added once again in record support).
> 
> A few questions:
> 
> 1. How do I set ROFF? The documentation says `it is the responsibility
>    of the device support routines to use EGUF and EGUL to compute ESLO
>    and ROFF'. All very well but none of the device support routines I
>    have reference ROFF. (grep roff ~epics/share/src/dev/*.c returns nothing).
>    What gives? Am I missing a trick somewhere?
> 

In gtacs, the precurser of epics, the field roff did not appear. The
raw value was always ajjusted in the drivers so that it was a positive number
with 0 representing egul. Thus roff was not needed. For epics roff was added
for generality. Note that for gtacs the raw value was not necessarily the value
read from hardware. I guess that all new device support has followed this model.

> 2. Can I use EGUF and EGUL in ways that were not intended? (i.e. basically
>    ignore them - they don't have sufficient precision). I presume so.
> 
> 3. If ROFF isn't used by device support, can I just set it at
>    initialization - or even in dct (this would require a change to
>    aiRecord.ascii) to a specific value without breaking things?
> 

You could use aoff. It is setable via dct or via Channel Access.

> I admit it is a bit ugly, but the alternative is to write a new analog
> input record for the special case of a circular encoder - and still
> have to write device support for it. If people think this is a better
> way (or have any other suggestions), do tell me.

Note that you always have the option of doing all conversions in
device support and returning a status of 2 which tells record support not
to do any conversions.

Marty Kraimer

Navigate by Date:
Prev: Re: IOC Boot Time Michael Bordua
Next: Re: Analog input record offsets watson
Index: <19941995  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  2022  2023  2024 
Navigate by Thread:
Prev: Analog input record offsets Nick Rees
Next: Re: Analog input record offsets watson
Index: <19941995  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  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·