page 0 A C+B C*B B T1 ST2 A⋅= T1 T2 T3 T4 ST1 ST2 ST3 FS = first scan ST1 ST1 T1+()T2⋅ FS+= ST2 ST2 T2 T3++()T1 T4⋅⋅= ST3 ST3 T4 T1⋅+()T3⋅= T2 ST1 B⋅= T3 ST3 CB⋅()⋅= T4 ST2 CB+()⋅= ST2 A ST1 B ST3 C B T1 T2 T3 T4 ST2 C B ST1 T2 ST1 T1 first scan ST2 T1 ST2 T2 T3 ST3 T3 ST3 T4 T4 T1 Automating Manufacturing Systems with PLCs (Version 4.7, April 14, 2005) Hugh Jack page 0 Copyright (c) 1993-2005 Hugh Jack (jackh@gvsu.edu). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". This document is provided as-is with no warranty, implied or otherwise. There have been attempts to eliminate errors from this document, but there is no doubt that errors remain. As a result, the author does not assume any responsibility for errors and omissions, or damages resulting from the use of the information pro- vided. Additional materials and updates for this work will be available at http://clay- more.engineer.gvsu.edu/~jackh/books.html page i 1.1 TODO LIST 1.4 2. PROGRAMMABLELOGICCONTROLLERS .2.1 2.1 INTRODUCTION 2.1 2.1.1 Ladder Logic 2.1 2.1.2 Programming 2.6 2.1.3 PLC Connections 2.10 2.1.4 Ladder Logic Inputs 2.11 2.1.5 Ladder Logic Outputs 2.12 2.2 A CASE STUDY 2.13 2.3 SUMMARY 2.14 2.4 PRACTICE PROBLEMS 2.15 2.5 PRACTICE PROBLEM SOLUTIONS 2.15 2.6 ASSIGNMENT PROBLEMS 2.16 3. PLCHARDWARE 3.1 3.1 INTRODUCTION 3.1 3.2 INPUTS AND OUTPUTS 3.2 3.2.1 Inputs 3.3 3.2.2 Output Modules 3.7 3.3 RELAYS 3.13 3.4 A CASE STUDY 3.14 3.5 ELECTRICAL WIRING DIAGRAMS 3.15 3.5.1 JIC Wiring Symbols 3.17 3.6 SUMMARY 3.21 3.7 PRACTICE PROBLEMS 3.21 3.8 PRACTICE PROBLEM SOLUTIONS 3.24 3.9 ASSIGNMENT PROBLEMS 3.27 4. LOGICALSENSORS 4.1 4.1 INTRODUCTION 4.1 4.2 SENSOR WIRING 4.1 4.2.1 Switches 4.2 4.2.2 Transistor Transistor Logic (TTL) 4.3 4.2.3 Sinking/Sourcing 4.3 4.2.4 Solid State Relays 4.10 4.3 PRESENCE DETECTION 4.11 4.3.1 Contact Switches 4.11 4.3.2 Reed Switches 4.11 4.3.3 Optical (Photoelectric) Sensors 4.12 4.3.4 Capacitive Sensors 4.19 4.3.5 Inductive Sensors 4.23 4.3.6 Ultrasonic 4.25 4.3.7 Hall Effect 4.25 page ii 4.3.8 Fluid Flow 4.26 4.4 SUMMARY 4.26 4.5 PRACTICE PROBLEMS 4.27 4.6 PRACTICE PROBLEM SOLUTIONS 4.30 4.7 ASSIGNMENT PROBLEMS 4.36 5. LOGICALACTUATORS 5.1 5.1 INTRODUCTION 5.1 5.2 SOLENOIDS 5.1 5.3 VALVES 5.2 5.4 CYLINDERS 5.4 5.5 HYDRAULICS 5.6 5.6 PNEUMATICS 5.8 5.7 MOTORS 5.9 5.8 COMPUTERS 5.10 5.9 OTHERS 5.10 5.10 SUMMARY 5.10 5.11 PRACTICE PROBLEMS 5.11 5.12 PRACTICE PROBLEM SOLUTIONS 5.11 5.13 ASSIGNMENT PROBLEMS 5.12 6. BOOLEANLOGICDESIGN 6.1 6.1 INTRODUCTION 6.1 6.2 BOOLEAN ALGEBRA 6.1 6.3 LOGIC DESIGN 6.6 6.3.1 Boolean Algebra Techniques 6.13 6.4 COMMON LOGIC FORMS 6.14 6.4.1 Complex Gate Forms 6.14 6.4.2 Multiplexers 6.15 6.5 SIMPLE DESIGN CASES 6.17 6.5.1 Basic Logic Functions 6.17 6.5.2 Car Safety System 6.18 6.5.3 Motor Forward/Reverse 6.18 6.5.4 A Burglar Alarm 6.19 6.6 SUMMARY 6.23 6.7 PRACTICE PROBLEMS 6.24 6.8 PRACTICE PROBLEM SOLUTIONS 6.27 6.9 ASSIGNMENT PROBLEMS 6.37 7. KARNAUGHMAPS 7.1 7.1 INTRODUCTION 7.1 7.2 SUMMARY 7.4 7.3 PRACTICE PROBLEMS 7.5 page iii 7.4 PRACTICE PROBLEM SOLUTIONS 7.11 7.5 ASSIGNMENT PROBLEMS 7.17 8. PLCOPERATION 8.1 8.1 INTRODUCTION 8.1 8.2 OPERATION SEQUENCE 8.3 8.2.1 The Input and Output Scans 8.4 8.2.2 The Logic Scan 8.4 8.3 PLC STATUS 8.6 8.4 MEMORY TYPES 8.6 8.5 SOFTWARE BASED PLCS 8.7 8.6 SUMMARY 8.7 8.7 PRACTICE PROBLEMS 8.8 8.8 PRACTICE PROBLEM SOLUTIONS 8.8 8.9 ASSIGNMENT PROBLEMS 8.9 9. LATCHES, TIMERS, COUNTERS AND MORE 9.1 9.1 INTRODUCTION 9.1 9.2 LATCHES 9.2 9.3 TIMERS 9.6 9.4 COUNTERS 9.14 9.5 MASTER CONTROL RELAYS (MCRs) 9.17 9.6 INTERNAL RELAYS 9.19 9.7 DESIGN CASES 9.20 9.7.1 Basic Counters And Timers 9.20 9.7.2 More Timers And Counters 9.21 9.7.3 Deadman Switch 9.22 9.7.4 Conveyor 9.23 9.7.5 Accept/Reject Sorting 9.24 9.7.6 Shear Press 9.26 9.8 SUMMARY 9.27 9.9 PRACTICE PROBLEMS 9.28 9.10 PRACTICE PROBLEM SOLUTIONS 9.32 9.11 ASSIGNMENT PROBLEMS 9.43 10. STRUCTUREDLOGICDESIGN .10.1 10.1 INTRODUCTION 10.1 10.2 PROCESS SEQUENCE BITS 10.2 10.3 TIMING DIAGRAMS 10.6 10.4 DESIGN CASES 10.9 10.5 SUMMARY 10.9 10.6 PRACTICE PROBLEMS 10.9 10.7 PRACTICE PROBLEM SOLUTIONS 10.10 page iv 10.8 ASSIGNMENT PROBLEMS 10.14 11. FLOWCHARTBASEDDESIGN .11.1 11.1 INTRODUCTION 11.1 11.2 BLOCK LOGIC 11.4 11.3 SEQUENCE BITS 11.11 11.4 SUMMARY 11.15 11.5 PRACTICE PROBLEMS 11.15 11.6 PRACTICE PROBLEM SOLUTIONS 11.16 11.7 ASSIGNMENT PROBLEMS 11.26 12. STATEBASEDDESIGN 12.1 12.1 INTRODUCTION 12.1 12.1.1 State Diagram Example 12.4 12.1.2 Conversion to Ladder Logic 12.7 Block Logic Conversion 12.7 State Equations 12.16 State-Transition Equations 12.24 12.2 SUMMARY 12.29 12.3 PRACTICE PROBLEMS 12.29 12.4 PRACTICE PROBLEM SOLUTIONS 12.34 12.5 ASSIGNMENT PROBLEMS 12.49 13. NUMBERSANDDATA 13.1 13.1 INTRODUCTION 13.1 13.2 NUMERICAL VALUES 13.2 13.2.1 Binary 13.2 Boolean Operations 13.5 Binary Mathematics 13.6 13.2.2 Other Base Number Systems 13.10 13.2.3 BCD (Binary Coded Decimal) 13.11 13.3 DATA CHARACTERIZATION 13.11 13.3.1 ASCII (American Standard Code for Information Interchange) 13.11 13.3.2 Parity 13.14 13.3.3 Checksums 13.15 13.3.4 Gray Code 13.16 13.4 SUMMARY 13.17 13.5 PRACTICE PROBLEMS 13.17 13.6 PRACTICE PROBLEM SOLUTIONS 13.20 13.7 ASSIGNMENT PROBLEMS 13.23 14. PLCMEMORY 14.1 14.1 INTRODUCTION 14.1 page v 14.2 MEMORY ADDRESSES 14.1 14.3 PROGRAM FILES 14.2 14.4 DATA FILES 14.3 14.4.1 User Bit Memory 14.9 14.4.2 Timer Counter Memory 14.10 14.4.3 PLC Status Bits (for PLC-5s and Micrologix) 14.12 14.4.4 User Function Control Memory 14.13 14.4.5 Integer Memory 14.14 14.4.6 Floating Point Memory 14.14 14.5 SUMMARY 14.14 14.6 PRACTICE PROBLEMS 14.15 14.7 PRACTICE PROBLEM SOLUTIONS 14.15 14.8 ASSIGNMENT PROBLEMS 14.18 15. LADDER LOGIC FUNCTIONS 15.1 15.1 INTRODUCTION 15.1 15.2 DATA HANDLING 15.3 15.2.1 Move Functions 15.3 15.2.2 Mathematical Functions 15.5 15.2.3 Conversions 15.10 15.2.4 Array Data Functions 15.11 Statistics 15.12 Block Operations 15.13 15.3 LOGICAL FUNCTIONS 15.15 15.3.1 Comparison of Values 15.15 15.3.2 Boolean Functions 15.21 15.4 DESIGN CASES 15.22 15.4.1 Simple Calculation 15.22 15.4.2 For-Next 15.23 15.4.3 Series Calculation 15.24 15.4.4 Flashing Lights 15.25 15.5 SUMMARY 15.25 15.6 PRACTICE PROBLEMS 15.26 15.7 PRACTICE PROBLEM SOLUTIONS 15.28 15.8 ASSIGNMENT PROBLEMS 15.34 16. ADVANCED LADDER LOGIC FUNCTIONS .16.1 16.1 INTRODUCTION 16.1 16.2 LIST FUNCTIONS 16.1 16.2.1 Shift Registers 16.1 16.2.2 Stacks 16.3 16.2.3 Sequencers 16.6 16.3 PROGRAM CONTROL 16.9 16.3.1 Branching and Looping 16.9 page vi 16.3.2 Fault Detection and Interrupts 16.14 16.4 INPUT AND OUTPUT FUNCTIONS 16.18 16.4.1 Immediate I/O Instructions 16.18 16.4.2 Block Transfer Functions 16.20 16.5 DESIGN TECHNIQUES 16.22 16.5.1 State Diagrams 16.22 16.6 DESIGN CASES 16.26 16.6.1 If-Then 16.26 16.6.2 Traffic Light 16.27 16.7 SUMMARY 16.28 16.8 PRACTICE PROBLEMS 16.29 16.9 PRACTICE PROBLEM SOLUTIONS 16.31 16.10 ASSIGNMENT PROBLEMS 16.40 17. OPENCONTROLLERS .17.1 17.1 INTRODUCTION 17.1 17.2 IEC 61131 17.2 17.3 OPEN ARCHITECTURE CONTROLLERS 17.3 17.4 SUMMARY 17.4 17.5 PRACTICE PROBLEMS 17.4 17.6 PRACTICE PROBLEM SOLUTIONS 17.4 17.7 ASSIGNMENT PROBLEMS 17.4 18. INSTRUCTIONLISTPROGRAMMING .18.1 18.1 INTRODUCTION 18.1 18.2 THE IEC 61131 VERSION 18.1 18.3 THE ALLEN-BRADLEY VERSION 18.4 18.4 SUMMARY 18.9 18.5 PRACTICE PROBLEMS 18.10 18.6 PRACTICE PROBLEM SOLUTIONS 18.10 18.7 ASSIGNMENT PROBLEMS 18.10 19. STRUCTUREDTEXTPROGRAMMING 19.1 19.1 INTRODUCTION 19.1 19.2 THE LANGUAGE 19.2 19.3 SUMMARY 19.19 19.4 PRACTICE PROBLEMS 19.20 19.5 PRACTICE PROBLEM SOLUTIONS 19.20 19.6 ASSIGNMENT PROBLEMS 19.20 20. SEQUENTIALFUNCTIONCHARTS .20.1 20.1 INTRODUCTION 20.1 20.2 A COMPARISON OF METHODS 20.16 page vii 20.3 SUMMARY 20.16 20.4 PRACTICE PROBLEMS 20.17 20.5 PRACTICE PROBLEM SOLUTIONS 20.18 20.6 ASSIGNMENT PROBLEMS 20.25 21. FUNCTIONBLOCKPROGRAMMING 21.1 21.1 INTRODUCTION 21.1 21.2 CREATING FUNCTION BLOCKS 21.3 21.3 DESIGN CASE 21.4 21.4 SUMMARY 21.4 21.5 PRACTICE PROBLEMS 21.5 21.6 PRACTICE PROBLEM SOLUTIONS 21.5 21.7 ASSIGNMENT PROBLEMS 21.5 22. ANALOGINPUTSANDOUTPUTS 22.1 22.1 INTRODUCTION 22.1 22.2 ANALOG INPUTS 22.2 22.2.1 Analog Inputs With a PLC 22.9 22.3 ANALOG OUTPUTS 22.13 22.3.1 Analog Outputs With A PLC 22.16 22.3.2 Pulse Width Modulation (PWM) Outputs 22.18 22.3.3 Shielding 22.20 22.4 DESIGN CASES 22.22 22.4.1 Process Monitor 22.22 22.5 SUMMARY 22.22 22.6 PRACTICE PROBLEMS 22.23 22.7 PRACTICE PROBLEM SOLUTIONS 22.24 22.8 ASSIGNMENT PROBLEMS 22.29 23. CONTINUOUSSENSORS 23.1 23.1 INTRODUCTION 23.1 23.2 INDUSTRIAL SENSORS 23.2 23.2.1 Angular Displacement 23.3 Potentiometers 23.3 23.2.2 Encoders 23.4 Tachometers 23.8 23.2.3 Linear Position 23.8 Potentiometers 23.8 Linear Variable Differential Transformers (LVDT)23.9 Moire Fringes 23.11 Accelerometers 23.12 23.2.4 Forces and Moments 23.15 Strain Gages 23.15 Piezoelectric 23.18 page viii 23.2.5 Liquids and Gases 23.20 Pressure 23.21 Venturi Valves 23.22 Coriolis Flow Meter 23.23 Magnetic Flow Meter 23.24 Ultrasonic Flow Meter 23.24 Vortex Flow Meter 23.24 Positive Displacement Meters 23.25 Pitot Tubes 23.25 23.2.6 Temperature 23.25 Resistive Temperature Detectors (RTDs) 23.26 Thermocouples 23.26 Thermistors 23.28 Other Sensors 23.30 23.2.7 Light 23.30 Light Dependant Resistors (LDR) 23.30 23.2.8 Chemical 23.31 pH 23.31 Conductivity 23.31 23.2.9 Others 23.32 23.3 INPUT ISSUES 23.32 23.4 SENSOR GLOSSARY 23.37 23.5 SUMMARY 23.38 23.6 REFERENCES 23.39 23.7 PRACTICE PROBLEMS 23.39 23.8 PRACTICE PROBLEM SOLUTIONS 23.40 23.9 ASSIGNMENT PROBLEMS 23.42 24. CONTINUOUSACTUATORS .24.1 24.1 INTRODUCTION 24.1 24.2 ELECTRIC MOTORS 24.1 24.2.1 Basic Brushed DC Motors 24.3 24.2.2 AC Motors 24.7 24.2.3 Brushless DC Motors 24.15 24.2.4 Stepper Motors 24.17 24.2.5 Wound Field Motors 24.19 24.3 HYDRAULICS 24.23 24.4 OTHER SYSTEMS 24.24 24.5 SUMMARY 24.25 24.6 PRACTICE PROBLEMS 24.25 24.7 PRACTICE PROBLEM SOLUTIONS 24.26 24.8 ASSIGNMENT PROBLEMS 24.26 25. CONTINUOUSCONTROL 25.1 25.1 INTRODUCTION 25.1 . modern controllers use a com- plc wiring - 1.3 puter to achieve control. The most flexible of these controllers is the PLC (Programmable Logic Controller) general PLC issues • To be able to write simple ladder logic programs • Understand the operation of a PLC • PLC History • Ladder Logic and Relays • PLC Programming