Table of contents
2 Analog vs Digital Inputs and Outputs
3 Programming
4 PID loops
5 User interface


A programmable logic controller or PLC is a small computer used for automation of real-world processes, such as control of machinery on factory assembly lines. Where older automated systems would use hundreds or thousands of relays, a single PLC can be programmed as a replacement.

The PLC is a microprocessor based device with either modular or integral input/output circuitry that monitors the status of the field connected "sensor" inputs and controls the attached output "actuators" (motor starters, solenoids, pilot lights/displays, speed drives, valves, etc.) according to a user-created, logic program stored in the microprocessor's battery-backed RAM memory. The functionality of the PLC has evolved over the years to include capabilities beyond typical relay control; sophisticated motion control, process control, DCS and complex networking have now been added to the PLC's list of functions.


A simple program could maintain the level of water in a tank between two float switches by opening and closing an electric valve. A slightly more complex arrangement could involve a scale under the tank (as an input) and a flow controller (as an output) allowing water to flow at a controlled rate. A typical industrial application might control several tanks in a process such as sewage treatment. Each tank might be watched for a variety of conditions such as being too full or too empty or having the wrong pH.

Analog vs Digital Inputs and Outputs

Digital signals behave as switches, yielding simply an On or Off signal. Pushbuttons, limit-switches, and photo-eyes are examples of devices providing a digital signal. Analog signals behave as volume controls, yielding a range of values between On and Off. Pressure transducers, scales and gas leak detectors can provide analog signals.

PLCs have a limited number of connections built in for signals such as digital inputs, digital outputs, analog inputs and analog outputs. Typically expansions are available if the base model does not have sufficient I/O.


In the simple example above, the PLC is accepting two digital inputs from float switches. The PLC is controlling a single digital output to actuate the inlet valve into the tank. If both float switches are off (down) the PLC will open the valve to let more water in. It will continue to fill until both floats lift making their switches turn on. The slightly more complex example (scale and flow controller) uses analog inputs and outputs. The scale is connected to one of the PLC's analog inputs and the flow controller is connected to one of the PLC's analog outputs. In this system, we can fill at different rates based on how much water in left. If the water level drops rapidly, the flow controller can be opened wide. If water is dripping out, the flow controller can be set to allow only a small amount of water back into the tank.


PLCs programs are generally written in a special application on a personal computer then downloaded over a custom cable to the PLC. The program is stored in the PLC either in battery-backed-up RAM or some other non-volatile memory.

Early PLCs were designed to be used by electricians who train on the job. These PLC's were programmed in "ladder logic", which strongly resembles a schematic of relay logic. Modern PLCs can be programmed in ladder logic or in more traditional programming languages such as C.

PID loops

PLCs may include logic for single-variable generic industrial feedback loop, a ";proportional, integral, derivative" loop, or "PID controller." A PID loop is the standard solution to many industrial control processes that require proportional control. Proportional control dictates that large deviations should be corrected by large amounts and small deviations should be corrected by small amounts. A PID loop could be used to control the pH level of water in a swimming pool.

User interface

PLCs may need to interact with people for the purpose of configuration, alarm reporting or everyday control. A variety of methods are employed. A simple system may use buttons and lights to interact with the user. Text displays are available as well as graphical touch screens. Some PLCs may only communicate over a network to some other system, such as a computer running a web browser.