This document provides an overview of PLC programming for applications and maintenance. It discusses methodology for programming a PLC including identifying requirements, drawing logic, connecting inputs/outputs, and writing the program code. An example application is presented that sorts metal and non-metal items on a conveyor belt. Fault finding procedures are also covered, such as checking the PLC mode, inputs, outputs, and program. Memory setting and resetting is demonstrated using ladder logic.