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

Subject: A bug of calc record?
From: "Silver" <[email protected]>
To: "tech-talk" <[email protected]>
Date: Sun, 23 Nov 2008 16:44:23 +0800
hi, all:

I am trying to use the record suggested by Ned Arnold. It's good work when increment is 1. but when I change to 0.1, it has a strange problem. the db file is like following:

record(ai, "$(user):aiExample")
{
	field(DESC, "Analog input")
	field(INP, "$(user):calcExample.VAL  NPP NMS")
}
record(calc, "$(user):calcExample")
{
	field(DESC, "Counter")
	field(SCAN,"1 second")
	field(FLNK, "$(user):aiExample")
	field(CALC, "A-B>0?A>=0.9?0.8:A+0.1:A<0.1?0.1:A-0.1")
	field(INPA, "$(user):calcExample.VAL  NPP NMS")
	field(INPB, "$(user):calcExample.LA NPP NMS")
	field(EGU, "Counts")
}
  
Following is dbtr message, we can see when the value change to 0.1, after caculation, it's value change to VAL: 1.38777878078145e-16, can anyone give some suggestion? thanks a lot in advance.

epics> dbtr tcl:calcExample
A: 0.2              ACKS: NO_ALARM      ACKT: YES           ADEL: 0             
ALST: 0.1           ASG:                B: 0.3              BKPT: 0x00          
C: 0                CALC: A-B>0?A>=0.9?0.8:A+0.1:A<0.1?0.1:A-0.1                
D: 0                DESC: Counter       DISA: 0             DISP: 0             
DISS: NO_ALARM      DISV: 1             DTYP: <nil>         E: 0                
EGU: Counts         EVNT: 0             F: 0                
FLNK:DB_LINK tcl:aiExample              G: 0                H: 0                
HHSV: NO_ALARM      HIGH: 0             HIHI: 0             HOPR: 0             
HSV: NO_ALARM       HYST: 0             I: 0                
INPA:DB_LINK tcl:calcExample.VAL NPP NMS                    
INPB:DB_LINK tcl:calcExample.LA NPP NMS INPC:CONSTANT       INPD:CONSTANT       
INPE:CONSTANT       INPF:CONSTANT       INPG:CONSTANT       INPH:CONSTANT       
INPI:CONSTANT       INPJ:CONSTANT       INPK:CONSTANT       INPL:CONSTANT       
J: 0                K: 0                L: 0                LA: 0.2             
LALM: 0.1           LB: 0.3             LC: 0               LCNT: 0             
LD: 0               LE: 0               LF: 0               LG: 0               
LH: 0               LI: 0               LJ: 0               LK: 0               
LL: 0               LLSV: NO_ALARM      LOLO: 0             LOPR: 0             
LOW: 0              LSV: NO_ALARM       MDEL: 0             MLST: 0.1           
NAME: tcl:calcExample                   NSEV: NO_ALARM      NSTA: NO_ALARM      
PACT: 0             PHAS: 0             PINI: NO            PREC: 0             
PRIO: LOW           PROC: 0             PUTF: 0             RPRO: 0             
SCAN: 1 second      SDIS:CONSTANT       SEVR: NO_ALARM      STAT: NO_ALARM      
TPRO: 0             TSE: 0              TSEL:CONSTANT       UDF: 0              
VAL: 0.1            
epics> dbtr tcl:calcExample
A: 0.1              ACKS: NO_ALARM      ACKT: YES           ADEL: 0             
ALST: 1.38777878078145e-16              ASG:                B: 0.2              
BKPT: 0x00          C: 0                
CALC: A-B>0?A>=0.9?0.8:A+0.1:A<0.1?0.1:A-0.1                D: 0                
DESC: Counter       DISA: 0             DISP: 0             DISS: NO_ALARM      
DISV: 1             DTYP: <nil>         E: 0                EGU: Counts         
EVNT: 0             F: 0                FLNK:DB_LINK tcl:aiExample              
G: 0                H: 0                HHSV: NO_ALARM      HIGH: 0             
HIHI: 0             HOPR: 0             HSV: NO_ALARM       HYST: 0             
I: 0                INPA:DB_LINK tcl:calcExample.VAL NPP NMS                    
INPB:DB_LINK tcl:calcExample.LA NPP NMS INPC:CONSTANT       INPD:CONSTANT       
INPE:CONSTANT       INPF:CONSTANT       INPG:CONSTANT       INPH:CONSTANT       
INPI:CONSTANT       INPJ:CONSTANT       INPK:CONSTANT       INPL:CONSTANT       
J: 0                K: 0                L: 0                LA: 0.1             
LALM: 1.38777878078145e-16              LB: 0.2             LC: 0               
LCNT: 0             LD: 0               LE: 0               LF: 0               
LG: 0               LH: 0               LI: 0               LJ: 0               
LK: 0               LL: 0               LLSV: NO_ALARM      LOLO: 0             
LOPR: 0             LOW: 0              LSV: NO_ALARM       MDEL: 0             
MLST: 1.38777878078145e-16              NAME: tcl:calcExample                   
NSEV: NO_ALARM      NSTA: NO_ALARM      PACT: 0             PHAS: 0             
PINI: NO            PREC: 0             PRIO: LOW           PROC: 0             
PUTF: 0             RPRO: 0             SCAN: 1 second      SDIS:CONSTANT       
SEVR: NO_ALARM      STAT: NO_ALARM      TPRO: 0             TSE: 0              
TSEL:CONSTANT       UDF: 0              VAL: 1.38777878078145e-16               
epics> dbtr tcl:calcExample
A: 1.38777878078145e-16                 ACKS: NO_ALARM      ACKT: YES           
ADEL: 0             ALST: 0.1           ASG:                B: 0.1              
BKPT: 0x00          C: 0                
CALC: A-B>0?A>=0.9?0.8:A+0.1:A<0.1?0.1:A-0.1                D: 0                
DESC: Counter       DISA: 0             DISP: 0             DISS: NO_ALARM      
DISV: 1             DTYP: <nil>         E: 0                EGU: Counts         
EVNT: 0             F: 0                FLNK:DB_LINK tcl:aiExample              
G: 0                H: 0                HHSV: NO_ALARM      HIGH: 0             
HIHI: 0             HOPR: 0             HSV: NO_ALARM       HYST: 0             
I: 0                INPA:DB_LINK tcl:calcExample.VAL NPP NMS                    
INPB:DB_LINK tcl:calcExample.LA NPP NMS INPC:CONSTANT       INPD:CONSTANT       
INPE:CONSTANT       INPF:CONSTANT       INPG:CONSTANT       INPH:CONSTANT       
INPI:CONSTANT       INPJ:CONSTANT       INPK:CONSTANT       INPL:CONSTANT       
J: 0                K: 0                L: 0                
LA: 1.38777878078145e-16                LALM: 0.1           LB: 0.1             
LC: 0               LCNT: 0             LD: 0               LE: 0               
LF: 0               LG: 0               LH: 0               LI: 0               
LJ: 0               LK: 0               LL: 0               LLSV: NO_ALARM      
LOLO: 0             LOPR: 0             LOW: 0              LSV: NO_ALARM       
MDEL: 0             MLST: 0.1           NAME: tcl:calcExample                   
NSEV: NO_ALARM      NSTA: NO_ALARM      PACT: 0             PHAS: 0             
PINI: NO            PREC: 0             PRIO: LOW           PROC: 0             
PUTF: 0             RPRO: 0             SCAN: 1 second      SDIS:CONSTANT       
SEVR: NO_ALARM      STAT: NO_ALARM      TPRO: 0             TSE: 0              
TSEL:CONSTANT       UDF: 0              VAL: 0.1            
epics> 

Best regards
Geyang  2008-11-23



Replies:
Re: A bug of calc record? Tim Mooney

Navigate by Date:
Prev: Re: CAEN V965 driver Kate Feng
Next: Re: A bug of calc record? Tim Mooney
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Galil Motion Controllers Dropp, Christopher
Next: Re: A bug of calc record? Tim Mooney
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·