There are three types of counter function blocks used in PLC programming: 1) Up counters that count each event and set the output when reaching the limit, 2) Down counters that count down from a limit to zero and set the output, and 3) Up-down counters that can count in both directions and set two outputs depending on reaching the limits. Each type has inputs to count, reset, and load the counter value and an output triggered at the limit. Exercises are provided to write LAD programs demonstrating each counter type.