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  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: devAsynFloat64::processCallbackInput process read error
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, Kritsada Kittimanapun <kritsadak at slri.or.th>
Date: Mon, 26 Feb 2024 13:45:15 +0000
Hi Krtitsada, After running the st. cmd, everything looks fine until "iocRun: All initialization complete", then there is an error message. Actually, you get an error before iocInit as well. It is this. It cannot find your Keller3040. db
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
 
ZjQcmQRYFpfptBannerEnd
Hi Krtitsada,

  • After running the st.cmd, everything looks fine until "iocRun: All initialization complete", then there is an error message.

Actually, you get an error before iocInit as well.  It is this.  It cannot find your Keller3040.db file.

dbLoadRecords("../../db/Keller3040.db","user=mbsdaq")
filename="../../../src/ioc/dbStatic/dbLexRoutines.c" line number=264
No such file or directory dbRead opening file ../../db/Keller3040.db

In order to understand the devAsynFloat43 errors we need to see the database and substitutions file that defines the records with the errors.

I think your Modbus configuration is also inefficient.  You have defined 6 drvModbusAsyn drivers that all use function code 3 (read holding registers).  Each one reads 2 registers, and the registers are all consecutive in memory (0x0000, 0x0002, etc.).  This is creating 6 threads that are polling the device.  It is much more efficient to just create a single drvModbusAsyn driver that reads 12 registers.  Then your database just defines the addr of each record as 0, 2, 4, 6, 8, 10.

Mark


From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Kritsada Kittimanapun via Tech-talk <tech-talk at aps.anl.gov>
Sent: Monday, February 26, 2024 6:25 AM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: devAsynFloat64::processCallbackInput process read error
 
This Message Is From an External Sender
This message came from outside your organization.
 
Hello,

After running the st.cmd, everything looks fine until "iocRun: All initialization complete", then there is an error message. I am not sure if it is from the connection of the device which I have already checked or from the file setup. Thank you for your advice.

Kritsada
-----------------------------------------------------------------------------------
land@raspberrypi:~/epics/keller $ ./start.sh  
#!../../bin/linux-x86_64/Keller3040
## You may have to change Keller3040 to something else
## everywhere it appears in this file
< envPaths
epicsEnvSet("IOC","iocKeller3040")
epicsEnvSet("TOP","/home/land/epics/keller")
epicsEnvSet("MODULES","/home/land/epics/modules")
epicsEnvSet("ASYN","/home/land/epics/modules/asyn")
epicsEnvSet("MODBUS","/home/land/epics/modules/modbus")
epicsEnvSet("EPICS_BASE","/home/land/epics/base")
## Register all support components
dbLoadDatabase("../../dbd/Keller3040.dbd",0,0)
Keller3040_registerRecordDeviceDriver(pdbbase)  
## Load record instances
dbLoadRecords("../../db/Keller3040.db","user=mbsdaq")
filename="../../../src/ioc/dbStatic/dbLexRoutines.c" line number=264
No such file or directory dbRead opening file ../../db/Keller3040.db
drvAsynSerialPortConfigure("Keller", "/dev/ttyUSB0", 0, 0, 1)
asynSetOption("Keller", 0, "baud", "9600")
asynSetOption("Keller", 0, "parity", "none")
asynSetOption("Keller", 0, "bits", "8")
asynSetOption("Keller", 0, "stop", "1")
modbusInterposeConfig("Keller", 1, 1000, 0)
# drvModbusAsynConfigure(portName,  
#               tcpPortName,
#               slaveAddress,  
#               modbusFunction,  
#               modbusStartAddress,  
#               modbusLength,
#               dataType,
#               pollMsec,  
#               plcType);
# Calculated value.
drvModbusAsynConfigure("CH0", "Keller", 1, 3, 0x0000, 2, 0, 0, "Keller")
# Pressure sensor 1.
drvModbusAsynConfigure("P1", "Keller", 1, 3, 0x0002, 2, 0, 0, "Keller")
# Pressure sensor 2.
drvModbusAsynConfigure("P2", "Keller", 1, 3, 0x0004, 2, 0, 0, "Keller")
# Temperature.
drvModbusAsynConfigure("T", "Keller", 1, 3, 0x0006, 2, 0, 0, "Keller")
# Temperature sensor 1.
drvModbusAsynConfigure("TOB1", "Keller", 1, 3, 0x0008, 2, 0, 0, "Keller")
# Temperature sensor 2.
drvModbusAsynConfigure("TOB2", "Keller", 1, 3, 0x000a, 2, 0, 0, "Keller")
# drvModbusAsynConfigure("SNH", "Keller", 250, 3, 0x0200, 2, 0, 100, "Keller")
#asynSetTraceMask "Keller",1,0xff
dbLoadTemplate("Keller.substitutions")
iocInit()
Starting iocInit
############################################################################
## EPICS R3.16.1
## EPICS Base built Jul 30 2018
############################################################################
iocRun: All initialization complete
## Start any sequence programs
#seq sncKeller3040,"user=mbsdaq"
epics> 2024/02/26 10:27:29.299 Keller:CH0 devAsynFloat64::processCallbackInput process read error  
2024/02/26 10:27:29.299 Keller:T devAsynFloat64::processCallbackInput process read error  
2024/02/26 10:27:29.300 Keller:P1 devAsynFloat64::processCallbackInput process read error  
2024/02/26 10:27:29.300 Keller:TOB2 devAsynFloat64::processCallbackInput process read error  
2024/02/26 10:27:29.300 Keller:P2 devAsynFloat64::processCallbackInput process read error  
2024/02/26 10:27:29.300 Keller:TOB1 devAsynFloat64::processCallbackInput process read error






References:
devAsynFloat64::processCallbackInput process read error Kritsada Kittimanapun via Tech-talk

Navigate by Date:
Prev: devAsynFloat64::processCallbackInput process read error Kritsada Kittimanapun via Tech-talk
Next: Re: Commands with synchronous answers from python Érico Nogueira Rolim 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  2021  2022  2023  <2024
Navigate by Thread:
Prev: devAsynFloat64::processCallbackInput process read error Kritsada Kittimanapun via Tech-talk
Next: pvAccess assert error Mark Rivers 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  2021  2022  2023  <2024
ANJ, 26 Feb 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·