INDU411 Computer Integrated Manufacturing Lab Manual

Similar documents
OpenCIM OpenCIM Offline,OpenCIM Intro and OpenFMS

Lesson 4 Introduction To Programming Words

Conversational Programming for 6000M, 5000M CNC

CHAPTER 12. CNC Program Codes. Miscellaneous CNC Program Symbols. D - Tool Diameter Offset Number. E - Select Work Coordinate System.

Conversational Programming for 6000i CNC

Coordinate System Techniques

HAAS AUTOMATION, INC.

ADVANCED TECHNIQUES APPENDIX A

TOOLPATHS TRAINING GUIDE. Sample. Distribution. not for MILL-LESSON-4-TOOLPATHS DRILL AND CONTOUR

Mach4 CNC Controller Mill Programming Guide Version 1.0

G & M Code REFERENCE MANUAL. Specializing in CNC Automation and Motion Control

Software designed to work seamlessly with your CNC Masters machine. Made to work with Windows PC. Works with standard USB

ACR-MotionMax Programmer's Reference Manual

NC CODE REFERENCE MANUAL

2. INTRODUCTION TO CNC

CNC Turning. Module2: Introduction to MTS-TopTurn and G & M codes. Academic Services PREPARED BY. January 2013

Polar coordinate interpolation function G12.1

Tutorial: Basic G Code Programming By: Matthew Jourden Brighton High School Brighton, MI

IEEM 215. Manufacturing Processes I Introduction to the ARIX CNC milling machine

Conversational Programming for 6000i CNC

Software Manual. Version: H BENCHTOP ROBOT SOFTWARE USER GUIDE Version H

COMPUTER NUMERICAL CONTROL OF MACHINE TOOLS

Century Star Turning CNC System. Programming Guide

GE FANUC 21 CONCEPT 55 MILL ATC TEACHER GUIDE

CIM CIM. db-tech TRAINING OBJECTIVE: Students are expected to be knowledgeable in COMPUTER INTEGRATED MANUFACTURING

Conversational Programming for 6000M, 5000M CNC

Mach4 CNC Controller Mill Programming Guide Version 1.1 Build 3775

Computer Aided Engineering Applications 3. Advanced Manufacturing 3.5 NC programming 3.6 Automated Manufacturing systems 3.7 Rapid prototyping

Southwestern Industries, Inc. DPM RX7 Bed Mill Specifications with the ProtoTRAK RMX Control

Chapter 1 Introduction to Numerically Controlled Machines

CNC PART PROGRAMMING

COPYCAT NEW FANGLED SOLUTIONS 2/6/2009

Product Information. POSITIP PT 8016 Digital Readout for Manually Operated Machine Tools

Mach4 CNC Controller Lathe Programming Guide Version 1.0

200D BENCHTOP ROBOT OPERATION MANUAL

CIRCULAR INTERPOLATION COMMANDS

HDS Series Quick Start Guide.

Introduction to Word Address Programming

300S READOUTS REFERENCE MANUAL

3300M/MK CNC Programming and Operations Manual

3000M CNC Programming and Operations Manual for Two-Axis Systems

Fixed Headstock Type CNC Automatic Lathe

CNC Programming Simplified. EZ-Turn / TurnMill Tutorial.

9000 CNC 9000 CNC: THE NEW STANDARD OF CONTROL. INTUITIVE EFFICIENT PRODUCTIVE

MEB COMPUTER INTEGRATED MANUFACTURING. Unit - I Part - A

prolight 1000 Machining Center User s Guide For Windows

Our thanks go to: Puppy Linux, RTAI, EMC, axis, all the kernel developers and big mama thornton.

Manufacturing Processes with the Aid of CAD/CAM Systems AMEM 405

Z Spindle. Revision 1.2. Copyright Newing-Hall, Inc Monroe Street. Toledo, Ohio, NH Part # Last Update July 2003

Warranty. Student Workbook for Three-Axis Systems

MAX CONTROL FOR TURNING CENTERS

SECTION 1 Introduction

SCORBASE. User Manual. Version 5.3 and higher. for SCORBOT ER-4u SCORBOT ER-2u ER-400 AGV Mobile Robot. Catalog #100342, Rev. G


Programming Features PERFORMANCE & SPECIFICATIONS

MELDAS, MELDASMAGIC, and MELSEC are registered trademarks of Mitsubishi Electric Corporation. The other company names and product names are

Feature-based CAM software for mills, multi-tasking lathes and wire EDM. Getting Started

CNC Programming Simplified. EZ-Turn Tutorial.

GSK218M Milling Machine CNC System

12. Rotary Retract Movement Setup Clearance Tool Change X Safe Positions Custom Settings Reference

Profile Modeler Profile Modeler ( A SuperControl Product )

EML 2322L -- MAE Design and Manufacturing Laboratory. CNC Machining

Manipulator Path Control : Path Planning, Dynamic Trajectory and Control Analysis

Section 15: Touch Probes

MANUFACTURING PROCESSES

Computer Numerical Control Woodworking and Turning. Gershon Elber

CNC 8055 MC EXAMPLES MANUAL REF Ref. 0601

Wizard 1000 REFERENCE MANUAL

CNC Machining Center. X.mill 640. with Touch-Screen Technology. Travel distances X axis 640 mm Y axis 400 mm Z axis 500 mm. X.

KA3-6VS 300mm KA3-6VS 400mm Vertical Spindle

FAGOR AUTOMATION MC TRAINING MANUAL

Mill Level 1 Training Tutorial

Demonstration -3D Printer -CNC Milling Machine

General technology basics. Working through this module you become familiar with the most important technological aspects and machine functions.

Courseware Sample F0

Linear Interpolation and Dwell Cycle. Dr. Belal Gharaibeh

Creo 3.0 G-code Tutorial

MASTERCAM DYNAMIC MILLING TUTORIAL. June 2018

Operating Instructions POSITIP 880

Welcome to. the workshop on the CNC 8055 MC

LabCenter 260. LabCenter 260. CNC Milling Machine. Compact Machine for Training Purposes and Small Batch Production - with Siemens control

Copyright 2019 OPEN MIND Technologies AG

OmniTurn Training Manual

3000M CNC Programming and Operations Manual for Three- and Four-Axis Systems

DESIGNING A G CODE PROGRAMMING LANGUAGE FOR THE REFERENCE POINT SEVEN-SPEED SHAFT

CNC Mill Ê>EcHèRÆ7*Ë. Student Guide/Portfolio Edition 1

Turning ISO Dialect T

HFOMN/Haas CNC Series

Table of Contents. Table Of Contents. Access to parameters (lesson 2)) 26 Surprised? 26 Key Points for Lesson 1: 26 Quiz 26

Operation Manual (B) KVR-2418 (24L) Fanuc OiMD CNC. KENT INDUSTRIAL (USA) INC Edinger Ave., Tustin, CA 92780

TRAINING GUIDE MILL-LESSON-FBM-2 FBM MILL AND FBM DRILL

CNC Knee Type Milling Machines with USA CENTROID M-400S CNC control

EZ-Mill EXPRESS TUTORIAL 2. Release 13.0

Wizard 550 READOUTS REFERENCE MANUAL

VisualCAM 2018 for SOLIDWORKS-TURN Quick Start MecSoft Corporation

QC20-W wireless ballbar system description and specifications

130Series. CNC Horizontal Boring & Milling Machines SNK AMERICA, INC. MACHINE TOOL GROUP

NcStudio Programming Manual

Table of Contents. Fadal. Operator Manual

Part Programming Manual MACHINEMATE

Transcription:

INDU411 Computer Integrated Manufacturing Lab Manual JULY 2009 Onur Kuzgunkaya Gilles Huard Brad Luckhart Iman Niroomand

INDU 411 Computer Integrated Manufacturing Lab Manual Table of Contents: Table of Contents Introduction... 1 CHAPTER 1: OpenCIM System Management Software... 2 1 1 System Components... 2 1 1 1 Stations... 4 1 1 2 Material Flow... 5 1 2 Communication Interface... 9 1 2 1 Device Drivers... 10 1 3 Introduction to OpenCIM... 12 1 3 1 Production Operations... 13 1 3 2 Real Time Monitoring... 17 CHAPTER 2: CNC Milling Station and Control software... 20 2 1 Introduction... 20 2 1 1 Milling process definition... 20 2 2 Milling Machine Components... 21 2 2 1 The front panel components... 22 2 3 NC Programming (G/M Coding)... 22 2 3 1 Block Number (N Code)... 23 2 3 2 Preparatory Codes (G Code):... 24 2 3 3 Miscellaneous Codes (M Codes)... 26 2 3 4 Feed Rate (F Codes)... 27 2 3 5 Spindle Speed(S Code)... 28 2 3 6 Tool Selection (T Code)... 28 2 4 Understanding Coordinate Systems... 28 2 4 1 Machine Coordinates... 29 2 4 2 Work Coordinates... 29 2 5 Programming Tool Paths... 31 2 5 1 Linear Interpolation... 31 2 5 2 Circular Interpolation... 32 i

INDU 411 Computer Integrated Manufacturing Lab Manual 2 5 3 Circular Interpolation using R... 34 2 5 4 Circular Interpolation using Different Planes... 34 2 6 Available Tools... 34 2 6 1 Tool Offsets... 34 2 7 ProLight CNC mill control software... 35 2 7 1 Menu bar... 35 2 7 2 Standard Toolbar... 35 2 7 3 Edit Window... 36 2 7 4 Position Readout... 36 2 7 5 Machine Info Panel... 37 2 7 6 Verify Window... 37 2 8 Running a Sample NC Program... 38 2 8 1 Load the program... 38 2 8 2 Adjust the Verify Settings... 38 2 8 3 Creating a Program to Produce a Part... 40 2 9 Assignment... 43 CHAPTER 3: The CNC Turning Center... 46 3 1 Introduction... 46 3 2 Absolute Coordinates VS Incremental Coordinates... 48 3 3 Work Coordinates vs. Machine Coordinates... 50 3 4 Tool Selection... 50 3 4 1 Tool Definitions... 51 3 4 2 A Note on Tool Nose Radius Compensation... 52 3 5 Programming Codes... 53 3 5 1 Preparatory Codes (G Codes)... 53 3 5 2 Miscellaneous Codes (M Codes)... 53 3 5 3 Speeds and Feeds... 54 3 6 ProLight CNC Turning Control Software... 55 3 6 1 Machining a Part... 56 3 7 The Program Simulations... 61 3 8 Turning Center Assignment... 63 CHAPTER 4: Robot Control Programming... 65 ii

INDU 411 Computer Integrated Manufacturing Lab Manual 4 1 Introduction... 65 4 2 Robot Components... 66 4 3 Teaching Robot Position... 68 4 3 1 Define positions... 70 4 3 2 Teach Pendant key functions... 71 4 4 Advance Terminal Software (ATS) & Advance Control Language (ACL)... 77 4 4 1 ACL commands... 79 4 4 2 Saving a Program File... 82 4 4 3 Downloading a Program... 84 4 4 4 Downloading Messages... 85 4 4 5 Activating ATS... 86 4 5 Robotic Integration... 87 4 5 1 A sample of mill/robot Communication... 88 4 6 CNC Programs to Interact with the Robots... 93 4 6 1 Communication Codes... 93 4 6 2 Get and Put Routines... 94 CHAPTER 5: System Integration and Optimization... 95 5 1 Introduction... 95 5 2 Machine and Process Definitions... 95 5 3 Part Definitions... 98 5 4 Storage Manager... 102 5 5 Material Requirement Planning... 105 5 5 1 Customer order form... 106 5 5 2 Manufacturing Order form... 107 5 5 3 Purchase Order form... 108 5 6 Optimization... 110 5 7 Performance Analysis... 112 5 8 Report Generator... 115 5 8 1 Part definition Report... 116 5 8 2 Subpart Report... 116 5 8 3 Manufacturing Order Report... 117 5 8 4 Machine Report... 118 iii

INDU 411 Computer Integrated Manufacturing Lab Manual 5 8 5 Process Report... 119 5 8 6 ASRS Report... 120 5 8 7 Analysis Report... 120 APPENDIX A: List of G and M codes... 123 iv

INDU 411 Computer Integrated Manufacturing Lab Manual Introduction The objective of this lab to introduce computerized manufacturing systems to the senior year Industrial Engineering students. The content of the lab is also useful for the Mechanical Engineering undergraduate students. In order to achieve this goal, a fully computerized manufacturing system that covers transformation of raw materials to finished parts/products is installed in the Computer Integrated Manufacturing (CIM) lab. The lab includes three robots (two ER-9 and one ER-5), 3-axis CNC mill (ProLight Machining Center), 2-axis CNC lathe (ProLight Turning Center), automated storage and retrieval system (ASRS), closed loop continuous conveyor, and quality control center. In the lab, students gain practical experience via work on a project (manufacturing of a part). This includes conceptual design of the part, process planning, NC machining and robot programming and integration of system components. Students learn how to integrate and control the system using CIM system software called OpenCIM. Students are able to search for optimal production techniques by experimenting with dispatching rules. Figure 1: Computer Integrated Manufacturing for Industrial Training Applications 1

INDU 411 Computer Integrated Manufacturing Lab Manual CHAPTER 1: OpenCIM System Management Software 1-1 System Components To stay competitive, factories are increasingly automating their production lines with Computer Integrated Manufacturing (CIM) systems. A CIM cell is an automated assembly line that uses a network of computers to control robots, production machines, and quality control devices. The CIM cell can be programmed to produce custom parts and products. CIM provides many advantages: Computer integration of information gives all departments of a factory rapid access to the same production data. Accessibility of production data results in faster response to change, which in turn shortens lead times, increases the company s responsiveness to customer demands and competition, and improves due-date reliability. Computer aided scheduling optimizes the use of the shop floor. This improves the utilization of machine tools, and reduces work-in-progress and lead times. Real-time production data can be used to optimize the production processes to improve quality, using techniques such as statistical process control. Computer analysis and prediction of material requirements for production can reduce inventory levels and lead times. Integration with suppliers and customers can provide even greater benefits. This chapter describes the hardware and software components which comprise an OpenCIM cell (Figure 1-1). It discusses each component individually and also how all components work together. The topics covered include the general configuration of the cell, material flow, control and production devices and communication networks. The emphasis is on the role each component plays in the integrated system. Finally, OpenCIM software and schematic of 2

INDU 411 Computer Integrated Manufacturing Lab Manual communication between each station in cell are introduced and the production operation is shown through an example. Figure 1 1: the overview of CIM LAB CIM cells are composed of the following basic elements: 1. Conveyor: Device that transports parts from station to station. 2. Production Stations: Locations around the cell where parts are processed and stored by machines and robots. Robots move parts between the conveyor and station machines. 3. CIM Manger: The PC that contains the CIM Manager software which coordinates the functioning of all devices in the cell using a Local Area Network (LAN). 4. Station Manager: A PC that controls the different devices at a station and has a communication link with the CIM manager. Device Control is performed by OpenCIM device drivers that run on this PC. A device driver controls the operation of a device at the station in response to commands from the CIM manager and other CIM elements. 3

INDU 411 Computer Integrated Manufacturing Lab Manual 1-1-1 Stations The OpenCIM cell is composed of a set of stations located around a conveyor as shown in the figure 1-2. Each station is controlled by a Station Manager PC. A CIM Manager PC coordinates the activities of all stations. Production commands are sent from the CIM Manager computer to the device drivers via the Station Manager PC. Status messages generated by devices are interpreted by the device driver and sent back to the CIM Manager. Generally, the major stations are: ASRS Station: Automatic warehouse which supplies raw materials to the OpenCIM cell and holds finished products. Machine Station: Station where Materials are shaped, formed, or otherwise processed (e.g. using a CNC machine) Assembly Station: A station where parts are put together. The resulting new part is called an assembly. QC Station: Quality Control. Inspection of parts using machine vision. Figure 1 2 Schematic example of Stations at CIM Stations contain devices that perform production activities such as material processing or inspection. The following elements are generally present at a station: 4

INDU 411 Computer Integrated Manufacturing Lab Manual Robot: A device which moves parts around a station (e.g. inserts parts into a CNC machine) and/or performs assembly operations. Robot Controller: An ACL controller which controls the robot Station Manager PC: A Station Manager PC where the device drivers are located that: a. Translate OpenCIM production messages and commands to/from each station device (e.g. the ACL controller commands). b. Provide a user interface for controlling station devices by manually sending OpenCIM commands (e.g. to CNC machines or an ACL controller) c. Function as a terminal for devices that use an RS232 1 interface for setup and programming (such as the ACL controller). Machine: A device that processes parts at a station. CNC machines such as lathes and mills process parts according to user-supplied G-code programs 1-1-2 Material Flow Material handling tasks can be divided into two groups: Primary Material Handling: These tasks perform the transportation of parts between stations. Secondary Material Handling: These tasks perform the handling of parts within a station, such as placing a template on the conveyor, inserting a part in a CNC machine, assembling parts and so on. In OpenCIM cell, the primary material handling tasks are usually performed by the conveyor. A robot performs the secondary material handling tasks at each station. When a robot removes a 1 An RS232 interface (also known as a serial port or com port on a PC) is a low-speed data Communications port that typically transmits and receives information at the rate of 300-19,200 bits per second (bps) 5

INDU 411 Computer Integrated Manufacturing Lab Manual template from the conveyor, it typically places it on a buffer. (A buffer is a tray designed to hold a template when it is removed from the conveyor. The buffer is attached to the outer rim of the conveyor.) Once the template is on the buffer, the robot can remove a part from the template and take it to a station device. Templates Templates are plastic trays which can hold various types of parts (Figure 1-3). They allow parts to be transported on the conveyor. A template contains a matrix of holes in which pins are placed to fit the dimensions of a part. Each arrangement of pins defines a unique template type. Each part may only be held by its assigned template. Figure 1 3: An empty template Storage An ASRS station (Figure 1-4) is typically used as the main source of raw material storage for the cell. The ASRS can also serve as a warehouse for parts in various stages of production. Storage cells in the ASRS contain templates, either empty or loaded with parts. Part feeders can also be used to supply raw materials at various stations around the cell. 6

INDU 411 Computer Integrated Manufacturing Lab Manual Figure 1 4 Automatic System Retrieval Storage Conveyor and pallets A pallet is a tray which travels on the CIM conveyor and is designed to carry a template (Figure 1-5). To transport a part to another station, a robot places the template carrying the part on a pallet on the conveyor. The OpenCIM conveyor carries pallets in a continuous circuit from station to station. The conveyor is controlled by a PLC (programmable logic controller). Each pallet has an ID number which is magnetically encoded in a bar on the pallet. Each pallet is stopped briefly when it arrives at a station so that its magnetic code can be read. If the PLC determines that the pallet is needed at this station, it informs the CIM Manager. The pallet remains at this station until the CIM Manager sends a release command. While a pallet is stopped, the conveyor continues to transport other pallets which are moving between stations. The location at which a pallet is stopped is called a conveyor station. Each OpenCIM station has its own conveyor station, which contains two pneumatically operated pallet stops, a magnetic pallet-arrival sensor, a magnetic pallet-in-place sensor and a set of magnetic pallet code sensors. Figure 1 5 Pallet at Conveyor Station 7

INDU 411 Computer Integrated Manufacturing Lab Manual The CIM Manager keeps track of pallets which are empty and those which are carrying parts. It sends the destination station of each pallet to the PLC. Magnetic code readers at each station enable the PLC to identify the pallet ID numbers. If the part carried by the pallet does not require processing at the station, the pallet is allowed to continue on the conveyor. Even though a pallet may be needed at a station, the CIM Manager may direct the PLC to release it if the robot that handles templates at this station is busy. Robot and Controller CIM robots (Figure 1-6) move parts within a station (secondary material handling) and perform assembly operations. Robots vary in speed, payload, accuracy, range of movements (degrees of freedom), working envelope (horizontally or vertically articulated), and drive mechanism (DC servo, AC servo or pneumatic). Figure 1 6 Robot Controller, Teach pendant and station manager Robotic programming language uses a device driver in order to communicate with the OpenCIM manager software. Robotic programs inform the robot what path to follow and what task to 8

INDU 411 Computer Integrated Manufacturing Lab Manual perform once it reaches a destination. The controller (ACL) provides the power supply to the robot and moves the robot by controlling the power to the motors inside the robot. 1-2 Communication Interface The CIM Manager and device drivers exchange command and status messages via the OpenCIM Network. This network is based on the Windows TCP/IP communication protocol. Each module (manager, device drivers) in the TCP/IP protocol has two communication sockets, the server and the client. A socket represents an endpoint for communication between processes across a network. Both the server and the client have an IP address and a port number that is unique. The OpenCIM Network transparently delivers the message to the destination application whether it is running on the same PC or on a PC connected via a LAN. OpenCIM uses the LAN to: Send commands from the CIM Manager to Device Drivers (e.g. data such as part ID #, task to perform, machine to use, etc.) Send real-time production status messages from Device Drivers to the CIM Manager Allow Device Drivers to retrieve process programs (e.g. G-code) stored on the server Send real-time production status messages to the Graphic Tracking software Transfer CIM messages between different device drivers Transfer CIM messages between devices and a user application running on a networked PC Perform central backup and restore of all PCs attached to the LAN 9

INDU 411 Computer Integrated Manufacturing Lab Manual Figure 1 7 Communication network used in OpenCIM 1-2-1 Device Drivers Each device at a station is controlled by an OpenCIM device driver program running on the Station Manager PC. A device driver translates OpenCIM messages in two directions: 1) OpenCIM instruction messages into a set of commands understood by the target device. 2) A response from the device into an OpenCIM status message. After a device driver translates an instruction into a command, it sends the command to the destination machine or robot. When a device returns a response, the device driver translates this information into a standard OpenCIM message format. It then relays this information as follows: Device status information to the CIM Manager Real-time production data to the Graphic Tracking module 10

INDU 411 Computer Integrated Manufacturing Lab Manual Designated messages from a device to a user defined process that is monitoring this device Specific messages to other device drivers A separate copy of a device driver (figure 1-8) is run on a Station Manager PC for each device at the station. Each device driver presents a control panel which allows you to: Observe the command and response messages on-screen as they are sent to and from a device Issue commands interactively to a device and observe its responses on-screen Figure 1 8 Device Driver 11

INDU 411 Computer Integrated Manufacturing Lab Manual 1-3 Introduction to OpenCIM This section describes how to operate the CIM Manager which is used for operating the OpenCIM system and controlling production. The CIM Manager is accessed from the Project Manager main window enabling the user to centrally control all the activities of a selected OpenCIM cell. To access the CIM Manager application click CIM Manager on the toolbar. The CIM Manager Main window is displayed, as shown in figure 1-9. The CIM Manager can operate in the following modes: Simulation Mode: The CIM Manager does not communicate with device drivers. This mode does not require either hardware or device drivers. Real Mode: The CIM Manager communicates with all device drivers, whether or not hardware is in use. This mode requires that all device drivers which are needed for a specific application (for a specific product order) be loaded, so that the CIM Manager can transmit and receive messages. Figure 1 9 CIM Manager main window The CIM Manager can operate in real mode CIM Manager Mode of Operation even if the hardware has not been activated, or even if no hardware exists. The MODES Dialog Box (figure 12

INDU 411 Computer Integrated Manufacturing Lab Manual 1-10) is displayed by clicking the CIM Modes icon on the toolbar. This dialog box enables you to select the current modes that are active in the CIM Manager, Real Mode or Simulation Mode.. 1-3-1 Production Operations Figure 1 10 Modes Dialog Box The following Covered Box sample application is used in this manual to demonstrate the concepts of the OpenCIM system. The steps shown below are explained in more detail as each topic is introduced later in this manual. The sample application produces a simple, covered box from a small, solid cube and a matching cover. Each component part is assumed to be in place on a separate template in ASRS. Generally, the following operations are performed in the CIM cell when producing a product: Supplied parts (raw materials) are loaded into storage locations. Manufacturing orders are generated by the CIM Manager Parts are removed from the ASRS and transported on the conveyor to production stations. Robots take parts from the conveyor and move them to various production machines (e.g. CNC machines) at a station (machine tending). Typical production tasks include: Processing in a CNC machine Assembling two or more parts 13

INDU 411 Computer Integrated Manufacturing Lab Manual Quality control tests Robots return processed parts to the conveyor for transportation to the next station. Finished products are removed (unloaded) from the cell. Covered Box Example The ASRS robot takes a solid cube and a cover from a storage cell and places them on separate pallets on the conveyor. When the cover arrives at the assembly station, the assembly robot places it in a rack until the matching box arrives. When the cube arrives at a CNC station, the CNC robot places the cub into a milling machine. The CNC machine reams out the center of the cube to form a box. The CNC robot places the box on the conveyor. When the box arrives at the assembly station, the robot places it on a rack. When all the parts required for the assembly are on their rack, the robot places the base part (box) on the jig. The robot then retrieves the matching cover from the rack and places it on the box. The robot places the covered box on the conveyor. When the covered box arrives at the ASRS, the robot places the finished product in a storage cell (figure 1-11). Figure 1 11 Covered Box Operation 14

INDU 411 Computer Integrated Manufacturing Lab Manual Part Definition A product is manufactured from a group of subparts (bill of materials) that are put together according to a specified set of machine processes. Starting with a set of raw materials (supplied parts), you define parts at the intermediate stages of production required to assemble a final product. The Part Definition screen, or form, allows you to enter the bill of materials and the associated production processes used to produce a part. Using the Part Definition form, you can either: Modify/view the production process for an existing product. Describe the production process for a new product. Defining a new product involves the following steps: Drawing a part definition tree Setting up all machine processes necessary to produce a product and all its subparts Determining what new template designs are required to handle all the parts involved and assign these designs template ID numbers Determining the types of racks that can hold each subpart The Part Definition form for Product (figure 1-12) parts lets you create, view, or modify the current part (either a product or its subparts). A part record contains all the fields shown on the Part Definition form. Figure 1 12 part definition form for product 15

INDU 411 Computer Integrated Manufacturing Lab Manual If you define the part as Supplied, the Part Process table will be replaced by a section containing data regarding the supplier and supplied material, as shown in figure (1-13). Figure 1 13 part definition form for supplied part During the manufacturing process, you can track production by looking at up to different view screens. Click the appropriate icon on the toolbar to open the desired View screen, or select the desired View from the alphabetical list in the Windows drop-down menu. Following the device view and leaf view is explained. Machine Definition Machine names are usually predefined and only need to be selected from the Machine Name drop-down list. The process name enables the CIM Manager to determine which machine is capable of performing the specific process required to produce a part (as defined in the Process field in the Part Process Table in the Part Definition form). The Machine Definition form lets you view any machine that has been defined for the system. You can define new or modify existing processes for the machine to perform. A machine record contains the machine name and one or more defined processes (process record). The CIM Machine Definition window displayed below is accessed by from the CIM Manager Main Window, by selecting Utility Programs Machine Definition from the Menu bar (Figure1-14). 16

INDU 411 Computer Integrated Manufacturing Lab Manual Figure 1 14 Machine and Process Definition form 1-3-2 Real Time Monitoring Device view The Device View (figure 1-15) is a complete list of every robot and machine (including QC devices) in the CIM cell and a description of the current action being performed by each. Figure 1 15 Device view The following is an explanation of each column in the Device View. Device: Name of the device or machine 17

INDU 411 Computer Integrated Manufacturing Lab Manual Status: When a part is being produced, one of the following symbols appears at the current stage of production: RUN: Command sent, waiting for acknowledgment. Start: Device has begun processing this part (device driver has responded with Start message). Finish: Device finished processing this part (device driver has responded with Finish message). End: Device ended processing this part (device driver has responded with End message). Stop: Device is ready for next command. Load: Device is loading the processing program from the Backup or the Database. Action: The movement or operation command which is currently being executed by the device. For robots, the action is commonly the placement of a part. For machines, the action is usually the name of the process (as defined in the Machine Definition form). Station: The number which identifies the workstation where the device is located. ID: The Device ID number, as defined in the Virtual CIM Setup. Leaf view The Leaf View (figure 1-16) provides a detailed description of the production activities of the CIM cell, describing the current operation being performed on each item and the operation that will immediately follow. Figure 1 16 Leaf view The following is an explanation of each column in the Leaf View. 18

INDU 411 Computer Integrated Manufacturing Lab Manual Sub Part of Part: Name of the part and the name of the final product to which it belongs. Action: The action currently in progress (upper line) Next Process(>): the next process to be performed on the part Status: When a part is being produced, one of the following symbols appears at the current stage of production: : Command sent, waiting for acknowledgment ON: Device has begun processing this part (device driver has responded with Start message) OFF: Device finished processing this part (device driver has responded with Finish message) : The blue box indicates operation completed (device driver has responded with End message) WAIT: CIM Manager is waiting for another operation to complete before sending this command Part ID: An internal ID index for the part, generated by the CIM Manager Bar Code: The ID number of the template which is carrying the part Leaf ID: An internal ID index generated by the CIM Manager 19

INDU 411 Computer Integrated Manufacturing Lab Manual CHAPTER 2: CNC Milling Station and Control software 2-1 Introduction The PLM1000 CNC Machining Center (workstation 2 and ID number # 24) is a threeaxis tabletop milling machine which you can initiated directly from CIM manager or workstation personal computer. The term CNC machining center refers to a milling machine where the dials and feed motors have been replaced by ball screws and step motors and cutting tools are changed automatically. The CNC machining center (ProLight) used in this course has been designed to operate with as little human intervention as possible. A robot is used to load material to milling machine and extract finished parts. In this chapter the milling machine process is defined followed by the main machine components. The G/M code programming and the CNC simulation software for milling machine are introduced. At the end the robotic integration of milling machine is discussed. 2-1-1 Milling process definition The milling process requires a milling machine, workpiece, fixture, and cutter. The workpiece is a pre-shaped material that is secured (figure 2-1). Figure 2 1 (2 1) Milling Process 20

INDU 411 Computer Integrated Manufacturing Lab Manual The cutter is a cutting tool with one or more sharp teeth that is also secured in the milling machine and rotates. By feeding the workpiece into the rotating cutter, material is cut away from this workpiece in the form of small chips to create the desired shape 2. 2-2 Milling Machine Components The CNC Machine Center consists of seven major components (figure 2-2). The X, Y and Z motion of the machine is performed by Stepper Motors on each axis. The limit switches (beneath the way covers, next to the drive motor on each axis) prevent the machine from traveling beyond its limits on each axis. The safety shield encloses the milling area to help protect the operator from flying chips. The machine is equipped with an automatic tool changer; a four-station Automatic Tool Changer (ATC) which makes multiple tool programming an easy operation. Tool changes are written into the NC program and executed automatically during machining. Therefore, any of the four tools mounted can be selected by codes in the program. The machine is also equipped with an air vise that is opened and closed by means of air pressure controlled by a solenoid valve. An air nozzle can be turned on by the program to blow chips clear of the vise by codes in the program. Figure 2 2 Milling Machine 2 http://www.custompartnet.com/wu/milling 21

INDU 411 Computer Integrated Manufacturing Lab Manual 2-2-1 The front panel components The Front Panel provides the operating controls shown here. When pressed the Emergency Stop button, this bright red palm button halts machine operation immediately. To resume operation, the button must be pulled back out. It s important that this button be pressed before performing any manual operations, like changing the stock or the tooling. Figure 2 3 Front Panel The Spindle Speed knob is used to establish the spindle speed when the system is in Manual mode. The minimum and maximum positions on the switch are equivalent to approximately 500 (min) to 5,000 (max) RPM. Select a Spindle Speed mode with the Manual/CNC mode switch. The CNC setting on this switch gives spindle control to the computer. There must be an S code, or codes, in the NC program to set the spindle speed when using the CNC setting. 2-3 NC Programming (G/M Coding) NC programming generally incorporate two types of instructions: those which define the tool path (such as X, Y and Z axis coordinates), and those which specify machine operations (such as turning the spindle on or off). Each instruction is coded in a form the computer can understand. An NC program is composed of blocks (lines) of code. An NC word is a code made up of an alphabetic character (called an address character) and a number (called a parameter). Each block of NC code specifies the movement of the cutting tool on the Machining Center and a variety of conditions that support it. For example, a block of NC code might read: N0 G90 G01 X.5Y1.5 Z0 F1 If the machine is currently set for inch units, the individual words in this block translate as: 22

INDU 411 Computer Integrated Manufacturing Lab Manual N0: This is the block sequence number for the program. Block 0 is the first block in the program G90: This indicates absolute coordinates are used to define tool position G01: This specifies linear interpolation X.5: This specifies the X axis destination position as 0.5 Y1.5: This specifies the Y axis destination position as 1.5" Z0: This specifies the Z axis destination position as 0". The cutting tool will move to the absolute coordinate position (0.5, 1.5, 0) F1: This specifies a feed rate of 1 inch per minute, the speed at which the tool will advance to the specified coordinate points 2-3-1 Block Number (N Code) N codes have two uses: To provide destinations for loops (M99) elsewhere in the program To clearly show the organization of the code and improve readability Using the N code is optional; however, when you do use the N code, it must be the first character in the block. Other than for the above stated uses, N codes are ignored by the Control Program. Their presence, absence, or sequential value does not affect the execution of the NC program in any way (unless the target of a loop is missing). You may have N codes on some blocks and not on others. N code sequence numbers do not have to be in order, but regular sequential order does make it easier to follow and reference sections of the program. The Control Program can change the N codes in a program by inserting, removing, or renumbering them. Adding Notes to a Program: Like many other compilers notes may be added to a line of code by placing a semicolon (;) before the start of the text. Any text to the right of the semicolon will not be executed. 23

INDU 411 Computer Integrated Manufacturing Lab Manual Skip (\): The Skip allows you to skip particular lines of code in your program. To use the Skip code (\), place the code at the beginning of the line you wish to skip. 2-3-2 Preparatory Codes (G Code): G codes take effect before a motion is specified. They contain information such as the type of cut to be made, whether absolute or incremental dimensioning is being used, whether to pause for operator intervention, and so on. More than one G code from different groups can appear in each NC block. However, you may not place more than one G code from the same group in the same block. The G codes supported by the Control Program fall into the following groups: The Interpolation Group The Units Group The Wait Group The Canned Cycle Group The Programming Mode Group The Preset Position Group The Compensation Functions Group The Coordinate System Group The Polar Programming Group The Units Group By default, an NC program is interpreted using the units of measure (inch or metric) specified using the Units command on the Setup Menu. The codes in the Units group, G70 (inch) and G71 (metric), are used to override the Units command for the entire program. If the code is placed at the beginning of the program before any tool motions are made, that unit of measure is assumed for the entire program. Otherwise, it affects the rest of the program following the code. You can use these codes to switch between inch and metric modes throughout your program at your convenience. 24

INDU 411 Computer Integrated Manufacturing Lab Manual The Wait Group Wait Group codes apply only to the block in which they appear. The program does not continue until the wait conditions are satisfied. The supported Wait Group codes are: G04 Dwell (wait): Pause between motions on all axes for the number of seconds specified by the F code, then continue the program. Because the F code is used to specify the number of seconds, you cannot also specify a new feed rate in the same block. For example: G04F10; //Wait for 10 seconds G05 Pause: Used for operator intervention. Stop motion on all axes until the operator manually resumes program execution using the Run/Continue command. With the CNC basic software the program will continue when F5 is pressed. The Programming Mode Group Programming mode G codes select the programming mode, absolute (G90) or incremental (G91). These codes remain in effect until superseded by each other. With absolute programming, all X, Y and Z coordinates are relative to origin (0, 0, 0) of the current coordinate system. With incremental programming, each motion to a new coordinate is relative to the previous coordinate. The supported Programming Mode codes are: G90 Absolute programming mode G91 Incremental programming mode The Preset Position Group The preset position G codes move the tool to a predetermined position, or affect how future motions will be interpreted. The supported Preset Position codes are: G28 Set reference point: This code moves the machine to its home position. The G28 code performs an automatic calibration of the axes. G92 Set position: The X, Y and Z coordinates following a G92 code define the new current position of the tool. 25

INDU 411 Computer Integrated Manufacturing Lab Manual 2-3-3 Miscellaneous Codes (M Codes) M codes control a variety of Machining Center functions while a part program is running. Only one M code should be specified per NC block. M codes and motion commands should be placed on separate blocks to avoid confusion over whether an M code is activated during or after a motion command. The supported M codes are: M00 Pause: Allows you to place a pause in your code. Acts like a G05 pause. M01 Optional Stop: Allows you to place an optional pause in your code. Place an M01 in the block of code where you would like to pause. There are switches to activate or deactivate the Optional Stop code in the Run Settings dialog box and on the Operator Panel. M02 End of Program: Takes effect after all motion has stopped; turns off drive motors, and all outputs, including the spindle and the accessory outlets. M03 Spindle Motor On: Activated concurrently with motion specified in the program block; remains in effect until superseded by M05. M05 Spindle Motor Off: Activated after the motion specified in the program block; remains in effect until superseded by M03. M06 Tool Change: Pauses all operations, turns off spindle, retracts spindle for tool change. Example: M06T03 M08 Coolant On: Turns on coolant accessory AC outlet concurrently with the motion specified in the program block; remains in effect until superseded by M09. M09 Coolant Off: Turns off ACC 1 accessory AC outlet after the motion specified in the program block is completed; remains in effect until superseded by M08. M10 Clamps On: Turns on clamps accessory AC outlet concurrently with the motion specified in the program block; remains in effect until superseded by M11. M11 Clamps Off: Turns off clamps accessory AC outlet after the motion specified in the program block is completed; remains in effect until superseded by M10. M20 Chain to Next Program: This code is used to chain several NC files together. It appears at the end of a part program and is followed on the next line by the file name of another program which is executed when all motion stops. Here s an example of a part program chain to another program: 26

INDU 411 Computer Integrated Manufacturing Lab Manual N37 Z.2 N38 M20 PROGRAM2.NC; Chain to PROGRAM TWO If the two programs you are chaining are not in the same directory on your computer, you must specify the full path name for the next program file. If the software cannot locate the specified file, you will be prompted to find it. M30 End of program: Same as M02. M98 Call to subprogram. Use the P code to specify the subprogram starting block number. Use the L code to specify the number of times the subroutine is executed. You can nest subprogram calls to a depth of 20. M99 Return from Subprogram; Goto The M99 code has two specific uses; it can be used as a command to return from a subprogram or it can be used as a goto command. When used in a subprogram, this code returns you to the block following the last M98 (Call to Subprogram) command. If the M98 used an L code to specify multiple calls to the subprogram, the M99 will return to the block containing the M98 until all the specified number of subprogram calls have been made; then it will proceed to the block following the M98. This command can also be used in the main NC program as a Goto command to jump to a block on a line before the first subprogram. Use the P code to identify the block number being jumped to. Control is transferred to the first occurrence of this N code; this command can be used anywhere in the program to change the flow of program execution. 2-3-4 Feed Rate (F Codes) By using the F code you are able to: Specify the rate of speed at which the tool moves (feed rate) in inches per minute (ipm). For example, F3 equals 3 ipm. The feed rate should be set to a low value (up to 50 ipm) for cutting operations. Feed rate values are in millimeters per minute (mpm) when using metric units. The Control Program limits the programmed feed rate so it doesn t exceed the maximum allowed by the machining center. 27

INDU 411 Computer Integrated Manufacturing Lab Manual Specify the number of seconds to dwell when used with the G04 code. Example: G04F1; one second dwell. 2-3-5 Spindle Speed(S Code) Use the S code to set the spindle speed from within the NC program. Spindle speed is specified by the address character S followed by a parameter that represents the speed in RPMs. For example, S750 is the designation for a spindle speed of 750 RPMs. For the spindle speed to affect the spindle must be turned on by the M03 command. If the spindle is off, the spindle speed is stored and used when the spindle is turned on again within the program. Use the M05 command to turn the spindle off. 2-3-6 Tool Selection (T Code) Tools are specified by the address character T followed by a parameter that represents the number of the tool. For a tool change the T code must be used with an M-code. Example: M06T03 T3 is the designation for tool number three; M06 performs a tool change. 2-4 Understanding Coordinate Systems It is essential to set the machine to home position (figure 2-4) when the machine is turned on and the CNC Basic software is opened. This sets the machine to the machine zero point for Machine Coordinates and acts as a reference point for all user coordinate systems. 28

INDU 411 Computer Integrated Manufacturing Lab Manual 2-4-1 Machine Coordinates Figure 2 4 Home Position Machine Zero is the extreme negative end of travel on the X and Y axes, and the extreme positive end of travel on the Z axis. This is a fixed point on the machine, and cannot be changed. The machine uses this as a starting point for all operations. If the machine is not homed (set to the machine zero) it cannot coordinate the position of the Automatic Tool Changer, or accurately locate the workpiece on the cross slide. The machine is homed by selecting Set/Check Home under the Setup menu, and choosing the Set Home button; or by using a (PLM1000 setup menu) G28 code in the NC program. 2-4-2 Work Coordinates The tool paths programmed in your CNC script will use a work coordinate system. The origin of coordinate systems is set by the machinist. The position is arbitrary but in our projects we will use the left (x) front (y) top (z) position. Our ProLight machining center has six coordinate systems: G54 to G59 29

INDU 411 Computer Integrated Manufacturing Lab Manual Figure2 5 work coordinate systems In the XYZ user coordinate system the X-axis is from left to right, the Y-axis from front to back, and the Z-axis up and down. In this case X and Y tool paths will have positive values and Z will have negative values to machine the part. X Axis Coordinate An X code specifies the coordinate of the destination along the X axis (left to right). A U code is used in absolute programming mode (G90) to specify an incremental X motion. You cannot use the U code to mix incremental and absolute programming in the same block. Y Axis Coordinate A Y code specifies the coordinate of the destination along the Y axis (front to back). A V-code is used in absolute programming mode (G90) to specify an incremental Y motion. You cannot use the V code to mix incremental and absolute programming in the same block. Z Axis Coordinate A Z code specifies the coordinate of the destination along the Z axis (up and down). A W code is used in absolute programming mode (G90) to specify an incremental Z motion. You cannot use the W code to mix incremental and absolute programming in the same block. 30

INDU 411 Computer Integrated Manufacturing Lab Manual 2-5 Programming Tool Paths X, Y and Z are the 3 axes. The left to right movement is on the X-axis. The front to back movement is on the Y-axis. The up and down motion is on the Z-axis. Tool paths must be compensated for the radius of the cutter in order to produce the dimensions on the drawing. Offset the tool path by the radius of the cutter when G01, G02 or G03 codes (interpolation group) are used. Trigonometry will be involved when programming tool paths at angles other than 90 degrees. 2-5-1 Linear Interpolation G00 Rapid travel this always used with a Z, Y or X coordinate. Example: Rapid movement the cutting tool to a position 1.5, 1.705 from origin 0.1 inches G00 X1.5 Y1.705 Z0.1 F5; 31

INDU 411 Computer Integrated Manufacturing Lab Manual Be Careful: Rapid moves are never to be used to remove material but to position the cutting tool outside of the part. G01 Linear movement this always accompanied by a Z, Y or X coordinate. Example: Move the cutting tool to a position 1.5, 1.705 from origin 0.1 inches above the part at 5 ipm. G01 X1.5 Y1.705 Z0.1 F5; 2-5-2 Circular Interpolation Circular tool paths are programmed using G02 (clockwise) or G03 (counterclockwise) codes. The X, Y or Z values represent the center point of an arc. The center of an arc must be identified (figure 2-6). I, J or K codes are used to identify the center point of the arc. I code is for the X- axis, J for the Y-axis and K for the Z-axis. X Axis Coordinate of Center Point (I Code) In absolute programming mode (G90), the I code specifies the X axis coordinate of the center point of an arc or circle when using circular interpolation. In incremental mode (G91), the I code specifies the X axis distance from the start point of motion to the center point of the arc for circular interpolation. If no I code is specified, the system uses the current X axis location as the X axis center of the arc. Y Axis Coordinate of Center Point (J Code) In absolute programming mode (G90), the J code specifies the Y axis coordinate of the center point of an arc or circle when using circular interpolation. In incremental mode (G91), the J code specifies the Y axis distance from the start point of motion to the center point of the arc for circular interpolation. If no J code is specified, the system uses the current Y axis location as the Y axis center of the arc. Z Axis Coordinate of Center Point (K Code) In absolute programming mode (G90), the K code specifies the Z axis coordinate of the center point of an arc or a circle when using circular interpolation. In incremental mode (G91), the K code specifies the Z axis distance from the start point of motion to the center point of the arc for 32

INDU 411 Computer Integrated Manufacturing Lab Manual circular interpolation. If no K code is specified, the system uses the current Z axis location as the center of the arc. Figure 2 6 Circular Interpolation In order to produce the blow arc using the G-91 code (incremental mode) the code will be as follows: SET START POINT, INCEMENTAL MODE N9 G91X1Y0; COUNTERCLOCKWISE TO X0, Y1 N10G03X-1Y1I-1J0F2; Figure 2 7 Incremental Circular interpolation 33

INDU 411 Computer Integrated Manufacturing Lab Manual 2-5-3 Circular Interpolation using R In place of I, J or K codes R and the radius value may sometimes be used. Example: Counterclockwise move to Y1.5 on a 0.5 arc N15G03Y1.5R0.5; The R code is good for filleting corners but doesn t always work for angles other than 90 o. 2-5-4 Circular Interpolation using Different Planes The default plane in which most work is performed is X-Y. To change to the X-Z plane the code is G18 and G19 for the Y-Z plane. G17 will return to the X-Y plane. 2-6 Available Tools The following tools are mounted in our machining center. The material is 3.5 x 2 x ½ Plexiglas. Tool 1 3/8 End mill 2 Flutes Tool 2 ¼ End mill 2 Flutes Tool 3 3/16 Ball mill Tool 4 1/8 Ball Mill 2 Flutes 2 Flutes 2-6-1 Tool Offsets Tools will vary in dimensions from one another. To compensate for this an offset is set to compensate for the amount by which tool lengths and diameters vary from a reference tool. These are usually set by the machinist and stored in the memory of the machine s controller. When the parts dimensions are out of tolerance the machinist does not change the tool path in the program. The dimensions are corrected using the controllers tool offsets. 34

INDU 411 Computer Integrated Manufacturing Lab Manual 2-7 ProLight CNC mill control software You should become familiar with the main parts of the Control Program screen before you begin using the Control Program to run NC part programs. The following are the default components that make up the screen. Following explains the most important components of the screen. Figure 2 8 Control Program Screen 2-7-1 Menu bar The Menu Bar contains all of the menu commands for the Control Program. 2-7-2 Standard Toolbar The Standard Tool Bar provides easy access to the Control Programs most often used commands. Figure 2-9 shows the main buttons on toolbar. 35

INDU 411 Computer Integrated Manufacturing Lab Manual Figure 2 9 Toolbar main buttons 2-7-3 Edit Window Whenever you open an NC part program file it appears in its own edit window. You can have multiple edit windows open at a time. The number of which depends on available memory. By default, each new window is locked; you cannot edit a locked window. To unlock the window, use the Lock command under the Edit Menu. 2-7-4 Position Readout The Position Readout (figure 2-10) provides information on the current X, Y and Z coordinates of the tool position. The units of measure in the Position Readout are determined by the Units command under the Setup Menu. Figure 2 10 Position Readout 36

INDU 411 Computer Integrated Manufacturing Lab Manual 2-7-5 Machine Info Panel The Machine Info Panel (figure 2-11) provides information on the current tool, tool diameter, feed rate, spindle speed, number of passes made, coordinate system in use, as well as the current block and total number of blocks in the program. Figure 2 11 Info Panel 2-7-6 Verify Window The Verify Window displays a simulation of your part program when you select the Verify command from the Program Menu, or when you click the Verify Program button on the Standard Tool Bar. Tool path verification can be performed in centerline view or solid view. Centerline view (figure 2-12) is based on the centerline of the tool. Solid view (figure 2-13) is a solid representation of the tool and workpiece. Figure 2 12 Centerline view Figure 2 13 Solid view 37

INDU 411 Computer Integrated Manufacturing Lab Manual 2-8 Running a Sample NC Program 2-8-1 Load the program C:\Program Files\LMC\WPLM1000\Samples\Millone.nc 2-8-2 Adjust the Verify Settings After loading the NC program Millone.NC, you need to adjust the Verify Settings for the part you are about to machine. To view the Verify Setup dialog box, double click on the Verify window. You may also select the Program Menu and choose Verify from the pull down menu, or Select Verify from the Standard Toolbar and choose Verify Settings. The Verify Setup dialog box appears (figure 2-14). Adjust the Stock Figure 2 14 verify setup dialog box view panel Select the Stock tab. 38

INDU 411 Computer Integrated Manufacturing Lab Manual Enter the stock Dimensions for the MILLONE.NC program. The stock dimensions are X=3.5", Y=2" and Z=0.5 ". Set the Initial Tool Position to X=1, Y=1 and Z=1 Set the point of Origin to zero on all three axes. Select OK. The dialog box will close, and you should notice a change in the shape of the workpiece in the Verify Window (figure 2-15). Figure2 15 verify setup dialog box stock panel Verify File.NC Tool path verification allows you to check for errors in the tool path before actually running the part program on the Machining Center. The verify option does not alert the user to errors such as trying to machine with the spindle of or at the wrong speed or trying to machine on a Rapid Travel movement. 39

INDU 411 Computer Integrated Manufacturing Lab Manual 1. Select Verify from the Program Menu. The Verify Program dialog box appears. The default starting line for the program is Line 1. When verifying a program for the first time, you should begin at the first block. Figure 2 18 Verify program dialog box 2. Click on the Verify Program button, and then watch the Verify Window. You will see MILLONE.NC executed on the graphic workpiece. Figure 2 19 Graphic simulation 2-8-3 Creating a Program to Produce a Part Write a program, which will produce the outline of the pocket of the part on the next page (figure 2-20). The blank will be 3 x 2 x ½ laminate plastic. The cutting tool will be a 3/8 end mill, T01 in the tool library. The units will be inches. The program will use absolute coordinates. Use climb cutting and leave 0.050 for a finish pass. Leave out the codes for creating an interface with the robots at this time. The program will change from the world 40

INDU 411 Computer Integrated Manufacturing Lab Manual coordinate system to a user coordinate system. And return it to the world coordinate system at the end. N1; LAB2 N2M10; CLOSE VISE N3G05G04; WAIT FOR VISE TO CLOSEN N4G90; ABSOLUTE COORDINATES N5G70; INCH UNITS N6M06T01; SELECT TOOL #1 3/8" END MILL N8G56; USER COORDINATES SYSTEM 56 N9G00X0.8Y1Z0.1; RAPID TO START POSITION N10S1000M03; SPINDLE ON AT 1000 RPM N11G01Z0F4; APPROACH PART AT 4 IPM N12X2.2Z-0.188F2; MOVE TO DEPTH N13G01Y1.2F4; FIRST CUT AT 4 IPM N14X0.8; POCKET MILLING ROUTINE N15Y0.8 N16X2.2 N17Y1 N18X1.5Y1.3875 N19X0.875; START OF ARC N20G03X0.6125Y1.125I0.875J1.125; COUNTERCLOCKWISE N21G01Y0.875; START OF ARC N22G03X0.875Y0.6125I0.875J0.875; COUNTERCLOCKWISE N23G01X2.125 N24G03X2.3875Y0.875I2.125J0.875 N25G01Y1.125 N26G03X2.125Y1.3875I2.125J1.125 N27G01X0.875 N28X0.56325Y0.875; FINISH SIZE N29G03X0.875Y0.5625I0.875J0.875 N30G01X2.125 N31G03X2.4375Y0.875I2.125J0.875 N32G01Y1.125 N33G03X2.125Y1.4375I2.125J1.125 N34G01X0.875 N35G03X0.56325Y1.125I0.875J1.125 N36G01X0.56325Y0.875 N37X0.8Y1 N38X2.2 N39M05; SPINDLE OFF N40G00Z1; RAPID AWAY FROM PART N41M08; AIR NOZZLE ON N42G04F1; WAIT N43M09; AIR NOZZLE OFF N44G59; WORLD COORDINATE SYSTEM N45G28; HOME THE MACHINE (COORDINATES SHOULD READ X0Y0Z0) N46M11; OPEN VISE N47N3G05G04; WAIT FOR VISE TO OPEN N48M30; STOP 41

Figure 3 20 packet part drawing 2-8-4 Cutter Compensation Cutter compensation codes may make programming easier by allowing the machinist to use the dimensions of the part in the program. The tool will then be offset by an offset from the offset table. Figure 2 21 cutter compensation 42

2-9 Assignment To determine the cutting speed use the following formula. (CS x 4) / Dia. Of cutter: Maximum speed 2000 RPM Use a cutting speed (CS) of 300 feet per minute for Acrylic. To determine the Feed Rate use the following formula: f m = f t n t N f t = Feed per tooth in inches per minute (IPM). Use a f t of 0.010 for Acrylic. n t = Number of teeth N = Spindle speed in RPM 1. Machining Practice Create a program to mill the pocket in the previous example but using cutter compensation. Example: G41 D2; Cutter compensation left using offset 2 G01 X1.0 Y1.0; Move to position away from 1,1 by the amount of offset 2 2. Creating a Program to Produce a Part Write a program, which will produce the outline of the pocket of the part on the next page. The blank will be 3 x 2 x ½ laminate plastic. The cutting tool will be a 3/8 end mill, T01 in the tool library. The units will be inches. The program will use absolute coordinates. Use climb cutting and leave 0.050 for a finish pass. Leave out the codes for creating an interface with the robots at this time. The program will change from the world coordinate system to a user coordinate system: G56. And return it to the world coordinate system at the end. 43

N1; Material Type: Plexiglas N2; Material Size: 3.5 x2.0 x0.5 N3; Material Origin: X0 Y0 Z0 N4; Units: Inch N5; Tool #1: 3/8 End mill N6; --------------------------------------------- N7; program settings N8; ------------------------------------------ N9 G ; Inch modes N10 G ; Absolute coordinates N11 G _; Work Coordinates N12 G ; Home Machine N13 M T ; Select Tool #1 N14 G Z X Y ; Rapid move to a position 0.1 above the center of the hole N15 M S ; Spindle on at 2000rpm N16 G Z F ; Plunge to a depth of 0.1875 Feed rate: 5 inches per minute N17 G F ; One-second dwell N18 G X F ; Move to the O.D of the hole at the 3-oclock position at 10 ipm. N19 G X Y I J F ; Circular interpolation 360 degrees at 6 IPM N20 G X ; Move back to center of the hole N21 G Z F ; Plunge to a depth of 0.375 Feed rate: 5 inches per minute N22 G F ; One-second dwell N23 G X F ; Move to the O.D of the hole at the 3-oclock position at 10 ipm. N24 G X Y I J F ; Circular interpolation 360 degrees at 6 IPM N25 G Z ; Rapid retract tool #1 to 0.1 above the part N26 M ; Stop Spindle N27 M T ; Remove tool #1 N28 G ; Home Machine N29 M ; End of program You can create a Notepad or WordPad text file with this application. If you write your program using a word processor you should save it as a text tile, not as a document. 44

Figure 2 22 Assignment Drawing Now try to view the tool path using the CNC Basic software application in room H-827. 1. Open the WPLM software application on the desktop or in the Program Menu. 2. Open your text file with the WLPM application. 3. Click on the Verify icon, the red isometric block on the toolbar. Does the software simulation show the tool path which you intended? Save this program because it is part of a program the base you will be using for the CIM project 45

CHAPTER 3: The CNC Turning Center 3-1 Introduction The prolight Turning Center is a tabletop, two-axis, slant bed CNC lathe with threading and multiple tooling capabilities. You can perform multiple CNC roughing, finishing, boring, grooving, facing and cutoff operations. You can run the prolight lathe directly from your personal computer. Some of the operations performed using the Turning Center: Turning Facing Threading Grooving Parting Drilling Boring Tapping will require special tooling accessories. Some of the prolight Turning Center s most notable hardware and software features include: X axis travel of 4 inches ((100mm), Z axis travel of 10 inches (254mm) Feed rates up to 25 IPM (rapid traverse up to 50 IPM) Feed rate and spindle speed override functions EIA RS-274D standard G&M code programming Multiple tool programming Canned cycles for threading, turning and drilling Computer-controlled spindle speeds from 0 to 3,600 RPM at low range, and 0 to 3,6000 RPM at high range A built-in full-screen NC program editor with graphic tool path verification Safety shield and limit switches, Emergency stops from the Turning Center and computer keyboard 46

The PLT1000 software runs on the windows operating system. In industry CNC machines have controllers built in because computers are not reliable enough. Using industry standard EIA RS- 274D NC codes, the Control Program provides for two-axis CNC programming and turning. The system for entering commands for a CNC program using a text file is a set of codes known as G-Codes. These are text-based commands, which can be compiled on a text editor. Save the code as a text file if a word processor is used. Programming routines such as looping, subroutines and subprogram s can be used. For comments place a semicolon between the command and the comment. Line numbers make troubleshooting a program much easier. Example: N1 G00 X1.5Z3; Rapid travel to X1.5, Z3 The main Turning Center components shown in figure 3-1: Figure 3 1 Turning Center 47

The movements are programmed on a grid coordinate system. Left and right movements are programmed on the Z-axis. Radius is programmed on the X-axis. The Y-axis is not relevant on this lathe. Figure 3 2 Turning Center coordinate center 3-2 Absolute Coordinates VS Incremental Coordinates Absolute coordinates (figure 3-3) are used when the X and Z values given are in relation to the origin defined as 0, 0. The G code is G90. We can set the origin anywhere within the travel of the machine. In our labs we will set our origin (0, 0) at the chuck face and the center of the stock. When using the G90 code (absolute coordinates) the X, Z values will be the distance from this point. The values must be positive. In this case negative values will result in the tool hitting the chuck. 48

Figure 3 3 Absolute Coordinates Incremental Coordinates (figure 3-4) are used when the X and Z values are in relation to the last position. The G code is G91. Be extra careful when using absolute coordinates. You must know how far the cutting tool is from the part or chuck at all times. Figure 3 4 Incremental Coordinates 49

3-3 Work Coordinates vs. Machine Coordinates The machine coordinates are in relation to the machine home. When writing G-codes the user will use work coordinates. These will be in relation to the point (0, 0) defined by the user, in this case a chuck. 3-4 Tool Selection Tool selection (figure 3-5) is performed by means of a turret. The tools are mounted in the turret before hand, and are given numbers to keep track of them in a tool library. The positions on the turret are numbered and rotated into cutting positions by means a combination an M-code and a Tool number in the program. Example: M06 T1 Extreme care must be taken when programming to ensure that any tools mounted (not just the tool selected) are well clear of any part being turned, the chuck or robots before the turret is rotated to a new position. Figure 3 5 Tool Selection 50

On the ProLight turning center there are eight positions. Positions 1, 3, 5 and 7 are for outside diameters and faces; turning facing and threading tools etc. Positions 2, 4, 6 and 8 are for internal diameters and faces, drills, boring bars, taps etc. 3-4-1 Tool Definitions T01 Right hand turning (figure 3-6) T03 Left hand turning (figure 3-7) T05 Parting tool 0.100 width (figure 3-8) T07 ¼ Right hand turning (figure 3-9) Figure 3 6 right hand turning Figure 3 7 left hand turning 51

Figure 3 8 Parting tool 0.100 width Figure 3 9 right hand turning Tool Hints: 1. Tool 3, the left hand turning tool is 0.625 wide. So don t approach the origin any closer than Z0.630. It will collide with the chuck. 2. Do not program turning operations using Tools 5. It can only cut with movements on the X axis 3. Tool 7, the radius of the ¼ profiling tool is 0.125. So don t approach the origin any closer than Z0.2. 4. Do not program plunging operations with Tools 1 and 3 and 7. 5. Limit each cut to 0.050 or less for turning operations. 3-4-2 A Note on Tool Nose Radius Compensation When turning angles and curves the radius of the tool will overlap with the programmed tool path. Industrial CNC lathes have Tool Nose Radius Compensation (figure 3-10) to be used with G-codes to correct this situation by offsetting the cutting tool. However our lathe does not have this feature. 52

Figure 3 10 Tool Nose Radius Compensation Tools will have offsets defined to compensate for the varying amounts by which they deviate from the reference tool. Tool 1 is usually the reference tool. Offsets must be redefined whenever a tool is replaced with a different or sharpened tool. Offsets are stored in the memory of the control and are not defined in the program. The offset is not part of the program, but is stored in a memory location. 3-5 Programming Codes 3-5-1 Preparatory Codes (G Codes) G codes take effect before a motion is specified. They contain information such as the type of cut to be made, whether absolute or incremental dimensioning is being used, whether to pause for operator intervention, and so on. Refer to chapter 2 and Appendix A: G codes for more information. 3-5-2 Miscellaneous Codes (M Codes) M codes control a variety of Turning Center functions while a part program is running. Only one M code should be specified per NC block. M codes and motion commands should be placed on 53

separate blocks to avoid confusion over whether an M code is activated during or after a motion command. M codes can also be used to chain a second program to the end of a part program, or to repeat an NC program. Refer to chapter 2 and Appendix A: M codes for more information. 3-5-3 Speeds and Feeds An S code defines a speed rate in rpm. Example: to select 900 rpm enter S900. Feed rates in inches per minute (IPM) are programmed using F codes. Example: to select 4 inches per minute enter F4. Speeds and feeds are usually programmed but may be overridden by a dial on the control panel. 100% is the programmed rate. More than 100% is faster, less than 100% is slower. Remember: RPM=(CS * 4) / Diameter ; Cutting Speed (CS) Example: If the programmed spindle speed is 1000 rpm an override setting of 120% will give a spindle speed of 1200rpm. Speeds and feeds are modal. The setting need not be entered on every line. Once entered feeds and speeds will stay in effect until a new rate is entered. S Code Select speed example: M03 S1000; turn on spindle at 1000rpm F Code Select feed rate: N1 G01 Z.5X3 F4; Move to position 0.5, 3.0 at 4 inches per minute 54

3-6 ProLight CNC Turning Control Software The Control Program interface (figure 3-11) is composed of several components that allow you to create NC part programs and interact with the Turning Center. The Menu Bar contains all of the menu commands for the Control Program. The Standard Tool Bar provides easy access to the most often used commands available in the Control Program, like jog Control, Operator Panel, and Home, Verify, Run, and Stop. The Turret Control Toolbar configures the Tool Turret by specifying which tool is in which station to make tool changes more accessible. To change the tool, activate one of the eight Tool Station buttons. The tools must be defined in the Tool Library dialog box which can be accessed through the Tool menu. The Outputs Tool Bar is an active tool bar. It provides switches to supply power to the spindle, and to the Accessory outlets on the Controller Box. Switches for Robotic outputs 1 and 2 are also provided. Figure 3 11Control Program Interface 55

The Inputs Tool Bar is an inactive tool bar. It provides information only on the state of the Emergency Stop, the Safety Shield, and the negative limit switch. Indicators for Robotic inputs 1 and 2 are also provided. An input is active (on) when the button is depressed. Edit windows: Whenever you open an NC part program file it appears in its own edit window. These windows have the same characteristics as other Windows (scroll bars; minimize/maximize buttons, etc.). Status Bar: The left side of the Status Bar provides information about the currently selected function. The right side of the status bar provides information on: Whether or not the Turning Center is homed Whether or not the Num Lock key is activated The current line and total number of lines in the program Whether or not the current NC part program is locked Whether or not the current NC part program has been modified When the indicator is dimmed, the function is in the off condition. The Verify Window displays a simulation of your part program when you select the Verify command from the Program Menu, or when you click the Verify Program button on the Standard Tool Bar. Many elements in the Verify Window can be altered according to your preferences in the Display section of the Verify Setup dialog box. The view of the work piece can be centered, zoomed in or out, color coded and instantly updated after the window is resized. 3-6-1 Machining a Part Load a piece (figure 3-12) of aluminum 2 9 18 " long x 3 4 " diameter to the chuck. Write a program to produce the part in the drawing below. Work in inch units and absolute coordinates. Calculate RPM using formula RPM= (CS x 4) / Diameter, CS for aluminum is 400 Calculate the federate in IPM (inches per minute). Use 0.010 per revolution. 56

Figure 3 12 Steps to Write a Simple Program Choose absolute coordinates and inch units from setup in main toolbar (figure 3-13). Then use the following program: N1; THIS A PRACTICE FILE TO N2; PRODUCE A N3; TURNING PROGRAM N4G59; N5G90; N6G70; CHOOSE USER COORDINATE SYSTEM ABSOLUTE MODE INCH UNITS N7M06T01; SELECT TOOL #1 N8S900M03; N9G00Z1.9375X0.4; N10G01X-0.03F3; N11G00Z2X0.365; N12G01Z0.875F3; N13G00X0.45; SET SPEED 900rpm turn on spindle POSITION 2.5" FROM ORIGIN FACE END AT 3 INCHES PER MINUTE RETRACT FIRST CUT RAPID AWAY FROM PART 57

N14G00Z2; N15G00X0.35; N16G01Z0.875F3; N17G00X0.45; N18G28; N19M06T07; N20G00X0.375Z2; N21M03S800; N22G01X0.3375Z1.875F2; N23G00X0.4; N24G28; N25M30; RAPID TO RIGHT END FINISH SIZE FINISH CUT AT 3 INCHES PER MINUTE RAPID AWAY FROM PART HOME POSITION SELECT CHAMFER TOOL APPROACH PART SET SPEED CHAMFER RETRACT HOME POSITION STOP Figure 3 13 main window view 58

After finishing the program writing from the main menu, choose: Setup check home: from menu setup Set/Check Home (figure 3-14) Figure 3 14 Setup Menu Home Turret: Menu ToolsOperate Turret (figure 3-15) after home, Press Done to finish. Figure 3 15 Operate Turret Start Program: Menu FileOpen (figure 3-16) and choose start. 59

Figure 3 16 Menu File You should see the figure 3-17 now. Click cycle starting and fallow the figures (3-18) and (3-19). Figure 3 17 part in simulation view Figure 3 18 cycle starting 60

From configure turret menu click OK (figure 3-19) when the yellow title appears (figure 3-20), it is ready to run Figure 3 19 configure Turret Figure 3 20 run window 3-7 The Program Simulations Select the Verify icon from the menu toolbar to run the simulation. The simulation is an aid to check tool movements of a program. However the simulator will show the program as correct in spite of errors being present. The simulation will show the removal of material even if the following conditions are present: The spindle has not been turned on. Material is being removed on a rapid travel movement. Material is being removed with a parting tool on the Z-axis. A tool change without backing away from the part. Cutting tools being feed in the wrong direction. 61

CNC programming is easier if ordinate dimensioning is used. The piece will be held by soft jaws 5 / 8 deep. So the origin is 0.625 right of the end of the material. Eliminate a lot of math by moving the UCS to position X0, Z0; center of the chuck, flush with the face of the soft jaws. In your CAD files use ordinate dimensioning and you will be able to use these numbers from the dimensions in your program. The user coordinate system will be G59. Use G90 (absolute coordinates) and do not program any features to the left origin (negative on the Z axis). This will result in the tool holder hitting the chuck. Work in inches (G70). Move away from the work piece before a tool change (M06). When designing the chess piece avoid narrow shaft diameters near the base. The piece may bend due to tool forces. Also allow a large enough diameter for the robots grippers: 0.375 dia. 62

3-8 Turning Center Assignment N1; TURNING PROGRAM FIRST END N2 ; N3 G ; N4 G ; N5 M T ; N6 G X0.4 Z2.4; N7 M S ; N8 G X-0.03 F ; ABSOLUTE MODE INCH UNITS SELECT PARTING TOOL RAPID TO START POINT SET SPEED 1200rpm TURN ON SPINDLE FACE END AT 5 INCHES PER MINUTE N9 G Z ; RAPID MOVE TO Z4.0 N10 X ; RAPID MOVE TO X2.0 N11 M T ; N12 G00 Z2.42 X0.375; SELECT ¼ TURNING TOOL RAPID MOVEMENT TO START POSITION FOR TURNING THE DIAMETER TO 0.375 N13 G Z ; TURN THE DIAMETER UP TO 0.25 FROM THE CHUCK AT 10 INCHES PER MINUTE N14 G X0.4; RAPID AWAY FROM THE PART N15 G Z ; RAPID TO RIGHT END N16 X0.25; N17 G Z2.375F ; N18 Z X ; STARTING POSITION FOR TURNING THE CHAMFER APPROACH THE PART AT 10 INCHES PER MINUTE TURN THE CHAMFER TO Z2.25 X0.40 AT 10 INCHES PER MINUTE N19 G X ; RETRACT TO X0.4 N20 M ; N21 G ; N22 M ; STOP THE SPINDLE HOME POSITION STOP THE PROGRAM 63

Now view the tool paths program using the WPLT CNC basic software application. Does it show the tool path which you want? If it is correct save this file because you will use it for the first end of your chess piece. 64

CHAPTER 4: Robot Control Programming 4-1 Introduction CIM robots move parts within a station and perform assembly operations. The controller for CIM robots runs Advance Control Language (ACL) programs which tell the robot what path to follow and what to do once it reaches a destination. This controller contains the power supply for the robot. It moves the robot by controlling the power to the motors inside the robot. The controller is a stand-alone real-time device with multitasking capabilities which allows simultaneous and independent operation of several ACL programs. This multitasking ability allows the controller to function as a controller for a robot and peripheral devices (e.g. barcode reader, X-Y table) simultaneously. Figure(4-1) shows the components of the robotic control system. Figure 4-1 Robot work cell 65

4-2 Robot Components There are three Robot kinds exist in the CIM lab: 1. SCORBOT-ER IX 2. SCORBOT-ER V plus 3. ASRS-36 The SCORBOT-ER IX (figure 4-2) is a vertical articulated robot, with five revolute joints. With gripper attached, the robot has six degrees of freedom. This design permits the end effectors to be positioned and oriented arbitrarily within a large work space. Fig 4-3 identifies the joints and links of the mechanical arm. Each joint is driven by a permanent magnet DC motor via a Harmonic Drive gear transmission and timing belt. The movements of the joints are described in the table 4-1: Table 4-1: Joint, motion and motor relationships Axis No. Joint Name Motion Motor No. 1 Base Rotates the body 1 2 Shoulder Raises and lowers the upper arm 2 3 Elbow Raises and lowers the forearm 3 4 Wrist Pitch Raises and lowers the end effector 4 5 Wrist Roll Rotates the end effector 5 Figure 4-2 ER-IX robot joints and link The SCORBOT-ER IX is controlled by a standard ACL Controller-B. Controller-B has 16 inputs and 16 outputs which allow the robotic system receive signals from and transmit signals to 66

external devices in the robot s environment. The SCORBOT-ER Plus (figure 4-3) is also a vertical articulated robot, with five revolute joints. With gripper attached, the robot has six degrees of freedom. Fig.3 identifies the joints and links of the mechanical arm. This robot is controlled by a standard ACL Controller-A. The movements of the joints are described in the table 4-2: Table 4-2 Joint, Motion and Motor relationship II Axis No. Joint Name Motion Motor No. 1 Base Rotates the body 1 2 Shoulder Raises and lowers the upper arm 2 3 Elbow Raises and lowers the forearm 3 4 Wrist Pitch Raises and lowers the end effector (gripper) 4+5 5 Wrist Roll Rotates the end effector (gripper) 4+5 Figure 4-3 ER-V plus joints and links The ASRS36 is a Cartesian robot with an additional rotary axis. It has a set of storage racks (divided into six levels with six cells each). The robot, controlled by a standard ACL Controller-A, moves the parts between the shelves and the conveyor. 67

4-3 Teaching Robot Position The path that a robot follows is made up of points called robot positions. These positions can be taught using a teach-pendant or robotic software, for example ACL. The coordinates associated with these positions are normally stored in the required program file. The CIM Manager tells a robot to move a part/template from one device at a station to another by sending a pick-and-place command to the appropriate robotic device driver. The device driver tells the controller to run the robotic programs GET and PUT that are associated with the locations specified in the pick-and-place message. Each device has a GET program associated with it which tells a robot how to move in order to pick up a part at this location. Similarly, each device has a PUT program which tells a robot how to place a part at this location. The names of these robotic programs take the form of GTxxx and PTxxx (for ACL programs) where xxx is the ID of the device. The device driver tells the controller to run the appropriate GTxxx and PTxxx that are associated with the locations specified in a pick-and-place command. Each GET program is dedicated to picking up an object from a single location. Each PUT program is dedicated to delivering an object to a single location. In order to move a part from any location at a station to any other location, all GET and PUT programs are designed to be used together in any combination. For example, to move a template from the ASRS to a pallet waiting on the conveyor, a pick-and-place command would specify running the following robotic programs: GT002 - Take template from ASRS (002 = ASRS device ID). PT001 - Put template on conveyor pallet (001 = device ID for conveyor) Note that the device IDs for GET and PUT are different. If they were the same this would mean that the robot was returning the part/template to the same location where it had just picked it up. All GET and PUT programs for a robot must be designed to work together. This entails that: They read the same set of pick-and-place parameters (stored in global variables). When a program ends, it must leave the robot in a position that enables it to move in any subsequent direction 68

The programs GET and PUT send the Start, Finish and End status messages to the CIM Manager via the robotic device driver, each of these messages is described in the table 4-3. Table 4-3 Message Description Status Start Finish End Message Description The GET program sends a Start message to report that the robot has grasped the part/template and has moved clear of the source device. For example, As soon as a robot has lifted a template from a pallet, the GET program sends a Start message. The CIM Manager can then release the pallet even while the robot continues to move the template. The PUT program sends a Finish message to report that the robot has placed the part/template at the destination device. For example, as soon as a robot has placed a template on a conveyor pallet and moved out of the way, the PUT program can send a Finish message. The CIM Manager can then release the pallet even while the robot continues to move to its final resting position. The PUT program sends an End message to report that the robot has completed this pick-andplace operation and is now available for the next command. You can monitor the progress of robotic programs at run-time by looking at the Program, Leaf or Device Views in the CIM Manager program. When a robot is performing a pick-and-place command, the following (figure 4-4) messages let you follow the progress of the GET and PUT programs as they execute. Figure 4-4 Pick and Place command messages 69

The CIM Manager sends a set of parameters to a robotic device driver whenever it issues a pickand-place command. The device driver in turn receives these parameters and assigns them to the following global variables (Table 4-4): Table 4-4 Global Variables Robotic pick and place parameters ACL $ID PART $DEV1 INDXG $DEV2 INDXP Description A sequence number generated by the CIM Manager for each command (a pick-and-place command in this case). This number corresponds to the Part ID field in the Part Definition form. For each part type, the instructions for how the robot grasps the part is defined in the robotic program (ACL). For example, the positions for each part ID is stored in an array (such as, CIM [ ]). The device ID of the source location where the robot will pick up the part/template. For a source device that has multiple compartments (e.g. a storage rack), this parameter specifies in which compartment (or buffer) the robot will find the part/template. The device ID of the target location where the robot will place the part/template. For a target device that has multiple compartments, this parameter specifies in which compartment (or buffer) the robot should place the part/template. 4-3-1 Define positions For any manipulation of a piece we need to teach the robot some positions, this can be done by either Teach Pendant (TP) or Advance Control Language (ACL). The TP is equipped with an EMERGENCY STOP push-button, an AUTO/TEACH selector switch, and a DEADMAN switch. When the switch is in the Teach position and the deadman button is depressed, the TP has full control of the axes. When the switch is in the Auto position, the TP is disabled, and the keyboard has full control of the axes. When the switch is moved from Auto to Teach, running programs continue execution. Control is transferred to the TP. But when the TP is hand-held, all 70

running programs are aborted. When the switch is moved from Teach to Auto, running programs continue execution. Control is transferred to the keyboard, but only after the ACL command AUTO is entered from the keyboard. The teach pendant s keypad (figure 4-5) has 25 color-coded keys. Most of the keys are Multifunctional; for example, some keys include both an axis drive command and a Numeric function. The controller recognizes the keys from the order in which they are pressed. Thus, the numeric function will be active only if a function such as SPEED, RUN, or MOVE has been keyed in first; otherwise, the axis drive command will be active. TP commands can be executed only when the TP is in the Teach mode and either deadman button is depressed or the TP is mounted. The program execution command RUN is available only when the TP is mounted. Figure 4-5 Teach Pendant keypad 4-3-2 Teach Pendant key functions ENTER / EXECUTE Accepts and/or executes the command which has been entered. Starts an execution of a program. JOINTS / XYZ / TOOL Switches the command mode between Joints and Cartesian (XYZ). CLR / GROUP SELECT 71

+ KEY Clears a partially entered command. Enables TP control of a specific axis group. Successively press for group A, group G (gripper), group B, group C, and again for Group A, and so on. When group C is displayed, enter the axis number on the Numerical keys. Then press Enter. Note that the TP treats the gripper as a distinct axis control group, group G. When alternating among control groups, group A will remain in the coordinate System (Joint or XYZ) in which it was last active. In Joint mode moves the selected axis in positive direction In XYZ mode moves the tip of the gripper in positive direction. In all of the above, movement will continue as long as the + key is depressed, or until the axis limit is reached. This key is also used to confirm the DELETE command. -KEY In Joint mode, moves the selected axis in negative direction. In XYZ mode, moves the tip of the gripper in negative direction. If group G is selected, closes the gripper. In all of the above, movement will continue as long as the key is depressed, or until the axis limit is reached. 0 / SELECT AXIS Numerical key 0. Selects axis 1 through 12. Press Select Axis. Then press an axis number. Then press Enter. When an axis number is selected from the TP, the control group to which the axis belongs (A, B, C, or G[gripper]) is automatically enabled. 1/ AXIS 1 / X Numerical key 1 Axis 1 in Joint mode. Axis X in XYZ mode. 72

2 / AXIS 2 / Y Numerical key 2 Axis 2 in Joint mode Axis Y in XYZ mode 3 / AXIS 3 / Z Numerical key 3 Axis 3 in Joint mode Axis Z in XYZ mode 4 / AXIS 4 Numerical key 4 Axis 4 in Joint mode Pitch Axis in XYZ mode (MK2 and ER IX only); 5 / AXIS 5 Numerical key 5 Axis 5 in Joint mode Roll Axis in XYZ mode (MK2 and ER IX only). 6 / AXIS 6 Numerical key 6. Axis 6 in Joint mode. Gripper axis (MK2 and ER IX only) 7 / AXIS 7 Numerical key 7 Axis 7 in Joint mode 8 / AXIS 8 Numerical key 8 Axis 8 in Joint mode 9 / AXIS 9 73

Numerical key 9. Axis 9 in Joint mode. Note that selecting an axis from the TP (axis number keys) automatically enables control of the group to which the axis belongs. CONTROL ON/OFF Enables and disables control of the selected group, or all groups. If pressed once, toggles between CON and COFF for the selected group. If pressed twice, changes CON and COFF for all axis control groups. If at least one group is in CON mode, COFF is applied to all groups. If all groups are in COFF mode, CON is applied to all groups. The action to be performed (e.g., COFF GROUP B, CON ALL GROUPS) will be displayed. Press Enter to accept. RECORD POSITION This command both defines and records a position. Only numerical position names, of up to five digits, can be entered from the TP. The position is defined for the currently active group, and receives the current values of the axes in that group. The position coordinates are recorded in the currently active coordinate system. Press Record Position. Then press up to five digits for the position name. Then press Enter. If you use a position name which has already been defined, the new coordinates will overwrite the existing ones. This command is also used to record positions in a vector. The vector must first be attached (ATTACH) to the TP. INSERT / DELETE This command is used to add and remove positions in a vector. The vector must first be attached (ATTACH) to the TP. INSERT records a position in a vector, and shifts all previously recorded positions one place up in the vector. DELETE removes a position from a vector, and shifts all higher positions one place down. INSERT and DELETE are available only on position vectors which have been defined with the prefix &. 74

If pressed once, INSERT is displayed. Use the numerical keys to enter the number of the position (the vector index) to be inserted. Press Enter to execute the command. If pressed twice, DELETE is displayed. Use the numerical keys to enter the number of the position (the vector index) to be deleted. Press Enter. The display shows ARE YOU SURE? Press + for yes, and then press Enter again. SPEED (%) / SPEEDL (%) Sets the speed of manual axis movement, as a percentage of maximum speed. If in Joint mode, sets the percentage of maximum joint speed. SPEED is displayed. If in XYZ mode, sets the percentage of maximum linear speed. SPEEDL is displayed. Press SPEED (%)/ SPEEDL (%). The current speed is displayed. Press Enter to accept the displayed default speed. Or use the numerical keys to enter a different speed, and press Enter. When group G is active, this command determines the speed of a DC servo gripper. OPEN / CLOSE Opens and closes the gripper. This command functions on both electric and pneumatic grippers. MOVE / MOVEL Moves the axes to a target position. MOVEL applies only to robot (group A) axes. If in Joint mode, movement is by joints (MOVE) If in XYZ mode, robot movement is linear (MOVEL) Press MOVE/MOVEL. Then use the numerical keys to enter the position number. Press and hold the Execute key. Continue holding down the Execute key until the axes reach the target position. If the Execute key is released, the movement is stopped immediately, and the command is aborted 75

RUN Executes a program. Available only when the TP is mounted. Press Run. Then press the program s identity number on the numerical keys. The program name will be displayed in brackets. Then press Enter. The controller automatically assigns an ID number to each user program. The ACL command DIR lists the programs and their assigned (IDENTITY) number. The command RUN 0 homes the robot axes (ACL command HOME). The command RUN 999 executes a system test (ACL command TEST). ABORT Aborts execution of all running programs. Stops the robot and all peripheral axes. 76

4-4 Advance Terminal Software (ATS) & Advance Control Language (ACL) Advance Control Language (ACL) is an advanced, multi-tasking robotic programming language developed by Eshed Robotec (1982) Ltd. Advanced Terminal Software (ATS), is the user interface to the ACL controller. The software is a terminal emulator which enables access to ACL from a PC computer. ATS features include the following: Short-form controller configuration. Definition of peripheral devices. Short-cut keys for command entry. Backup manager. Print manager. ACL features include the following: Direct user control of robotic axes. User programming of robotic system. Input/output data control. Simultaneous and synchronized program execution (full multi-tasking support). Simple file management. Figure 4-6 Shows the main screen of ATS when the software is loaded. After the ATS is being loaded the user can communicate directly with the controller. 77

Figure 4-6 ATS Main Screen ACL commands listed at the bottom line of the main ATS screen. Pressing the function key which appears next to each command, issues the command. For example, F5 writes the command MOVE. Four sets of ten function keys permit the use of forty short-cut ACL commands. Three sets are system-defined sets, and one is user-defined. A display of the sets of commands can be called from the ATS main screen by pressing the hot-key combination: >ALT +H (figure 4-7) Figure 4-7 ATS sets of commands The display of command sets will scroll up and off the screen as you continue entering commands at the > prompt. Only one set of function keys is active at a time. Set 1 is active by default. To activate a different set, simultaneously press the <Alt> key and the number of the set desired. For example, press <Alt>+3 to use the short cut commands in Set 3. (Do not use the numeric keypad for this purpose.) 78

When Set 3 is active, for example: F1 issues the command LIST and F2 issues the command REMOVE. The (down arrow) after a command indicates that <Enter> (a carriage return) automatically follows the command. For most short-cut commands, however, you must also press <Enter> in order to activate the commands. 4-4-1 ACL commands This section briefly describes the commands used to prepare the data required by the controller in order to execute the program. (For further ACL commands see Appendix??) Define Position The following commands are used to define positions. DEFP pos DIMP pos[n] Defines a position. Defines a position vector and its dimension. Record Position The following commands are used to set the coordinate values for the positions you have defined. Table 4-5 shows an example of ACL commands. SETPV pos TEACH pos HERER pos2 pos1 TEACHR pos2 pos1 Enters coordinates for position, in joint (encoder) values. Enters coordinates for position, in XYZ (Cartesian) values. Enters coordinates for position, in joint (encoder) values, relative to current position of robot. Enters coordinates for position, in XYZ (Cartesian) values, relative to current position of robot. 79

Table 4-5 ACL Coordinate Values command Controller-B (ACL 2.26 and later) DEFP PA TEACH PA 200 0 40-90 0 Result Defines position PA Records coordinates for position PA X value = 200mm Y value = 0mm Z value = 40mm Pitch value = -90 Roll value = 0 Movement MOVE pos MOVEL pos Moves robot from one position to another following non-linear path Moves robot from one position to another following a linear path MOVED pos Moves robot from one position to another and waits till all axis have arrived at the new position before proceeding to the next command Speed Control SPEED Specifies the speed at which the robot moves from 1-100% Gripper Open/Close Open Close Delay DELAY var Opens the robot s gripper Closes the robot s gripper Suspends program execution for the time specified by var. Define Program The following format is used to define and mark the beginning of a program: PROGRAM name To automatically allow or prevent the overwriting of programs during downloading, you may include an overwrite switch, /Y or /N, after program names within your text files. /Y Allows program to be overwritten during downloading. 80

/N Program will not be overwritten during downloading. For example: PROGRAM PICK1 /N Define Variables The following commands are used to define global variables: GLOBAL var Defines a global variable. DIMG var[n] Defines a global variable array. Note that the Open-CIM system contains variables whose names have the prefix $. The $ indicates it is a system-required variable which should not be manipulated by the user. The following command format is used to give an initial value to the variable: SET var = n Edit Program Private variables and variable arrays must be defined within the program itself. Use the commands: DEFINE pvar DIM pvar[n] Defines a private variable. Defines a private variable array. End Program The following command line is used to mark the end of a program: END Controller On/Off Con Coff Turns the Controller on and ready to execute a program Turns the Controller off and ready to exit Homing Robot Home Homes the Robot 81

Conditional Program IF var1 oper var2 Checks the conditional relation of two variables, oper could be <,>, =, <=,>=, <> ANDIF var1 oper var2 logically combines a condition with other IF commands. ORIF var1 oper var2 ELSE ENDIF logically combines a condition with other IF commands. Follows IF and precedes ENDIF. Begins subroutine when IF is false. End of IF subroutine. Loop Program FOR var1=var2 TO var3 ENDFOR LABEL n 0<=n<=9999 GOTO n Loop command. Executes subroutine for all values of variables End of FOR loop Marks a program subroutine to be executed by GOTO command. Continues program execution at line following specified LABEL. 4-4-2 Saving a Program File Save your program as an ASCII text file. You may save the file under the same name you used to open the file, or save as a different file. For consistency, and to simplify technical support, it is recommended that you use the following file name extension..dnl File containing ACL source code (programs, positions, variables) which will be downloaded to controller. When you have completed editing and saved your program, exit your editor. Sample Program PROGRAM MV5 (Five Characters MAX) DEFP PP DEFP TT DIMP S[4] TEACH PP ; defines position PP. ; defines position TT. ; defines vector S: two positions: S[1],S[2],S[3] and S[4]. ; records Cartesian values for position PP 82

X: 394.476 Y:-152.994 Z: 468.294 P:-92.633 R:-23.463 TEACH TT ; records Cartesian values for position TT X:-173.434 Y:-426.301 Z: 483.005 P:-95.916 R: 6.203 TEACH S[1] ; records New Position for S[1] X: 446.798 Y:-211.380 Z: 217.642 P:-92.717 R: 61.527 TEACHR S[2] S[1] ; records position S[2] related to S[1] X: 0 Y: 0 Z: 50 P: 0 R: 0 TEACH S[4] ; records New Position for S[4] X:-181.123 Y:-429.135 Z: 192.022 P:-96.310 R:-24.536 TEACHR S[3] S[4] X: 0 Y: 0 Z: 50 P: 0 R: 0 GLOBAL IND ; records position S[3] related to S[4] ; defines global variable IND. SET IND=1 ; sets initial value of IND to 1. DEFINE J FOR J=1 TO 2 IF IND=1 83

ENDFOR END Move PP Open Else MOVE TT ENDIF IND=IND+1 MOVE S[IND] IF J=2 J=J+2 ENDIF MOVE S[J] IF J=1 Close ENDIF IF J=4 OPEN ENDIF MOVE S[IND] IF J=1 MOVE PP ENDIF IF J=4 MOVE TT ENDIF J is a private variable used as the loop counter. During the program execution The robot is moving from Position [2] to position [1] open then moves to PP and TT and goes to Position [3] and Position [4]. 4-4-3 Downloading a Program Before you transfer a program file to the controller, make sure the name displayed in the menu is the file you want to download. Also make sure the controller and computer are properly connected and the controller has been switched on. To activate the Downloader, press: F1 Pressing F1 will abort any programs currently being executed by the controller. The window on the screen expands. All program lines are displayed on the screen as they are sent to the controller. At the bottom of the screen (figure 4-8) you see the prompt: 84

Press <SPACE> to pause. <ESC> to stop Figure 4-8 ATS Screen Press the space bar to temporarily halt the downloading procedure. This will allow you to read the lines or messages displayed on the screen. Press any key to continue the downloading. Pressing <Esc> will abort the downloading procedure. 4-4-4 Downloading Messages Following is a list of messages which may appear during downloading. If the Downloader encounters a program name which already exists in the controller, it prompts you to confirm the over write: PROGRAM DEMO ALREADY EXISTS, OVERWRITE IT (Y/N)? N If the Downloader encounters a position or variable name which has already been defined, or if an axis number following the DEFPC command is incorrect, the following message appears: *** ERROR *** Name already in use or bad axis 85

If too few lines are given after the TEACH or TEACHR commands, the missing lines are assigned a value of 0 and a message is displayed: <<MISSING NUMBER, USE 0 >> If too many lines are given, the program ignores the extra ones, and displays: <<EXTRA NUMBER, IGNORE>> If the Downloader reaches the end of the file but has not encountered the END command, a message appears: <<MISSING END>> If the Downloader encounters incorrect ACL commands, such as command lines containing undefined variables, the downloading is stopped, and the ACL error message is displayed, followed by the message: FATAL ERROR DETECTED, DOWNLOAD STOPPED If the Downloader encounters unclosed loops (IF without ENDIF, for example), or a GOTO command whose LABLE has not been defined, the following is displayed: PROGR is not valid When a program has been downloaded successfully, the message is: PROGR is valid 4-4-5 Activating ATS After you have downloaded a file, it is recommended that you check the controller contents. To activate the Advanced Terminal Software (ATS), press: F4 Pressing F4 activates the terminal emulation program defined in the CONFIG.DLD file. By default, it is ATS. Once you have activated ATS you can then view, edit and run your program using the standard ACL commands. For Example to view the program DEMO, type the command: LIST DEMO 86

The following screen (figure 4-9) will be displayed on your screen. 4-5 Robotic Integration Figure 4-9 ATS Screen Program Demo The prolight Machining Center has a simple interface for interacting with common robots, like those used for automatic part loading between machining operations. The Machining Center and the robot communicate by way of an interface connector located on the rear panel of the Machining Center. The method of communication between the Machining Center and robot is very basic. They are both able to transmit and receive high or low signals. Since communication signals are typically 0 and 5 volts, a high signal is 5 volts (or 3.5 volts or greater); and a low signal is 0 volts (or 1.5 volts or less). Signals sent out are referred to as outputs, while signals coming in are called inputs. Any signals that the Machining Center transmits to the robot are transmitted through an output pin on the interface connector. Outputs can drive a maximum load of 1mA. Any signals that the Machining Center receives from the robot come in through an input pin on the interface connector. The NC codes used in robotic communication are: G25 - wait for High signal G26 - wait for Low signal M25 - transmit High signal M26 - transmit Low signal 87

Examples of input and output wiring are shown in the schematic below (figure 2-22). 4-5-1 A sample of mill/robot Communication Figure 2 22 Signal transmission Communication between the Machining Center and robot is very simple. They only use and recognize high or low signals. Once the Machining Center sends a signal to the robot, it goes into a wait state and continues to wait until the robot sends the appropriate signal back. When the signal is recognized, the Machining Center executes the next instruction in the part program. After executing the instruction, it sends a signal to the robot. The robot, which has been in a wait state since its last transmission, receives the signal, performs as it has been programmed, then again signals the Machining Center. This reciprocal system of communication is made possible by the placement of G and M codes in the part program. The G codes provide the wait instructions to the inputs, while the M codes provide the transmit instructions to the outputs. The following sequence is typical of communication between the Machining Center and a robot. Since the robot s initial output state is low, the mill s inputs have already been pulled down to a low state. The Machining Center is equipped with an air vise. 1. The mills open the air vise (M11), transmits a high signal (M25) to the robot, and waits for a high (on) signal (G25). 88

2. The robot places a work piece in the vise and transmits a high signal to the mill indicating that it is okay to close the vise. 3. The mill receives the signal, closes the air vise (M10), then signals (M26) the robot that the vise is closed. The mill then waits (G26) for a low signal from the robot. 89

4. The robot releases the work piece and leaves the work area. It transmits a low signal when it is a way from the work area. 5. The mill receives the low signal from the robot and begins to mill the part. 90

6. When the mill has finished the part, it signals the robot (M25) to come take the part and waits (G25) for a high signal. 7. When the robot receives the signal, it approaches the mill, grasps the part and sends the high signal to the mill. 91

8. When the mill receives the high signal, it opens the vise (M11) to release the finished part, signals the robot (M26) and waits (G26, low). 9. The robot removes the finished part from the work area, and places the part in another area according to its own program. When the robot has cleaned the mill s work area, it sends a low signal to the mill. 10. At this point, the cycle begins again (M47). 92

4-6 CNC Programs to Interact with the Robots 4-6-1 Communication Codes In a manufacturing cell machines must communicate with each other. The robot will make its moves to the appropriate positions after each CNC program, and then pass the control back to the CNC controller. This is usually done using high and low signals. The controllers for the CNC machines and the robots have input and output ports for signals. Here are the signal codes for the CNC machines. The robots will execute their own commands in between these signals: G25 G26 M25 M26 Wait for High signal Wait for Low signal Transmit High signal Transmit Low signal H# Specifies input or output (default is H5) Here is an example of the communication part of a CNC program: ; Robot interface at start ;------------------------------------------- M26; Put idle signal off G04F1; wait one second M25; Put idle signal on G25; WAIT FOR CONTROLLER SIGNAL TO START HIGH G26; WAIT FOR CONTROLLER SIGNAL TO START LOW M26; Put idle signal off ; Before the chess piece is machined the machine must prepare to be loaded by the robots. 93

The M20 code will be used to chain several files together. The controller will look on the COM port specified. Example: M20 4-6-2 Get and Put Routines COM2; Wait for chaining on Com port 2 The lathe will use these get and put programs: START; ODOOR; OPCHUCK; PLACE; CLCHUCK; CDOOR; sets startup parameters opens door opens chuck moves turret out of the way closes chuck closes door Your part program will be here. These programs are stored on the O: drive in O\CONCORDIA\WS2\LATHE\*.NC The get and put programs will be run by the ACL Controller. Don t put them into your part files. The communication codes will signal to the ACL controller when to run these programs. Opening and closing the vise or the chuck is completed by the get and put programs so you don t need to place M08 or M09 codes in your part program when you run the ACL files. The CNC files which your group creates will be given a group number and saved to the network drive to be called up by the OpenCIM software. 94

5-1 Introduction CHAPTER 5: System Integration and Optimization This chapter describes the CIM Utility Programs which are used for preparing the OpenCIM system for production. These programs, which are an integral part of the CIM Manager software, be accessed from Utility Programs menu of the CIM Manager menu bar. This chapter includes the following: 1. Machine and Process definition: Defines the machines and processes in OpenCIM. 2. Part Definition: Defines parts that OpenCIM can manufacture. 3. Storage Definition: Tracks the parts in Storage 4. Material Requirements Planning (MRP): creates customer lists and product orders. 5. Optimization: introduces algorithms as well as additional optimization methods used in OpenCIM for defining queue. 6. Performance Analysis: introduces Analysis window for viewing and analyzing information generated from the manufacturing cycle. 7. Reports: generate predefined or customized reports for viewing and printing. 5-2 Machine and Process Definitions When you define a machine, you actually define the specific process a machine will perform. Machine names are usually predefined in the Virtual CIM Setup and only need to be selected from the Machine Name drop-down list. The process name enables the CIM Manager to determine which machine is capable of performing the specific work required to produce a part (as defined in the Process field in the Part Process Table in the Part Definition form). The Machine Definition form lets you view any machine that has been defined for the system. You can define new or modify existing processes for the machine to perform. A machine record contains the machine name and one or more defined processes (process record). Each field and the control buttons associated with this form 95

are described in detail in this section. The CIM Machine Definition Window displayed below is accessed by from the CIM Manager Main Window, by selecting Utility Programs Machines. Figure 5 1: Machine and Process Definition form Machine Name: A descriptive name which uniquely identifies the machine. You can edit/examine the record for a specific machine by selecting that machine name from the drop-down list in the toolbar. All machines that are defined in the Virtual CIM Setup appear in this list. Process: The name of a production process that can be performed by this machine. A Process Name can only be used once for a given machine. The name should be easily recognizable to CIM users and may contain the characters A Z, 0 9 and underscore (_), but no spaces. This Process Name is assigned to a part in the Part Definition form (in the Process field of the Part Processes Table). Assigning a process to a part instead of a machine can have advantages when there are two or more machines capable of performing the same process. Having more than one machine capable of performing a 96

given process allows the CIM Manager to select the machine which can process a part most efficiently and redirect production if one machine fails. File: A file containing the G-code program or other program associated with this process. This file name can include a valid DOS directory path. If no path is specified, the CIM Manager expects to find this file in the current working directory associated with the device driver for this machine. A file can contain one machine control program. Different machines that perform the same process will have their respective control programs stored in different files. Program: The name of the machine control program associated with the process being defined. This Program Name is used by an ACL controller which is operating a machine. Fail (%): The name of the machine control program associated with the process being defined. This Program Name is used by an ACL controller which is operating a machine. Duration: The number of minutes this process takes to produce one part. The CIM Manager takes this value into consideration when choosing among multiple machines that can run the same process. Format is hh:mm:ss Parameters: This string of arguments is passed to a machine control program associated with this process. WS: The workstation in which the machine is placed. Automatically displayed by the system (as defined in the Virtual CIM Setup). Machine Type: The type of machine selected. Automatically displayed by the system (as defined in the Virtual CIM Setup). Action Type: A label that defines the characteristics associated with a process. Select one of these Action Types (in the data field above the table): Assembly: A process which involves the assembly of two or more subparts. QC: A process involving a test that reports a Pass/Fail result to the CIM Manager. If the result is Fail, the rejected part is redone. A quality control process requires an ONFAIL entry in the Part Processes table in the Part Definition form see Part Definition below. CNC: A process which has G-Code program(s) associated with it. The CIM Manager downloads the G-code file specified in the File field to the CNC machine (unless this file is already resident in the CNC machine). 97

Process: A basic machine operation which does not require any special action beforehand or afterwards. Runs the ACL program specified in the Program field. Place: A robot operation used for non-standard operations performed by a robot. The File and Program fields will be blank. Robot Controlled: Specifies if a robot is needed to perform the process. For example, if a welding action is performed by a robot, specifying YES signals the CIM Manager that the robot is in use and is not free to perform another operation. This option is available only if the machine selected can use a robot to perform a task, and if the Action Type is Process. Cost Per Hour: Estimated hourly cost to run this machine. The CIM Manager uses this as one of the criteria in order to decide on the optimum production method. 5-3 Part Definitions A product is manufactured from a group of subparts (bill of materials) that are put together according to a specified set of machine processes. Starting with a set of raw materials (supplied parts), you define parts at the intermediate stages of production required to assemble a final product. The Part Definition screen (figure 5-2), or form, allows you to enter the bill of materials and the associated production processes used to produce a part. Part Definition form includes: Modify/view the production process for an existing product. Describe the production process for a new product. Defining a new product involves the following steps: Drawing a part definition tree. Setting up all machine processes necessary to produce a product and all its subparts. Determining what new template designs are required to handle all the parts involved and assign these designs template ID numbers. Determining the types of racks that can hold each subpart. 98

The Part Definition form for Product parts lets you create, view, or modify the current part (either a product or its subparts). A part record contains all the fields shown on the Part Definition form below. Each field and the control buttons associated with this form are described in detail in this section. Figure 5 2 Part Definition form for products Information Bar: Template: Defines the template type (01-99) whose pin arrangement can accommodate the selected part. Rack/Feeder: Defines the types of racks/feeders that are capable of accommodating the selected part 99

Part Type: Color: Defines the color of the parts that can be viewed on the conveyer. You can define a different color for each part. Product: A part that can be ordered from the CIM. The final part at the top of the part definition tree is always defined as a product. Part is the product that is produced by the CIM system. Supplied: A part received from an outside source, i.e. a part not produced by the CIM, therefore it does not require a process definition. Supplied parts do not contain any entries in their Part Process tables. A supplied part is found only at the bottom of the Part Definition tree. Part ID: Phantom: A part or subpart which has failed QC. This definition allows the CIM Manager to issue instructions on how to handle a rejected part. Phantom parts cannot be ordered. A numeric value (1 999) which uniquely identifies this part (i.e. two parts cannot have the same ID). This Part ID can be used with devices which require numeric part identifier. For example, the ACL controller uses the Part ID to activate the appropriate control program to handle this part. Sub Part: Subpart is not shown in the figure above The name of a material used to produce the current part. A subpart must be defined in its own Part Definition record. A subpart can either be a raw material (i.e. a Supplied Part) or a part produced by the CIM (i.e. a Phantom Part or a Product). Some rows in the Part Process table require a Subpart name while others do not. A Subpart name is required in the following circumstances: A Subpart name is required in row 1 of the Subpart column. A Subpart name is required for each part that is included in an assembly. A Phantom Subpart name is required after each quality control test in order to associate a name with the ONFAIL exception handler. 100

After the first row, a subpart name is not required if the process being performed operates on the same part that was listed in the previous row. For example, the first row could specify the name of a cube that is to be machined into a box. The second row specifies a process that drills a hole in the box. In this case, the subpart field of the second row would be blank because the drill operates on the same subpart specified in row one. Process: If you need more than one of a subpart, add a separate row to the Part Process table for each unit. A circular definition error will result if you enter a subpart name that matches the name of the part being defined (i.e. Subpart = Part). This error will also occur if any of the subparts in turn contain a subpart that matches the Part Name being defined. Enter the name of a production process that has been defined in the Process field of the Machine Definition screen. If this process exists on more than one machine, the CIM Manager selects the machine to use according to its production strategy (e.g. minimize cost, minimize production time, etc.). Parameters: The Parameters field specifies how to carry out this process when it is performed for the current part. For quality control devices, the parameter string is used to specify the type of QC test and the range of acceptable values. For a machine that performs assembly operations, the parameter string specifies where to put the part that is being added to the assembly. If this target location contains compartments, you can add an optional index for the compartment number (Table 5-1). 101

Sequence: Device Example Description Note ROBOT-VISIO PRO Laser Scan Meter Assembly Machine 1,4 type of test, minimum value, [maximum value] 1,150,160 Places subpart assembly BOX in location #2. BOX,2 target location, [target index] Table 7 1 Parameters Description If maximum value is omitted, the minimum value represents the single acceptable value. If maximum value is omitted, the minimum value represents the single acceptable value ( with a tolerance of 5% Places subpart assembly BOX in location #2. This field lets you specify whether this process must be performed in the order in which it appears in the Part Process table. This field must contain a T (true) to follow the specified order. Description: A description of the part being defined that explains what it is and where it is to be used. Template Type: The Template type (01 99) whose pin arrangement can accommodate this part. Rack/Feeder Type: If this part is to be stored temporarily in a rack during processing, specify which types of racks are capable of accommodating this part. 5-4 Storage Manager The CIM Manager must keep track of which parts are in storage and which templates are available to move these parts from station to station on the conveyer. You can use the Storage Definition form to: 102

Update the contents (part and/or template) of storage locations. Create/modify template codes. Figure 5 3 Storage Manager Window The Storage Manager administrates all types of materials used in an OpenCIM cell. There are three types of Storage: ASRS (automated storage and retrieval system), Rack and Feeder. ASRS: The ASRS is the main storage device in an OpenCIM cell. It serves as a warehouse for parts in various stages of production. ASRS cells contain templates, either empty or loaded with parts. Rack: This type of storage can contain parts in any stage of production. Templates cannot be stored in racks. Feeder: Contains raw material only. Figure 5-4 shows the toolbar of storage manager. Whenever you add or remove a part or a template from a storage cell, use the Storage Definition form to register the change. 103

Figure 5 4 Storage Manager Toolbar Figure number Figure 5-5 explains how to: Add a part to storage cell. Add a blank template to a cell. Clear the contents of a cell Figure5 5 Add or Removing cell contents from the storage manager 104

5-5 Material Requirement Planning Material Requirements Planning (MRP) enables manufacturers to calculate the material requirements from a list of items they intend to sell. MRP provides a tool for floor control, master production scheduling and capacity planning. Manufacturing Resource Planning (MRP II) coordinates and integrates manufacturing resources together with engineering, marketing and financial resources. The OpenCIM MRP program is used to create and define three types of orders: Customer Orders: products ordered Manufacturing Orders: items to be produced Purchase Orders: items to be purchased from suppliers In general, OpenCIM MRP allows you to create a list of customers and define the products ordered by each customer. Once Customer Orders are created, the MRP program automatically creates a Manufacturing Order and a Purchase Order. You can view and modify or simply accept the Manufacturing Order, or define a completely new one. When the Manufacturing Order is submitted, the MRP creates an A-Plan file, or production work order. In addition, the MRP creates a Purchase Order for items that must be supplied to the CIM. The OpenCIM Report Generator can be used to display and print the Purchase Order. Figure 5-6 shows MRP flow chart. Figure 5 6 flow chart of MRP program 105

5-5-1 Customer order form A customer order is a list of the parts (products) ordered by a customer. The Customer Order form shown below (figure 5-7) lets you create, view and modify a list of customers and their orders. Parts must be defined in the Part Definition form before they can be ordered by customers. Figure 5 7 Customer Order form Figure 5-8 shows the buttons which apply only to the Customer Order table. Any changes you make using these buttons will not be stored in the database until you click Save. Figure 5 8 Customer order form toolbar 106

Priority option in order list shows the priority of this order (1-9). A priority of 1 is most urgent, 9 is least urgent. The CIM manager program uses this priority value to determine the sequence in which to produce orders. Different parts may have the same priority. 5-5-2 Manufacturing Order form A manufacturing order specifies the type and quantity of parts to be produced by the CIM cell on a specific day. The Manufacturing Order form shown can be generated by the MRP program according to the customer orders currently in the system. You can view and modify or simply accept the Manufacturing Order, or define a completely new one. You can define an order at any time, but you must finish defining all machine processes and subparts used in the order before you submit the order for production. Each row in the Manufacturing Order table (figure 5-9) represents a total quantity of a particular part which needs to be manufactured on the specified date, so that all customer orders are filled. Figure 5 9 Manufacturing Order Screen Figure 5-10 shows the manufacturing order toolbar description. The buttons apply only to the Manufacturing Order table. Any changes you make using these buttons will not be stored on disk until you click Save. 107

Figure 5 10 Manufacturing Order form toolbar Part Name is corresponds to the Part field on the Part Definition form which should be produced. The total quantity is total number of units ordered. The Initial Quantity is the number of parts to be extracted from the ASRS when production begins. The initial quantity is a number that can range from 1 (one) up to the value of the total quantity. Usually the value is 1 or 2. This field allows you to optimize the manufacturing process. The priority of this order (1-9) is shown in priority option. A priority of 1 is most urgent, 9 is least urgent. The CIM Manager uses this priority value to determine the sequence in which to produce orders. 5-5-3 Purchase Order form A purchase order is a list of the parts that need to be supplied to the CIM cell so that it can complete the Customer Order. The Purchase Order form shown below (figure 5-11) can be generated by the MRP program according to the customer orders currently in the system. You can view and modify or simply accept the Purchase Order, or define a completely new one. The Purchase Order form lets you create, view and modify a list of suppliers. Parts must be defined in the Part Definition form before they can be ordered from suppliers. Each row in the Purchase Order table represents a total quantity of a particular part which needs to be purchased by a specified date, so that all customer orders are filled. The Toolbar is shown in figure 5-12. 108

Figure 5 11 Purchase Order form Cost is the cost per unit, as defined in the Part Definition form. The due date is the date on which the part must be received from the supplier and the send date is the deadline for sending the purchase order to the supplier. Send date is calculated by subtracting from the Due Date the time required by the supplier. Figure 5 12 Purchase order form toolbar 109

5-6 Optimization The order of operation (timing), performed by CIM is controlled using the CIM optimizing mechanisms, which run concurrently and make decisions based on real-time situations in the work cell. You can manipulate the behavior of CIM by changing any one mechanism, or a combination of any of these optimizing mechanisms. When activating OpenCIM, parts are dispatched from storage and placed in the queues to the various machines for processing. In certain cases some parts need to be processed in a number of different machines. The CIM Manager sorts these parts by creating a virtual queue of parts that are waiting to be processed in each machine, and the machine in turn always processes the first part in the queue. Optimization is performed using different methods for sorting the machine queue. The Optimization Approach offers the following benefits: The system continues to follow the priority you define for each part even though the system is required to work on many parts, from different priority levels. The Optimization Approach handles incomplete or incorrect predicted process time in a competent manner (i.e. the NEXT command is actually executed when the machine finishes processing the part and not according to some pre-calculated time). The Optimization Approach implemented in the CIM environment can handle different combinations of parts, in different quantities and priority levels that need to be produced in a proficient manner. Machines, robots, storage locations and even conveyors have their own priority queue which you can control in order to increase the performance of the production schedule The CIM Optimization Definition (figure 5-13) enables users to select machine queue algorithms and define their weight. Users can then observe the effect of the different algorithm combinations on the overall system performance. The results generated from the CIM Optimization Definition are displayed in the CIM Performance Analysis as described in Performance Analysis. The CIM Optimization Definition window is displayed by selecting Utility Programs Optimization Definition from the OpenCIM Manager main window. 110

Figure 5 13 CIM optimization definition Figure 5-14 shows the description of CIM optimization toolbar option. Figure 5 14 CIM optimization toolbar The Machine Queue Form contains the following fields: 111

Algorithm Name: The name of the algorithm defined for the parts that are in the queue to the selected machine. You can select the required algorithm from the dropdown list, as follows: FIFO (First in First Out): Parts are processed according to first in first out. Meaning, the parts that arrive first in the queue are processed first. Maximum Priority: Parts are processed according to their priorities (1 through 10) that were defined in the CIM MRP window. Meaning, the parts with the highest priority (such as, 1) will be processed first. Random: Parts are processed based on a random selection basis. Shortest Process Time: Parts are processes according to their process time period. In this case, the parts with the shortest process time will be processed first. Algorithm Weight: Enables you to enter the weight of the selected algorithm (the total weight of all algorithms must be 100). Optimization Right Click Menu: enables you to insert algorithm before or after the selected algorithm. Also, you can delete an existing algorithm. 5-7 Performance Analysis The Performance Analysis utility in OpenCIM enables users to analyze the impact of different algorithm combinations on the system performance. You can use this utility to view, print and analyze the manufacturing cycle data to improve system performance, such as shorten the production time and as a result improve efficiency and lower the production costs. The data in this utility is generated according to the definitions in the CIM Optimization Definition, as described in Optimization. The CIM Performance Analysis enables you to view information that was generated from the last manufacturing cycle in the system and then save it for comparison and backup purposes. You can then view a summary of data comparing the different previously saved manufacturing cycles. 112

In addition, you can print the currently displayed performance report and the corresponding optimization report (as displayed in the CIM Optimization Definition). The CIM Performance Analysis window is displayed by selecting Utility Programs Performance Analysis from the OpenCIM Manager main window (figure 5-15). Figure 5 15 CIM Performance Analysis Figure 5-16 shows the description of CIM performance toolbar option. The CIM Performance Analysis enables you to view the results of the last manufacturing cycle and save it for future reference. The results include the process time, the efficiency per machine and per system the number of failures that were detected and so on. 113

Figure 5 16 CIM Performance Toolbar The Manufacturing Cycle Performance Table contains the following information: Machine: Contains the list of machines that were defined in the CIM Setup. Run ID: Contains the ID number of the manufacturing cycle. Total Run Time: The time period of the manufacturing cycle. Note: The manufacturing cycle s description. Total Process Time: The total process time performed on a specific machine, as well as the system summary which is the total process time of all the machines in the cycle. % Efficiency: The efficiency of each machine in the cycle, as well as the system summary which is the efficiency of all the machines together. Machine efficiency is defined as the process time divided by the total manufacturing time of the machine. Max Queue Length: The maximum number of parts that existed in the machine queue during the manufacturing cycle. Production Costs: The production costs per machine and per system. Production costs per machine is defined as the process time multiplied by the cost per hour % Failures (QC Only): The number of part failures that were detected in the QC device. 114

The CIM Performance Analysis enables you to view a summary of the different manufacturing cycles that were saved in the system. This enables you to compare the results of the cycles, such as the process time, the efficiency, the amount of failures and so on. The Summary of Manufacturing Cycle Performance Table (figure 5-17) contains all the information fields that were described in the previous section (total process time, efficiency, max queue length, production cost and more). Figure 5 17 Summary of Manufacturing Cycle Performance 5-8 Report Generator OpenCIM provides a powerful, yet flexible report generator. This utility program allows you to view and print information from the various OpenCIM databases. You can access nine types of predefined reports (figure 5-18), or you can create your own user-defined reports. Figure 5 18 Report Generators 115

5-8-1 Part definition Report The Part Definition Report (figure 5-19) is generated from information that was entered in the Part Definition form. It shows the names and description of all parts used by the CIM cell. The following is an example of a Part Definition Report. Figure 5 19 Part definition report Each of the columns in the Part Report relates to a specific field in the Part Definition form, as follows: # Part Name Type Part ID Template ID Part Description Part # as listed in sequential order. Part Name Part Type: supplied, product or phantom. Part ID Template Type Description 5-8-2 Subpart Report The Subpart Report (figure 5-20) is generated from information that was entered in the Part Process Table in the Part Definition form. The Subpart Report is a Bill of Material. It shows all 116

the subparts which comprise the finished product. The following is an example of a Subpart Report. Figure 5 20 Subpart Report Part Name Sub-Part Name Manufacturing Process Name Manufacturing Parameters Part Name. The column Subpart in the Part Process Table. The column Process in the Part Process Table. The column Parameters in the Part Process Table for each corresponding process for a particular subpart. 5-8-3 Manufacturing Order Report The Manufacturing Order Report (figure 5-21) displays all production orders for a particular date. The report is generated from the information that was entered in the Manufacturing Order form. 117

Figure 5 21 Manufacturing Order Report Each of the column headings in the Order Report relates to a specific field in the Manufacturing Order form, as follows: Part Name Total Number of Parts Ordered Initial Number to Produce Priority Final Storage Location (if not ASRS) The column Part. There can be more than one part listed. The column Total Qty. Each Total Qty listed corresponds to a specific part ordered. The column Initial Qty. Each Initial Qty listed corresponds to a specific part ordered. The column Priority. The Priority level (from 1-9) listed corresponds to a specific part ordered. Refers to the final storage location listed in the column Note (for a specific part). 5-8-4 Machine Report The Machine Report (figure 5-22) lists the names of all machines in the OpenCIM cell. This report is generated from the information that was entered in the Machine Definition form. Figure 5 22 Machine Report form 118

Each of the columns in the Machine Report relates to a specific field in the Machine Definition form, as follows: # The sequential number of the machine as listed. Machine Name Machine Name Cost Per Hour Cost Per Hour, in the Machine Process table. Maximum Number of Max Preloaded Programs Preloaded Programs Program 1 Program 2 Program 3 List of Preloaded Programs 5-8-5 Process Report The Process Report (figure 5-23) shows the user-defined name (Process Name field) of each machine in the OpenCIM and the processes performed by the machine. This report is generated from information that was created from the Machine Process Table in the Machine Definition form. The following is an example of a Process Report. Figure 5 23 Process Report Each of the columns in the Process Report relates to a specific field in the Machine Definition form, as follows: # Machine Name Process Name Process Type Program File Name The sequential number of the machine as listed. Machine Name. The column Process in the Machine Process Table. The column Action Type in the Machine Process Table. The column File in the Machine Process Table. 119

5-8-6 ASRS Report The ASRS Report (figure 5-24) shows the contents of the ASRS. It is generated from information that was entered in the Storage Definition form. The following is an example of an ASRS Report. Figure 5 24 ASRS Report Each of the column headings in the ASRS Report relates to a specific field in the Storage Definition form, as follows: Name Name of storage location Index The number displayed in parentheses below the ASRS grid; e.g., ASRS (15). This is an internal index used in communication between the CIM Manager and the ASRS robot controller (and not the Index of the graphically displayed ASRS cell.) Part Name Part ID Status Template Number The name of the part residing in the current storage cell as defined in the Part Definition form (refer to cell in grid). Part ID, as defined in the Part Definition form. Status of the storage cell (Empty, Empty Template or Part on Template). The six-digit template number. 5-8-7 Analysis Report The Analysis Report (figure 5-25) is detailed information on the status of the entire system and is geared for the more experienced user. The report contains a Log file summary the start and the finish of each action. See below for an example of an Analysis Report. 120

Figure 5 25 Analysis Report 121