Experimental Physics and Industrial Control System
This page says that ACC AC500 communications modules do support Modbus TCP
https://new.abb.com/plc/programmable-logic-controllers-plcs/ac500/communication-modules
It appears that CPU modules with Ethernet support Modbus, as does the CM597 module.
I think that Modbus will always use port 502. If you are using a different port it is probably a different protocol.
Mark
________________________________
From: [email protected] <[email protected]> on behalf of 黄佳伟 <[email protected]>
Sent: Thursday, November 15, 2018 8:30 PM
To: [email protected]
Subject: modbus connection error to ABB PLC
Hello,
I want to control an ABB AC500 PLC by EPICS through TCP/IP, so I use modbus support from Mark Rivers. I do a little modifications to "Koyo1.cmd" scripts but things do not go well. PLC can be connected by asyn ip port but it shows "Connection reset by peer" when asyn modbus port connects to registers in PLC. I googled this and is told that the reason may be that response telegrams contain RST signal. This error might be a protocol problem.
As mentioned in documents, this modbus support does not support Siemens PLC. Is ABB PLC also not supported? The default port of AC500 PLC is 1201, not 502,as shown below. Does this matter?
Thank you for any help,
Jasper
Here are my *.cmd and *.substitutions scripts:
#! ../../bin/linux-x86_64/modbusApp
dbLoadDatabase("../../dbd/modbus.dbd")
modbus_registerRecordDeviceDriver(pdbbase)
drvAsynIPPortConfigure("AC500","192.168.0.10:1201",0,0,1)
#asynSetOption("AC500", 0, "disconnectOnReadTimeout", "Y")
modbusInterposeConfig("AC500", 0, 5000, 0)
drvModbusAsynConfigure("AC_DW1", "AC500", 0, 4, 0, 1, 0, 100, "AC500")
drvModbusAsynConfigure("AC_DW2", "AC500", 0, 4, 1, 1, 0, 100, "AC500")
asynSetTraceIOMask("AC500", 0, 4)
asynSetTraceIOTruncateSize("AC500", 0, 512)
dbLoadTemplate("abb.substitutions")
iocInit
--------------------------------------------------------------------------------------------------------------
file "../../db/longin.template" {pattern
{P, R, PORT, OFFSET, SCAN,}
{AC500:, DW1, AC_DW1, 0, "I/O Intr",}
{AC500:, DW2, AC_DW2, 0, "I/O Intr",}
}
Here is the iocShell output:
#! ../../bin/linux-x86_64/modbusApp
dbLoadDatabase("../../dbd/modbus.dbd")
modbus_registerRecordDeviceDriver(pdbbase)
drvAsynIPPortConfigure("AC500","192.168.0.10:1201",0,0,0)
#asynSetOption("AC500", 0, "disconnectOnReadTimeout", "Y")
modbusInterposeConfig("AC500", 0, 5000, 0)
drvModbusAsynConfigure("AC_DW1", "AC500", 0, 4, 0, 1, 0, 100, "AC500")
drvModbusAsynConfigure("AC_DW2", "AC500", 0, 4, 1, 1, 0, 100, "AC500")
asynSetTraceIOMask("AC500", 0, 4)
asynSetTraceIOTruncateSize("AC500", 0, 512)
dbLoadTemplate("abb.substitutions")
iocInit
Starting iocInit
############################################################################
## EPICS R3.16.1-DEV
## EPICS Base built Oct 24 2018
############################################################################
2018/11/16 10:22:35.526 drvModbusAsyn::doModbusIO port AC_DW1 error calling writeRead, error=192.168.0.10:1201 read error: Connection reset by peer, nwrite=6/6, nread=0
2018/11/16 10:22:35.580 drvModbusAsyn::doModbusIO port AC_DW2 error calling writeRead, error=192.168.0.10:1201 read error: Connection reset by peer, nwrite=6/6, nread=0
iocRun: All initialization complete
epics>
- References:
- modbus connection error to ABB PLC 黄佳伟
- Navigate by Date:
- Prev:
modbus connection error to ABB PLC 黄佳伟
- Next:
Re: EPICS Application Package Benjamin Franksen
- 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:
modbus connection error to ABB PLC 黄佳伟
- Next:
job opportunities at ORNL Hartman, Steven M. 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