I’m going to be talking a lot about Industrial Control Systems, and the components that are used to enable humans to control machinery in the physical world. The next few updates will cover the basics, such as Progammable Logic Controllers (PLCs), Programmable Automation Controllers (PACs), Distributed Control Systems (DCS), Supervisory Control & Data Aquisition Systems (SCADA), and Human Machine Interfaces (HMIs).
First up, what is a PLC?
A PLC or “Programmable Logic Controller”, is a specialised computer which has been ruggedized and adapted for the continuous monitoring and control of industrial processes, robotics, or any activity that requires high reliability, ease of programming, and fault diagnosis.
The device monitors inputs and outputs of automated processes or machines in real time, and makes logic-based decisions based on programmatically defined parameters. Output results are produced within a limited time, otherwise unintended operation can result, potentially causing downtime, environmental damage, equipment destruction, or life-threatening situations.
The biggest benefit in using a PLC is the ability to change and replicate the operation or process on the run while simultaneously collecting and communicating vital information to operators and users.
A brief history of the PLC
Odo Josef Struger coined the term PLC in the late 1950’s when his team at Allen Bradley invented the Programmable Logic Controller (PLC). In the 1960’s a new modular digital controller (Modicon) product was invented to replace hardwired relay systems for the automotive industry.
What's inside a PLC?
PLCs can range from small "building brick" devices with tens of inputs and outputs (I/O), in a housing integral with the processor, to large rack-mounted modular devices with a count of thousands of I/O, and which are often networked to other PLC and Supervisory Control & Data Aquisition (SCADA) systems.
PLCs components can be divided into four core areas:
1. The power supply and rack
2. The central processing unit (CPU)
4. Inputs and Outputs
The Power Supply and Rack
In a modular system, the rack, or backbone, is the component that holds everything together. These can be ordered in different sizes, dependant on system requirements. The backplane allows for modules to be plugged in, and when a power supply is added, will pass power on to other modules. It is also supplies a data link allowing the CPU to handshake with all compatible modules inserted.
Central Processing Unit (CPU)
The CPU contains an internal program that tells the PLC how to perform the following functions:
- Execute Control Instructions contained in the User's Programs. The program is stored in "nonvolatile" memory, meaning that the program will not be lost if power is removed.
- Communicate with other devices, which can include I/O Devices, Programming Devices, Networks, and even other PLCs.
- Perform Housekeeping activities such as Communications, Internal Diagnostics, etc.
Most PLCs will require some method of communicating with other devices, PLCs, SCADA or programming stations. Other than a built-in programming port on the CPU, optional Network Cards can be installed. These are typically the following:
- Modbus RTU
- Ethernet TCP/IP
- Modbus TCP/IP
Inputs and Outputs (I/O)
The I/O system provides the physical connection between equipment and the PLC. Opening the doors on an I/O card reveals a terminal strip where the devices connect.
There are many kinds of Input and Output cards, but the basics are:
- Digital Inputs
- Digital Outputs
- Analog Inputs
- Analog Outputs
How does a PLC work?
PLCs operate by continually scanning programs repeatedly.
When a PLC starts, it runs checks on the hardware and software for faults, also called a self-test. If there are no problems, then the PLC will start the scan cycle. The scan cycle consists of three steps: input scan, executing program(s), and output scan.
The scan time happens very quickly (in the range of 1/1000th of a second). The memory in the CPU stores the program while also holding the status of the I/O and providing a means to store values.