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  <20182019  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  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: StreamDevice with Telnet port
From: Dirk Zimoch <[email protected]>
To: <[email protected]>
Date: Tue, 13 Mar 2018 16:43:22 +0100
Hi Abdalla,

In most cases ExtraInput = Ignore does more bad than good because it switches off part of the input checking.

If you get wrong inputs (e.g. "Running" instead of a number) this almost always related to protocols that do not consume all input that a command produces.

If for example a command sends a long, maybe multi-line string and you only parse the beginning until you find an "interesting" value, the remainder of the string is still somewhere.

StreamDevice tries to discard such "old input" at the beginning of every 'out' command, but it is a race condition. If the device sends more input as a result of the previous command after the flush, it will be received instead of the real reply of the next command. This is also true for replies on set commands. If the device sends a reply after your sent a set command, you should read it and not "fire and forget" the set value. Otherwise the replay may mix with the data of the next command.

Thus first you should remove all the ExtraInput = Ignore.
Then find out which command replies something with "Running" which you may not have read. Try to connect with telnet and type the commands manually. In the protocol consume *everything* the device sends back.

For more details I need to know more about the device and what commands it knows. If possible send a link to the manual. Also your full protocol file would be helpful.

Dirk


On 11.03.2018 13:54, Abdalla  Ahmad wrote:
Hi

We have the Gamma QPC ion-pump controllers controlled via StreamDevice through telnet, port 23. We have 4 parameters implemented, pressure, voltage, current, and channel status. The problem is that the IOC gives an error that the value received for the pressure PV is "Running", i.e. "Input Running does not match format %E". Seems like at some point the controller is not finishing a previous parameter and the IOC receives something different than the current parameter requested.

We have the following in the protocol file:

OutTerminator = CR;

InTerminator = CR;

ReadTimeout = 2000;

ReplyTimeout = 2000;

And each parameter in the protocol file has ExtraInput = Ignore at the end. Any help resolving this mismatching issue?

Best Regards,

Abdalla Ahmad

Control Engineer

SESAME

Allan, Jordan.

Tel: (+962-5) 3511348 , ext. 265

Fax: (+962-5) 3511423

Mob: (+962-7)88183296

www.sesame.org.jo <http://www.sesame.org.jo/>


References:
StreamDevice with Telnet port Abdalla Ahmad

Navigate by Date:
Prev: RE: EtherCAT newbie question Wallace, Alex
Next: problem building 3.15.5 Maren Purves
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  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: StreamDevice with Telnet port Mark Rivers
Next: Re: StreamDevice with Telnet port Dirk Zimoch
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  <20182019  2020  2021  2022  2023  2024 
ANJ, 19 Mar 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·