- 1.1 INTRODUCTION 14
- 1.1.1 Why Integrate? 14
- 1.1.2 Why Automate? 15
- 1.2 THE BIG PICTURE 17
- 1.2.1 CAD/CAM? 18
- 1.2.2 The Architecture of Integration 18
- 1.2.3 General Concepts 19
- 1.3 PRACTICE PROBLEMS 23
- 2.1 OVERVIEW 24
- 2.1.1 What is it? 24
- 2.1.2 A (Brief) History 25
- 2.1.3 Hardware required and supported 26
- 2.1.4 Applications and uses 26
- 2.1.5 Advantages and Disadvantages 27
- 2.1.6 Getting It 27
- 2.1.7 Distributions 28
- 2.1.8 Installing 28
- 2.2 USING LINUX 29
- 2.2.1 Some Terminology 29
- 2.2.2 File and directories 30
- 2.2.3 User accounts and root 32
- 2.2.4 Processes 34
- 2.3 NETWORKING 35
- 2.3.1 Security 36
- 2.4 INTERMEDIATE CONCEPTS 36
- 2.4.1 Shells 36
- 2.4.2 X-Windows 37
- 2.4.3 Configuring 37
- 2.4.4 Desktop Tools 38
- 2.5 LABORATORY - A LINUX SERVER 38
- 2.6 TUTORIAL - INSTALLING LINUX 39
- 2.7 TUTORIAL - USING LINUX 41
- 2.8 REFERENCES 43
- 3.1 INTRODUCTION 44
- 3.2 PROGRAM PARTS 45
- 3.3 CLASSES AND OVERLOADING 51
- 3.4 HOW A `C' COMPILER WORKS 53
- 3.5 STRUCTURED `C' CODE 54
- 3.6 COMPILING C PROGRAMS IN LINUX 55
- 3.6.1 Makefiles 56
- 3.7 ARCHITECTURE OF `C' PROGRAMS (TOP-DOWN) 57
- 3.7.1 How? 57
- 3.7.2 Why? 58
- 3.8 CREATING TOP DOWN PROGRAMS 59
- 3.9 CASE STUDY - THE BEAMCAD PROGRAM 60
- 3.9.1 Objectives: 60
- 3.9.2 Problem Definition: 60
- 3.9.3 User Interface: 60
- Screen Layout (also see figure): 60
- Input: 61
- Output: 61
- Help: 61
- Error Checking: 62
- Miscellaneous: 62
- 3.9.4 Flow Program: 63
- 3.9.5 Expand Program: 63
- 3.9.6 Testing and Debugging: 65
- 3.9.7 Documentation 66
- Users Manual: 66
- Programmers Manual: 66
- 3.9.8 Listing of BeamCAD Program. 66
- 3.10 PRACTICE PROBLEMS 67
- 3.11 LABORATORY - C PROGRAMMING 68
- 4.1 INTRODUCTION 71
- 4.2 MENU DRIVEN PROGRAMS 71
- 4.3 POLLING PROGRAMS 72
- 4.4 NON-BLOCKING USER INPUT 73
- 4.5 DOCUMENTING 74
- 4.6 OTHER TYPES - ADD LATER 75
- 4.7 PRACTICE PROBLEMS 75
- 4.8 LABORATORY - PROGRAM STRUCTURES 75
- 5.1 INTRODUCTION 77
- 5.2 NETWORKS 78
- 5.2.1 Topology 78
- 5.2.2 OSI Network Model 80
- 5.2.3 Networking Hardware 82
- 5.2.4 Control Network Issues 84
- 5.2.5 Ethernet 85
- 5.2.6 SLIP and PPP 86
- 5.3 INTERNET 87
- 5.3.1 Computer Addresses 88
- 5.3.2 Computer Ports 89
- 5.4 NETWORKING IN LINUX 90
- 5.4.1 Network Programming in Linux 92
- 5.5 DESIGN CASES 104
- 5.6 SUMMARY 104
- 5.7 PRACTICE PROBLEMS 104
- 5.8 LABORATORY - NETWORKING 105
- 5.8.1 Prelab 106
- 5.8.2 Laboratory 108
- 6.1 SQL AND RELATIONAL DATABASES 110
- 6.2 DATABASE ISSUES 115
- 6.3 LABORATORY - SQL FOR DATABASE INTEGRATION 115
- 6.4 LABORATORY - USING C FOR DATABASE CALLS 117
- 7.1 INTRODUCTION 120
- 7.2 Protocols 120
- 7.2.1 Mail Transfer Protocols 120
- 7.2.2 FTP - File Transfer Protocol 120
- 7.2.3 HTTP - Hypertext Transfer Protocol 121
- 7.2.4 Firewalls and IP Masquerading 121
- 7.3 FORMATS 121
- 7.3.1 HTML 122
- 7.3.2 URLs 124
- 7.3.3 Encryption 125
- 7.4 Clients and Servers 125
- 7.5 Java 126
- 7.5.1 Javascript 127
- 7.6 CGI 127
- 7.7 DESIGN CASES 127
- 7.8 SUMMARY 128
- 7.9 PRACTICE PROBLEMS 128
- 7.10 LABORATORY - NETWORKING 128
- 7.10.1 Prelab 128
- 7.10.2 Laboratory 129
- 8.1 INTRODUCTION 132
- 8.2 COMPUTERS AND HARDWARE 135
- 8.3 PRACTICE PROBLEMS 136
- 8.4 LABORATORY - COMPUTER SECURITY 136
- 9.1 SERIAL COMMUNICATIONS 138
- 9.1.1 RS-232 141
- 9.2 SERIAL COMMUNICATIONS UNDER LINUX 144
- 9.3 PARALLEL COMMUNICATIONS 148
- 9.4 LABORATORY - SERIAL INTERFACING AND PROGRAMMING 149
- 9.5 LABORATORY - STEPPER MOTOR CONTROLLER 149
- 10.1 BASIC LADDER LOGIC 155
- 10.2 WHAT DOES LADDER LOGIC DO? 157
- 10.2.1 Connecting A PLC To A Process 158
- 10.2.2 PLC Operation 158
- 10.3 LADDER LOGIC 160
- 10.3.1 Relay Terminology 163
- 10.3.2 Ladder Logic Inputs 165
- 10.3.3 Ladder Logic Outputs 166
- 10.4 LADDER DIAGRAMS 166
- 10.4.1 Ladder Logic Design 167
- 10.4.2 A More Complicated Example of Design 169
- 10.5 TIMERS/COUNTERS/LATCHES 170
- 10.6 LATCHES 171
- 10.7 TIMERS 172
- 10.8 COUNTERS 176
- 10.9 DESIGN AND SAFETY 178
- 10.9.1 FLOW CHARTS 179
- 10.10 SAFETY 179
- 10.10.1 Grounding 180
- 10.10.2 Programming/Wiring 181
- 10.10.3 PLC Safety Rules 181
- 10.10.4 Troubleshooting 182
- 10.11 DESIGN CASES 183
- 10.11.1 DEADMAN SWITCH 183
- 10.11.2 CONVEYOR 184
- 10.11.3 ACCEPT/REJECT SORTING 184
- 10.11.4 SHEAR PRESS 185
- 10.12 ADDRESSING 187
- 10.12.1 Data Files 188
- Inputs and Outputs 191
- User Numerical Memory 191
- Timer Counter Memory 191
- PLC Status Bits (for PLC-5s) 192
- User Function Memory 193
- 10.13 INSTRUCTION TYPES 193
- 10.13.1 Program Control Structures 194
- 10.13.2 Branching and Looping 194
- Immediate I/O Instructions 198
- Fault Detection and Interrupts 200
- 10.13.3 Basic Data Handling 201
- Move Functions 201
- 10.14 MATH FUNCTIONS 203
- 10.15 LOGICAL FUNCTIONS 210
- 10.15.1 Comparison of Values 210
- 10.16 BINARY FUNCTIONS 212
- 10.17 ADVANCED DATA HANDLING 213
- 10.17.1 Multiple Data Value Functions 214
- 10.17.2 Block Transfer Functions 215
- 10.18 COMPLEX FUNCTIONS 217
- 10.18.1 Shift Registers 217
- 10.18.2 Stacks 218
- 10.18.3 Sequencers 219
- 10.19 ASCII FUNCTIONS 221
- 10.20 DESIGN TECHNIQUES 222
- 10.20.1 State Diagrams 222
- 10.21 DESIGN CASES 225
- 10.21.1 If-Then 226
- 10.21.2 For-Next 226
- 10.21.3 Conveyor 227
- 10.22 IMPLEMENTATION 228
- 10.23 PLC WIRING 228
- 10.23.1 SWITCHED INPUTS AND OUTPUTS 229
- Input Modules 230
- Actuators 231
- Output Modules 232
- 10.24 THE PLC ENVIRONMENT 235
- 10.24.1 Electrical Wiring Diagrams 235
- 10.24.2 Wiring 238
- 10.24.3 Shielding and Grounding 240
- 10.24.4 PLC Environment 242
- 10.24.5 SPECIAL I/O MODULES 243
- 10.25 PRACTICE PROBLEMS 246
- 10.26 REFERENCES 256
- 10.27 LABORATORY - SERIAL INTERFACING TO A PLC 257
- 11.1 INTRODUCTION 259
- 11.1.1 Devicenet 259
- 11.2 PRACTICE PROBLEMS 259
- 13.1 OPEN NETWORK TYPES 260
- 13.1.1 Devicenet 260
- 13.1.2 CANbus 265
- 13.1.3 Controlnet 266
- 13.1.4 Profibus 267
- 13.2 PROPRIETARY NETWORKS 268
- Data Highway 268
- 13.3 PRACTICE PROBLEMS 272
- 13.4 LABORATORY - DEVICENET 278
- 13.5 TUTORIAL - SOFTPLC AND DEVICENET 278
- 14.1 INTRODUCTION 282
- 14.1.1 Basic Terms 282
- 14.1.2 Positioning Concepts 286
- Accuracy and Repeatability 286
- Control Resolution 290
- Payload 291
- 14.2 ROBOT TYPES 296
- 14.2.1 Basic Robotic Systems 296
- 14.2.2 Types of Robots 297
- Robotic Arms 297
- Autonomous/Mobile Robots 300
- Automatic Guided Vehicles (AGVs) 300
- 14.3 MECHANISMS 301
- 14.4 ACTUATORS 302
- 14.5 A COMMERCIAL ROBOT 303
- 14.5.1 Mitsubishi RV-M1 Manipulator 304
- 14.5.2 Movemaster Programs 306
- Language Examples 306
- 14.5.3 Command Summary 310
- 14.6 PRACTICE PROBLEMS 311
- 14.7 LABORATORY - MITSUBISHI RV-M1 ROBOT 316
- 14.8 TUTORIAL - MITSUBISHI RV-M1 316
- 15.1 SEIKO RT 3000 MANIPULATOR 319
- 15.1.1 DARL Programs 320
- Language Examples 321
- Commands Summary 325
- 15.2 IBM 7535 MANIPULATOR 328
- 15.2.1 AML Programs 332
- 15.3 ASEA IRB-1000 337
- 15.4 UNIMATION PUMA (360, 550, 560 SERIES) 339
- 15.5 PRACTICE PROBLEMS 340
- 15.6 LABORATORY - SEIKO RT-3000 ROBOT 350
- 15.7 TUTORIAL - SEIKO RT-3000 ROBOT 351
- 15.8 LABORATORY - ASEA IRB-1000 ROBOT 352
- 15.9 TUTORIAL - ASEA IRB-1000 ROBOT 352
- 16.0.1 Overview 353
- 16.0.2 Spray Painting and Finishing 355
- 16.0.3 Welding 355
- 16.0.4 Assembly 356
- 16.0.5 Belt Based Material Transfer 356
- 16.1 END OF ARM TOOLING (EOAT) 357
- 16.1.1 EOAT Design 357
- 16.1.2 Gripper Mechanisms 360
- Vacuum grippers 362
- 16.1.3 Magnetic Grippers 364
- Adhesive Grippers 365
- 16.1.4 Expanding Grippers 365
- 16.1.5 Other Types Of Grippers 366
- 16.2 ADVANCED TOPICS 367
- 16.2.1 Simulation/Off-line Programming 367
- 16.3 INTERFACING 368
- 16.4 PRACTICE PROBLEMS 368
- 16.5 LABORATORY - ROBOT INTERFACING 370
- 16.6 LABORATORY - ROBOT WORKCELL INTEGRATION 371
- 17.1 BASICS 372
- 17.1.1 Degrees of Freedom 373
- 17.2 HOMOGENEOUS MATRICES 374
- 17.2.1 Denavit-Hartenberg Transformation (D-H) 379
- 17.2.2 Orientation 381
- 17.2.3 Inverse Kinematics 383
- 17.2.4 The Jacobian 384
- 17.3 SPATIAL DYNAMICS 386
- 17.3.1 Moments of Inertia About Arbitrary Axes 386
- 17.3.2 Euler's Equations of Motion 389
- 17.3.3 Impulses and Momentum 390
- Linear Momentum 390
- Angular Momentum 391
- 17.4 DYNAMICS FOR KINEMATICS CHAINS 392
- 17.4.1 Euler-Lagrange 392
- 17.4.2 Newton-Euler 395
- 17.5 REFERENCES 395
- 17.6 PRACTICE PROBLEMS 396
- 18.1 KINEMATICS 410
- 18.1.1 Basic Terms 410
- 18.1.2 Kinematics 411
- Geometry Methods for Forward Kinematics 412
- Geometry Methods for Inverse Kinematics 413
- 18.1.3 Modeling the Robot 414
- 18.2 PATH PLANNING 415
- 18.2.1 Slew Motion 415
- Joint Interpolated Motion 417
- Straight-line motion 417
- 18.2.2 Computer Control of Robot Paths (Incremental Interpolation) 420
- 18.3 PRACTICE PROBLEMS 423
- 18.4 LABORATORY - AXIS AND MOTION CONTROL 428
- 19.1 MACHINE AXES 429
- 19.2 NUMERICAL CONTROL (NC) 429
- 19.2.1 NC Tapes 430
- 19.2.2 Computer Numerical Control (CNC) 431
- 19.2.3 Direct/Distributed Numerical Control (DNC) 432
- 19.3 EXAMPLES OF EQUIPMENT 434
- 19.3.1 EMCO PC Turn 50 434
- 19.3.2 Light Machines Corp. proLIGHT Mill 435
- 19.4 PRACTICE PROBLEMS 437
- 19.4.1 LABORATORY - CNC MACHINING 437
- 19.5 TUTORIAL - EMCO MAIER PCTURN 50 LATHE 438
- 20.1 G-CODES 444
- 20.2 APT 452
- 20.3 PROPRIETARY NC CODES 456
- 20.4 GRAPHICAL PART PROGRAMMING 457
- 20.5 NC CUTTER PATHS 458
- 20.6 NC CONTROLLERS 460
- 20.7 PRACTICE PROBLEMS 461
- 20.8 LABORATORY - CNC INTEGRATION 462
- 21.1 INTRODUCTION 464
- 21.2 ANALOG INPUTS 465
- 21.3 ANALOG OUTPUTS 471
- 21.4 REAL-TIME PROCESSING 474
- 21.5 DISCRETE IO 475
- 21.6 COUNTERS AND TIMERS 475
- 21.7 ACCESSING DAQ CARDS FROM LINUX 475
- 21.8 SUMMARY 492
- 21.9 PRACTICE PROBLEMS 492
- 21.10 LABORATORY - INTERFACING TO A DAQ CARD 494
- 22.1 OVERVIEW 495
- 22.2 APPLICATIONS 496
- 22.3 LIGHTING AND SCENE 497
- 22.4 CAMERAS 498
- 22.5 FRAME GRABBER 502
- 22.6 IMAGE PREPROCESSING 502
- 22.7 FILTERING 503
- 22.7.1 Thresholding 503
- 22.8 EDGE DETECTION 503
- 22.9 SEGMENTATION 504
- 22.9.1 Segment Mass Properties 506
- 22.10 RECOGNITION 507
- 22.10.1 Form Fitting 507
- 22.10.2 Decision Trees 508
- 22.11 PRACTICE PROBLEMS 510
- 22.12 TUTORIAL - LABVIEW BASED IMAQ VISION 515
- 22.13 LABORATORY - VISION SYSTEMS FOR INSPECTION 516
- 22.14 TUTORIAL - DVT CAMERAS 518
- 22.15 LABORATORY 12 - VISION SYSTEMS FOR INSPECTION 519
- 23.1 INTRODUCTION 520
- 23.2 PRACTICE PROBLEMS 520
- 23.3 LABORATORY - COMPUTER SECURITY 520
- 28.1 INTRODUCTION 521
- 28.2 VIBRATORY FEEDERS 523
- 28.3 PRACTICE QUESTIONS 524
- 28.4 LABORATORY - MATERIAL HANDLING SYSTEM 524
- 28.4.1 System Assembly and Simple Controls 524
- 28.5 AN EXAMPLE OF AN FMS CELL 526
- 28.5.1 Overview 526
- 28.5.2 Workcell Specifications 528
- 28.5.3 Operation of The Cell 529
- 28.6 THE NEED FOR CONCURRENT PROCESSING 537
- 28.7 PRACTICE PROBLEMS 539
- 29.1 INTRODUCTION 540
- 29.2 A BRIEF OUTLINE OF PETRI NET THEORY 540
- 29.3 MORE REVIEW 543
- 29.4 USING THE SUBROUTINES 551
- 29.4.1 Basic Petri Net Simulation 551
- 29.4.2 Transitions With Inhibiting Inputs 553
- 29.4.3 An Exclusive OR Transition: 555
- 29.4.4 Colored Tokens 558
- 29.4.5 RELATIONAL NETS 560
- 29.5 C++ SOFTWARE 561
- 29.6 IMPLEMENTATION FOR A PLC 562
- 29.7 PRACTICE PROBLEMS 567
- 29.8 REFERENCES 568
- 30.1 OVERVIEW 569
- 30.2 SCHEDULING 570
- 30.2.1 Material Requirements Planning (MRP) 570
- 30.2.2 Capacity Planning 572
- 30.3 SHOP FLOOR CONTROL 573
- 30.3.1 Shop Floor Scheduling - Priority Scheduling 573
- 30.3.2 Shop Floor Monitoring 574
- 31.1 MODEL BUILDING 576
- 31.2 ANALYSIS 578
- 31.3 DESIGN OF EXPERIMENTS 579
- 31.4 RUNNING THE SIMULATION 582
- 31.5 DECISION MAKING STRATEGY 582
- 32.1 FACTORS TO CONSIDER 584
- 32.2 PROJECT COST ACCOUNTING 586
- 34.1 TOPIC SELECTION 591
- 34.1.1 Previous Project Topics 591
- 34.2 CURRENT PROJECT DESCRIPTIONS 593
- 35.1 JIC ELECTRICAL SYMBOLS 594
- 35.2 NEMA ENCLOSURES 595