PLC's were invented as less expensive replacements for older automated systems that would use hundreds or thousands of relays and timers. 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.
The earliest PLCs expressed all decision making logic in simple ladder logic inspired from the electrical connection diagrams. The electricians were quite able to trace out circuit problems with schematic diagrams using ladder logic. This was chosen mainly to reduce the apprehension of the existing technicians.
The functionality of the PLC has evolved over the years to include typical relay control, sophisticated motion control, process control, distributed control systems and complex networking. Today, the line between a general purpose programmable computer and a PLC is thinning. The data handling, storage, processing power and communication capabilities of some modern PLCs are approximately equivalent to desk-top computers. PLC-like functionality, combined with remote I/O hardware, allow a general-purpose desktop computer to overlap some PLCs in certain applications.
With the IEC 61131-3 standard, it is now possible to program PLCs using structured programming languages, and logic elementary operations. A graphical programming notation called Sequential Function Charts is available on certain programmable controllers.