# Reading only the row of a PLC Queue using Ignition

**URL:** <https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298>\
**Category:** Ignition\
**Tags:** opcua, scripting, ignition81\
**Created:** [June 11, 2025, 8:38pm UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298 "2025-06-11T20:38:55Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kaleb\_Buck](https://avatars.discourse-cdn.com/v4/letter/k/a88e57/32.png) [@Kaleb\_Buck](https://forum.inductiveautomation.com/u/Kaleb_Buck)\
**Post date:** [June 11, 2025, 8:38pm UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298/1 "2025-06-11T20:38:56Z")

</div>

Good Afternoon,

I have a question that is a continuant off of my previous post ([Pull Rate of Ignition](https://forum.inductiveautomation.com/t/pull-rate-of-ignition-and-data-collectors-plcs/106589)), but a little more in depth on coding.

We are implementing the queue on a Keyence Data Collector and giving Ignition access to the data, along with the ability to control the out pointer. We are only really wanting to get a row at a time and not the whole queue. However, I believe that the way we are doing it, grabs the whole queue first. And then gets the row from it.

These are the kind of steps:

```python
values = system.opc.readValues(server, paths)
outPtr = int(values[3].value)
rowData = str(values[4].value[outPtr].strip())

```

Would we have to just have the PLC only send the row. Or is there another way in Ignition scripting that allows for us to only grab the row?

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [June 11, 2025, 9:28pm UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298/2 "2025-06-11T21:28:57Z")

</div>

What is the path you are reading?

---

<div class="post-metadata">

**Author:** ![Kaleb\_Buck](https://avatars.discourse-cdn.com/v4/letter/k/a88e57/32.png) [@Kaleb\_Buck](https://forum.inductiveautomation.com/u/Kaleb_Buck)\
**Post date:** [June 12, 2025, 11:57am UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298/3 "2025-06-12T11:57:33Z")

</div>

the paths contain the variables that exist on the Keyence that are being used here. It contains the in pointer path, the queue path, the out pointer path, a queue size path.

The rowData line is what I'm asking about because it seems to pull the whole queue and then I use the outpointer to get the row that I want. However, I just want to pull one row, not the whole queue. I was just wondering if there was a way to do this in Ignition Scripting where you can connect directly to the queue and only pull the necessary row.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 12, 2025, 12:01pm UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298/4 "2025-06-12T12:01:15Z")

</div>

He's asking about the path because you're getting this variable from an OPC Server, and whether you can get a "row" or the whole queue value depends entirely on whether that server allows access to a single row via some alternate NodeId (OPC Item Path).

Sometimes you can guess the right syntax, if it's supported. e.g. if you have a path of `FooArray` then it's a good guess that `FooArray[0]` might give you access to just the 0th element.

---

<div class="post-metadata">

**Author:** ![Kaleb\_Buck](https://avatars.discourse-cdn.com/v4/letter/k/a88e57/32.png) [@Kaleb\_Buck](https://forum.inductiveautomation.com/u/Kaleb_Buck)\
**Post date:** [June 12, 2025, 12:19pm UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298/5 "2025-06-12T12:19:16Z")

</div>

"=urn:\_\_\_\_\_\_\_:PLC:OpcUaServer;s=Queue[0]", So, you would be able to do something like the above. Have the row selection be on the path?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 12, 2025, 12:19pm UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298/6 "2025-06-12T12:19:36Z")

</div>

If supported by the Server.

---

<div class="post-metadata">

**Author:** ![Kaleb\_Buck](https://avatars.discourse-cdn.com/v4/letter/k/a88e57/32.png) [@Kaleb\_Buck](https://forum.inductiveautomation.com/u/Kaleb_Buck)\
**Post date:** [June 12, 2025, 6:13pm UTC](https://forum.inductiveautomation.com/t/reading-only-the-row-of-a-plc-queue-using-ignition/107298/7 "2025-06-12T18:13:17Z")

</div>

Alright. It seems to not be supported with what we are doing.

Instead we have worked it out to where instead of getting the Queue, we get the RowData (current row of the queue) and the RowIndex sent over. We validate that the data we are reading is correct based on the Out Pointer and the Row Index.

This made our processing one row of data go from me being able to see the process running for a full second due to reading a 14,000 row table to not being able to see the process run due to the speed with only one row of data is being pulled at a time.

Hopefully, this helps someone else going down the same path.
