- •1. INTEGRATED AND AUTOMATED MANUFACTURING
- •1.1 INTRODUCTION
- •1.1.1 Why Integrate?
- •1.1.2 Why Automate?
- •1.2 THE BIG PICTURE
- •1.2.2 The Architecture of Integration
- •1.2.3 General Concepts
- •1.3 PRACTICE PROBLEMS
- •2. AN INTRODUCTION TO LINUX/UNIX
- •2.1 OVERVIEW
- •2.1.1 What is it?
- •2.1.2 A (Brief) History
- •2.1.3 Hardware required and supported
- •2.1.4 Applications and uses
- •2.1.5 Advantages and Disadvantages
- •2.1.6 Getting It
- •2.1.7 Distributions
- •2.1.8 Installing
- •2.2 USING LINUX
- •2.2.1 Some Terminology
- •2.2.2 File and directories
- •2.2.3 User accounts and root
- •2.2.4 Processes
- •2.3 NETWORKING
- •2.3.1 Security
- •2.4 INTERMEDIATE CONCEPTS
- •2.4.1 Shells
- •2.4.2 X-Windows
- •2.4.3 Configuring
- •2.4.4 Desktop Tools
- •2.5 LABORATORY - A LINUX SERVER
- •2.6 TUTORIAL - INSTALLING LINUX
- •2.7 TUTORIAL - USING LINUX
- •2.8 REFERENCES
- •3. AN INTRODUCTION TO C/C++ PROGRAMMING
- •3.1 INTRODUCTION
- •3.2 PROGRAM PARTS
- •3.3 CLASSES AND OVERLOADING
- •3.4 HOW A ‘C’ COMPILER WORKS
- •3.5 STRUCTURED ‘C’ CODE
- •3.6 COMPILING C PROGRAMS IN LINUX
- •3.6.1 Makefiles
- •3.7 ARCHITECTURE OF ‘C’ PROGRAMS (TOP-DOWN)
- •3.8 CREATING TOP DOWN PROGRAMS
- •3.9 CASE STUDY - THE BEAMCAD PROGRAM
- •3.9.1 Objectives:
- •3.9.2 Problem Definition:
- •3.9.3 User Interface:
- •3.9.3.1 - Screen Layout (also see figure):
- •3.9.3.2 - Input:
- •3.9.3.3 - Output:
- •3.9.3.4 - Help:
- •3.9.3.5 - Error Checking:
- •3.9.3.6 - Miscellaneous:
- •3.9.4 Flow Program:
- •3.9.5 Expand Program:
- •3.9.6 Testing and Debugging:
- •3.9.7 Documentation
- •3.9.7.1 - Users Manual:
- •3.9.7.2 - Programmers Manual:
- •3.9.8 Listing of BeamCAD Program.
- •3.10 PRACTICE PROBLEMS
- •3.11 LABORATORY - C PROGRAMMING
- •4. NETWORK COMMUNICATION
- •4.1 INTRODUCTION
- •4.2 NETWORKS
- •4.2.1 Topology
- •4.2.2 OSI Network Model
- •4.2.3 Networking Hardware
- •4.2.4 Control Network Issues
- •4.2.5 Ethernet
- •4.2.6 SLIP and PPP
- •4.3 INTERNET
- •4.3.1 Computer Addresses
- •4.3.2 Computer Ports
- •4.3.2.1 - Mail Transfer Protocols
- •4.3.2.2 - FTP - File Transfer Protocol
- •4.3.2.3 - HTTP - Hypertext Transfer Protocol
- •4.3.3 Security
- •4.3.3.1 - Firewalls and IP Masquerading
- •4.4 FORMATS
- •4.4.1 HTML
- •4.4.2 URLs
- •4.4.3 Encryption
- •4.4.4 Clients and Servers
- •4.4.5 Java
- •4.4.6 Javascript
- •4.5 NETWORKING IN LINUX
- •4.5.1 Network Programming in Linux
- •4.6 DESIGN CASES
- •4.7 SUMMARY
- •4.8 PRACTICE PROBLEMS
- •4.9 LABORATORY - NETWORKING
- •4.9.1 Prelab
- •4.9.2 Laboratory
- •5. DATABASES
- •5.1 SQL AND RELATIONAL DATABASES
- •5.2 DATABASE ISSUES
- •5.3 LABORATORY - SQL FOR DATABASE INTEGRATION
- •5.4 LABORATORY - USING C FOR DATABASE CALLS
- •6. COMMUNICATIONS
- •6.1 SERIAL COMMUNICATIONS
- •6.2 SERIAL COMMUNICATIONS UNDER LINUX
- •6.3 PARALLEL COMMUNICATIONS
- •6.4 LABORATORY - SERIAL INTERFACING AND PROGRAMMING
- •6.5 LABORATORY - STEPPER MOTOR CONTROLLER
- •7. PROGRAMMABLE LOGIC CONTROLLERS (PLCs)
- •7.1 BASIC LADDER LOGIC
- •7.2 WHAT DOES LADDER LOGIC DO?
- •7.2.1 Connecting A PLC To A Process
- •7.2.2 PLC Operation
- •7.3 LADDER LOGIC
- •7.3.1 Relay Terminology
- •7.3.2 Ladder Logic Inputs
- •7.3.3 Ladder Logic Outputs
- •7.4 LADDER DIAGRAMS
- •7.4.1 Ladder Logic Design
- •7.4.2 A More Complicated Example of Design
- •7.5 TIMERS/COUNTERS/LATCHES
- •7.6 LATCHES
- •7.7 TIMERS
- •7.8 COUNTERS
- •7.9 DESIGN AND SAFETY
- •7.9.1 FLOW CHARTS
- •7.10 SAFETY
- •7.10.1 Grounding
- •7.10.2 Programming/Wiring
- •7.10.3 PLC Safety Rules
- •7.10.4 Troubleshooting
- •7.11 DESIGN CASES
- •7.11.1 DEADMAN SWITCH
- •7.11.2 CONVEYOR
- •7.11.3 ACCEPT/REJECT SORTING
- •7.11.4 SHEAR PRESS
- •7.12 ADDRESSING
- •7.12.1 Data Files
- •7.12.1.1 - Inputs and Outputs
- •7.12.1.2 - User Numerical Memory
- •7.12.1.3 - Timer Counter Memory
- •7.12.1.4 - PLC Status Bits (for PLC-5s)
- •7.12.1.5 - User Function Memory
- •7.13 INSTRUCTION TYPES
- •7.13.1 Program Control Structures
- •7.13.2 Branching and Looping
- •7.13.2.1 - Immediate I/O Instructions
- •7.13.2.2 - Fault Detection and Interrupts
- •7.13.3 Basic Data Handling
- •7.13.3.1 - Move Functions
- •7.14 MATH FUNCTIONS
- •7.15 LOGICAL FUNCTIONS
- •7.15.1 Comparison of Values
- •7.16 BINARY FUNCTIONS
- •7.17 ADVANCED DATA HANDLING
- •7.17.1 Multiple Data Value Functions
- •7.17.2 Block Transfer Functions
- •7.18 COMPLEX FUNCTIONS
- •7.18.1 Shift Registers
- •7.18.2 Stacks
- •7.18.3 Sequencers
- •7.19 ASCII FUNCTIONS
- •7.20 DESIGN TECHNIQUES
- •7.20.1 State Diagrams
- •7.21 DESIGN CASES
- •7.21.1 If-Then
- •7.21.2 For-Next
- •7.21.3 Conveyor
- •7.22 IMPLEMENTATION
- •7.23 PLC WIRING
- •7.23.1 SWITCHED INPUTS AND OUTPUTS
- •7.23.1.1 - Input Modules
- •7.23.1.2 - Actuators
- •7.23.1.3 - Output Modules
- •7.24 THE PLC ENVIRONMENT
- •7.24.1 Electrical Wiring Diagrams
- •7.24.2 Wiring
- •7.24.3 Shielding and Grounding
- •7.24.4 PLC Environment
- •7.24.5 SPECIAL I/O MODULES
- •7.25 PRACTICE PROBLEMS
- •7.26 REFERENCES
- •7.27 LABORATORY - SERIAL INTERFACING TO A PLC
- •8. PLCS AND NETWORKING
- •8.1 OPEN NETWORK TYPES
- •8.1.1 Devicenet
- •8.1.2 CANbus
- •8.1.3 Controlnet
- •8.1.4 Profibus
- •8.2 PROPRIETARY NETWORKS
- •8.2.0.1 - Data Highway
- •8.3 PRACTICE PROBLEMS
- •8.4 LABORATORY - DEVICENET
- •8.5 TUTORIAL - SOFTPLC AND DEVICENET
- •9. INDUSTRIAL ROBOTICS
- •9.1 INTRODUCTION
- •9.1.1 Basic Terms
- •9.1.2 Positioning Concepts
- •9.1.2.1 - Accuracy and Repeatability
- •9.1.2.2 - Control Resolution
- •9.1.2.3 - Payload
- •9.2 ROBOT TYPES
- •9.2.1 Basic Robotic Systems
- •9.2.2 Types of Robots
- •9.2.2.1 - Robotic Arms
- •9.2.2.2 - Autonomous/Mobile Robots
- •9.2.2.2.1 - Automatic Guided Vehicles (AGVs)
- •9.3 MECHANISMS
- •9.4 ACTUATORS
- •9.5 A COMMERCIAL ROBOT
- •9.5.1 Mitsubishi RV-M1 Manipulator
- •9.5.2 Movemaster Programs
- •9.5.2.0.1 - Language Examples
- •9.5.3 Command Summary
- •9.6 PRACTICE PROBLEMS
- •9.7 LABORATORY - MITSUBISHI RV-M1 ROBOT
- •9.8 TUTORIAL - MITSUBISHI RV-M1
- •10. OTHER INDUSTRIAL ROBOTS
- •10.1 SEIKO RT 3000 MANIPULATOR
- •10.1.1 DARL Programs
- •10.1.1.1 - Language Examples
- •10.1.1.2 - Commands Summary
- •10.2 IBM 7535 MANIPULATOR
- •10.2.1 AML Programs
- •10.3 ASEA IRB-1000
- •10.4 UNIMATION PUMA (360, 550, 560 SERIES)
- •10.5 PRACTICE PROBLEMS
- •10.6 LABORATORY - SEIKO RT-3000 ROBOT
- •10.7 TUTORIAL - SEIKO RT-3000 ROBOT
- •10.8 LABORATORY - ASEA IRB-1000 ROBOT
- •10.9 TUTORIAL - ASEA IRB-1000 ROBOT
- •11. ROBOT APPLICATIONS
- •11.0.1 Overview
- •11.0.2 Spray Painting and Finishing
- •11.0.3 Welding
- •11.0.4 Assembly
- •11.0.5 Belt Based Material Transfer
- •11.1 END OF ARM TOOLING (EOAT)
- •11.1.1 EOAT Design
- •11.1.2 Gripper Mechanisms
- •11.1.2.1 - Vacuum grippers
- •11.1.3 Magnetic Grippers
- •11.1.3.1 - Adhesive Grippers
- •11.1.4 Expanding Grippers
- •11.1.5 Other Types Of Grippers
- •11.2 ADVANCED TOPICS
- •11.2.1 Simulation/Off-line Programming
- •11.3 INTERFACING
- •11.4 PRACTICE PROBLEMS
- •11.5 LABORATORY - ROBOT INTERFACING
- •11.6 LABORATORY - ROBOT WORKCELL INTEGRATION
- •12. SPATIAL KINEMATICS
- •12.1 BASICS
- •12.1.1 Degrees of Freedom
- •12.2 HOMOGENEOUS MATRICES
- •12.2.1 Denavit-Hartenberg Transformation (D-H)
- •12.2.2 Orientation
- •12.2.3 Inverse Kinematics
- •12.2.4 The Jacobian
- •12.3 SPATIAL DYNAMICS
- •12.3.1 Moments of Inertia About Arbitrary Axes
- •12.3.2 Euler’s Equations of Motion
- •12.3.3 Impulses and Momentum
- •12.3.3.1 - Linear Momentum
- •12.3.3.2 - Angular Momentum
- •12.4 DYNAMICS FOR KINEMATICS CHAINS
- •12.4.1 Euler-Lagrange
- •12.4.2 Newton-Euler
- •12.5 REFERENCES
- •12.6 PRACTICE PROBLEMS
- •13. MOTION CONTROL
- •13.1 KINEMATICS
- •13.1.1 Basic Terms
- •13.1.2 Kinematics
- •13.1.2.1 - Geometry Methods for Forward Kinematics
- •13.1.2.2 - Geometry Methods for Inverse Kinematics
- •13.1.3 Modeling the Robot
- •13.2 PATH PLANNING
- •13.2.1 Slew Motion
- •13.2.1.1 - Joint Interpolated Motion
- •13.2.1.2 - Straight-line motion
- •13.2.2 Computer Control of Robot Paths (Incremental Interpolation)
- •13.3 PRACTICE PROBLEMS
- •13.4 LABORATORY - AXIS AND MOTION CONTROL
- •14. CNC MACHINES
- •14.1 MACHINE AXES
- •14.2 NUMERICAL CONTROL (NC)
- •14.2.1 NC Tapes
- •14.2.2 Computer Numerical Control (CNC)
- •14.2.3 Direct/Distributed Numerical Control (DNC)
- •14.3 EXAMPLES OF EQUIPMENT
- •14.3.1 EMCO PC Turn 50
- •14.3.2 Light Machines Corp. proLIGHT Mill
- •14.4 PRACTICE PROBLEMS
- •14.5 TUTORIAL - EMCO MAIER PCTURN 50 LATHE (OLD)
- •14.6.1 LABORATORY - CNC MACHINING
- •15. CNC PROGRAMMING
- •15.1 G-CODES
- •15.3 PROPRIETARY NC CODES
- •15.4 GRAPHICAL PART PROGRAMMING
- •15.5 NC CUTTER PATHS
- •15.6 NC CONTROLLERS
- •15.7 PRACTICE PROBLEMS
- •15.8 LABORATORY - CNC INTEGRATION
- •16. DATA AQUISITION
- •16.1 INTRODUCTION
- •16.2 ANALOG INPUTS
- •16.3 ANALOG OUTPUTS
- •16.4 REAL-TIME PROCESSING
- •16.5 DISCRETE IO
- •16.6 COUNTERS AND TIMERS
- •16.7 ACCESSING DAQ CARDS FROM LINUX
- •16.8 SUMMARY
- •16.9 PRACTICE PROBLEMS
- •16.10 LABORATORY - INTERFACING TO A DAQ CARD
- •17. VISIONS SYSTEMS
- •17.1 OVERVIEW
- •17.2 APPLICATIONS
- •17.3 LIGHTING AND SCENE
- •17.4 CAMERAS
- •17.5 FRAME GRABBER
- •17.6 IMAGE PREPROCESSING
- •17.7 FILTERING
- •17.7.1 Thresholding
- •17.8 EDGE DETECTION
- •17.9 SEGMENTATION
- •17.9.1 Segment Mass Properties
- •17.10 RECOGNITION
- •17.10.1 Form Fitting
- •17.10.2 Decision Trees
- •17.11 PRACTICE PROBLEMS
- •17.12 TUTORIAL - LABVIEW BASED IMAQ VISION
- •17.13 LABORATORY - VISION SYSTEMS FOR INSPECTION
- •18. INTEGRATION ISSUES
- •18.1 CORPORATE STRUCTURES
- •18.2 CORPORATE COMMUNICATIONS
- •18.3 COMPUTER CONTROLLED BATCH PROCESSES
- •18.4 PRACTICE PROBLEMS
- •18.5 LABORATORY - WORKCELL INTEGRATION
- •19. MATERIAL HANDLING
- •19.1 INTRODUCTION
- •19.2 VIBRATORY FEEDERS
- •19.3 PRACTICE QUESTIONS
- •19.4 LABORATORY - MATERIAL HANDLING SYSTEM
- •19.4.1 System Assembly and Simple Controls
- •19.5 AN EXAMPLE OF AN FMS CELL
- •19.5.1 Overview
- •19.5.2 Workcell Specifications
- •19.5.3 Operation of The Cell
- •19.6 THE NEED FOR CONCURRENT PROCESSING
- •19.7 PRACTICE PROBLEMS
- •20. PETRI NETS
- •20.1 INTRODUCTION
- •20.2 A BRIEF OUTLINE OF PETRI NET THEORY
- •20.3 MORE REVIEW
- •20.4 USING THE SUBROUTINES
- •20.4.1 Basic Petri Net Simulation
- •20.4.2 Transitions With Inhibiting Inputs
- •20.4.3 An Exclusive OR Transition:
- •20.4.4 Colored Tokens
- •20.4.5 RELATIONAL NETS
- •20.5 C++ SOFTWARE
- •20.6 IMPLEMENTATION FOR A PLC
- •20.7 PRACTICE PROBLEMS
- •20.8 REFERENCES
- •21. PRODUCTION PLANNING AND CONTROL
- •21.1 OVERVIEW
- •21.2 SCHEDULING
- •21.2.1 Material Requirements Planning (MRP)
- •21.2.2 Capacity Planning
- •21.3 SHOP FLOOR CONTROL
- •21.3.1 Shop Floor Scheduling - Priority Scheduling
- •21.3.2 Shop Floor Monitoring
- •22. SIMULATION
- •22.1 MODEL BUILDING
- •22.2 ANALYSIS
- •22.3 DESIGN OF EXPERIMENTS
- •22.4 RUNNING THE SIMULATION
- •22.5 DECISION MAKING STRATEGY
- •23. PLANNING AND ANALYSIS
- •23.1 FACTORS TO CONSIDER
- •23.2 PROJECT COST ACCOUNTING
- •24. REFERENCES
- •25. APPENDIX A - PROJECTS
- •25.1 TOPIC SELECTION
- •25.1.1 Previous Project Topics
- •25.2 CURRENT PROJECT DESCRIPTIONS
- •26. APPENDIX B - COMMON REFERENCES
- •26.1 JIC ELECTRICAL SYMBOLS
- •26.2 NEMA ENCLOSURES
page 1
Integration and Automation
of
Manufacturing Systems
by: Hugh Jack
© Copyright 1993-2001, Hugh Jack
page 2
PREFACE
1.INTEGRATED AND AUTOMATED MANUFACTURING . . . .13
1.1 |
INTRODUCTION |
13 |
|
|
1.1.1 |
Why Integrate? |
13 |
|
1.1.2 |
Why Automate? |
14 |
1.2 |
THE BIG PICTURE |
16 |
|
|
1.2.1 |
CAD/CAM? |
17 |
|
1.2.2 |
The Architecture of Integration |
17 |
|
1.2.3 |
General Concepts |
19 |
1.3 |
PRACTICE PROBLEMS |
22 |
2.AN INTRODUCTION TO LINUX/UNIX . . . . . . . . . . . . . . . . . . .23
2.1 |
OVERVIEW |
23 |
|
|
2.1.1 |
What is it? |
23 |
|
2.1.2 |
A (Brief) History |
24 |
|
2.1.3 |
Hardware required and supported |
25 |
|
2.1.4 |
Applications and uses |
25 |
|
2.1.5 |
Advantages and Disadvantages |
26 |
|
2.1.6 |
Getting It |
26 |
|
2.1.7 |
Distributions |
27 |
|
2.1.8 |
Installing |
27 |
2.2 |
USING LINUX |
28 |
|
|
2.2.1 |
Some Terminology |
28 |
|
2.2.2 |
File and directories |
29 |
|
2.2.3 |
User accounts and root |
31 |
|
2.2.4 |
Processes |
33 |
2.3 |
NETWORKING |
34 |
|
|
2.3.1 |
Security |
35 |
2.4 |
INTERMEDIATE CONCEPTS |
35 |
|
|
2.4.1 |
Shells |
35 |
|
2.4.2 |
X-Windows |
36 |
|
2.4.3 |
Configuring |
36 |
|
2.4.4 |
Desktop Tools |
37 |
2.5 |
LABORATORY - A LINUX SERVER |
37 |
|
2.6 |
TUTORIAL - INSTALLING LINUX |
38 |
|
2.7 |
TUTORIAL - USING LINUX |
40 |
|
2.8 |
REFERENCES |
41 |
3.AN INTRODUCTION TO C/C++ PROGRAMMING . . . . . . . . .43
3.1 |
INTRODUCTION |
43 |
3.2 |
PROGRAM PARTS |
44 |
3.3 |
CLASSES AND OVERLOADING |
50 |
3.4 |
HOW A ‘C’ COMPILER WORKS |
52 |
|
|
page 3 |
|
3.5 |
STRUCTURED ‘C’ CODE |
53 |
|
3.6 |
COMPILING C PROGRAMS IN LINUX |
54 |
|
|
3.6.1 |
Makefiles |
55 |
3.7 |
ARCHITECTURE OF ‘C’ PROGRAMS (TOP-DOWN) |
56 |
|
|
3.7.1 |
How? |
56 |
|
3.7.2 |
Why? |
57 |
3.8 |
CREATING TOP DOWN PROGRAMS |
58 |
|
3.9 |
CASE STUDY - THE BEAMCAD PROGRAM |
59 |
|
|
3.9.1 |
Objectives: |
59 |
|
3.9.2 |
Problem Definition: |
59 |
|
3.9.3 |
User Interface: |
59 |
|
|
Screen Layout (also see figure): |
59 |
|
|
Input: |
60 |
|
|
Output: |
60 |
|
|
Help: |
60 |
|
|
Error Checking: |
61 |
|
|
Miscellaneous: |
61 |
|
3.9.4 |
Flow Program: |
62 |
|
3.9.5 |
Expand Program: |
62 |
|
3.9.6 |
Testing and Debugging: |
64 |
|
3.9.7 |
Documentation |
65 |
|
|
Users Manual: |
65 |
|
|
Programmers Manual: |
65 |
|
3.9.8 |
Listing of BeamCAD Program. |
65 |
3.10 |
PRACTICE PROBLEMS |
66 |
|
3.11 |
LABORATORY - C PROGRAMMING |
66 |
4.NETWORK COMMUNICATION . . . . . . . . . . . . . . . . . . . . . . . . .68
4.1 |
INTRODUCTION |
68 |
|
4.2 |
NETWORKS |
69 |
|
|
4.2.1 |
Topology |
69 |
|
4.2.2 |
OSI Network Model |
71 |
|
4.2.3 |
Networking Hardware |
73 |
|
4.2.4 |
Control Network Issues |
75 |
|
4.2.5 |
Ethernet |
76 |
|
4.2.6 |
SLIP and PPP |
77 |
4.3 |
INTERNET |
78 |
|
|
4.3.1 |
Computer Addresses |
79 |
|
4.3.2 |
Computer Ports |
80 |
|
|
Mail Transfer Protocols |
81 |
|
|
FTP - File Transfer Protocol |
81 |
|
|
HTTP - Hypertext Transfer Protocol |
81 |
|
4.3.3 |
Security |
82 |
|
|
Firewalls and IP Masquerading |
84 |
4.4 |
FORMATS |
85 |
|
|
page 4 |
|
|
4.4.1 |
HTML |
85 |
|
4.4.2 |
URLs |
87 |
|
4.4.3 |
Encryption |
88 |
|
4.4.4 |
Clients and Servers |
88 |
|
4.4.5 |
Java |
89 |
|
4.4.6 |
Javascript |
89 |
|
4.4.7 |
CGI |
89 |
4.5 |
NETWORKING IN LINUX |
89 |
|
|
4.5.1 |
Network Programming in Linux |
91 |
4.6 |
DESIGN CASES |
102 |
|
4.7 |
SUMMARY |
103 |
|
4.8 |
PRACTICE PROBLEMS |
103 |
|
4.9 |
LABORATORY - NETWORKING |
104 |
|
|
4.9.1 |
Prelab |
105 |
|
4.9.2 |
Laboratory |
107 |
5.DATABASES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
5.1 |
SQL AND RELATIONAL DATABASES |
109 |
5.2 |
DATABASE ISSUES |
114 |
5.3 |
LABORATORY - SQL FOR DATABASE INTEGRATION |
114 |
5.4 |
LABORATORY - USING C FOR DATABASE CALLS |
116 |
6.COMMUNICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
6.1 |
SERIAL COMMUNICATIONS |
119 |
|
|
6.1.1 |
RS-232 |
122 |
6.2 |
SERIAL COMMUNICATIONS UNDER LINUX |
125 |
|
6.3 |
PARALLEL COMMUNICATIONS |
129 |
6.4LABORATORY - SERIAL INTERFACING AND PROGRAMMING
130
6.5 |
LABORATORY - STEPPER MOTOR CONTROLLER |
130 |
7.PROGRAMMABLE LOGIC CONTROLLERS (PLCs) . . . . . . .134
7.1 |
BASIC LADDER LOGIC |
136 |
|
7.2 |
WHAT DOES LADDER LOGIC DO? |
138 |
|
|
7.2.1 |
Connecting A PLC To A Process |
139 |
|
7.2.2 |
PLC Operation |
139 |
7.3 |
LADDER LOGIC |
141 |
|
|
7.3.1 |
Relay Terminology |
144 |
|
7.3.2 |
Ladder Logic Inputs |
146 |
|
7.3.3 |
Ladder Logic Outputs |
147 |
7.4 |
LADDER DIAGRAMS |
147 |
|
|
7.4.1 |
Ladder Logic Design |
148 |
|
7.4.2 |
A More Complicated Example of Design |
150 |
7.5 |
TIMERS/COUNTERS/LATCHES |
151 |
|
|
page 5 |
|
7.6 |
LATCHES |
152 |
|
7.7 |
TIMERS |
|
153 |
7.8 |
COUNTERS |
157 |
|
7.9 |
DESIGN AND SAFETY |
159 |
|
|
7.9.1 |
FLOW CHARTS |
160 |
7.10 |
SAFETY |
160 |
|
|
7.10.1 |
Grounding |
161 |
|
7.10.2 |
Programming/Wiring |
162 |
|
7.10.3 |
PLC Safety Rules |
162 |
|
7.10.4 |
Troubleshooting |
163 |
7.11 |
DESIGN CASES |
164 |
|
|
7.11.1 |
DEADMAN SWITCH |
164 |
|
7.11.2 |
CONVEYOR |
165 |
|
7.11.3 |
ACCEPT/REJECT SORTING |
165 |
|
7.11.4 |
SHEAR PRESS |
166 |
7.12 |
ADDRESSING |
168 |
|
|
7.12.1 |
Data Files |
169 |
|
|
Inputs and Outputs |
172 |
|
|
User Numerical Memory |
172 |
|
|
Timer Counter Memory |
172 |
|
|
PLC Status Bits (for PLC-5s) |
173 |
|
|
User Function Memory |
174 |
7.13 |
INSTRUCTION TYPES |
174 |
|
|
7.13.1 |
Program Control Structures |
175 |
|
7.13.2 |
Branching and Looping |
175 |
|
|
Immediate I/O Instructions |
179 |
|
|
Fault Detection and Interrupts |
181 |
|
7.13.3 |
Basic Data Handling |
182 |
|
|
Move Functions |
182 |
7.14 |
MATH FUNCTIONS |
184 |
|
7.15 |
LOGICAL FUNCTIONS |
191 |
|
|
7.15.1 |
Comparison of Values |
191 |
7.16 |
BINARY FUNCTIONS |
193 |
|
7.17 |
ADVANCED DATA HANDLING |
194 |
|
|
7.17.1 |
Multiple Data Value Functions |
195 |
|
7.17.2 |
Block Transfer Functions |
196 |
7.18 |
COMPLEX FUNCTIONS |
198 |
|
|
7.18.1 |
Shift Registers |
198 |
|
7.18.2 |
Stacks |
199 |
|
7.18.3 |
Sequencers |
200 |
7.19 |
ASCII FUNCTIONS |
202 |
|
7.20 |
DESIGN TECHNIQUES |
203 |
|
|
7.20.1 |
State Diagrams |
203 |
7.21 |
DESIGN CASES |
206 |
|
|
7.21.1 |
If-Then |
207 |
|
|
page 6 |
|
|
7.21.2 |
For-Next |
207 |
|
7.21.3 |
Conveyor |
208 |
7.22 |
IMPLEMENTATION |
209 |
|
7.23 |
PLC WIRING |
209 |
|
|
7.23.1 |
SWITCHED INPUTS AND OUTPUTS |
210 |
|
|
Input Modules |
211 |
|
|
Actuators |
212 |
|
|
Output Modules |
213 |
7.24 |
THE PLC ENVIRONMENT |
216 |
|
|
7.24.1 |
Electrical Wiring Diagrams |
216 |
|
7.24.2 |
Wiring |
219 |
|
7.24.3 |
Shielding and Grounding |
221 |
|
7.24.4 |
PLC Environment |
223 |
|
7.24.5 |
SPECIAL I/O MODULES |
224 |
7.25 |
PRACTICE PROBLEMS |
227 |
|
7.26 |
REFERENCES |
237 |
|
7.27 |
LABORATORY - SERIAL INTERFACING TO A PLC |
238 |
8.PLCS AND NETWORKING . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
8.1 |
OPEN NETWORK TYPES |
240 |
|
|
8.1.1 |
Devicenet |
240 |
|
8.1.2 |
CANbus |
245 |
|
8.1.3 |
Controlnet |
246 |
|
8.1.4 |
Profibus |
247 |
8.2 |
PROPRIETARY NETWORKS |
248 |
|
|
|
Data Highway |
248 |
8.3 |
PRACTICE PROBLEMS |
252 |
|
8.4 |
LABORATORY - DEVICENET |
258 |
|
8.5 |
TUTORIAL - SOFTPLC AND DEVICENET |
258 |
9.INDUSTRIAL ROBOTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
9.1 |
INTRODUCTION |
262 |
|
|
9.1.1 |
Basic Terms |
262 |
|
9.1.2 |
Positioning Concepts |
266 |
|
|
Accuracy and Repeatability |
266 |
|
|
Control Resolution |
270 |
|
|
Payload |
271 |
9.2 |
ROBOT TYPES |
276 |
|
|
9.2.1 |
Basic Robotic Systems |
276 |
|
9.2.2 |
Types of Robots |
277 |
|
|
Robotic Arms |
277 |
|
|
Autonomous/Mobile Robots |
280 |
|
|
Automatic Guided Vehicles (AGVs) |
280 |
9.3 |
MECHANISMS |
281 |
|
9.4 |
ACTUATORS |
282 |
|
|
page 7 |
|
9.5 |
A COMMERCIAL ROBOT |
283 |
|
|
9.5.1 |
Mitsubishi RV-M1 Manipulator |
284 |
|
9.5.2 |
Movemaster Programs |
286 |
|
|
Language Examples |
286 |
|
9.5.3 |
Command Summary |
290 |
9.6 |
PRACTICE PROBLEMS |
291 |
|
9.7 |
LABORATORY - MITSUBISHI RV-M1 ROBOT |
296 |
|
9.8 |
TUTORIAL - MITSUBISHI RV-M1 |
296 |
10.OTHER INDUSTRIAL ROBOTS . . . . . . . . . . . . . . . . . . . . . . . .299
10.1 |
SEIKO RT 3000 MANIPULATOR |
299 |
|
|
10.1.1 |
DARL Programs |
300 |
|
|
Language Examples |
301 |
|
|
Commands Summary |
305 |
10.2 |
IBM 7535 MANIPULATOR |
308 |
|
|
10.2.1 |
AML Programs |
312 |
10.3 |
ASEA IRB-1000 |
317 |
|
10.4 |
UNIMATION PUMA (360, 550, 560 SERIES) |
319 |
|
10.5 |
PRACTICE PROBLEMS |
320 |
|
10.6 |
LABORATORY - SEIKO RT-3000 ROBOT |
330 |
|
10.7 |
TUTORIAL - SEIKO RT-3000 ROBOT |
331 |
|
10.8 |
LABORATORY - ASEA IRB-1000 ROBOT |
332 |
|
10.9 |
TUTORIAL - ASEA IRB-1000 ROBOT |
332 |
11.ROBOT APPLICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
|
11.0.1 |
Overview |
333 |
|
11.0.2 Spray Painting and Finishing |
335 |
|
|
11.0.3 |
Welding |
335 |
|
11.0.4 |
Assembly |
336 |
|
11.0.5 Belt Based Material Transfer |
336 |
|
11.1 |
END OF ARM TOOLING (EOAT) |
337 |
|
|
11.1.1 |
EOAT Design |
337 |
|
11.1.2 |
Gripper Mechanisms |
340 |
|
|
Vacuum grippers |
342 |
|
11.1.3 |
Magnetic Grippers |
344 |
|
|
Adhesive Grippers |
345 |
|
11.1.4 |
Expanding Grippers |
345 |
|
11.1.5 Other Types Of Grippers |
346 |
|
11.2 |
ADVANCED TOPICS |
347 |
|
|
11.2.1 |
Simulation/Off-line Programming |
347 |
11.3 |
INTERFACING |
348 |
|
11.4 |
PRACTICE PROBLEMS |
348 |
|
11.5 |
LABORATORY - ROBOT INTERFACING |
350 |
|
11.6 |
LABORATORY - ROBOT WORKCELL INTEGRATION |
351 |
page 8
12.SPATIAL KINEMATICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
12.1 |
BASICS |
|
352 |
|
12.1.1 |
Degrees of Freedom |
353 |
12.2 |
HOMOGENEOUS MATRICES |
354 |
|
|
12.2.1 |
Denavit-Hartenberg Transformation (D-H) |
359 |
|
12.2.2 |
Orientation |
361 |
|
12.2.3 |
Inverse Kinematics |
363 |
|
12.2.4 |
The Jacobian |
364 |
12.3 |
SPATIAL DYNAMICS |
366 |
|
|
12.3.1 |
Moments of Inertia About Arbitrary Axes |
366 |
|
12.3.2 |
Euler’s Equations of Motion |
369 |
|
12.3.3 |
Impulses and Momentum |
370 |
|
|
Linear Momentum |
370 |
|
|
Angular Momentum |
371 |
12.4 |
DYNAMICS FOR KINEMATICS CHAINS |
372 |
|
|
12.4.1 |
Euler-Lagrange |
372 |
|
12.4.2 |
Newton-Euler |
375 |
12.5 |
REFERENCES |
375 |
|
12.6 |
PRACTICE PROBLEMS |
376 |
13.MOTION CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .390
13.1 |
KINEMATICS |
390 |
|
|
13.1.1 |
Basic Terms |
390 |
|
13.1.2 |
Kinematics |
391 |
|
|
Geometry Methods for Forward Kinematics |
392 |
|
|
Geometry Methods for Inverse Kinematics |
393 |
|
13.1.3 |
Modeling the Robot |
394 |
13.2 |
PATH PLANNING |
395 |
|
|
13.2.1 |
Slew Motion |
395 |
|
|
Joint Interpolated Motion |
397 |
|
|
Straight-line motion |
397 |
13.2.2Computer Control of Robot Paths (Incremental Interpolation)400
13.3 |
PRACTICE PROBLEMS |
403 |
13.4 |
LABORATORY - AXIS AND MOTION CONTROL |
408 |
14.CNC MACHINES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .409
14.1 |
MACHINE AXES |
409 |
|
14.2 |
NUMERICAL CONTROL (NC) |
409 |
|
|
14.2.1 |
NC Tapes |
410 |
|
14.2.2 |
Computer Numerical Control (CNC) |
411 |
|
14.2.3 |
Direct/Distributed Numerical Control (DNC) |
412 |
14.3 |
EXAMPLES OF EQUIPMENT |
414 |
|
|
14.3.1 |
EMCO PC Turn 50 |
414 |
|
14.3.2 |
Light Machines Corp. proLIGHT Mill |
415 |
|
page 9 |
|
14.4 |
PRACTICE PROBLEMS |
417 |
14.5 |
TUTORIAL - EMCO MAIER PCTURN 50 LATHE (OLD) |
417 |
14.6TUTORIAL - PC TURN 50 LATHE DOCUMENTATION: (By Jonathan
DeBoer) 418
14.6.1 LABORATORY - CNC MACHINING |
424 |
15.CNC PROGRAMMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .426
15.1 |
G-CODES |
428 |
15.2 |
APT |
436 |
15.3 |
PROPRIETARY NC CODES |
440 |
15.4 |
GRAPHICAL PART PROGRAMMING |
441 |
15.5 |
NC CUTTER PATHS |
442 |
15.6 |
NC CONTROLLERS |
444 |
15.7 |
PRACTICE PROBLEMS |
445 |
15.8 |
LABORATORY - CNC INTEGRATION |
446 |
16.DATA AQUISITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .448
16.1 |
INTRODUCTION |
448 |
16.2 |
ANALOG INPUTS |
449 |
16.3 |
ANALOG OUTPUTS |
455 |
16.4 |
REAL-TIME PROCESSING |
458 |
16.5 |
DISCRETE IO |
459 |
16.6 |
COUNTERS AND TIMERS |
459 |
16.7 |
ACCESSING DAQ CARDS FROM LINUX |
459 |
16.8 |
SUMMARY |
476 |
16.9 |
PRACTICE PROBLEMS |
476 |
16.10 |
LABORATORY - INTERFACING TO A DAQ CARD |
478 |
17.VISIONS SYSTEMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
17.1 |
OVERVIEW |
479 |
|
17.2 |
APPLICATIONS |
480 |
|
17.3 |
LIGHTING AND SCENE |
481 |
|
17.4 |
CAMERAS |
482 |
|
17.5 |
FRAME GRABBER |
486 |
|
17.6 |
IMAGE PREPROCESSING |
486 |
|
17.7 |
FILTERING |
487 |
|
|
17.7.1 |
Thresholding |
487 |
17.8 |
EDGE DETECTION |
487 |
|
17.9 |
SEGMENTATION |
488 |
|
|
17.9.1 |
Segment Mass Properties |
490 |
17.10 |
RECOGNITION |
491 |
|
|
17.10.1 |
Form Fitting |
491 |
|
17.10.2 |
Decision Trees |
492 |
|
page 10 |
|
17.11 |
PRACTICE PROBLEMS |
494 |
17.12 |
TUTORIAL - LABVIEW BASED IMAQ VISION |
499 |
17.13 |
LABORATORY - VISION SYSTEMS FOR INSPECTION |
500 |
18.INTEGRATION ISSUES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .502
18.1 |
CORPORATE STRUCTURES |
502 |
18.2 |
CORPORATE COMMUNICATIONS |
502 |
18.3 |
COMPUTER CONTROLLED BATCH PROCESSES |
514 |
18.4 |
PRACTICE PROBLEMS |
516 |
18.5 |
LABORATORY - WORKCELL INTEGRATION |
516 |
19.MATERIAL HANDLING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .518
19.1 |
INTRODUCTION |
518 |
|
19.2 |
VIBRATORY FEEDERS |
520 |
|
19.3 |
PRACTICE QUESTIONS |
521 |
|
19.4 |
LABORATORY - MATERIAL HANDLING SYSTEM |
521 |
|
|
19.4.1 System Assembly and Simple Controls |
521 |
|
19.5 |
AN EXAMPLE OF AN FMS CELL |
523 |
|
|
19.5.1 |
Overview |
523 |
|
19.5.2 |
Workcell Specifications |
525 |
|
19.5.3 |
Operation of The Cell |
526 |
19.6 |
THE NEED FOR CONCURRENT PROCESSING |
534 |
|
19.7 |
PRACTICE PROBLEMS |
536 |
20.PETRI NETS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537
20.1 |
INTRODUCTION |
537 |
|
20.2 |
A BRIEF OUTLINE OF PETRI NET THEORY |
537 |
|
20.3 |
MORE REVIEW |
540 |
|
20.4 |
USING THE SUBROUTINES |
548 |
|
|
20.4.1 |
Basic Petri Net Simulation |
548 |
|
20.4.2 |
Transitions With Inhibiting Inputs |
550 |
|
20.4.3 |
An Exclusive OR Transition: |
552 |
|
20.4.4 |
Colored Tokens |
555 |
|
20.4.5 |
RELATIONAL NETS |
557 |
20.5 |
C++ SOFTWARE |
558 |
|
20.6 |
IMPLEMENTATION FOR A PLC |
559 |
|
20.7 |
PRACTICE PROBLEMS |
564 |
|
20.8 |
REFERENCES |
565 |
21.PRODUCTION PLANNING AND CONTROL . . . . . . . . . . . . .566
21.1 |
OVERVIEW |
566 |
|
21.2 |
SCHEDULING |
567 |
|
|
21.2.1 |
Material Requirements Planning (MRP) |
567 |
|
21.2.2 |
Capacity Planning |
569 |
|
|
page 11 |
|
21.3 |
SHOP FLOOR CONTROL |
570 |
|
|
21.3.1 |
Shop Floor Scheduling - Priority Scheduling |
570 |
|
21.3.2 |
Shop Floor Monitoring |
571 |
22. SIMULATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .572
22.1 |
MODEL BUILDING |
573 |
22.2 |
ANALYSIS |
575 |
22.3 |
DESIGN OF EXPERIMENTS |
576 |
22.4 |
RUNNING THE SIMULATION |
579 |
22.5 |
DECISION MAKING STRATEGY |
579 |
23. PLANNING AND ANALYSIS . . . . . . . . . . . . . . . . . . . . . . . . . .581
23.1 |
FACTORS TO CONSIDER |
581 |
23.2 |
PROJECT COST ACCOUNTING |
583 |
24. REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .587 25. APPENDIX A - PROJECTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .588
|
25.1 |
TOPIC SELECTION |
588 |
|
|
25.1.1 Previous Project Topics |
588 |
|
25.2 |
CURRENT PROJECT DESCRIPTIONS |
590 |
26. |
APPENDIX B - COMMON REFERENCES . . . . . . . . . . . . . . . . |
591 |
|
|
26.1 |
JIC ELECTRICAL SYMBOLS |
591 |
|
26.2 |
NEMA ENCLOSURES |
592 |
page 12
PREFACE
I have been involved in teaching laboratory based integrated manufacturing courses since 1993. Over that time I have used many textbooks, but I have always been unsatisfied with their technical depth. To offset this I had to supply supplemental materials. These supplemental materials have evolved into this book.
This book is designed to focus on topics relevant to the modern manufacturer, while avoiding topics that are more research oriented. This allows the chapters to focus on the applicable theory for the integrated systems, and then discuss implementation.
Many of the chapters of this book use the Linux operating system. Some might argue that Microsoft products are more pervasive, and so should be emphasized, but I disagree with this. It is much easier to implement a complex system in Linux, and once implemented the system is more reliable, secure and easier to maintain. In addition the Microsoft operating system is designed with a model that focuses on entertainment and office use and is incompatible with the needs of manufacturing professionals. Most notably there is a constant pressure to upgrade every 2-3 years adding a burden.
The reader is expected to have some knowledge of C, or C++ programming, although a review chapter is provided. When possible a programming example is supplied to allow the reader to develop their own programs for integration and automation.
page 13
1. INTEGRATED AND AUTOMATED MANUFACTURING
Integrated manufacturing uses computers to connect physically separated processes. When integrated, the processes can share information and initiate actions. This allows decisions to be made faster and with fewer errors. Automation allows manufacturing processes to be run automatically, without requiring intervention.
This chapter will discuss how these systems fit into manufacturing, and what role they play.
1.1 INTRODUCTION
An integrated system requires that there be two or more computers connected to pass information. A simple example is a robot controller and a programmable logic controller working together in a single machine. A complex example is an entire manufacturing plant with hundreds of workstations connected to a central database. The database is used to distribute work instructions, job routing data and to store quality control test results. In all cases the major issue is connecting devices for the purposes of transmitting data.
•Automated equipment and systems don’t require human effort or direction. Although this does not require a computer based solution
•Automated systems benefit from some level of integration
1.1.1 Why Integrate?
There is a tendency to look at computer based solutions as inherently superior. This is an assumption that an engineer cannot afford to entertain. Some of the factors that justify an inte-
page 14
grated system are listed below.
•a large organization where interdepartmental communication is a problem
•the need to monitor processes
•Things to Avoid when making a decision for integration and automation,
-ignore impact on upstream and downstream operations
-allow the system to become the driving force in strategy
-believe the vendor will solve the problem
-base decisions solely on financials
-ignore employee input to the process
-try to implement all at once (if possible)
•Justification of integration and automation,
-consider “BIG” picture
-determine key problems that must be solved
-highlight areas that will be impacted in enterprise
-determine kind of flexibility needed
-determine what kind of integration to use
-look at FMS impacts
-consider implementation cost based on above
•Factors to consider in integration decision,
-volume of product
-previous experience of company with FMS
-product mix
-scheduling / production mixes
-extent of information system usage in organization (eg. MRP)
-use of CAD/CAM at the front end.
-availability of process planning and process data
* Process planning is only part of CIM, and cannot stand alone.
1.1.2 Why Automate?
•Why ? - In many cases there are valid reasons for assisting humans
-tedious work -- consistency required
-dangerous
-tasks are beyond normal human abilities (e.g., weight, time, size, etc)
-economics
page 15
• When?
hard automation |
unit cost |
robotic assembly |
manual assembly |
manual |
flexible |
fixed |
constant production volumes
Figure 1.1 - Automation Tradeoffs
•Advantages of Automated Manufacturing,
-improved work flow
-reduced handling
-simplification of production
-reduced lead time
-increased moral in workers (after a wise implementation)
-more responsive to quality, and other problems
-etc.
•Various measures of flexibility,
-Able to deal with slightly, or greatly mixed parts.
-Variations allowed in parts mix
-Routing flexibility to alternate machines
-Volume flexibility
-Design change flexibility