Just to give you an idea of ladder layout.
View attachment 14979
years ago they used to teach in college using ladder diagrams and everything was coded in low level OP code(machine code), hand coded with a great deal more thinking about timers+WDT's, interrupts, jumps, no ops,registers, memory locations, pointers etc.....now everything gets programmed using SDK's (Software Development Kits- AKA compilers) and high level language, usually C, so that a lot of the issues with different PLC chips get ironed out by the use of manufacturer designed programming software tools instead of relying on in depth learning for each new device....the new PLC's and microcontrollers all have inbuilt memory and timers, which the older ones had on a separate card....
In a lot of Colleges they teach this as part of the microelectronics part of the course, and often they never build anything to experiment with the programs but instead run them on a PC based simulator before running on a specially bought in board with Led's to indicate activity/switching and a keypad/LCD for input and information display.....with the students gathering round and taking turns at loading up and demonstrating programs running...usually from a compact flash card or USB memory stick these days....
A lot of Colleges refer to the devices when they teach about them by calling them Microcontrollers and some refer to them as PIC's/PIC Chips (peripheral interface controllers) depending on which manufacturers devices they use there for tinkering about with.....
At University they tend to teach the same but usually add some form of PLC portion as a requirement in projects, referring to them as microcontrollers, if you speak about a PLC they will tell you that this refers to a whole circuit board incorporating a Microcontroller and used in industrial control, then go on about the other interface chips comprising a part of the whole board....
the Integrated circuit chips available these days all have quite a bit of in built memory, and can interface to external memory to load programs stored on them, they can skip to new portions of software from interrupts in the main program that are initiated under certain circumstances and load up/run them from a memory chip on a PCB, a compact flash, a USB memory device or even use handshaking via serial USB interface from a PC/Laptop...
The microcontrollers/PLC's can also check for an externally loaded program by checking ports for communications before loading software stored locally (internally) ie they can check for software updates or to see if an interface cable is connected to the main board, if not available the pre-loaded software/firmware runs instead...
many New models of microcontroller/PLC IC's (Integrated circuits) have inbuilt Digital signal processing (DSP's) that allow for DA/AD conversion, so that analogue signals can be input and digitised then checked/compared to tables of values, then the chip can carry out tasks based on the inputs, and analogue outputs can be produced, such as for example analogue waveforms for passing via an amplifier to a drive unit etc...