# Update OPC Tags only when flagged

**URL:** <https://forum.inductiveautomation.com/t/update-opc-tags-only-when-flagged/62546>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [August 1, 2022, 2:03pm UTC](https://forum.inductiveautomation.com/t/update-opc-tags-only-when-flagged/62546 "2022-08-01T14:03:01Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gelosar](https://avatars.discourse-cdn.com/v4/letter/g/848f3c/32.png) [@Gelosar](https://forum.inductiveautomation.com/u/Gelosar)\
**Post date:** [August 1, 2022, 2:03pm UTC](https://forum.inductiveautomation.com/t/update-opc-tags-only-when-flagged/62546/1 "2022-08-01T14:03:01Z")

</div>

Hello, I’ve been trying to set up OPC Tags to read their value from the PLC only when needed.  
We have _a ton_ of PLCs on the shop floor, and reading all their variable constantly would put a strain on the network.

Right now (outside Ignition) we are only polling a “flag” Tag. If the value is true we go ahead and we read all the variables that we need, if it’s false we know there are no updates and we read nothing.

I tried to implement this using Driven Tag Groups, but I’ve stumbled upon a big limitation:  
the flag should be part of a bigger User Defined Type that also contains all the OPC Tags, so each instance has its own flag.  
I can’t make an expression that’s checked separately for each instance of my UDT, so unless I make a dedicated Tag Group for every single one of them I don’t see a way out.

Is there something I could look into to solve this?

---

<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 1, 2022, 2:33pm UTC](https://forum.inductiveautomation.com/t/update-opc-tags-only-when-flagged/62546/2 "2022-08-01T14:33:22Z")

</div>

No, OPC drivers generally need to poll. Sounds like your Ignition server is remote. Don’t do that. Put Edge or some other device local to your PLC so the polling is local. OPC/UA or MQTT from there will have much light network load.

(Creating a bunch of driven tag groups is an option, but is like re-inventing the wheel.)

---

<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 1, 2022, 2:36pm UTC](https://forum.inductiveautomation.com/t/update-opc-tags-only-when-flagged/62546/3 "2022-08-01T14:36:35Z")

</div>

See if **leased mode** is of any help in reducing gateway load.  
[https://docs.inductiveautomation.com/display/DOC80/Leased+Mode](https://docs.inductiveautomation.com/display/DOC80/Leased+Mode)

---

<div class="post-metadata">

**Author:** ![Gelosar](https://avatars.discourse-cdn.com/v4/letter/g/848f3c/32.png) [@Gelosar](https://forum.inductiveautomation.com/u/Gelosar)\
**Post date:** [August 2, 2022, 6:45am UTC](https://forum.inductiveautomation.com/t/update-opc-tags-only-when-flagged/62546/4 "2022-08-02T06:45:39Z")

</div>

I see, thanks for the response.

The Ignition Gateway is already in a local network with our PLCs. The main concern is that we have over 200 variables to keep track of, but most of them don’t really need to be read unless some event occurs (hence the use of flags).

---

<div class="post-metadata">

**Author:** ![Adriaan.leRoux](https://avatars.discourse-cdn.com/v4/letter/a/bbce88/32.png) [@Adriaan.leRoux](https://forum.inductiveautomation.com/u/Adriaan.leRoux)\
**Post date:** [August 2, 2022, 6:54am UTC](https://forum.inductiveautomation.com/t/update-opc-tags-only-when-flagged/62546/5 "2022-08-02T06:54:53Z")

</div>

200 variables should be a breeze for Ignition to handle, with little network impact
