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

Subject: Re: aiRecord conversion
From: Eric Norum <[email protected]>
To: Bruno Seiva Martins <[email protected]>
Cc: [email protected]
Date: Tue, 28 Aug 2012 06:45:05 -0700
Perhaps you misread the wiki page.  EGUL does not take part in the conversions.  
Here is the salient portion of the wiki page:

The record processing routine performs the following algorithm for all records except those that use the Soft Channel device support routine. Be aware that step 3 is performed only when the record specifies LINEAR:

1. Val= RVAL + ROFF
2. Val = Val * ASLO + AOFF

If the conversion algorithm is LINEAR, the raw value is converted via the equation:

3. val = val * ESLO + EOFF

If the conversion is via a breakpoint table, the new value is obtained.



On Aug 28, 2012, at 5:48 AM, Bruno Seiva Martins <[email protected]> wrote:

Hi all,

I am having trouble trying to adjust the conversion parameters of an analog input record for a A/D converter.
My AD accepts voltages ranging from -10 to 10 volts and has a resolution of 12 bits.

For -10 volts, it produces a digital output of 0
For 10 volts, 4095

I configured the conversion fields as follows:

EGUF: 10
EGUL: -10
AOFF: 0
ASLO: 1
EOFF: 0
ESLO 0.004884   // which is (EGUF - EGUL) / 4095
ROFF: 0
LINR: LINEAR

Those values seem right to me but, for example, RVAL=1005 gets converted to VAL=4.9084, when it should be VAL=-5.0916. The problem seems to be that the conversion formula isn't taking into account the EGUL field.

According to the EPICS record reference for aiRecord:

The record processing routine performs the following algorithm for all records except those that use the Soft Channel device support routine. Be aware that step 3 is performed only when the record specifies LINEAR:
1. Val= RVAL + ROFF
2. Val = Val * ASLO + AOFF
If the conversion algorithm is LINEAR, the raw value is converted via the equation:
3. val = val * ESLO + EGUL

Seems like the step 3 is not being completely executed, or considering EGUL = 0...


Does anybody know what is wrong? Probably I'm missing something really obvious, but I couldn't figure it out...


Thanks in advance,


Bruno Seiva Martins

-- 
Eric Norum
[email protected]





Replies:
Re: aiRecord conversion Bruno Seiva Martins
Re: aiRecord conversion Nicholas P. DiMonte
References:
aiRecord conversion Bruno Seiva Martins

Navigate by Date:
Prev: Re: aiRecord conversion Bruno Seiva Martins
Next: Re: aiRecord conversion Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: aiRecord conversion Eric Norum
Next: Re: aiRecord conversion Bruno Seiva Martins
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·