# Experimental Physics and Industrial Control System

 <== Date ==> <== Thread ==> 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <2012>  2013  2014  2015  2016  2017 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <2012>  2013  2014  2015  2016  2017

 Subject: Re: aiRecord conversion From: Eric Norum To: Bruno Seiva Martins Cc: tech-talk@aps.anl.gov 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 + ROFF2. Val = Val * ASLO + AOFFIf the conversion algorithm is LINEAR, the raw value is converted via the equation:3. val = val * ESLO + EOFFIf the conversion is via a breakpoint table, the new value is obtained.On Aug 28, 2012, at 5:48 AM, 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 0For 10 volts, 4095I configured the conversion fields as follows:EGUF: 10 EGUL: -10AOFF: 0ASLO: 1EOFF: 0ESLO 0.004884   // which is (EGUF - EGUL) / 4095 ROFF: 0LINR: LINEARThose 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 + ROFF2. Val = Val * ASLO + AOFFIf the conversion algorithm is `LINEAR`, the raw value is converted via the equation: 3. val = val * ESLO + EGULSeems 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 Norumeric@norum.ca

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