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  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Processing a record a in loop
From: Emmanuel Mayssat <[email protected]>
To: David Michel <[email protected]>
Cc: EPICS mailing list <[email protected]>
Date: Thu, 4 Sep 2014 15:04:28 -0700

When the communication fails, my first question is : is it the IOC, the network, or the device itself.
From the IOC, a quick way to check what is happening is to do 'telnet <ip> <port>'
Here I am pretty sure, you will see that the device doesn't reply anymore.

The first thing to do is try a point to point connection
Point to point = crossover (although nowadays network card automatically detect if crossover is required)
That will take the network out of the equation (like broadcast traffic, etc).

If it doesn't solve the problem, use the supplier's provided software over the same link and see if it fails.
(If it doesn't then there may be something wrong with your IOC (like you need to explicitly disconnect, etc))

With the provided software, if it fails again, contact the hardware supplier.

If the supplier isn't really helpful (or you built yourself the hardware), then send another email and we can troubleshoot further...

--
Emmanuel
http://www.epicsqt.org



Date: Thu, 4 Sep 2014 10:19:09 +0100
Subject: Re: Processing a record a in loop
From: [email protected]
To: [email protected]
CC: [email protected]

Hi Emmanuel,

Yes it's an ethernet link using a standard "dumb" network switch and you're quite right about the debugging asynTrace... although very useful, it didn't really as everything appears normal until the connection is lost... 

What did you mean exactly with a point-to-point connection? Did you mean no switch and using crossover ethernet cable between the IOC and the device?

Interestingly, the device has a USB port as well. Although I've not tried that with the IOC, the supplier provide a windows app to control the device which works like a charm using the USB port. I've not tried the windows app with the ethernet connection yet though.

So, I was about to try the EPICS IOC with the USB interface, try the windows app with the ethernet interface - this might help me find where the fault lies. Also, I was about to write a simple python script to control the device without EPICS and see If I can reproduce the problem this way or not.

David



On 4 September 2014 00:17, Emmanuel Mayssat <[email protected]> wrote:
Are you using an ethernet link between your IOC and your device?
If so, I have seen this behavior quite a few times.
The first thing to try in this case is to set a point to point connection between the IOC and the controlled device.

The asynTrace will not help you except to report that... you have lost connection.

I think you should share more about your setup.
--
Emmanuel




Date: Wed, 3 Sep 2014 12:02:01 +0100

Subject: Processing a record a in loop
From: [email protected]
To: [email protected]



Hi All,

I'm using StreamDevice to talk to a custom device that doesn't support I/O interrupt so one has to keep sending commands to it to get status information.

Problem is that after a while (~ couple of hours), the device's buffer fills up and doesn't reply anymore. Increasing the ReplyTimeOut improves things slightly, but the problem still eventually occurs.

One potential solution would be to send the next command only once the previous one has returned in a loop (instead of using a set frequency). 

Making the record FWD link to itself doesn't seem to do it... I started something using purely database trickery with a FANOUT record set with a fixed SCAN field and disabling it depending on whether the streamdevice record has finished processing or not... but it's getting messy

Is there an elegant way of doing this? 

David






References:
Processing a record a in loop David Michel
RE: Processing a record a in loop Emmanuel Mayssat
Re: Processing a record a in loop David Michel

Navigate by Date:
Prev: org.csstudio.auth plug-ins Silver
Next: Installing synApps Vlad Andrei Rusu
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Processing a record a in loop Mark Rivers
Next: Who uses WAGO or Beckhoff PLCs for Equipment Protection Systems? Rekow Jens
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·