Tag Structures and Dotfields
Today’s post is in response to an e-mail I received asking for my thoughts on Tag Structure. In part, George Steel wrote:
Great site, thanks for all your efforts. I am working on positioning my org to move from RS500 to RS5000 and from RSView to FT SE sometime in the future before our next upgrade shuts us down. Our PLC5s and SLCs have few symbols so I am working on an integrated tag structure.
Any thoughts on a structure? ISA works for some but leaves a lot of non-instrument based logic hanging.
I am focusing on a Location/Equipment/Function structure: R0300_P21_Suc_PT.EU_Max. = Primary/PS2 Pump1/Suction Pressure Transmitter.Engineering Units Max (for analog scaling).
The dot suffix is generated by AOIs (another part of my project under development). I’d like to see you address preferred tag structure in an article sometime.
When I first read the e-mail, I thought I had already written a post on this subject, but I went back and looked and I had really only discussed wire labeling and UDTs. While these do relate to tag structure and naming conventions, I can definitely cover this in more depth here.
First, for those of you unfamiliar with Allen-Bradley products and what George is doing, he is converting programs written for SLCs and PLC5s (older, register-based platforms) into ControlLogix programs written with RSLogix 5000. The ControlLogix platform is tag based, there are no registers that you can see, just a big database full of text addresses for each data value. In the image at the top of this screen, the clip in the upper right is from a SLC500, it shows the Symbol and Description for an N7 (signed integer) register. While the address can be typed into the program either as N7:40 or TOT_060_FT52, only the address of N7:40 is present in the PLC processor. The symbol is kind of a “short cut” or mnemonic to make it easier to find and organize things.
RSLogix 5000 has a utility that converts SLC or PLC programs into ControlLogix programs. It uses the symbol as the new tag name if a symbol is used, otherwise it converts to a name like “N7_40” which isn’t very descriptive at all. A few limitations: SLC symbols can be only 20 characters in length, whereas ControlLogix tags can contain 40 alphanumeric characters, not counting the dotfield. Since the SLC is register based, it has no dotfields outside of those built into the data type, such as the preset for a timer (T4:58.PRE, or TDL_010_GS01.PRE as a symbol).
So what is a dotfield? It is just the part of the tag after the period or dot. As George mentioned in his email, an AOI or Add On Instruction uses dotfields as part of it’s data definition, as does a UDT. The clip to the left side in the image above shows a UDT called “CakeRecipe” which I used to create the elements Flavor, LbsFlour etc. in the tag ModRecipe. This tag list is part of the advanced course I talked about a few weeks ago.
So these are a few of the constraints that will need to be followed when converting the programs; tag lengths will all be 20 characters or less (though they can be modified easily in Logix5000) and they won’t use UDTs unless you build new ones. Same thing with the AOIs. And some AOIs may have to be built anyway since several instructions such as SCP (Scale w/ Parameters and DCD (Decode) are not present in the ControlLogix.
As far as naming conventions, I have used a lot of different ones in the past depending on the industry and who the customer was. Process industries tend to like ISA definitions and P&ID designators, so some four digit numerical designators like “8454” and standard definitions like “PIT, EU, PSHH” will be used. I wrote a post back in 2012 called “What’s in a Name?” where I talked about some of the standard names that are used in the custom machinery industry. Because that’s been most of my background, I tend to use an “Assembly-Device-Action” description as shown in some of the tags in the above lists in the image; an example might be “LocCylAdvPX” for Locator Cylinder Advanced Proximity Switch.
It is nearly impossible to make a tag descriptive enough so that someone not familiar with the machine or process will understand it. Cylinder and Advance might be fairly straightforward, but Loc for Locator? Most people wouldn’t know what a locator is unless they were familiar with the machinery.
I am not a huge fan of numerical designators unless the number is printed on the machine or system somewhere. I know this is common it the process industry since everyone is used to using P&IDs, but in a manufacturing environment there can be high turnover and things move at a rapid pace. The easier you can make it for new technicians the better; ideally someone should be able to find a device without using an intermediate piece of paper. Tagnames are long enough now that it should be possible.
The symbol I used from the SLC above was TOT_060_FT52. TOT is an abbreviation for Totalizer, so far so good. The 060 is area 60 in the ABD bottling plant I have mentioned before. Until I had been there for a while I didn’t know that area 60 was the Syrup tanks, but it is labeled fairly clearly in SCADA, so I would have figured it out quicker if I had worked there full time. FT52 is Flow Transmitter 52, and this doesn’t give me a clue where in the maze of pipes the transmitter is. In my opinion an abbreviation like Syr for Syrup and TQ2 for Tank 2 would have made it easier, but the system was put in by Sidel who follows P&IDs fairly closely. Unfortunately they didn’t provide the P&IDs to the customer.
Bottom line, as long as the abbreviations are consistent and explained somewhere in the documentation I have been able to navigate most of the programs I have had to deal with. I am usually either the writer of the program, in which case I know the process well, or new to the program if I am modifying or consulting, in which case I need the documentation to be clear. Time is money, and if it takes me lots of digging or extra steps to figure out what and where things are neither myself or the customer is very happy. Also, even if you can’t fit the full information needed in the tagname, descriptions are cheap and you can write many lines in both the tag description and in the rung comments.
If you have an opinion on this I (and George I am sure) appreciate any experiences or techniques you may have.