Hello EPICS-community,
I have trouble connecting a Eurotherm2604 temperature controller via modbus with this EPICS-module:
https://github.com/jwlodek/eurotherm2k
A couple of months ago this package was refurbished as you can see from this tech-talk:
https://epics.anl.gov/tech-talk/2022/msg01319.php
I can compile the module and can build the IOC, which works fine via the EI-bisynch protocol. But I can’t establish any connection when it comes to modbus (I need the modbus protocol to read some additional info that
is not implemented in EI-bisynch). FYI: the modbus communication on the very same COM-port (same cable) just works fine with the vendor software
iTools. This is how my IOC-modbus startup looks like (I’m using the latest modbus-master R3-2):
C:\epics\IOC\EurothermIOC\iocBoot\iocEurotherm>C:\epics\IOC\EurothermIOC\bin\windows-x64-static\Eurotherm.exe st.cmd
#!../../bin/windows-x64-static/Eurotherm
< envPaths
epicsEnvSet("IOC","iocEurotherm")
epicsEnvSet("TOP","C:/epics/IOC/EurothermIOC")
epicsEnvSet("SUPPORT","C:/epics/inst-7.0.3.1")
epicsEnvSet("ASYN","C:/epics/inst-7.0.3.1/asyn-R4-39")
epicsEnvSet("EUROTHERM2K","C:/epics/inst-7.0.3.1/eurotherm2k")
epicsEnvSet("MODBUS","C:/epics/inst-7.0.3.1/modbus")
epicsEnvSet("EPICS_BASE","C:/epics/base-7.0.3.1")
cd "C:/epics/IOC/EurothermIOC"
## Register all support components
dbLoadDatabase "dbd/Eurotherm.dbd"
Eurotherm_registerRecordDeviceDriver pdbbase
drvAsynSerialPortConfigure("EMODBUS","COM1",0,0,1)
asynSetOption("EMODBUS", -1, "baud", "9600")
asynSetOption("EMODBUS", -1, "bits", "8")
asynSetOption("EMODBUS", -1, "stop", "1")
asynSetOption("EMODBUS", -1, "parity", "none")
#asynSetOption("EMODBUS", -1, "crtscts", "Y")
#asynSetOption("EMODBUS", -1, "clocal", "N")
#asynSetOption("EMODBUS", -1, "ixon", "Y")
#asynOctetSetInputEos( "EMODBUS", -1, "\r\n")
#asynOctetSetOutputEos("EMODBUS", -1, "\r")
modbusInterposeConfig(EMODBUS, 0, 2000, 0)
eurothermModbusCtrlConfigure(EMODBUS, 1)
2022/12/05 16:51:56.791 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_0_Rd_
ATUNE error calling writeRead, error=asynManager::queueLockPort queueRequest tim
ed out, nwrite=0/6, nread=0
2022/12/05 16:51:57.797 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_0_Wr_
ATUNE error calling writeRead, error=, nwrite=6/6, nread=0
eurothermModbusLoopConfigure(EMODBUS, 1, 1)
2022/12/05 16:52:00.802 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PV error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:01.808 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
PV error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 16:52:03.814 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
RR error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 16:52:05.816 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
MAN error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:06.809 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
MAN error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:07.813 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
RR error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 16:52:07.814 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
PID error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
## Load record instances
dbLoadRecords("db/example_modbus_expanded.db","user=bl")
cd "C:/epics/IOC/EurothermIOC/iocBoot/iocEurotherm"
iocInit
Starting iocInit
############################################################################
## EPICS R7.0.3.1
## EPICS Base built Mar 9 2020
############################################################################
2022/12/05 16:52:09.814 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PID error calling writeRead, error=, nwrite=6/6, nread=0
iocRun: All initialization complete
## Start any sequence programs
#seq sncxxx,"user=bl"
epics> 2022/12/05 16:52:12.321 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_
1_1_Wr_PV error calling writeRead, error=asynManager::queueLockPort queueRequest
timed out, nwrite=0/6, nread=0
2022/12/05 16:52:12.323 EUROTHERM2K:SP devAsynInt32::processCallbackOutput proce
ss write error
2022/12/05 16:52:12.325 EUROTHERM2K:P devAsynInt32::processCallbackOutput proces
s write error
2022/12/05 16:52:12.330 EUROTHERM2K:RR devAsynInt32::processCallbackOutput proce
ss write error
2022/12/05 16:52:13.414 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
RR error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:13.416 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PID error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:14.332 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_0_Rd_
ATUNE error calling writeRead, error=asynManager::queueLockPort queueRequest tim
ed out, nwrite=6/6, nread=0
2022/12/05 16:52:16.415 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
RR error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=6/6, nread=0
2022/12/05 16:52:22.410 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_0_Rd_
ATUNE error calling writeRead, error=asynManager::queueLockPort queueRequest tim
ed out, nwrite=0/6, nread=0
2022/12/05 16:52:22.419 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PV error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=6/6, nread=0
2022/12/05 16:52:24.413 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
RR error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:24.420 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PID error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=6/6, nread=0
2022/12/05 16:52:25.423 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PV error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:26.419 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
MAN error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=6/6, nread=0
2022/12/05 16:52:27.419 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PID error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=0/6, nread=0
2022/12/05 16:52:28.418 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
RR error calling writeRead, error=asynManager::queueLockPort queueRequest timed
out, nwrite=6/6, nread=0
Can someone help?
Michael
Michael Sintschuk
Bundesanstalt für Materialforschung und –prüfung (BAM)
8.5 Mikro-ZfP
Unter den Eichen 87
12205 Berlin
GERMANY
P: +49 30 8062-15063 (BESSY, Adlershof)
P: +49 30 8104-4065 (BAM, Steglitz)
michael.sintschuk at bam.de
michael.sintschuk at helmholtz-berlin.de