OK, my actual tag is ns=1;s=[Customer]WCP_ATS_N_PWR_F.InAlarm, and is in the controller tags. By using the {instancename} I thought it would take the actual tag name WCP_ATS_N_PWR_F from the PLC tags and add a component (.inalarm) and the rest of my componenets that I haven't added to my UDT yet, hence using the power of a UDT
That's not what you show in the post seven days ago. (OPC Browser) Are you sure?
No, this approach, if accurate, forces your Ignition UDT instance names to be exactly the same as the PLC names. That is terrible. Don't do that. Make your Ignition tag hierarchy names correspond to human-friendly divisions of lines and equipment in your facility.
In particular, your folders and instance names should be organized to maximize your ability to apply templates and parameterized windows that use tag paths.
Are you saying that the tags I am importing should be Customer instead of Default?
But these are standard OPC tags, not assigned to a UDT yet
so something like this
No.
When you open a window that is intended to show one pump in a pump station, or one pump station, you should be passing it a string parameter that is the base tag path (Ignition tags, not PLC tags) under which all live data needed for the window lives. Including all the status information that drives your alarms.
As a user drills down into that piece of machinery, you should be simply concatenating an inner folder or UDT instance name to the outer tag path, yielding a tag path for the zoomed in window/popup/template. Where any given tag resides in your PLC (or multiple PLCs) should be handled by appropriate OPC Item Paths, preferably parameterized in your UDTs.
Don't segregate your alarms into a separate folder tree.
So I should have put all the tags into the WCP parent?
Or are you saying I should not have my Instances in a sub folder, but in the UDT parent?
I'm suggesting two related things:
-
Learn to parameterize your UDTs so the Ignition folder/instance names can be independent of the names in the PLC itself. (There's some advantage to having PLC UDT member names match Ignition UDT member names, but even that should be optional.)
-
Learn to organize your tag folders and UDT instance names on the Ignition side to correspond to a non-technical user's understanding of the plant/line/machine/subsystem hierarchy they must interact with. This enables efficient and user-friendly re-use of your User Interface components. This is particularly important when more than one PLC is involved.
Thanks All, I found that I had created the UDT by creating it from scratch and not by importing the structure from an existing tag structure from the PLC. Works good now.
Thanks Again
You can always create them from scratch and creating them from an existing tag structure in the PLC is never required, but it all depends on your experience in creating them from scratch.
My advice is to analyze the UDTs and see how they were created and learn from it so you can do it on your own, and so you understand how they're created/structured.
Good Idea, thanks
default
here should be the device name (most likely it is not named default
)
Other than that (and selecting the OPC Server), if WCP_ATS_N_PWR_F.InAlarm
exists in the PLC it will connect.
I always parameterize these things in my udt {Device}
, {AOI_Instance}
rather than hardcoding or using the instance name. Then the path becomes
ns=1;s=[{Device}]{AOI_Instance}.InAlarm