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: aiRecord conversion
From: Dirk Zimoch <dirk.zimoch@psi.ch>
To: Bruno Seiva Martins <brunoseivam@gmail.com>
Cc: tech-talk@aps.anl.gov
Date: Tue, 28 Aug 2012 15:12:21 +0200
Hi Bruno,

Many drivers overwrite EOFF and ESLO with their own calculations (from EGUL and EGUF and their own assumptions about the raw value range).

So the important missing information is: What driver are you using (DTYP)?

Dirk


Bruno Seiva Martins 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



Replies:
Re: aiRecord conversion Bruno Seiva Martins
References:
aiRecord conversion Bruno Seiva Martins

Navigate by Date:
Prev: aiRecord conversion Bruno Seiva Martins
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 
Navigate by Thread:
Prev: aiRecord conversion Bruno Seiva Martins
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 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·