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

Subject: Re: CALC expression
From: Ned Arnold <[email protected]>
To: Andrew Wagner <[email protected]>, EPICS tech-talk <[email protected]>
Date: Tue, 28 Sep 2010 15:20:44 -0500
Andrew -

It is not uncommon to break the expression up between multiple calc records to work around the length limitation.  You can put those floating point constants in spare inputs ... and then have a second calc that returns "(235>B && 5>D && 5>E)" to another input ... and I think you will fit.

   Ned



On Sep 28, 2010, at 3:11 PM, Mark Rivers wrote:

> I suspect your CALC expression is longer than 40 characters and that is
> the source of the error.
> 
> Mark
> 
> 
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Andrew Wagner
> Sent: Tuesday, September 28, 2010 3:04 PM
> To: [email protected]
> Subject: CALC expression
> 
> Hey everyone, 
> 
> I need to evaluate a somewhat complicated conditional statement in a
> calc record. Presently I need to evaluate: 
> 
> field(CALC, "(235>B && 5>D && 5>E) ? (B*0.00835 - 0.7 > A + (C-B)*0.25
> ? B*0.00835 - 0.7: A + (C-B)*0.25): 0")
> 
> where the letters are input variables. When I load the record I get the
> error
> 
> Can't set "VOLT:PID.CALC" to "(235>B && 5>D && 5>E) ? (B*0.00835 - 0.7 >
> A + (C-B)*0.25 ? B*0.00835 - 0.7: A + (C-B)*0.25): 0"
> Error at or before ")" in file "MagnetCtrlApp/Db/MagnetCtrl.db" line 113
> 
> Does CALC not support nested evaluations? Perhaps I need a subroutine
> record? Any advice would be greatly appreciated. 
> 
> Cheers, 
> 
> Andrew
> 
> 
> 
> 



Replies:
Re: CALC expression Ralph Lange
References:
CALC expression Andrew Wagner
RE: CALC expression Mark Rivers

Navigate by Date:
Prev: RE: CALC expression Mark Rivers
Next: Re: CALC expression Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: CALC expression Mark Rivers
Next: Re: CALC expression Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 28 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·