Sunday, November 23, 2014

G17-G18-G19 Plane selection

G-Code G17, G18, and G19 plane selection.

Plane selection:
In a CNC programming there are 3 G-codes for plane selection during the NC programming that are used to define the two axes of either X, Y or Z. The plane selection is modal and stays in effect for all until you command another circular plane.

The 3 Plane selection G-Codes are:


G17 for XY Plane
G18 for XZ Plane
G19 for YZ Plane
When machine is powered on, the default for plane selection is G17 for the XY plane. This means that the XY plane is already selected without programming in a G17, so the G17 XY-plane will always be active when you Power On the machine.

G17 XY Plane Selection:

G17 Format:

G17 G02 X_Y_ I_ J_

G17 is the G-code used for selection of XY plane in a CNC programming. In this plane arc is parallel to XY plane and the circular motion is defined as clockwise for the operator looking down onto the XY table from above.

NOTE: In G17 Cutter Compensation can be only applied for X and Y movement but not on Z


Example G17:

O1001                                                            (G17 XY CIRCULAR PLANE)
N170 T1 M06                                                 (1/2 DIA. 4 FLT E.M.)
N171 G90 G54 G00 X4. Y3.25 S2600 M03   (XY start point of arc)
N172 G43 H01 Z0.1 M08
N173 G01 Z-0.375 F50.
N174 G17 G02 X5.25 Y2. R1.25 F10.            (G17 circular motion XY plane)
N175 G00 Z0.1
N176 X5. Y-.25                                               (G17 is the default when you power up machine)
N177 G01 Z-0.375 F50.
N178 X3.25 Y0.8 F10.
N179 Y-.25
N180 G00 Z1.
N181 X-0.25 Y1.
N182 G01 Z-0.375 F50.
N183 G17 G03 X1. Y-0.25 R1.25 F10.          (G17 circular motion XY plane)
N184 G00 Z1. M09
N185 G53 G49 Y0. Z0. M05
N186 M30


G18 XZ CIRCULAR PLANE SELECTION:

G18 Format:

G18 G02 X_Z_ I_ K_


The G18 code is used for doing circular motion in the XZ Plane. In G18 arc is parallel to XZ plane. In these diagrams shown here you need to look at the circular direction as if you're standing at the back of the machine looking toward the spindle, for the G02 clockwise and G03 counter clockwise directions in the G18 XZ circular plane.

NOTE: In G18 Cutter Compensation can be only applied for X and Z movement but not on Y

Example G18  ZX CIRCULAR PLANE SELECTION)

N171 T13 M06                                                   (1/2 DIA. 2 FLT BALL E.M.)
N172 G90 G54 G17 G00 X1.5 Y0. S2600 M03 (XY start point of arc)
N173 G43 H13 Z0.1 M08
N174 G01 Z0. F20.
N175 M97 P200 L80                                           (Local sub-routine call done 80 times with L80)
N176 G17 G00 Z1. M09                                      (Switch back to G17 XY-plane when done using G18)
N177 G53 G49 Y0. Z0. M05
N178 M30
                     (Local sub-routine N179 called by M97 P200 on line N105, repeated 80 times with L80)
N179 G91 G01 Y-0.01                                        (Local sub-routine N200 called by M97 on line N105)
N180 G90
N181 G18 G02 X3. Z0. R0.75 F12.                     (G18 circular motion ZX plane)
N182 G91 G01 Y-0.01
N183 G90
N184 G18 G03 X1.5 Z0. R0.75 F12.                  (G18 circular motion ZX plane)
N185 M99                                                           (An M99 will cause the program to jump back to the next line after the M97 sub-routine call in the main program.)


G19 YZ CIRCULAR PLANE SELECTION:

G19 Format:

G19 G02 Y_Z_ J_ K_


The G19 code is used for doing circular motion in the YZ plane. In G19 arc is parallel to YZ plane and you need to look at the circular direction as if you're standing on the right side of machine where the machine control is, looking toward the other end, for the G02 clockwise and G03 counter clockwise directions in the G19 YZ circular plane.

NOTE: In G19 Cutter Compensation can be only applied for Y and Z movement but not on X





Example For (G19 YZ CIRCULAR PLANE SELECTION):

N171 T13 M06 (1/2 DIA. 2 FLT BALL E.M.)
N172 G90 G54 G17 G00 X0. Y1.5 S2600 M03 (XY start point of arc)
N173 G43 H13 Z0.1 M08
N174 G01 Z0. F20.
N175 M97 P100 L80 (Local sub-routine call done 80 times with L80)
N176 G17 G00 Z1. M09 (Switch back to G17 XY-plane when finished using G19)
N177 G53 G49 Y0. Z0. M05
N1788 M30
(Local sub-routine N100 called by M97 P100 in line N5, repeated 80 times with L80)
N100 G91 G01 X-0.01
N101 G90
N102 G19 G03 Y3. Z0. R0.75 F12. (G19 circular motion YZ plane)
N103 G91 G01 X-0.01
N104 G90
N105 G19 G02 Y1.5 Z0. R.75 F12. (G19 circular motion YZ plane)
N106 M99 (An M99 will cause the program to jump back to the next line after the M97 sub-routine call in the main program.)





Sunday, November 16, 2014

"What is M-CODE M97, M98 & M99 (Sub Programs or Sub Routines) Mean in CNC Programming"

M-Code M97, M98 and M99 Subprogramming M-Codes

M97 Local Sub-Program Call (P, L):  

M97 is the M-code Used to call a Subprogram with the reference of the line number N within the same program. Pxxxx code is used as a line number to be repeated. Xxxx is the line number in the same program. This is used for the simple program within the program and does not require complication of creating a sub program. A local sub-program must end with an M99. If there is a repetition of the loop of subprogram L count on the M97 line, the sub-program will be repeated L number of times.

M97 Program Format:


M97 Pxxxx Lnn
Whereas,        xxxx is the line number
                        nn is the number of repetitions

Example:


Main program:
O01234 (Program number and Start of main program)
N0001 T02 M06;
N0002 T03
N0003 G54 G90 G00 Z50
...
...
...  (Part program)
...
M97 P0015 L3 (Jumps to line N0015, after the M30, to execute a local sub-program for 3 times)
...         (The M99 at the end of the sub-program will cause it to jump back here.)
...
...
... (Finish part program)
...
M30 (End of main program)
N0015 (Identifies the start of the Local Sub-Program called up by M97 P0015)
...
... (Local sub-program portion of Main program)
...
M99 (Jumps back to the line after local sub-program call in the main program)

M98 Sub-Program Call (P, L):  

M98 is the M-code Used to call a Subprogram with the reference to the separate program created and loaded on the controller. The Pxxxx code is the sub-program number being called; it must be in the same block as the M98. A sub-program must end with an M99 to enter to main program after the subprogram. If there is a repetition of the loop of subprogram L count on the M98 line, the sub-program will be repeated L number of times before continuing to the next block.

M98 Program Format:


M98 Pxxxx Lnn
Whereas,        xxxx is the line number
                        nn is the number of repetitions

Example:

Main program:

O01234 (Program number and Start of main program)
N0001 T02 M06;
N0002 T03
N0003 G54 G90 G00 Z50
...
...
... (Part program)
...
...
M98 P111 (Jumps to program O00111 to execute sub-program)
... (The M99 at the end of the sub-program will jump back here)
...
... (Finish part program)
...
M30 (End of main program)

Sub-program:

O00111 (Identifies the start of a separate sub-program)
...
... (Sub-program portion of part)
...
M99 (Jumps back to the line after the sub-program call in the main program).

M99 End Sub-Program or Return or Loop:

           This M-code is used to end the sub-program.  If M99 is used in the main program, it will cause the program to loop back to the beginning and repeat over and over again without stopping.

Example:


Main program:


O01234
...
... (Complete part program)
...
...
M99 (This will cause the program to jump back to the beginning and repeat itself)
An M99 without a P code at the end of a sub-program will return to the main Program.)

Main program:


O01234
...
... (Part program)
...
M98 P111 (Jumps to program O00111 to run)
... (The M99 at the end of the sub-program will jump back here)
...
... (Finish part)
...
M30 (End of main program)

Sub-program:


O00111 (sub-program number)
...
... (Sub-program portion of part)
...

M99 (Jumps back to the line after the sub-program call)

"What is M-CODES M07, M08 & M09 (Coolant Activation codes) mean in CNC Programing"

M-Code M07, M08 and M09 Coolant activation and deactivation M-codes

M07 Shower Coolant or Flood Coolant:  

In general this M-code activates the Coolant Pump and the coolant is flooded into the machine through the pipes provide near spindle and flow is directed towards the cutting of material by tool. This cools the tool which gets heated by the material cutting forces

Example:

N170 T02 M06                               (Tool change)
N171 T03                                       (Pre Tool)
N172 G54 G90 G0 X10 Y10 Z50  (Z to safety plane)
N173 M07                                      (Coolant ON)
N174 G01 Z1 F50                          (Z motion in Controlled Feed)

M08 Mist Coolant:  

In general this M-code activates the mist Coolant Pump and the coolant is flooded into the machine through the pipes provide near spindle and flow is directed towards the cutting of material by tool. This cools the tool which gets heated by the material cutting forces. The Basic Mist uses the Venturi principle for operation. When air is introduced to a typical unit and the “Air Valve” is open, it passes completely through and is released at the “Nozzle Tip”. The air stream forms a “Venturi”, creating suction that draws coolant from a coolant reservoir to the “Coolant Port” where it joins the air to form a mist spray. The force of the spray is easily regulated by adjusting the “Air Valve” to control both air volume and velocity.

Note: M07 and M08 the optional coolant is automatically turned off before a tool change or a pallet change, and it will automatically restart after a tool change if it was not cancelled prior to a tool change.

Example:

N170 T02 M06                               (Tool change)
N171 T03                                        (Pre Tool)
N172 G54 G90 G0 X10 Y10 Z50   (Z to safety plane)
N173 M08                                       (Coolant ON)
N174 G01 Z1 F50                           (Z motion in Controlled Feed)

M09 Coolant OFF:  

This M-code turns off all the Coolant commands running on the controller. Programmer has to keep in mind not to use M09 while the material cutting is in progress. It must be switched off only when required or at the end of the tool finishes the cutting. 

Example:

N172 G00 Z 50                        (Z Retract to safety plane)
N173 M09                                (Coolant OFF)
N174 M05                                (Spindle OFF)
N174 G91 G28 G0 Z50            (Z to retract Home Position)

Coolant Thru:  

M88 To coolant thru ON and M89 to Coolant thru OFF. these M-codes used for Through-the-spindle coolant in some of the machines, Coolant thru has the Different M-codes on Different machine; please check the machine manual to use in the CNC Programs. Coolant Thru always activates the coolant through the Spindle of the machine and through the Cutting Tool to the cutting surface. Normally this type of coolant to be used only for the tools designed for the thru coolant.

NOTE: Above indicated M-codes are only for some particular machine controllers to activate coolant.


NOTE: Before using any M-Codes for Coolants please refer the Machine user manual since every machine has its own M-codes defined by the machine manufacturer.


NOTE:  Status of the coolant is checked only at the start of a program, so a low coolant condition will not stop a running program.

coolant condition will not stop a running program.

"What is M06 M-code (Tool Change Command) In CNC Programming"

M-Code M06 Automatic Tool Changer code

M06 (Tool Change Command) and Pre Tool:

M06 is the M-code Used in the CNC Program to activate the automatic tool change along which T number called on the program. As soon as the controller reads the T number with M06 it will search the Tool magazine for the T number specified and rotates and brings the tool into the spindle.

Example:  

T02 M06, this Command activate the controller to change the tool to T02, so the controller searches the Tool magazine for tool number 2 and it rotates to the tool change position and then it takes up the Tool number 2 into the spindle.

Pre-tool:  

In Modern CNC Tool machines to save the time pre-tool can be called and kept ready for next tool change in the magazine. As soon as the controlled reads the next block of Tool change, the T number given in program will be detected by the controller and reads the tool number on the magazine to prepare the tool and kept in position of tool change while the current tool is in cutting progress.

Examples:

N170 T02 M06      (Automatic Tool change to Number 2)
N171 T03               (Pre-tool to keep ready in magazine for next)
N172 G54 G90 G00 X10 Y10 Z50 (Origins and safety planes Approach)

Note: Since M06 is the Automatic Tool changer, In the older machine which does not have Tool magazines to store the Tool and the tool has to be manually changed by the operator the M06 will be ineffective in those machine controllers.


Note:  When the program calls for the M06 tool change command, the coolant and the spindle will automatically stopped but the controller if they are active.

"What is M-CODES M03, M04 & M05 (Spindle motion codes) used in CNC PROGAMMING "

M-COde M03 and M04 Spindle Motion M-codes:

M03 (Spindle ON Clockwise Direction):

M03 Is the M-code used in the CNC Program to activate the Spindle along the clockwise Direction with given Spindle speed Specified with the alphabet S.
Example: After the Tool change the spindle (Clockwise direction) is activated using the M03 code with the spindle speed of S1000 means spindle rotation at 1000 RPM.
N170 T6 M06
N171 G54 G90 G00 X10 Y10 Z50 M03 S1000

M04 (Spindle ON Counter Clockwise Direction):

M04 Is the M-code used in the CNC Program to activate the Spindle along the counter clockwise Direction with given Spindle speed Specified with the alphabet S.
Example: After the Tool change the spindle (Counter Clockwise direction) is activated using the M04 code with the spindle speed of S1000 means spindle rotation at 1000 RPM.
N170 T6 M06
N171 G54 G90 G00 X10 Y10 Z50 M04 S1000

Note: M04 is commonly used in the reverse helix tools. For example: Slot cutters with reverse direction of teeth

M05 (Spindle OFF):

M05 is the M-code Used in the CNC Program to stop the Spindle any point of time required on the Program. Remember that once M05 is called in your program see that the tool does not move in the material to take cut until M03 or M04 is called again, it may lead into tool breakage.
Example:
N170 G0Z50                (Retract to Safety)
N171 M05 M09           (Spindle OFF & Coolant OFF)
N172 G91 G28 Z0       (Retract to Z Home Position)

N173 M30                    (End of the Program)

Saturday, November 15, 2014

Why G04 Dwell Command used in CNC Programming

G-Code G04 Dwell Command.

G-CODE FORMAT:  

N_G04 X2.0 (Excluding fixed cycle)
N_G04 P2000 (including fixed cycles)
N_G04 U2.0   (only for lathes)
(1 S= 1000 milliseconds)

 Description:
G04 G-code is a Dwell command which may also call as pause in the program, the time period specified in the program any axis can be stopped without affecting the other commands and functions. Dwell during the cut is mainly used for breaking chips in the drilling and counter boring. Dwell can also be used in turning and boring to eliminate the physical marks left on end of the cutting tool.

Calculating dwell:
Minimum dwell is the time required to complete one revolution of the spindle.   

Minimum Dwell (sec) = 60/r/min

For example, calculating Dwell for 600 spindle revolution, divide 60 by r/min I.e, 60/600=0.1seconds.

Calculating Dwell Sec:
Dwell sec = 60 x N / RPM
Where     60 = Number of minutes.
                N= Number of spindle rotations.
                RPM= current spindle speed.
Example: Dwell sec=60 X 3/600 = 0.3

Calculating Dwell Sec:
Dwell rev = RPM x Dwell sec/ 60

Example: Dwell rev = 600 X 0.3 /60 =3 rev
  
Note:
1.        The G04 code is not a modal g-code.
2.        Dwell command is always completed before the next operation begins.
3.       The actual time specified in dwell is either seconds or milliseconds.
4.       Dwell can also be used in the fixed cycles together with cycle data, not in a separate block.
5.    When using Dwell no axis motion will takes place.
6.      Fixed cycles like G76, G82, G88, and G89 in which dwell can be used.
7.     Cycles like G84 and G74 Dwell can be used only by parameter setting. Example:

Example:

N170 G90 G0 Z5
N171 G82 X12 Y6 R2 Z-4 P300 F100 (Dwell command 0.3 seconds)





Thursday, November 13, 2014

"What is M02 & M30 (Program End) M-CODE in CNC Programming"

M-Code M02-M30 (Program end).

M02 (Program End without program reset):
The M02 code is used to end a program. But the Program won’t reset to the begining of the program for the next cycle. The Operator has to manually reset the program if M02 is used.

M30 (Program End with program reset):

The most common way of ending a program is with an M30. The program will automatically reset to the begin of the program which will give access to the operator to run the next cycle. Using M30 will help operator to save time during mass production. As soon as the program ends he can place the next component and start the next cycle.

Example for M30 and M02:

N170 M05                                (Spindle OFF)
N171 M09                                (Coolant OFF)
N172 G91 G28 X0 Y0 Z0;        (Return to Home Position)
N173 M30 (or M02)                 (End Program and Reset)

Note: Returning completely to the Home position is waste of time during mass productions. So returning the Z to home position is actual practice since any way it will rest for the tool change in the beginning. And move the table near the operator to Fixture the next part as shown in below example.

N170 M05                    (Spindle OFF)
N171 M09                    (Coolant OFF)
N172 G91 G28 Z0;      (Return to Home Position)
N173 G90 X100 Y-100            (Move table near to Operator)

N173 M30 (or M02)     (End Program and Reset)

"What is M00-M01 (Optional stop) M-CODE in CNC Programming"


M-Code M00-M01 (Optional stop):

The M00 code is used to stop a program. When the controller reads M00 in the program, it stops all the axes, spindle, turns off the coolant (including Through Spindle Coolant). In The next block after the M00 will be highlighted when viewed in the program editor so you can insert a comment for operator what to do when M00 Called. For example, comment to clean the chips or check the tool etc. Pressing Cycle Start button will continue program operation from the highlighted block after the operator has confirmed the note inserted.

M01 works the same as M00, except the Optional Stop button the machine control board must be on.
If no Optional Stop button is OFF on the controller board, then the machine will not stop when it reads M01.

NOTE: If anything very Important to stop the machine while program execution it is better to use M00 instead ofM01. Since if operator forgets to put ON the Optional stop Button then also the machine will stop at M00.

Example Program M00:


N170 G0 Z10.0
N171 M05 (Spindle Off)
N172 M00 (Clean the Chips)
N173 M03 S3000 (Turn ON the spindle)

Example Program M01:

N170 T6 M06
N171 G43 H6 (Call Tool Length offset)
N172 M01 (Check the tool for damage) (If operator has put new tool he may not switch ON Optional stop Button)
N173 M03 S3000 (Turn ON the spindle)

APT Command to insert in Your Program = STOP

"How the Block delete Command works on CNC Programming"

"How the Block delete Command works on CNC Programming"

Block delete (/):

Block delete is used in a program by placing a forward slash (/) at the beginning of the line.  It is a useful function which allows the operator to skip the blocks within the program. Block delete will not actually delete the blocks in the program but the block will be still there and those blocks will be ignored by the controller.
Block delete works same as Optional stop M01, so operator has to switch ON the Block delete switch on the control board, so controller will skip the blocks which are marked with forward slash (/) symbol in the beginning of the line or block. If the Operator forgets to Switch ON the Block delete Button then the Blocks marked with forward slash (/) symbol in the beginning of the line or block will be executed normally by the controller.

Example: In the example show below is the same program segment for two similar parts, except the part B has the addition of drilling holes.

Part A:  3 position of drilling holes (With Block delete ON in controller)
Part B:  6 Position of drilling holes. (With Block delete OFF in controller)

Program:

N170 G80 X0 Y10 Z-10 R02 F50
N171 X0 Y20
N172 X0 Y30
/N173 X10 Y10 (Used only for part B)
/N174 X10 Y20 (Used only for part B)
/N175 X10 Y30 (Used only for part B)

N176 M05

A to Z Letter address used on CNC Machining

A to Z Letter address used on CNC Machining


Letter Address
 Description
Refers to



A
 Angular Value about the X-axis. Measured in degrees
 Axis nomenclature



B
 Angular Value about the Y-axis. Measured in degrees
 Axis nomenclature



C
 Angular Value about the Z-axis. Measured in degrees
 Axis nomenclature



D
the tool diameter or radius used for cutter
compensation
Cutter compensation Parameter



E
second feed function
accuracy required when cutting a corner



F
Feed word (code)
Feed words



G
Preparatory word (code)
G-code Words



H
Unassigned/specifying for tool height compensation




I
 Interpolation parameter or thread lead parallel to the X-axis
Circular interpolation and threading



J
 Interpolation parameter or thread lead parallel to the Y-axis
Circular interpolation and threading



K
 Interpolation parameter or thread lead parallel to the Z-axis
Circular interpolation and threading



L
Unassigned




M
Miscellaneous or auxilliary function
Machine Control Codes



N
Sequence number
Program Line numbers



O
 Sequence number for secondary head only
Indicates Program Number



P
P address character is used for a dwell time
Delay of time



Q
character is used in canned cycles
Depth specification



R
used in canned cycles or circular interpolation
 Axis nomenclature



S
Spindle-speed function
 Spindle speed



T
Tool Change function
 Tool function



U
Secondary-motion dimension parallel to X
 Axis nomenclature



V
Secondary-motion dimension parallel to Y
Axis nomenclature



W
Secondary-motion dimension parallel to Z
Axis nomenclature



X
Dimension of Tool movement in X direction
Axis nomenclature



Y
Dimension of Tool movement in Y direction
Axis nomenclature



Z
Dimension of Tool movement in Z direction
Axis nomenclature


ALPHABETICAL ADDRESS CODES

The following is a list of the Address Codes used in programming the Mill.

A -  FOURTH AXIS ROTARY MOTION:

The A address character is used to specify motion for the optional fourth, A- axis, which is angular value about X-axis. It specifies an angle in degrees for the rotary axis. It is always followed by a signed number and up to three fractional decimal positions. If no decimal point is entered, the last digit is assumed to be 1/1000 degrees.

B -  FIFTH AXIS ROTARY MOTION:

The B address character is used to specify motion for the optional fifth, B, axis, which is angular value about Y-axis. It specifies an angle in degrees or the rotary axis. It is always followed by a signed number and up to three fractional decimal positions. If no decimal point is entered, the last digit is assumed to be 1/1000 degrees.

C -  AUXILIARY EXTERNAL ROTARY AXIS:

The C address character is used to specify motion for the optional external sixth, C, axis, which is angular value about Z-axis It, specifies an angle in degrees for the rotary axis. It is always followed by a signed number and up to three fractional decimal positions. If no decimal point is entered, the last digit is assumed to be 1/1000 degrees.

D - TOOL DIAMETER OFFSET SELECTION:

The D address character is used to select the tool diameter or radius used for cutter compensation. The number following must be between 0 and 200 (100 programs on an older machine). The Dnn selects that number offset register that is in the offset display which contains the tool diameter/radius offset amount when using cutter compensation (G41 G42). D00 will cancel cutter compensation so that the tool size is zero and it will cancel any previously defined Dnn.

E -  ENGRAVING FEED RATE / CONTOURING ACCURACY:

The E address character is used, with G187, to select the accuracy required when cutting a corner during high speed machining operations. The range of values possible is 0.0001 to 0.25 for the E code.

F - FEED RATE:

The F address character is used to select the feed rate. It is either in inches per minute with four fractional positions or mm per minute with three fractional positions.

G - PREPARATORY FUNCTIONS (G codes):

The G address character is used to specify the type of operation to occur by the tool in the block containing the G code. The G is followed by a two or three digit number between 0 and 187. Each G code defined in this control is part of a group of G codes.

H - TOOL LENGTH OFFSET SELECTION:

The H address character is used to select the tool length offset entry from the offsets memory. The H is followed by a two digit number between 0 and 200 (100 programs on an older machine). H0 will clear any tool length offset. You must select either G43 or G44 to activate a tool length (H) offsets. The G49 command is the default condition and this command will clear any tool length offsets.

I - CIRCULAR INTERPOLATION / CANNED CYCLE DATA:

The “I” address character is used to specify Interpolation parameter or thread lead parallel to the X-axis. It is defined in inches with four fractional positions or mm with three fractional positions.

J - CIRCULAR INTERPOLATION / CANNED CYCLE DATA:

The J address character is used to specify Interpolation parameter or thread lead parallel to the Y-axis. It is defined in inches with four fractional positions or mm with three fractional positions.

K - CIRCULAR INTERPOLATION / CANNED CYCLE DATA:

The K address character is used to specify Interpolation parameter or thread lead parallel to the Z-axis. It is defined in inches with four fractional positions or mm with three fractional positions.

L - LOOP COUNTS TO REPEAT A COMMAND LINE:

The L address character is used to specify a repeat count for some canned cycles and auxiliary functions. It is followed by a number between 0 and 32767.

M - M-CODE MISCELLANEOUS FUNCTIONS:

The M address character is used to specify an M code. These codes are used to control miscellaneous machine functions.

N - NUMBER OF BLOCK:

The N address character is used to identify or number each block of a program. It is followed by a number between 0 and 99999.

O - PROGRAM NUMBER:

The O address character is used to identify a program. It is followed by a number between 0 and 99999. You can have up to 500 program numbers (200 programs on an older machine) in your List of Programs.

P - DELAY OF TIME / M98 PROGRAM NUMBER Call:

The P address character is used for either a dwell time in seconds with a G04, or in canned cycles G82, G83, G86, G88, G89 and G73. When used as a dwell time, it is defined as a positive decimal value between 0.001 and 1000.0 in seconds. When ‘P” is used to search for a program number with an M98, or for a program number block in an M97. When P is used in a M97 or M98 the P value is a positive number with no decimal point up to 99999.

Q - CANNED CYCLE OPTIONAL DATA:

The Q address character is used in canned cycles and is always a positive number in inches between 0.001 and 100.0.

R - CIRCULAR INTERPOLATION / CANNED CYCLE DATA:

The R address character is used in canned cycles or circular interpolation. It's either in inches with four fractional positions or mm with three fractional positions. It is followed by number in inches or metric. It's usually used to define the reference plane for canned cycles.

S - SPINDLE SPEED COMMAND:

The S address character is used to specify the spindle speed; The S is followed by an unsigned number between 1 - 99999. The S command sets the desired speed.

T - TOOL SELECTION CODE:

The T address character is used to select the tool for the next tool change. The number following must be a positive number between 1 and (20) the number in Parameter 65.

U - AUXILIARY EXTERNAL LINEAR AXIS:

The U address character is used to specify motion for the optional external linear, U-axis.
It specifies a position of motion in inches. It is always followed by a signed number and up to four fractional decimal positions. If no decimal point is entered, the last digit is assumed to be 1/10000 inches. The smallest magnitude is 0.0001 inches, the most negative value is -8380.0000 inches, and the largest number is 8380.0000 inches.

V - AUXILIARY EXTERNAL LINEAR AXIS:

The V address character is used to specify motion for the optional external linear, V-axis.
It specifies a position of motion in inches. It is always followed by a signed number and up to four fractional decimal positions. If no decimal point is entered, the last digit is assumed to be 1/10000 inches.

W - AUXILIARY EXTERNAL LINEAR AXIS:

The W address character is used to specify motion for the optional external linear, W-axis.
It specifies a position of motion in inches. It is always followed by a signed number and up to four fractional decimal positions. If no decimal point is entered, the last digit is assumed to be 1/10000 inches.

X - LINEAR X-AXIS MOTION:

The X address character is used to specify motion for the X-axis. It specifies a position or distance along the X-axis. It is either in inches with four fractional positions or mm with three fractional positions. It is followed by a signed number in inches or metric. If no decimal point is entered, the last digit is assumed to be 1/10000 inches or 1/1000 mm.

Y - LINEAR Y-AXIS MOTION:

The Y address character is used to specify motion for the Y-axis. It specifies a position or distance along the Y-axis. It is either in inches with four fractional positions or mm with three fractional positions. It is followed by a signed number in inches or metric. If no decimal point is entered, the last digit is assumed to be 1/10000 inches or 1/1000 mm.

Z - LINEAR Z-AXIS MOTION:

The Z address character is used to specify motion for the Z-axis. It specifies a position or distance along the Z-axis. It is either in inches with four fractional positions or mm with three fractional positions. It is followed by a signed number in inches or metric. If no decimal point is entered, the last digit is assumed to be 1/10000 inches or 1/1000 mm.