# Slow response from AB PLC5

**URL:** <https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765>\
**Category:** Ignition\
**Created:** [January 30, 2013, 2:24pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765 "2013-01-30T14:24:43Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![ryanjmclaughlin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryanjmclaughlin/32/4318_2.png) [@ryanjmclaughlin](https://forum.inductiveautomation.com/u/ryanjmclaughlin)\
**Post date:** [January 30, 2013, 2:24pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/1 "2013-01-30T14:24:43Z")

</div>

I am connecting to an old PLC5 through a 1761-NET-ENI module. I am able to connect and browse fine, however it is SLOW. As I start to add \> 60 tags, my quality and response is dropping out. All my tags are flashing red. I am not sure what is going on.

Below is the diagnostics. Why is the queue time so high? I have tried using a connection path of (1,0) and no connection path in the driver settings and it behaves the same.

```auto
Request Cycle
Request Throughput	20.6/sec
Min Request Duration	9.0ms
Max Request Duration	459.0ms
Avg Request Duration	76.8ms
Last Request Duration	40.0msRefresh
@1000ms
Request Count	82
Request Throughput	20.6/sec
Min Request Duration	54.0ms
Max Request Duration	14174.0ms
Avg Request Duration	4002.5ms
Last Request Duration	4009.0ms
Avg Wire Time	76.8ms
Avg Queue Time	3935.8msRefresh
```

---

<div class="post-metadata">

**Author:** ![thechtman](https://avatars.discourse-cdn.com/v4/letter/t/e56c9b/32.png) [@thechtman](https://forum.inductiveautomation.com/u/thechtman)\
**Post date:** [January 30, 2013, 3:47pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/2 "2013-01-30T15:47:35Z")

</div>

Changing the connection path will have no effect on the throughput.

The diagnostics show that you are only getting 20.6 requests per second but you need 82 to prevent timeouts. It also shows that the wire time is 76.8mS. This is the time it takes for a request to pass over the Ethernet, through the NET-ENI, through the RS232 communication, time for PLC-5 to process it and back. Doing the quick calculation: 1 (sec) / .0768 (wire time) equals 13. Which is roughly the number of requests that can occur per second based on the average wire time.

Here are a couple of things to check or do:

- The RS232 baud rate between the NET-ENI and PLC-5 is set to the highest possible rate.
- Are there other communication requests going to the PLC-5 from other system (like Panel View, another HMI, other PLCs or RSLogix)? If there is, the RS232 bandwidth will be shared with Ignition.
- Use different scan rates that will reduce your total requests/sec down to around 13.
- Make sure the addresses you are reading out of the PLC-5 are grouped together. For example C5:100.ACC, T4:10.ACC. N7:0 will take three requests. If they are grouped together into one file say N10:0 thru N10:2 then it will only be 1 request.

---

<div class="post-metadata">

**Author:** ![Curlyandshemp](https://avatars.discourse-cdn.com/v4/letter/c/bcef8e/32.png) [@Curlyandshemp](https://forum.inductiveautomation.com/u/Curlyandshemp)\
**Post date:** [January 30, 2013, 5:32pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/3 "2013-01-30T17:32:20Z")

</div>

If the PLC5 program is large, you may have a CPU utilization problem.  
If possible put the PLC in program mode and see if the throughput increases.  
And as suggested previously, contiguous memory reads are the best way to go.

---

<div class="post-metadata">

**Author:** ![ryanjmclaughlin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryanjmclaughlin/32/4318_2.png) [@ryanjmclaughlin](https://forum.inductiveautomation.com/u/ryanjmclaughlin)\
**Post date:** [January 30, 2013, 7:15pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/4 "2013-01-30T19:15:52Z")

</div>

Thanks for the help. I am investigating it further. Looks like I am maxed out at 19K on RS232 speed! 😆 Looks like the PLC processor usage is not even close to maxed out, just mostly seems to be a limit of the RS232.

I am glad to know about grouping, I will re-factor some of my tags to take advantage of that.

---

<div class="post-metadata">

**Author:** ![diat150](https://avatars.discourse-cdn.com/v4/letter/d/a587f6/32.png) [@diat150](https://forum.inductiveautomation.com/u/diat150)\
**Post date:** [January 30, 2013, 8:00pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/5 "2013-01-30T20:00:22Z")

</div>

[quote=“ryanjmclaughlin”]Thanks for the help. I am investigating it further. Looks like I am maxed out at 19K on RS232 speed! 😆 Looks like the PLC processor usage is not even close to maxed out, just mostly seems to be a limit of the RS232.

I am glad to know about grouping, I will re-factor some of my tags to take advantage of that.[/quote]

[plctalk.net/qanda/showthread.php?p=520820](http://www.plctalk.net/qanda/showthread.php?p=520820)

see the above that I posted. It looks like the net-eni may be part of your problem. If you have a protocol converter like a digi one iap or lantronix, that may solve your problem. the net eni is a piece of crap to put things bluntly, and I would not be surprised if it is the main culprit in your problem.

---

<div class="post-metadata">

**Author:** ![ryanjmclaughlin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryanjmclaughlin/32/4318_2.png) [@ryanjmclaughlin](https://forum.inductiveautomation.com/u/ryanjmclaughlin)\
**Post date:** [January 30, 2013, 8:48pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/6 "2013-01-30T20:48:11Z")

</div>

> [@thechtman](#):
>
> For example C5:100.ACC, T4:10.ACC. N7:0 will take three requests. If they are grouped together into one file say N10:0 thru N10:2 then it will only be 1 request.

How do I group the tags? For ex, I want to grab all of N7 from the PLC5.

---

<div class="post-metadata">

**Author:** ![thechtman](https://avatars.discourse-cdn.com/v4/letter/t/e56c9b/32.png) [@thechtman](https://forum.inductiveautomation.com/u/thechtman)\
**Post date:** [January 30, 2013, 9:00pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/7 "2013-01-30T21:00:53Z")

</div>

The Ignition driver will automatically optimize the request. The driver looks at the gap between two addresses and if the gap is less than 10 it will go ahead and read all addresses in between. For example, reading N7:0, N7:1, N7:9 and N7:12 will be optimized into one request. Keep in mind each file will be in a separate request. For example, reading N7:0 and N8:1 will be separated into 2 requests which is dictated by the protocol.

---

<div class="post-metadata">

**Author:** ![ryanjmclaughlin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryanjmclaughlin/32/4318_2.png) [@ryanjmclaughlin](https://forum.inductiveautomation.com/u/ryanjmclaughlin)\
**Post date:** [February 13, 2013, 2:08am UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/8 "2013-02-13T02:08:40Z")

</div>

So, I am noticing the grouping working, but now I am noticing another issue. It does not appear that any counters group…

For example if I request N9:0-N9:6 it is one request, but if I request C5:0.ACC - C5:6.ACC it is 6 requests. Most of my application is reading counter accumulators. Is there any way to get the driver to optimize this? Do I need to write a bunch of logic to copy the ACC values to a data table? I have about 100 counters I need to read in Ignition.

Thanks for the help!

---

<div class="post-metadata">

**Author:** ![thechtman](https://avatars.discourse-cdn.com/v4/letter/t/e56c9b/32.png) [@thechtman](https://forum.inductiveautomation.com/u/thechtman)\
**Post date:** [February 14, 2013, 6:10pm UTC](https://forum.inductiveautomation.com/t/slow-response-from-ab-plc5/5765/9 "2013-02-14T18:10:56Z")

</div>

Unfortunately, it will not group C5:0.ACC through C5:6.ACC into one group. This is because there is actually other elements in between such as C5:0.PRE and C5:0.CTL.

One other thought, make sure you the Disable Processor Browse setting is selected in the device settings advanced section. This will disable the automatic browse of the processor data table layout which takes up bandwidth (especially when the processor has numerous data table files). Even though the automatic browse only happens when when viewing addresses in the OPC browser or Quick Client, it still can impact you occasionally. Keep in mind, you will have to click the refresh browse in the rare event that the processor data table layout changes.
