EPICS Controls 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  2018  2019  2020  <20212022  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  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS compilation
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: Adrian Martinez <adrian.martinez at sevensols.com>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 5 Jul 2021 16:19:03 +0000
Hi Adrian,


> < envPaths
> Can't open envPaths: No such file or directory


That error means your /home//bpm_epics/iocBoot/iocAsynBPM2/Makefile either does not tell it to build envPaths, or the Makefile is not being executed, perhaps because the ARCH is wrong.  If you don't need an autogenerated envPaths then you should comment out that line in st.cmd.


You are getting this error for record DacSelARdbk:

2021/07/02 09:41:16.259 asynPortDriver:drvUserCreate: addr=0, cannot find parameter DacSel_A
SL-MBT-MAG4:DIA-BPM-2:DacSelARdbk devAsynInt32::initCommon drvUserCreate


That record is defined here:

record(mbbi, "$(user):DacSelARdbk")
{
field(DTYP ,"asynInt32")
field(INP  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))DacSel_A")


The error means that your driver has not created an asynPortDriver parameter called DacSel_A.


This is the line in the driver that is probably intended to create that parameter.

createParam( new EWBField( lastreg, WB2_FIELD_ARGS( DAC, DACSEL, A )));


However, the string it is creating is not clear because it is being done in function EWBField::EWBField, which you have not shared.


Please send the output of the following iocsh command:


asynReport 10


That will show all parameters for all drivers.


Mark




________________________________
From: Adrian Martinez <adrian.martinez at sevensols.com>
Sent: Monday, July 5, 2021 12:38 AM
To: Mark Rivers
Cc: tech-talk at aps.anl.gov
Subject: Re: EPICS compilation

Hi Mark,

I attach another example with fewer errors of this type (It is another driver in whose compilation the same error occurs).

- Output when IOC boots:
#!../../bin/linux-arm/AsynBPM2
< envPaths
Can't open envPaths: No such file or directory
##Set the DATADIR (store autosave, datalog, etc.)
epicsEnvSet( "TOP","/home/sevensols/bpm_epics")
#epicsEnvSet( "EPICSWB","/home/bpm_epics/epics-wb")
epicsEnvSet( "DATADIR","." )
epicsEnvSet( "IOCPATH","/root" )
epicsEnvSet( "EPICS_CA_MAX_ARRAY_BYTES","45000")
epicsEnvSet( "BPM","BPM2")
##Set the host EPICS name
epicsEnvSet("EPICS_HOST_1","SL-MBT-MAG4:DIA-BPM-2")
cd "/home/bpm_epics"
## Register all support components
dbLoadDatabase ("dbd/AsynBPM2.dbd")
AsynBPM2_registerRecordDeviceDriver pdbbase
## Configure the IOCs
AsynBPM2DrvrConfigure( "BPM2", 1, "./datalog" )
7
## Load record instances for BPM-1
# ALR
dbLoadRecords( "db/alr.db",         "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
# CTL
dbLoadRecords( "db/ctl.db",         "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
# DAC
dbLoadRecords( "db/dac.db",         "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
dbLoadRecords( "db/diag.db",        "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
# IQ2AP
dbLoadRecords( "db/iq2ap.db",       "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
# GEN
dbLoadRecords( "db/gen.db",         "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
dbLoadRecords( "db/fil.db",         "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
dbLoadRecords( "db/pos.db",         "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
dbLoadRecords( "db/bpm_time.db",    "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
dbLoadRecords( "db/pm_slw_idx.db",  "user=SL-MBT-MAG4:DIA-BPM-2, PORT=BPM2, ADDR=0, TIMEOUT=1" )
## Set this to see messages from mySub
#var mySubDebug 1
## Run this to trace the stages of iocInit
#traceIocInit
## setup autosave files and directories
set_savefile_path("/home/data/autosave")
set_requestfile_path("/home//bpm_epics/iocBoot/iocAsynBPM2")
set_pass1_restoreFile("auto_settings_BPM2.sav")
# Number of sequenced backup files (e.g., 'auto_settings.sav0') to write
save_restoreSet_NumSeqFiles(3)
#cd "${TOP}/iocBoot/${IOC}"
iocInit
Starting iocInit
############################################################################
## EPICS R3.15.5
## EPICS Base built Apr  8 2021
############################################################################
2021/07/02 09:41:16.259 asynPortDriver:drvUserCreate: addr=0, cannot find parameter DacSel_A
SL-MBT-MAG4:DIA-BPM-2:DacSelARdbk devAsynInt32::initCommon drvUserCreate
2021/07/02 09:41:16.260 asynPortDriver:drvUserCreate: addr=0, cannot find parameter DacSel_B
SL-MBT-MAG4:DIA-BPM-2:DacSelBRdbk devAsynInt32::initCommon drvUserCreate



- Record definition:
##  Records definitions for slave peripheral: dac
## =============================================================================


##================ DacSel

##---------------- 'A' in 'DacSel'

record(mbbo, "$(user):DacSelASet")
{
field(DTYP ,"asynInt32")
field(OUT  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))DacSel_A")
field(DESC ,"Selector Output signal")
field(ZRST, "V+ Amp")
field(ZRVL, "0")
field(ONST, "V- Amp")
field(ONVL, "1")
field(TWST, "H+ Amp")
field(TWVL, "2")
field(THST, "H- Amp")
field(THVL, "3")
field(FRST, "V+ Ph")
field(FRVL, "4")
field(FVST, "V- Ph")
field(FVVL, "5")
field(SXST, "H+ Ph")
field(SXVL, "6")
field(SVST, "H- Ph")
field(SVVL, "7")
field(EIST, "ASUM")
field(EIVL, "8")
field(NIST, "X MES")
field(NIVL, "9")
field(TEST, "Y MES")
field(TEVL, "10")
}

record(mbbi, "$(user):DacSelARdbk")
{
field(DTYP ,"asynInt32")
field(INP  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))DacSel_A")
field(SCAN ,"I/O Intr")
field(DESC ,"Selector Output signal")
field(ZRST, "V+ Amp")
field(ZRVL, "0")
field(ONST, "V- Amp")
field(ONVL, "1")
field(TWST, "H+ Amp")
field(TWVL, "2")
field(THST, "H- Amp")
field(THVL, "3")
field(FRST, "V+ Ph")
field(FRVL, "4")
field(FVST, "V- Ph")
field(FVVL, "5")
field(SXST, "H+ Ph")
field(SXVL, "6")
field(SVST, "H- Ph")
field(SVVL, "7")
field(EIST, "ASUM")
field(EIVL, "8")
field(NIST, "X MES")
field(NIVL, "9")
field(TEST, "Y MES")
field(TEVL, "10")
}

##---------------- 'B' in 'DacSel'

record(mbbo, "$(user):DacSelBSet")
{
field(DTYP ,"asynInt32")
field(OUT  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))DacSel_B")
field(DESC ,"Selector Output signal")
field(ZRST, "V+ Amp")
field(ZRVL, "0")
field(ONST, "V- Amp")
field(ONVL, "1")
field(TWST, "H+ Amp")
field(TWVL, "2")
field(THST, "H- Amp")
field(THVL, "3")
field(FRST, "V+ Ph")
field(FRVL, "4")
field(FVST, "V- Ph")
field(FVVL, "5")
field(SXST, "H+ Ph")
field(SXVL, "6")
field(SVST, "H- Ph")
field(SVVL, "7")
field(EIST, "ASUM")
field(EIVL, "8")
field(NIST, "X MES")
field(NIVL, "9")
field(TEST, "Y MES")
field(TEVL, "10")
}

record(mbbi, "$(user):DacSelBRdbk")
{
field(DTYP ,"asynInt32")
field(INP  ,"@asyn($(PORT),$(ADDR),$(TIMEOUT))DacSel_B")
field(SCAN ,"I/O Intr")
field(DESC ,"Selector Output signal")
field(ZRST, "V+ Amp")
field(ZRVL, "0")
field(ONST, "V- Amp")
field(ONVL, "1")
field(TWST, "H+ Amp")
field(TWVL, "2")
field(THST, "H- Amp")
field(THVL, "3")
field(FRST, "V+ Ph")
field(FRVL, "4")
field(FVST, "V- Ph")
field(FVVL, "5")
field(SXST, "H+ Ph")
field(SXVL, "6")
field(SVST, "H- Ph")
field(SVVL, "7")
field(EIST, "ASUM")
field(EIVL, "8")
field(NIST, "X MES")
field(NIVL, "9")
field(TEST, "Y MES")
field(TEVL, "10")
}



- Parameters definition:
asynStatus asynBPMDrvr::setupEWBPeriphDac()
{
EWBReg *lastreg;
AsynStatusObj status = asynSuccess;

pPrhDac = new EWBPeriph( this->pRoot, WB2_PRH_ARGS( DAC ));
lastreg = new EWBReg( pPrhDac, WB2_REG_ARGS( DAC, DACSEL ));
createParam( new EWBField( lastreg, WB2_FIELD_ARGS( DAC, DACSEL, A )));
createParam( new EWBField( lastreg, WB2_FIELD_ARGS( DAC, DACSEL, B )));

  return status;
}

El jue, 1 jul 2021 a las 18:01, Mark Rivers (<rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>) escribió:
Hi Adrian,


>  2021/06/30 09:14:18.936 asynPortDriver:drvUserCreate: addr=0, cannot find parameter ucav_min_sw
SL-SCL-CM1:LRF-EC-1:UCavMinRd devAsynInt32::initCommon drvUserCreate

That means that you have a record that whose input or output link is connecting to a driver implemented with asynPortDriver.  The drvUser field in that link contains the string “ucav_min_sw”, but that is not an allowed drvUser value for that driver.

You need to provide us with more information:

-          The entire output when the IOC boots, not just the part after iocInit.

-          The record definition for the SL-SCL-CM1:LRF-EC-1:UCavMinRd record.

-          Some code from the driver you are using where it defines the parameters with createParam().

Mark



From: Tech-talk <tech-talk-bounces at aps.anl.gov<mailto:tech-talk-bounces at aps.anl.gov>> On Behalf Of Adrian Martinez via Tech-talk
Sent: Thursday, July 1, 2021 9:15 AM
To: EPICS tech-talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: EPICS compilation

Hello,

I am using epics R3.15.5 and most builds are not correct. In fact, the compilation is always successful but a lot of process variables (usually binary PVs) do not have their readback available and I get these errors when I run the IOC:

Starting iocInit
############################################################################
## EPICS R3.15.5
## EPICS Base built Jun 24 2021
############################################################################
2021/06/30 09:14:18.936 asynPortDriver:drvUserCreate: addr=0, cannot find parameter ucav_min_sw
SL-SCL-CM1:LRF-EC-1:UCavMinRd devAsynInt32::initCommon drvUserCreate
2021/06/30 09:14:18.936 asynPortDriver:drvUserCreate: addr=0, cannot find parameter uci_min_sw
SL-SCL-CM1:LRF-EC-1:UCiMinRd devAsynInt32::initCommon drvUserCreate
2021/06/30 09:14:18.936 asynPortDriver:drvUserCreate: addr=0, cannot find parameter dump_meas_delay
SL-SCL-CM1:LRF-EC-1:DumpMeasDelayRd devAsynInt32::initCommon drvUserCreate
2021/06/30 09:14:18.936 asynPortDriver:drvUserCreate: addr=0, cannot find parameter pm_sp_rate
SL-SCL-CM1:LRF-EC-1:PmSpRateRd devAsynInt32::initCommon drvUserCreate
2021/06/30 09:14:18.937 asynPortDriver:drvUserCreate: addr=0, cannot find parameter pm_meas_delay
SL-SCL-CM1:LRF-EC-1:PmMeasDelayRd devAsynInt32::initCommon drvUserCreate
2021/06/30 09:14:18.937 asynPortDriver:drvUserCreate: addr=0, cannot find parameter samp_dur
SL-SCL-CM1:LRF-EC-1:PmSpDurRd devAsynInt32::initCommon drvUserCreate
2021/06/30 09:14:18.937 asynPortDriver:drvUserCreate: addr=0, cannot find parameter ff_gain_i
SL-SCL-CM1:LRF-EC-1:FfGainIRd devAsynFloat64::initCommon drvUserCreate
2021/06/30 09:14:18.938 asynPortDriver:drvUserCreate: addr=0, cannot find parameter ff_gain_q
SL-SCL-CM1:LRF-EC-1:FfGainQRd devAsynFloat64::initCommon drvUserCreate

Has anyone gotten these same errors?

 Thanks in advance, Adrián.

--
Adrián Martínez
Embedded Software Engineer

Seven Solutions



Mail: adrian.martinez at sevensols.com<mailto:adrian.martinez at sevensols.com>
www.sevensols.com<http://www.sevensols.com/>


 This e-mail and any materials attached hereto, including, without limitation, all content hereof and thereof are confidential and proprietary to Seven Solutions,S.L and/or its affiliates, and are *confidential*. Without the prior written consent of Seven Solutions, this content may not (i) be disclosed to any third party, (ii) be reproduced, modified or otherwise used by anyone other than current employees of Seven Solutions or its affiliates. If you are not the intended recipient or if this message has been received in error, please notify us immediately via e-mail and delete it.


--
Adrián Martínez
Embedded Software Engineer
        Seven Solutions

Mail: adrian.martinez at sevensols.com<mailto:adrian.martinez at sevensols.com>
www.sevensols.com<http://www.sevensols.com/>

 This e-mail and any materials attached hereto, including, without limitation, all content hereof and thereof are confidential and proprietary to Seven Solutions,S.L and/or its affiliates, and are *confidential*. Without the prior written consent of Seven Solutions, this content may not (i) be disclosed to any third party, (ii) be reproduced, modified or otherwise used by anyone other than current employees of Seven Solutions or its affiliates. If you are not the intended recipient or if this message has been received in error, please notify us immediately via e-mail and delete it.

References:
EPICS compilation Adrian Martinez via Tech-talk
RE: EPICS compilation Mark Rivers via Tech-talk
Re: EPICS compilation Adrian Martinez via Tech-talk

Navigate by Date:
Prev: Question about the alive module neu lzf via Tech-talk
Next: Read I2C data with EPICS Steve Hu via Tech-talk
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  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS compilation Adrian Martinez via Tech-talk
Next: Question about "error calling writeRead" in modbus Wang, SuYin Grass via Tech-talk
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  <20212022  2023  2024 
ANJ, 06 Jul 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·