A ladder diagram is a graphical programming language used to program PLCs. It represents program statements as rungs with inputs on the left and outputs on the right. The PLC reads input states and determines output states by evaluating the rungs from top to bottom. Common instructions include examining input states, sensing input transitions, energizing/de-energizing outputs, basic logic functions, timers to time intervals, and counters to count events. The reset instruction can reset timers and counters.