Manufacturing Technology (ME461) Lecture14
Embed Size (px)
Transcript of Manufacturing Technology (ME461) Lecture14
Manufacturing Technology (ME461)
Instructor: Shantanu Bhattacharya
Review of Previous Lectures
• Importance of computers in manufacturing systems.
• Metal cutting machines.
• Numerically controlled machines.
• Open loop and closed loop control.
• Programming of NC machines.
• Axis of motion and sign conventions.
Basic of NC program • What moves?
1. Machining is achieved by digging the tool into the workpiece and causing relative motion between the two.
2. For some machines the tool undergoes a primary motion, whereas for some others the work-piece undergoes the primary motion.
3. When writing a part program it is always assumed that the tool undergoes the primary motion.
4. Thus the part programmer does not have to remember which element moves for which machine.
5. It is easier for the programmer to visualize motion of the tool relative to work-piece during the programming stage.
6. If it is indeed the tool that moves relative to the work-piece, such as in turning operations, the motions programmed are the motions that actually take place.
7. If it is the work-piece that moves relative to the tool, such as in milling, the programmed motions have to be translated internally by the MCU to cause the work-piece to move in such a way as to achieve the equivalent relative motion that was programmed for the tool.
Basics of NC program • Where is the tool? 1. The NC part program includes, among other things, commands that move
the tool to various locations relative to the work-piece. 2. To be able to specify the required tool positions, some reference point is
required. 3. This reference point, used within the program as the basis of defining tool
location and other geometric entities, is referred to as origin. 4. The MCU keeps track of current tool location relative to the origin. 5. The tool itself is defined as a point. For single tooth cutting tools such as
those used in turning, the point defining the tool corresponds to the location of the cutting tip of the tool.
6. For multiple teeth tools such as drills and milling cutters, the point defining the tool is the center of the cutter.
7. In a given program the origin is usually a point determined by the programmer. Generally, the programmer assumes that at the beginning of the program, the tool is located at some specific point wrt the workpiece, which is considered as the origin.
Basics of NC program
• Where is the tool?
8. In practice, during setup and before any programmed motion, the machine operator has to move the tool to the position designated by the programmer as the origin and then depress a special button on the control panel that zeros the axis counters in the MCU.
9. Thus, a zero location is set that serves as the origin for the program because the designated point could be anywhere within the machine’s range of travel, this is called floating zero.
10. In defining the motion of the tool from one point to another, either absolute positioning mode or incremental positioning mode can be used.
Basics of NC program 1. Absolute positioning mode: • In this mode, the desired target position of the tool for a
particular move is given relative to the origin point of the program.
• Because the MCU always keeps track of the current location of the tool, it is a simple matter for it to calculate the actual distance and direction of motion required to go from the current location to the target.
• This approach however is more demanding of the programmer, who has to determine the absolute coordinates of the target points, which may involve many calculations.
Basics of NC program 2. Incremental Positioning:
• In this mode, the next target position for the tool is given relative to the current tool position.
• In many cases, this is easier for the programmer.
• The task of calculating absolute tool position is left to the controller, which continues to keep track of the actual tool location at any instant.
• With this approach, however, it is critical for the programmer to ensure that the final tool position at the end of the program is identical to the initial tool position.
• Modal and Non modal commands: 1. Commands issued in the NC program may stay in effect
indefinitely (until they explicitly canceled or changed by some other command), or they may be effective for only the one time that they are issued. The former are referred as Modal commands. Examples include feed rate selection and coolant selection.
2. Commands that are effective only when issued and whose effects are lost for subsequent commands are referred to as non-modal commands. A dwell command, which instructs the tool to remain in a given configuration for a given amount of time, is an example of a non-modal command.
Basics of NC program
Structure of an NC part program • An NC part program is made up of a series of commands that are input into the MCU
in a serial manner.
• The MCU interprets these commands and generates the necessary signals to each of the drive units of the machine to accomplish the required action.
• The NC program is required to have a particular structure that the controller can understand and it must follow a specific syntax.
• Commands are inputs into the controller in units called blocks or statements.
• Each block is made up of one or more machine commands.
• In general, several commands are grouped together to accomplish a specific machining operation, hence the use of a block of information for each operation.
• Each command gives a specific element of control data, such as dimension or a feed rate. Each command within a block is also called a word.
• The way in which words are arranged within the block is called block format.
• Three different block formats are commonly used, (Fixed sequential format, Tab sequential format and Word address format)
• This was the earliest block format used for NC machines and it spawned the name numerical control because in this format only numbers are used.
• With this format each block in the program consists of exactly the same number of words, entered in a specified sequence and each work consists of a fixed no. of data characters. The data characters have positive and negative signs and are interpreted according to their location.
• Characters cannot be added or deleted as this might change the meaning of the Code. Every word must be represented even if the word has zero characters. This frequently results in using unnecessary information and long codes.
Fixed Sequential Format
0050 00 +0025400 +0012500 +0000000 0000 00 0060 01 +0025400 +0012500 -0010000 0500 08 0070 01 +0025400 +0012500 +0000000 0500 09
Exhibit 6.1 Fixed Sequential Format
Fixed Sequential Format
0050 00 +0025400 +0012500 +0000000 0000 00 0060 01 +0025400 +0012500 -0010000 0500 08 0070 01 +0025400 +0012500 +0000000 0500 09
Exhibit 6.1 Fixed Sequential Format
Meaning: (1)Using a rapid feed rate, the tool is positioned at the coordinate location (25.4, 12.5,0). (2)The tool is then advanced -10 units in the z-direction at a feed rate of 500 mm/min, with the flood coolant on. (3)The tool is then retracted back 10 units at the rapid feed rate, and the coolant is turned off.
The corresponding motions are shown in the figure on the left. With the zero datum assumed to be 0.5 units above the surface of the part, these commands have the effect of drilling a through hole in a workpiece material 9 units thick.
Tab Sequential Format
• This format is essentially the same as the fixed sequential format. The difference is that each word within a block is preceded by a Tab character.
• The main improvement over fixed sequential format is that the Tab character for a specified word need not be followed by a numeric data if data are not required in that particular block or they are modal data.
• The Tab character indicates a beginning of a new word but does not specify which type of word; therefore the sequence of the words remain significant.
• Exhibit 6.2 is a repetition of the program represented in Exhibit 6.1 but written in the Tab sequential format.
Word Sequential Format
• This is the format that is used on virtually all modern controllers and will be explained in greater detail.
• With this type of format, each type of word is assigned as address that is identified by a letter code within the part program.
• Thus the letter code specifies the type of word that follows and then its associated numeric data is given.
• For example, the code T represents a tool number. Thus a word of the form T01 would represent tool number 1.
• Theoretically, with this approach, the words in a given block can be entered in any sequence and the controller should be able to interpret them correctly.
Word Sequential Format
• With the word address format only the needed words for a given operation have to be included within the block.
• The command to which the particular numeric data applies is identified by the preceding address code.
• Word format has the advantage of having more than one particular command in one block something that would be impossible in the other two formats.
• The table on the right shows the various commands used.
Word Address Format • The American National Standards institute (ANSI) has established a
standard method of specifying word address data for any controller, which has been adopted by most manufacturers. A typical specification might look as follows:
• Within the specification, a letter identifies a specific type of word as in Table . A + symbol after the letter indicates that sign is significant for the associated numeric data.
• Generally, a positive sign is assumed if numeric data have no sign specified. If one numeral follows the letter, the data for that word are of integer form with upto the number of digits specified by the numeral.
• If the letter (and the associated sign wherever applicable) is followed by two numerals, the data for that word are real numbers.
• The decimal point is not to be programmed explicitly; its position is inferred by counting the number of digits in the actual data associated with the word, counting from the right.
• The second numeral in the specification gives the number of digits to count in the data before the decimal point.
Word Address Format
• So for the sample specification just given we have:
1. N word can have up to four integer digits with no associated signs.
2. G word can have upto two integer digits with no associated signs.
3. X word can have upto seven real digits, which may be positive or negative. The decimal point which is not explicitly entered is assumed to be three digits from the right, and there can be upto four digits to the left of the decimal point in metric format.
4. F script can have upto four real digits, which may be positive or negative. The decimal point, which is not explicitly entered, is in the rightmost position and there can be upto four digits to the left of the decimal points.
5. I word can have upto seven real digits with no associated signs. The decimal point, which is not explicitly entered, is assumed to be three digits from the right, and there can be upto four digits to the left of the decimal point in metric format.
Fundamentals of NC part programming
• The first step in writing an NC part program is to determine and organize the data that will be used within the program.
• A fully coded NC part program generally consists of five broad categories or classes of command. These are the following:
1. Preparatory functions: These are used to inform the MCU of the requirements for the machining that is to be carried out and thus to establish the necessary operating conditions.
2. Axis motion commands: These are used to control the amount of relative motion between the cutting tool and workpiece along each machine axis.
3. Feed and speed commands: These are used to set and control the cutting conditions for individual machining operations.
4. Identification commands: These are used to identify specific entities in the program, such as cutting tools used.
5. Miscellaneous Commands: These are used to control various other aspects of the machine’s operation not addressed elsewhere, such as turning the spindle on and off and changing tools.
Preparatory Functions • Preparatory functions form the largest class of commands used in
• They are identified by the word address letter ‘G’ followed by two digits.
• The digits specify the particular type of function.
• The combination is referred to as a ‘G’ code.
• In general preparatory functions have the effect of making the MCU assume specific operating conditions or command the controller to perform the next task in a particular manner.
• Preparatory functions generally take effect before execution of other commands within the block in which the function is programmed.
• It is usually permissible to program more than one preparatory word in a block provided the words do not have a conflicting effects.
Preparatory functions • Most preparatory functions are modal. Efforts have
been made to standardize NC commands and the table below show some widely used standard ‘G’ codes. There are about 97 ‘G’ codes that are used which go upto 99 in special controllers.
• However, not all ‘G’ codes are used in all machines and there are limitations offered by the manufacturer, machine make etc.
Explanation of Some Commonly Used G-Codes • G00 is a preparatory function to specify that the tool should be moved to a
• This function is used only to control the final position of the tool and is not concerned with the path that is followed in arriving at the final destination.
• For this reason, motion with this function is also referred to as positioning mode.
• The way this code is implemented in most controllers is that all axes that need to be moved in order to get to the target point are moved simultaneously at the beginning of the motion, with each axis being moved at maximum speed.
•As an example for motion that occurs in x-y plane with the same maximum speed for the x and y-axes, initial motion is at an angle of 45 deg. to the axes until motion in one of the axis is completed and then the balance of motion occurs in the other axis. This is called point to point motion generally used for tool positioning. See Fig.
Commonly used ‘G’ codes • G02 is also a preparatory function to specify that the tool should be moved to
a specified location.
• It differs from the G00 and G01 functions in that in this case the path followed by the tool in moving to the target point is required to be a circular arc, starting from the current tool position, moving in a clockwise direction, and ending at the target position.
• Within the block in which G02 code is programmed, the center of the arc is given by specifying its location relative to the start of the arc.
• An appropriate combination of I,J and K words is used to specify the location of the center of the arc relative to the start of the arc.
• In this case, the motion in more than one axes is always involved and the MCU coordinates the simultaneous motions to generate the circular path. •A restriction imposed by this command is that this interpolation can only be on one quadrant formed by the intersection of axes of the coordinate system and the maximum angle of the arc is 90 deg.
Canned Cycles • Some sequences of machining operations are used so frequently with the
different machines and different components that they have a standardized and assigned special preparatory functions. For example a simple hole drilling operation involves the following sequence of operations:
1. Position the tool just above the point where the hole is to be drilled.
2. Set the correct spindle speed.
3. Feed the tool into the workpiece at a controlled feed rate to a predetermined depth.
4. Retract the tool at a rapid rate to just above the point where the hole started.
• The same sequence of operations is repeated for any simple drilling operation regardless of the machine used. The sequence of operations would require several blocks of code if each motion were programmed individually.
• However, a special drilling cycle code (G81) has been developed. By using the G81 preparatory function, the programmer achieves the same effect in only one block.
• The location and depth of the hole to be drilled, speed and feed to be used, and height above the part surface for positioning before and after drilling are all specified in the block.
List of Canned Cycles
The effect of any one of these canned cycles is cancelled by programming a G80 function.
Axis Motion Commands • Axis motion commands are used to specify the axes that are required to
move during the execution of a given command.
• They are made up of a letter specifying an axis such as x, followed by dimensional information associated with the motion of the axis in question.
• The X,Y, and Z commands, respectively, specify the motion of the cartesian coordinates themselves; I,J and K values specify the offset relative to x,y,and z axes.
• Some controllers support the use of polar coordinates, in which case R and A axes are used to specify the radial and angular directions, respectively.
• The dimensional data associated with an axis command can represent absolute dimensions (if G90 was specified) or they may be incremental values (if G91 was specified)
• The dimensional data associated with the axis commands consists of real numbers that may or may not have a sign associated with them.
• An important point to remember is that the axis commands guide the motion of the point defining the tool position. For some operations, such as profile milling, the periphery of the cutter moves along the surface to be machined, rather than the tool-point (i.e., center of the cutter)
Axis motion commands • Thus the actual motion of the tool has to be along a path different
from the geometry of the machined surface. This difference is called a tool offset which the programmer has to consider when writing the program.
• Most modern controllers can be programmed using an offset tool by applying a compensation factor called cutter compensation.
• With this approach one the offset between the tool point and the machined surface is specified, the tool motion can be programmed as if the tool point followed the actual machined surface.
• The controller adjusts internally for the difference in the actual path followed by the tool point.
• Cutter compensation is programmed using G41 and G42 codes and cancelled using G40 code.
Feed and speed commands • Feed and speed commands are used to specify the feed rate
and speed to use during the machining operation.
• The feed command is specified by the address script ‘F’ followed by the numerical value of the feed rate required; the speed command is specified by the address word ‘S’ followed by the required speed.
• The feed rate and the speed used during the machining are of crucial importance in determining how long it will take to make a part.
• The units for cutting conditions can be specified in a variety of ways in the NC program. The feed rate may be specified directly in units/ min. or units/rev., where the units may be in inches or millimeters.
• The preparatory functions G92-G98 are used to designate how the cutting conditions are to be specified.
Identification commands • Identification commands are used within a NC program for the simple task of being able
to identify certain entities within the program.
• The ‘N’ word is the most widely used identification command and it is used to identify individual blocks within the program.
• The identification data in this case consist of integer numbers written in a format given as part of the machine specification.
• Usually three or four digits are used and leading or trailing zeros are not suppressed.
• The ‘N’ word is purely for the convenience of human writing or using the program, so that they can distinguish between the various blocks in the program.
• The MCU itself does not use the data contained in the ‘N’ word.
• Because the controller does not use the block identification data, it is not strictly necessary to number the blocks in any particular order.
• However, for the convenience of the human users, blocks are generally numbered in ascending order, with increments of 5 or 10 between consecutive blocks.
• The reason for having increments of 5 or 10 is that, when necessary, additional blocks may be inserted in the program while maintaining the generally ascending order in which blocks are numbered.
Identification Commands • The other widely used command is the ‘T’ word.
• This is used to identify individual cutting tools used within the program.
• For most components, more than one tool is needed to complete the machining operations needed to make the part.
• For many NC machines, multi-station tool turret or tool magazines housing several cutting tools are used.
• The programmer uses the ‘T’ word to specify to the controller regarding the various tools available should be used for a particular machining operation.
• The format of ‘T’ word usually consists of two unsigned digits after ‘T’.
• Other identification commands are used to identify special sections of the part program, such as loops and macros, that can be executed more than once during the running of the program.
Miscellaneous Commands • Miscellaneous commands are used to control a variety
of machine functions that are not covered by the other commands.
• The address word ‘M’ followed by two unsigned digits is used to specify miscellaneous commands.
• Examples of functions controlled by miscellaneous commands are turning the spindle on and off, turning coolant on and off, initiating a tool change, clamping and unclamping the work-piece interrupting and restarting program execution, stopping the program and rewinding the program.
• Generally, miscellaneous commands take effect after execution of the other commands in the block in which they are programmed.
• It is usually permissible to program more than one miscellaneous command in a given block provided they do not have conflicting effects.
• Many of the ‘M’ codes have been assigned standardized functions. Some ‘M’ codes are given in the table :
Special Characters • In addition to the commands outlined in the preceding pages, certain special characters are used in NC part programs to achieve special effects. •Some of these special characters are used with all controllers, but others are particular to specific controllers. •These characters include the % sign, common to all controllers, which is used as the first line of the NC program. •The character signals the controller when the beginning of the program has been reached during a rewind of the program, an end of block character is used at the end of each block of the program. •This special character is produced by hit of a carriage return on a keyboard. •The character itself does not print when the program is printed. •During coding , the end-of-block is frequently represented by * symbol or the letters EOB.
Example of NC code Write an NC program to machine a ½ in. wide L-shaped slot in a mild steel workpiece with dimensions 3X2.5X0.75 in as shown in Figure:
Assumptions: 1. The top lower left corner will be used for program zero. 2. Machining motion will start in the indicated position. 3. The tool is ¼ in. above the top surface of the part prior to start of machining. 4. The tool diameter used is ½ in., so only one pass is required. 5. A cutting speed of 500 rpm and feed rate of 10in./ min are used for machining. 6. Machine specification: N3G2X + 43Y + 43Z+ 43R+ 43F4S4T2M2
Example of NC Code
Example problem of NC Code