AB PLC tag import/export

I’m interested in seeing if anyone has a good solution for importing/exporting PLC tags from the Designer’s Tag Browser. Obviously Ignition has this feature, but the options for this appear to be limited to .xml or .json. However when exporting tags from Rockwell’s software (Studio 5000, RSLogix 5000, etc…) my only two options are .csv or .txt . There has got to be a work around for people that often wont have the convenience of “browsing” a live PLC.

For example, we may just be sent a copy of the PLC program or we have an upgrade project where we’re converting an older SLC 5/0x to a newer Compact/Control Logix. After we convert the program, how could we easily manipulate the older tag syntax (hypothetically speaking in Ignition) to the newer tag syntax ?

As an integrator, it was Ignition’s versatility and dynamic abilities that attracted me to it initially; especially since time is often precious. I’d love to hear from any integrators on this forum and what their approach has been to combat this issue.
:face_with_monocle::sweat:

1 Like

You might find my Ethernet/IP module useful for this, without needing to buy it. Export the Logix 5000 project in L5X format. You can import that into an instance of my driver and it will render the data types and tags into my module’s virtual controller. OPC item syntax is identical to that in Ignition’s own Logix v21+ driver (with a handful of exceptions). For even more fidelity, do the above in another Ignition gateway, and let the first gateway connect to it with the normal v21 driver.

When ready to test with a real controller, just delete the virtual device and replace it with a v21 driver instance of the same name.

2 Likes

How do I "

?

Start in your gateway’s configuration section, under the OPC Server’s “Device Connections” and click on “Create new Device…”:

Select the Ethernet/IP Class1 Host Device:

Give it a name and serial number…

… and a slot number and listening address (required for external access) then “Create”:

Then, in the list of devices, pick the new device’s “More” button, and select “Configuration”:

In the “Import Configuration” section, browse to your .L5X file from RSLogix/Studio 5000 and click on “Import XML”:

Review the import on the configuration page, in the Quick Client, or in the Designer’s OPC Browser.

1 Like

Wow, this is a really great tool! Thanks Phil!
Totally beats setting up Emulate for tasks that don’t require code simulation.

1 Like

In my copious spare time (hah!) I’ve been toying with conversion of ladder logic to jython during the import… (:

2 Likes

Is this a new feature in 8.0.9?

Which feature? The module supports Ignition v7.7 through v8.0, though a different module file is required for v8.

Uhm, this is a third-party module, in case you didn’t follow the link. You have to add it to your gateway…

Ok, im obviously missing something. I thought you said i didnt need to buy anything? I clicked the link above and it brought me to a price tag of $1K

I believe Phil’s module, like IA modules, respects the 2 hour trial period - so it would be functional enough for what you’re trying to do here.

I don’t actually know much about PLC tag formats, but another option might be, if you’re willing to write the parser yourself, to manipulate the tag export into a file suitable to import into the new Programmable Device Simulator - then, along the lines of what Phil mentioned, you could develop against the simulator device, and just swap out the device for the real one once deployed.

It does. I do almost all of my development on scattered VMs running Ignition in trial mode. Time’s up? Reset and keep going.

Does the simulator allow periods (full stop) as a separator instead of a slash? And colons? And bracket subscript notation for arrays? Including combinations of arrays and dotted names? These would be needed to properly simulate the gamut of AB tag names. If you are truly aiming for device swap-out for deployment.

Does the new simulator run in v7.9? (Yes, I know the answer to this one.)

I don’t think that’s ever been the goal with the simulator - but the idea of PLC tag export -> Ignition sim device is just something I’ve had kicking around in my head. Not the most original idea, even, I know.

It probably should be a goal. Simulating in a non-compatible form is a lot of trouble. Being able to swap drivers to deploy is a big win. However, this stuff is very brand- and model-dependent. My driver “just” does modern AB Logix.

Note that an L5X file is a complete Logix project export in XML, not just tags. The ladder logic is encoded there, too. Which was the inspiration for code conversion experiments… (:

3 Likes

As a reference, here are some tag syntax examples from AB. First from a RSLogix500 platform (SLC5/0x)
N47:0.0 Where:
“N47” is the Integer File
“:0” is the word
“.1” is the bit

That same tag converted into a modern RSLogix5000 platform (Control/Compact Logix) would look like this…

N47[0].1

If I had a project built in Ignition with the older tag syntax, and we upgrade the customer’s PLC to a newer model (either Compact or Control Logix) it could be a real headache to “hand” adjust each single tag.

Ideally, a step by step guide from IA to walk an integrator through this process would be nice.

Thanks everyone for the ideas! @pturmel @ben.d.musson @PGriffith

I find myself using XML/json tag exports and then using regular expressions to bulk convert from the older syntax. I’ll have to remember to save and share the REs next time.

2 Likes

That is exactly what we do as well.
Especially when going from older firmware to newer and having to update the OPC Item paths on thousands of tags.

3 Likes

This looks very interesting, but I am not having any luck with importing the .L5X file. I must be missing something. In my Logix Designer project I exported a program from my task as myProgram.L5X. When I go to import into Ethernet/IP Host Device I get “Failed to import the XML file. See the log for details.”

Any ideas as to what I am doing wrong? I trolled the internet for answers but got dead ends. I tried in Ver 8.0.10 and 8.0.02, same issue in both. The log file is over my head… Thanks in advance for your help.

I’ll need to see the relevant log entries. Best if copied from the wrapper.log file. When pasting on this forum, be sure to use the code block markers: three single backquotes on a line above, and again below, the content. Like this in the editor:
```
Some pasted content
```

(Also, my v8 supported module is a few revs behind v7.9… the paying customers for this module haven’t switched yet.)

If you can share the L5X file, I can test it for you, instead. Send to my support address as an attachment.

Edit: removed forum auto-added “http” prefix.