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  <20202021  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  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EtherIP EPICS Support: Invalid Service 0x52
From: "Kasemir, Kay via Tech-talk" <[email protected]>
To: "Guerra, Roy Ignacio" <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 16 Jan 2020 18:38:22 +0000
Hi:

> Lowering the EIP buffer limit from 500 to 480 has alleviated the problem!
Excellent!
480 has been the default since April 2018, so we're good.

> It appears that the error is not related to the specific set of gate valve tags;
> .. I can include ..  256; when I include one more <record> for a total of 257, I get a similar error as before:
> 2020/01/16 12:04:21.2446 EIP process_ScanList: Error in response
>..
>  16) service 0xCC (CIP_ReadData-Reply), status 0x00 (Ok)
>  17) service 0xCC (CIP_ReadData-Reply), status 0x06 (Buffer too small, partial data only)

"Buffer too small" is the normal error indicating buffer size issues.
When you run "drvEtherIP_report 10", you'll see how the driver arranges all the tags into "scan lists", and for each tag it knows how many bytes we need for the request and response.
So when it's time to handle the "1 second scan list", it build a request for reading tag 1 on that list. Is both the request and the expected response < 500 bytes? OK, add tag 2 to the request. Is both the request and the expected response < 500 bytes? OK, add tag 3 to the list and so on. Once we hit the buffer size, we send that request, handle the response and then move on with the remaining tags in the list, again assembling a request, etc.

In this example, we thought we're OK because the response should be <500 bytes, but the PLC said "Buffer too small" because its buffer is in fact closer to 480 bytes.
So if we stay below 480, we're all happy.
In your original error message, the request must have gotten to large, before we ever got the response.

Yes, packing the data into arrays would be good for performance, but on the other hand, if you're fine with what you have now, then that's OK as well.

-Kay

References:
EtherIP EPICS Support: Invalid Service 0x52 Guerra, Roy Ignacio via Tech-talk
Re: EtherIP EPICS Support: Invalid Service 0x52 Kasemir, Kay via Tech-talk
RE: EtherIP EPICS Support: Invalid Service 0x52 Guerra, Roy Ignacio via Tech-talk
Re: EtherIP EPICS Support: Invalid Service 0x52 Kasemir, Kay via Tech-talk
RE: EtherIP EPICS Support: Invalid Service 0x52 Guerra, Roy Ignacio via Tech-talk

Navigate by Date:
Prev: Re: Question about two minor issues with IOCs Wlodek, Jakub via Tech-talk
Next: RE: Question about two minor issues with IOCs Mark Rivers 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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: RE: EtherIP EPICS Support: Invalid Service 0x52 Guerra, Roy Ignacio via Tech-talk
Next: Lakeshore 336/360: how do I read the temperature Specht, Eliot 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  <20202021  2022  2023  2024 
ANJ, 16 Jan 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·