Changing device in working application

I have three PLC devices setup. Each to begin with was a v20 Allen-Bradley compact logic l33er.
One of the PLC’s has been upgraded to v32. This meant I had to change my device driver from a CompactLogix to a Logix Driver.

Now my tags aren’t reading correctly on my client. I can browse the tags correctly through the OPC.

Any help appreciated.

1
2

The controller access changed between the two firmware versions you mentioned (the switch was in the low 20s). The required OPC path to get to a given tag also changed

ns=1;s=[_DEVICE_]Global._TAGNAME_ became ns=1;s=[_DEVICE_]_TAGNAME_
*Underscores used to denote variable fields, not as part of the syntax itself.

I’m pretty sure the OPC path changed for program scoped tags also, but I’m not sure how. You’ll need to change the OPC path of all the tags for your project to work again.

Thanks for reply. I tested this on one tag and removing the Global. from the path and re-specifying the OPC server it works. (I re-created the OPC server in my attempts to resolve problem. Had I not done this maybe I wouldn’t have had to re-specify)

How can I make this change to all tags quickly? To do this to all the tags in my browser individually is not feasible.

Just noticed when I remade the OPC server it removed the dash in between OPC and UA (OPC-UA to OPC UA). I have changed it back and now only have to remove the Global. for tags to read.

My bad

Before you do any of these, backup your tag tree. It’s easy to accidentally change tags you didn’t mean to, and not always easy to reverse the change.

There are two options I can think of:

  1. You can use write a script that uses system.tag.getConfiguration and system.tag.configure. (Get the configuration, change the configuration, and reset the configuration.)
  2. You can copy all the tags’ configuration in JSON into a text editor and change the values in the text editor however you want (find/replace would probably be easiest), then copy the configurations back into the tag tree.

I don’t think there’s an out-of-the-box simple solution for this problem, but if someone points something out, I’ll be delighted to be wrong.

This is what i have always done, but +1 to doing a backup first.

Also note that arrays in the old drivers repeat the array name twice, while the new driver uses approximately the same syntax as you’d see in RSLogix.

1 Like