David,
I like what you said.
I "learned" PLCs long before I went to college for my EE. I "learned" from the AB Books... thought I knew all there was to know about those new fangled PLC-thingees. They were simple as far as they went... and as far as I could see. It wasn't until I got to the Digital Design Course in college that I found out just how far off base those books really were.
It's not that the PLC books told me anything wrong... it's just that... well, they are supposed to be about Programmable LOGIC Controllers... they do cover the programming part, that is, how to use and enter a particular instruction... but they don't explain anything about LOGIC other than AND and OR. And they sure don't explain anything from a "System" point of view.
I guess they felt that they needed to keep it simple for the simple-folk.
It's kinda like deciding that you want to be a carpenter... so you run yer butt down to the Technical Book Store and buy a book on "HAMMERS". The cover, Page-1, shows a shiny new hammer. The top of Page-2 shows a hand holding the "holdin' end". The bottom of Page-2 shows the "bangin' end" hitting a nail. Page-3 shows the "pullin' end" pulling out a nail.
The sentence at the bottom of Page-3 says... "CONGRADULATIONS! You are now a bono-fide hammer-holdin', nail-bangin', nail-pullin'... hammer-swingin' kinda guy! Go get 'em TIGER!" (Page-4 is blank... how much can you say about a hammer?)
Right... as if now you're qualified to go build another Sears Tower.
Most PLC books really aren't
that simplistic, although some are... but most of 'em ain't much better than that.
The bottom line is... the books from PLC Manufacturers do not teach digital logic, nor do they teach digital design, and they sure the hell don't teach system design. They only explain the particular functions that they include with the particular PLC. As long as a particular application stays exactly within the boundaries of the included examples then fine. However...
The best example I can think of to illustrate where a fundamental logical operation (a fundamental logical concept) is applied in a manner that is so limited as to imply that there is no other use for the concept, nor any other variations of that concept, is the AB MWM (Move with Mask) Instruction.
The MWM Instruction provides for particular bits of a source word (selected by the 1-bits in the mask) overwriting the bits of a destination word.
That's it. That is the full extent of "masking" as far as they are concerned.
What a lot of AB-guys don't realize is that this is a particular function specifically created by the AB Engineers to perform the indicated task. Conceptually, this is a MOVE WORD operation from one word to another. However, the word moves "through" a filer, a particular type of mask. In this case, the 1-bits are "passes" while the 0-bits are "no-pass".
The real "logical operations" occurring here is an "AND" operation followed by an "OR" operation. The Source is "AND"ed with the mask and the result is "OR"ed with the destination.
There are are many other situations where "AND", "OR", "XOR", "NOR", or "NAND" might be used in any order in the two-step operation to produce a move-with-mask result. When and why would any of these variations occur? It depends... situations are different.. all the time. It ends up being the same sort of thing... a move is made through some kind of filtering operation.
Even though these variations might not be available in a particular "custom made" function, they are available through the implementation of the fundamental logical operations available in all upper-level PLCs.
The point is, PLCs are much more capable than the manufacturer manuals indicate. It is only with an understanding of the Fundamentals of Digital Logic and an understanding of Digital Design that those capabilities (assuming that the particular PLC has the full set of fundamental capabilities) can be realized.
But... and this is a big but (
no, not a big-butt ...just for Eric)... none of that matters if the programmer doesn't have a "Sense of System". Without a "Sense of System", a programmer is nothing more than a hacker.