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: Re: Eurotherm modbus support
From: "Wlodek, Jakub via Tech-talk" <tech-talk at aps.anl.gov>
To: William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>, Mark Rivers <rivers at cars.uchicago.edu>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 29 Aug 2022 12:37:21 +0000
Hi William,

I have made some further changes that allow for compiling the example IOC - please try again and let me know if that works.

Best,
Jakub



From: William Kirstaedter
Sent: Monday, August 29, 2022 5:55 AM
To: Wlodek, Jakub; Mark Rivers; tech-talk at aps.anl.gov
Subject: Re: Eurotherm modbus support

thanks for fixing the support module,

now I can compile it.


but I struggle to get the example app compiled...


epics@priscilla:~/EPICS/epics-support/eurotherm2k/iocs/example_modbus$ make
make -C ./configure install
make[1]: Entering directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure'
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
    T_A=linux-x86_64 install
make[2]: Entering directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure/O.linux-x86_64'
perl -CSD /home/epics/EPICS/epics-base/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure/O.linux-x86_64'
make[1]: Leaving directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/configure'
make -C example_modbusApp/Db install
make[1]: Entering directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
    T_A=linux-x86_64 install
make[2]: Entering directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db/O.linux-x86_64'
make[2]: Nothing to be done for 'install'.
make[2]: Leaving directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db/O.linux-x86_64'
make[1]: Leaving directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/Db'
make -C example_modbusApp/src install
make[1]: Entering directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
    T_A=linux-x86_64 install
make[2]: Entering directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src/O.linux-x86_64'
Creating dbd file example_modbus.dbd
perl -CSD /home/epics/EPICS/epics-base/bin/linux-x86_64/dbdExpand.pl   -I. -I.. -I../O.Common -I../../../dbd -I/home/epics/EPICS/epics-support/calc/dbd -I/home/epics/EPICS/epics-support/asyn/dbd -I/home/epics/EPICS/epics-support/eurotherm2k/dbd -I/home/epics/EPICS/epics-support/modbus/dbd -I/home/epics/EPICS/epics-base/dbd -o example_modbus.dbd base.dbd asyn.dbd drvAsynIPPort.dbd drvAsynSerialPort.dbd modbusApp.dbd modbusSupport.dbd eurothermModbusSupport.dbd
perl -CSD /home/epics/EPICS/epics-base/bin/linux-x86_64/registerRecordDeviceDriver.pl   -I. -I.. -I../O.Common -I../../../dbd -I/home/epics/EPICS/epics-support/calc/dbd -I/home/epics/EPICS/epics-support/asyn/dbd -I/home/epics/EPICS/epics-support/eurotherm2k/dbd -I/home/epics/EPICS/epics-support/modbus/dbd -I/home/epics/EPICS/epics-base/dbd    -o example_modbus_registerRecordDeviceDriver.cpp ../O.Common/example_modbus.dbd example_modbus_registerRecordDeviceDriver /home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus
/usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE           -D_X86_64_  -DUNIX  -Dlinux      -O3 -g   -Wall      -mtune=generic      -m64  -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include      -I/home/epics/EPICS/epics-support/calc/include   -I/home/epics/EPICS/epics-support/asyn/include      -I/home/epics/EPICS/epics-support/modbus/include -I/home/epics/EPICS/epics-base/include/compiler/gcc -I/home/epics/EPICS/epics-base/include/os/Linux -I/home/epics/EPICS/epics-base/include        -MM -MF example_modbus_registerRecordDeviceDriver.d  example_modbus_registerRecordDeviceDriver.cpp
Installing created dbd file ../../../dbd/example_modbus.dbd
/usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE           -D_X86_64_  -DUNIX  -Dlinux      -O3 -g   -Wall      -mtune=generic      -m64  -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include      -I/home/epics/EPICS/epics-support/calc/include   -I/home/epics/EPICS/epics-support/asyn/include      -I/home/epics/EPICS/epics-support/modbus/include -I/home/epics/EPICS/epics-base/include/compiler/gcc -I/home/epics/EPICS/epics-base/include/os/Linux -I/home/epics/EPICS/epics-base/include        -c example_modbus_registerRecordDeviceDriver.cpp
/usr/bin/g++ -o example_modbus  -L/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/lib/linux-x86_64 -L/home/epics/EPICS/base-7.0/lib/linux-x86_64 -L/home/epics/EPICS/epics-support/asyn/lib/linux-x86_64 -L/home/epics/EPICS/epics-support/eurotherm2k/lib/linux-x86_64 -L/home/epics/EPICS/epics-support/modbus/lib/linux-x86_64 -Wl,-rpath,/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/lib/linux-x86_64 -Wl,-rpath,/home/epics/EPICS/base-7.0/lib/linux-x86_64 -Wl,-rpath,/home/epics/EPICS/epics-support/asyn/lib/linux-x86_64 -Wl,-rpath,/home/epics/EPICS/epics-support/eurotherm2k/lib/linux-x86_64 -Wl,-rpath,/home/epics/EPICS/epics-support/modbus/lib/linux-x86_64           -rdynamic -m64         example_modbus_registerRecordDeviceDriver.o example_modbusMain.o    -leurothermModbus -lmodbus -lasyn -ldbRecStd -ldbCore -lca -lCom
/usr/bin/ld: /home/epics/EPICS/epics-support/eurotherm2k/lib/linux-x86_64/libeurothermModbus.so: undefined reference to `drvModbusAsynConfigure(char const*, char const*, int, int, int, int, char const*, int, char const*)'
collect2: error: ld returned 1 exit status
make[2]: *** [/home/epics/EPICS/epics-base/configure/RULES_BUILD:231: example_modbus] Error 1
make[2]: Leaving directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src/O.linux-x86_64'
make[1]: *** [/home/epics/EPICS/epics-base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[1]: Leaving directory '/home/epics/EPICS/epics-support/eurotherm2k/iocs/example_modbus/example_modbusApp/src'
make: *** [/home/epics/EPICS/epics-base/configure/RULES_DIRS:85: example_modbusApp/src.install] Error 2


what should I include in the Makefile to get it to run?

thanks,


William Kirstaedter
PP&B Computer Support Group
Fritz-Haber-Institut Berlin
Am 26.08.22 um 19:07 schrieb Wlodek, Jakub:
I have applied and pushed the patch, and can now build OK with modbus R3-2:

[jwlodek@dell-rhel8 eurotherm2k]$ make clean uninstall -s
[jwlodek@dell-rhel8 eurotherm2k]$ make -sj
[jwlodek@dell-rhel8 eurotherm2k]$
[jwlodek@dell-rhel8 eurotherm2k]$ more /usr/lib/epics/README | grep MODBUS
MODBUS          - R3-2

-Jakub

From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, August 26, 2022 12:54 PM
To: Wlodek, Jakub <jwlodek at bnl.gov>; William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: RE: Eurotherm modbus support
 

Hi Jakub ,

 

Ø  I was planning on getting it working with the newer modbus version at some point, which it seems you have already done, perhaps we should just apply those changes to the repo?

 

That sounds good.  Are you OK with just applying my changes using the “patch” command, or do you want me to fork the repository and make a PR? 

 

One thing you need to do before applying the patch is to do:

 

git mv eurothermModbus.c eurothermModbus.cpp

 

Mark

 

 

From: Wlodek, Jakub <jwlodek at bnl.gov>
Sent: Friday, August 26, 2022 11:50 AM
To: Mark Rivers <rivers at cars.uchicago.edu>; William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>; tech-talk at aps.anl.gov
Subject: Re: Eurotherm modbus support

 

Hi Mark,

 

This repo is a backup of an IOC instance we had running that as far as I could tell had no upstream master (I believe it was downloaded as a source tarball, probably from the DLS site). I was planning on getting it working with the newer modbus version at some point, which it seems you have already done, perhaps we should just apply those changes to the repo?

 

Best,

Jakub


From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, August 26, 2022 12:24 PM
To: William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>; Wlodek, Jakub <jwlodek at bnl.gov>
Subject: RE: Eurotherm modbus support

 

I now realize that DLS repository is not the same as the one you are using.  However, this one does seem to be the same:

 

https://github.com/jwlodek/eurotherm2k

 

Jakub, is this repository a fork of a master somewhere else, or is this now the primary repository?

 

Mark

 

 

 

From: Mark Rivers
Sent: Friday, August 26, 2022 11:08 AM
To: William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>; tech-talk at aps.anl.gov
Subject: RE: Eurotherm modbus support

 

Hi William,

 

It appears that the eurothemModbus source code is on Github here:

 

https://github.com/dls-controls/eurothermModbus

 

Does your gitlab dump differ from that?

 

Mark

 

 

From: William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>
Sent: Friday, August 26, 2022 8:41 AM
To: Mark Rivers <rivers at cars.uchicago.edu>; tech-talk at aps.anl.gov
Subject: Re: Eurotherm modbus support

 

Hi Mark,

 

unfortunately, it doesnt work, various casts fail.

 

I've saved a dump here: https://gitlab.fhi.mpg.de/kw/eurotherm2k

(should be externally accessible)

 

William Kirstaedter
PP&B Computer Support Group
Fritz-Haber-Institut Berlin

Am 26.08.22 um 14:40 schrieb Mark Rivers:

Hi William,

 

You can probably just rename eurothermModbus.c to eurothermModbus.cpp.  See if that works.

 

How does eurothermModbus use drvModbusAsyn?

 

Mark

 

 


From: Tech-talk on behalf of William Kirstaedter via Tech-talk
Sent: Friday, August 26, 2022 7:20 AM
To: tech-talk at aps.anl.gov
Subject: Eurotherm modbus support

 

Hi,

unfortunately the DLS site for the eurotherm support module is not available anymore...
(http://controls.diamond.ac.uk/downloads/support/eurotherm2k/)

does anybody still maintain eurotherms?

I kinda converted the 1-22 release to work with my environment and am now running into a C / C++ error...
newer asyn versions reference vector.h which is C++ while my eurotherm support file is C, which is bad because the C compiler doesnt know about the C++ vector.h ...

In file included from /home/epics/EPICS/epics-support/modbus/include/drvModbusAsyn.h:15,
                 from ../eurothermModbus.c:25:
/home/epics/EPICS/epics-support/asyn/include/asynPortDriver.h:4:10: fatal error: vector: No such file or directory
 #include <vector>
          ^~~~~~~~
compilation terminated.

Im not sure how to get around this....

maybe someone with more experience in the EPICS build system can help me out.

thanks,

William

--


William Kirstaedter (PP&B)

Fritz-Haber-Institut der MPG

Faradayweg 4-6

14195 Berlin

Tel: 030 8413 5405

Mail: kirstaedter at fhi-berlin.mpg.de

 


Replies:
Re: Eurotherm modbus support William Kirstaedter via Tech-talk

Navigate by Date:
Prev: Re: Eurotherm modbus support William Kirstaedter via Tech-talk
Next: Re: SHRLIB_VESION Variable Andrew Johnson 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: Eurotherm modbus support William Kirstaedter via Tech-talk
Next: Re: Eurotherm modbus support William Kirstaedter 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, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·