- •1. TABLE OF CONTENTS
- •2. OVERVIEW
- •3. PROCESS CONTROL
- •3.1 INTRODUCTION
- •3.2 CONTROL SYSTEM CHARACTERISTICS
- •3.3 CONTROLLER TYPES
- •3.4 PROCESS DIAGRAMS AND SYMBOLS
- •3.5 PRACTICE QUESTIONS
- •4. DISCRETE CONTROLLER DESIGN
- •4.1 POSITIONING CONTROLLERS
- •4.1.1 Dead Beat Control
- •4.1.2 Programming Examples
- •4.1.2.1 - BASIC
- •4.1.2.3 - Pascal
- •4.1.2.4 - 6811 Assembler
- •4.1.3 First Order Response
- •4.2 TRACKING
- •4.2.1 Minimum Error
- •4.3 DISTURBANCE RESISTANT
- •4.3.1 Disturbance Minimization
- •4.4 MULTI-CONTROLLER SYSTEMS
- •4.4.1 Disturbance Feedforward
- •4.4.2 Command Feedforward
- •4.4.3 Cascade
- •4.5 SAMPLE TIME
- •4.6 SUMMARY
- •4.7 PRACTICE PROBLEMS
- •5. DISCRETE SYSTEMS
- •5.1 DISCRETE SYSTEM MODELLING WITH EQUATIONS
- •5.1.1 Getting a Discrete Equation
- •5.1.2 First Order System Example
- •5.1.3 Second Order System Example
- •5.1.4 Example of Dead (Delay) Time
- •5.2 DISCRETE CONTROLLERS
- •5.2.1 A Proportional Controller
- •5.2.2 Integral Control
- •5.2.3 Differential Control
- •5.2.4 Proportional, Integral, Derivative (PID) Control
- •5.3 BLOCK DIAGRAMS AND TRANSFER FUNCTIONS
- •5.3.1 The Backward-Shift ‘B’ Operator
- •5.3.2 Reducing Block Diagrams
- •5.3.3 Back-Shift Transform Table
- •5.3.3.1 - A Summary of Differential Equation Solutions
- •5.3.4 Stability
- •5.4 SAMPLING FUNCTIONS
- •5.5 SYSTEM RESPONSE
- •5.6 STEADY STATE ERROR
- •5.7 PRACTICE PROBLEMS
- •6. PETRI NETS
- •6.1 INTRODUCTION
- •6.2 IMPLEMENTATION FOR A PLC
- •6.3 PRACTICE PROBLEMS
- •7. CONTINUOUS CONTROL SYSTEMS
- •7.1 CONTROL SYSTEMS
- •7.1.1 PID Control Systems
- •7.1.2 Analysis of PID Controlled Systems With Laplace Transforms
- •7.1.3 Manipulating Block Diagrams
- •7.1.3.1 - Commercial PID Tuners
- •7.1.4 Finding The System Response To An Input
- •7.1.5 System Response
- •7.1.6 A Motor Control System Example
- •7.1.7 System Error
- •7.1.8 Controller Transfer Functions
- •7.2 ROOT-LOCUS PLOTS
- •7.2.1 Approximate Plotting Techniques
- •7.2.2 State Variable Control Systems
- •7.3 DESIGN OF CONTINUOUS CONTROLLERS
- •7.4 PRACTICE PROBLEMS
- •8. FUZZY LOGIC
- •8.1 COMMERCIAL CONTROLLERS
- •8.2 REFERENCES
- •8.3 PRACTICE PROBLEMS
- •9. MECHATRONICS CIRCUITS
- •9.1 POWER SWITCHING
- •9.2 USER INPUT/OUTPUT
- •9.2.1 Multiplexing
- •10. HARDWARE BASED CONTROLLERS
- •10.1 CIRCUITS
- •10.2 FLUIDICS
- •10.3 PNEUMATICS
- •10.4 PRACTICE PROBLEMS
- •11. EMBEDDED CONTROLLERS
- •11.1 TYPES
- •11.1.1 Micro Controllers
- •11.1.2 DSPs
- •11.1.3 CPUs
- •11.2 CONTROLLER DESIGN EXAMPLE
- •11.3 PRACTICE PROBLEMS
- •12. DISCRETE SENSORS
- •12.1 INTRODUCTION
- •12.2 SENSOR WIRING
- •12.2.1 Switches
- •12.2.2 Transistor Transistor Logic (TTL)
- •12.2.3 Sinking/Sourcing
- •12.2.4 Solid State Relays
- •12.3 CONTACT DETECTION
- •12.3.1 Contact Switches
- •12.3.2 Reed Switches
- •12.4 PROXIMITY DETECTION
- •12.4.1 Optical (Photoelectric) Sensors
- •12.4.2 Capacitive Sensors
- •12.4.3 Inductive Sensors
- •12.4.4 Ultrasonic
- •12.4.5 Hall Effect
- •12.4.6 Fluid Flow
- •12.4.7 Other Types
- •12.5 PRACTICE PROBLEMS
- •13. CONTINUOUS SENSORS
- •13.1 INPUT ISSUES
- •13.2 SENSOR TYPES
- •13.3 ANGULAR POSITION
- •13.3.1 Potentiometers
- •13.3.2 Encoders
- •13.3.3 Resolvers
- •13.3.4 Practice Problems
- •13.4 LINEAR POSITION
- •13.4.1 Potentiometers
- •13.4.2 Linear Variable Differential Transformers (LVDT)
- •13.4.3 Moire Fringes
- •13.4.4 Interferometers
- •13.5 VELOCITY
- •13.5.1 Velocity Pickups
- •13.5.2 Tachometers
- •13.6 ACCELERATION
- •13.6.1 Accelerometers
- •13.7 FORCE/MOMENT
- •13.7.1 Strain Gages
- •13.7.2 Piezoelectric
- •13.8 FLOW RATE
- •13.8.1 Venturi
- •13.9 TEMPERATURE
- •13.9.1 Resistive Temperature Detectors (RTDs)
- •13.9.2 Thermocouples
- •13.9.3 Thermistors
- •13.10 SOUND
- •13.10.1 Microphones
- •13.11 LIGHT INTENSITY
- •13.11.1 Light Dependant Resistors (LDR)
- •13.12 PRESSURE
- •13.12.1 Bourdon Tubes
- •13.13 PRACTICE PROBLEMS
- •13.14 REFERENCES
- •14. ACTUATORS
- •14.1 ACTUATOR TYPES
- •15. DISCRETE ACTUATORS
- •15.1 INTRODUCTION
- •15.1.1 Interfacing
- •15.1.1.1 - Relays
- •15.1.1.2 - Transistors
- •15.1.1.3 - Triacs
- •15.2 TYPES
- •15.2.1 Solenoids
- •15.2.2 Hydraulic
- •15.2.3 Hydraulics
- •15.2.4 Electric
- •15.2.5 Pneumatic
- •15.2.6 Others
- •15.3 PRACTICE PROBLEMS
- •16. CONTINUOUS ACTUATORS
- •16.1 ACTUATOR CONTROL
- •16.1.1 Block Diagrams
- •16.1.2 Linear Control Systems
- •16.1.3 Motor Controllers
- •16.1.3.1 - DC Motors
- •16.1.3.2 - Stepper Motors
- •16.1.3.3 - Separately Excited DC Motor
- •16.1.3.4 - AC Motors
- •16.1.3.4.1 - Synchronous
- •16.1.4 Hydraulic
- •16.2 PRACTICE PROBLEMS
- •17. PROGRAMMABLE LOGIC CONTROLLERS
- •17.1 BASIC PLCs
- •17.1.1 PLC Connections
- •17.1.2 Ladder Logic
- •17.1.3 Ladder Logic Outputs
- •17.1.4 Ladder Logic Inputs
- •17.2 A SIMPLE EXAMPLE
- •17.3 PRACTICE PROBLEMS
- •18. PLC CONNECTION
- •18.1 SWITCHED INPUTS AND OUTPUTS
- •18.1.1 Input Modules
- •18.1.2 Output Modules
- •18.1.2.1 - Relays
- •18.2 PRACTICE PROBLEMS
- •19. PLC OPERATION
- •19.1 PLC ORGANIZATION
- •19.2 PLC STATUS
- •19.3 MEMORY TYPES
- •19.4 SOFTWARE BASED PLCS
- •19.5 PROGRAMMING STANDARDS
- •19.5.2 The Future of Open Architecture Controllers
- •19.6 PRACTICE PROBLEMS
- •20. SWITCHING LOGIC
- •20.1 BOOLEAN ALGEBRA
- •20.2 DISCRETE LOGIC
- •20.2.1 Boolean Algebra for Circuit and Ladder Logic Design
- •20.2.2 Boolean Forms
- •20.3 SIMPLIFYING BOOLEAN EQUATIONS
- •20.3.1 Karnaugh Maps for Combinatorial Design
- •20.4 ADDITIONAL TOPICS
- •20.4.1 Negative Logic
- •20.4.2 Common Logic Forms
- •20.4.2.1 - NAND/NOR Forms
- •20.4.2.2 - Multiplexers
- •20.4.2.3 - Seal-in Circuits
- •20.5 DESIGN CASES
- •20.5.1 Logic Functions
- •20.5.2 Car Safety System
- •20.5.3 Motor Forward/Reverse
- •20.6 PRACTICE PROBLEMS
- •21. NUMBERING
- •21.1 INTRODUCTION
- •21.2 DATA VALUES
- •21.2.1 Binary
- •21.2.2 Boolean Operations
- •21.2.3 Binary Mathematics
- •21.2.4 BCD (Binary Coded Decimal)
- •21.2.5 Number Conversions
- •21.2.6 ASCII (American Standard Code for Information Interchange)
- •21.3 DATA CHARACTERIZATION
- •21.3.1 Parity
- •21.3.2 Gray Code
- •21.3.3 Checksums
- •21.4 PRACTICE PROBLEMS
- •22. EVENT BASED LOGIC
- •22.1 INTRODUCTION
- •22.2 TIMERS, COUNTERS, FLIP-FLOPS, LATCHES
- •22.2.1 Latches
- •22.2.2 Flip-Flops
- •22.2.3 Timers
- •22.2.4 Counters
- •22.3 PROGRAM DESIGN METHODS
- •22.3.1 Process Sequence Bits
- •22.3.2 Timing Diagrams
- •22.4 DESIGN CASES
- •22.4.1 Counters And Timers
- •22.4.2 More Timers And Counters
- •22.4.3 Oscillator
- •22.4.4 More Timers
- •22.4.5 Cascaded Timers
- •22.4.6 Deadman Switch
- •22.4.7 Conveyor
- •22.4.8 Accept/Reject Sorting
- •22.4.9 Shear Press
- •22.4.10 Actuator Failure
- •22.4.11 Palm Button Detection
- •22.5 PRACTICE PROBLEMS
- •23. SEQUENTIAL LOGIC DESIGN
- •23.1 SCRIPTS
- •23.2 FLOW CHARTS
- •23.3 STATE BASED MODELLING
- •23.3.1 State Diagrams Example
- •23.3.1.1 - Block Logic Conversion
- •23.3.1.2 - Single State Equations
- •23.3.1.3 - Entry and Exit State Equations
- •23.3.1.4 - State Transition Equations
- •23.4 PARALLEL PROCESS FLOWCHARTS
- •23.4.1 Implementation with Microcontroller
- •23.5 SEQUENTIAL LOGIC CIRCUITS
- •23.5.1 Latches and Seal-in
- •23.5.2 Shift Registers
- •23.6 PRACTICE PROBLEMS
- •24. ADVANCED LADDER LOGIC FUNCTIONS
- •24.1 ADDRESSING
- •24.1.1 Data Files
- •24.1.1.1 - Inputs and Outputs
- •24.1.1.2 - User Bit Memory
- •24.1.1.3 - Timer Counter Memory
- •24.1.1.4 - PLC Status Bits (for PLC-5s and Micrologix)
- •24.1.1.5 - User Function Control Memory
- •24.1.1.6 - Integer Memory
- •24.1.1.7 - Floating Point Memory
- •24.2 INSTRUCTION TYPES
- •24.2.1 Basic Data Handling
- •24.2.1.1 - Move Functions
- •24.2.1.2 - Mathematical Functions
- •24.2.2 Logical Functions
- •24.2.2.1 - Comparison of Values
- •24.2.2.2 - Binary Functions
- •24.2.3 Boolean Operations
- •24.2.4 Binary Mathematics
- •24.2.5 BCD (Binary Coded Decimal)
- •24.2.6 Advanced Data Handling
- •24.2.6.1 - Multiple Data Value Functions
- •24.2.7 Complex Functions
- •24.2.7.1 - Shift Registers
- •24.2.7.2 - Stacks
- •24.2.7.3 - Sequencers
- •24.2.8 Program Control Structures
- •24.2.8.1 - Branching and Looping
- •24.2.8.2 - Immediate I/O Instructions
- •24.2.8.3 - Fault Detection and Interrupts
- •24.2.9 Block Transfer Functions
- •24.3 DESIGN TECHNIQUES
- •24.3.1 State Diagrams
- •24.4 DESIGN CASES
- •24.4.1 If-Then
- •24.4.2 For-Next
- •24.4.3 Conveyor
- •24.5 FUNCTION REFERENCE
- •24.6 PRACTICE PROBLEMS
- •25. PLC PROGRAMMING
- •25.1 PROGRAMMING STANDARDS
- •25.1.2 The Future of Open Architecture Controllers
- •25.2 PRACTICE PROBLEMS
- •26. STRUCTURED TEXT PROGRAMMING
- •26.1 INTRODUCTION
- •26.2 THE LANGUAGE
- •26.3 PRACTICE PROBLEMS
- •27. INSTRUCTION LIST PROGRAMMING
- •27.1 INTRODUCTION
- •27.2 PRACTICE PROBLEMS
- •28. FUNCTION BLOCK PROGRAMMING
- •28.1 INTRODUCTION
- •28.2 PRACTICE PROBLEMS
- •29. ANALOG INPUTS AND OUTPUTS
- •29.1 ANALOG INPUTS
- •29.1.1 Analog To Digital Conversions
- •29.1.2 Analog Inputs With a PLC
- •29.2 ANALOG OUTPUTS
- •29.2.1 Analog Outputs With A PLC
- •29.3 DESIGN CASES
- •29.3.1 Oven Temperature Control
- •29.3.2 Statistical Process Control (SPC)
- •29.4 PRACTICE PROBLEMS
- •30. CONTINUOUS CONTROL
- •30.1 CONTROLLING CONTINUOUS SYSTEMS
- •30.2 CONTROLLING DISCRETE SYSTEMS
- •30.3 CONTROL SYSTEMS
- •30.3.1 PID Control Systems
- •30.3.1.1 - PID Control With a PLC
- •30.4 DESIGN CASES
- •30.4.1 Temperature Controller
- •30.5 PRACTICE PROBLEMS
- •31. PLC DATA COMMUNICATION
- •31.1 COMPUTER COMMUNICATIONS CATEGORIES
- •31.2 THE HISTORY
- •31.3 WITH PLCs
- •31.4 SERIAL COMMUNICATIONS
- •31.4.1.1 - ASCII Functions
- •31.4.2 ASCII (American Standard Code for Information Interchange)
- •31.5 PARALLEL
- •31.6 NETWORKS
- •31.6.1 Introduction
- •31.6.2 OSI Network Model
- •31.6.2.1 - Physical Layer
- •31.6.2.2 - Data Link Layer
- •31.6.2.3 - Network Layer
- •31.6.2.4 - Transport Layer
- •31.6.2.5 - Session Layer
- •31.6.2.6 - Presentation Layer
- •31.6.2.7 - Application Layer
- •31.6.2.8 - Open Systems
- •31.6.2.9 - Networking Hardware
- •31.7 BUS TYPES
- •31.7.1 Devicenet
- •31.7.2 CANbus
- •31.7.3 Controlnet
- •31.7.4 Profibus
- •31.7.5 Ethernet
- •31.7.6 Proprietary Networks
- •31.7.6.1 - Data Highway
- •31.7.7 Other Network Types
- •31.8 DESIGN CASES
- •31.8.1 PLC Interface To Robots And NC Machines
- •31.9 PRACTICE PROBLEMS
- •32. HUMAN MACHINE INTERFACES (HMI)
- •32.1 INTRODUCTION
- •32.2 HMI/MMI DESIGN
- •32.3 DESIGN CASES
- •32.4 PRACTICE PROBLEMS
- •33. DESIGNING LARGE SYSTEMS
- •33.1 PROGRAMMING
- •33.2 DOCUMENTATION
- •33.3 PLC PROGRAM DESIGN FORMS
- •33.4 PRACTICE PROBLEMS
- •34. IMPLEMENTATION
- •34.1 ELECTRICAL
- •34.1.1 Electrical Wiring Diagrams
- •34.1.1.1 - JIC Wiring Symbols
- •34.1.2 Wiring
- •34.1.3 Shielding and Grounding
- •34.2 SAFETY
- •34.2.1 Troubleshooting
- •34.2.2 Forcing Outputs
- •34.2.3 PLC Environment
- •34.2.3.1 - Enclosures
- •35. PROCESS MODELLING
- •35.1 REFERENCES
- •35.2 PRACTICE PROBLEMS
- •36. SELECTING A PLC
- •36.1 SPECIAL I/O MODULES
- •36.2 PLC PROGRAMMING LANGUAGES
- •36.3 ISSUES
- •36.4 PRACTICE PROBLEMS
- •37. PLC REFERENCES
- •37.1 SUPPLIERS
- •37.2 PROFESSIONAL INTEREST GROUPS
- •37.3 PLC/DISCRETE CONTROL REFERENCES
- •38. USING THE OMRON DEMO PACKAGE
- •38.1 OVERVIEW
- •38.1.1 Installation
- •38.1.2 Basic Use
- •38.1.3 Connecting to the PLC
- •38.2 REFERENCE GUIDE FOR OMRON PLC DEMO SOFTWARE
- •39. INDUSTRIAL ROBOTICS
- •39.1 INTRODUCTION
- •39.1.1 Basic Terms
- •39.1.2 Positioning Concepts
- •39.1.2.1 - Accuracy and Repeatability
- •39.1.2.2 - Control Resolution
- •39.1.2.3 - Payload
- •39.2 ROBOT TYPES
- •39.2.1 Basic Robotic Systems
- •39.2.2 Types of Robots
- •39.2.2.1 - Robotic Arms
- •39.2.2.2 - Autonomous/Mobile Robots
- •39.2.2.2.1 - Automatic Guided Vehicles (AGVs)
- •39.2.3 Commercial Robots
- •39.2.3.1 - Seiko RT 3000 Manipulator
- •39.2.3.2 - DARL Programs
- •39.2.3.2.1 - Language Examples
- •39.2.3.2.2 - Commands Summary
- •39.2.3.3 - Mitsubishi RV-M1 Manipulator
- •39.2.3.4 - Movemaster Programs
- •39.2.3.4.1 - Language Examples
- •39.2.3.4.2 - Command Summary
- •39.2.3.5 - IBM 7535 Manipulator
- •39.2.3.6 - AML Programs
- •39.2.3.7 - ASEA IRB-1000
- •39.2.4 Unimation Puma (360, 550, 560 Series)
- •39.3 ROBOT APPLICATIONS
- •39.3.1 Overview
- •39.3.2 Spray Painting and Finishing
- •39.3.3 Welding
- •39.3.4 Assembly
- •39.3.5 Belt Based Material Transfer
- •39.4 END OF ARM TOOLING (EOAT)
- •39.4.1 EOAT Design
- •39.4.2 Gripper Mechanisms
- •39.4.2.1 - Vacuum grippers
- •39.4.3 Magnetic Grippers
- •39.4.3.1 - Adhesive Grippers
- •39.4.4 Expanding Grippers
- •39.4.5 Other Types Of Grippers
- •39.5 ADVANCED TOPICS
- •39.5.1 Simulation/Off-line Programming
- •39.6 PRACTICE PROBLEMS
- •40. ROBOTIC PATH PLANNING METHODS
- •40.1 INTRODUCTION:
- •40.1.1 ROBOT APPLICATIONS
- •40.1.2 ROBOTIC CONSTRAINTS
- •40.1.3 THE OPTIMIZATION PROBLEM OF PATH PLANNERS
- •40.1.4 EVALUATION OF PATH PLANNERS
- •40.2 GENERAL REQUIREMENTS
- •40.2.1 PROBLEM DIMENSIONALITY
- •40.2.2 2D MOBILITY PROBLEM
- •40.2.2.1 - 2.5D HEIGHT PROBLEM
- •40.2.2.2 - 3D SPACE PROBLEM
- •40.2.3 COLLISION AVOIDANCE
- •40.2.4 MULTILINK
- •40.2.5 ROTATIONS
- •40.2.6 OBSTACLE MOTION PROBLEM
- •40.2.7 ROBOT COORDINATION
- •40.2.8 INTERACTIVE PROGRAMMING
- •40.3 SETUP EVALUATION CRITERIA
- •40.3.1 INFORMATION SOURCE
- •40.3.1.1 - KNOWLEDGE BASED PLANNING (A PRIORI)
- •40.3.1.2 - SENSOR BASED PLANNING (A POSTIERI)
- •40.3.2 WORLD MODELLING
- •40.4 METHOD EVALUATION CRITERIA
- •40.4.1 PATH PLANNING STRATEGIES
- •40.4.1.1 - BASIC PATH PLANNERS (A PRIORI)
- •40.4.1.2 - HYBRID PATH PLANNERS (A PRIORI)
- •40.4.1.3 - TRAJECTORY PATH PLANNING (A POSTIERI)
- •40.4.1.4 - HIERARCHICAL PLANNERS (A PRIORI & A POSTIERI)
- •40.4.1.5 - DYNAMIC PLANNERS (A PRIORI & A POSTIERI)
- •40.4.1.6 - OFF-LINE PROGRAMMING
- •40.4.1.7 - ON-LINE PROGRAMMING
- •40.4.2 PATH PLANNING METHODS
- •40.4.3 OPTIMIZATION TECHNIQUES
- •40.4.3.1 - SPATIAL PLANNING
- •40.4.3.2 - TRANSFORMED SPACE
- •40.4.3.3 - FIELD METHODS
- •40.4.3.4 - NEW AND ADVANCED TOPICS
- •40.4.4 INTERNAL REPRESENTATIONS
- •40.4.5 MINIMIZATION OF PATH COSTS
- •40.4.6 LIMITATIONS IN PATH PLANNING
- •40.4.7 RESULTS FROM PATH PLANNERS
- •40.5 IMPLEMENTATION EVALUATION CRITERIA
- •40.5.1 COMPUTATIONAL TIME
- •40.5.2 TESTING OF PATH PLANNERS
- •40.6 OTHER AREAS OF INTEREST
- •40.6.1 ERRORS
- •40.6.2 RESOLUTION OF ENVIRONMENT REPRESENTAION
- •40.7 COMPARISONS
- •40.8 CONCLUSIONS
- •40.9 APPENDIX A - OPTIMIZATION TECHNIQUES
- •40.9.1 OPTIMIZATION : VELOCITY
- •40.9.2 OPTIMIZATION : GEOMETRICAL
- •40.9.3 OPTIMIZATION : PATH REFINEMENT
- •40.9.4 OPTIMIZATION : MOVING OBSTACLES
- •40.9.5 OPTIMIZATION : SENSOR BASED
- •40.9.6 OPTIMIZATION : ENERGY
- •40.10 APPENDIX B - SPATIAL PLANNING
- •40.10.1 SPATIAL PLANNING : SWEPT VOLUME
- •40.10.2 SPATIAL PLANNING : OPTIMIZATION
- •40.10.3 SPATIAL PLANNING : GENERALIZED CONES
- •40.10.4 SPATIAL PLANNING : FREEWAYS
- •40.10.5 SPATIAL PLANNING : OCT-TREE
- •40.10.6 SPATIAL PLANNING : VORONOI DIAGRAMS
- •40.10.7 SPATIAL PLANNING : GENERAL INTEREST
- •40.10.8 SPATIAL PLANNING - VGRAPHS
- •40.11 APPENDIX C - TRANSFORMED SPACE
- •40.11.1 TRANSFORMED SPACE : CARTESIAN CONFIGURATION SPACE
- •40.11.1.1 - TRANSFORMED SPACE :
- •40.11.2 TRANSFORMED SPACE : JOINT CONFIGURATION SPACE
- •40.11.3 TRANSFORMED SPACE : OCT-TREES
- •40.11.4 TRANSFORMED SPACE : CONSTRAINT SPACE
- •40.11.5 TRANSFORMED SPACE : VISION BASED
- •40.11.6 TRANSFORMED SPACE : GENERAL INTEREST
- •40.12 APPENDIX D - FIELD METHODS
- •40.12.1 SPATIAL PLANNING : STEEPEST DESCENT
- •40.12.2 SPATIAL PLANNING : POTENTIAL FIELD METHOD
- •40.13 APPENDIX E - NEW AND ADVANCED TOPICS
- •40.13.1 ADVANCED TOPICS : DUAL MANIPULATOR COOPERATION
- •40.13.2 ADVANCED TOPICS : A POSTIERI PATH PLANNER
- •40.13.3 NEW TOPICS - SLACK VARIABLES
- •40.14 REFERENCES:
- •41. ROBOTIC MECHANISMS
- •41.1 KINEMATICS
- •41.1.1 Basic Terms
- •41.1.2 Kinematics
- •41.1.2.1 - Geometry Methods for Forward Kinematics
- •41.1.2.2 - Geometry Methods for Inverse Kinematics
- •41.2 MECHANISMS
- •41.3 ACTUATORS
- •41.3.1 Modeling the Robot
- •41.4 PATH PLANNING
- •41.4.1 Slew Motion
- •41.4.1.1 - Joint Interpolated Motion
- •41.4.1.2 - Straight-line motion
- •41.4.2 Computer Control of Robot Paths (Incremental Interpolation)
- •41.5 PRACTICE PROBLEMS
- •42. MOTION PLANNING AND TRAJECTORY CONTROL
- •42.1 TRAJECTORY CONTROL
- •42.1.1 Resolved Rate Motion Control
- •42.1.2 Cartesian Motion System
- •42.1.3 Model Reference Adaptive Control (MRAC)
- •42.1.4 Digital Control System
- •42.2 PATH PLANNING
- •42.2.1 Slew Motion
- •42.2.1.1 - Joint Interpolated Motion
- •42.2.1.2 - Straight-line motion
- •42.3 MOTION CONTROLLERS
- •42.3.1 Computer Control of Robot Paths (Incremental Interpolation)
- •42.4 SPECIAL ISSUES
- •42.4.1 Optimal Motion
- •42.4.2 Singularities
- •42.5 PRACTICE PROBLEMS
- •42.6 MICROBOT OVERVIEW
- •42.7 CRS PLUS ROBOT OVERVIEW
- •42.8 BASIC DEMONSTRATION STEPS
- •43. CNC MACHINES
- •43.1 MACHINE AXES
- •43.2 NUMERICAL CONTROL (NC)
- •43.2.1 NC Tapes
- •43.2.2 Computer Numerical Control (CNC)
- •43.2.3 Direct/Distributed Numerical Control (DNC)
- •43.3 EXAMPLES OF EQUIPMENT
- •43.3.1 EMCO PC Turn 50
- •43.3.2 Light Machines Corp. proLIGHT Mill
- •43.4 PRACTICE PROBLEMS
- •44. CNC PROGRAMMING
- •44.1 G-CODES
- •44.3 PROPRIETARY NC CODES
- •44.4 GRAPHICAL PART PROGRAMMING
- •44.5 NC CUTTER PATHS
- •44.6 NC CONTROLLERS
- •44.7 PRACTICE PROBLEMS
page 653 |
|
39.2.3.5 - IBM 7535 Manipulator |
|
• In general |
|
Degrees of freedom |
4 |
Maximum payload |
6kg (13.2 lb) |
Repeatability (based on constant temp., load, speed) +/-0.05mm (+/- 0.002 in.) |
|
Weight |
99kg (218 lb) |
Operating Temperature |
10C to 40.6C (50F to 106F) |
Humidity (based on constant temp. load, speed) |
8% to 80% |
• Theta 1 axis |
|
motion |
revolute |
Range |
0 to 200 degrees +/- 1deg. |
Resolution |
0.00459 deg. |
Low speed (note: this is set by a switch) |
|
max. speed |
700 mm/sec (28 in./sec) |
max. load |
6 kg(13.2 lb) |
Medium speed |
|
max. speed |
1100 mm/sec (43 in./sec) |
max. load |
6 kg(13.2 lb) |
High speed |
|
max. speed |
1450 mm/sec (57 in./sec) |
max. load |
1 kg(2.2 lb) |
• Theta 2 axis |
|
motion |
revolute |
Range |
0 to 160 degrees +/- 1deg. |
Resolution |
0.009 deg. |
Low speed (note: this is set by a switch) |
|
max. speed |
525 mm/sec (21 in./sec) |
max. load |
6 kg(13.2 lb) |
Medium speed |
|
max. speed |
825 mm/sec (32 in./sec) |
max. load |
6 kg(13.2 lb) |
High speed |
|
max. speed |
1000 mm/sec (39 in./sec) |
max. load |
1 kg(2.2 lb) |
• Roll axis |
|
motion |
revolute |
Range |
+/- 180 degrees +/- 1.5 deg. |
Holding Torque |
35 kg-cm (30.4 in.-lb.) |
Maximum load centered on Z-Axis |
6 kg (13.2 lb) |
Maximum speed |
3.7 rad/sec (210 deg./sec. +/-5%) |
Rotating Torque |
14 kg-cm (12.2 in-lb) |
|
|
page 654 |
||||||||||
Max. load inertia |
|
|
|
|
|
|
0.1 kg-m**2 (0.074 slug-ft**2) |
|||||
|
|
|
|
|
|
|
|
(Note: effects of off centre loads not |
||||
|
|
|
|
|
|
|
|
considered, and lower maximum) |
||||
Resolution |
|
|
|
|
|
|
0.36 deg. |
|||||
• Z-Axis |
|
|
|
|
|
|
|
|
|
|
|
|
motion |
|
|
|
|
|
|
prismatic |
|||||
Range |
|
|
|
|
|
|
75 mm (2.95 in.) |
|||||
Maximum Payload |
|
|
|
|
|
|
6.0 kg (13.2 lb) |
|||||
Resolution |
|
|
|
|
|
|
Not Applicable |
|||||
• Compressed Air |
|
|
|
|
|
|
|
|
|
|
|
|
Maximum Pressure |
|
|
|
|
|
|
6 kg/cm**2 (85 psig) |
|||||
Conditioning |
|
|
|
|
|
|
Must be moisture free, as through a |
|||||
|
|
|
|
|
|
|
|
moisture separator, and filtered with |
||||
|
|
|
|
|
|
|
|
regulator. |
||||
• The workspace is shown below, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
||||||||
|
|
|
|
|
( 0, 650, 0) |
|||||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
( –650, 0, 0) |
|
|
|
|
|
|
|
|
z |
|||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
) |
|
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
( 650, 0, 0 |
|
|||
|
|
|
page 655
7535/7540 LINEAR Rate Values Available
|
|
Programmed Rate |
Arm speed at tool tip |
|
Straight line error |
|
||||||
|
|
|
mm/sec. (in./sec) |
|
mm (in.) |
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
1 |
60 (2.4) |
|
|
|
3.0 (0.12) |
|
|
|||||
100 |
(3.9) |
|
|
|
3.7 (0.15) |
|
|
|||||
2 |
|
|
|
|
|
|||||||
140 |
(5.5) |
|
|
|
4.4 (0.17) |
|
|
|||||
3 |
|
|
|
|
|
|||||||
180 |
(7.1) |
|
|
|
5.3 (0.21) |
|
|
|||||
4 |
|
|
|
|
|
|||||||
225 |
(8.9) |
|
|
|
6.2 (0.24) |
|
|
|||||
5 |
|
|
|
|
|
|||||||
265 |
(10.4) |
|
|
|
6.9 (0.27) |
|
|
|||||
6 |
|
|
|
|
|
|||||||
305 |
(12.0) |
|
|
|
7.6 (0.30) |
|
|
|||||
7 |
|
|
|
|
|
|||||||
345 |
(13.6) |
|
|
|
8.4 (0.33) |
|
|
|||||
8 |
|
|
|
|
|
|||||||
385 |
(15.2) |
|
|
|
9.3 (0.37) |
|
|
|||||
9 |
|
|
|
|
|
|||||||
430 |
(16.9) |
|
|
|
10.0 (0.39) |
|
|
|||||
10 |
|
|
|
|
|
|||||||
430 |
(16.9) |
|
|
|
11.5 (0.45) |
|
|
|||||
20 |
|
|
|
|
|
|||||||
430 |
(16.9) |
|
|
|
11.5 (0.45) |
|
|
|||||
30 |
|
|
|
|
|
|||||||
430 |
(16.9) |
|
|
|
11.5 (0.45) |
|
|
|||||
50 |
|
|
|
|
|
|||||||
Exit linear speed and motion |
|
|
|
|
|
|||||||
0 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|||
|
7535 Program Speed Values for PAYLOAD Command |
|
|
|
|
|||||||
Program speed values |
Speed of theta1 |
|
|
Speed of theta2 |
|
Maximum |
||||||
|
|
|||||||||||
|
|
|
at the tool tip |
|
|
at the tool tip |
|
payload for speed |
||||
|
|
|
mm/sec (in./sec) |
|
|
mm/sec (in./sec) |
|
kg (lb) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
300 (11.8) |
|
|
225 (8.9) |
|
|
6 (13.2) |
|
|
|
2 |
|
|
500 (19.7) |
|
|
375 (14.8) |
|
|
6 (13.2) |
|
|
|
3 |
|
|
700 (27.6) |
|
|
525 (20.7) |
|
|
6 (13.2) |
|
|
|
4 |
|
|
750 (29.5) |
|
|
575 (22.6) |
|
|
6 (13.2) |
|
|
|
5 |
|
|
900 (35.4) |
|
|
675 (26.6) |
|
|
6 (13.2) |
|
|
|
6 |
|
|
1000 (39.3) |
|
|
750 (29.5) |
|
|
6 (13.2) |
|
|
|
7 |
|
|
1100 |
(43.3) |
|
|
825 (32.4) |
|
|
6 (13.2) |
|
|
8 |
|
|
1200 (47.2) |
|
|
900 (35.4) |
|
|
3.5 (7.7) |
|
|
|
9 |
|
|
1300 (51.2) |
|
|
950 (37.4) |
|
|
2 (4.4) |
|
|
|
10 |
|
|
1450 (57.1) |
|
|
1000 (39.3) |
|
1 (2.2) |
|
|
||
0 |
|
|
Default to speed switches |
|
|
|
|
NOTE: Speeds in the table are for planning purposes only and are typical minimum values. Speed values only consider a single joint moving. Speed at the end of the arm is greater when multiple joints are used on a single move.
page 656
39.2.3.6 - AML Programs
•All AML comments start with two dashes ‘--’ at any position on a line
•Statements are ended with a semi-colon, and as long as semi-colons are used, more than one statement can be used on a line.
•Line numbering is done by the AML Editor
•the free form variables/identifiers must: start with a letter; be up to 72 characters in length; use letters numbers and underscores, except in the last position.
•Statements have the general form,
IDENTIFIER:KEYWORD;
-IDENTIFIER is a unique name that the user has selected
-the colon separates the two elements
-KEYWORD indicates the significance of the IDENTIFIER to the system
-the semi-colon indicates the end of the statement
•A sample program is given below with comments for explanation,
NEWPROG:SUBR: --A subroutine called NEWPROG to pick up a part RELEASE; -- open the gripper before dropping to prevent collision DELAY(20); -- wait 2 seconds to ensure the gripper is open
DOWN; -- drop down to the work surface
DELAY(10); -- wait 1 second just to be sure everything has settled down GRASP; -- close the gripper
DELAY(10); -- wait 1 second to allow everything to settle down UP; -- go up so that we can move over other objects PMOVE(PT(300,300,0)); -- move to 300,300 in robot coordinates END; -- return to the calling routine
• A summary of the commands is given below,
BRANCH(label); |
This will force a branch to the statement having the |
(flow command) |
label. |
|
page 657 |
BREAKPOINT; |
When this command is executed, it will examine the |
(flow command) |
“stop and Mem” key on the robot. If either is pressed, |
|
the program execution will stop. |
DECR(name); |
Decrement ‘name’ by one. |
(logic command) |
|
DELAY(seconds); |
This commands will wait for the number of tenths of |
(flow command) |
seconds given, this can be used when motions must |
|
finish before continuing. If the value is 10, then the |
|
delay will be 1 second. |
DOWN(value); |
Instructs the robot to drop the gripper (z-axis). The pro- |
(motion command) |
gram delays until the gripper has dropped. If the axis |
|
has not reached it’s limit within the given time, then |
|
an error message will be generated. The timeout can |
|
be altered (from 1.5 seconds) by supplying a ‘value’ |
|
argument in tenths of a second. A value of zero |
|
means wait forever |
DPMOVE(x,y,z,r); |
A relative cartesian motion is made in the direction |
DPMOVE(x,y,r); |
specified. if the z-axis has a height control, the z can |
(motion command) |
be included. |
GETC(counter_name); |
The program is halted briefly while the host computer is |
(communication command) |
polled the a new counter value. |
GETPART(name); |
Move to the current part on the pallet. |
(pallet command) |
|
GRASP; |
The EOAT gripper will be closed when this command is |
(motion command) |
issued. |
|
page 658 |
INCR(name); |
Variable ‘name’ is incremented by one. |
(logic command) |
|
LINEAR(quality); |
When the robot moves it can follow a number of paths, |
(setting command) |
but this command will set all motions to follow a |
|
straight path. As the ‘value’ goes from 50 to 1 the |
|
path quality improves. If the ‘value’ is zero, the lin- |
|
ear mode is turned off. |
NEXTPART(name); |
move the pallet reference ahead by one. |
(pallet command) |
|
PAYLOAD(value); |
As the mass carried changes, so do the maximum |
(setting command) |
speeds. This command will allow modification of the |
|
motion speeds. As ‘value’ changes from 10 to 1 the |
|
load increases, and the robot will go slower. A |
|
‘value’ of zero will turn the function off. |
PMOVE(PT(x,y,r); |
The PMOVE portion of this nested command will cause |
PMOVE(PT(x,y,z,r)); |
a movement to a point. The PT statement indicated |
PMOVE(name); |
the position of a point. A point ‘name’ could also be |
(motion command) |
used. Here x and y are the cartesian coordinates on |
|
the work plane, and r is the roll of the gripper |
|
(±180°). Home, with the arm stretched to the far left |
|
is (650,0,0) |
PREVPART(name); |
reduce the current pallet part count by one. |
(pallet command) |
|
RELEASE; |
This command is the opposite of GRASP, and will |
(motion command) |
release the gripper. |
|
page 659 |
SETC(name, value); |
Set the counter name to a value. |
(logic command) |
|
SETPART(name, value); |
set the pallet name to the given value. |
(pallet command) |
|
TESTC(name, value, label); |
TESTC does a conditional branch statement that com- |
TESTI(DIpoint,value,label); |
pares name to value. TESTI does the same for a DI |
TESTP(name,value,label); |
point, and a value. TESTP compares a pallet name |
(logic command) |
and value. All statements branch to label if the com- |
|
parison is equal. |
UP(value); |
This commands is the reverse of DOWN, as it raises the |
(motion command) |
z-axis. |
WAITI(DIpoint,value,time); |
Pause while waiting for the DI point to reach value. |
(logic command) |
Time specifies a maximum value before an error |
|
message should be generated. |
WRITEO(DO point, value); |
Set DO point to the given value. |
(logic command) |
|
ZMOVE(position); |
Move the z-axis to a given position, if variable position- |
|
ing is available. |
ZONE(factor); |
The accuracy of a point to point move is set using this |
(setting command) |
command. As the value ‘factor’ changes from 15 to 1 |
|
the motion times increase, but the final position is |
|
more accurate. If ‘factor’ has a value of zero, the |
|
function is turned off. |
• A summary of some of the keywords is,
END; |
causes a return from a subroutine. |