Logix5000 tag naming

russrmartin

Member
Join Date
Aug 2002
Location
Eastman, Wisconsin
Posts
744
Hey boys. We are having trouble at our plant with tagnaming becoming an issue. Everyone here agrees that descriptive tagnames are nice, but the problem lies in the fact that some lines here are too damn big. We just installed a new line which has 4 PLC5000 communicating with each other. Because the tagnames were becoming so long, abbreviations were used. Now we have tagnames such as this #1_RC_DR_RUN_PB. They get worse than this. This really becomes a problem when someone does not know what the abbreviations stand for. Also, RC_#1_DR_etc can be a problem. Meaning that if I am looking for #1 RC, and the programmer called this bit RC_#1, I will have trouble finding it. The ladders are divided into subs, but those are around 200 rungs long. We are trying to come up with a way to standardize how we label real world I/O in the PLC. The most popular suggestion is to simply call inputs their wire number in the PLC, and use the description to help people understand what the bit they are looking at is driving. Does anyone else have a "standard" they use to keep tagnames short, without it being too complicated to troubleshoot? Just wondering what everyone else is doing.

Russ
 
Standards are what you agree on, but can be difficult to implement.

Whatever you settle on, you MUST write up a description to be included in your style or standards bood, and everyone MUST have it at their desk to refer to.

That aside, several things might work for you...

[Mach/Sect ID] _ [Location/enclosure ID] _ [Device type] _ [Function]

M01_OS02_PB_START for example, machine 1, operator station 2, start PB.

M03_E1P2_MD1202_RUNCMD - Machine 3, Enclosure 1, Panel 1, Motor drive MD1202, run command.

Another way might be to (if these are networked together) identify the Controlnet Address for the first section.

One thing I strongly advise you against is using special symbols such as '#' and '&' etc in names; they work now, but you never know when they might be broken in the future. Stick to alpha-numerics and underscores.

The other thing, is you can always use an abbreviated symbolic name, even the connected wire number (but what happens if you have duplicate slave panels, with duplicate wire numbers? We have that a lot for some of our sectional equipment), and put in a more detailed description in the description field of the bit/byte/word/etc.

Our description fields here always start with one line in CAPS for the machine section, then 2 or 3 lines of detail, and the last line absolutely defining a scaling or state:

EXTRUDER 1
Blower Starter
Overload Status
(true = Okay)

EXTRUDER 1
Actual Speed
Value
(##.## RPM)
 
The use of tag names traces historically to PIDs (Process and Instrumentation Diagrams) and the ISA standard for tag names is as good a place to start as any. They are covered in standard ISA-S5.1-1984.

The basic concept is to have a letter or abbreviation, a modifier or modifiers, followed by unique identifying number. The first digit is usually the unit process designtion number, the next digit would be the control loop number, the next digit would be the unit number for multiple identical units, and the next digit would be a sequential item for multiple identical devices.

For example: PSH-4-3-2-1
PSH = Pressure Switch High
4 = cooling water supply process
3 = pressure control loop
2 = pump number 2
1 = the first switch (to distinguish the pump discharge side pressure switch from the pump inlet side switch, for example)

If you coordinate these tag numbers with your drawings you have a reasonalbe logical and consistent scheme. The disadvantage is that you have to have the drawing handy, but any large system has that same disadvantage.

Inside the PLC programs you can use the same kind of scheme. We also add after the tag name descriptive text like EU for engineering units, DATA for unscaled raw data, SP for setpoint, ALM for alarm, and so on.

rdast is ultimately correct, though. In matters like this you don't have to be "right" but you do have to be consistent. Pick a standard, write it down, identify standard abbreviations, and live with it. Try to keep it as simple as possible.
 
Last edited:
Ditto to Tom

I do it the same as Tom does, from the P&IDs.

One other thing to note; it looks like you are trying to be TOO descriptive in the tagname. Could you use the tag comment to be descriptive with and lessen the text in the tagname?

Some examples:

LIT1000 (user defined variable)
V-100 inlet separator boot level

LIT1000.LPVHHFL
V-100 inlet separator boot level hi hi latched

XY_P200_CTL
Flare KO drum pump control

P200_HMI_ST
Flare KO drum pump HMI start
 
Another approach that you might find simpler russ is to exploit the UDT structures better.

For example the system I am familiar with works like this:

xxyyzzz

xx = Area Name, for example S1 = Services #1, V2 = Vacuum System 2


yy = Object Type, eg PU = Pump, VD = Valve Digital, TT = Temp Trans.


zzz = Instance Number.


So then: V1VD016 = Vacuum System # 1, Valve Digital #16.


Then following this create a UDT structure whose members reflect all the properties of a valve. For example:

.OpnFB
.ClsFB
.OpnTm
.ClsTm
.Out

etc....

Then once you create the Valve Digital tag V1VD016 automatically all the elements like:

V1VD016.OpnFB etc, all get created and explicitly named.

The merit of this system is that the tag naming convention is very simple, and it makes it automatic to standardise all the subtag element names.
 

Similar Topics

I'm currently working on an MES interface PLC which passes around a whole bunch of strings. A lot of these strings are really just to allow for an...
Replies
0
Views
1,112
I am having a problem understanding how to assign tags for a simple stop - start push buttons. The Logix 5000 routine to stop and start the pump...
Replies
17
Views
4,916
Hi all, I've been using Logix5000 for a while, first version 24 and recently version 32 as I had to update for working on the newer CPU modules...
Replies
2
Views
2,253
Hello, I am tasked to update a CompactLogix PLC program on a live system. The updates I need to make involve changing a user-defined data...
Replies
9
Views
2,084
Hey guys, I need to have a boolean in Logix5000 that's always on. In other PLCs I've programmed (like GE, for example) there is a system tag...
Replies
28
Views
6,529
Back
Top Bottom