Mastering PLC programming : the software engineering survival guide to automation programming / M. T. White.

Author
White, M. T. [Browse]
Format
Book
Language
English
Εdition
First edition.
Published/​Created
  • Birmingham, England ; Mumbai : Packt Publishing Ltd., [2023]
  • ©2023
Description
1 online resource (386 pages)

Details

Subject(s)
Summary note
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.
Source of description
Description based on print version record.
Contents
  • Cover
  • Title Page
  • Copyright and Credits
  • Contributors
  • About the reviewers
  • Table of Contents
  • Preface
  • 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
  • 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
  • Further reading
  • Chapter 3: Debugging - Making Your Code Work
  • 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
  • Chapter 4: Complex Variable Declaration - Using Variables to Their Fullest
  • 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
  • Part 2 - Modularity and Objects
  • Chapter 5: Functions - Making Code Modular and Maintainable
  • 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
  • Chapter 6: Object-Oriented Programming - Reducing, Reusing, and Recycling Code
  • 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
  • Chapter 7: OOP - The Power of Objects
  • 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
  • Further reading.
  • Part 3 - Software Engineering for PLCs
  • Chapter 8: Libraries - Write Once, Use Anywhere
  • 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
  • Chapter 9: The SDLC - Navigating the SDLC to Create Great Code
  • 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
  • Chapter 10: Advanced Coding - Using SOLID to Make Solid Code
  • 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
  • Part 4 - HMIs and Alarms
  • Chapter 11: HMIs - UIs for PLCs
  • 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
  • Chapter 12: Industrial Controls - User Inputs and Outputs
  • 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
  • Chapter 13: Layouts - Making HMIs User-Friendly
  • 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
  • Chapter 14: Alarms - Avoiding Catastrophic Issues with Alarms
  • 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
  • Design/implementation of the HMI
  • Part 5 - Final Project and Thoughts
  • Chapter 15: Putting It All Together - The Final Project
  • 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
  • Chapter 16: Distributed Control Systems, PLCs, and Networking
  • 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
  • Index
  • Other Books You May Enjoy.
ISBN
  • 9781804619124
  • 1804619124
OCLC
1372321966
Statement on responsible collection description
Princeton University Library aims to describe library materials in a manner that is respectful to the individuals and communities who create, use, and are represented in the collections we manage. Read more...
Other views
Staff view

Supplementary Information