EPICS Home

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  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Question about string operation in epics db ?
From: "Mooney, Tim M." <[email protected]>
To: lzf neu <[email protected]>, "[email protected]" <[email protected]>
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 ([email protected]) (630)252-5417
Beamline Controls Group (www.aps.anl.gov)
Advanced Photon Source, Argonne National Lab


From: [email protected] [[email protected]] on behalf of lzf neu [[email protected]]
Sent: Monday, April 17, 2017 8:15 AM
To: [email protected]
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  <20172018  2019  2020  2021  2022  2023  2024 
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  <20172018  2019  2020  2021  2022  2023  2024