Browsing Logix Tag Names Through External App

JDuzan

Member
Join Date
Feb 2018
Location
Evansville
Posts
2
Python Dev/AB PLC programmer here,

So I'm writing a python app that does some interfacing with a ControlLogix or CompactLogix controller. I understand that A tag is simply a shortcut to a specific EtherNet/IP CIP Object Instance and Attribute within the controller and knowing the tagname I can read and write to it through an "unconnected message". How can a guy get the tag names out of the controller? Oh yea, by the way, I don't want my user to have to install studio5000 or RSlinx(OPC server) is there any other way to get the tag names through an ethernet connection that anyone knows?

inb4: why would I want to do this?
I want to do this so my app can auto complete tagnames for my user when they specify which ones to read or write to.🍻
 
Welcome to the PLCTalk forum community !

Reading the tag database and all of its structures is a nontrivial task even if you already have a solid CIP driver under the hood.

Start with the Logix 5000 Data Access Programming Manual:

http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm020_-en-p.pdf

The Get_Instance_Attribute_List service in conjunction with the Symbol object are, I think, what you want to look at to browse or query the controller's tag database.

It gets hairy in a hurry if you want to allow your client access to every data type and every subelement of every structure.
 
So pylogix (what Jordan was pointing to) can get the tag names from the controller, which may help you to an extent. It will retrieve the controller and program scoped tags. It does have a limitation though, it won't interrogate user defined tags. I've experimented with UDT's, just haven't worked out anything solid.
 
Wow, Great responses guys! I'll be working for a bit to understand all of these suggestions, but I intend to check into all of them thoroughly.
Thanks alot!
 
Hello, I am trying to do something similar to JDuzan, but in C++. So, I am trying to implement the access scheme described in Rockwell's "Logix 5000 Controllers Data Access" document. Most of what I've read makes sense, but I haven't figured out how to get the array size of an atomic symbol.


I can see how the array size is determined for struct symbols using the Read Template Service, but I don't see how to get the array size for a symbol that is an array of atomic elements. The Symbol Type obtained via the Get Instance Attribute List service gives the number of array dimensions, but not the size of each dimension.


Have I not understood the Rockwell document correctly? I see that DMRoeder's excellent pylogix software adds an extra attribute (#8) to the Get Instance Attribute List service request, which does seem to get the array size information. However, I haven't found any documentation that covers attribute 8 of the Symbol class.
 

Similar Topics

Hello all, Long time browser, first time poster. Thank you all for the great reference you provide with this forum. I am having very strange...
Replies
3
Views
2,654
Hello, and thanks for providing these forums and taking the time to help us out. I have a bunch of different Logix5000 and SLC 500 based PLCs...
Replies
4
Views
5,510
Hello, Just working on my very first Wonderware project (Archestra System Platform). Typically I work with all Rockwell products (FTView ME and...
Replies
0
Views
5,254
Dears, We have a network distributed FT SCADA system, we have been asked to move data to OPC UA client, FT Linx gateway V6.31 with Nov.2022...
Replies
0
Views
728
I've done a factory reset on a PV 7 Plus terminal, set the IP address and cycled power. I can now ping the PV and can see it on RS Linx but its...
Replies
3
Views
1,426
Back
Top Bottom