This book presents a comprehensive treatment of Allen-Bradley programmable logic controllers (PLCs) with an emphasis on program design. This text stresses an organized approach to developing PLC programs - Given a set of operational specifications, how does one develop the PLC program? This book develops the design process: the tasks involved, breaking the program into manageable pieces, standard code for the various parts, and handling the sequential parts of the problem. Throughout, the book contains example problems demonstrating good design practice and culminates in a full-length case study. Due to its popularity, ladder logic is employed in the text. This language is covered for Allen-Bradley ControlLogix, CompactLogix, MicroLogix, and SLC-500 processors. The main topics of this text are: 1. PLC ladder logic programming language 2. Structured approach to sequential problems 3. Good program design practice 4. Troubleshooting techniques 5. PID control 6. Sensors and actuators 7. Factory communication networks 8. Human-machine interface (HMI) Most chapters include student problems. The accompanying CD contains 53 additional problems with solutions for chapters 2, 3, 5, 6, 7, 10, 15. Changes for the Second Edition The second edition primarily adds the Micro800 controller, but there are other changes throughout. The major changes are: 1. Information on input and output buffering has been added to Chapter 2. 2. Addressing for 5069- and 5094-series I/O modules has been added to Chapter 3. 3. Chapter 13 has extensive updates to reflect recent developments in operator interfaces, called "High Performance HMI." 4. The section on ControlLogix simulation in Chapter 15 has been revised to utilize I/O module inhibits to disable the I/O scan. 6. The appearance of the ControlLogix blocks has been updated to match the changes effective with Studio 5000 version 31. Dr. Kelvin Erickson is a Professor of Electrical & Computer Engineering at the Missouri University of Science & Technology (Missouri S&T). His major expertise is in the area of factory automation and process control. He has over 40 years experience with PLC and DCS systems. He was a software design engineer at Fisher Controls for 6 years prior to joining the faculty of the University of Missouri-Rolla (now Missouri S&T), in 1986. In 1997, he was on a sabbatical leave at a control system integrator, working on software development for PLC, DCS, and HMI projects. Since 1991, he has taught regular college courses and short courses on programming for Rockwell Automation, Siemens, Modicon, and Emerson/GE PLCs and Wonderware and FactoryTalk View HMI software. In addition, he authored another textbook on PLC programming and co-authored a textbook entitled Plantwide Process Control.