Programmable logic controller

A programmable logic controller (PLC) or programmable controller is an industrial digital computer that has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, robotic devices, or any activity that requires high reliability, ease of programming, and process fault diagnosis.

Table of Contents

programmable logic controller (PLC) or programmable controller is an industrial digital computer that has been ruggedized and adapted for the control of manufacturing processes, such as assembly linesrobotic 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.

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. Programs to control machine operation are typically stored in battery-backed-up or non-volatile memory.

PLCs were first developed in the automobile manufacturing industry to provide flexible, rugged and easily programmable controllers to replace hard-wired relay logic systems. Since then, they have been widely adopted as high-reliability automation controllers suitable for harsh environments.

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 will result.

Contents

Invention and early development[edit]

PLC originated in the late 1960s in the automotive industry in the US and were designed to replace relay logic systems.[1] Before, control logic for manufacturing was mainly composed of relayscam timersdrum sequencers, and dedicated closed-loop controllers.[citation needed]

The hard-wired nature made it difficult for design engineers to alter the process. Changes would require rewiring and careful updating of the documentation. If even one wire were out of place, or one relay failed, the whole system would become faulty. Often technicians would spend hours troubleshooting by examining the schematics and comparing them to existing wiring.[2] When general-purpose computers became available, they were soon applied to control logic in industrial processes. These early computers were unreliable[3] and required specialist programmers and strict control of working conditions, such as temperature, cleanliness, and power quality.[4]

The PLC provided several advantages over earlier automation systems. It tolerated the industrial environment better than computers and was more reliable, compact and required less maintenance than relay systems. It was easily extensible with additional I/O modules, while relay systems required complicated hardware changes in case of reconfiguration. This allowed for easier iteration over manufacturing process design. With simple programming language focused on logic and switching operations, it was more user-friendly than computers using general-purpose programming languages. It also permitted for its operation to be monitored.[5][6] Early PLCs were programmed in ladder logic, which strongly resembled a schematic diagram of relay logic. This program notation was chosen to reduce training demands for the existing technicians. Other PLCs used a form of instruction list programming, based on a stack-based logic solver.[7]

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 was the first PLC—built in 1969–designated the 084, because it was Bedford Associates’ eighty-fourth project.[8][9]

Bedford Associates started a company 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.[10] The Modicon brand was sold in 1977 to Gould Electronics and later to Schneider Electric, the current owner.[9]

One of the first 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 until the 984 made its appearance.[citation needed]

Allen-Bradley[edit]

In a parallel development Odo Josef Struger is sometimes known as the “father of the programmable logic controller” as well.[10] He was involved in the invention of the Allen‑Bradley programmable logic controller during 1958 to 1960[11][12][13] and is credited with inventing the PLC acronym.[10][11] Allen-Bradley (now a brand owned by Rockwell Automation) became a major PLC manufacturer in the United States during his tenure.[14] Struger played a leadership role in developing IEC 61131-3 PLC programming language standards.[10]

Early methods of programming[edit]

Many early PLCs 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, it became more common for ladder logic to be used, because it was a familiar format used for electro-mechanical control panels. Newer formats, such as state logic and Function Block (which is similar to the way logic is depicted when using digital integrated logic circuits) exist, but they are still[when?] not as popular as ladder logic. A primary reason for this is that 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.[15]

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.[8] 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 non-volatile magnetic core memory.

Architecture[edit]

A PLC is an industrial microprocessor-based controller with programmable memory used to store program instructions and various functions.[16] 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/to external devices,
  • a communications interface to receive and transmit data on communication networks from/to remote PLCs.[17]

PLCs require programming device which is used to develop and later download the created program into the memory of the controller.[17]

Modern PLCs generally contain a real-time operating system, such as OS-9 or VxWorks.[18]

Mechanical design[edit]

Compact PLC with 8 inputs and 4 outputs.

Modular PLC with EtherNet/IP module, digital and analog I/O, with some slots being empty.

Modular PLC with EtherNet/IP module, discrete and analog I/O, with some slots being empty.

There are two types of mechanical design for PLC systems. A single box, or 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. 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.[19] 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. Options are also available to mount I/O points directly to the machine and utilize quick disconnecting cables to sensors and valves, saving time for wiring and replacing components.[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 switchesphotoelectric sensors and encoders.[20] Discrete signals are sent using either voltage or current, where specific extreme ranges are designated as on and off. For example, a controller might use 24 V DC input with values above 22 V DC representing on, values below 2 V DC representing off, and intermediate values undefined.[citation needed]

Analog signals can use voltage or current that is proportional to the size of 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.[20] 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 transpose it into the desired units of the process so the operator or program can read it. Proper integration will also include filter times to reduce noise as well as high and low limits to report faults.[21] Current inputs are less sensitive to electrical noise (e.g. from welders or electric motor starts) than voltage inputs. Distance from the device and the controller is also a concern as the maximum traveling distance of a good quality 0-10 V signal is very short compared to the 4-20 mA signal.[citation needed] The 4-20 mA signal can also report if the wire is disconnected along the path as a <4 mA signal would indicate an error.

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 and capable of handling the process with faulty modules. 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 hardware configuration for preventing 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 both PLCs turn on an output before the press can come down in case one output does not turn off properly.

Programming[edit]

Example of a ladder diagram logic.

Programmable logic controllers are intended to be used by engineers without a programming background. For this reason, a graphical programming language called Ladder Diagram (LD, LAD) 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, it is still widely used, thanks to its simplicity.[22]

As of 2015, the majority of PLC systems adhere to the IEC 61131-3 standard that defines 2 textual programming languages: Structured Text (ST; similar to Pascal) and Instruction List (IL); as well as 3 graphical languages: Ladder DiagramFunction Block Diagram (FBD) and Sequential Function Chart (SFC).[22][23] Instruction List (IL) was deprecated in the third edition of the standard.[24]

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.[citation needed]

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.[citation needed]

Programming device[edit]

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 programming device.[25] Then, the program is downloaded to the PLC directly or over a network. It is stored either in non-volatile flash memory or battery-backed-up RAM. In some programmable controllers, the program is transferred from a personal computer to the PLC through a programming board that writes the program into a removable chip, such as EPROM.

Manufacturers develop programming software for their controllers. 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.[25]

A program written on a personal computer or uploaded from PLC using programming software can be easily copied and backed up on external storage.[citation needed]

Simulation[edit]

PLC simulation is a feature often found in PLC programming software. It allows for testing and debugging early in project’s development.

Incorrectly programmed PLC can result in lost productivity and dangerous conditions. Testing the project in simulation improves its quality, increases the level of safety associated with equipment and can save costly downtime during installation and commissioning of automated control applications since many scenarios can be tried and tested before the system is activated.[25][26]

Functionality[edit]

PLC system in a rack, left-to-right: power supply unit (PSU), CPU, interface module (IM) and communication processor (CP).

Control panel with PLC (grey elements in the center). The unit consists of separate elements, from left to right; power supply, controller, relay units for in- and output

The main difference from most other computing devices is that PLCs are intended-for and therefore tolerant-of more severe 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.[27] PLC output can include elements such as indicator lamps, sirens, electric motorspneumatic or hydraulic cylinders, magnetic relayssolenoids, 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 controldistributed 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. Desktop computer controllers have not been generally accepted in heavy industry because the 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 the processors used in PLCs. Operating systems such as Windows do not lend themselves to deterministic logic execution, with the result that the controller may not always respond to changes of input status with the consistency in timing expected from PLCs. Desktop logic applications find use in less critical situations, such as laboratory automation and use in small facilities where the application is less demanding and critical.[citation needed]

Basic functions[edit]

The most basic function of a programmable controller is to emulate the functions of electromechanical relays. 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. Some models of PLC limit the number of series and parallel instructions in one “rung” of logic. The output of each rung sets or clears a storage bit, which may be associated with a physical output address 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. Unlike physical relays, there is usually no limit to the number of times an input, output or internal coil can be referenced in a PLC program.

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 programming style.

More advanced instructions of the PLC may be implemented as functional blocks, which carry out some operation when enabled by a logical input and which produce outputs to signal, for example, completion or errors, while manipulating variables internally that may not correspond to discrete logic.

Communication[edit]

PLCs use built-in ports, such as USBEthernetRS-232RS-485, or RS-422 to communicate with external devices (sensors, actuators) and systems (programming software, SCADAHMI). Communication is carried over various industrial network protocols, like Modbus, or EtherNet/IP. Many of these protocols are vendor specific.

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 co-ordinate over the communication link. These communication links are also often used for HMI devices such as keypads or PC-type workstations.

Formerly, some manufacturers offered dedicated communication modules as an add-on function where the processor had no network connection built-in.

User interface[edit]

See also: User interface and List of human-computer interaction topics

Control panel with a PLC user interface for thermal oxidizer regulation.

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.

Modbus TCP Gateway

Modbus Gateway: An In-depth Exploration

In the world of automation and control systems, you may have encountered the term “Modbus Gateway.” But what exactly does this term mean? How does it function, and why is it vital in our technology-driven world? This article is your comprehensive guide to understanding Modbus Gateway.

Read More »
Modbus TCP Gateway

Decoding Modbus Error Codes

Modbus, an established communication protocol used extensively in industrial control systems, has withstood the test of time due to its simplicity and ease of deployment. But, as with any technical protocol, understanding error codes is essential to ensure smooth operation.

Read More »
Modbus TCP Gateway

Efficient Modbus Communication for Industrial Automation

Modbus communication is not a new term in the industrial automation field. Established in 1979 by Modicon, it has become a de facto standard communication protocol, especially in the realm of industrial automation. How has it managed to stay relevant over all these decades, you ask? Well, its simplicity, reliability, and open-source nature have played significant roles in its longevity.

Read More »
Modbus TCP Gateway

Exploring the Modbus TCP/IP Protocol

Modbus is a communication protocol developed by Modicon systems. Primarily used with Industrial devices, it’s designed to allow these devices to communicate over various types of media, including both wired and wireless networks.

Read More »
Scroll to Top