# Mirroring Tag Value Across Gateways

**URL:** <https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108>\
**Category:** Ignition\
**Tags:** scripting, vision, ignition81\
**Created:** [September 16, 2026, 9:53pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108 "2026-09-16T21:53:16Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![AdrielP](https://avatars.discourse-cdn.com/v4/letter/a/b3f665/32.png) [@AdrielP](https://forum.inductiveautomation.com/u/AdrielP)\
**Post date:** [September 16, 2026, 9:53pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/1 "2026-09-16T21:53:16Z")

</div>

I’m looking for a way to mirror tag values between two Ignition Gateways without having to use Gateway Event Tag Change scripts.

My setup is roughly as follows:

- **Gateway 1** is connected to **PLC 1**.

- PLC 1 has 10 tags representing the ON/OFF state of 10 part-present sensors.

- **Gateway 2** is connected to **PLC 2**.

- The two Ignition Gateways are connected through the **Gateway Network**.

- From Gateway 2, I can access the 10 sensor tags from Gateway 1.

- I then want Gateway 2 to act as a middleman and write those 10 values into corresponding tags in PLC 2.

Currently, I am accomplishing this with Gateway Event scripts using Tag Change events. Whenever one of the 10 sensor tags changes, I run a simple `system.tag.writeAsync()` to write the values into the corresponding PLC tags on Gateway 2.

Conceptually, I have:

**PLC 1 → Gateway 1 → Gateway Network → Gateway 2→ Tag Change Script → PLC 2**

What I would like to know is whether Ignition has a **native tag configuration/binding mechanism** that can accomplish this without needing to run a Tag Change script.

Ideally, I would like something along the lines of:

**Gateway 1 Tag → Remote Tag Provider/Binding → Gateway 2 Tag → PLC 2**

where the value is automatically kept synchronized whenever the source tag changes.

I’m specifically interested in whether this can be done using things such as **Remote Tag Providers, tag bindings, UDTs, or another native Ignition feature** , rather than having to maintain a Gateway Event script for each tag.

The reason I’m trying to avoid the scripts is that I may have more of these signals in the future, and I’d prefer a configuration-based solution that automatically maintains the synchronization.

Has anyone implemented something similar across two Gateways connected through the Gateway Network?

---

<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:** [September 17, 2026, 1:51am UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/2 "2026-09-17T01:51:01Z")

</div>

Disclaimer: This is a really bad idea--Ignition isn't really designed to do this. PLCs should be using native technology, like producer/consumer tags in Rockwell, to do this kind of process synchronization. So your **SCADA** system stays in **supervision** , not directly in the control loops.

If you must, consider using something like my Integration Toolkit's [Bulk Script Action](https://www.automation-pros.com/toolkit/doc/actors.html#bulk-script-action) to minimize the configuration effort. (Presumably where the bulk script writes to same-named tags in a remote tag provider.)

---

<div class="post-metadata">

**Author:** ![AdrielP](https://avatars.discourse-cdn.com/v4/letter/a/b3f665/32.png) [@AdrielP](https://forum.inductiveautomation.com/u/AdrielP)\
**Post date:** [September 17, 2026, 2:03pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/4 "2026-09-17T14:03:02Z")

</div>

Thank you for the suggestion and warning 😅 I was not aware.

We do try to keep all sorts of control away from our ignition systems as much as we can. In this example, the reason we resorted to having to do it this way is because a PLC to PLC connection was not able to be established, so we used what was already in place in order to make this communication work.

Reading through the documentation of this toolkit, it sounds like it's exactly what i need, specifically the Republish Action. I'd like to give it a try.

How can i integrate this toolkit module into my gateway?

I did not see instructions on how to acquire it or install it.

---

<div class="post-metadata">

**Author:** ![Nol](https://avatars.discourse-cdn.com/v4/letter/n/8e8cbc/32.png) [@Nol](https://forum.inductiveautomation.com/u/Nol)\
**Post date:** [September 17, 2026, 2:32pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/5 "2026-09-17T14:32:08Z")

</div>

If you want to do this natively then:

1. tagA value change script that writes its value into tagB
2. scheduled gateway event with a script that runs periodically that has your list of tags and does a compare against the two values and if there's a difference rewrites tagA into tagB.

Both are necessary because if deviceB comms go down momentarily and the tagB write fails then the value change script won't fire again so tagB will not necessarily equal tagA. So the backup re-check is necessary. Which is also why you shouldn't rely on this for critical values.

If you have the SQL bridge module you could also do this in a transaction group I believe but I haven't gone that route. Not sure about efficiency with that route either.

---

<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:** [September 17, 2026, 2:48pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/6 "2026-09-17T14:48:08Z")

</div>

> [@AdrielP](#):
>
> How can i integrate this toolkit module into my gateway?

It is a **free** (but not open source) 3rd party module. Found through the IA Showcase or directly from my website. I suggest you start here (read the whole thing):

> [@Automation Professionals' Integration Toolkit Module](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934):
>
> Automation Professionals is pleased to announce the immediately availability of a major upgrade to its free Simulation Aids Integration Toolkit module. The new feature justifying the "major upgrade" language is the implementation of eleven thirty-one new expression functions which use iteration to accomplish complex transforms of datasets and lists, to or from other datasets and lists, applying filtering, ordering, and computed new columns along the way. While there are certain operations that…

This may also help:

> [@Integration Toolkit Solutions Wiki](https://forum.inductiveautomation.com/t/integration-toolkit-solutions-wiki/105080):
>
> By popular request, I've created this topic to be used in wiki mode for collaborative generation of solutions to particular problems. To keep this neat, please follow these guidelines: New problems seeking solutions should be posted as replies, and the discussion of that problem kept within that comment, wiki-style. A one-line summary should be added to this topic starter, with an embedded link (not on its own line). After posting, be sure to convert the comment to operate in wiki mode.

> [@AdrielP](#):
>
> specifically the Republish Action

Probably not, as it targets OPC items in the same gateway as the source tag--it cannot work across the gateway network. But a bulk script can assemble a bulk write to tags in a Remote Tag Provider.

---

<div class="post-metadata">

**Author:** ![AdrielP](https://avatars.discourse-cdn.com/v4/letter/a/b3f665/32.png) [@AdrielP](https://forum.inductiveautomation.com/u/AdrielP)\
**Post date:** [September 17, 2026, 2:57pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/7 "2026-09-17T14:57:06Z")

</div>

Thank you, i will mark this as the solution for now.

If i encounter any issues i can return to this thread.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [September 17, 2026, 3:46pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/8 "2026-09-17T15:46:30Z")

</div>

> [@AdrielP](#):
>
> In this example, the reason we resorted to having to do it this way is because a PLC to PLC connection was not able to be established,

I would look harder into this and try and do it the right way, if at all possible.

Why is PLC-PLC connection not available? How are the gateways talking if the PLCs can't talk?

---

<div class="post-metadata">

**Author:** ![AdrielP](https://avatars.discourse-cdn.com/v4/letter/a/b3f665/32.png) [@AdrielP](https://forum.inductiveautomation.com/u/AdrielP)\
**Post date:** [September 17, 2026, 4:29pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/9 "2026-09-17T16:29:50Z")

</div>

The factory where we integrated our solution has separate networks and this machine in specific is technically not allowed to talk to devices outside its network (because IT said so). It was not our decision to make and this was the way they determined it needed to be done.

We are integrators, we don't have much say in how a company's IT determines security and network communications.

Best we can do is guide and make suggestions, but it's ultimately what the customer wants to do.

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [September 17, 2026, 4:35pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/10 "2026-09-17T16:35:55Z")

</div>

Okay, so they must have a managed connection of some sort that allows the gateways to talk across the networks but not the PLCs.

I'd make them aware that if the Ignition server for machine 1 is shut down for whatever reason, even if the other machine is running, this data would no longer make it to the second machine if you have to do it this way.

---

<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:** [September 17, 2026, 4:43pm UTC](https://forum.inductiveautomation.com/t/mirroring-tag-value-across-gateways/117108/11 "2026-09-17T16:43:49Z")

</div>

> [@AdrielP](#):
>
> because IT said so

This is the kind of decision path that gives IT a bad name. They've chosen to connect production systems to each other across networks using a very generic technology with opaque traffic instead of using the appropriate vendor-specific protocols (that show up clearly in wireshark and packet captures). Simply because they don't **want** to properly configure forwarding of the specific, transparent, well-understood protocol. And they've made two production systems intimately dependent on a 3rd system with totally non-PLC non-realtime performance and uptime behaviors. They ought to be fired for making you circumvent their network isolation in this manner. IMNSHO.
