Book Image

Mastering PLC Programming

By : Mason White
Book Image

Mastering PLC Programming

By: Mason White

Overview of this book

Object-oriented programming (OOP) is a new feature of PLC programming that has taken the automation world by storm. This book provides you with the necessary skills to succeed in the modern automation programming environment. The book is designed in a way to take you through advanced topics such as OOP design, SOLID programming, the software development lifecycle (SDLC), library design, HMI development, general software engineering practices, and more. To hone your programming skills, each chapter has a simulated real-world project that’ll enable you to apply the skills you’ve learned. In all, this book not only covers complex PLC programming topics, but it also removes the financial barrier that comes with most books as all examples utilize free software. This means that to follow along, you DO NOT need to purchase any PLC hardware or software. By the end of this PLC book, you will have what it takes to create long-lasting codebases for any modern automation project.
Table of Contents (25 chapters)
1
Part 1 – An Introduction to Advanced PLC Programming
6
Part 2 – Modularity and Objects
10
Part 3 – Software Engineering for PLCs
14
Part 4 – HMIs and Alarms
19
Part 5 – Final Project and Thoughts

Exploring the pillars of OOP

Depending on who you talk to, OOP is governed by four pillars: encapsulation, abstraction, inheritance, and polymorphism. Some sources will cite only three pillars due to some developers grouping abstraction and encapsulation as a singular concept. Academia usually teaches that there are four pillars, and it is more common to hear about four pillars as opposed to three. For this book, we will explore the four pillars.

Encapsulation versus abstraction

In OOP, we want to hide as many of the attributes as possible. We do this so attributes outside of the function block can’t accidentally use them and cause issues. This will make the program easier to troubleshoot and maintain in the long run. However, there are some attributes that do have to be used by outside attributes. In this case, we need to provide the bare minimum to the outside function blocks, that is, we need to expose only as much as is needed of the process outside of the function...