A Controller is a host running a program which reads and writes the Process Values used to control an automated process. The control is usually done in cycles consisting of reading the Input Process Value, processing the Input, calculating the Output, and finally writing the Output Process Value.