Programmable logic controller (PLC) was born as a device, capable of collecting and processing data from the sensor and equipment on the factory floor and then providing output to the equipment, valves, motors, etc., connected to it.
PLCs are based on a computer, or transistor logic. This was implemented with the spread of the digital computers. At that time, it was still a device to be handled with care and requiring special programming.
As the time went on, PLCs became easier to program, became highly resistant to industrial environments and harsh conditions (imagine the Siberian winters, offshore platforms in the Nordic seas, or burning sun and constant heat of the deserts, rich with oil deposits). What is even more critical for operation of the PLC is its ability to withstand significant electromagnetic noise, that is typical for industrial locations.
Some PLCs were created to provide continuous operation of the process under their control via the means of implementation of redundant operation. The simplest approach to it is reached by having two CPU modules, with one running and another staying to be put on into operation. It takes time to boot, so more often the second CPU stays in hot-standby, synchronizing with the active CPU and providing a smooth transition. Developing ways to provide fast transition to the standby CPU is the challenge of the PLC engineers, developing tree of possible conditions and decisions to take and ensuring faster switchover.
More advanced approaches to the redundancy is adding implementation of redundant power supplies, redundant I/O racks, connection between the racks.
One of the major features of the PLCs is operation in real-time. Unlike a general use PC, PLC has to be constantly on and keeping track on the process under its control. If it is off for dozens of milliseconds, process can already go differently, or the system would skip a critical input from a sensor. Due to this focus, PLCs put more focus onto reliability than on the performance. Only recently, some manufacturers started to combine the capabilities and enhancing the functionality of PLCs.
Programmable logic controllers could be divided into several groups:
- MicroPLC. Often used in processes having limited number of input/output (I/O) channels – up to 20-30. This could be control of a motor, several valves, a simple air conditioning system, one machine. This is oftentimes just a single block with CPU, power supply, set of I/Os. Redundancy is not expected in these applications, and system is non-expandable.
- Compact PLC. At this level starts modularity – more I/O modules could be added to the system to cover larger number of signals. Cycle time is often in the range of 100-200 ms, that is on par with speed of the processes under its control. Redundancy could be at the software level, or, in some case, quite rarely, implemented at the hardware level. The most typical redundant system of this type has two CPU racks and one or several I/O racks, to keep the costs lower.
- High-end PLC for factory automation. Controllers for controlling discrete processes, such as movements of robots, various drives. Oftentimes, redundancy in these controllers is provided at a general level.
- High-end PLC for continuous production. These controllers have deeper implementation of redundant operation, provide fast switchover between the CPUs, hot-standby redundancy is often a must, hot-swappable modules are another must. Number of channels can go up to 100 – 150 thousand. System can have a complex connection scheme, with subnetworks of I/Os, mirroring of extension racks, redundancy at the level of I/Os, redundancy of communication to SCADA.
- Safety PLC. When there is a risk of endangering a person’s life, for example, in petrochemical industry, in control of motors, compressors, turbines, are commonly used PLCs that operate with compliance to SIL (safety integrity level). There are four of them, varying on the probability of controller’s fault. The higher the number of the level, the lower the probability.
Implementation of the safety protocols and designing hardware is one of the most challenging engineering in the PLC field and less than a dozen companies in the world were able to develop safety PLCs for continuous production.
The first PLCs were programmed with a set of relays that defined the operation and responses to the input signals. The relay logic became the prototype for the ladder logic diagram language. It is quite commonly used in the United States for programming and is one of the base languages that PLCs support. Over the years, some manufacturers developed their own languages, some united in their efforts and agreed to a common standard – IEC 61131-3, that includes five programming languages:
- LD, ladder diagram, or ladder logic.
- FBD, function block diagram. It is often used by the system integrators, supported with the libraries of the typical equipment and processing and allowing for fast creation of the application.
- ST, structured text. This is C-like language, allowing developers implementation of complex mathematical algorithms.
- IL, instruction list. It is an assembly-like language, providing extreme speed of execution and requiring minimum amount of memory.
- SFC, sequential function chart. It allows highly visual representation of parallel and multi-step processes, allowing developer a direct overview on the flow of the process.