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

What this book covers

Chapter 1, Software Engineering for PLCs, establishes the basics of software engineering and why it is important for PLC programmers. The chapter also walks you through installing CODESYS and creating a sample project to ensure the setup is working.

Chapter 2, Advanced Structured Text — Programming a PLC in Easy-to-Read English, explores some of the lesser-used concepts of structured text, such as error handling and pointers. This chapter also covers the basics of state machines and proper code documentation.

Chapter 3, Debugging — Making Your Code Work, introduces troubleshooting PLC code. The chapter covers concepts such as print debugging, using built-in debugging tools, and more.

Chapter 4, Complex Variable Declaration — Using Variables to Their Fullest, is about complex variables. Topics covered include variable lists, auto-declaring variables, structs, and much more.

Chapter 5, Functions — Making Code Modular and Maintainable, introduces code modularity. To do this, the concept of functions is covered, along with arguments, return types, and more.

Chapter 6, OOP — Reducing, Reusing, and Recycling Code, introduces the power of objects and how they can be used. The chapter explores basic object-oriented programming (OOP) principles such as function blocks, methods, and getter and setter methods.

Chapter 7, OOP — The Power of Objects, is a continuation of Chapter 6 and covers more complex object-oriented principles such as the pillars of OOP, composition, access specifiers, interfaces, and more.

Chapter 8, Libraries — Write Once, Use Anywhere, explores the whole process of creating a library from scratch to consuming the library. This chapter essentially is applied OOP.

Chapter 9, The SDLC — Navigating the SDLC to Create Great Code, introduces the full software development life cycle (SDLC). The goal of this chapter is to teach you how to navigate the full SDLC process to properly build and implement PLC code.

Chapter 10, Advanced Coding — Using SOLID to Make Solid Code, shows you how to create SOLID PLC code. The goal of this chapter is to teach you how to create well-engineered code that can be adapted and will age well. In short, this chapter explains how to properly implement OOP.

Chapter 11, HMIs — UIs for PLCs, introduces the concept of Human Machine Interface (HMIs). The goal of this chapter is to introduce the core idea behind HMIs, wireframing, setting up a basic HMI project, and why HMIs are used.

Chapter 12, Industrial Controls — User Inputs and Outputs, covers some of the commonly used CODESYS HMI widgets. The goal of the chapter is to introduce the widgets, what they do, and how they work.

Chapter 13, Layouts — Making HMIs User-Friendly, explores how to make functional HMIs. In other words, the goal of this chapter is to lay down principles that can be used to create high-functioning and user-friendly HMIs in CODESYS.

Chapter 14, Alarms — Avoiding Catastrophic Issues with Alarms, covers one of the most important aspects of automation programming – alarms. This chapter introduces the concept of alarms and how to set up an alarm, its layout, and even how to trigger them.

Chapter 15, Putting It All Together — The Final Project, is the last hands-on chapter. This chapter cherry-picks concepts from the whole book and incorporates them into a final project.

Chapter 16, Distributed Control System, PLCs, and Networking, is theoretical in nature, unlike all the previous chapters. This chapter covers the basics of networking, as well as introducing the basics of common networking protocols for automation.