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  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
<== Date ==> <== Thread ==>

Subject: RE: Question about string operation in epics db ?
From: "Mooney, Tim M." <mooney@aps.anl.gov>
To: lzf neu <lzfneu@live.com>, "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Mon, 17 Apr 2017 14:55:44 +0000
Hi Zhefu,

The scalcout record is not in EPICS base; it's in the calc module:
https://github.com/epics-modules/calc
If you want to use it, you must build the calc module separately from EPICS base,
as described in calc/documentation/calcDocs.html

A database-fragment that does what you've described might look like this:
record(scalcout, "recname") {
    field(INPA, "<link to number-of-seconds PV>")
    field(CALC, "printf('%02d', a)")
}

If you're using EPICS base 3.15, you can use the printf record.

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


From: tech-talk-bounces@aps.anl.gov [tech-talk-bounces@aps.anl.gov] on behalf of lzf neu [lzfneu@live.com]
Sent: Monday, April 17, 2017 8:15 AM
To: tech-talk@aps.anl.gov
Subject: Question about string operation in epics db ?

Hi, 


I have a question to consult you.


PV name: "Global-second2_dword" is used to display 60 seconds countdown from PLC.


If the seconds countdown is less than 10, it displays a single digital in terminal. Now I want to add zero in the left of the single digital. eg.09,08,07,06,05,04,03,02,01,00.


Maybe string operation may solve the problem. I have tried  "scalcout" record, but epics displays the error message:

Record XXX is of unknown type "scalcout" and I have no idea how to write the db.


I have post the record in the following lines:  


####################################

record(ai, "Global-Second")
{
    field(DTYP, "s7nodave")
    field(INP, "@s7_300 (PG=.2s) MW60")
    field(SCAN, "I/O Intr")
    field(FLNK, "Global-Second2_dword")
}

record(calc, "Global-Second2_dword")
{
        field(INPA, "Global-Second.VAL")
        field(CALC, "A/10")
}
####################################


Any help will be apprecieated and thanks in advance!


Zhefu


Replies:
Question about build calc module to use scalcout record lzf neu
References:
Question about string operation in epics db ? lzf neu

Navigate by Date:
Prev: Re: CSS binary color text Hartman, Steven M.
Next: EPICS support for Solaris (on SPARC or x86)? Andrew Johnson
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
Navigate by Thread:
Prev: 答复: Question about string operation in epics db ? lzf neu
Next: Question about build calc module to use scalcout record lzf neu
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
ANJ, 27 Apr 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·