Industrial automation and process control systems extensively use programmable logic controllers or
programmable controller (PLC).
A PLC is a digital computer used for automation of industrial
processes, like controlling machinery or factory assembly lines. Unlike desktop
computers, PLCs are have multiple inputs and outputs, operate under extended
temperature ranges, have immunity to electrical noise, and have resistance to
vibration and impact. Programs to control machine operation are usually stored
in battery-backed or non-volatile memory.
The main difference from other computers is that PLCs operate in industrial
environments (dust, moisture, heat, cold) and have multiple input/output (I/O)
terminals. I/O terminals connect the PLC to sensors and actuators. PLCs
measure, analog process variables (such as temperature and pressure), and
values from positioning and vision systems. PLCs outputs operate electric
motors, pneumatic or hydraulic cylinders, relays or solenoids, and analog
outputs. Input/outputs are built into a micro PLCs, and on modular PLCs
external I/O modules are attached to a base or chassis. Ethernet computer
networks plug directly into most PLCs.PLCs were invented as replacements for automated systems that would use hundreds or thousands of relays, cam timers, and drum sequencers. Often, a single PLC can be programmed to replace thousands of relays. Programmable controllers were initially adopted by the automotive manufacturing industry, where software revision replaced the re-wiring of hard-wired control panels when production models changed.
Many of the earliest PLCs expressed all decision making logic in simple ladder logic which appeared similar to electrical schematic diagrams. The electricians were able to trace out circuit problems with schematic diagrams using ladder logic. This program notation was chosen to reduce training demands for the existing technicians. Other early PLCs used a form of instruction list programming, based on a stack-based logic solver.
The functionality of the PLC has evolved over the years to include sequential relay control, motion control, process control, distributed control systems and networking. The data handling, storage, processing power and communication capabilities of some modern PLCs are approximately equivalent to desktop computers. PLC-like programming combined with remote I/O hardware, allow a general-purpose desktop computer to overlap some PLCs in certain applications.
Under the IEC 61131-3 standard, PLCs can be programmed using standards-based programming languages. A graphical programming notation called Sequential Function Charts is available on certain programmable controllers.