If you don’t want someone cursing your name in the future, don’t use aliases. They about the worst thing you can use as a programmer.
I disagree. Aliases are the greatest thing in the PLC since sliced bread (although what sliced bread is dong in a PLC, I can't say.)
Granted, there isn't much value in creating an alias for an I/O point that'll probably just be referenced once in the program anyway. You do better by annotating the I/O point rather creating an alias to help give the point context. But then again, prior to v24, annotation wasn't stored in the PLC, but aliases were. Instead of cursing you, people would bless you if they needed to upload from the PLC and didn't have the original file.
The more complex your program, however, the more useful aliases become.
For example, in building an AOI, I'll create a Local DINT "HMI_CMDs", and have Input BOOLs "ManStart", "ManStop", "GoToAuto", "GoToMan" which are aliases to unique bits in the DINT. Similarly, I'll create "InOff" InHand" , "InAuto", BOOL aliases to bist 0,1, & 2 a "ModeStatus" DINT.
In doing so, what I've now done is recreated what we used to do in the PLC-5 & SLC: manipulate bits at the word level. If I MOV a 1 into ModeStatus, I automatically have set "InHand" and reset "InOff" and "InAuto". No need for convoluted sealing coils, or Latch/Unlatch instructions. The HMI has an easier time animating off of the single tag ModeStatus, while ladder in the PLC is referring to bits.
The HMI sets all the command bits, and the PLC resets them
all after 1 scan with a simple, single XOR + MOV instruction.
Anytime I have an array of anything, I can know that I haven't fat-fingered the array pointer ( [2] when I meant [3] ) by creating a meaningful name for that one element in the array via alias, and then programming using the name instead of the array.
Another useful trick: Say I have two identical line, Line1 & Line2. I'll create two separate Programs, and have identical local aliases pointing to different controller-scoped tags. (I.e., in Line1 I'll have an alias "FeedValve" pointing to YV101, in Line 2 "FeedValve" will be aliased to YV201).
Now I program Line 1 using the alias name. When I'm done, I copy the whole code to the Line 2 program, and I'm done. No search/replace or anything. Because every rung refers to a local tag, there is no conflict, even though the names are the same. But because the aliases are different, different devices are used by the different code.
When I make changes to one program, I can just copy the whole shebang back on top of the other, without having to check for which lines changed and which didn't.
The way I use them, aliases cut down on the number of dumb mistakes that I'm capable of making (leaving me free to make more creative mistakes.)
If you need i/o updates faster than a program scan rate then you shouldn’t be using a PLC.
Huh? I/O scanning rates have nothing to do with aliasing. I/O mapping is often used because the I/O scans (and HMI communication, for that matter) happens OUTSIDE of ControlLogix program scans, and some code can suffer if both -| |- and -|/|- are true on the same logic scan.
That's not to say that your statement is incorrect: there are things out there that perform I/O scans faster than a PLC does, and every situation needs the appropriate application. Your statement appears to me to be a non-sequitur.