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.