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

Getting to know objects

The root term in OOP stems from objects, which are things. Essentially, the c1 and c2 variables in the PLC_PRG file are objects; they are different instances of the Calculator function block. In other words, the variables are compact copies of the function block. This is a very powerful concept because though the variables reference the same code in the function block, they can hold different data. To demonstrate this, match the following code snippet to your Calculator function block:

FUNCTION_BLOCK PUBLIC Calculator
VAR_INPUT
	input : INT;
END_VAR
VAR_OUTPUT
	output : INT;
END_VAR
VAR
END_VAR

In this demonstration, we have simple input and output variables. This code will require an input variable to be provided when the object variable is initialized. All the logic will do is assign the input to the output, as in the following snippet:

output := input;

To provide an argument to the function block, we have to use named parameters. As such, we are...