My suggestion (if possible) is for Inductive Automation to create a new type of standard tag. Call it something like a "Transfer" tag. There is already a reference tag and a derived tag that get us so close but not quite.
It is very frustrating to have to write a tag event value change script to pass one value from one PLC to another value in another PLC. I understand that it is common practice to use produce and consume tags but the dynamic is not common for our company in particular. We are more of an integrator where we play a middle man role half of our scope. One part of our scope is to usually bring in Analog Inputs, Analog outputs, Digital Inputs and Digital Outputs directly into our PLC's in a hardwired fashion. But other parts of our scope we are relying on a 3rd party equipment manufacturer. They would serve up those points to us via Ignition.
Without going through the pain of getting them to reprogram their PLC's to use produce and consume we must use Ignition to pass values when they change. This is not the safest and most reliable method. Recently my value change scripts were taking over 20 minutes to get passed. Another designer on the project had a faulty script running and was blocking the execution of my scripting. That was resolved and that script executes fairly quick but still not ideal.
Another case is where we integrate to BACnet devices via Ignition. Think about 100 Air Handling units built by a certain company. They will serve up their points via BACnet. No problem. Our company might control the chiller plant and all of its equipment. If we want to calculate our chillers loading capacity and vary the pumping of the chilled water, we would need to know the chilled water valve position of each Air Handling Unit. The only way to do that is to pass these values from the Bacnet device to our PLC via a tag event value change script mapped to tags in our PLC. Well that is also not ideal with Ignitions current setup.
Is it possible to take the derived tag approach and create a new "Transfer Tag"? It would be similar to a Derived tag but it would have one additional Tag Path. Currently there is a "Source Tag Path". Can we not have a "Target Tag Path" setup? Pass the "{source}" value on the Read Expression line to the "{value}" on the Write Expression line. Why do we need to do the extra step of using a script to pass this value from one third party device or OPC UA tag to another OPC UA tag? I understand there are ways to script this with JSON or system.util.jsonEncode but it kind of defeats the purpose of again relying on script to execute. Don't get me wrong, we love the full power of Ignition and it's ability for raw manipulation but this could be a very useful built in feature. Thanks for the consideration IA Team!