How to Quickly Batch-Modify Ignition Tags' Addresses and Associated Displays via OPC

After modifying the variable names in a Siemens DB block, how do you quickly batch-modify the corresponding tag addresses and linked screens in Ignition when using an

OPC connection?

I'd just export the tags and then do a find and replace in notepad++

thanks, Is the screen with variable binding updated synchronously?

My main concern is whether all variables binding to screens will also be fully updated. This is my top priority, and this is my first time working with Ignition.

Does Ignition offer cross‑reference functionality similar to other SCADA platforms such as InTouch, WinCC, C#, python and iFix, allowing global search and replacement of tags/data points?

As long as you don't change the Ignition tag name.

It is called the tag reference tracker. It is not static analysis, but live. (Since tag paths are typically dynamically generated in Ignition, static analysis is unsuitable.)

The short of it is, tags are not symbolically linked to graphics, so renaming a tag will not update the places where they are used. You can however use the Find/Replace tool to search for references to the tags, you just need to be aware of how they're used, as a lot of the time as Phil mentioned, tag paths are dynamic; parts of the tag might be used instead of the full tag paths, so searching for the the full path will likely yield limited or 0 results.

One thing I recommend is to never build a tag path from lots of different partial parts. For example, don't do this:
"Area 1/Sub Area " + {param1} + "/Pump " + {param2}

prefer this instead:
{parentTagPath} + "/" + {deviceName}

The former has multiple issues with it:

  • you limit the template View's reusability, confining it to a specific format that often bites you later
  • finding references to specific device names via the find/replace tool is virtually impossible

My Ignition version is 8.1.32, did it support this function?

pls refer this above image, My tag's struct is very simple, tag = path + name, I want to chang the name that from opc provider, path and tag name. I also wish It will be update synchronously to graphics binding.

If you leave the tag name that Ignition uses, for instance the Name attribute you have highlighted in green, then changing the path attribute will not affect the displays. The value of the tag will update to the new path's value and all will be well.

If you change the tag name that Ignition uses, all bindings will break. They will not automagically update, dynamic or otherwise. Depending on how you have structured your displays, bindings, and how the tag paths are generated. The task of updating all of those bindings may be more or less dificult. But you have to do it yourself.

It is possible to write programming which modifies the displays, but it is not trivial and depending on the size (number of displays) and how early on in the project you are, the time figuring that out may or may not be worth it.

I have done the test that the rename the name that I had highlighted in green, Ignition only change this name, it doesn't update the graphic's binding. Another way is Ok that I have use the find/replace to change the name, as my question title, how to change the tag name in batch, meanwhile the graphic's binding this old tag name to update. This question still available.

I have a large number of identical devices that need to be migrated to another PLC. Both the OPC item names and the station names assigned to the devices will have to be modified accordingly. The only thing that will likely remain unchanged is the device name itself that I have highlighted in green. Is there a faster way to make these bulk modifications than using the standard Find/Replace tool? Alternatively, can we use Python scripting or custom plugins to extend Ignition’s functionality and handle this batch edit task?

There is no ready made solution. There are posts on the forum about how this can be done. It isn’t a trivial problem to solve, and will be very dependent on your specific project. No one here can do it for you. That is unfortunately the answer.

If you are confident enough that a bulk list of old vs new names in csv format will not destroy your project if you were to bulk find/replace inside all the View files on the gateway, then you could fairly simply script this in python. I would use Claude.ai for this, but highly recommend that you run it on a local backup copy and not the production gateway. You could get it to produce a report of what the script changed

Got it, Thank you very much

Thanks for the explanation. I’m disappointed with the existing functions of Ignition software.

I'm not sure how you expect an IDE to automatically relink tags where their paths are dynamically generated in expression and scripts with things like:

{view.params.deviceParentPath} + '/' + {view.params.deviceName}
{view.custom.deviceTagPath} + '/Mode'

self.custom.deviceTagPath + '/Mode'

etc. etc.

Tag paths can also come from a wide variety of other sources as well, like databases, tag values, dataset values, document values, and be built up in infinitely more combinations than those above. As much as it would be hugely useful, it would be literally impossible to achieve to 100%. And anything less than 100% would lead to distrust in the renaming.

The flexibility of Ignition is a bit of a double-edged sword; it allows great ability to customise things to your needs and to make development time fast with templating, however this is at the expense of these kinds of mods you're looking at making. However, as I said, it should also be pretty quick to bulk fix these things up, due to its flexibility