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: Get a time difference in EPICS database
From: Tim Mooney <mooney@aps.anl.gov>
To: 洪春霞 <hongchunxia@sinap.ac.cn>
Cc: tech-talk@aps.anl.gov
Date: Fri, 23 Nov 2012 22:46:55 -0600 (CST)
hongchunxia,
Two things:

1) If you are using the soft time device support in EPICS base, and you want to use a calc record to calculate the time difference, you should not get the time as a formatted string, but instead get it as the raw number of seconds since the fixed "epoch" (which I think is some time back in 1990 or something):

record(ai,"time1") {
    field(DTYP, "Soft Timestamp")
}
record(ai,"time2") {
    field(DTYP, "Soft Timestamp")
}
record(calcout,"timeDiff") {
    field(DESC,"time2-time1 (seconds)")
    field(INPA,"time1 NPP")
    field(INPB,"time2" NPP)
    field(CALC,"b-a")
}

2) I don't see anything in your database that would cause h:Systemtime2 to process.  I think your job might be easier if you separate the job of deciding whether h:Systemtime2 should process, from the job of calculating the difference between h:Systemtime1 and h:Systemtime2.

Tim Mooney

----- Original Message -----
From: "洪春霞" <hongchunxia@sinap.ac.cn>
To: tech-talk@aps.anl.gov
Sent: Friday, November 23, 2012 2:07:26 AM
Subject: Get a time difference in EPICS database




Hi, 
I want to get a time difference in EPICS database, the record of h:Systemtime1 is run when ioc is start, that is, it is the realtime time. 
The record of h:Systemtime2 is get when A=3 in the record(calcout,"h:monitor_time"), and it should be executed once, but now I can not get the time of h:Systemtime2. 
When I input “camonitor h:Systemtime2” in another Terminal, I always get “h:Systemtime2 <underfined> UDF INVALID”,and I input “camonitor h:time_plus” in another Terminal, I get the time is the value of C. 
That is to say, the record of h:Systemtime2 is not executed. 

Can you give me some advice? Thank you very much. 
Best Wishes. 

The database which I use is as follows: 

record(ai, "h:status") 
{ 
} 
record(stringin,"h:Systemtime1") 
{ 
field(DESC,"Systemtime1") 
field(DTYP,"Soft Timestamp") 
field(SCAN,"1 second") 
field(PINI,"YES") 
field(INP,"@%s") 
} 
record(stringin,"h:Systemtime2") 
{ 
field(DESC,"Systemtime2") 
field(DTYP,"Soft Timestamp") 
field(INP,"@%s") 
field(DISV,"0")#If DISV=DISA, then the record will be disabled 
field(SDIS,"h:monitor_time PP MS")# 
} 
#This is the value that is compared with DISV to determine if the record is 
#disabled. Its value is obtained via SDIS if SDIS is a database or channel access 
#link. 
record(calcout,"h:time_difference") 
{ 
field(CALC,"A=B?(C-D):0") 
field(INPA,"h:status PP NMS") 
field(INPB,"3") 
field(INPC,"h:Systemtime1 PP NMS") 
field(INPD,"h:Systemtime2 NPP NMS") 
field(OUT,"h:time_plus PP NMS") 
field(OOPT,"Transition To Non-zero") 
} 
------------------------------------------ 
hongchunxia 

-- 
Tim Mooney (mooney@aps.anl.gov) (630)252-5417
Software Services Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab


Replies:
答复: Get a time difference in EPICS database 洪春霞
References:
Get a time difference in EPICS database 洪春霞

Navigate by Date:
Prev: Utilities for EPICS on Multi-Core Linux Ralph Lange
Next: 答复: Get a time difference in EPICS database 洪春霞
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: Get a time difference in EPICS database 洪春霞
Next: 答复: Get a time difference in EPICS database 洪春霞
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 ·