# List all changed tags

**URL:** <https://forum.inductiveautomation.com/t/list-all-changed-tags/77448>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [August 4, 2023, 3:11pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448 "2023-08-04T15:11:20Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![nideyijuyidong](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@nideyijuyidong](https://forum.inductiveautomation.com/u/nideyijuyidong)\
**Post date:** [August 4, 2023, 3:11pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/1 "2023-08-04T15:11:20Z")

</div>

Of course, all tags can be listed, and then their timestamps can be judged one by one. But I wonder if there is a better way?  
One of my projects has hundreds of thousands of tags. Judging one by one is too slow and takes more than ten seconds. If there is no better way, maybe the relevant functions can be implemented in java instead of python in script.I don't know how to do it though, would that make a noticeable difference?

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [August 4, 2023, 3:16pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/2 "2023-08-04T15:16:31Z")

</div>

> [@nideyijuyidong](#):
>
> I wonder if there is a better way?

To do what? What are you "judging" timestamps for?

---

<div class="post-metadata">

**Author:** ![nideyijuyidong](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@nideyijuyidong](https://forum.inductiveautomation.com/u/nideyijuyidong)\
**Post date:** [August 4, 2023, 3:28pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/3 "2023-08-04T15:28:07Z")

</div>

Pass these tags values ​​to other software platform. According to the client's request, I can only pass the changed value, not the unchanged value.

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [August 4, 2023, 3:29pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/4 "2023-08-04T15:29:52Z")

</div>

> [@nideyijuyidong](#):
>
> then their timestamps can be judged

This is just a poor way to determine if a tags value has changed.

> [@nideyijuyidong](#):
>
> According to the client's request, I can only pass the changed value, not the unchanged value.

Of all tags in the system??? Why?

Will your clients software platform act as an OPC-UA Client?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 4, 2023, 3:30pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/5 "2023-08-04T15:30:23Z")

</div>

Sounds like you are re-inventing OPC UA. Have you considered using the exposed tags feature of Ignition's OPC server?

---

<div class="post-metadata">

**Author:** ![nideyijuyidong](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@nideyijuyidong](https://forum.inductiveautomation.com/u/nideyijuyidong)\
**Post date:** [August 4, 2023, 3:48pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/6 "2023-08-04T15:48:08Z")

</div>

I will contact the client tomorrow and try opc ua. We currently deliver compressed json with restapi. However, as I understand it, the network management agency in charge of us is very concerned about the amount of data we transfer. I have to admit, we have a Gigabit network and these throughputs are not an issue at all. But I'm afraid we won't be able to convince my client (or network management agency, I'm not sure, this may be a business requirement, after all if they have the ability to audit our functions, then they must know the situation.).

---

<div class="post-metadata">

**Author:** ![nideyijuyidong](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@nideyijuyidong](https://forum.inductiveautomation.com/u/nideyijuyidong)\
**Post date:** [August 4, 2023, 3:50pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/7 "2023-08-04T15:50:55Z")

</div>

Almost all tags, we need to share data with some departments of the client.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [August 4, 2023, 4:49pm UTC](https://forum.inductiveautomation.com/t/list-all-changed-tags/77448/8 "2023-08-04T16:49:42Z")

</div>

I think you have asked the wrong question. Your question should be, "How can I, for efficient data transmission, detect which tags have changed value since the last transmission?" (See [XY Problem](https://xyproblem.info/).)

One way would be to log them all to database on-change (with appropriate deadband) and then you would only have to do a query based on last (successful) transmission time. There are problems with this though if you already have historian enabled on the tags. You also need to consider what happens on a failed transmission.
