Hi Mooney,
Thanks for your respond. I have some questions to consult you.
According to the instructions that described in calc/documentation/calcDocs.html.
I do the following steps to build calc and have doubts in step4 and step5 :
1) Edit configure/RELEASE
to specify the paths to EPICS base.
2) comment the sscan and seq modules definition out
because of no swait record used and don't have sscan and seq.
3) run "make" to build .
4) An application that uses calc must specify the path to the calc module in its configure/RELEASE file.
I build an softioc use the command:
makeBaseApp.pl -t example sapt
makeBaseApp.pl -i -t example sapt
make
I have no idea how to do this step? I try to add the following line to the path of calc-master in my softioc's RELEASE file :
CALC=/home/user/epics/modules/calc-master
5) it must add include calc.dbd to its xxxInclude.dbd
file:
however, I don't have xxxInclude.dbd file in my softioc in step 4) I created. I have no idea how to do this step.
So, I try to copy calc.dbd file from calc-master folder to my softioc dbd folder instead.
6) it must link with libcalc
, by adding a line like
xxx_LIBS += calc
to xxxApp/src/Makefile:
I add this line to my saptApp/src/Makefile file:
# Link in the code from our support library
sapt_LIBS += calc
After start my ioc, I failed to use scalcout record, and display the following errors in terminal:
Record "Second-calc" is of unknown type "scalcout"
Error at or before ")" in file "db/s7_300.db" line 36
Could you give me some suggestions in details and thanks in advance !!
Zhefu
Hi Zhefu,
The scalcout record is not in EPICS base; it's in the calc module:
https://github.com/epics-modules/calc
github.com
README.md calc. APS BCDA synApps module: calc. For more information, see http://www.aps.anl.gov/bcda/synApps. Report an issue with calc Request a feature
|
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
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