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

Questions

Answer the following questions based on what you've learned in this chapter. The questions in this chapter are open-ended with no wrong or right answer. They are meant to be exploratory so readers can come to their own conclusions.

  1. Write a test case to test the LEDs.
    1. Does the LEDs’ behavior make sense for what they are meant for?
    2. If there is a bug, can you debug it?
  2. Test the Ack button.
    1. Write a few test cases for the Ack button.
    2. Does the button work as intended?
  3. Can you refactor the Alarms function block and condense everything into one method?
  4. Can you add extra functionality to the program or HMI? This is an open-ended question, so use your imagination.
  5. What should you do if there is no set value in the spinner? Should you set a default value, throw an alarm, or do something else? Use your imagination!
  6. Can the variables be renamed to better reflect what they do?
  7. Do the info, warning, and error alarm messages make sense? Can you improve...