Hi David,
What version of asyn are you using?
Are these errors for input records?
How have you configured your asyn input drivers, i.e. how
many polls per second? Recall that input records do not actually cause any
Modbus I/O to occur, they just get the values from the most recent poll.
What timeout are you specifying in your
modbusInterportConfig command? Have you tried increasing that?
Mark
From:
[email protected] [mailto:[email protected]] On Behalf Of David Dudley
Sent: Monday, October 11, 2010 1:41
PM
To: EPICS tech-talk
Subject: Timeout errors with ASYN
Modbus Driver 2.0
Mark,
We’re having problems with the Modbus 2 driver for ASYN
I have 2 sets of Modbus networks. One network has a single device,
connected from a MOXA 5130 RS-485 converter to a Siemens S7-200 PLC.
The other has the same Moxa 5130 MOXA converter with RS-485,
connected to a Mirion Radiation monitor and a Apantec Radiation monitor.
Originally, I was using Modbus version 1.3 on the system with the S7-200 PLC.
It worked for almost a year before upgrading to Modbus 2. After
that system had been operating successfully, with no errors, for an extended
period, I needed to upgrade the driver so that I could have 2 Modbus devices
daisy-chained on a connection. At the same time, in order to limit the
number of software revisions in the field, the S7-200 PLC network was upgraded
as well.
Occasionally, we get error messages similar to the following:
-----------------------------------------------------------------------
epics> 2010/10/11 14:30:05.262 drvModbusAsyn::doModbusIO port LPDU3 error
calling writeRead, error=radmon5.nsls2.bnl.gov:4001 TCP timeout: Resource
temporarily unavailable, nwrite=6/6, nread=0
2010/10/11 14:30:05.262 B-725:VUV<RadMon:2a>Dosage:2 devAsynInt32 process
read error
2010/10/11 14:30:05.262 B-725:VUV<RadMon:2b>Dosage:2 devAsynInt32 process
read error
2010/10/11 14:30:06.262 drvModbusAsyn::doModbusIO port LPDU3 has I/O error
2010/10/11 14:34:42.310 drvModbusAsyn::doModbusIO port RM1W error calling
writeRead, error=radmon5.nsls2.bnl.gov:4001 TCP timeout: Resource temporarily
unavailable, nwrite=6/6, nread=0
2010/10/11 14:34:42.310 B-725:VUV<RadMon:1>Dosage:2 devAsynInt32 process
read error
2010/10/11 14:34:42.387 modbusInterpose::readIt, CRC error
2010/10/11 14:34:42.387 drvModbusAsyn::doModbusIO port LPDU3 error calling
writeRead, error=radmon5.nsls2.bnl.gov:4001 TCP timeout: Resource temporarily
unavailable, nwrite=6/6, nread=0
2010/10/11 14:34:42.387 B-725:VUV<RadMon:2a>Dosage:2 devAsynInt32 process
read error
2010/10/11 14:34:42.387 B-725:VUV<RadMon:2b>Dosage:2 devAsynInt32 process
read error
2010/10/11 14:34:43.310 drvModbusAsyn::doModbusIO port RM1W has I/O error
2010/10/11 14:34:43.387 drvModbusAsyn::doModbusIO port LPDU3 has I/O error
-----------------------------------------------------------------------
This only happens occasionally, and happens on both modbus networks, at
asynchronous times. All devices in the modbus chain are scanned once per
second, and during the time that the errors are –not- occuring, the data
stream retrieved is valid. I’ve verified that data is being
transmitted, but it looks like occasionally data is not being received and processed
correctly.
Oh, and also, it only happens if the IOC is using Modbus 2. Modbus 1.3
works without errors, but can only address a single device on each modbus
network.
Any ideas of where to start looking?
David
--
"... The Crossbow Project. There's No Defense Like a Good Offense. "
- Real Genius (1985)
Don't think it exists? Google the Air Force X-37B project.