Recent from talks
Contribute something
Nothing was collected or created yet.
Programmable logic controller
View on Wikipedia

| Part of a series of articles on |
| Machine industry |
|---|
| Manufacturing methods |
| Industrial technologies |
| Information and communication |
| Process control |
A programmable logic controller (PLC) 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 (I/O), 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.[1] 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
[edit]The PLC originated in the late 1960s in the automotive industry in the US and was designed to replace relay logic systems.[2] Before, control logic for manufacturing was mainly composed of relays, cam timers, drum sequencers, and dedicated closed-loop controllers.[3]
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.[4] When general-purpose computers became available, they were soon applied to control logic in industrial processes. These early computers were unreliable[5] and required specialist programmers and strict control of working conditions, such as temperature, cleanliness, and power quality.[6]
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.[7][8]
Virtual PLCs
[edit]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.[9]
Modicon
[edit]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.[10][11]
Bedford Associates started a company, Modicon, Inc.,[12] dedicated to developing, manufacturing, selling, and servicing this new product, which they named Modicon (standing for "modular digital controller"). One of the people who worked on that project was Dick Morley, who is considered to be the father of the PLC.[13] The Modicon brand was sold in 1977 to Gould Electronics and later to Schneider Electric, its current owner.[11] 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.[14]
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.[15]
Allen-Bradley
[edit]In a parallel development, Odo Josef Struger is sometimes known as the "father of the programmable logic controller" as well.[13] He was involved in the invention of the Allen-Bradley programmable logic controller[16][17][18] and is credited with coining the PLC acronym.[13][16] Allen-Bradley (now a brand owned by Rockwell Automation) became a major PLC manufacturer in the United States during his tenure.[19] Struger played a leadership role in developing IEC 61131-3 PLC programming language standards.[13] Allen-Bradley's PLC-5 family, released in the 1980's, was the first modular design found in modern-day systems.[20]
Early methods of programming
[edit]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,[21] 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.[22]
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.[10] 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.[23]
Architecture
[edit]A PLC is an industrial microprocessor-based controller with programmable memory used to store program instructions and various functions.[24] It consists of:
- A processor unit (CPU) 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.[25]
PLCs require a programming device which is used to develop and later download the created program into the memory of the controller.[25]
Modern PLCs generally contain a real-time operating system, such as OS-9 or VxWorks.[26]
Mechanical design
[edit]
There are two types of mechanical design for PLC systems. A single box (also called a brick) 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 (also called a rack) 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.[27] 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.[citation needed]
Discrete and analog signals
[edit]Discrete (digital) signals can only take on or off value (1 or 0, true or false). Examples of devices providing a discrete signal include limit switches and photoelectric sensors.[28]
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.[28] 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.
Redundancy
[edit]Some special processes need to work permanently with minimum unwanted downtime. Therefore, it is necessary to design a system that is fault tolerant. In such cases, to increase the system availability in the event of hardware component failure, redundant CPU or I/O modules with the same functionality can be added to a hardware configuration to prevent a total or partial process shutdown due to hardware failure. Other redundancy scenarios could be related to safety-critical processes, for example, large hydraulic presses could require that two PLCs turn on output before the press can come down in case one PLC does not behave properly.
Programming
[edit]
Programmable logic controllers are intended to be used by engineers without a programming background. For this reason, a graphical programming language called ladder logic was first developed. It resembles the schematic diagram of a system built with electromechanical relays and was adopted by many manufacturers and later standardized in the IEC 61131-3 control systems programming standard. As of 2015,[update] it is still widely used, thanks to its simplicity.[29]
As of 2015,[update] the majority of PLC systems adhere to the IEC 61131-3 standard that defines 2 textual programming languages: Structured Text (similar to Pascal) and Instruction List; as well as 3 graphical languages: ladder logic, function block diagram and sequential function chart.[29][30] Instruction List was deprecated in the third edition of the standard.[31]
Modern PLCs can be programmed in a variety of ways, from the relay-derived ladder logic to programming languages such as specially adapted dialects of BASIC and C.[32]
While the fundamental concepts of PLC programming are common to all manufacturers, differences in I/O addressing, memory organization, and instruction sets mean that PLC programs are never perfectly interchangeable between different makers. Even within the same product line of a single manufacturer, different models may not be directly compatible.[33]
Programming device
[edit]Manufacturers develop programming software for their PLCs. In addition to being able to program PLCs in multiple languages, they provide common features like hardware diagnostics and maintenance, software debugging, and offline simulation.[34]
PLC programs are typically written in a programming device, which can take the form of a desktop console, special software on a personal computer, or a handheld device.[34] The program is then downloaded to the PLC through a cable connection or over a network. It is stored either in non-volatile flash memory or battery-backed-up RAM on the PLC. In some PLCs, the program is transferred from the programming device using a programming board that writes the program into a removable chip, such as EPROM that is then inserted into the PLC.
Simulation
[edit]An incorrectly programmed PLC can result in lost productivity and dangerous conditions for programmed equipment. PLC simulation is a feature often found in PLC programming software. It allows for testing and debugging early in a project's development. Testing the project in simulation improves its quality, increases the level of safety associated with equipment and can save time during the installation and commissioning of automated control applications since many scenarios can be tried and tested before the system is activated.[34][35]
Functionality
[edit]

The main difference compared to most other computing devices is that PLCs are intended for and therefore tolerant of more severe environmental conditions (such as dust, moisture, heat, cold), while offering extensive input/output (I/O) to connect the PLC to sensors and actuators. PLC input can include simple digital elements such as limit switches, analog variables from process sensors (such as temperature and pressure), and more complex data such as that from positioning or machine vision systems.[36] PLC output can include elements such as indicator lamps, sirens, electric motors, pneumatic or hydraulic cylinders, magnetic relays, solenoids, or analog outputs. The input/output arrangements may be built into a simple PLC, or the PLC may have external I/O modules attached to a fieldbus or computer network that plugs into the PLC.
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 allows a general-purpose desktop computer to serve as a PLC in certain applications.[citation needed] Desktop computer controllers have not been generally accepted in heavy industry because desktop computers run on less stable operating systems than PLCs, and because the desktop computer hardware is typically not designed to the same levels of tolerance to temperature, humidity, vibration, and longevity as PLCs.
Basic functions
[edit]The most basic function of a programmable logic controller is to emulate the functions of electromechanical relays. Within the PLC programming environment, discrete inputs are given a unique address, and a PLC instruction can test if the input state is on or off. Just as a series of relay contacts perform a logical AND function, not allowing current to pass unless all the contacts are closed, so a series of examine if on instructions will energize its output storage bit if all the input bits are on. Similarly, a parallel set of instructions will perform a logical OR. In an electromechanical relay wiring diagram, a group of contacts controlling one coil is called a rung of a ladder diagram, and this concept is also used to describe PLC logic.[a] The output of each rung sets or clears a storage bit, which may be associated with a discrete output or which may be an internal coil with no physical connection. Such internal coils can be used, for example, as a common element in multiple separate rungs.
More advanced instructions of the PLC may be implemented as functional blocks, which carry out some operation, such as manipulating internal variable, when enabled by a logical input and which produce outputs to signal, for example, completion or errors.
Communication
[edit]PLCs use built-in ports, such as USB, Ethernet, RS-232, RS-485, or RS-422 to communicate with external devices (sensors, actuators) and systems (programming tools, SCADA and other user interfaces). Communication is carried over various industrial network protocols, like Modbus, or EtherNet/IP. Many of these protocols are vendor specific. Formerly, some manufacturers offered dedicated communication modules as an add-on function where the processor had no network connection built-in.
PLCs used in larger I/O systems may have peer-to-peer (P2P) communication between processors. This allows separate parts of a complex process to have individual control while allowing the subsystems to coordinate over the communication link.
User interface
[edit]
PLCs may need to interact with people for the purpose of configuration, alarm reporting, or everyday control. A human-machine interface (HMI) is employed for this purpose. HMIs are also referred to as man-machine interfaces (MMIs) and graphical user interfaces (GUIs). A simple system may use buttons and lights to interact with the user. Text displays are available as well as graphical touch screens. More complex systems use programming and monitoring software installed on a computer, with the PLC connected via a communication interface.
Process of a scan cycle
[edit]A PLC works in a program scan cycle, where it executes its program repeatedly. The simplest scan cycle consists of 3 steps:
- Read inputs.
- Execute the program.
- Write outputs.[37]
The program follows the sequence of instructions. It typically takes a time span of tens of milliseconds for the processor to evaluate all the instructions and update the status of all outputs.[38] If the system contains remote I/O—for example, an external rack with I/O modules—then that introduces additional uncertainty in the response time of the PLC system.[37]
As PLCs became more advanced, methods were developed to change the sequence of ladder execution, and subroutines were implemented.[39]
Special-purpose I/O modules may be used where the scan time of the PLC is too long to allow predictable performance. Precision timing modules, or counter modules for use with shaft encoders, are used where the scan time would be too long to reliably count pulses or detect the sense of rotation of an encoder. This allows even a relatively slow PLC to still interpret the counted values to control a machine, as the accumulation of pulses is done by a dedicated module that is unaffected by the speed of program execution.[40]
Security
[edit]In his book from 1998, E. A. Parr pointed out that even though most programmable controllers require physical keys and passwords, the lack of strict access control and version control systems, as well as an easy-to-understand programming language make it likely that unauthorized changes to programs will happen and remain unnoticed.[41]
Prior to the discovery of the Stuxnet computer worm in June 2010, the security of PLCs received little attention. Modern programmable controllers generally contain real-time operating systems, which can be vulnerable to exploits in a similar way as desktop operating systems, like Microsoft Windows. PLCs can also be attacked by gaining control of a computer they communicate with.[26] Since 2011,[update] these concerns have grown – networking is becoming more commonplace in the PLC environment, connecting the previously separated plant floor networks and office networks.[42]
In February 2021, Rockwell Automation publicly disclosed a critical vulnerability affecting its Logix controllers family. The secret cryptographic key used to verify communication between the PLC and workstation could be extracted from the programming software (Studio 5000 Logix Designer) and used to remotely change program code and configuration of a connected controller. The vulnerability was given a severity score of 10 out of 10 on the CVSS vulnerability scale. At the time of writing, the mitigation of the vulnerability was to limit network access to affected devices.[43][44]
Safety PLCs
[edit]Safety PLCs can be either a standalone device or a safety-rated hardware and functionality added to existing controller architectures (Allen-Bradley GuardLogix, Siemens F-series, etc.). These differ from conventional PLC types by being suitable for safety-critical applications for which PLCs have traditionally been supplemented with hard-wired safety relays and areas of the memory dedicated to the safety instructions. The standard of safety level is the SIL.
A safety PLC might be used to control access to a robot cell with trapped-key access, or to manage the shutdown response to an emergency stop button on a conveyor production line. Such PLCs typically have a restricted regular instruction set augmented with safety-specific instructions designed to interface with emergency stop buttons, light screens, and other safety-related devices.
The flexibility that such systems offer has resulted in rapid growth of demand for these controllers.[citation needed]
PLC compared with other control systems
[edit]
PLCs are well adapted to a range of automation tasks. These are typically industrial processes in manufacturing where the cost of developing and maintaining the automation system is high relative to the total cost of the automation, and where changes to the system would be expected during its operational life. PLCs contain input and output devices compatible with industrial pilot devices and controls; little electrical design is required, and the design problem centers on expressing the desired sequence of operations. PLC applications are typically highly customized systems, so the cost of a packaged PLC is low compared to the cost of a specific custom-built controller design. On the other hand, in the case of mass-produced goods, customized control systems are economical. This is due to the lower cost of the components, which can be optimally chosen instead of a "generic" solution, and where the non-recurring engineering charges are spread over thousands or millions of units.[citation needed]
Programmable controllers are widely used in motion, positioning, or torque control. Some manufacturers produce motion control units to be integrated with PLC so that G-code (involving a CNC machine) can be used to instruct machine movements.[citation needed]
PLC chip / embedded controller
[edit]These are for small machines and systems with low or medium volume. They can execute PLC languages such as Ladder, Flow-Chart/Grafcet, etc. They are similar to traditional PLCs, but their small size allows developers to design them into custom printed circuit boards like a microcontroller, without computer programming knowledge, but with a language that is easy to use, modify and maintain. They sit between the classic PLC / micro-PLC and microcontrollers.[citation needed]
Microcontrollers
[edit]A microcontroller-based design would be appropriate where hundreds or thousands of units will be produced and so the development cost (design of power supplies, input/output hardware, and necessary testing and certification) can be spread over many sales, and where the end-user would not need to alter the control. Automotive applications are an example; millions of units are built each year, and very few end-users alter the programming of these controllers. However, some specialty vehicles such as transit buses economically use PLCs instead of custom-designed controls, because the volumes are low and the development cost would be uneconomical.[45]
Single-board computers
[edit]Very complex process control, such as those used in the chemical industry, may require algorithms and performance beyond the capability of even high-performance PLCs. Very high-speed or precision controls may also require customized solutions; for example, aircraft flight controls. Single-board computers using semi-customized or fully proprietary hardware may be chosen for very demanding control applications where the high development and maintenance cost can be supported. "Soft PLCs" running on desktop-type computers can interface with industrial I/O hardware while executing programs within a version of commercial operating systems adapted for process control needs.[45]
The rising popularity of single board computers has also had an influence on the development of PLCs. Traditional PLCs are generally closed platforms, but some newer PLCs (e.g. groov EPIC from Opto 22, ctrlX from Bosch Rexroth, PFC200 from Wago, PLCnext from Phoenix Contact, and Revolution Pi from Kunbus) provide the features of traditional PLCs on an open platform.
Programmable logic relays (PLR)
[edit]This section possibly contains original research. (March 2020) |
In more recent years,[when?] small products called programmable logic relays (PLRs) or smart relays, have become more common and accepted. These are similar to PLCs and are used in light industries where only a few points of I/O are needed, and low cost is desired. These small devices are typically made in a common physical size and shape by several manufacturers and branded by the makers of larger PLCs to fill their low-end product range. Most of these have 8 to 12 discrete inputs, 4 to 8 discrete outputs, and up to 2 analog inputs. Most such devices include a tiny postage stamp-sized LCD screen for viewing simplified ladder logic (only a very small portion of the program being visible at a given time) and status of I/O points, and typically these screens are accompanied by a 4-way rocker push-button plus four more separate push-buttons, similar to the key buttons on a VCR remote control, and used to navigate and edit the logic. Most have an RS-232 or RS-485 port for connecting to a PC so that programmers can use user-friendly software for programming instead of the small LCD and push-button set for this purpose. Unlike regular PLCs that are usually modular and greatly expandable, the PLRs are usually not modular or expandable, but their cost can be significantly lower than that a PLC, and they still offer robust design and deterministic execution of the logic.
A variant of PLCs, used in remote locations is the remote terminal unit or RTU. An RTU is typically a low power, ruggedized PLC whose key function is to manage the communications links between the site and the central control system (typically SCADA) or in some modern systems, "The Cloud". Unlike factory automation using wired communication protocols such as Ethernet, communications links to remote sites are often radio-based and are less reliable. To account for the reduced reliability, RTU will buffer messages or switch to alternate communications paths. When buffering messages, the RTU will timestamp each message so that a full history of site events can be reconstructed. RTUs, being PLCs, have a wide range of I/O and are fully programmable, typically with languages from the IEC 61131-3 standard that is common to many PLCs, RTUs and DCSs. In remote locations, it is common to use an RTU as a gateway for a PLC, where the PLC is performing all site control and the RTU is managing communications, time-stamping events and monitoring ancillary equipment. On sites with only a handful of I/O, the RTU may also be the site PLC and will perform both communications and control functions.
See also
[edit]Notes
[edit]- ^ Some models of PLC limit the number of series and parallel instructions in one "rung" of logic. Some PLCs enforce a strict left-to-right, top-to-bottom execution order for evaluating the rung logic. This is different from electro-mechanical relay contacts, which, in a sufficiently complex circuit, may either pass current left-to-right or right-to-left, depending on the configuration of surrounding contacts. The elimination of these sneak paths is either a bug or a feature, depending on the programming style.
References
[edit]- ^ Tubbs, Stephen Phillip. Programmable Logic Controller (PLC) Tutorial, Siemens Simatic S7-1200. Publicis MCD Werbeagentur GmbH; 3rd ed., 2018.
- ^ Parr 1998, p. 438
- ^ Wayand, Ben (20 March 2020). "What Is a PLC?". MROElectric.com. MRO Electric. Retrieved 11 May 2021.
- ^ "PLC Programming Basics Part I". Control Systems & Automation. 2019-07-23. Retrieved 2020-02-23.
- ^ Laughton & Warne 2002, p. 16/3: "The first industrial computer application was probably a system installed in an oil refinery in Port Arthur USA in 1959. The reliability and mean time between failure of computers meant that little actual control was performed."
- ^ Parr 1998, p. 437
- ^ Bolton 2015, p. 6
- ^ Parr 1998, pp. 438, 450–451
- ^ "The Rise of Virtual PLC and Soft PLC: Revolutionizing Industrial Automation". Retrieved 2025-10-07.
- ^ a b Laughton & Warne 2002, chpt. 16
- ^ a b Dunn, Alison (2009-06-12). "The Father of Invention: Dick Morley Looks Back on the 40th Anniversary of the PLC". Manufacturing Automation. Retrieved 2020-02-23.
- ^ Group, Career Communications (1993). US Black Engineer & IT. Career Communications Group. Retrieved 2025-06-09.
{{cite book}}:|last=has generic name (help) - ^ a b c d Strothman, Jim (2003-08-01). "Leaders of the pack". ISA. Archived from the original on 2017-08-08. Retrieved 2020-02-24.
- ^ "Mobus Networking Guide: Introduction". Libelium.com. Retrieved 27 October 2022.
- ^ Chakraborty, Kunal (2016). Industrial Applications of Programmable Logic Controllers and SCADA. Hamburg: Anchor Academic Publishing. ISBN 978-3960670247.
- ^ a b "A-B PLC Inventor, Dr. Odo Struger, Dies". Control Engineering. 1999-02-01. Archived from the original on 2020-02-24. Retrieved 2020-02-24.
- ^ Brier, Steven E. (1998-12-27). "O. Struger, 67, A Pioneer In Automation". The New York Times. Retrieved 2020-02-24.
Dr. Odo J. Struger, who invented the programmable logic controller, which makes possible modern factory automation, amusement park rides and lavish stage effects in Broadway productions, died on December 8 in Cleveland. He was 67.
- ^ Anzovin, p. 100, item # 2189. Programmable logic controller was invented by the Austrian-born American engineer Odo J. Struger in 1958–60 at the Allen-Bradley company in Milwaukee, WI, USA. A programmable logic controller, or PLC, is a simple electronic device that allows precise numerical control of machinery. It is widely used to control everything from washing machines to roller coaster to automated manufacturing equipment.
- ^ "A Short History of Automation Growth". Retrieved 2008-06-20.
- ^ Hackett, Nicholas (20 March 2025). "Migrating from PLC5 to ControlLogix". www.replacenc.com. Replace Industrial. Retrieved 8 August 2025.
- ^ "State Machine Programming in Ladder Logic". Retrieved 2024-08-18.
- ^ "Wrapping Your Head around Ladder Logic". DoSupply.com. 27 August 2018. Retrieved 19 October 2020.
- ^ Miller, Alex (2014-01-29). "What is a PLC? And where did they come from?". Technique Learning Solutions. Retrieved 2025-08-24.
- ^ Bolton 2015, p. 5
- ^ a b Bolton 2015, p. 7
- ^ a b Byres (May 2011). "PLC Security Risk: Controller Operating Systems - Tofino Industrial Security Solution". TofinoSecurity.com.
- ^ Bolton 2015, pp. 12–13
- ^ a b Bolton 2015, pp. 23–43
- ^ a b Bolton 2015, pp. 16–18
- ^ Keller, William L Jr. Grafcet, A Functional Chart for Sequential Processes, 14th Annual International Programmable Controllers Conference Proceedings, 1984, p. 71-96.
- ^ "Status IEC 61131-3 Standard". PLCopen. 2018-07-19. Retrieved 2020-04-01.
- ^ "Programmable logic controller for automation systems" (PDF). www.isisvarese.edu.it. Retrieved April 8, 2024.
- ^ "A mini view of PLC". www.researchgate.net. September 2020. Retrieved April 8, 2024.
- ^ a b c Bolton 2015, pp. 19–20
- ^ Lin, Sally; Huang, Xiong (9 August 2011). Advances in Computer Science, Environment, Ecoinformatics, and Education, Part III: International Conference, CSEE 2011, Wuhan, China, August 21-22, 2011. Proceedings. Springer Science & Business Media. p. 15. ISBN 9783642233449 – via Google Books.
- ^ Harms, Toni M. & Kinner, Russell H. P.E., Enhancing PLC Performance with Vision Systems. 18th Annual ESD/HMI International Programmable Controllers Conference Proceedings, 1989, p. 387-399.
- ^ a b Parr 1998, p. 446
- ^ Maher, Michael J. Real-Time Control and Communications. 18th Annual ESD/SMI International Programmable Controllers Conference Proceedings, 1989, p. 431-436.
- ^ Kinner, Russell H., P.E. Designing Programmable Controller Application Programs Using More than One Designer. 14th Annual International Programmable Controllers Conference Proceedings, 1985, p. 97-110.
- ^ Laughton & Warne 2002, section 16.4.8
- ^ Parr 1998, p. 451
- ^ Bolton 2015, p. 15
- ^ Goodin, Dan (2021-02-26). "Hard-coded key vulnerability in Logix PLCs has severity score of 10 out of 10". Ars Technica. Retrieved 2021-03-07.
- ^ Li, Tom (2021-03-01). "Max level vulnerability found in Logix PLCs | IT World Canada News". ITWorldCanada.com. Retrieved 2021-03-07.
- ^ a b McMillan, Gregory K. (1999). "Section 3: Controllers". In Considine, Douglas M. (ed.). Process/Industrial Instruments and Controls Handbook (Fifth ed.). McGraw-Hill. ISBN 0-07-012582-1.
Bibliography
[edit]- Bolton, William (2015). Programmable Logic Controllers (6th, revised ed.). Newnes. ISBN 9780081003534 – via Google Books.
- Parr, E. A. (1998). "Computers and industrial control". Industrial Control Handbook. Industrial Press Inc. ISBN 0-8311-3085-7 – via Google Books.
- Laughton, M. A.; Warne, D. F. (2002). Electrical Engineer's Reference Book (16th ed.). Newnes. ISBN 9780750646376 – via Google Books.
Further reading
[edit]- Daniel Kandray, Programmable Automation Technologies, Industrial Press, 2010 ISBN 978-0-8311-3346-7, Chapter 8 Introduction to Programmable Logic Controllers
- Walker, Mark John (2012-09-08). The Programmable Logic Controller: its prehistory, emergence and application (PDF) (PhD thesis). Department of Communication and Systems Faculty of Mathematics, Computing and Technology: The Open University. Archived (PDF) from the original on 2018-06-20. Retrieved 2018-06-20.
Programmable logic controller
View on GrokipediaHistory and Development
Invention in the late 1960s
In the late 1960s, industrial automation in the automotive sector faced significant challenges due to reliance on hardwired relay-based control systems. At General Motors' Hydra-Matic transmission plant in Detroit, production line changes for new vehicle models necessitated extensive rewiring of relay panels, often involving thousands of relays and miles of wiring, which resulted in substantial downtime, high labor costs, and frequent maintenance issues from tangled "rats' nests" of cables.[5][6] To address this, GM issued a request for proposals in 1968 for a "standard machine controller" that could be easily reprogrammed without physical modifications, aiming to reduce setup times from weeks to hours.[5] The programmable logic controller (PLC) emerged as a direct response to these needs, with the concept first proposed by engineer Richard "Dick" Morley on January 1, 1968, while working at Bedford Associates in Bedford, Massachusetts. Commissioned by General Motors, Morley's design envisioned a solid-state, digital device to replace relay logic entirely, using software for logic implementation rather than mechanical switches or wiring changes. This innovation shifted control from electromechanical hardware to electronic programming, emphasizing ruggedness for factory environments, direct memory mapping for inputs and outputs, and a scan-based execution cycle to mimic relay timing.[5][7] Bedford Associates incorporated as Modicon (from "modular digital controller") later that year to commercialize the technology.[6] The initial prototype, designated the Modicon 084, was developed and demonstrated in 1969, marking the first functional PLC. Built by Morley's team—including Mike Greenberg, Jonas Landau, and Tom Boissevain—this unit focused exclusively on digital input/output handling for boolean logic operations, deliberately excluding analog processing to keep costs low and align with relay replacement needs. It featured a custom, hardened enclosure with no fans or external air intake to prevent contamination, and was tested on machinery like gear grinders before delivery to GM's Hydra-Matic plant in November 1969, where it successfully controlled a press line.[5][6] Key milestones included the filing of U.S. Patent 3,761,893 by Morley on July 2, 1970, which described a digital computer architecture adaptable for industrial control, emphasizing addressed memory for I/O and expandable systems without dedicated hardware registers. Granted on September 25, 1973, this patent underscored the core principle of reprogrammability through software, predating other similar filings and laying the foundation for PLC scalability. The invention's impact was immediate, with GM ordering units worth $1 million, validating the shift from hardware-centric to software-driven automation.[5]Key early manufacturers and models
The pioneering commercial introduction of the programmable logic controller (PLC) occurred with the Modicon 084 in 1971, developed by engineer Dick Morley's team at Modicon Inc. in response to General Motors' call for a solid-state replacement for relay-based systems. This model featured a modular design allowing for expandable input/output (I/O) configurations, initially supporting up to 64 discrete I/O points, and utilized memory-based programming that emulated ladder logic diagrams stored in core memory. Its rugged construction, including conductive cooling and no power switch to prevent accidental shutdowns, made it suitable for harsh industrial environments, marking the first widespread commercial PLC deployment at facilities like Bryant Chuck and Grinder.[8][9] Concurrent with Modicon's efforts, Allen-Bradley released its first PLC, the Bulletin 1774, in 1974, engineered by Odo Struger and Ernst Dummermuth.[10] This stand-alone controller emphasized reliability for factory floor applications through direct emulation of relay ladder logic, enabling easier transition from electromechanical systems without requiring extensive retraining for maintenance personnel. The Bulletin 1774's parallel processing architecture and integration with existing I/O chassis further solidified its role as a durable alternative to custom wiring panels.[9][10] In Europe, Siemens contributed to early global adoption with the launch of the Simatic S3 in 1973, the first PLC to incorporate microprocessor technology and integrated circuits for programmable logic control. This innovation allowed for more compact and flexible systems compared to earlier hard-wired controllers, accelerating PLC penetration beyond North America. Meanwhile, Modicon's evolution included its acquisition by Schneider Electric in 1997, following Schneider's 1988 purchase of Telemecanique, which integrated complementary automation technologies and expanded the reach of early PLC designs.[11][12] These early models catalyzed a fundamental shift in industrial automation, replacing cumbersome custom relay panels with standardized, reprogrammable controllers that substantially reduced wiring complexity and installation time—often by up to 50%—particularly in automotive assembly lines where frequent modifications were common. This transition not only lowered costs but also improved system reliability and scalability, laying the foundation for broader adoption across manufacturing sectors.[9][13]Evolution of programming methods and standards
In the 1970s, programmable logic controller (PLC) programming was characterized by proprietary mnemonic codes that mimicked relay ladder logic operations, such as AND, OR, and NOT functions, entered directly into the device using hand-held programmers or dedicated terminals. These early methods were vendor-specific, limiting portability and requiring physical access to the PLC for modifications, as the systems emulated hardwired relay panels to control industrial processes. Hand-held programmers, often battery-powered units with keypads and small displays, allowed technicians to input sequences step-by-step, but they supported only basic logic without advanced debugging or simulation capabilities.[14] The 1980s brought significant advancements with the integration of personal computers (PCs) for PLC programming, replacing cumbersome hand-held devices with more flexible software interfaces. PC-based tools enabled offline program development and downloading via serial connections, while graphical ladder logic editors emerged, allowing users to visually construct rung-based diagrams resembling electrical schematics on screen. Precursors to structured text programming also appeared, introducing text-based commands for more efficient handling of repetitive or arithmetic operations, though these remained largely proprietary across manufacturers like Allen-Bradley and Modicon. This shift improved productivity by facilitating easier editing, testing, and documentation of control logic.[15][14][16] A major milestone occurred in 1993 with the publication of the IEC 61131-3 standard by the International Electrotechnical Commission (IEC), which established a unified framework for PLC programming languages to promote interoperability and reduce vendor lock-in. This standard defined five languages—ladder diagram (LD) for graphical relay-style logic, function block diagram (FBD) for modular interconnections, structured text (ST) for high-level algorithmic coding, instruction list (IL) for low-level assembly-like instructions, and sequential function chart (SFC) for state-machine representations—allowing programs to be portable across compliant PLCs from different vendors. Updated in its third edition in 2013 and fourth edition in 2025, IEC 61131-3 incorporated enhancements for better data typing, function blocks, and library management, further standardizing syntax and semantics to support complex automation systems.[17][18] From the 2000s onward, PLC programming evolved toward greater interoperability through initiatives like PLCopen, an organization that developed XML-based data exchange formats in 2005 to enable seamless transfer of programs, configurations, and documentation between development tools and vendors.[19] This XML schema, aligned with IEC 61131-3, facilitated version control, simulation integration, and multi-vendor collaboration without proprietary formats. Concurrently, the adoption of OPC UA (Unified Architecture), standardized by the OPC Foundation in collaboration with PLCopen starting in 2008—including the release of companion specifications in 2014—allowed secure, platform-independent communication between PLCs and higher-level systems, embedding IEC 61131-3 data models for real-time data access and control.[20] Additionally, there has been a shift toward high-level languages like structured text for implementing complex algorithms, such as PID control or data analytics, enabling PLCs to handle Industry 4.0 applications like edge computing while maintaining backward compatibility with legacy ladder logic.[21][22][23]System Overview and Principles
Definition and core purpose
A programmable logic controller (PLC) is a ruggedized digital computer specifically designed for real-time control of manufacturing processes, electromechanical equipment, and industrial machinery.[24] It operates by receiving inputs from sensors and devices, processing them according to a user-defined program, and outputting commands to actuators and machinery to execute control actions.[25] This architecture enables precise automation in environments where reliability is paramount, such as assembly lines and process plants.[26] The core purpose of a PLC is to automate sequential and interlocking control tasks through programmable logic, thereby replacing traditional hard-wired relay systems with flexible, software-based alternatives.[25] By emulating relay ladder logic in a digital format, PLCs allow for rapid reconfiguration of control sequences without the need for extensive physical rewiring, which was a significant limitation of electromechanical systems.[27] This shift, originating in the late 1960s, addressed the growing complexity of industrial automation by enabling dynamic adaptations to production changes.[15] Key characteristics of PLCs include deterministic execution via fixed scan times, ensuring predictable response intervals for time-critical operations.[28] They are engineered for tolerance to harsh industrial conditions, such as extreme temperatures, vibration, dust, and electrical noise, through robust enclosures and components.[26] Additionally, PLCs offer scalability, ranging from compact units handling a few I/O points to expansive distributed systems managing thousands of signals across large facilities.[29]Basic components and block diagram
A programmable logic controller (PLC) consists of several core components that enable it to monitor inputs, execute control logic, and manage outputs in industrial environments. The central processing unit (CPU) serves as the brain of the system, interpreting and executing the user-defined program to process input data and determine output states. Input modules interface with field devices such as sensors and switches, converting real-world signals (e.g., digital on/off states or analog values) into formats the CPU can process. Output modules, conversely, translate CPU commands into signals that drive actuators, relays, motors, or other control elements. A dedicated power supply provides stable DC voltage, typically 24 VDC, to all components, ensuring reliable operation in harsh conditions. Memory in a PLC is categorized by function to support program storage and data handling. Random access memory (RAM) holds runtime data, including temporary variables and input/output status during program execution, but it is volatile and requires battery backup to retain information during power loss. Read-only memory (ROM) or electrically erasable programmable read-only memory (EEPROM) stores the firmware, operating system, and fixed program instructions, offering non-volatile persistence. Retentive memory, often a subset of RAM or EEPROM, preserves critical data like setpoints and counters across power cycles for continuous process monitoring. The block diagram of a typical PLC illustrates a sequential scan cycle: field inputs from sensors flow through input modules to the CPU, which processes the logic program stored in memory and updates output states accordingly before sending signals via output modules to actuators. Communication buses, such as a backplane or serial links, interconnect these modules, enabling data exchange; the system supports I/O counts ranging from as few as 8 points in compact units to over 65,000 in expansive configurations. This architecture ensures deterministic execution, with the CPU scanning the program in milliseconds. PLC systems integrate components in rack-mounted or distributed configurations to suit varying scales. In rack-mounted setups, modules plug into a chassis with a shared backplane for high-speed communication and power distribution, ideal for centralized control in factories. Distributed systems, by contrast, deploy remote I/O modules connected via networks, reducing wiring in large facilities while maintaining modular expansion.Hardware Architecture
Processor, memory, and power supply
The processor in a programmable logic controller (PLC) serves as the central computational unit, typically implemented as a microprocessor-based CPU using 32-bit or 64-bit architectures such as ARM or Intel Atom processors to ensure reliable real-time operation in industrial environments.[30] For instance, the Siemens SIMATIC S7-1500 CPU 1513-1 PN employs a high-performance processor capable of executing bit operations in as little as 40 nanoseconds and word operations in 48 nanoseconds, enabling efficient handling of complex control tasks.[31] These CPUs manage the PLC's core scan cycle, which typically operates at intervals of 1 to 100 milliseconds, encompassing input reading, program execution, and output updating to maintain deterministic control. Integrated watchdog timers further enhance reliability by monitoring scan cycle duration; if the cycle exceeds a predefined threshold—such as 100 milliseconds for a nominal 20-millisecond scan—the timer triggers a fault detection response, halting operations to prevent unsafe conditions.[32] PLC memory is organized in a hierarchy to support both volatile and non-volatile storage needs, with program memory dedicated to user logic (up to several megabytes in modern units) and data memory for runtime variables, tags, and process states. In the S7-1500 CPU 1513-1 PN, for example, work memory allocates 300 kilobytes for programs and 1.5 megabytes for data, while load memory uses flash-based SIMATIC Memory Cards expandable to 32 gigabytes for non-volatile program retention and backups.[31] Similarly, Rockwell Automation's ControlLogix 5580 controllers provide integrated memory from 3 megabytes to 40 megabytes for combined program and data storage, facilitating scalability for applications ranging from simple sequences to advanced motion control.[33] This structure aligns with the scan cycle process: during each iteration, inputs are scanned into data memory, the program executes using both memory types, and outputs are updated based on results, ensuring consistent state management without data loss in power interruptions when backed by flash.[34] The power supply in PLCs is designed for robust, isolated operation to withstand industrial electrical noise, commonly providing 24 V DC output with galvanic isolation between input and output circuits for safety and signal integrity.[35] Devices like the Phoenix Contact QUINT-PS/1AC/24DC/10 deliver 24 V DC at 10 A, incorporating selective fuse-breaking technology for surge protection against transients up to industrial standards.[36] Redundancy features, such as integration with uninterruptible power supplies (UPS), enable seamless failover in critical systems, while built-in surge suppression handles voltage spikes from switching or lightning, often complying with IEC 61000-4-5 for electromagnetic compatibility.[37] Efficiency is optimized for energy compliance, with many units achieving over 90% efficiency and idle power consumption below 10 W to minimize heat and operational costs in continuous-duty environments.[36] High-end PLC processors support advanced performance metrics, including clock speeds reaching up to 1 GHz in select models for multitasking capabilities, often running real-time operating systems like VxWorks or the CODESYS runtime environment.[38] VxWorks, for example, powers embedded real-time PLC designs by providing deterministic scheduling for scan cycles and fault-tolerant execution.[38] The CODESYS runtime further enables IEC 61131-3 compliant multitasking on diverse hardware, distributing tasks across cores for improved throughput in networked automation systems.[39]Input/output modules and signal handling
Input/output (I/O) modules serve as the interface between a programmable logic controller (PLC) and the physical processes it controls, converting field signals into digital data for processing and vice versa. These modules handle both discrete and analog signals, enabling PLCs to monitor sensors and actuate devices in industrial environments. As part of the modular hardware architecture, I/O modules are typically pluggable cards that expand the PLC's capability to connect with diverse field devices, supporting configurations from a few points in compact systems to hundreds in larger setups.[40] Discrete I/O modules process binary signals, representing on/off states for digital control. Input modules accept signals from devices such as proximity sensors, limit switches, and pushbuttons, commonly using 24 V DC or 120 V AC voltages. These modules employ optocouplers for electrical isolation, with typical channel counts of 8 to 32 points per module. Output modules drive actuators like solenoids, indicator lights, and relays, also supporting 24 V DC (sinking or sourcing) or 120 V AC configurations to match field device requirements. Sinking outputs (NPN) provide a path to ground, drawing current into the module, while sourcing outputs (PNP) supply positive voltage, pushing current out—configurations must align with connected devices to ensure proper operation.[40][41][42] Analog I/O modules manage continuous signals for variables like temperature, pressure, and flow, using standardized ranges such as 4-20 mA current loops or 0-10 V voltage signals to minimize noise and enable long-distance transmission. Input modules incorporate analog-to-digital (A/D) converters to digitize these signals, typically offering 12- to 16-bit resolution for precision equivalent to 0.1% accuracy across industrial temperature ranges. Output modules use digital-to-analog (D/A) converters to generate proportional control signals for devices like variable-speed drives or proportional valves, with similar resolution and range support. Channel densities vary, but modules often handle 2 to 8 channels, scalable through multiplexing in higher-density designs.[43][44] Signal conditioning in I/O modules ensures reliable data integrity amid industrial noise and transients. For discrete signals, optocouplers provide basic isolation, while analog modules feature galvanic isolation up to 1500 V to prevent ground loops and protect the PLC from high-voltage surges. Noise rejection is achieved through differential inputs, low-pass filters, and notch filters targeting 50/60 Hz interference, with configurable digital filtering times from 0 to 10 seconds per channel. High-density modules employ multiplexing to share A/D or D/A resources across 16 to 64 channels, optimizing space without sacrificing performance.[45][43][44] Expansion of I/O capacity is facilitated through remote modules connected via fieldbus systems like Profibus, allowing distributed architectures that support thousands of I/O points across a facility. These remote setups reduce wiring complexity and enable scalability, with individual modules maintaining the same discrete and analog handling capabilities as local ones.[46]Mechanical design and redundancy features
Programmable logic controllers (PLCs) are engineered with robust mechanical designs to withstand harsh industrial environments, including dust, moisture, temperature extremes, and mechanical stresses. Enclosures for PLC systems often achieve IP65 ratings, providing protection against dust ingress and low-pressure water jets from any direction, while DIN-rail mounting facilitates easy installation and modularity within control panels.[47][48] Operating temperature ranges typically span from -20°C to 60°C for many standard PLC units, ensuring reliable performance in varied ambient conditions without additional cooling in moderate setups. IEC 61131-2 outlines environmental requirements, including sinusoidal vibration tolerance of up to 1g acceleration over 10-150 Hz for main processing units and 2g for remote I/O stations during operation. Cooling and ventilation strategies in PLC designs prioritize reliability and minimal maintenance. Compact PLC models often employ fanless, passive cooling to reduce points of failure and noise in space-constrained applications, relying on natural convection and heat sinks. In contrast, larger rack-mounted systems may incorporate forced-air cooling with fans to manage higher thermal loads from multiple modules, though designs aim to minimize dust accumulation through filtered intakes. Vibration and shock resistance further enhances durability, with IEC 61131-2 specifying tolerance for operational shocks up to 15g in some configurations, allowing PLCs to operate in vibrating machinery environments. Redundancy features in PLCs ensure continuous operation in mission-critical settings by mitigating single points of failure. Hot-swappable modules allow I/O components to be replaced without system shutdown, maintaining process continuity during maintenance. Dual CPU configurations provide fault-tolerant processing, with bumpless transfer enabling switchover in typically 50 ms to several hundred milliseconds, depending on the system and configuration, to minimize disruptions in control logic execution.[49][50] Mirrored power supplies decouple redundant inputs to prevent faults from propagating, often using diode-based isolation for seamless failover. These features are essential in high-stakes applications such as oil refineries, where downtime can lead to significant safety and economic risks. PLCs are available in modular and compact form factors to suit diverse scalability needs. Modular designs use scalable rack systems, often adhering to 19-inch standards for integration into industrial cabinets, allowing expansion with additional CPU, I/O, and communication modules as system requirements grow.[51] Compact, all-in-one units integrate the CPU, power supply, and limited I/O in a single enclosure, ideal for small machines or standalone controls where simplicity and low cost outweigh the need for extensive customization. This distinction enables engineers to select architectures that balance flexibility, maintenance ease, and initial investment based on application demands.[52]Programming PLCs
Standard programming languages
The International Electrotechnical Commission (IEC) standard 61131-3 (edition 4.0, 2025) defines a suite of programming languages for programmable logic controllers (PLCs) to ensure portability, interoperability, and consistency in industrial automation software development.[18] This standard specifies four languages: three graphical (Ladder Diagram, Function Block Diagram, and Sequential Function Chart) and one textual (Structured Text). Instruction List (IL), a low-level textual language from previous editions, was removed in the 2025 edition but remains supported by many vendors for legacy applications.[53] These languages support the creation of modular programs using function blocks, programs, and organizations, facilitating structured and reusable code.[17] Ladder Diagram (LD) is a graphical language that mimics traditional relay ladder logic, using horizontal rungs to represent control circuits with vertical power rails.[54] It employs symbols like normally open contacts (--| |--), normally closed contacts (--|/|--), and coils (--( )--) to denote inputs, outputs, and boolean operations, making it intuitive for electricians transitioning to PLC programming.[17] For instance, an AND operation between inputs A and B to energize output C is depicted as: --|A|--|B|--(C)
--|A|--|B|--(C)
IF temp > 100 THEN
heater := FALSE;
END_IF;
IF temp > 100 THEN
heater := FALSE;
END_IF;