Mastering PLC Programming: The software engineering survival guide to automation programming
- Length: 386 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2023-03-24
- ISBN-10: 180461288X
- ISBN-13: 9781804612880
- Sales Rank: #1671252 (See Top 100 Books)
Learn PLC programming from the software perspective to understand advanced concepts such as OOP and HMI development and design reusable, portable, and robust code
Purchase of the print or Kindle book includes a free PDF eBook
Key Features
- Take a deep dive into object-oriented PLC programming to gain hands-on knowledge
- Explore software engineering concepts such as SDLC, debugging, and SOLID programming
- Get a thorough grasp on HMI development to build various HMI projects
Book Description
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.
What you will learn
- Find out how to write PLC programs using advanced programming techniques
- Explore OOP concepts for PLC programming
- Delve into software engineering topics such as libraries and SOLID programming
- Explore HMIs, HMI controls, HMI layouts, and alarms
- Create an HMI project and attach it to a PLC in CODESYS
- Gain hands-on experience by building simulated PLC and HMI projects
Who this book is for
This book is for automaton programmers with a background in software engineering topics such as object-oriented programming and general software engineering knowledge. Automation engineers, software engineers, electrical engineers, PLC technicians, hobbyists, and upper-level university students with an interest in automation or robotics will also find this book useful and interesting. Anyone with a basic knowledge of PLCs can benefit from reading this book.
Contributors About the author About the reviewers Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Share Your Thoughts Download a free PDF copy of this book Part 1 – An Introduction to Advanced PLC Programming Chapter 1: Software Engineering for PLCs Technical requirements Software engineering for PLCs Understanding the IEC 61131-3 standard What does the IEC 61131-3 standardize? Programming a PLC – The five IEC languages Introducing CODESYS Testing CODESYS Creating the program Summary Questions Chapter 2: Advanced Structured Text — Programming a PLC in Easy-to-Read English Technical requirements Understanding error handling Variables The main program The division by 0 error Checking for 0 code TRY-CATCH blocks FINALLY statements Identifying and handling errors Understanding pointers Representing PLC memory General syntax for pointers The ADR operator Dereferencing pointers Handling invalid pointers Understanding references Declaring a reference variable Example program Checking for invalid references Understanding documentation Self-documenting code Code to variables Code commenting Understanding state machines Variables for the state machine Exploring state machine logic Summary Questions Further reading Chapter 3: Debugging — Making Your Code Work Technical requirements What is debugging? Types of bugs Testing versus debugging Breaking down the debugging process Understanding debugging tools and techniques Print debugging The CODESYS debugger tool Forcing variables Troubleshooting – a practical example Case 4 – a while loop Summary Questions Further reading Chapter 4: Complex Variable Declaration — Using Variables to Their Fullest Technical requirements Auto declaring variables Understanding constants Investigating arrays Initialized arrays Multidimensional arrays Exploring global variable lists Creating a GVL Understanding structs Declaring a struct Getting to know enums Exploring persistent variables Persistent variable list Final project – motor control program Summary Questions Further reading Part 2 – Modularity and Objects Chapter 5: Functions — Making Code Modular and Maintainable Technical requirements What is modular code? Why use modular code? Exploring functions What goes into a function? Creating a function The PLC_PRG file Examining return types The RETURN statement Understanding arguments Named parameters Default arguments Final project – temperature unit converter Summary Questions Further reading Chapter 6: Object-Oriented Programming — Reducing, Reusing, and Recycling Code Technical requirements What is OOP? Why use OOP? The four pillars – A preview Understanding function blocks Getting to know objects Getting to know methods Adding a method Getting to know properties Adding a property Understanding the purpose of a getter and setter Getter method Setter method Understanding recursion and the THIS keyword THIS keyword Recursion in action Final project – creating a unit converter Summary Questions Further reading Chapter 7: OOP — The Power of Objects Technical requirements Understanding access specifiers Calculation program Exploring the pillars of OOP Encapsulation versus abstraction Inheritance Polymorphism Inheritance versus composition When to use composition Composition in practice Examining interfaces Getting to know design patterns Final project – creating a simulated assembly line Summary Questions Further reading Part 3 – Software Engineering for PLCs Chapter 8: Libraries — Write Once, Use Anywhere Technical requirements Investigating libraries Why do we need libraries? Libraries versus frameworks Distribution Third-party libraries Installing a library Guiding principles for library development Rule 1 – Keep it simple, stupid (KISS) Rule 2 – Abstraction and encapsulation Rule 3 – Patterns make for perfection Rule 4 – Documentation Building custom libraries Requirements Implementation Final project – part computation library Requirements Implementation Summary Questions Further reading Chapter 9: The SDLC — Navigating the SDLC to Create Great Code Technical requirements Understanding the SDLC Why care about the SDLC? How is the SDLC implemented? Investigating the general steps of the SDLC Requirements/planning Design Build Test Deployment Maintenance Final project – creating a simple library Gathering requirements for the library Designing the library Building the library Testing the library Deploying the library Maintaining the library Summary Questions Further reading Chapter 10: Advanced Coding — Using SOLID to Make Solid Code Technical requirements Introducing SOLID programming Benefits of SOLID programming The governing principles of SOLID programming The single-responsibility principle The open-closed principle The Liskov substitution principle The interface segregation principle The Dependency inversion principle Final project – a painting machine Summary Questions Further reading Part 4 – HMIs and Alarms Chapter 11: HMIs — UIs for PLCs Technical requirements Understanding HMIs Why create and use an HMI? How are HMIs created? Programming languages to develop HMIs What should an HMI do? HMIs versus SCADA How the SDLC applies to HMIs Exploring wireframing Final project – creating an HMI Summary Questions Further reading Chapter 12: Industrial Controls — User Inputs and Outputs Technical requirements Exploring common HMI controls Flip switches Push switches Buttons LEDs Potentiometers Sliders Spinners Measurement controls Histogram Text field Control properties Final project – creating a simple HMI Requirements for the HMI Design of the HMI Building the HMI Summary Questions Further reading Chapter 13: Layouts — Making HMIs User-Friendly Technical requirements The importance of colors Backgrounds Red, yellow, and green Control colors Labeling colors Understanding grouping/position Best practices for blinking Blinking a component Animation Organizing the screen into multiple layouts Creating visualizations screens Changing the default screen Navigating between screens Final project – creating a user-friendly HMI Summary Questions Further reading Chapter 14: Alarms — Avoiding Catastrophic Issues with Alarms Technical requirements What are alarms? When should you use an alarm? What should an alarm say? Alarm configuration – I, Warning, and Error setup Alarm groups Alarm HMI components Setting up an alarm banner Setting up an alarm table PLC alarm logic Alarm acknowledgment Final project – motor alarm system Requirements Design/implementation of the HMI Summary Questions Further reading Part 5 – Final Project and Thoughts Chapter 15: Putting It All Together — The Final Project Technical requirements Project overview Getting the requirements HMI design HMI implementation LED variables Acknowledgment variable Spinner variables/setup Gauge variable/setup Alarm table variables/configuration PLC code design Implementing the PLC code PLC_PRG file Alarms function block Door function block Oven function block Testing the application Testing the door lock Testing the gauge Summary Questions Chapter 16: Distributed Control Systems, PLCs, and Networking Technical requirements What are computer networks? Network topology Common IT protocols TCP/IP UDP PLC/automation device communication Modbus Profibus Profinet EtherCAT DeviceNet Protocol conversion Other communication topics to explore Understanding distributed control systems The differences between DCSs and PLCs Summary Questions Further reading Assessments Chapter 1: Software Engineering for PLCs Chapter 2: Advanced Structured Text — Programming a PLC in Easy-to-Read English Chapter 3: Debugging — Making Your Code Work Chapter 4: Complex Variable Declaration — Using Variables to Their Fullest Chapter 5: Functions — Making Code Modular and Maintainable Chapter 6: OOP — Reducing, Reusing, and Recycling Code Chapter 7: OOP — The Power of Objects Chapter 8: Libraries — Write Once, Use Anywhere Chapter 9: The SDLC — Navigating the SDLC to Create Great Code Chapter 10: Advanced Coding — Using SOLID to Make Solid Code Chapter 11: HMIs — UIs for PLCs Chapter 12: Industrial Controls — User Inputs and Outputs Chapter 13: Layouts — Making HMIs User Friendly Chapter 14: Alarms — Avoiding Catastrophic Issues with Alarms Chapter 15: Putting It All Together — The Final Project Chapter 16: Distributed Control Systems, PLCs, and Networking Index Why subscribe? Other Books You May Enjoy Packt is searching for authors like you Share Your Thoughts Download a free PDF copy of this book
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: Mastering PLC Programming: The software engineering survival guide to automation programming
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.