0% found this document useful (0 votes)
222 views136 pages

INDU411 Computer Integrated Manufacturing Lab Manual: Rev. 2019a

The document is a lab manual that introduces computer integrated manufacturing. It covers OpenCIM system management software, CNC milling and turning centers, and robot control programming. It provides detailed instructions and explanations of programming codes for operating different machines on the manufacturing cell.

Uploaded by

Dani Oort
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
222 views136 pages

INDU411 Computer Integrated Manufacturing Lab Manual: Rev. 2019a

The document is a lab manual that introduces computer integrated manufacturing. It covers OpenCIM system management software, CNC milling and turning centers, and robot control programming. It provides detailed instructions and explanations of programming codes for operating different machines on the manufacturing cell.

Uploaded by

Dani Oort
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 136

INDU411

Computer Integrated Manufacturing

Lab Manual

Rev. 2019a
INDU 411- Computer Integrated Manufacturing Lab Manual

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-5 Circular Interpolation using Different Planes .............................................................. 34
2-6 Available Tools ................................................................................................................... 34
2-6-1 Tool Offsets ................................................................................................................. 34
2-7 ProLight CNC mill control software................................................................................... 36
2-7-1 Menu bar ...................................................................................................................... 36
2-7-2 Standard Toolbar .......................................................................................................... 36
2-7-3 Edit Window ................................................................................................................ 37
2-7-4 Position Readout .......................................................................................................... 37
2-7-5 Machine Info Panel ...................................................................................................... 38
2-7-6 Verify Window ............................................................................................................ 38
2-8 Running a Sample NC Program .......................................................................................... 39
2-8-1 Load the program ......................................................................................................... 39
2-8-2 Adjust the Verify Settings ............................................................................................ 39
2-8-3 Creating a Program to Produce a Part .......................................................................... 42
2-9 Assignment ......................................................................................................................... 45
CHAPTER 3: The CNC Turning Center ...................................................................................... 49
3-1 Introduction ......................................................................................................................... 49
3-2 Absolute Coordinates VS Incremental Coordinates ........................................................... 51
3-3 Work Coordinates vs. Machine Coordinates ...................................................................... 53
3-4 Tool Selection ..................................................................................................................... 53
3-4-1 Tool Definitions ........................................................................................................... 54
3-5 Programming Codes............................................................................................................ 57
3-5-1 Preparatory Codes (G Codes) ...................................................................................... 57
3-5-2 Miscellaneous Codes (M Codes) ................................................................................. 57
3-5-3 Speeds and Feeds ......................................................................................................... 57
3-6 ProLight CNC Turning Control Software .......................................................................... 59
3-6-1 Machining a Part .......................................................................................................... 60
3-7 Program Simulations........................................................................................................... 65
3-8 Turning Center Assignment ................................................................................................ 67
CHAPTER 4: Robot Control Programming (To be updated) ....................................................... 68

ii
INDU 411- Computer Integrated Manufacturing Lab Manual

4-1 Introduction ......................................................................................................................... 68


4-2 Safety and Robot Components............................................................................................ 69
4-3 Teaching Robot Position ..................................................................................................... 72
4-3-1 Define positions ........................................................................................................... 73
4-3-2 Teach Pendant key functions ....................................................................................... 74
4-4 Scorbase Software & RoboCell Cell Simulation Software................................................. 79
4-5 Viewing the Robot Workspace ........................................................................................... 81
4-5-1 Movements ................................................................................................................... 83
4-5.2 Positions ....................................................................................................................... 85
4-5.3 Teaching Positions ....................................................................................................... 86
4-5.4 Movements ................................................................................................................... 87
4-6 Work Station 3 Project ........................................................................................................ 88
4-6-1 Subroutines .................................................................................................................. 91
4-6-2 Programming Movements ............................................................................................ 91
4-7 Variables ............................................................................................................................. 95
4-8 Robotic Integration ............................................................................................................. 96
4-8-1 Inputs and Outputs ....................................................................................................... 96
CHAPTER 5: System Integration and Optimization .................................................................. 101
5-1 Introduction ....................................................................................................................... 101
5-2 Machine and Process Definitions...................................................................................... 101
5-3 Part Definitions ................................................................................................................. 104
5-4 Storage Manager ............................................................................................................... 108
5-5 Material Requirement Planning ........................................................................................ 111
5-5-1 Customer order form .................................................................................................. 112
5-5-2 Manufacturing Order form ......................................................................................... 113
5-5-3 Purchase Order form .................................................................................................. 114
5-6 Optimization ..................................................................................................................... 116
5-7 Performance Analysis ....................................................................................................... 118
5-8 Report Generator ............................................................................................................... 121
5-8-1 Part definition Report ................................................................................................. 122
5-8-2 Subpart Report ........................................................................................................... 123

iii
INDU 411- Computer Integrated Manufacturing Lab Manual

5-8-3 Manufacturing Order Report...................................................................................... 123


5-8-4 Machine Report .......................................................................................................... 124
5-8-5 Process Report ........................................................................................................... 125
5-8-6 ASRS Report .............................................................................................................. 126
5-8-7 Analysis Report .......................................................................................................... 126
APPENDIX A: List of G and M codes ....................................................................................... 129

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 communication

2
INDU 411- Computer Integrated Manufacturing Lab Manual

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.

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

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
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 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.

8
INDU 411- Computer Integrated Manufacturing Lab Manual

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

Date Entry
Interoperability
Operates Monitor

Database
Machine
CIM Setup Part Definition Order Entry Report Generator MRP Other Utilities
Utilities Definition

Data
Warehouse DB

Real Time
Graphic
CIM MANAGER Gantt Chart
Applications Display

PC Processing PC Quality
Stations Station Manager
PC
Control Station

CNC Quality
Conveyor
Device Robot
Device
Machine
Device
Controller
Device Device
Drivers Drivers Drivers
Drivers Drivers

Devices

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 1-10) is

12
INDU 411- Computer Integrated Manufacturing Lab Manual

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. .

Figure 1-10 Modes Dialog Box

1-3-1 Production Operations

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).

Covered Box

Assembly
operation

Box Cover

Milling
Process

CUBE

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 three-axis
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 shape2.

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.

2
http://www.custompartnet.com/wu/milling

21
INDU 411- Computer Integrated Manufacturing Lab Manual

Figure 2-2 Milling Machine

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

22
INDU 411- Computer Integrated Manufacturing Lab Manual

If the machine is currently set for inch units, the individual words in this block translate as:
✓ 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

Figure 2-4 Home Position

2-4-1 Machine Coordinates

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;

Be Careful: Rapid moves are never to be used to remove material but to position the cutting tool
outside of the part.

31
INDU 411- Computer Integrated Manufacturing Lab Manual

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 90o.

2-5-4 Programing Incremental Arcs in the Absolute (G90) Mode

When a percent % sign is at the beginning all arc centers will be in the incremental mode.
When a dollar $ sign is at the beginning of a program all arc centers will be in the absolute mode.

2-5-5 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.25” x ½” high
density plastic (HDPE).

Tool 01 3/8” Ball mill 2 Flutes


Tool 02 ¼” Ball mill 2 Flutes
Tool 03 1/8” End mill 2 Flutes
Tool 04 1/8” Ball Mill 2 Flutes
Tool 05 3/8” Ball mill 2 Flutes
Tool 06 ¼” Ball mill 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

Tool 5 and Tool 6 have offset to place the zero point at the origin of the radius rather than at the
tip of the cutting tool. This is useful when milling arcs on the Z- axis.

Figure 2-8 Tool Offsets Compensated

35
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-9 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.

36
INDU 411- Computer Integrated Manufacturing Lab Manual

Figure 2-10 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-11 Position Readout

37
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-12 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.

38
Figure 2-13 Centerline view Figure 2-14 Solid view

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).

39
Figure 2-15 verify setup dialog box-view panel

Adjust the Stock

Select the Stock tab.


• 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).

40
Figure2-16 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.

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.

41
Figure 2-17 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-18 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 coordinate system to a user
coordinate system. And return it to the world coordinate system at the end.

42
$ ;ARC CENTERS ARE INCREMENTAL
N1; LAB2
N2M10; CLOSE VISE
N3G04F2; WAIT FOR VISE TO CLOSEN (Pause for 2 seconds)
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.188F5 ; MOVE TO DEPTH
N13G01Y1.2F10 ; 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

43
Figure 2-19 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-20 cutter compensation

44
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: fm = ft nt N

• ft = Feed per tooth in inches per minute (IPM). Use a ft of 0.010” for Acrylic.
• nt = 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.

45
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.

46
Figure 2-21 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.
Check to see that the stock is 3.5” x 2.25” x0.5”
Does the software simulation show the tool path which you intended?

47
Machining the Part on the PLM1000 Machining Center
The simulation will show the toolpaths accurately. However it will not detect improper
machining practice such as a cutter not rotating. Here is a checklist to help eliminate some
common errors. The stock in Verify Settings should be 3.5” x 2.25” x 0.5”.

✓ Cutting tool not rotating when removing material. It is not necessary to turn off the
cutter to change a tool. WPLM software will do this automatically.

✓ Cutting tool approaching the part on the Z-axis at a slow federate. In a high
production environment this would waste too much time. Use the rapid travel (G00) to a
safe distance above the part (G00Z0.1)

✓ Removing material on a rapid travel movement. Rapid travel should only be used
when the tool is not engaged in the material. This will break the tool and may damage
the machine.

✓ Placing a homing command in the part program. The machine only needs to be
homed after it is turned on. Placing a homing command (G28) in the program is a
redundant move and only wastes time.

✓ Rapid travel to the part origin (G00X0Y0Z0). This will collide with the vise.

✓ Not programming the type of arc centers at the beginning of a program. Place a %
for incremental arcs centers or a $ for absolute arc centers at the start of the program.

✓ To deep cuts. Make the depth of cuts equal to the radius of the cutting tool. This will
vary with the hardness of the material.

✓ Wrong coordinate system. In Lab 2, 3 and 6 the coordinate system should be G54.
For loading and unloading routines by the robot use G59.

✓ Too many tool changes. After a tool is selected machine all of the features which
require that tool before selecting another tool. Additional tool changes waste time.

48
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 a 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

49
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

50
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.

51
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

52
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
beforehand, 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

53
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)

T02 ¼” Boring tool

T03 Left hand turning (figure 3-7)

T05 Parting tool 0.100” width (figure 3-8)

T07 and T09 1/8” Profiling tool (figure 3-9) These are the same tool but the tool path
for Tool 7 will be tangent to the radius. For Tool 9 the tool path will be at
the center of the radius.

Figure 3-6 right hand turning Figure 3-7 left hand turning

54
Figure 3-8 Parting tool 0.100” width Figure 3-9 Profiling turning

Figure 3-10 Boring tool

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. You cannot cut using the side of the tool.
3. Tool 7 and Tool 9, the radius of the 1/8” profiling tool is 0.0625”. So don’t approach the
origin any closer than Z0.2. The profiling tool may cut in either direction on the Z axis.
4. Do not program cutting operations with Tools 1 and 3 and 7on the X axis except for tapers.
5. Limit each cut to 0.050” or less for turning operations.

55
6. Back off from the material at the end of a cut. Do NOT drag the tool against the material
when returning away from the origin. With Tool 2 back off by moving toward the center
line.
7. With Tools 1, 2 and 3 cut only using the cutting edge. Do not cut with the back of the tool
as this will dull the tool and leave a poor finish on the part.
8. Move the turret away by 1” or more when selecting another tool so that the indexing turret
does not collide with the rotating part. For Tool 2 be certain that it has been retracted to a
point outside of the part.

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.

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

56
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
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.

57
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

58
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

59
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 918" 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.

60
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

N4G54; CHOOSE USER COORDINATE SYSTEM

N5G90; ABSOLUTE MODE

N6G70; INCH UNITS

N7M06T01; SELECT TOOL #1

N8S900M03; SET SPEED 900rpm turn on spindle

N9G00Z1.9375X0.4; POSITION 2.5" FROM ORIGIN

N10G01X-0.03F3; FACE END AT 3 INCHES PER MINUTE

N11G00Z2X0.365; RETRACT

N12G01Z0.875F3; FIRST CUT

61
N13G00X0.45; RAPID AWAY FROM PART

N14G00Z2; RAPID TO RIGHT END

N15G00X0.35; FINISH SIZE

N16G01Z0.875F3; FINISH CUT AT 3 INCHES PER MINUTE

N17G00X0.45; RAPID AWAY FROM PART

N18Z3.0; POSITION FOR TOOL CHANGE

N19M06T07; SELECT CHAMFER TOOL

N20G00X0.2875Z2; APPROACH PART

N21G01Z1.938; CHAMFER

N22G01X0.35Z1.875F2; APPROACH PART

N23G00X0.4; RETRACT

N24G28; HOME POSITION

N25M30; STOP

Figure 3-13 main window view

62
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 Tools→Operate Turret (figure 3-15) after home, Press Done to finish.

Figure 3-15 Operate Turret

Start Program: Menu File→Open (figure 3-16) and choose start.

63
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-18 cycle starting

Figure 3-17 part in simulation view

64
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 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.

65
• Material is being removed by using a turning tool on the X-axis only. This will bend the
material rather than cut it.

CNC programming is easier if ordinate dimensioning is used in the drawings.

• 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 G54.
• 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).
• Do not program a rapid movement up to the part. Leave a gap of 0.05” or more.
• Start the spindle (M03) before approaching the part so that it will be up to speed before a
cut starts. Or place a Pause in the program after turning on the tool (ex. G04F1 for a 1 sec.
pause).
• Perform operations at the right end such as boring first. The piece may bend due to tool
forces after turning operations have thinned the diameter of the material.

66
3-8 Turning Center Assignment
$ ; ARC CENTERS ARE ABSOLUTE
N2; TURNING PROGRAM FIRST END
N3; _______________
N4G____; ABSOLUTE MODE
N5G____; INCH UNITS
N6G____; USER COORDINATES
N7M____T____; SELECT PARTING TOOL
N8G____X0.4Z2.4; RAPID TO START POINT
N9M_____S_____; SET SPEED 1200rpm TURN ON SPINDLE
N10G_____X-0.03F_____; FACE END AT 5 INCHES PER MINUTE
N11G_____Z_____ ; RAPID MOVE TO Z4.0
N12X____ ; RAPID MOVE TO X2.0
N13M____T____; SELECT ¼" TURNING TOOL
N14G00Z2.42X0.375; RAPID MOVEMENT TO START POSITION FOR TURNING;
THE DIAMETER TO 0.375"
N15G_____Z_____ ; TURN THE DIAMETER UP TO 0.25" FROM THE CHUCK AT
10 INCHES PER MINUTE
N16G____X0.4; RAPID AWAY FROM THE PART
N17G_____Z_____ ; RAPID TO RIGHT END
N18X0.25; STARTING POSITION FOR TURNING THE CHAMFER
N19G____Z2.375F_____; APPROACH THE PART AT 10 INCHES PER MINUTE
N20Z_____X_____; TURN THE CHAMFER TO Z2.25 X0.40 AT 10 INCHES PER MINUTE
N21G_____X_____; RETRACT TO X0.4
N22M_____; STOP THE SPINDLE
N23G_____; HOME POSITION
N24M_____; STOP THE PROGRAM

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.

67
CHAPTER 4: Robot Control Programming (To be updated)

4-1 Introduction

CIM robots move parts within a station and perform assembly operations. The controller for
CIM robots runs SCORBASE programs which tell the robot what path to follow and what to do
once it reaches a destination. The controller outputs pulse width modulation signals to produce
movements from the 5 servo motors of the robot, and receives signals from the optical shaft
encoders of the robot. The Scorbase software communicates with the controller through a USB
connection.

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

68
4-2 Safety and Robot Components

Safety is very important. Robots have caused injuries, even fatalities in the workplace.
Robots can move in an unanticipated manner and deliver an impact to persons or objects within
their work envelope. Although the ER9 robots in Room H-829 have impact protection, it is not
good practice to rely on impact protection alone to protect you under all circumstances.

• Pay attention to what the robots are doing.

• Stand outside of the work envelope when the robots are executing their programs
autonomously.

• Press the deadman switch when using the teach pendant to cause movement or define
positions.

• Do not use smart phones, tablets or headphones as you will be less aware of what is
happening around you.

• Disconnect the controller from the electrical mains before making any electrical
connections.

• Familiarize yourself with the Emergency stop buttons on the Teach pendant and the
front panel of the USB-Pro controller.

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 five 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. An optical
shaft encoder indicates the degrees of rotation of the motor to the Scorbase software. The
movements of the joints are described in the table 4-1:

69
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 ER9pro robot joints and link

The SCORBOT-ER V 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.4-3 identifies the joints and
links of the mechanical arm.

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

70
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.

71
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 Scorbase. 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 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

72
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 the Scorbase software application. 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 Scorbase
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 running
programs are aborted. When the switch is moved from Teach to Auto, running programs continue
execution.

The teach pendant’s keypad (figure 4-5) has 25 color-coded keys. Most of the keys are Multi-
functional; 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

73
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

• 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.

+ KEY
• 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.

74
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.

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).

75
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
• Axis 7 controls the sliding base
8 / AXIS 8
• Numerical key 8
• Axis 8 in Joint mode
9 / AXIS 9
• 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.

76
• 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 “&”.

• 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.

77
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

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
• The command RUN 0 homes the robot axes .
• The command RUN 999 executes a system test .

ABORT

• Aborts execution of all running programs. Stops the robot and all peripheral axes.

78
4-4 Scorbase Software & RoboCell Cell Simulation Software

Scorbase is a robotic programming application from Intelitek Ltd. RoboCell is an application


which enables students to view the movements which they have programed on the computer
desktop in a simulation mode. If the programs are complete and correct they can be executed using
the ER9pro robot.

• Open the RobCell Application.


• Select the Lab4.WS File.

From the Window menu of the RoboCell application select Teach and Edit from the menu.

The Program window to the left of the desktop shows the lines of the program. The Workspace
window to the right has 2 tabs.

• The Commands tab will show 3 folders from which commands can be selected.
• The Project tab will show 3 files and a graphic display of the work environment.

There will be 3 files:

Program contains the commands for the movements.

Positions contain the values for the encoder lines of the servo motors on the robots joints.

3D Image contains the graphic representation of the robot to be simulated.

79
On the left of the screen is the script for a program prepared by Intelitek. ER9_Act3 can be
found in the Fundamentals folder. It will cause the robot to stack three blocks and then return
them to their original positions.

Figure 4-6

80
Figure 4-7 The Project Window

4-5 Viewing the Robot Workspace


Hold down the right button on the mouse. Move forward to zoom in and away to zoom out.

81
Select the Camera icon from the toolbar.

Figure 4-8

Click on the 3D image to move the center of the image.

Executing a Program

• Open the RobCell Application.


• Navigate to the folder C:\Intelitek\RoboCell\Projects\ER9ub\Fundametals.
• Select the ER9_Act3.WS File.

This program will stack the 3 colored blocks.

• In the Workspace window select the Project tab.

There will be 3 files:

Program contains the commands for the movements.

Positions contain the values for the encoder lines of the servo motors on the robots joints.

3d Image contains the graphic representation of the robot to be simulated.

82
Click on the RUN icon from the toolbar to see the program execute.

Figure 4-9

This is one single program. Most of the programs we run in our CIM cell call subroutines. One
file may contain several programs.

4-5-1 Movements
From the View menu select Robot Movement. Positions in a Scorbase project are stored in a file
*.pnt. To define an absolute position in the simulation move the robot to the desired destination
by the Robot Movement feature from the View menu.

Figure 4-7

• Click on the Open Jaw icon at the lower left of the toolbar.
• Select the Joints radio button.
• Press and hold the ‘W’ on the keyboard, or select ‘W’ with the mouse pointer and
press the mouse button to bring the robot toward the table.
• Then press ‘E’ or ‘3’ to make the jaws vertical.

83
• Select the XYZ radio button to change to Cartesian coordinates.
• Move toward the red block until the jaws are on either side of the block.
• Re-orient the 3D view as required to perform the task.
• Set the ideal speed.
• Then close the jaws to grip the block.

From the View menu select Teach Positions.

• The robot icon at the bottom left will record a position.


• The red circle with the X next to it will delete a position.
• The blue arrows will move the robot to a selected position.

Figure 4-8

Under Position Number select 8. Click on the blue arrow. The robot will move to Position 8.
Notice that the XYZ, Joints and Encoder Counts dialog bars update as their values as the robot
moves.

• Enter a number 20 into the Position Number space and select the Absolute radio button.
• Select the blue robot icon to record Position 20.

Click on the Expand feature at the lower left of the Teach Positions box.

84
Figure 4-13

• Enter 21 in the positions box.


• Select the Relative radio button.
• Select 20 from the Relative to window.
• Enter 50 into the Z box.
• Click on the Teach button.

There should now be a position 21 above 20 by 50 millimeters.

• Click on the blue arrow to move to position 21.

The block should be 50 millimeters above the table on the Z axis. The Scorbase application may
be used when defining positions using the actual ER9 Robot. However, the teach pendant may
be the preferred method.

4-5.2 Positions
There is no movement without a destination. Every movement requires a position to move to.
From toolbar select the View icon and open the Positions window.

85
Figure 4-10

Positions may be absolute or relative. The origin is the center of the base at table height. Absolute
positions are relative to the origin similar to the CNC machine tools in labs 2 and 3. Relative
positions are incremental relative to an absolute position. Position 1 is an absolute position in
joint mode with all encoder counts at zero. Scroll down to Position 5. Position 5 is relative to
Position 2 in XYZ (Cartesian) mode. Position 5 is 40mm above Position 2 on the Z axis. The XYZ
values for the Cartesian mode are the position for the Tool Point Center, the middle of the gripper.

4-5.3 Teaching Positions


In order to have positions in the Positions file they must be defined. From the View menu open
the Teach Positions dialog box. Click on the expand tab.

Figure 4-11

86
• The robot icon at the bottom left will save a position.
• The red circle with the X next to it will delete a position.
• The blue arrows will move the robot to a selected position.

4-5.4 Movements

Click on the Commands tab In the Workspace window.

Figure 4-12

87
4-6 Work Station 3 Project
We will create a project in which we will define positions and write script for a
simulation of Work Station 3 of the CIM cell in room H-829. Figure 4-13 shows the work station
layout in the OpenCim.

Figure 4-13

Open the RoboCell application and open the project Lab4.WS. This is a simulation of Work
Station 3(The assembly station) of the actual CIM cell in Room H-829.

88
Figure 4-14

The goal of the lab is to create a program consisting of subroutines to

• Move the finished parts from the templates,


• Place the parts in a rack for storage,
• Assemble the block and cylinder in a jig.
• Place the assembly in the template.

89
All of the devices in the workstation are allocated an ID number by the OpenCim application:

Create the GET Subroutine GET032

First define the following positions:

Table 4-3
Position Number Type Place
2 Absolute Cylinder at template
12 Relative 50 mm above template
95 Absolute Intermediate position above the rack

Open Manual Movement or Robot Movement from the View menu. Open the jaws and
move them into a position to straddle the cylinder on the template. It may be necessary to reduce
the speed. You will have to reorient the view.

• Define the position ‘2’.


• Teach a relative position ‘12’ 50mm above 2 (Z axis).
• Move the gripper to an arbitrary point above the racks and define position ‘95’.

90
4-6-1 Subroutines
Click on the Commands tab In the Workspace window. Select Program Flow.

Figure 4-15

Select SS Set Subroutine. Enter GET032 into the dialog box to name the subroutine. Use
RE Remark to place comments in the program.

4-6-2 Programming Movements

From the Commands tab in the Workspace window open the AXIS CONTROL
window. The following movements will be used in the subroutine:

91
Figure 4-16

GP Go To Position#_Speed… The Tool Point Center (TCP) of the robot will move
to a defined position by the most convenient path.
GL Go Linear To Position #_Speed Percent… The robot controller will move the
TCP in a direct path to a defined
point.
OG Open Gripper
CG Close Gripper

Create the following subroutine.

Set Subroutine GET032


Remark: This subroutine will pick up a part at position #32
Ring Bell

92
Ring Bell
Ring Bell
Open Gripper
Go to Position 95 Speed 50 (%)
Go to Position 12 Speed 50 (%)
Remark: Reduce speed and move linear to the destination
Go Linear to Position 2 Speed 10 (%)
Close Gripper
Go Linear to Position 12 Speed 50 (%)
Go to Position 95 Speed 50 (%)
Return from Subroutine

Save the subroutine and select the Run Subroutine icon on the toolbar.

Figure 4-17

Select GET032

Figure 4-18

93
Click on the Execute button.
Does the subroutine move to pick up the part and move to Position 95?

The names of programs, subprograms and positions are based upon the Device IDs in OpenCim.
Each device will have GET and PUT or subroutines.

Table 4-4

Device Device ID Get Subroutines Put Subroutines Positions Required

Conveyor 001 GET001 PUT001 1, 11, 95


Buffer 3 Index_1 032 GET032 PUT032 2, 12 , 95
Buffer 3 Index_2 033 GET033 PUT033 3, 13, 110, 111
Rack 1 044 GET044 PUT044 95, 200, 300, 310,496
Rack 2 045 GET045 GET045 95, 200, 320,330
Vise 046 GET046 PUT046 95, 200, 210, 450
Robot 3 031

The following subroutines are reuired:

GET032 Pick up the cylinder from the template at Buffer_3 Index_1.

PUT044 Store the cylinder in Rack 1.

GET033 Pick up the block from the template at Buffer_3 Index_2.

PUT045 Store the block in Rack 2.

GET045 Pick up the block from Rack 2.

PUT046 Place the block in the jig.

GET044 Pick up the cylinder from Rack 1.

ASSEMBLY Orient the cylinder vertical and stand the cylinder on the red dot.

GET046 Pick up the block from the jig.

94
PUT033 Place the assembly on the template at Buffer_3 Index_2.

Create the additional subroutines to complete the program.

4-7 Variables

Sometimes parameters in a program will need to be changed periodically as a program executes.


Instead of using numerous subroutines to complete a task, parameters such as position numbers or
rates of speed can be changed by assigning a variable in the program.
The CIM Manager sends a set of parameters to a Scorbase device driver whenever it issues a
pick-and-place command. The device driver in turn receives these parameters and assigns them
to the following global variables (Table 4-5):

Table 4-5 Global Variables


Robotic pick and place parameters
Description
Scorbase or Visual Basic Script
A sequence number generated by the CIM
Manager for each command (a pick-and-place
SOURCE_DEVICE_ID = 24
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_ID = PART_ID
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
SOURCE_DEVICE_ID =
robot will pick up the part/template.
SOURCE_DEVICE_ID
For a source device that has multiple
compartments (e.g. a storage rack), this
SOURCE_DEVICE_INDEX =
parameter specifies in which compartment (or
SOURCE_DEVICE_INDEX
buffer) the robot will find the part/template.

The device ID of the target location where the


$DEV2 robot will place the part/template.

For a target device that has multiple


compartments, this parameter specifies in
TARGET_DEVICE_INDEX =
which compartment (or buffer) the robot
TARGET_DEVICE_INDEX
should place the part/template.

95
4-8 Robotic Integration

In a Computer Integrated Manufacturing (CIM) cell it is necessary for the various components to
communicate with each other. In room H-829 the Scorbase application will receive messages from
OpenCim through the TCP_IP connection. The Prolight CNC controllers will transmit signals the
USB-Pro controller’s inputs. The USB-Pro controller will transmit signals through the outputs to
the Prolight CNC controller’s inputs.

4-8-1 Inputs and Outputs

Inputs
The USB-Pro controller has the following inputs on the front panel of the controller:
4 Analog Inputs 0-10Volts
16 Digital inputs 24 Volt max Configurable as source or sink

Outputs
The USB-Pro controller has the following outputs on the front panel of the controller:
2 Analog Outputs 0-10Volts
4 Relay Outputs The vise in work station 3 is controlled by a relay from the
controller outputs.
12 Digital Outputs Open collector configurable as source or sink.
+24 Volt User Power
24 Volt Common User Power Output

The Digital Inputs and outputs are Binary. That is they have only 2 states: ON and OFF. These
are also referred to as 1 and 0, or High and Lo.

Open the RoboCell application. From the View\Dialog Bars and select Digital Outputs,
Digital Inputs, Analog Outputs and Analog Inputs dialog bars. These will indicate the states
of the various inputs and outputs as the program is executing.

96
Figure 4-19

Open the Commands tab in the Workspace window. Open the INPUTS & OUTPUTS folder.
These will show the conditions available for the inputs and outputs.

Figure 4-20

97
4-8-2 Communication with External Devices

The USB-Pro controller will send a High then a Low signal to the Prolight CNC
controller. The CNC program will run the following codes to communicate with the robots at
the beginning and end of a program.

• The get and put programs will be run by the Scorbase software. Don’t put them into your
part files. The communication codes will signal to the USB-Pro controller when to run
these programs.

Below is an example of the header we use at the start of our CNC programs:

$
N2;THIS IS A PROGRAM
N3;TO PRODUCE A PAWN;
N4;TURNING PROGRAM FIRST END
N5;_______________
N6;-------------------------------------------
N7; interface at start begin
N8;-------------------------------------------
N9 M26; Put idle signal off
N10G04F1; wait one second
N11M25; Put idle signal on
N12 G26; WAIT FOR CONTROLLER SIGNAL TO START HIGH
N13 G25; WAIT FOR CONTROLLER SIGNAL TO START LOW
N14 M26; Put idle signal off
N15;-------------------------------------------
N16; interface at start end
N17;-------------------------------------------

98
Figure 4-21

1. 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.

Figure 4-22

2. 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.

99
Figure 4-23

3. The mill receives the low signal from the robot and begins to mill the part.

Below is an example of the footer we use in our CNC programs.

N51;-------------------------------------------
N52; Robot interface at end
N53;-------------------------------------------
N54M05; Stop Spindle
N55G59; World
N56G90
N57G00Z-0.1; Move turret up
N58G00X-0.1; move to clear position
N59; chain next program from file
N60M25; Put idle signal on
N61M20
CHAIN_FILE P:\CIM2013_A\WS2\LATHE\CHAIN_FILE.TXT

The last line is a path name for a file which will load the next file to run from OpenCim.

100
CHAPTER 5: System Integration and Optimization
5-1 Introduction

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 are described in detail

101
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 given process

102
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).

103
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.

104
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

Color: Defines the color of the parts that can be viewed on the conveyer. You can
define a different color for each part.

105
Part Type:

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.

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.
Part ID:

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.

106
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.

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.
Process:
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).

Device Example Description Note

107
ROBOT-VISIO 1,4 type of test, If maximum value is
minimum value, omitted, the minimum
PRO
[maximum value] value represents the single
acceptable value.
Laser Scan 1,150,160 Places subpart If maximum value is
assembly omitted, the minimum
Meter
BOX in location value represents the single
acceptable value ( with a
#2.
tolerance of 5%
Assembly BOX,2 target location, Places subpart assembly
[target index] BOX in location #2.
Machine
Table 7-1 Parameters Description

Sequence:

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:
• Update the contents (part and/or template) of storage locations.

108
• 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.

109
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

110
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

111
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

112
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.

113
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.

114
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

115
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.

116
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:

117
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. In

118
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.

119
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.

120
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

121
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 # as listed in sequential order.


Part Name
Part Name

Type Part Type: supplied, product or phantom.


Part ID Part ID

Template ID Template
Part Description Type Description

122
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 the subparts
which comprise the finished product. The following is an example of a Subpart Report.

Figure 5-20 Subpart Report

Part Name Part Name.


Sub-Part Name The column Subpart in the Part Process Table.
Manufacturing The column Process in the Part Process Table.
Process Name
Manufacturing The column Parameters in the Part Process Table for
Parameters 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.

123
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 The column “Part”.


There can be more than one part listed.
Total Number of Parts
Ordered The column “Total Qty”. Each Total Qty listed corresponds to a
specific part ordered.
Initial Number to Produce The column “Initial Qty”.
Each Initial Qty listed corresponds to a specific part ordered.
Priority The column “Priority”.
The Priority level (from 1 - 9) listed corresponds to a specific part
ordered.
Final Storage Location (if not Refers to the final storage location listed in the column “Note”
ASRS) (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

124
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 List of Preloaded Programs
Program 2
Program 3

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:

# The sequential number of the machine as listed.

Machine Name Machine Name.


Process Name The column “Process” in the Machine Process Table.

Process Type The column “Action Type” in the Machine Process Table.

Program File Name The column “File” in the Machine Process Table.

125
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 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 Part ID, as defined in the Part Definition form.
Status
Status of the storage cell (Empty, Empty Template or Part on Template).

Template Number 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.

126
Figure 5-25 Analysis Report

127
The following is a description of each of the columns in the Analysis Report:

Part Name The name of the part as defined in the Part Definition form or in
the Virtual CIM Setup.
Device The name of the robot, machine or conveyor that performs the
operation, as defined in the Machine Definition form.
Action Robot: (pick-and-place)
Assembly: (base and pack)
Conveyor: (deliver) or machine (the name of process as defined in
the Machine Process Table).
Subpart
Name
Robot: the number of a template or the name of a part.
Machine: the name of a part or material.
Target Where the process should be performed.
Indicates the exact location on a device which has more than one
Index
location for a part.

Status The status of the action (start or finish).


Time The time the action started or the time the action was completed.

128
APPENDIX A: List of G and M codes

G Codes

Interpolation Group
G00 Rapid traverse
G01 Linear interpolation
G02 Circular interpolation (clockwise)
G03 Circular interpolation (counterclockwise)

Programming Mode Group


G90 Absolute coordinate programming: All X, Y and Z axes coordinates are relative to a (0,0)
location on a mill.
G91 Incremental coordinate programming: Each command is relative to the one before it in
the program.

Units Group
G70 Inch: Used to instruct the mill that inches are the unit of measure for the part program.
G71 Metric: Used to instruct the mill that millimeters are the unit of measure for the part
program.

Wait Group
G04 Dwell (wait): Equals the value of the feed rate (F code) in seconds (used primarily for
robotic operations). G04 excludes motion commands with a new feed rate on the same
line (block).
G05 Pause: Used for operator intervention. The order of action for the pause and dwell codes
in one NC block is G05, G04 (pause, dwell).
G25 Wait for robot input to be high: Used in conjunction with H code, which specifies input
number. Used for robot synchronization.
G26 Wait for robot input to be low: Used in conjunction with H code, which specifies input
number. Used for robot synchronization.
G31 Linear to specified coordinate. Stop short if specified input goes High (if H is positive) or
Low (if H is negative).

Coordinate system Group


G53 Rapid traverse to specified coordinates in the Machine Coordinate System. (e.g.
G53X0Y0Z0 rapids to machine reference point)
G54 Use coordinate system one.
G55 Use coordinate system two.
G56 Use coordinate system three.
G57 Use coordinate system four.
G58 Use coordinate system five.
G59 Use coordinate system six.

129
Preset Position Group
G27 Check reference point: This code moves the tool to its home position on the Machining
Center to check the calibration of the axes. Compares reported position against zero to
see if position has been lost.
G28 Set reference point: This code moves the tool and calibrates the axes. The Machine
Coordinate System origin is located at this home position.
G29 Return to reference point: Moves the tool to a coordinate specified by XYZ. Typically
used after a G27 or G28 code.
G92 Set position: This code works like the Set Position function under the Setup Menu. The
X, Y and Z coordinates following a G92 code define the new current position of the tool.
G98 Rapid move to initial tool position after canned cycle complete.

Plane Selection Group


G99 Rapid move to point R (surface of material or other reference point) after canned cycle
complete.
G17 Select the X,Y plane for circular interpolation. This is the default plane for circular
interpolation. Use this code to switch back to the X,Y plane after circular moves on the
X,Z or Y, Z planes. The arc center coordinates are given by I for the X axis and J for the
Y axis.
G18 Select the X,Z plane for circular interpolation. Use this code to perform circular
interpolation on the X,Z plane. The arc center coordinates are given by I for the X axis
and K for the Z axis.
G19 Select the Y,Z plane for circular interpolation. Use this code to perform circular
interpolation on the Y,Z plane. The arc center coordinates are given by J for the Y axis
and K for the Z axis.

Cutter Compensation Group


G39 Corner offset in circular interpolation.
G40 Cancel cutter compensation.
G41 Invoke cutter compensation left.
G42 Invoke cutter compensation right.
D Specifies the offset number from the Offset Table.

M Codes

Program Stop/End Group


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 stop in your code. Place an M01 in the
block of code where you would like to pause. With Optional Stop on, the M01 works like
a G05. With Optional Stop off, the M01 code is ignored, the other codes on the block are
executed as usual.
M02 End of Program: Takes effect after all motion has stopped; turns off drive motors,
spindle and accessory outlets.
M30 Program stop: Same as M02.

130
Spindle Group
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.

Tool Change Group


M06 Tool Change: Used in conjunction with a T code to perform multiple tool operations.

Accessories On/Off Group


M08 ACC1 On: Turns on accessory ACC1 outlet concurrently with the motion specified in the
program block; remains in effect until superseded by M09. We will use this to open the
door.
M09 ACC1 Off: Turns off accessory ACC1 outlet after the motion specified in the program
block; remains in effect until superseded by M08. We will use this to close the door.
M10 Clamp ACC2: Turns on ACC2. Closes air vise accessory concurrently with the motion
specified in the program block; remains in effect until superseded by M11. We will use
this to open the chuck.
M11 Unclamp ACC2: Turns off ACC2. Opens air vise accessory after the motion specified in
the program block; remains in effect until superseded by M10. We will use this to close
the chuck.

Program management Group


M20 Chain to the next program: This will be used to call up another program. It is placed at
the end of a program after all motion has stopped. The next line will have a filename (and
path if not in the same directory) of the program to be chained.

M98 Change to a sub program

M99 Return from subprogram

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

131

You might also like