{PathToTag} puts “/“ into the tag path instead of a decimal for UDT paths

Hello!

I am new to ignition, and i am trying to build my UDT tags in ignition to talk to identically formatted data types in my Allen Bradley PLC. At first i was able to use things like Root instance name in this format "ns=1;s=[PLC]{RootInstanceName}.Config”, and that worked well. But then i ran into an issue where i am three datatypes deep and need to create a tag path like this “{BinID}.{TOP or BOT}.SS.{Tagname}” for referencing a tag such as B43.Bot.SS.Has_Prod, and i’m having trouble finding a way to do it. That was until i discovered {PathToTag}, which should work for everything i need since the datatypes in ignition and my compactlogix are identical.

In my testing it shows that it points to the correct path, but it does NOT work. upon some investigation i have discovered that it formats the path differently than other methods. when take a look at the path that it is trying to read from while using {PathToTag} it says the path is ns=1;s=[PLC]B43/Bot/SS/Has_Prod, but if i point to this tag directly it shows the path as ns=1;s=[PLC]B43.Bot.SS.Has_Prod.

I notice that in the example that works it is showing the path with decimal seperators instead of forward slashes. Why is this happening?

Ignition uses forward slashes as a hierarchy separator. Rockwell uses dots for its hierarchy separator, as you see in that OPC item path. There is no magic to change either one.

This is generally a mistake. Your folder hierarchy in Ignition should be organized around repeatable or logical process items, whether the PLC conforms or not.

4 Likes

I guess I agree. I haven’t given any thought that I could move all of my tags from the .SS data type into the .Bot data type on the ignition end (but not in the PLC), and that would be okay, but to say that I cannot dynamically reference tags with a data structure more than two members deep seems a little silly. Especially when there actually IS a way but it is formatted in a manner that means it would never function with my PLC.

It's not just your PLC, though, it's a great many PLC Brands.

Anyway, you can access UDT parameters from members of the UDT. You can make an expression member and build you path there allowing you the ability to build the tag path that you need from there.

Can you link me to an example of this?

I think you are hung up on a PLC tag == Ignition tag paradigm. Don’t assume that.OPC Item Path is just an address that happens to be structured for Logix processors. Ignition doesn’t rely on that structure, as that would lock it to AB products. Many PLC products still use linear address spaces with tags and structures jumbled together. Ignition provides the hierarchy those PLCs lack, and can use any hierarchy desired even with hierarchical PLCs.

2 Likes