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  <20222023  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  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: AW: Eurotherm2604 modbus support
From: "Sintschuk, Michael via Tech-talk" <tech-talk at aps.anl.gov>
To: Mark Rivers <rivers at cars.uchicago.edu>, tech-talk <tech-talk at aps.anl.gov>
Date: Tue, 6 Dec 2022 15:39:55 +0000

Hi Mark,

 

thanks for the hint. I got it working now when I connected the Eurotherm to the Moxa NPort serial device server:

drvAsynIPPortConfigure("EMODBUS","nport1:4008",0,0,1)

 

After all, it was setting the link type to 1=RTU, second argument in this line:

modbusInterposeConfig(EMODBUS, 1, 2000, 0)

 

I thought that when I’m using “drvAsynIPPortConfigure” the link type has to be 0=TCP because the serial device server converts the serial port to a TCP/IP port...

 

Michael

 

Von: Mark Rivers <rivers at cars.uchicago.edu>
Gesendet: Montag, 5. Dezember 2022 19:56
An: Sintschuk, Michael <michael.sintschuk at bam.de>; tech-talk <tech-talk at aps.anl.gov>
Cc: kirstaedter at fhi-berlin.mpg.de; jwlodek at bnl.gov
Betreff: RE: Eurotherm2604 modbus support

 

SICHERHEITSHINWEIS: Diese E-Mail wurde von außerhalb an die BAM gesendet. Bitte klicken Sie nicht auf Links oder öffnen Anhänge, bevor Sie nicht den Absender verifiziert haben und sicher sind, dass der Inhalt vertrauenswürdig ist.
This message was sent from outside of BAM. Please do not click links or open attachments unless you recognize the sender and know the content is trustworthy.

Hi Michael,

 

I know very little about these controllers.  But looking at the catalog here https://eurothermonline.com/controllers/eurotherm-2408.html for one model, it seems that the communications option is specified when ordering, and there are lots of choices like RS-485 BiSync, RS-484-Modbus, RS232-Modbus, etc.  See attachment. Are you sure how yours is configured?

 

Mark

 

 

 

 

From: Sintschuk, Michael <michael.sintschuk at bam.de>
Sent: Monday, December 5, 2022 11:53 AM
To: Mark Rivers <rivers at cars.uchicago.edu>; tech-talk <tech-talk at aps.anl.gov>
Cc: kirstaedter at fhi-berlin.mpg.de; jwlodek at bnl.gov
Subject: AW: Eurotherm2604 modbus support

 

Hi Mark,

 

yes, that is still a leftover when I was trying to connect via a Moxa NPort serial device server. This is actually the way I want to connect in the end but to be sure that it is not a faulty device server setting, I connect this way (because iTools connects to the COM1 port without problems).

However, when I change the link type to 2=ASCII, the error messages stay the same. When I change to 1=RTU, I get CRC errors:

 

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, 1, 2000, 0)
eurothermModbusCtrlConfigure(EMODBUS, 1)
2022/12/05 18:27:09.067 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.070 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 18:27:09.105 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.106 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
PV error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:09.133 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.134 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
RR error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:09.161 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.162 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
MAN error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:09.196 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.197 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Wr_
PID error calling writeRead, error=, nwrite=6/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
############################################################################
iocRun: All initialization complete
## Start any sequence programs
#seq sncxxx,"user=bl"
2022/12/05 18:27:09.750 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.751 EUROTHERM2K:SP devAsynInt32::processCallbackOutput proce
ss write error
2022/12/05 18:27:09.776 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.777 EUROTHERM2K:RR devAsynInt32::processCallbackOutput proce
ss write error
2022/12/05 18:27:09.801 modbusInterpose::readIt, CRC error
2022/12/05 18:27:09.803 EUROTHERM2K:P devAsynInt32::processCallbackOutput proces
s write error
epics> 2022/12/05 18:27:10.066 modbusInterpose::readIt, CRC error
2022/12/05 18:27:10.067 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_0_Rd_
ATUNE error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:10.103 modbusInterpose::readIt, CRC error
2022/12/05 18:27:10.105 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PV error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:10.131 modbusInterpose::readIt, CRC error
2022/12/05 18:27:10.133 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
RR error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:10.159 modbusInterpose::readIt, CRC error
2022/12/05 18:27:10.161 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
MAN error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:10.196 modbusInterpose::readIt, CRC error
2022/12/05 18:27:10.197 drvModbusAsyn::doModbusIO port Eurotherm_EMODBUS_1_1_Rd_
PID error calling writeRead, error=, nwrite=6/6, nread=0
2022/12/05 18:27:11.094 modbusInterpose::readIt, CRC error
2022/12/05 18:27:11.133 modbusInterpose::readIt, CRC error
2022/12/05 18:27:11.157 modbusInterpose::readIt, CRC error
2022/12/05 18:27:11.191 modbusInterpose::readIt, CRC error
2022/12/05 18:27:11.225 modbusInterpose::readIt, CRC error
2022/12/05 18:27:13.121 modbusInterpose::readIt, CRC error
.

.

.

 

When I change the crtscts Option to Yes

 

asynSetOption("EMODBUS", -1, "crtscts", "Y")

 

the error messages are again like with the 0=TCP link type.

 

Michael

 

Von: Mark Rivers <rivers at cars.uchicago.edu>
Gesendet: Montag, 5. Dezember 2022 17:48
An: Sintschuk, Michael <michael.sintschuk at bam.de>; tech-talk <tech-talk at aps.anl.gov>
Cc: kirstaedter at fhi-berlin.mpg.de; jwlodek at bnl.gov
Betreff: RE: Eurotherm2604 modbus support

 

SICHERHEITSHINWEIS: Diese E-Mail wurde von außerhalb an die BAM gesendet. Bitte klicken Sie nicht auf Links oder öffnen Anhänge, bevor Sie nicht den Absender verifiziert haben und sicher sind, dass der Inhalt vertrauenswürdig ist.
This message was sent from outside of BAM. Please do not click links or open attachments unless you recognize the sender and know the content is trustworthy.

Hi Michael,

 

  • drvAsynSerialPortConfigure("EMODBUS","COM1",0,0,1)
  • modbusInterposeConfig(EMODBUS, 0, 2000, 0)

 

The above 2 lines do not look internally consistent to me.  The first line says you are using a serial port for communication.  The second line says that the link type (second argument) is 0, which is Modbus TCP.  Normally when you communicate over a serial link type needs to be 1=RTU or 2=ASCII.

 

Mark

 

 

 

From: Sintschuk, Michael <michael.sintschuk at bam.de>
Sent: Monday, December 5, 2022 10:30 AM
To: tech-talk <
tech-talk at aps.anl.gov>
Cc:
kirstaedter at fhi-berlin.mpg.de; jwlodek at bnl.gov; Mark Rivers <rivers at cars.uchicago.edu>
Subject: Eurotherm2604 modbus support

 

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

 


References:
Eurotherm2604 modbus support Sintschuk, Michael via Tech-talk
RE: Eurotherm2604 modbus support Mark Rivers via Tech-talk
AW: Eurotherm2604 modbus support Sintschuk, Michael via Tech-talk
RE: Eurotherm2604 modbus support Mark Rivers via Tech-talk

Navigate by Date:
Prev: Re: Compiling base on Rocky Linux 9 Ernesto Paiser via Tech-talk
Next: Re: A simple EPICS driver example for PCI devices using asynPortDriver on Linux Michael Davidsaver 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  <20222023  2024 
Navigate by Thread:
Prev: RE: Eurotherm2604 modbus support Mark Rivers via Tech-talk
Next: Compiling base on Rocky Linux 9 Ernesto Paiser 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  <20222023  2024 
ANJ, 06 Dec 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·