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
|