I've programmed Intel 8051 family microcontrollers for well over 30 years in native assembly. Nobody needs a 60 year old assembly language 'hacker' (from an time when it was a good thing). If I'm ever going to get an job again, it will be in PLC support. Nobody does embedded hardware engineering in this country anymore... My job went to Malaysia. The PLC's we program are from China...
Good Grief! In efforts to make it 'machine control easily understood by electricians through tree logic tokens, the most obscure, confusing, and backwards thinking techniques and implementations been created bordering on 'technologically impaired' at times. I have never dealt with so much obscure, at times intentionally misleading, double talk since College and I have a MSEE. From what I've seen and read so far, the best way to describe implementation of a typical PLC would be an exercise in brute force artificial inelegance.
Good example: shift one bit through 16 bits worth of I/O to sequentially illuminate discrete indicators one at a time. Simple. 6 instructions with an 8051, hardware would use a a 4 bit BCD counter, a LS154 decoder/driver and a 555 for a clock source. In a PLC, either page after page of shift rights with 1,2,3,4... 15 presets or a sequencer with 0000000000000001, 0000000000000010,0000000000000100 (...) 1000000000000000 data, a FF mask and rising edge event triggered... give me a break
I have yet to find a 'crash course' study course meant for someone with professional level training that can add, subtract, multiply and divide in both hexadecimal and octal pencil in hand on paper. A few references are actually incorrect in definition and show examples that clearly will not implement the function described. It is almost impossible to re-train an embedded microcontroller algorithmic thought process, where efficiency and speed are absolute paramount, into what is required for PLC ladders and to the 'electrician' level intended.
Just out of curosity, am I missing the whole boat here or is it indeed preferred to have absolutely no formal computer or hardware design skills whatsoever before picking up a PLC data sheet?