INDU411 Computer Integrated Manufacturing Lab Manual: Rev. 2019a
INDU411 Computer Integrated Manufacturing Lab Manual: Rev. 2019a
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
ii
INDU 411- Computer Integrated Manufacturing Lab Manual
iii
INDU 411- Computer Integrated Manufacturing Lab Manual
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.
1
INDU 411- Computer Integrated Manufacturing Lab Manual
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.
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.
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.
• Station Manager PC: A Station Manager PC where the device drivers are located that:
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
• 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.
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
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.
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
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.
• 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
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:
10
INDU 411- Computer Integrated Manufacturing Lab Manual
• Designated messages from a device to a user defined process that is monitoring this device
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
11
INDU 411- Computer Integrated Manufacturing Lab Manual
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.
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. .
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
Covered Box
Assembly
operation
Box Cover
Milling
Process
CUBE
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.
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.
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).
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
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.
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.
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
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.
The milling process requires a milling machine, workpiece, fixture, and cutter. The
workpiece is a pre-shaped material that is secured (figure 2-1).
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.
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
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.
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:
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
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.
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.
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
24
INDU 411- Computer Integrated Manufacturing Lab Manual
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
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
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
27
INDU 411- Computer Integrated Manufacturing Lab Manual
• Specify the number of seconds to dwell when used with the G04 code.
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
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.
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
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
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.
Example: Rapid movement the cutting tool to a position 1.5, 1.705 from origin 0.1 inches
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
Example: Move the cutting tool to a position 1.5, 1.705 from origin 0.1 inches above the part at 5
ipm.
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.
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.
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;
33
INDU 411- Computer Integrated Manufacturing Lab Manual
N15G03Y1.5R0.5;
The “R” code is good for filleting corners but doesn’t always work for angles other than 90o.
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.
The following tools are mounted in our machining center. The material is 3.5” x 2.25” x ½” high
density plastic (HDPE).
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.
35
INDU 411- Computer Integrated Manufacturing Lab Manual
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.
36
INDU 411- Computer Integrated Manufacturing Lab Manual
37
INDU 411- Computer Integrated Manufacturing Lab Manual
38
Figure 2-13 Centerline view Figure 2-14 Solid view
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
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.
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
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.
44
2-9 Assignment
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.
G01 X1.0 Y1.0; Move to position away from 1,1 by the amount of offset 2
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:
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Feed rates in inches per minute (IPM) are programmed using F codes.
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.
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
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.
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:
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.
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
Choose absolute coordinates and inch units from setup in main toolbar (figure 3-13). Then use
the following program:
N2; PRODUCE A
N11G00Z2X0.365; RETRACT
61
N13G00X0.45; RAPID AWAY FROM PART
N21G01Z1.938; CHAMFER
N23G00X0.4; RETRACT
N25M30; STOP
62
After finishing the program writing from the main menu, choose: Setup – check home: from
menu setup→ Set/Check Home…(figure 3-14)
Home Turret: Menu Tools→Operate Turret (figure 3-15) after home, Press Done to finish.
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).
64
From configure turret menu click OK (figure 3-19) when the yellow title appears (figure 3-20), it
is ready to run
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:
65
• Material is being removed by using a turning tool on the X-axis only. This will bend the
material rather than cut it.
• 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.
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.
• 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.
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
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.
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.
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.
+ 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.
• 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
ABORT
• Aborts execution of all running programs. Stops the robot and all peripheral axes.
78
4-4 Scorbase Software & RoboCell Cell Simulation Software
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.
Positions contain the values for the encoder lines of the servo motors on the robots joints.
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
81
Select the Camera icon from the toolbar.
Figure 4-8
Executing a Program
Positions contain the values for the encoder lines of the servo motors on the robots joints.
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.
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
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.
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
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
89
All of the devices in the workstation are allocated an ID number by the OpenCim application:
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.
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.
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
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
ASSEMBLY Orient the cylinder vertical and stand the cylinder on the red dot.
94
PUT033 Place the assembly on the template at Buffer_3 Index_2.
4-7 Variables
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.
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.
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.
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.
• 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.
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:
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.
Information Bar:
Template: Defines the template type (01-99) whose pin arrangement can
accommodate 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).
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:
108
• Create/modify template codes.
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.
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
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.
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-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.
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.
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.
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.
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 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
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.
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-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
• 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).
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.
Each of the columns in the Part Report relates to a specific field in the Part Definition form, as
follows:
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.
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:
124
Each of the columns in the Machine Report relates to a specific field in the Machine Definition
form, as follows:
Preloaded Programs
Program 1 List of Preloaded Programs
Program 2
Program 3
Each of the columns in the Process Report relates to a specific field in the Machine Definition
form, as follows:
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.
Each of the column headings in the ASRS Report relates to a specific field in the Storage Definition
form, as follows:
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).
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.
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)
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).
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.
M Codes
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.
S Code
F Code
N1 G01 Z.5X3 F4; Move to position 0.5, 3.0 at 4 inches per minute
131