Programmable logic controller
A programmable logic controller or programmable controller is an industrial computer that has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, machines, robotic devices, or any activity that requires high reliability, ease of programming, and process fault diagnosis.
PLCs can range from small modular devices with tens of inputs and outputs, in a housing integral with the processor, to large rack-mounted modular devices with thousands of I/O, and which are often networked to other PLC and SCADA systems. They can be designed for many arrangements of digital and analog I/O, extended temperature ranges, immunity to electrical noise, and resistance to vibration and impact.
PLCs were first developed in the automobile manufacturing industry to provide flexible, rugged and easily programmable controllers to replace hard-wired relay logic systems. Dick Morley, who invented the first PLC, the Modicon 084, for General Motors in 1968, is considered the father of PLC.
A PLC is an example of a hard real-time system since output results must be produced in response to input conditions within a limited time, otherwise unintended operation may result. Programs to control machine operation are typically stored in battery-backed-up or non-volatile memory.
Invention and early development
The PLC originated in the late 1960s in the automotive industry in the US and was designed to replace relay logic systems. Before, control logic for manufacturing was mainly composed of relays, cam timers, drum sequencers, and dedicated closed-loop controllers.The hard-wired nature of these components made it difficult for design engineers to alter the automation process. Changes would require rewiring and careful updating of the documentation. Troubleshooting was a tedious process. When general-purpose computers became available, they were soon applied to control logic in industrial processes. These early computers were unreliable and required specialist programmers and strict control of working conditions, such as temperature, cleanliness, and power quality.
The PLC provided several advantages over earlier automation systems. It was designed to tolerate the industrial environment better than systems intended for office use, and was more reliable, compact, and required less maintenance than relay systems. It was easily expandable with additional I/O modules. While relay systems required tedious and sometimes complicated hardware changes in case of reconfiguration, a PLC can be reconfigured by loading new or modified code. This allowed for easier iteration over manufacturing process design. With a simple programming language focused on logic and switching operations, it was more user-friendly than computers using general-purpose programming languages. Early PLCs were programmed in ladder logic, which strongly resembled a schematic diagram of relay logic. It also permitted its operation to be monitored.
Here is an older timeline with product milestones from the significant manufacturers of the early PLC's. It has not been updated in quite a while but it's a reasonably accurate reference for the early days of the PLC: https://archive.control.lth.se/media/Education/DoctorateProgram/2012/HistoryOfControl/Vanessa_Albert-PLCDCS.pdf
Virtual PLCs
In recent years, the introduction of virtual PLCs has expanded the scope of programmable logic controllers. Virtual PLCs are software-based controllers that simulate the functions of traditional PLCs but are executed on general-purpose hardware, offering a more cost-effective and flexible alternative. These controllers enable automation systems to be managed without the need for dedicated hardware, making them ideal for applications requiring simulation, remote control, or cloud-based systems.Modicon
In 1968, GM Hydramatic, the automatic transmission division of General Motors, issued a request for proposals for an electronic replacement for hard-wired relay systems based on a white paper written by engineer Edward R. Clark. The winning proposal came from Bedford Associates from Bedford, Massachusetts. The result, built in 1969, was the first PLC and designated the 084, because it was Bedford Associates' eighty-fourth project.Bedford Associates started a company, Modicon, Inc., dedicated to developing, manufacturing, selling, and servicing this new product, which they named . One of the people who worked on that project was Dick Morley, who is considered to be the father of the PLC. The Modicon brand was sold in 1977 to Gould Electronics and later to Schneider Electric, its current owner. About this same time, Modicon created Modbus, a data communications protocol to be used with its PLCs. Modbus has since become a standard open protocol commonly used to connect many industrial electrical devices.
One of the first Modicon 084 models built is now on display at Schneider Electric's facility in North Andover, Massachusetts. It was presented to Modicon by GM, when the unit was retired after nearly twenty years of uninterrupted service. Modicon used the 84 moniker at the end of its product range like Modicon Micro 84 and Modicon TSX CSY 84 until after the 984 made its appearance.
Allen-Bradley
In a parallel development, Odo Josef Struger is sometimes known as the "father of the programmable logic controller" as well. He was involved in the invention of the Allen-Bradley programmable logic controller. Prior to the release of the IBM "Personal Computer" in 1981, these devices were commonly known simply as "Programmable Controllers", or "PC's. But but rapid expansion of the personal computer industry in the early 1980's, the abbreviation "PC" was rapidly and universally accepted as a reference to "Personal Computers". Odo was later credited with coining the "PLC" acronym to distinguish these two technologies, And the inclusion of the word "Logic" was an easy choice as "Ladder Logic" had already been accepted as the name of the programming language. Allen-Bradley went on to become the dominant PLC manufacturer in the United States during his tenure. Struger played a leadership role in developing IEC 61131-3 PLC programming language standards. Allen-Bradley's PLC-5 family, preceded by the 1774-PLC. In addition, each distributor is required to have a staff of multiple product "Specialists" for PLC's, Industrial Controls, network security, Variable Speed Drives, Motion products, Safety solutions, Life-Cycle services and other value-Add services and other categories. This mix of "protected" territory and multiple local experts made it easier for consumers to get local assistance with design, selection and configuration of complex systems.Early methods of programming
Many early PLC programming applications were not capable of graphical representation of the logic, and so it was instead represented as a series of logic expressions in some kind of Boolean format, similar to Boolean algebra. As programming terminals evolved, because ladder logic was a familiar format used for electro-mechanical control panels, it became more commonly used. Newer formats, such as state logic, function block diagrams, and structured text exist. Ladder logic remains popular because PLCs solve the logic in a predictable and repeating sequence, and ladder logic allows the person writing the logic to see any issues with the timing of the logic sequence more easily than would be possible in other formats.Up to the mid-1990s, PLCs were programmed using proprietary programming panels or special-purpose programming terminals, which often had dedicated function keys representing the various logical elements of PLC programs. Some proprietary programming terminals displayed the elements of PLC programs as graphic symbols, but plain ASCII character representations of contacts, coils, and wires were common. Programs were stored on cassette tape cartridges. Facilities for printing and documentation were minimal due to a lack of memory capacity. The oldest PLCs used magnetic-core memory.
Architecture
A PLC is an industrial microprocessor-based controller with programmable memory used to store program instructions and various functions. It consists of:- A processor unit which interprets inputs, executes the control program stored in memory and sends output signals,
- A power supply unit which converts AC voltage to DC,
- A memory unit storing data from inputs and program to be executed by the processor,
- An input and output interface, where the controller receives and sends data from and to external devices,
- A communications interface to receive and transmit data on communication networks from and to remote PLCs.
Modern PLCs generally contain a real-time operating system, such as OS-9 or VxWorks.
Mechanical design
There are two types of mechanical design for PLC systems. A single box is a small programmable controller that fits all units and interfaces into one compact casing, although, typically, additional expansion modules for inputs and outputs are available. The second design type a modular PLC has a chassis that provides space for modules with different functions, such as power supply, processor, selection of I/O modules and communication interfaces which all can be customized for the particular application. Several racks can be administered by a single processor and may have thousands of inputs and outputs. Either a special high-speed serial I/O link or comparable communication method is used so that racks can be distributed away from the processor, reducing the wiring costs for large plants.Discrete and analog signals
can only take on or off value. Examples of devices providing a discrete signal include limit switches and photoelectric sensors.Analog signals can use voltage or current that is analogous to the monitored variable and can take any value within their scale. Pressure, temperature, flow, and weight are often represented by analog signals. These are typically interpreted as integer values with various ranges of accuracy depending on the device and the number of bits available to store the data. For example, an analog 0 to 10 V or 4-20 mA current loop input would be converted into an integer value of 0 to 32,767. The PLC will take this value and translate it into the desired units of the process so the operator or program can read it.