Programmable Logic Controllers (PLCs) in a nutshell

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)

3. Communications

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.

PLC Backplane

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.
Communications card/s



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/IP

- Ethernet TCP/IP

- Modbus TCP/IP

- Profinet


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.

PLC Scan Cycle

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.


Engineering Productivity is not just for Robots!

My 4 favourite daily software tools are ConfluenceTrello, 1Password, and DropBox. All are web-based software as a service (SaaS) productivity tools, and have very useful phone Apps.


With these 4 combined, I feel like I could engineer my way through an intergalactic war, like Voltron or some sort of Transformer, they just make it easy to do work and not worry about every little detail all the time.


1password is a no brainer for password management, with the desktop app installed on my PC, it's easy as typing "CTRL + \" to paste in or create a new password for a login form. I honestly have no idea what any given password is for most if not all websites and apps I use. New features are constantly being rolled out, and they have just recently partnered with to notify you of weak or used passwords.


DropBox is competing against the likes of Microsoft OneDrive and Google Drive, but I am sticking with DropBox on this one. I have tested many installations of OneDrive and Google Drive on my PCs and others where the apps just plain crash on initial upload of data to their cloud servers. DropBox just works with syncing and uploading of small or huge data sets.


I use Atlassian's Trello for task management embedded into Confluence used as a Wiki, with DropBox syncing my documents between my home PC, work PC, and phone.


With Trello, I have individual Teams setup for clients/projects, and new Boards for each site. Using the Scrum or Kanban approach that software developers use to maximise their productivity, I split the Boards up into left-to-right columns such as: To Do, Require Info, In Progress, Testing Required, Notification Required, Complete, Shelved. Then it's just a matter of adding each manageable task into the required column, and drag and drop the virtual post-it notes as I progress through a task.


Atlassian's Confluence is probably the most kick-ass Wiki I have come across, it beats out Microsoft's SharePoint by miles, its flexibility and usability is best in class. I actually write my blog posts as drafts in a Space I have created before publishing to my website.


I have individual Spaces created for clients/projects, and embed the related Trello Board into the Home Page of each site. This way I can add engineers with permissions just for that Space.


If I ever need to work with another Engineer, it's as easy as inviting them to the Projects Trello board and Confluence Wiki Space, and giving them access. This saves a LOT of rework.


Welcome to the world of Industrial Control Systems Engineering


I'm not sure how you stumbled across my site, but I bet you are as interested as I am in following the exciting developments taking place in the most recent Space race. By approaching old problems with new sustainable technology and using live streams of rocket launches, people like Elon Musk and Jeff Bezos are making Engineering "Cool" again.


Although i'm no rocket scientist, the devices I get to play around with on a daily basis are used in some of the most basic control systems on the planet, to the most advanced "off" of it.


Namely, PLCs & SCADA systems.


You will find PLC's, or Programmable Logic Controllers (lets just call them Controllers from now on) in just about everything these days, from refrigerators to satellites orbiting Mars. They provide the "smarts" behind how a device should operate, with limiting parameters programmed in.


The operator graphical user interfaces (GUIs) that ground control operators or industrial plant operators use to view and control field devices are called SCADA (Supervisory Control & Data Aquisition Systems) or HMIs (Human Machine Interfaces).


So who am I, and what is this blog about?


I'm an Electrical & Control Systems Engineer, with over 15 years of Industrial Control Systems security, networking, safety, maintenance, design and commissioning experience.


As a kid I developed a keen interest in computers when my dad got us an Osborne 386 PC in the early 90's, which then got me interested in Electrical Engineering as a profession.


After I graduated as an Electrical Engineer, I slowly gravitated (sorry for the bad pun) towards Industrial Control Systems (especially PLC & SCADA programming) and how they are used within various industries.


This includes design and programming of PLCs, SCADA & HMI systems for plant operations.


I plan to use this blog to talk about some of the interesting things I come across within my field.

Dennis Murphy @ South Africa Kathu Mine Iron Ore Reclaimer

Hey there, I'm Dennis Murphy, an Electrical / Control Systems Engineer based in Australia.

I write about Industrial Control System security, safety, PLC programming, SCADA/HMI design, and commissioning.

Not-so-boring ICS Updates!

Get my updates in your inbox: