1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 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 2008 2009 2010 2011 2012 2013 2014 2015 2016 <2017> 2018 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 |