A programmable logic controller (PLC) is an electronic device used in many industries to monitor and control building systems and production processes. Unlike PCs and smartphones, which are designed to perform any number of roles, a PLC is designed to perform a single set of tasks, except under real-time constraints and with superior reliability and performance.
To meet the demands of harsh industrial environments, PLCs are designed to be extremely robust, often capable of withstanding extreme temperatures, humidity, vibration, and electrical noise. Logic controllers are commonly tasked with monitoring and controlling a very large number of sensors and actuators, and are therefore distinct from other computer systems in their extensive input/output (I/O) arrangements.
Traditionally, PLCs were programmed with a simple type of language called “ladder logic” because they were originally designed to replace relay logic systems. Today, a number of different programming languages are used, but each PLC supplier has their own programming specifications based on the IEC 61131-3 standard.
Although they have roughly the same sort of components found in many other computer systems, PLCs operate quite differently. A PLC operating cycle, or scan, consists of:
- Reading and storing the current value of each input
- Changing all physical outputs to match the output table values stored in data memory
- Sequentially executing the instructions in program memory, while storing any updated variables or outputs to data memory
The order in which these tasks are performed can vary from product to product and software to software, but each task is performed in sequence. This means that the inputs, outputs, and program instructions are, in a sense, isolated from each other. If one or more physical inputs change during the logic scan (task c, above), the input value table will not be changed until the next scan cycle, and so the program logic will not be invalidated. Similarly, the output channels will not be updated to match the output table until the program cycle is complete. These scans are made quite rapidly, often taking just microseconds to complete.
While most commonly used for industrial manufacturing processes, the unique strengths of PLCs can make them viable for many different applications. A building automation system (BAS) may use a PLC (instead of some other controller type) for a substantial boost in processing power and system response. A PLC used in building automation may have a variety of sensors as inputs, ranging from a simple limit switch to a mesh network of airflow sensors. Various types of I/O ports let building operations and maintenance personnel interface with the PLCs to monitor and adjust their behaviors from a central location, typically referred to as a Supervisory Control and Data Acquisition (SCADA) system.