User Manual FADAL

Download as pdf or txt
Download as pdf or txt
You are on page 1of 583

Fadal User Manual

Table of Contents

Table of Contents ........................................................................................................ i

Summary ...................................................................................................................... 1
NC Word Summary ...................................................................................... 1
G Codes ..................................................................................................... 2
Default Status ............................................................................................. 5
M Functions ................................................................................................ 6
Program Tape Input ..................................................................................... 9
Program Numbers, Protection & Storage ........................................................ 10
Program Protection ....................................................................................... 11
Format Classification Sheet ........................................................................... 14

M Functions ................................................................................................................. 21
M0 Program Stop ........................................................................................ 21
M1 Optional Program Stop ............................................................................ 22
M2 End of Program (Format 1) .................................................................. 22
M2 End of Program (Format 2) .................................................................. 22
M3 Spindle CW ............................................................................................ 23
M3.1 Sub-Spindle On, Ignore Magnet ............................................................. 23
M3.2 Acknowledge Spindle Magnet ................................................................ 23
M4 Spindle CCW .......................................................................................... 24
M4.1 Sub-Spindle On, Ignore Magnet ............................................................. 24
M4.2 Acknowledge Spindle Magnet ................................................................ 24
M5 Spindle Off ............................................................................................ 24
M6 Tool Change .......................................................................................... 25
M7 Coolant One On ...................................................................................... 26
M7.1 Programmable Coolant On .................................................................... 27
M8Coolant Two On ...................................................................................... 27
M8.1Programmable Coolant On ..................................................................... 27
M9 Coolant Off ............................................................................................. 28
M10 Cancel Reciprocation ............................................................................. 28
M11 X Axis Reciprocation .............................................................................. 28
M12-M16 Reciprocation for Y, Z, B, A ............................................................. 29
M17 End of Subroutine ................................................................................. 29
M18 Air Ratcheting Indexer ........................................................................... 30
M19 Spindle Stop and Orient ......................................................................... 31
M20 General Purpose Indexer ....................................................................... 31

April 2003 Table of Contents i


Fadal User Manual

M30 End Of All Subroutines (Formats 1&2) ...................................................... 31


M30 End Of Program (Format 2) .................................................................... 32
M31 Exchange Pallets ................................................................................... 32
M32 Load and Store Pallet A .......................................................................... 33
M32.1 Load Pallet A & Verify Pallet A Has Been Loaded .................................... 33
M33 Store and Load Pallet B .......................................................................... 33
M 33.1 Load Pallet B & Verify Pallet B Has Been Loaded ................................... 34
M41-M43 Belt Drive Range ............................................................................ 34
M45 Execute Fixed Cycle ............................................................................... 34
M46 Positive Approach ................................................................................. 35
M47 Cancel Positive Approach ....................................................................... 35
M48 Potentiometer Controls In ....................................................................... 35
M49 Potentiometer Controls Out .................................................................... 36
M48.1 & M49.1 Servo Coolant Potentiometer Controls In/Out ............................ 36
M48.2 & M49.2 Pallet A Rotary Table Override Potentiometer ............................ 36
M48.3 & M49.3 Pallet B Rotary Table Override Potentiometer ............................ 37
M60 - M69 User Attached Devices .................................................................. 37
M80 Automatic Doors Open ........................................................................... 38
M81 Automatic Doors Close ........................................................................... 38
M90-M93 Gain Setting .................................................................................. 38
M94 Feed Forward Function .......................................................................... 39
M94.1 Feed Forward by Feed Rate Modification ............................................... 40
M94.2 Advanced Feed Forward ..................................................................... 42
M95 Feed Forward Cancel ............................................................................. 44
M95.1 Feed Forward by Feed Rate Modification Cancel ..................................... 44
M95.2 AFF Cancel ........................................................................................ 44
M96 Intersectional Cutter Compensation Canceled (Roll CRC) ............................ 44
M97 Intersectional Cutter Compensation ......................................................... 45
M98 Subprogram (Formats 1 & 2) ............................................................. 45
M99 End Of Subprogram (Formats 1 & 2) ........................................................ 46
M99 Line Jump (Formats 1 & 2) ........................................................... 46

G Codes ........................................................................................................................47
G0 Rapid Travel ........................................................................................... 47
G1 Linear Interpolation .................................................................................. 48
G2 Circular Interpolation Arc Clockwise ........................................................... 48
G3 Circular Interpolation Arc Counterclockwise ................................................. 48
G4 Dwell ..................................................................................................... 48
G5 Non Modal Rapid ..................................................................................... 49
G8 Acceleration (No Feed Ramps) .................................................................. 49
G9 Deceleration (Feed Ramps) ....................................................................... 50
G10 Programmable Data Input ....................................................................... 51
G15 YZ Circular Interpolation With The A Axis ................................................... 54
G17-G19 Plane Selection .............................................................................. 54

ii Table of Contents April 2003


Fadal User Manual

G17.1-G17.2 A/B Word Swap......................................................................... 55


G20 Inch Programming ................................................................................ 55
G21 Metric Programming .............................................................................. 55
G28 Return to Zero ....................................................................................... 55
G28.1 Cancel JOG AWAY .............................................................................. 56
G29 Return from Zero ................................................................................... 56
G31 Probe Touch Function ............................................................................ 57
Storing Probed Positions ............................................................................... 58
G31.1 Probe No Touch Function .................................................................... 59
G40 Cutter Compensation Cancel .................................................................. 59
G41 Cutter Compensation Left ....................................................................... 59
G42 Cutter Compensation Right ..................................................................... 59
G43 Tool Length Compensation Positive ......................................................... 59
G44 Tool Length Compensation Negative ........................................................ 59
G45 Tool Offset Single Expansion .................................................................. 60
G46 Tool Offset Single Reduction ................................................................... 61
G47 Tool Offset Double Expansion ................................................................. 61
G48 Tool Offset Double Reduction .................................................................. 61
G49 Tool Length Offset Cancel ...................................................................... 61
G50 Ramp Control Cancel ............................................................................. 62
G50.1 Mirror Image Cancel ........................................................................... 62
G51 Ramp Control ....................................................................................... 62
G51.1 Mirror Image ...................................................................................... 63
G51.2 Tool Load Compensation (TLC) ............................................................ 64
Canceling G51.2 (TLC) ................................................................................. 65
TLC Manual Target Power Override ................................................................ 65
G51.3 Axis Scaling ....................................................................................... 65
G52 Coordinate System Shift ......................................................................... 66
G53 Machine Coordinate System ................................................................... 67
G54-G59 Fixture Offsets ............................................................................... 68
G66 Modal Subroutine .................................................................................. 68
G67 Cancel Modal Subroutine ....................................................................... 70
G68 Coordinate System Rotation ................................................................... 70
G69 Coordinate System Rotation Cancel ......................................................... 71
G70 Inch Programming ................................................................................ 71
G71 Metric Programming .............................................................................. 71
G73-G76, G81-G89 Fixed Cycles ................................................................... 71
G80 Fixed Cycle Cancel ................................................................................ 71
G90 Absolute Input ...................................................................................... 72
G91 Incremental Input .................................................................................. 72
G91.1 High Speed Execution ......................................................................... 73
G91.2 High Speed Execution Cancel (Format 2 Only) ........................................ 73
G92 Absolute Preset .................................................................................... 73
G93 I/T (Inverse Time) Feed Rate Specification (IPM/inches, DPM/degrees) ......... 74
G94 Feed Rate Specification MMPM, IPM or DPM ............................................. 74

April 2003 Table of Contents iii


Fadal User Manual

G98 Return to Initial Plane .............................................................................. 74

Fixed Cycles .................................................................................................................75


Definition .................................................................................................... 75
Procedure to Initialize a Fixed Cycle ................................................................ 75
I Plane ........................................................................................................ 75
R Plane ....................................................................................................... 76
G 98 Return to I Plane after Final Z .................................................................. 76
G99 Return to R0 Plane after Final Z ............................................................... 76
Cycle Execution ............................................................................................ 76
Fixed Cycle Parameters ................................................................................. 77
Tapping Cycles ............................................................................................ 96

Subroutines & Subprograms .....................................................................................103


Subroutines.................................................................................................. 103
Beginning a Subroutine ................................................................................. 103
Calling a Subroutine ..................................................................................... 103
Ending a Subroutine ..................................................................................... 104
Main Program .............................................................................................. 104
Nesting ....................................................................................................... 105
Parametric Programming .............................................................................. 107
Indefinite Subroutine Repetitions .................................................................... 108
Subprograms .............................................................................................. 108

Fixed Subroutines .......................................................................................................111


Definition .................................................................................................... 111
Engraving .................................................................................................... 111
Bolt Circle .................................................................................................... 118
Mill Boring ................................................................................................... 119
Rectangular Pocket Clean-out ........................................................................ 121
Circular Pocket Clean-out .............................................................................. 124

Keyboard ......................................................................................................................127
Key Lock Switch (Edit Protection) ...................................................... 127
Block Skip Switch ......................................................................................... 127
Optional Stop Switch .................................................................................... 127
Light On/Off Switch ...................................................................................... 127
Video On/Off Switch ...................................................................................... 127
Rapid Travel Selector .................................................................................... 128
Feed Rate Override Potentiometer .................................................................. 128
Spindle Speed Override Potentiometer ............................................................ 129
Jog Key and the Hand Wheel ......................................................................... 129
Shift ........................................................................................................... 129

iv Table of Contents April 2003


Fadal User Manual

Enter .......................................................................................................... 130


Delete ........................................................................................................ 130
Backspace .................................................................................................. 130
Spindle On/Off ............................................................................................ 130
Auto ........................................................................................................... 131
Slide Hold ................................................................................................... 132
Slide Hold, JOG AWAY .................................................................................. 132
External Slide Hold ....................................................................................... 133
Spacebar, Background Editing ....................................................................... 134
Single Step ................................................................................................. 135
Start .......................................................................................................... 135
Emergency Stop .......................................................................................... 136
Manual ....................................................................................................... 136
Coolant-1 (FLOOD) ...................................................................................... 136
Coolant-2 (MIST) ......................................................................................... 136
Turret CW ................................................................................................... 136
Turret CCW ................................................................................................. 136

Commands ................................................................................................................... 137


Auto ........................................................................................................... 138
Backlash .................................................................................................... 139
Change Device ............................................................................................ 139
Change Program ......................................................................................... 140
Command Lock ........................................................................................... 141
Copy Program ............................................................................................. 143
Cold Start ................................................................................................... 143
Display Bucket # .......................................................................................... 144
Delete Blocks .............................................................................................. 144
Display Feed Forward Parameters .................................................................. 144
Display Fixture Offsets .................................................................................. 146
Diagnostics ................................................................................................. 146
Direct Numerical Control ............................................................................... 146
XModem Direct Numerical Control .................................................................. 147
Draw .......................................................................................................... 147
Display Tool Table ....................................................................................... 149
Display Tool Time Table ................................................................................ 150
Display Variable Table Command ................................................................... 151
Fixture Offset ............................................................................................... 151
Home Axis .................................................................................................. 152
Insert Blocks ............................................................................................... 153
Jog Axis ..................................................................................................... 153
Learn Mode ................................................................................................. 153
List Program ............................................................................................... 154
Macro ........................................................................................................ 154

April 2003 Table of Contents v


Fadal User Manual

Manual Data Input ........................................................................................ 154


Memory ...................................................................................................... 155
Menu .......................................................................................................... 155
New Program ............................................................................................... 155
Renumber Program ...................................................................................... 156
Program Page Edit ....................................................................................... 156
Function Menu ............................................................................................. 157
Graphics Menu ............................................................................................. 158
Background Editing ...................................................................................... 158
Dry Run Options ........................................................................................... 158
Offsets ........................................................................................................ 159
Help ........................................................................................................... 160
Program Maintenance Library ........................................................................ 161
Punch Program Tape .................................................................................... 161
Reinitialize ................................................................................................... 163
Set Cold Start .............................................................................................. 163
Set Home Position Of All Axes ........................................................................ 163
Set Home Position For One Axis ..................................................................... 164
Metric Programming ..................................................................................... 164
Inch Programming ........................................................................................ 164
Set System Parameters ................................................................................. 164
Pallet Programming....................................................................................... 165
Programming Formats .................................................................................. 165
Operation Formats ....................................................................................... 169
AXES:X,Y,Z .................................................................................................. 169
DEFAULT: G0 ............................................................................................... 170
DEFAULT: G90 ............................................................................................. 170
DEFAULT: G17 ............................................................................................. 171
RPM FACTOR ............................................................................................... 171
BAUD RATE: 2400 ....................................................................................... 172
TRAVEL ....................................................................................................... 172
Tool Changer Cap ........................................................................................ 173
Timers ........................................................................................................ 173
Spindle Type ............................................................................................... 174
Spindle After M6 .......................................................................................... 174
Pendant ...................................................................................................... 175
Imm. Fixed Cycle .......................................................................................... 175
Orientation Factor ......................................................................................... 176
DEFAULT: INCH ........................................................................................... 176
PU FORMAT ................................................................................................. 177
CRC Mode ................................................................................................... 177
Pallet .......................................................................................................... 178
M7-FLOOD, M8-MIST ................................................................................... 178
Binary Buffers 255 ....................................................................................... 179
Turret Factor ................................................................................................ 180

vi Table of Contents April 2003


Fadal User Manual

Gain ........................................................................................................... 181


3 Phase 5% Low: No .................................................................................... 181
High Torque/Rigid Tap .................................................................................. 182
CMD Menu .................................................................................................. 182
Ramp ......................................................................................................... 183
A-Axis Ratio ................................................................................................ 183
B-Axis Ratio ................................................................................................ 184
M60/A-Axis Brake ........................................................................................ 184
M62/B-Axis Brake ........................................................................................ 185
N-Words Ordered ......................................................................................... 185
Tool Table ................................................................................................... 186
Set Turret Order .......................................................................................... 186
Set Tool Length Offset .................................................................................. 187
Sum Program .............................................................................................. 188
Survey ....................................................................................................... 189
Tape (Program) Input ................................................................................... 190
Tool Changer Open ...................................................................................... 191
Tool Parameter Definition .............................................................................. 191
Tool Loading Procedure ................................................................................ 192
Utility ......................................................................................................... 192
Tape Verification .......................................................................................... 202

Cutter Radius Compensation .................................................................................... 203


Cutter Radius Compensation ......................................................................... 203
G40 - Cancel Cutter Radius Compensation ...................................................... 204
G41 - Climb Cut (cutter left) ........................................................................... 204
G42 - Conventional Cut (cutter right) .............................................................. 204
Climb and Conventional Cutting ..................................................................... 205
The H and the D Word with CRC ..................................................................... 206
Advantages of Climb Cutting ......................................................................... 206
Guidelines for Using CRC .............................................................................. 208
General Rules .............................................................................................. 209
O-Ring Groove Example ................................................................................ 214
Perpendicular Rule ....................................................................................... 215
Fillet Radii and Step Downs ........................................................................... 216
Corner Rounding ......................................................................................... 218
M96 Cancel Intersectional CRC (Rolling) .......................................................... 219
M97 Intersectional CRC ................................................................................ 219
When to use M96 and M97 ........................................................................... 219
CRC & Z Axis Moves ..................................................................................... 220
Applying Compensation with a Z Move ............................................................ 221
Applying Compensation with a Z Move on a Circle ............................................ 223

April 2003 Table of Contents vii


Fadal User Manual

Error Messages ............................................................................................................225


Error Messages ............................................................................................ 225
Axis/Spindle Controller Error Messages ........................................................... 256

Coordinate Systems ....................................................................................................261


Machine Coordinate System .......................................................................... 261
Tooling Coordinate System - Home ................................................................ 261
Fixture Offsets ............................................................................................. 261
Program Coordinate System .......................................................................... 263

Rotary Axes ..................................................................................................................265


A Axis ......................................................................................................... 265
Tilt Rotary Table ........................................................................................... 283

Interpolation ................................................................................................................287
VMC Interpolation Modes ............................................................................... 287
Arc Center ................................................................................................... 290
Arc Direction ................................................................................................ 291
Circle Examples ........................................................................................... 291
Circular Interpolation Using Radius Designation ................................................ 301
Helical Interpolation ...................................................................................... 302
Repeating Helical Moves ............................................................................... 302
Cutter Radius Compensation with Helical Moves ............................................... 306
Partial Arcs and Helical Moves ....................................................................... 307
Thread Milling .............................................................................................. 307

Communications ..........................................................................................................311
Communications .......................................................................................... 311
Commands ................................................................................................. 315
VMC Communications Procedures .................................................................. 322
Device Communications Procedures ............................................................... 324
Tape Punch / Teletype .................................................................................. 325

Touch Probes ...............................................................................................................339


Touch Probes .............................................................................................. 339
Probe Offsets ............................................................................................... 342
Set Touch Point ............................................................................................ 368
Probe Tutorial .............................................................................................. 369
Using the Probe with Macro Statements .......................................................... 371
Fixed Subroutines ........................................................................................ 375

viii Table of Contents April 2003


Fadal User Manual

Command Menus ........................................................................................................ 379


Quick Keys Menu ......................................................................................... 379
Edit Menu ................................................................................................... 382
Function Menu ............................................................................................ 384

Pallet Changer ............................................................................................................. 391


Mechanical Overview .................................................................................... 391
G17.1 - G17.2 A/B Word Swap ...................................................................... 391
M31 Exchange Pallets .................................................................................. 392
M32 Store Pallet B and Load Pallet A .............................................................. 392
M32.1 Store Pallet B & Load Pallet A & Verify Pallet A has been Loaded ............. 392
M33 Store Pallet A and Load Pallet B .............................................................. 392
M33.1 Store Pallet A & Load Pallet B & Verify Pallet B has been Loaded ............. 393
Pallet A Rotary Table & Pallet B Rotary Table Override Potentiometer .................. 393
M48.2 Pallet A Rotary Table Override Potentiometer Enable .............................. 394
M49.2 Pallet A Rotary Table Override Potentiometer Disable ............................. 394
M48.3 Pallet B Rotary Table Override Potentiometer Enable .............................. 394
M49.3 Pallet B Rotary Table Override Potentiometer Disable ............................. 394
Remote Machine Control ............................................................................... 395
Utility Menu ................................................................................................. 395

Macros .......................................................................................................................... 401


Macros and Parametric Programming ............................................................. 401
Mathematical Functions ................................................................................ 406
Variables .................................................................................................... 408
Functions .................................................................................................... 415
Macro Commands ....................................................................................... 417
Macro Tutorial ............................................................................................. 424
Variables .................................................................................................... 425
Operator Interaction ..................................................................................... 427
Program Branching ...................................................................................... 428
AND, OR, and NOT ...................................................................................... 430
FADAL Macro Language Examples ................................................................. 432
Tutorial Program Summaries ......................................................................... 440
Tutorial Program Explanations ....................................................................... 442
Tutorial Program Listings .............................................................................. 458

Miscellaneous .............................................................................................................. 465


Flood Coolant Through the Spindle (Optional) .................................................. 465
Hydro Sweep (Optional) ................................................................................ 466
Automatic Doors (Optional) ........................................................................... 467
Servo Coolant (Optional) ............................................................................... 468
Chip Auger and Wash Down (Optional) ........................................................... 472

April 2003 Table of Contents ix


Fadal User Manual

Dual Arm Tool Changer ................................................................................. 475


Miscellaneous Control Options ....................................................................... 477
Analyzer Software ........................................................................................ 479
CNC88 HS Optional Diskette Drive .................................................................. 481

Graphics .......................................................................................................................485
CNC 88HS Graphics ...................................................................................... 485
Function Menu ............................................................................................. 487
The Function Menu Display ............................................................................ 492

Formats .........................................................................................................................511
Overview ..................................................................................................... 511
Format 1 Programming ................................................................................. 511
Format 2 Programming ................................................................................. 514
Default Parameters, SETP Command .............................................................. 516
Parameters Applicable to FORMAT 2 Only ....................................................... 530

Operation of the TRM ..................................................................................................531


Introduction ................................................................................................. 531

Index .............................................................................................................................1

x Table of Contents April 2003


Fadal User Manual

Section 1: Summary

NC Word Summary
Table 1: NC Word Summary

NC Word
Definition
Summary
A A axis angular motion command (or optional Servo Coolant)
B B axis angular motion command
C C axis angular motion command
D Tool diameter offset
E Fixture offset
F Feed rate, or spindle speed for tapping
G Preparatory function
H Tool length offset or Length and diameter offset for Format 1
I X axis distance to arc center or Initial peck size for drilling (G73 G83) or X axis shift in boring cycle (G76) JY
axis distance to arc center or Reducing value of the initial peck (G73, G83) or Y axis shift in boring cycle (G76)
J Y axis distance to arc center or Reducing value of the initial peck (G73, G83) or Y axis shift in boring cycle
(G76)
K Z axis distance to arc center or Minimum peck size for drilling (G73, G83)
L Subroutine definition or call or Subprogram repeat function (M98) or Programmable data input function (G10)
or Line repeat function or Fixed cycle repetitions
M Machine function code
N Program sequence number
O Program identification number
P Dwell time in milliseconds (G04) or Percentage factor for retracting feed on tapping cycles or Fixture and tool
offset number (G10) or Subprogram number (M98) or Value for R0-R9 (G10) or Sequence/ line number jump
(M99) or Feed distance before peck (G73 G83) or P1 with G17 Q to use B axis during mapping or Angular tol-
erance for Feed Forward
Q Peck size in drill cycles (G73, G83) or Thread lead in tapping cycles (G74, G75, G84) or Diameter for auto-
matic tool diameter override (H99) or Scale factor for Flat Cam programming on the rotary table or Length tol-
erance to ignore Feed Forward
R Subroutine parameter input R0 through R9 R0 Plane for fixed cycle or Radius designation (circular interpola-
tion, G2 & G3) or Tool offset value amount (G10) Parametric Variables R0, R1 - R9
S Spindle speed (RPM)
S.1 Set belt range to low
S.2 Set belt range to high

April 2003 Section 1: Summary 1


Fadal User Manual

Table 1: NC Word Summary (Continued)

NC Word
Definition
Summary
T Tool number selector for turret
V Variables in Macros (V1-V100)
X X axis motion command
Y Y axis motion command
Z Z axis motion command

Table 2: Character Summary

Character Definition
0-9 Numerical digits
A-Z Alphabetical characters
% Program start or end, rewind to start
+ Plus, positive
- Minus, negative
( Comment start (standard NC program), or Engraving text start (L9201 Fixed Subroutine), or Mathematical
operator (Macro Programming)
. Decimal point
, Comma
EOB ENTER key, carriage return / line feed (ASCII 13,10)
* Comment start
/ Optional block skip
: Program identification number (Format 2)
# Macro Line Identification

G Codes

Preparatory Codes are divided into groups or families to distinguish which codes can
Functions function simultaneously in a program. Codes belonging to a similar group
cannot function together. Codes from different families or groups can function
together.

EXAMPLE: N11 G90 G0 G1 X1. F40.


The G0 and G1, from group A, cannot be programmed in the same line
because they are both from the same group. The G90, from group F, can be
with the G0 or the G1, if they were on separate lines, because it is from a
different group.

2 Section 1: Summary April 2003


Fadal User Manual

Exception: A G90 and G91 can appear on the same line. Each will affect the
motion words to the right of the G90 or G91 codes.

EXAMPLE: N14 G90 X5.321 G91 Y.25 G90


The X move will be made in absolute and the Y move will be made in
incremental. The G90 at the end of the line places the machine back in
absolute for the next line of the program.

Modal & Non Modal Modal: These codes remain in effect until modified or canceled by another
Functions modal code with the same group designation code letter.

Non Modal: These codes only affect the line in which they appear and do not
cancel modal codes.

Table 3: G Code Summary Table

Group
Code Modal Non Modal Description
Designation
G0 A Yes - Rapid Travel (Point-to-Point Positioning)
G1 A Yes * see note Linear Interpolation
G2 A Yes * see note Circular Interpolation Clockwise
G3 A Yes * see note Circular Interpolation Counterclockwise
Note: G2 and G3 cancel G0 and remain active until canceled by each other. With G2 or G3 active, a move without I, J, K, or R
is considered linear (G1).
G4 B - Yes Dwell
G5 A - Yes Non Modal Rapid Travel
G8 D Yes - Acceleration (No Feed Ramps)
G9 D Yes - Deceleration (Feed Ramps & In-Position Check)
G10 I - Yes Programmable Data Input
G15 C Yes - YZ Circular plane with simultaneous A axis
G17 C Yes - XY plane selection
G17.1 C* Yes - AB word swap
G17.2 C Yes - AB word swap cancel
G18 C Yes - XZ plane selection
G19 C Yes - YZ plane selection
G20 M - Yes Check parameters for inches mode set in SETP
G21 M - Yes Check parameters for metric mode set in SETP
G28 I - Yes Return to current zero (set home) position
G28.1 I - Yes Return from Jog Away
G29 I - Yes Return from current zero (set home) position
G31 I - Yes Probe touch function (Skip Function)
G31.1 I - Yes Probe no touch function

April 2003 Section 1: Summary 3


Fadal User Manual

Table 3: G Code Summary Table (Continued)

Group
Code Modal Non Modal Description
Designation
G40 D Yes - Cutter compensation canceled
G41 D Yes - Cutter compensation left (climb)
G42 D Yes - Cutter compensation right (conventional)
G43 J Yes - Tool length compensation positive
G44 J Yes - Tool length compensation negative
G45 I - Yes Tool offset single expansion
G46 I - Yes Tool offset single reduction
G47 I - Yes Tool offset double expansion
G48 I - Yes Tool offset double reduction
G49 J Yes - Tool length offset cancel
G50 J Yes - Ramp slope control cancel
G50.1 J Yes - Mirror image cancel
G51 J Yes - Ramp slope control
G51.1 J * Yes - Mirror image
G51.2 J* Yes - Tool Load Compensation
G51.3 J* Yes - Axis Scaling
G52 I Yes - Coordinate system shift
G53 I - Yes Machine coordinate system
G54 O Yes - Fixture offset 1 (E1)
G55 O Yes - Fixture offset 2 (E2)
G56 O Yes - Fixture offset 3 (E3)
G57 O Yes - Fixture offset 4 (E4)
G58 O Yes - Fixture offset 5 (E5)
G59 O Yes - Fixture offset 6 (E6)
G66 C Yes - Modal subroutine
G67 C Yes - Modal subroutine cancel
G68 C Yes - Rotation
G69 C Yes - Rotation cancel
G70 M Yes - Check parameters for inches mode set in SETP
G71 M Yes - Check parameters for metric mode set in SETP
G73 E Yes - Peck drill cycle
G74 E Yes - Left hand tapping with compression holder
G74.1 E Yes - Left hand Rigid tapping
G74.2 E Yes - Prepare for Left hand Rigid tapping (optional)
G75 E Yes - Tapping cycle with self-reversing head

4 Section 1: Summary April 2003


Fadal User Manual

Table 3: G Code Summary Table (Continued)

Group
Code Modal Non Modal Description
Designation
G76 E Yes - Fine bore cycle
G80 E Yes - Fixed cycle cancel
G81 E Yes - Spot drill cycle
G82 E Yes - Counter bore cycle
G83 E Yes - Deep hole drill cycle
G84 E Yes - Right hand tapping with compression holder
G84.1 E Yes - Right hand Rigid tapping
G84.2 E Yes - Prepare for Right hand Rigid tapping (optional)
G85 E Yes - Bore in, Bore out
G86 E Yes - Bore in, Spindle off, Rapid out
G87 E Yes - Bore in, Bore out
G88 E Yes - Bore in, Dwell, Bore out
G89 E Yes - Bore in, Dwell, Bore out
G90 F Yes - Absolute programming
G91 F Yes - Incremental programming
G91.1 P Yes - High speed execution
G91.2 P Yes - High speed execution cancel (Format 2 only)
G92 I Yes - Programmed coordinate system preset
G93 K Yes - Rotary axis 1/T feed rate specification
G94 K Yes - Rotary axis DPM, IPM feed rate specification
G98 G Yes - Return to initial plane after final Z
G99 G Yes - Return to R0 plane after final Z
* Modal Code but not cancelled by similar group designation.

Default Status The codes below are the default codes utilized by the control. They are in effect
at power on, the beginning of program execution, when entering MDI, and after
M2.

Reset Format 1 will default to this status automatically. Format 2 will use this default
status after the HO command is used. Use HO like a reset button when in the
Format 2 mode. By typing the command HO then pressing the enter button,
the control will go into the WAITING stage. At this point the control is reset. If it
is desired to move to home, press the START button, if not, press the MANUAL

April 2003 Section 1: Summary 5


Fadal User Manual

button. The SU (Sum) command will reset and use the default status from the
SETP parameters in both format 1 and 2.

Table 4: Default G Codes

G/M code At beginning of program, upon entering MDI, after M2 By reset only
G0 - P 1 2
G1 - P 1 2
G8 Format 2 2 (Unless G9 is used in Auto - Then by reset)
G9 Format 1 1
G17 - P 1 2
G18 - P 1 2
G19 - P 1 2
G40 1&2
G49 1 2
G50 1 2
G80 1 2
G67 1&2
G69 1 2
G98 1
M5 1&2
M9 1&2
M10 1&2
M47 1 2
M48 1 2
M96 - P 1&2
M97 - P 1&2

Note: The 1 indicates the code is in effect in Format 1. The 2 indicates the
code is in effect in Format 2. The P indicates that these codes may be
established by the parameters established with the SETP command.

M Functions

Modal These codes remain in effect until canceled by another modal code.

Non Modal These codes only affect the line in which they appear and do not cancel modal
codes.

Note: Some M Functions start with motion commanded in a line. Some M


Functions start after motion has been completed.

6 Section 1: Summary April 2003


Fadal User Manual

Note: For M60 through M64 only, the use of a minus sign before the number
(M-60) will cause the function to occur after motion. This allows the rotary
motion and brake application prior to any fixed cycle execution.

Table 5: M Function Summary Table


Starts with Starts after Non
Code Modal Description
Motion Motion Modal
M0 - Yes - Yes Program stop
M1 - Yes - Yes Optional program stop
M2 - Yes - Yes End of program
M3 Yes - Yes - Spindle on clockwise
M3.1 Yes - Yes - Sub-Spindle on clockwise
M3.2 Yes - Yes - Return to Main Spindle
M4 Yes - Yes - Spindle on counterclockwise
M4.1 Yes - Yes - Sub-Spindle on counterclockwise
M4.2 Yes - Yes - Return to Main Spindle
M5 - Yes Yes - Spindle (and Sub-Spindle) stop
M6 - Yes - Yes Tool change
M7 Yes - Yes - Coolant 1 on
M7.1 Yes - Yes - Servo Coolant 1 on
M8 Yes - Yes - Coolant 2 on
M8.1 Yes - Yes - Servo Coolant 2 on
M9 - Yes Yes - Coolant / Servo Coolant 1 & 2 off
M10 Yes - Yes - Reciprocation cancel
M11 Yes - Yes - Reciprocate X axis
M12 Yes - Yes - Reciprocate Y axis
M13 Yes - Yes - Reciprocate Z axis
M14 Yes - Yes - Reciprocate A axis
M15 Yes - Yes - Reciprocate B axis
M16 Yes - Yes - Reciprocate C axis (VMC45 only)
M17 - - - Yes End of subroutine (see M30)
M18 Yes - - Yes Cushman® or Erickson® indexer next step
M19 Yes - - Yes Spindle orient & lock
M20 Yes - - Yes General purpose indexer next step or Auto. Doors Close
M30 - - - Yes End of all subroutines (see M17) or End of program (Format
2)
M31 - - - Yes Exchange Pallets
M32 - - - Yes Store and Load Pallet A
M32.1 - - - Yes Store and Load Pallet A - Test
M33 - - - Yes Store and Load Pallet B

April 2003 Section 1: Summary 7


Fadal User Manual

Table 5: M Function Summary Table (Continued)


Starts with Starts after Non
Code Modal Description
Motion Motion Modal
M33.1 - - - Yes Store and Load Pallet B - Test
M41 - - Yes - Low RPM range
M42 - - Yes - High RPM range Auto Hi/Low
M43 - - Yes - High RPM range Manual change
M45 - - - Yes Execute fixed cycle
M46 - Yes Yes - Positive approach activate
M47 - Yes Yes - Positive approach cancel
M48 Yes - Yes - Potentiometer control on
M48.1 Yes - Yes - Servo coolant override Pot on
M48.2 Yes - Yes - Pallet A Rotary override Pot on
M48.3 Yes - Yes - Pallet B Rotary override Pot on
M49 Yes - Yes - Potentiometer control off
M49.1 Yes - Yes - Servo coolant override Pot off
M49.2 Yes - Yes - Pallet A rotary override Pot off
M49.3 Yes - Yes - Pallet B rotary override Pot off
M60 - Yes - Yes A Axis Brake On
M61 - Yes Yes - A Axis Brake Off
M62 - Yes - Yes B Axis Brake On
M63 - Yes Yes - B Axis Brake Off
M64 - - Yes - Activate MP8 Probe
with M66 - Activate MP12 Probe
with M67 - Activate Laser Probe
M65 - - Yes - Activate TS-20, TS-27 Probe
M66 - - Yes - User Attached Device
M67 - - Yes - User Attached Device
M68 - - Yes - User Attached Device
M69 - - Yes - User Attached Device
M80 - - - Yes Automatic Doors Open
M81 - - - Yes Automatic Doors Close (Optional)
M90 Yes - Yes - Default Gain Setting
M91 Yes - Yes - Normal Gain Setting
M92 Yes - Yes - Intermediate Gain Setting
M93 Yes - Yes - High Gain Setting
M94 Yes - Yes - Feed Forward Function
M94.1 Yes - Yes - Feed Rate Modification
M94.2 Yes - Yes - Advanced Feed Forward (Optional)

8 Section 1: Summary April 2003


Fadal User Manual

Table 5: M Function Summary Table (Continued)


Starts with Starts after Non
Code Modal Description
Motion Motion Modal
M95 Yes - - Yes Feed Forward Cancel
M95.1 Yes - - Yes Feed Rate Modification Cancel
M95.2 Yes - - Yes Advanced Feed Forward Cancel
M96 Yes - Yes - Intersectional CRC Cancel
M97 Yes - Yes - Intersectional CRC
M98 - - - Yes Execute subprogram
M99 - - - Yes End of subprogram or Line jump

Program Tape Input The following is an example of the input format the control reads from a paper
tape or computer file:

%
N0.001 O100 (DRILL PROGRAM
N1 M6 T1
N2 (TOOL #1 CENTER DRILL
N3 G0 G90 S10000 M3 E1 X1. Y2.
N4 H1 M7 Z.1
N5 G73 G99 R0+.1 Z-.75 F25. Q.1 X1. Y2.
N6 X2.
N7 Y1.
N8 M5 M9 G80
N9 G90 G0 H0 Z0
N10 E0 X0 Y0
N11 M2
%

The first “%” character signals the start of data. The CNC data follows the first
percent character. The second “%” character signals the end of the program.

Acceptable character code sets are:

1) EIA RS-358-B

2) EIA RS-244-B

3) ASCII

April 2003 Section 1: Summary 9


Fadal User Manual

To send data to the VMC the procedure is as follows:

1) Use the Change Device (CD, __ ) command to establish the proper baud
rate (see Baud Rate).

2) Enter the TA,1 command at the VMC.

3) Start reading the paper tape or send data from the computer.

4) Enter the BYE command to reset the COMM port.

To receive data from the VMC the procedure is as follows:

1) Prepare the device to receive the data.

2) Enter the Change Device (CD, ___ ) command at the VMC.

3) Enter the PU command at the VMC.

Program Numbers,
Protection & Storage

Program Number The program number is identified by the letter O and a numeric value from 1 to
9999. O1 - O9999 placed on the first line of program designates the program
number.

It is not necessary to put an O word in the beginning of the current program in


memory. However, a program must have an O word to be stored in the
program library (see PR).

O Word An axis move or other words are not allowed to be coded on the line with the O
word. The O word line may contain a comment.

EXAMPLE: N1 O1 (PROGRAM 1(This is acceptable).


N1 O1 X3. (This is not acceptable).

EXAMPLE: Format 1 or Format 2

N1 O1 (PROGRAM 1
N2 M6 T1
N3 (TOOL #1 1/2 END MILL
N4 G0 G90 S10000 M3 E1 X1. Y2.
N5 H1 M7 Z.1
N6 G1 Z-.1 F10.

10 Section 1: Summary April 2003


Fadal User Manual

N7 X1.F60.
N8 M5 M9
N9 G90 G0 H0 Z0
N10 M2

EXAMPLE: Format 2 ONLY

In programming Format 2 a colon (:) can be used in place of an O word.

N1 :1 (PROGRAM 1
N2 M6 T1
N3 (TOOL #1 1/2 END MILL
N4 G0 G90 S10000 M3 E1 X1. Y2.
N5 H1 M7 Z.1
N6 G1 Z-.1 F10.
N7 X1.F60.
N8 M5 M9
N9 G90 G0 H0 Z0
N10 M30

Program Protection

NOEDIT

EXAMPLE: N1 O1 (NOEDIT or N1 O1 (P/N 1234 LEFT SIDE NOEDIT

To delete a NOEDIT program from memory the NOEDIT program must not be
the current program in memory. By choosing the option DELETE PROGRAM
from the Program library menu (PR), the user can now delete the NOEDIT
program. Once again, this is only true if the NOEDIT program is not the current
program in memory.

Note: Keep a copy of the original program without NOEDIT.

A program with NOEDIT in the comment of the O word line, is a program that
may never be edited at the CNC.

A NOEDIT program will not allow commands CH, DE, IN, NU, NE, CO, LE, PU or
from PA: C, I, O, N, and R (see the PA command).

April 2003 Section 1: Summary 11


Fadal User Manual

The only functions allowed to be used with the Page Editor and the NOEDIT
programs are graphics, viewing the program, changing to another program,
starting a new program, and running auto.

Key Lock The KEY LOCK in the horizontal position locks out the availability to edit the
program on the CNC. On a 32MP pendant the DOS side will also be locked out.

Emergency Stop The EMERGENCY STOP BUTTON in the depressed position locks out the
Button availability to edit. Release the button by turning it clockwise and then press the
JOG button to reset the control.

Program Storage Programs stored in memory can be managed by using the PR command (see
the COMMAND SECTION). The PR menu allows the operator to switch, display,
start, copy and remove programs. Enter PR command to see the following
menu:

Figure 1-1 Program Storage Menu

EXAMPLE: Option #1

This option switches the current program to another program stored in


memory.

EXAMPLE: Option #2

This option displays the programs in memory. The programs are listed in
numerical order. If the address contains a comment, 16 characters of the
comment are displayed as a program label.

EXAMPLE: Option #3

12 Section 1: Summary April 2003


Fadal User Manual

This option starts a new program. Active memory is cleared and a new block
(N.001) is created containing the new program number. Program input is from
the machine’s keyboard.

EXAMPLE: Option #4

This option copies or duplicates a program stored in memory. The new


program is assigned an unused number.

EXAMPLE: Option #5

This option deletes any program stored in memory. The program is removed
from the machine’s memory without any chance of recovery.

EXAMPLE: Option #6

This option returns to the command mode.

Program Data Input There are two procedures in which to save the current program in memory and
input another program.

Input From The Keyboard:

1) Enter the PR command.

2) Select option #3 and enter the program number. The new program
becomes active with the first block already containing the new O word.

3) Select option #6 to exit the menu to the command mode.

4) Enter the IN,1 command to begin keyboard input after the line containing
the program number. Alternatively, use the PA command and use the insert
I command to begin input from the keyboard.

Input From The RS-232 Port:

1) The first block of the active program should contain a program number.

2) Begin transmission to the CNC. Upon completion of receiving the program,


the result is according to the following circumstances:

a. No O word in the current program: the program sent to the


machine becomes active; the old program is deleted.
b. The program contains an O word: the old program is placed into
memory; the program sent to the machine becomes active.

April 2003 Section 1: Summary 13


Fadal User Manual

c. The program contains a duplicate O word: the new program


becomes active; the old program is deleted.

Format Reference: Conforming to ANSI/EIA RS-274-D standard.


Classification Sheet

Machine Vertical Machining Center (VMC).

Format D617.524.665
Classification
Shorthand D variable block format contouring/positioning system

6 motion dimension words (X, Y, Z, A, B, C)

17 other words (E, D, O, N, M, F, G, S, R, H, L, P, Q, T, I, J, K)

5 absolute or incremental data, depending on mode of operation

2 digits to left of decimal point in longest axis (3 metric)

4 digits to the right of the decimal point in longest axis (3 metric)

6 motion control channels (X, Y, Z, A, B, C)

6 numerically controlled machine axes (X, Y, Z, A, B, C)

5 decimal point programming: if no decimal point, defaults assumed

Format Detail Inches Mode Increment System

N5.4
G2.1
X+3.4 Y+3.4 Z+3.4 I+3.4 J+3.4 K+3.4 B+3.4 R+3.4 Q+3.4
A+4.3
C+5.1
M2.1 H2 T2 D2
F4.2
S5.1, O4
L4 P4
MILLIMETERS MODE
N5.4
G2.1
X+3.3 Y+3.3 Z+3.3 I+3.3 J+3.3 K+3.3 B+3.3 R+3.3 Q+3.3

14 Section 1: Summary April 2003


Fadal User Manual

A+4.3
C+5.1
M2.1 H2 T2 D2
F4.2 S5.1 L4 P4 O4

G Function Codes 0, 1, 2, 3, 4, 5, 8, 9, 10, 15, 16, 17, 17.1, 17.2, 18, 19, 20, 21, 28, 28.1, 29,
31, 31.1, 40, 41, 42, 43, 44, 45-48, 49, 50, 50.1, 51, 51.1, 51.2, 51.3, 52,
52.1, 53, 54-59, 66-71, 73-76, 80-89, 90, 91.1, 91.2, 92-94, 98, 99

M Function Codes 0, 1, 2, 3, 3.1, 3.2, 4, 4.1, 4.2, 5, 6, 7, 7.1, 8, 8.1, 9-16, 17-20, 30, 31, 32,
32.1, 33, 33.1, 41-43, 45-47, 48, 48.1, 48.2, 48.3, 49, 49.1, 49.2, 49.3, 60-
69, 80, 81, 90-93, 94, 94.1, 95, 95.1, 96, 97, 98, 99

• 2 digit BCD output (standard)


• 2 decades of relay output (optional)
• The use of a minus sign (M-60) will perform the function to be accom-
plished after motion. This usage applies to M60 through M69 only.

F Function Range The F word is used to define the feed rate. It is modal and remains in effect for
G1, G2, and G3 moves until another F word is used in the program or in the
MDI mode. See G93 and G94 in the index for more information.

• 1 to 150 percent feed rate override


• .01 to 375 inches per minute
• 1 to 3810 millimeters per minute
• .6 to 9000 degrees per minute (72 to 1)
• .6 to 7992 degrees per minute (90 to 1)
• .6 to 3960 degrees per minute (180 to 1)
• .6 to 1980 degrees per minute (360 to 1)

S Function The S word represents the PRM to be used when the spindle is turned on with
the M3, M4, or SPINDLE ON/OFF with the shift button combination. The lower
belt range RPM amounts can be used from the upper belt range by using a .2
at the end of the interger. For example, S1000.2 would result in 1000 would
result in a belt range to the lower range.

WARNING: The S word is modal and will remain in effect until another S
word is used in auto or the MDI mode.

VMC 7.5 HP (Manual Belt)

75 to 3750 Top belt range

April 2003 Section 1: Summary 15


Fadal User Manual

75 to 7500 Bottom range

VMC 15 HP

40 to 2500 Top belt range

150 to 10000 Bottom range

EXAMPLE: VMC 15 HP (Auto High/Low)

75 to 2500 Top belt range, S.1 used to override belt to Top belt range

2501 to 10000 Bottom range, S.2 used to override belt to Bottom belt range

VMC High Torque (Auto Hi/low)

40 to 2500 Top belt range, S.1 used to override belt to Top belt range

2501 to 10000 Bottom range, S.2 used to override belt to Bottom belt range

VMC High Speed Head (Single Range)

300 to 15000 Single range

T Function Code The T word specifies turret location selection. The number will range from 1
through 30 depending on the available turret locations in the tool changer. The
T word is usually used in conjunction with the M6 tool change M function. It
would appear as an M6T# on a line by itself (See M6 for details). However the T
word is modal and can be used on any line prior to the M6 code.

Note: The use of a minus sign with the T word (T-5) will rotate the turret until
the pocket is located directly opposite from the spindle. This might be used
to rotate long tools in the turret to some location to avoid hitting a part
during program execution. At the next tool change the turret will rotate
automatically back to its original position.

Note: Do not use the T-# with an M6.

D Function Code The D word specifies which diameter or radius offset to use from the tool table
for cutter radius compensation. It ranges from 1 through 99. This code is not
necessary in Format 1, but may be used for cutter diameter override.

H Function Code Programming Format 1:

16 Section 1: Summary April 2003


Fadal User Manual

The H word will pick up the diameter, and tool length offset from the tool table.
It ranges from 1 through 99. It is also used for Tool timers selection.

H99 Q Value

H99 is used for automatic tool diameter override with CRC (see CRC).

H0 cancels the current length offset (see G49).

Programming Format 2:

In Format 2 the H word will only pick up the tool length offset. It is also used for
Tool timers selection.

H0 cancels the current length offset (see G49).

Maximum Working VMC 5, 10, 15


Dimensions
X=20 inches, Y=16 inches, Z=20 inches

Table size= 16" x 29.5"

Maximum clearance under spindle is 24"

Minimum clearance under spindle is 4"

EXAMPLE: VMC 15XT

X=30 inches, Y=16 inches, Z=20 inches

Table size= 16" x 29.5"

Maximum clearance under spindle is 24"

Minimum clearance under spindle is 4"

VMC 2016L

X=20 inches, Y=16 inches, Z=20 inches (optional 28")

Table size= 16" x 29.5"

Maximum clearance under spindle is 24"

Minimum clearance under spindle is 4"

April 2003 Section 1: Summary 17


Fadal User Manual

EXAMPLE: VMC 3016L

X=30 inches, Y=16 inches, Z=20 inches (optional 28")

Table size= 16" x 38"

Maximum clearance under spindle is 24"

Minimum clearance under spindle is 4"

EXAMPLE: VMC 3016

X=30 inches, Y=16 inches, Z=20 inches (optional 28")

Table size= 16" x 39"

Maximum clearance under spindle is 24" (optional 32")

Minimum clearance under spindle is 4"

EXAMPLE: VMC 3020

X=30 inches, Y=20 inches, Z= 24 inches (optional 32'')

Table size= 40.5'' x 20''

Maximum clearance under spindle is 28'' (optional 36'')

Minimum clearance under spindle is 4''

VMC 2216

X=22 inches, Y=16 inches, Z=20 inches

Table size= 16" x 39.5"

Maximum clearance under spindle is 24"

Minimum clearance under spindle is 4"

EXAMPLE: VMC 4020

X=40 inches, Y=20 inches, Z=20 inches (optional 28")

Table size= 20" x 47.9"

18 Section 1: Summary April 2003


Fadal User Manual

Maximum clearance under spindle is 24" (optional 32")

Minimum clearance under spindle is 4"

EXAMPLE: VMC 4020A

X=40 inches, Y=20 inches, Z=20 inches (optional 28'')

Table size= 48'' x 20''

Maximum clearance under spindle is 24'' (optional 32'')

Minimum clearance under spindle is 4''

EXAMPLE: VMC 5020A

X=50 inches, Y=20 inches, Z=20 inches (optional 28")

Table size= 20" x 47.9"

Maximum clearance under spindle is 24" (optional 32")

Minimum clearance under spindle is 4"

EXAMPLE: VMC 6030

X=60 inches, Y=30 inches, Z=30 inches

Table size= 30" x 62.5"

Maximum clearance under spindle is 35.5"

Minimum clearance under spindle is 5.5"

VMC 8030

X=80 inches, Y=30 inches, Z=30 inches

Table size= 30" x 82.5"

Maximum clearance under spindle is 35.5"

Minimum clearance under spindle is 5.5"

April 2003 Section 1: Summary 19


Fadal User Manual

Geometric X, Y, Z, C per RS-267-A


Relationship
A, B need not be parallel to any particular axis.

20 Section 1: Summary April 2003


Fadal User Manual

Section 2: M Functions

M0 Program Stop M0 temporarily suspends program execution and cancels the spindle and
coolant functions. The CNC enters the WAITING state until the operator pushes
one of the following buttons:

• START or AUTO button (to continue program execution). The coolant


and spindle will not turn on unless coded.
• MANUAL (aborts program execution).
• JOG (initiates the jog away feature).

Using the jog away feature, any axis can be moved away from its current
position without disturbing the CNC’s memory of that position. This allows an
optional automatic return of the jogged axes to that position to complete the
machining cycle (see Section 7, SLIDE HOLD, Jog away from).

EXAMPLE: G80
M5 M9
G53 Z0
M6 T3 (TOOL #3, .5 2FL HSS EM .01 C'RADIUS
M0 (OPERATOR CHANGE CLAMPS FROM POSITION 1 TO POSITION 2
(The program will stop at this line, and will not continue until the START or
AUTO button is pressed).

G90 G0 S7500 M3 E1 X1.43 Y-2.7

Note: The look ahead processing does not continue past an M0. Look ahead
processing begins after the START or AUTO button is pressed while in the
WAITING state.

Note: Another way to accomplish a program stop is to use G4 P66000 on a


line in the program. This will cause the control to enter the WAITING state.
In this case the spindle and coolant will not be turned off and the look
ahead processing will continue beyond the G4 code (see Chapter 3, G
Codes).

April 2003 Section 2: M Functions 21


Fadal User Manual

M1 Optional M1 is similar to M0 with the exception that the program will stop only when the
Program Stop optional stop switch is in the ON position. This code could be included in a
program for the convenience of the operator to allow the program to stop at
certain points. For machine pendants without an optional stop toggle switch,
type MU after the AUTO button is pressed or any time while the program is
being executed, and select Option 2 from the Run Time Menu.

EXAMPLE: Z.1 G0 G40


M5 M9
G53 Z0
M6 T5 (TOOL #5, .375 (3/8) 4FL CARBIDE EM, TIN
M1
(The program will stop here only if either the optional stop switch is on or
Option 2 has been selected from the Run Time Menu).

G90 G0 S10000 M3 E1 X-.3 Y-.2

M2 End of Program M2 indicates the end of the main program, and will cause the following events:
(Format 1)
• Cancel the current tool length offset.
• Cancel the fixture offset and move to the current position at E0.
• Return all axes to the home position and move to the SETH position.
• Cancel the spindle and coolant function.
• Reset preparatory functions (See Section 1, Default Status).

The CNC then enters the WAITING state ready to run the program again.

Note: The CNC continuously processes data, filling the look ahead buffer. The
WAITING state appears when the buffer is full. If the AUTO, MANUAL, or
START button is pressed while processing, the CNC will immediately enter
the WAITING state, allowing the operator to press START or AUTO to begin
execution.

M2 End of Program In Format 2, M2 acts as an M30 to mark the end of the main program and will
(Format 2) only:

• cancel the current tool length offset.


• cancel the spindle and coolant functions.
EXAMPLE: Formats 1 & 2

M5 M9

22 Section 2: M Functions April 2003


Fadal User Manual

G53 Z0
M6 T1
E0 X0 Y0
M2 (This is the end of the main program).

M3 Spindle CW M3 is used to start spindle rotation in a clockwise direction.

EXAMPLE: M6 T7 (TOOL #7, #1 C’DRILL


M1
G90 G0 S300 M3 E1 X0 Y0 (The spindle will turn on CW at this line).

M3.1 Sub-Spindle M3.1 is used to start a sub-spindle. Normally an M3 would be used to start the
On, Ignore Magnet main spindle. When this occurs, the control is looking for the magnet on the
pulley. If the control does not see the magnet turning, a “Motor Overload”
SPECIAL message will appear on the screen. The M3.1 will ignore the pulley magnet and
9 FEATURE direct the sub-spindle to start.

An S word on the line or before the M3.1 will establish an RPM to use when the
spindle starts. An S word after the M3.1 will direct the spindle to rotate at the
new RPM. An M function board needs to be installed to redirect the Spindle-On
command to the drive system of the sub-spindle. Use an M5 to stop the sub-
spindle from rotating. See also M3.2 to use the main spindle after the sub-
spindle is used.

EXAMPLE: M6 T7 (TOOL#7,BLANK TOOL FOR SUB-SPINDLE


M1
G90 G0 S300 M3.1 E1 X0 Y0 (The sub-spindle will start at this line).

M3.2 Acknowledge Use an M3.2 to acknowledge the spindle magnet of the main spindle after an
Spindle Magnet M3.1 was used. If this is not used after an M3.1, the M3 would start the sub-
spindle again.
SPECIAL
9 FEATURE

April 2003 Section 2: M Functions 23


Fadal User Manual

M4 Spindle CCW This function is used to start the spindle rotation in a counterclockwise
direction.

EXAMPLE: X3.674 Y1.5


M19
Z-1.2
M4 S300 (The spindle will turn on CCW at this line).
Z-1.18 G1 F4.

M4.1 Sub-Spindle M4.1 is used to start a sub-spindle. Normally, an M4 would be used to start the
On, Ignore Magnet main spindle. When this occurs the control is looking for the magnet on the
pulley. If the control does not see the magnet turning, a “Motor Overload”
SPECIAL message will appear on the screen. The M4.1 will ignore the pulley magnet and
9 FEATURE direct the sub-spindle to start.

An S word on the line or before the M4.1 will establish an RPM to use when the
spindle starts. An S word after the M4.1 will direct the spindle to rotate at the
new RPM.

An M function board needs to be installed to redirect the Spindle-On command


to the drive system of the sub-spindle. Use an M5 to stop the sub-spindle from
rotating. See also M4.2 to use the main spindle after the sub-spindle is used.

EXAMPLE: M6 T7 (TOOL#7,BLANK TOOL FOR SUB-SPINDLE CLEARANCE


M1
G90 G0 S300 M4.1 E1 X0 Y0 (The sub-spindle will start at this line).

M4.2 Acknowledge Use an M4.2 to acknowledge the spindle magnet of the main spindle after an
Spindle Magnet M4.1 was used. If this is not used after an M4.1, the M4 would start the sub-
spindle again.
SPECIAL
9 FEATURE

M5 Spindle Off M5 stops the spindle and the coolant. The spindle will neither orient nor lock.
Using M5 on a line prior to an M6 will reduce the time of a tool change by
TIME
Ÿ SAVER
stopping the spindle before the head returns to the tool change position.

24 Section 2: M Functions April 2003


Fadal User Manual

M6 Tool Change M6 changes tools in the spindle. The M6 usually appears in a line with a T#
code. The T# will specify which tool to pick up next. The M6 can be used from
any position on the table.

M6 will cause the following events:

• The current tool length offset will be canceled, and the Z axis will move
to the cold start position.
• The spindle will stop and orient, and the coolant will stop.
• The tool changer will move out to the tool in the spindle, and the head
will rise above the tool.
• The turret will rotate to the position specified by the T word, and then
the head will move down over the tool, installing that tool into the spin-
dle.
• After exchanging the tools, the Z axis will move to the SETZ position if
the M6 is used in a position other than the Z axis CS position.

Note: Execution of this code will cancel the Z portion of a fixture offset. This Z
axis amount will be applied with the next H or Z words.

SETP Parameter The SETP option SPINDLE ON AFTER M6 can affect the M6. The factory
recommends the NO setting.

Figure 2-1 SETP Parameter Menu

WARNING: When this parameter is selected as YES, the spindle


automatically turns on after the tool change. The spindle comes on at the

April 2003 Section 2: M Functions 25


Fadal User Manual

last programmed spindle speed. This may cause an over-speed of the next
tool. It is recommended that this parameter is set to NO.

T-# Move Tool A T-# in a line by itself (with no M6) will rotate the turret so that the turret #
Changer specified is opposite the spindle. See Example 2 below.

SPECIAL
9 FEATURE

EXAMPLE: M5 M9
G90 G0 G53 Z0
M6 T21 (TOOL #21, MP-8 PROBE (The tool is changed to tool #21 at this line).

EXAMPLE: M5 M9
G90 G0 G53 Z0
X-10. Y5. (MOVE TO CLEARANCE POSITION
M6 T2 (TOOL #2, 10 INCH 1.25 SPADE DRILL
(Tool #2 is changed into the spindle).
T-10 (The turret will rotate so that tool #10 is opposite the spindle).

M7 Coolant One On The M7 function activates the power supply either to the electrical receptacle
labeled “FLOOD” or to the electrical receptacle labeled “MIST”. Both
receptacles are located on the back of the control box, and each is 110 VAC / 6
amps and may be used for various electrical devices. The receptacle that is
activated by M7 depends on the SETP option selected (see the Coolant Options
table below).

SETP Parameter The M7 code will activate the Coolant One (flood) receptacle only when the
SETP parameter is set for M7 as flood. If M7 is set to mist, then M7 will activate
the Coolant Two (mist) receptacle and M8 will activate the Coolant One (flood)

EXAMPLE: With M7 set to FLOOD in the SETP pages


M6 T1 (TOOL #1, 1 INCH 3FL HOG EM
G90 G0 S5000 M3 E1 X.9 Y.6
H1 D1 Z-.98 M7 (Coolant One is turned on at this line).

Table 1: Coolant Options Codes M7, M7.1, M8, M8.1, M9

Flood Mist Optional Servo Coolant


SETP Option Selected
Receptacle On Receptacle On On

26 Section 2: M Functions April 2003


Fadal User Manual

Table 1: Coolant Options Codes M7, M7.1, M8, M8.1, M9

M7=FLOOD; M8=MIST Option 1 M7 M8 M7.1


M8=FLOOD; M7=MIST Option 2 M8 M7 M8.1
(Default)

M9 cancels all Coolant functions

M7.1 Programmable The M7.1 activates the optional Servo Coolant and the electrical receptacle
Coolant On labeled “FLOOD” (Coolant One) only if M7 is selected as the Flood Coolant in
the SETP parameter page (see the Coolant Options table above). See the
Miscellaneous Section of this manual for more details on operation and
programming of the Servo Coolant system.

SETP Parameter The M7.1 code will activate the optional Servo Coolant only when the SETP
parameter is set for M7 as flood. If M7 is set to mist, then M8.1 must be used
to activate the optional Servo Coolant.

M8 Coolant Two On The M8 function activates the power supply either to the electrical receptacle
labeled “MIST” or to the electrical receptacle labeled “FLOOD”. Both
OPTIONAL receptacles are located on the back of the control box, and each is 110 VAC / 6
9 FEATURE amps and may be used for various electrical devices. The receptacle that is
activated by M8 depends on the SETP option selected (see the Coolant Options
table above).

SETP Parameter The M8 code will activate the Coolant One (flood) receptacle only when the
SETP parameter is set for M8 as flood. If M8 is set to mist, then M8 will activate
the Coolant Two (mist) receptacle and M7 will activate the Coolant One (flood)
receptacle.

EXAMPLE: With M8 set to MIST in the SETP pages


M6 T1 (TOOL #1, 1 INCH 3FL HOG EM
G90 G0 S5000 M3 E1 X.9 Y.6
H1 D1 Z-.98 M8 (Coolant Two is turned on at this line).

M8.1 Programmable The M8.1 activates the optional Servo Coolant and the electrical receptacle
Coolant On labeled “FLOOD” (Coolant One) only if M8 is selected as the Flood Coolant in
the SETP parameter page (see the Coolant Options table above). See Chapter
OPTIONAL Nine, Miscellaneous Section of this manual for more details on operation and
9 FEATURE programming of the Servo Coolant system.

April 2003 Section 2: M Functions 27


Fadal User Manual

SETP Parameter The M8.1 code will activate the optional Servo Coolant only when the SETP
parameter is set for M8 as flood. If M8 is set to mist, then M7.1 must be used
to activate the optional Servo Coolant.

M9 Coolant Off The M9 code will cancel both Coolant One and Coolant Two (M7, M8, M7.1 and
M8.1).

EXAMPLE: E0 X0 Y0
M5 M9 (The coolant will be canceled at this line).

M10 Cancel The M10 code cancels reciprocation. The reciprocated move will stop and
Reciprocation complete its motion at the end point of the original move.

SPECIAL
9 FEATURE

M11 X Axis The M11 code will reciprocate the last X axis move made in the program. As the
Reciprocation X axis is moving back and forth from the beginning point to the end point of the
move, all other axes can be moved while the X move is reciprocating.
SPECIAL
9 FEATURE The feed rate of the reciprocated move is separate from the advancing moves.
The F word before the M11 will apply to the reciprocated move. The F word
after the M11 will apply to the advancing moves. The feed rate for the
advancing moves is usually much lower than the feed rate for the first or
reciprocated move.

EXAMPLE: (See Figure 2-2).


G0 G90 S2000 M3 X0 Y0 (This X position is the beginning point of the
reciprocated move).
H1 M7 Z.1
G1 X5.0 F50. (The F50. here applies to the reciprocated move only. X5.0 is the
end point).
M11 (Reciprocate the last X move until the M10 code is used).
G1 Y-2. Z-.25 F1. (The F1. applies to the advancing moves only).
Y-2.25
G19
Y-2.5 Z0 K.25 G2
M10 (The reciprocation is canceled and the X axis moves to the end point at
X5.0 Y-2.5).
G4 P2000 (A dwell is used to allow the reciprocated move to get to the end
point)

28 Section 2: M Functions April 2003


Fadal User Manual

5.000

START POINT

FIRST MOVE
END POINT

0
ADVANCING MOVES
.100
Z+
0
Y+ X+
.250
.425

2.250

3.000
2.000
Figure 2-2 M11 X Axis Reciprocation

M12-M16 These codes are similar to M11, however, they apply to the Y, Z, B, and A axes.
Reciprocation for Y,
Z, B, A

M17 End of The M17 code is used to mark the end of a subroutine. No other coding is
Subroutine allowed on the same line with the M17. See the subroutine section for more
details.
SPECIAL
9 FEATURE

EXAMPLE: L100 (SUB FOR X+ MOVE


X.5

April 2003 Section 2: M Functions 29


Fadal User Manual

Optional:

M17 (This marks the end of subroutine #1).


L200 (SUB FOR X- MOVE
X-.5

Optional:

M17 (This marks the end of subroutine #2).


L300 (SUB FOR ALL HOLES
G91
L120
Y-.5
L220

Required:

M17 (This marks the end of subroutine #3).


M30
(End of subroutine section).
(MAIN PROGRAM
(Program execution begins after the M30 code).

M18 Air Ratcheting This code is used with the Cushman® (PCB-0022) and Erickson® (PCB-0023
Indexer or PCB-0024) style rotary indexer interface boards from FADAL. The M18
sends a signal to index, then the CNC will wait for a cycle-complete signal from
the indexer before continuing with execution of the program. If the M18 is used
with a fixed cycle, the M45 code must be used to execute the cycle because the
control does not recognize the M18 as a move (see M45).

EXAMPLE: G82 G99 R0.1 Z-.25 F30. P18 M45


M18 (A90.) (Index to next step and wait for cycle-complete signal).
M45
M18 (A180.)
(Index to next step and wait for cycle-complete signal).
M45

30 Section 2: M Functions April 2003


Fadal User Manual

M19 Spindle Stop This is used to stop and orient the spindle. This orientation lock is released by
and Orient using an M3 or M4 or by pressing the SPINDLE ON/OFF button.

EXAMPLE: L100 (SUB FOR BROACHING KEY WAY, ONE STROKE


G91 G1 F50. Z-.3 G9
Y-.01 G9
Z.3 G5 G9
Y.012 G9
L200 (SUB FOR ALL BROACHING STROKES, .300 TOTAL KEY STROKES
M19 (Orient spindle for broaching tool).
L199
L151
M17

M20 General This is used to send a start signal to a device attached to the indexer interface
Purpose Indexer board (PCB 0008 or PCB 0007) from FADAL. After the start signal has been
sent, the CNC will wait for a cycle-complete signal from the device before the
OPTIONAL CNC will continue execution of the program. If the M20 is used with a fixed
9 FEATURE cycle, the M45 code must be used to execute the cycle because the control
does not recognize the M20 as a move.

EXAMPLE: G82 G99 R0.1 Z-.17 F45. P18 M45


M20 (A90.) (Indexer moves to next position and waits for a cycle-complete
signal).
M45 (M45 is used because M20 is not considered a move by the control).

M30 End Of All This code is used for two reasons: to mark the end of the subroutine section of
Subroutines a program, and to end a main program.
(Formats 1&2)
End of subroutine section marker: This is a Format 1 feature, however, it can
be used in a Format 2 style program because features from the two styles can
be intermixed. If the M30 is used for an end of subroutine marker, use M2 as
the end of the main program (see Section 5 for more details). This code must
be the only code on the line.

When the auto button is pressed or the AU command is used, the control will
recognize the L100 as a subroutine and then search for other subs and then
the M30 code. Program execution will start from the line just after the M30
line.

EXAMPLE: O54 (P/N 543-W23

April 2003 Section 2: M Functions 31


Fadal User Manual

L100 (SUB FOR HOLES (Subroutine Section).


X2.965 Y-1.1107
X4.1
M17
M30
(This is the end of the subroutine section of this program).
(MAIN PROGRAM
(Program execution begins after the M30 code).

M30 End Of Program This is a format 2 feature. The M2 and the M30 both function as end of
(Format 2) program codes. If this code is used in Format 1 it will act like the M2 code acts
in Format 1.

If M30 or M2 are used in Format 2, they will:

• Cancel the current tool length offset.


• Cancel the spindle and coolant functions.

EXAMPLE: G0 G90 G53 Z0


E0 X0 Y0
M6 T1
M30
(This is the end of the main program).

M31 Exchange M31 performs a pallet exchange. The pallet changer will store the current pallet
Pallets and load the other pallet. No other machine movements will be made. This is
the only code allowed on the program line.
OPTIONAL
9 FEATURE Note: All fixture and machine offsets MUST be canceled prior to attempting a
pallet exchange (see Section 17, Pallet Changer).

Note: The table move to the pallet position may be stopped with the SLIDE
HOLD button. The pallet movement to and from the stored position may
also be stopped with the SLIDE HOLD button.

See also G17.1 and G17.2

32 Section 2: M Functions April 2003


Fadal User Manual

M32 Load and Store When Pallet B is in the load position, M32 will store Pallet B and the pallet arm
Pallet A will move to Pallet A. The machine will be placed in the WAITING state and the
pallet door will remain open until the START button is pressed. When the START
OPTIONAL button is pressed Pallet A will be returned to the load position.
9 FEATURE
When Pallet A is in the load position, M32 will store Pallet A. The machine will
be placed in the WAITING state and the pallet door will remain open until the
START button is pressed. When the START button is pressed Pallet A will be
returned to the load position.

Note: All fixture and machine offsets MUST be canceled prior to attempting a
pallet change (see Section 17, Pallet Changer).

Note: The table move to the pallet position may be stopped with the SLIDE
HOLD button. The pallet movement to and from the stored position may
also be stopped with the SLIDE HOLD button.

M32.1 Load Pallet A When Pallet B is in the load position, M32.1 will store Pallet B and load Pallet A.
& Verify Pallet A Has
Been Loaded If Pallet A is at the load position M32.1 will verify Pallet A is at the load position.
No movement will occur (see Section 17, Pallet Changer).
OPTIONAL
9 FEATURE Note: The table move to the pallet position may be stopped with the SLIDE
HOLD button. The pallet movement to and from the stored position may
also be stopped with the SLIDE HOLD button.

M33 Store and Load When Pallet A is in the load position, M33 will store Pallet A and the pallet arm
Pallet B will move to Pallet B. The machine will be placed in the WAITING state and the
pallet door will remain open until the START button is pressed. When the START
OPTIONAL button is pressed Pallet B will be returned to the load position.
9 FEATURE
When Pallet B is in the load position, M33 will store Pallet B. The machine will
be placed in the WAITING state and the pallet door will remain open until the
START button is pressed. When the START button is pressed Pallet B will be
returned to the load position.

Note: All fixture and machine offsets MUST be canceled prior to attempting a
pallet change (see Section 17, Pallet Changer).

Note: The table move to the pallet position may be stopped with the SLIDE
HOLD button. The pallet movement to and from the stored position may
also be stopped with the SLIDE HOLD button.

April 2003 Section 2: M Functions 33


Fadal User Manual

M 33.1 Load Pallet B When Pallet A is in the load position, M33.1 will store Pallet A and load Pallet B.
& Verify Pallet B Has
Been Loaded If Pallet B is in the load position, M33.1 will verify that Pallet B is at the load
position. No movement will occur (see Section 17, Pallet Changer).
OPTIONAL
9 FEATURE Note: The table move to the pallet position may be stopped with the SLIDE
HOLD button. The pallet movement to and from the stored position may
also be stopped with the SLIDE HOLD button.

M41-M43 Belt Drive Newer machines have automatic high/low belt changes.The M41 - M43 codes
Range are used on older machines that require a manual belt range change. This
code could be used in MDI to indicate which belt range was selected:

M41 is 150 to 2700 RPM (top drive pulley)


M42 is 150 to 5200 RPM (middle drive pulley)
M43 is 300 to 10000 RPM (bottom drive pulley)

M45 Execute Fixed This code is used to execute a fixed cycle or a modal subroutine. Execution will
Cycle occur at the current location. Normally, motion to a new position causes a cycle
to execute. Use the M45 when execution of a cycle is desired without making a
move.

M45 is generally used with an indexer. The motion of the indexer is


independent of the control. Even though the operator sees the rotation of the
indexer, this is not counted as motion to the control, so the cycle is not
executed with indexer motion. The M45 after each M20 or M18 will execute the
cycle after each rotation.

EXAMPLE: G82 G99 R0.1 Z-.17 F45. P18 M45


M20 (A90.) (Indexer moves to next position and waits for a
cycle-complete signal).
M45 (M45 is used because M20 is not considered a move by the control).

M45 Used with M45 is also used when motion to the next fixture offset is at the same point as
Fixture Offsets the current fixture. For example E1 X1. and E2 X1. would appear to the
machine as no motion, even if the operator can see the motion from one fixture
to the next. When the move is to the same position on the next fixture this is
called a “null move” and is recognized as not having moved. The M45 is then
used to execute the cycle after this null move.

EXAMPLE: E1 X1. Y-1. (Move to first position).


G82 G99 R0.1 Z-.17 F45. P18 M45 (Start cycle and execute it).

34 Section 2: M Functions April 2003


Fadal User Manual

E2 X1. Y-1. (Move to second position, first null move).


M45 (M45 is used because of the null move).
E3 X1. Y-1.
M45

M46 Positive This code causes the machine to move the X and Y axes in a negative, then
Approach positive, direction before the execution of a fixed cycle (G73-G89).

SPECIAL The X and Y axis move .015 in the negative direction at 25 inches per minute,
9 FEATURE then move .015 in the positive direction at 3 inches per minute. This returns the
machine back to the original location and then the fixed cycle will execute.

A Q word on the line with an M46 will define the amount to move for the
positive approach if more or less than .015 is desired.

M46 can be coded on any block of the program except for blocks containing
any words that need to be on a line by themselves. Only the X and Y positions
that follow a fixed cycle are affected by this code. This function is modal and
will remain in effect until canceled by an M47.

The feed and speed pots are disabled during the positive approach moves, and
are enabled after the moves are complete.

EXAMPLE: M46 Q.025 (Start positive approach mode).


G82 G99 R0+.1 Z-.18 F45. P18 X3.45 Y.78 (Move, take positive approach,
drill).
X3. Y.89 (Move, take positive approach, drill).
M47 (Cancel positive approach).

M47 Cancel Positive This code is used to cancel the positive approach mode.
Approach

M48 Potentiometer This code enables the operator to override the programmed feed rate and
Controls In spindle RPM by use of the potentiometers located on the pendant just above
the jog selection switches. This code would only be required when an M49
code is used in the program.

EXAMPLE: M49 (Cancel the operator's ability to override the feed rate and RPM).
G85 G99 R0+.3 Z-.7 F100. X3.78 Y1.
X3. Y5.M48 (Enable the operator to alter the feed rate and RPM).

April 2003 Section 2: M Functions 35


Fadal User Manual

M49 Potentiometer This code disables the potentiometers located on the pendant just above the
Controls Out jog selection switches. See the M48 example above.

M48.1 & M49.1 M48.1 enables and M49.1 disables the override pot. This is to allow and
Servo Coolant disallow manual movement of the nozzle from the override pot for the servo
Potentiometer coolant nozzle.
Controls In/Out

OPTIONAL
9 FEATURE

SPECIAL
9 FEATURE

M48.2 & M49.2 M48.2 enables and M49.2 disables the Pallet A rotary table axis override pot.
Pallet A Rotary Table This potentiometer is available on VMCs with the pallet changer/rotary table
Override combination. When Pallet A is in the store or in the working position, this
Potentiometer potentiometer allows the operator to rotate the rotary table on Pallet A for
loading and unloading parts (see Section 17 Pallet Changer).
OPTIONAL
9 FEATURE M49.2 will automatically return the rotary table, A axis, to the original position
before rotation with the pot and must always be used when the M48.2 is used.
Occasionally a G4 P# will have to be used after the M49.2 to insure that it
rotates to its original position.

EXAMPLE: N300 E0 X0Y0 A0


N301 M33.1 (LOAD PALLET B, STORE PALLET A
N302 M48.2 (PALLET A ROTARY OVERRIDE ENABLE
...
N506 M49.2 (PALLET A ROTARY OVERRIDE DISABLE
N507 E0 X0 Y0 A0
N508 M32.1 (LOAD PALLET A
N509 G4 L99

Note: When using the M48.2 or M48.3 with the A or B axes, insert a new line
after the M48.2 or M48.3 and place a G4 P99 on this line. The G4 P99 is a
code used to dwell or wait a millisecond amount of P. The dwell in this case
is used to wait 99 milliseconds until the A or B axis has returned to a set
position before continuing the program. (99 milliseconds is a suggested
amount for this situation. The P can be increased or decreased.) If the wait

36 Section 2: M Functions April 2003


Fadal User Manual

(P amount) is not long enough, the control will time out waiting for the A or
B axes to return to position.

M48.3 & M49.3 M48.3 enables and M49.3 disables the Pallet B rotary table axis override pot.
Pallet B Rotary Table This potentiometer is available on VMCs with the pallet changer / rotary table
Override combination. When Pallet B is in the store or in the working position, this
Potentiometer potentiometer allows the operator to rotate the rotary table on Pallet B for
loading and unloading parts. (See Section 17 Pallet Changer)
OPTIONAL
9 FEATURE

SPECIAL M49.3 will automatically return the rotary table, B axis, to the original position
9 FEATURE before rotation with the pot. This must always be used when the M48.3 is used.
Occasionally, a G4 P# will have to used after the M49.3 to insure that it rotates
to its original position.

EXAMPLE: N507 E0 X0Y0 A0


N508 M32.1 (LOAD PALLET A, STORE PALLET B
N509 M48.3 (PALLET B ROTARY OVERRIDE ENABLE
...
N530 M49.3 (PALLET B ROTARY OVERRIDE DISABLE
N531 E0 X0 Y0 A0
N532 M33.1 (LOAD PALLET B

Note: When using the M48.2 or M48.3 with the A or B axes, insert a new line
after the M48.2 or M48.3 and place a G4 P99 on this line. The G4 P99 is a
code used to dwell or wait a millisecond amount of P. The dwell in this case
is used to wait 99 milliseconds until the A or B axis has returned to a set
position before continuing the program. (99 milliseconds is a suggested
amount for this situation. The P can be increased or decreased.) If the wait
(P amount) is not long enough, the control will time out waiting for the A or
B axes to return to position.

M60 - M69 User Relay sockets are provided for the attachment of special devices such as
Attached Devices brakes and clamps. Refer to the VMC Maintenance Manual for information
regarding user attached devices.

If the VMC is equipped with Renishaw probe options, M64 is used to activate
the MP8, MP11, and MP12 probe. M65 is used to activate the TS-20 or TS-27
tool setter. For the MP11 or the MP12, M66 is required along with the M64. For
the Laser Probe, M67 is required along with the M64.

April 2003 Section 2: M Functions 37


Fadal User Manual

M60A Axis Brake On


M61A Axis Brake Off
M62B Axis Brake On
M63B Axis Brake Off
M64Activate MP8 or MP11 Probe
M64 M66Activate MP12 Probe
M64 M67Activate Laser Probe
M65Activate TS-20 or TS-27 Touch Probe

M-60 & M-62 for The use of a minus sign (M-60 or M-62) will cause execution of these
Fixed Cycles functions after machine positioning and before execution of a fixed cycle.

EXAMPLE: G81 G99 R0+.1 Z-.5 F20.


A90. M-60Move, Clamp, Drill
A180. M-60Unclamp, Move, Clamp, Drill

M80 Automatic This function is used to open the automatic doors.


Doors Open

OPTIONAL
9 FEATURE

M81 Automatic This function is used to close the automatic doors.


Doors Close

OPTIONAL
9 FEATURE

M90-M93 Gain These codes are used to determine the way that the axes will respond during
Setting contouring moves. When using feed rates lower than F50. ipm, the M91 code
should be used. M91 is the factory setting in the SV menu. When using high
feed rates for contouring (above F50. imp), the M92 code would allow the
machine to track closer. The M93 code is only used internally for the rigid
tapping cycle.

M90 Change Axis This is the gain for each axis where a value of 100 is normal and 120 is 20%
Gain: P Word more than normal. Gain has a multiplying effect on the response of a servo
system. Gain controls how hard the motors are driven. Larger numbers make
the motors more responsive to velocity changes, but a gain that is too large will
cause the system to be unstable and cause overshooting (as the feed rates
increase, the gain should increase as well.) With the appropriate value of gain

38 Section 2: M Functions April 2003


Fadal User Manual

chosen, the axes will meet detail at higher feed rates. At around 150 IPM, a
gain of 125 should be used. Below 40 IPM, a gain of 100 is appropriate.

M90 - DEFAULT (Determined by the SV command).


M91 - NORMAL
M92 - INTERMEDIATE
M93 - HIGH

The default (at power on) is determined by the setting on the axis controller
card. The SV command is used to write the settings to the controller card.

M94 Feed Forward The M94 code is used for linear moves only, to increase accuracy during high
Function speed surfacing where radical changes in direction occur. These moves are
generally at a feed rate of 50 ipm or higher. CNC programs for 3D surfaces use
SPECIAL many small linear moves (G1) to form surfaces and the G8 code is used to
9 FEATURE eliminate hesitation between each move. In most cases this is desirable,
except where radical changes in direction occur.

DECELERATION LESS THAN


NOT APPLIED Q WORD LENGTH

X
DIRECTION THIS ANGLE IS USED
OF MOTION WHEN THE PREVIOUS
P WORD MOVE IS LESS THAN
ANGLE THE Q WORD LENGTH

DECELERATION
APPLIED

Figure 2-3 Feed Forward Function

The Feed Forward function affects the way the control accomplishes the
acceleration and deceleration at the beginning and end of each move. When a
move falls into the range assigned by the M94 parameters, the control will
monitor axis servo feedback to determine how to move, instead of using
reprocessed moves as it normally would.

April 2003 Section 2: M Functions 39


Fadal User Manual

The M94 and its parameters must be on a line with NO other codes. It is modal
and is canceled by an M95. It only operates with the -3 processors or higher,
and is not operational in the G91.1 mode.

Deceleration occurs when the angle between moves is smaller than the P word
and the move length is greater than or equal to the Q word. The Q word is not a
required parameter, and is used to filter out extremely small moves.

M94 P91 Q.003 (This sets the decel/accel for any move that is both .003 or
longer and smaller than 91 degrees from the last move).

P Word The P word sets the angular tolerance for the feed forward mode, and must be
less than 180 degrees. When the angle between the current direction and the
next programmed direction is less than the P word, the machine initiates a high
speed deceleration to increase the accuracy of the directional change.
Acceleration then begins regardless of the length of the following moves. The
acceleration may occur over an unlimited number of program blocks. Full
acceleration is accomplished over a distance of two hundred thousandths
when no further deceleration is required.

Q Word The Q word is used to set the length tolerance for the feed forward mode. When
the length of the next programmed move is equal to or longer than the Q word,
the control checks the angle between the current move and the next move. If
this angle is less than the P word value, deceleration occurs.

Note: M94 and M94.1 can both be in effect at the same time.

M94.1 Feed Forward The M94.1 code is another type of feed forward mode used for high speed
by Feed Rate surfacing. The feed rate will be modified if the angle of the next move falls in
Modification the range established by the parameters of the M94.1 code line.

TIME
Ÿ SAVER
No other codes can be in the same line as the M94.1 and its parameters. The
feed rate must be specified before the M94.1 line. No other F Word may be
specified after M94.1 until an M95.1 is used. G0 moves can be used after
M94.1 but will not be modified by the M94.1 coding. The M94.1 is modal and
is canceled with an M95.1 code. It is available on -3 or higher controls. This is
not compatible with the G91.1 code.

M94.1 P170 Q10. R0+50. R1+1. R2+15.

40 Section 2: M Functions April 2003


Fadal User Manual

EXAMPLE: The second move is 135 degrees from the first move, therefore the feed will be
modified because the move is less than 170 degrees (set with the P word).
SPECIAL Because the second move is less than one inch (set by the R1+1 word), the
9 FEATURE feed will be modified. The angular difference between the P word angle and the
second move is 35 degrees. Every 15 degrees of angular difference (R2+15.),
the feed will be modified by 10 percent (Q10). In this case the feed will be
modified by 20 percent. In order for a move to be modified, it has to be less
than the P value and less than the R1 value.

P Word The P word represents an angle. If the angle between the current move and the
next move is less than the P word angle, the feed rate will be modified.

Q Word The Q word represents a percentage. This will be the amount that the feed rate
will change each time it is modified (see R2 below for frequency of the
modification).

R0+#

ANGULAR
DIFFERENCE

USE M94.1 IF
MOVE IS WITHIN
THIS RANGE

Figure 2-4 R0+#

The R0+# represents a percentage. This states that the modified feed rate
should reduce no more than this percentage of the programmed feed rate.

R1+# The R1+# represents a length. This states that if the next move is longer than
this amount, then use the programmed feed rate for that move.

R2+# The R2+# represents angular degrees. With the Q word modification
percentage, this will be used to determine how the feed will be modified. This
will modify the feed rate (by the percentage assigned to the “Q” word) every
R2+# degrees for the current difference in angular moves by the percentage
assigned to the “Q” word.

EXAMPLE: N15 F100. G1

April 2003 Section 2: M Functions 41


Fadal User Manual

N16 M94.1 P170 Q10. R0+50. R1+1. R2+15.

The modified feed rate would be determined by this formula:


Fmodified = Fprogrammed - (Fprogrammed • Q word • Angular Difference /
R2+#)

With an angular difference of 60 degrees and a programmed feed rate of 100.


ipm, the modified feed would be 60 ipm:
Fmodified = 100. - (100. * .1 * 60. / 15.) = 60.

Note: M94.1 and M94 can both be in effect at the same time.

Note: The feed rate to be modified must be specified before the M94.1. No
other F Word may be specified after M94.1 until an M95.1 is used. A new
feed rate may be specified and then the M94.1 can be used again.

M94.2 Advanced The advanced feed forward option is designed to satisfy the needs of high
Feed Forward speed machining. Normally the gain, acceleration rate, deceleration rate, and
detail factor on a machine tool is established to satisfy a large range of
OPTIONAL customer needs. Until now this did not directly target the specific needs of high
9 FEATURE speed contouring on surfaces. AFF allows the user to tune the machine to
specific needs.

Production rate is important! AFF allows the machine to cut loose and fast for
roughing cuts, tighter for semi-finish cuts, and very close tracking for finish
cuts.

One method for controlling surface integrity is feed rate. Other controls will use
what is termed “look ahead” to analyze angular change in a series of moves.
The more dramatic a change, the lower the feed rate. This results in lower cycle
times. AFF differs in that the feed rate is constant resulting in faster cycle times.

AFF allows five factors to be altered:

• Gain
• Deceleration
• Acceleration
• Detail
• Feed Rate

42 Section 2: M Functions April 2003


Fadal User Manual

These factors can be altered on-the-fly, can be hard coded in the program, or
the parameters can be used from and stored in a parameter page.

• Use the DFF command to access the parameter page.


• Use the background edit menu to alter the parameters and change
them on-the-fly.
• Use parametric variables to hard code the parameters in the program.

R1 Deceleration: The time to decelerate the axes from programmed feed rate to
a full stop measured in milliseconds. Deceleration is important to slow the tool
down for smooth transitions into or around corners. The deceleration will
improve the ability of higher feed rates to be used. At higher feed rates, a larger
deceleration may be necessary to provide a smoother transition into the
corners and to meet the specified detail. There is a point when the deceleration
will not improve the quality of the part but will adversely affect the total part
time. Pick a deceleration value that gives good part times while meeting the
desired tolerances of the part. Values of 20 to 80 are appropriate for most feed
rates. The deceleration ranges from 5 to 250 milliseconds.

R2 To pick up values from the DFF table, set the value of R2 to the corresponding
tool number in the table. The parameters will then be used from the table.

P Word Acceleration: The time to accelerate the axes from a full stop to the
programmed feed rate measured in milliseconds. The tool is accelerated out of
corners or part details to the programmed feed rate. This is the approximate
total time for the acceleration curve to bring the tool up to full speed. Values of
10 to 40 are appropriate for most feed rates. The acceleration ranges from 5 to
250 milliseconds.

Q Word Detail: The minimum detail acceptable is measured in inches. The detail
parameter will hold the X, Y, and Z axes to a specified detail amount. This detail
will dynamically change for each axis depending on the contour, but will always
meet the programmed detail value. The ability of the axes to meet their detail is
directly affected by the other AFF parameters. A larger gain will help the axis be
“driven” to meet the detail specified. The deceleration will help the axes to
softly move from the programmed feed rate down to zero speed and to the
detail desired. The acceleration will not directly help the detail but will help
when using faster feed rates. It will improve the transition from zero speed to
the programmed feed rate. The detail value ranges from .0002'' to .0250''. The
appropriate value depends on the part and tool. If it is a roughing tool, a larger
detail should be used.

April 2003 Section 2: M Functions 43


Fadal User Manual

M95 Feed Forward This code is used to cancel the M94 mode. It is non modal and must be the
Cancel only code on the line.

This code can also be used as a non modal form of the G9 code. If the program
is in the G8 mode, an M95 on a line by itself will affect the next line in the
program so that it will decelerate and accelerate. After the move is complete,
the G8 mode will continue.

EXAMPLE: N15 F100. G1


N16 M94.1 P170 Q10. R0+50. R1+1. R2+15.
...
N10350 X.001Y-.04
N10351 M95 (Cancel Feed Forward).

M95.1 Feed Forward This code is used to cancel the M94.1 mode. It is non modal and must be the
by Feed Rate only code on the line.
Modification Cancel

M95.2 AFF Cancel This code is used to cancel the optional Advanced Feed Forward mode.

M96 Intersectional This code is used to cancel intersectional cutter radius compensation. The M96
Cutter code is modal and will remain in effect until the M97 code is used (see Section
Compensation 9 for details).
Canceled (Roll CRC)

EXAMPLE: N22 G1 F10. Z-.25


N23 M96
N24 G1 G4 1X0 F40.
N25 Y1.
N26 X2.

44 Section 2: M Functions April 2003


Fadal User Manual

CIRCULAR PATH

Figure 2-5 Circular Path

M97 Intersectional This code is used to start the intersectional cutter radius compensation mode.
Cutter The M97 code is modal and will remain in effect until the M96 code is used (see
Compensation Section 9 for details)

EXAMPLE: N22 G1 F10. Z-.25


N23 M97
N24 G1 G4 1X0 F40.
N25 Y1.
N26 X2.
INTERSECTION

Figure 2-6 Intersection

M98 Subprogram This code is used to call a subprogram (see section 5 for details).
(Formats 1 & 2)
M98 P# L#

P Word Identifies the number of the subprogram to be called.

April 2003 Section 2: M Functions 45


Fadal User Manual

L Word Specifies the number of times to execute the subprogram.

EXAMPLE: N22 X1.0


N23 M98 P3 L2 (Execute subprogram 3 and repeat 2 times).

M99 End Of This code can be used to mark the end of a subprogram. If this is at the end of
Subprogram a program, this is the code that identifies a program as a subprogram. No other
(Formats 1 & 2) codes or parameters should be on the line with the end of subprogram marker
(see section 5 for details).

EXAMPLE: N1O3 (SUB PROGRAM 3


N2 M6T1
...
N47 M99 (Return to main program).

M99 Line Jump This code can be used for a line jump. With the P word parameter on the line
(Formats 1 & 2) with the M99, it becomes a line jump.

M99 P#

P Word Identifies the line number to continue execution from.

EXAMPLE: N44 M0 (OPERATOR ADJUST BORING HEAD IF NEEDED


N45 S800 M3 M7
N46 Z.2 X0 Y2. G0
N47 G85 G99 R0+.2 Z-.356 F1.6 X0 Y0 M46
N48 G80 M5 M9
N49 X0 Y2. G0
N50 M0 (OPERATOR CHECK THE BORE SIZE
N51 (IF BORE IS GOOD THEN SWITCH BLOCK SKIP ON
/N52 M99 P44 (If the block skip switch is off, jump to line 44 for another pass).
N53 X1.5 Y2.

46 Section 2: M Functions April 2003


Fadal User Manual

Section 3: G Codes

G0 Rapid Travel G0 moves from one point to another point at the maximum traverse rate of the
machine. G0 is generally used when cutting will not take place when moving
from one location to another.

Multiple axis moves begin by all axes moving together at the same rate until
each axis move is completed. This gives the appearance of a forty-five degree
move at the beginning of the move. For the remaining distances, each axis will
continue to move to the end point.

When using MDI, a rapid Z axis move will move independent of the X, Y, A & B
axes. When the Z axis is to move in the positive direction, it moves prior to X, Y,
A, & B axis motion. When the Z axis is to move in the negative direction, it
moves after X, Y, A, & B axis motion.

G0 is modal and will remain in effect until it is canceled by the G1, G2 or G3


codes. G0 will not cancel any feed rates used by the interpolation modes. An F
word can appear on the same line with a G0 code, however, the F word will only
be used when an interpolation code is used.

G0 can appear at any point on a line to make all moves on the line rapid.

The rapid travel switch on the pendant can be used to alter the rapid travel rate.

The feed rate potentiometer will only affect the rapid rate during single step,
just after a slide hold, and while in any of the dry run modes. See also G5 Non
Modal Rapid.

EXAMPLE: F30. (This F word is modal).


G0 G90 Z.1 (This line will be in rapid travel).
X1.3 Y2.7 (This line will be in rapid travel).
G1 Z-.245 (The G1 will cancel the G0 and use the F30. from above).
G91 X.5 (This will be at F30.0).
G90 Z.1 G0 (This line will be in rapid travel).

April 2003 Section 3: G Codes 47


Fadal User Manual

G1 Linear This code is used for linear interpolation. Linear moves can be made by one, or
Interpolation any combination of, all the active axes. See Section 13 for more details on
linear interpolation. See also Section 12 for rotary axis interpolation details.

Note: Max program feedrate at 100% is 400 IPM.

G2 Circular G2 is used for CW circular interpolation and helical moves. See Section 13 for
Interpolation Arc more details.
Clockwise
G2 X1. Y1. I-1. J0

Note: Max program feedrate at 100% is 400 IPM.

G3 Circular G3 is used for CCW circular interpolation and helical moves. See Section 13 for
Interpolation Arc more details.
Counterclockwise
G3 X1. Y1. I-1. J0

Note: Max program feedrate at 100% is 400 IPM.

G4 Dwell Whenever a pause in the program is required, use the G4 code.

A pause may be used to allow the spindle and coolant to fully turn on after
using the M3 and M7 or M8 codes. This often happens with a tall part or fixture,
where the tool gets to the top surface before the spindle is up to speed.

EXAMPLE: G90 G0 S10000 M3 E1 X-.45 Y-.2


H1 Z-.3 M8
G4 P1000 (This one second dwell allows the spindle to come up to speed).
X3. G1 F80.

• A P word represents time. The time is given in milliseconds.


• P1 = 1/1000 second (or one millisecond)
• P500 = 500 milliseconds or 1/2 second
• P60000 = 1 minute

The G4 would also be used in a situation where the tool needs to dwell to allow
for spindle rotation, such as a spot face or counter bore situation. A general
rule to follow is to dwell for at least three revolutions. To calculate elapsed time

48 Section 3: G Codes April 2003


Fadal User Manual

during three revolutions divide 180,000 by the RPM used. The 180,000
represents time in milliseconds for three minutes.

EXAMPLE: For 5000 RPM:180,000 / 5000 = 36

G1 F10. Z-.25
G4 P36 (Dwell for 36 milliseconds; 3 revolutions at 5000 RPM).
Z0 G0

G4 as an In-position The use of a G4 without the P word will perform an in-position check. This
Check would be non-modal and would only affect the line in which it existed. See also
G9.

X1.0 G4 (An in-position check is forced here).


X2.0
X3.0

G4 as a Program The use of a G4 with P66000 forces an endless dwell or a program stop,
Stop placing the machine in the waiting state. When in the WAITING state the spindle
and coolant will remain on, as opposed to M0 and M1 which turn them off. To
SPECIAL continue program execution press the Start or Auto button.
9 FEATURE

G5 Non Modal Rapid The G5 code is used for non modal rapid moves. It exhibits the same motion as
G0, however, this code will only affect the line in which it exists.
SPECIAL
9 FEATURE

EXAMPLE: X2.5 G1 F20.


G5 Z.1 (Rapid movement of this line only).
X3.0 Y-2.5 (The G1 is still in effect from above).

G8 Acceleration (No This code is used when no hesitation is desired between moves. If the tool
Feed Ramps) hesitates the tool pressure lessens and the tool will leave a tool mark on the
contour. The G8 code would be used to eliminate the tool marks.
TIME
Ÿ SAVER

The hesitation is called a feed ramp or acceleration-deceleration. Ramping is


used to help the tool move to the desired position.

April 2003 Section 3: G Codes 49


Fadal User Manual

• The G8 code is often used in combination with the M92 code.


• This code is modal and will remain in effect until the G9 code is used.
• The G8 code is a default code for format two.
• The G8 code is incompatible with a G41 or G42 coded on the same line.
• The G9 code is used to cancel the G8 code.

EXAMPLE: G0 G8 G90 (Ramping is off at this line).


G2 I.5 G91 Z.02 L7
X-.5 G41
X.55 Y-.55 I.55 G3

• The M95 code is used as a non modal form of the G9 code. It is gener-
ally used when G8 is in effect. See M95 for more details.

G9 Deceleration This code is used when hesitation is desired between moves. When the tool
(Feed Ramps) hesitates the tool pressure lessens and the tool will leave a tool mark on the
contour. The G9 would be used to help the tool move from place to place when
inertia may be a problem. The use of the G9 code as opposed to using the G8
code will help insure contouring accuracy.

If an axis is faulting at a certain move, the G9 could be used to help the


machine to get through the move by decelerating at the end of the move and
then accelerating again at the beginning of the next move.

The deceleration will only slow the tool down at the end of the move. (It will not
come to a complete stop).

• This code is modal and will remain in effect until the G8 code is used.
• This code is default for format one.

EXAMPLE: X1.0 G9
X2.0
X3.0
G9 as an In-Position To stop the tool completely at the end of each move, an in-position check must
Check be used. The G9 code, used in succession on two or more lines, causes an in-
position check. Because of the look ahead processing, the line with the first G9
in successive order will use the in-position check. See also G4 and M95 for
other forms of in-position check.

50 Section 3: G Codes April 2003


Fadal User Manual

EXAMPLE: X1.0 G9 (Because of the look ahead, the first G9 will be an in-position check).
X2.0 G9 (In-position check).
X3.0 G9 (In-position check).

G10 Programmable This code is used to replace, alter, or read the values of fixture offsets, tool
Data Input offsets, and parameters R0 through R9.

• When G10 is used in the absolute mode (G90), the current value is
replaced by the value identified by X, Y, Z, R0, or P.
• In the incremental mode (G91), the current value is altered by the posi-
tive or negative value of X, Y, Z, R0, or P.
• L# identifies the operation.
• P# selects the offset # or identifies the value for parameter R0 - R9.
• X#, Y#, Z# identifies the axis and the value to be changed.
• R0# identifies the value.

L2 Used to replace or alter fixture offsets: L2 P# (0, 1- 48) X# Y# Z# A# B#.

With G90

G10 L2 P5 X1.356 Y2.63 Z-.01 (This replaces the current value of fixture
offset #5 with X1.356 Y2.63 Z-.01).

With G91

G10 L2 P5 X-1. (This subtracts one inch from the current X value of fixture
offset #5).

L2 Used to offset the part home position with a coordinate system shift (see G52).

With G90 or G91

G10 L2 P0 X1. Y1. (P0 functions as a G52 X1. Y1.).

April 2003 Section 3: G Codes 51


Fadal User Manual

L10 Used to replace or alter tool length offsets: L10 P1-99 R0#

With G90

G10 L10 P12 R0 -5.467 (This replaces the current value of TLO #12 with -
5.467).

With G91

G10 L10 P12 R0+1. (This adds one inch to the current value of TLO #12).

L12 Used to replace or alter a tool diameter: L12 P1-99 R0#

With G90

G10 L12 P1 R0+.52 (This replaces the current value of dia. offset #1 with .52).

With G91

G10 L12 P1 R0-.02 (This subtracts .02 from the current value of dia. offset
#1).

L13 Used to read the values of a fixture offset: L13 P0,1-48

With G90 or G91

G10 L13 P2 (The R0 variable = the Z amount, the R1 = X, and the R2 = Y).

L14 Used to read the value of a tool length offset: L14 P1-99

With G90 or G91

G10 L14 P2 (The R0 variable = the offset amount of TLO #2).

L15 Used to read the value of a diameter offset: L15 P1-99

With G90 or G91

G10 L15 P2 (The R0 variable = the offset amount of diameter #2).

52 Section 3: G Codes April 2003


Fadal User Manual

L100 - L109 Used to replace or alter the value of a variable: L100 P#

With G90

G10 L102 P-6.5 (This replaces the current value of the R2 variable with -6.5).

With G91

G10 L102 P+.543 (This adds .543 to the current value of the R2 variable).

T Used to facilitate turret tests.

With G90 or G91

O5805 (WORK TOOL CHANGER


L100
G10 T1
M6.1 T1
T-2
M17
M30
L199 (PUT A TOOL IN SPINDLE
M0 (FINISHED TEST

April 2003 Section 3: G Codes 53


Fadal User Manual

G15 YZ Circular This code is used when the bottom of a cutter is required to cut an arc with Y, Z,
Interpolation With and A axis motion. See Section 12 for more details.
The A Axis

SPECIAL
9 FEATURE

G17-G19 Plane Plane selection codes are used to identify the plane for such functions as:
Selection
• Circular Interpolation (G2, G3)
• Cutter Compensation (G40-G42)
• Coordinate Rotation (G68, G69)
• Flat Cam, XY Plane Conversion to XA/XB Motion (See Section 12)

Y+ Z+ Z+

G2 G3 G2

G3 G2 G3

X+ X+ Y+
G17 G18 G19
VIEW FACING MACHINE VIEW FACING MACHINE VIEW FACING MACHINE
LOOKING Z- LOOKING Y+ LOOKING X-
TOOL MOTION TOOL MOTION TOOL MOTION

54 Section 3: G Codes April 2003


Fadal User Manual

G17.1-G17.2 A/B The G17.1 word activates B-axis command substitution for the A-axis
Word Swap command. This allows the use of the A axis rotary moves in one program for
use with rotary heads on both pallets. If the program calls for an A axis move
SPECIAL and the rotary device is connected to the B axis controller, the G17.1 code will
9 FEATURE swap the A word for a B word. Existing programs written for the dual 4th axis
setups that contain both A and B words are allowed. The G17.1 will
automatically swap the B words to A words. The G17.2 word cancels A/B axis
command swap mode.

G20 Inch This code is used to verify that the operator has set the CNC to the INCH mode.
Programming This code does not place the machine in the inches mode. The inch mode is
set with the SETIN or SETP command. See Section 8, SETIN and SETP
commands. See also the G70 code.

G21 Metric This code is used to verify that the operator has set the CNC to the METRIC
Programming mode. This code does not place the machine in the metric mode. The metric
mode is set with the SETME or SETP command. See Section 8, SETME and
SETP commands. See also the G71 code.

G28 Return to Zero This code is used to return all axes (Format 1) or a specific axis (Format 2) to
the current Tooling Coordinate System (Home Position). The G28 code acts the
same in absolute and incremental mode.

Format 1 Typically it is used to move home after a G92 or G52 code is used. The G28 will
ignore the G92 preset position or a G52 shift and move to the positions
established by the SET(X,Y, Z, A, B or H) commands or by a fixture offset. The
G92 and G52 codes will remain in effect after the G28 move.

If a fixture offset is in effect, the G28 will return all axes to the fixture home
position, unless a motion word appears with the G28 code. The G28 will not
cancel the fixture offset. If a Z offset is in effect that is larger than +4.0 inches
and the Z axis SET position is at the cold start position, the Z axis will over travel
on the G28 line. It would be best to not use a G28 in this case. Instead, use an
M6 to cancel the Z offset, then use an E0 X0 Y0.

• This code will cancel an H word if it is in effect.


• Motion words to a position in the same block with a G28 will be exe-
cuted before the G28 and the position will be retained as the initial posi-
tion during execution of a G29 code.
EXAMPLE: M5 M9

April 2003 Section 3: G Codes 55


Fadal User Manual

G28 All axes will move to the current home position


M0 (OPERATOR CHANGE CLAMPSL

EXAMPLE: M5 M9
G28 Y6. The Y axis will move to Y6.0 (the initial position) then all axes move
home

Format 2 Format 2 programming requires the axis to be specified in the block with the
G28 for it to move to that position.

EXAMPLE: G28 Z0 Only the Z axis will move to the zero position
G28 X0 Only the X axis will move to the zero position

G28 will cancel the current fixture offset and move to the location established
with the motion word on the same line as the G28 code, unlike Format 1 where
G28 moves to the location in reference to the last called out fixture. The G28
moves are relative to the CS position or the SETX, SETY, SETZ, SETA, SETB, or
SETH commands, whichever was used last.

G28.1 Cancel JOG This code is used to cancel the jog away amount and return specified axes to
AWAY the current programmed position. This code is only intended to be used with
option number two from the jog away return selection menu. The G28.1 code
acts the same in absolute and incremental mode.

EXAMPLE:

Table 1: Cancel Jog Away

JOG AWAY
PROGRAMMED POSITION MACHINE POSITION
OFFSET
X3.0 Y3.0 X3.1000 Y3.1000 X0.1000 Y0.1000
G28.1 X0 X3.0000 Y3.1000 X0.0000
Y0.1000

Note: The value in the axis word with the G28.1 is irrelevant and is only used
to determine which axis to cancel jog away.

G29 Return from This code is used to return all axes to the initial position established with the
Zero last G28 code used in the program. Motion words in the same block as the G29
will be executed after the axes are returned to the initial position.

EXAMPLE: G29 X5.0

56 Section 3: G Codes April 2003


Fadal User Manual

This only returns the X axis to the INITIAL position before moving incrementally
the programmed amount. All other axes remain at their current location.

G31 Probe Touch The G31 is only used in conjunction with a probe. This code causes the
Function machine to stop motion when the probe is touched and then execution
continues at the next line in the program. The G31 can be used with table or
spindle probes (see also G31.1).

• The motion can be defined in absolute or incremental terms.


• The positions can be stored with a P word, a macro V variable, and out-
put through the RS232 port.
• All G31 moves must be G1 linear moves; no G0, G2, or G3 moves are
allowed.
• Rotation can be in effect when the G31 is used.
• CRC should not be in effect when G31 is used.
• Mirrored axes should be canceled before using the G31 code.
• Fixed cycles need to be canceled before using the probe.

Note: Program a move that would normally be excessive. For example if a one
inch move is required to get the probe up to a wall, use a two inch move in
the program. The probe will stop the motion, and whatever motion is
remaining for that line will be discarded and the control will continue
execution of the program at the next line.

Expect some over travel, if the feed rate used with the move is high, and also if
the stylus in the probe is long. A method for accuracy would be to use the G31
and the G31.1 codes together. Use the G31 at a high feed rate to get up to the
wall. With the high feed rate the stylus is angled and over the edge because of
the time required to read the probe and stop the motion. Then reverse the
motion to move away from the wall with the G31.1 code in the line. Do this at a
slow feed rate. At F1. the motion is slow enough that it will usually stop within
one tenth. The G31.1 will stop motion when the probe is not touching. This
means that the stylus will be perpendicular to the table and directly at the edge
of the wall when the probe is not touching.

If the stylus is not running true, or a chip is in the spindle, the probe will not
give a true position reading. For consistency, use an M19 to orient and lock the
spindle at the same position each time the probe inserted in the spindle. If an
operator is to place the probe in the spindle by hand, orient the spindle prior to
inserting it in the spindle. Sometimes the stylus will work itself loose, confirm
that it is tightly screwed in before using the probe.

April 2003 Section 3: G Codes 57


Fadal User Manual

Storing Probed
Positions

Saving Positions 1) Any software designed to save data from the port will be sufficient to retain
Through the the data.
Rs-232 Port
2) When a touch is made, the motion will stop and the current position will be
output through the port.

G1 G31 X1. F50. This line sends just the X axis location to the port
G1 G31 X2. Y5. F50. This line sends the X and Y locations to the port
G1 G31 X3. Y-4. Z-2. F50. This line sends the X, Y and Z locations to the port

3) Macro SPRINT statements can be used just before the probe line to identify
the information being saved.

#SPRINT “PROBE TOUCH #1:”


G1 X1. Y1. G31

Saving Positions to 1) P1, P2, and P3 are used to save the touch positions when the fixed probe
P Words subroutines are going to be used in the program. See Touch Probe, Section
15.

G1 X3. Y-6. G31 P1 The first touch position is saved to P1


X0 Y0 G5
G1 X0 Y6. G31 P2 The second touch position is saved to P2
X0 Y0 G5
G1 X-3. Y-6. G31 P3 The third touch position is saved to P3
L9101 R1+2. Use probe fixed subroutine function #2 to find center

2) P1, P2, and P3 can be used with the macro PX1-3, PY1-3, PZ1-3, PA1-3,
and PB1-3 variables. When a probe touch (G31) or probe no-touch (G31.1)
is used on a line with a P1, P2, or P3 each axis position is stored regardless
of the axis that moved to get the touch point.

G90 G0 X3. Y-6.


Z1. H21
G1 F30. G31 Z-2.
F1. Z0 G31.1 P1 P1 has stored the XYZAB position at this line
#V1=PZ1
#PRINT “THE TOUCH POINT IS: X”,PX1,", Y",PY1,", AND Z",PZ1

Saving the Position 1) The current position can be saved to a V variable by using a macro AX, AY,
As a V Variable AZ, AA, or AB command.

58 Section 3: G Codes April 2003


Fadal User Manual

G90 G1 X4. Y4. G31 F50.


X0 Y0 G31.1 F1.
#V1=AX This saves the X position to V1
#V2=AY This saves the Y position to V2

G31.1 Probe No This code causes the machine to stop motion when the probe is not touching
Touch Function and then execution continues at the next line in the program. The G31.1 can be
used with table or spindle probes. This code functions exactly like the G31
code. See also G31.

G40 Cutter This code is used to cancel cutter radius compensation. See Section 9 for
Compensation details.
Cancel

G41 Cutter This code is used to activate cutter radius compensation to the left. See
Compensation Left Section 9 for details.

G42 Cutter This code is used to activate cutter radius compensation to the right. See
Compensation Right Section 9 for details.

G43 Tool Length This code is used to apply tool length compensation to the Z axis in the positive
Compensation direction. This code is not required in programs primarily running on the FADAL
Positive control. This code is supported for compatibility with other controls. The
direction of motion is determined by a combination of the sign of the offset
value and the programmed G code (G43, or G44). See the chart below with
G44.

G44 Tool Length This code is used to apply tool length compensation to the Z axis in the
Compensation negative direction. See the chart below. This code is not required in programs
Negative primarily running on the FADAL control. This code is supported for
compatibility with other controls. The direction of motion is determined by a
combination of the sign of the offset value and the programmed G code (G43,
G44).

Table 2: Table Offset

Code If the offset in the table is + If the offset in the table is -


G43 Tool moves in plus direction Tool moves in minus direction
G44 Tool moves in minus direction Tool moves in plus direction

April 2003 Section 3: G Codes 59


Fadal User Manual

G45 Tool Offset This code is used for extending the programmed axis move by a value stored in
Single Expansion the tool offset table. The value is determined by an H word. Program the H
word in the same block with the G45 code and an axis move. Only the block
containing the G45 code is extended.

Note: The G45, G46, G47, or G48 codes may only be used in X only, Y only, or
quarter arc moves. No angular movements or full circles are allowed.

These codes were commonly used before CNC equipment had cutter radius
compensation and fixture offsets.

EXAMPLE: G0 G91
G45 X1.0 H1

The above example extends the 1.0 axis move by the tool length value of offset
#1. Tool length offset is not applied to the Z axis.

To restore extended values to the original programmed values, a single


reduction must be programmed in the opposite direction. See G46.

60 Section 3: G Codes April 2003


Fadal User Manual

G46 Tool Offset This code is used for reducing the program axis move by a value stored in the
Single Reduction tool offset table. See G45.

EXAMPLE: G0 G91
G46 X-1.0 H1

G47 Tool Offset This code is used for extending the program axis move by a value stored in the
Double Expansion tool table. It is similar in function to a G45, but the value determined by the H
word is doubled. See G45.

G48 Tool Offset This code is used for reducing the program axis move by a value stored in the
Double Reduction tool table. It is similar in function to a G45, but the value determined by the H
word is doubled. See G45.

G49 Tool Length This code cancels the current tool length offset programmed by the H word. It
Offset Cancel causes the Z axis to move in the opposite direction and distance of the offset in
the tool table.

• If the position of the Z axis is more than four inches above the program
Z zero, using this code will cause the machine to over travel in the Z
axis. If the tool is higher than four inches, use a G53 Z0 in place of the
G49 Z0 codes. If the G53 Z0 is used, the M6 will automatically cancel
the tool length offset.

EXAMPLE: Z4.5 G80 M5 M9


G53 Z0 Use G53, not G49 when the Z is more than 4. above Z0
M6 T2
This code is similar to using the H0 code to cancel a tool length offset

EXAMPLE: G90 G0 H0 Z0 or G90 G0 G49 Z0 Both would function the same


M6 T2
This code is used at the end of a program just before the M2 or M30 codes

EXAMPLE: G90 G0 G49 Z0


E0 X0 Y0
M2
This code is used on a line just before each M6 line to prevent over travel or
tool crashes during direct mid tape starts on the tool change line

April 2003 Section 3: G Codes 61


Fadal User Manual

G50 Ramp Control This code resets the ramp control to the default values. See G51.
Cancel

G50.1 Mirror Image This code is used to deactivate the mirror image mode.
Cancel

EXAMPLE: G51.1 X0
X3. Y-3.
G50.1 Deactivates mirror image

G51 Ramp Control This code is used to increase or decrease the length of time for the feed ramps
between moves. A feed “ramp” is the time against feed rate on a graph. When
TIME
Ÿ SAVER
a feed rate is specified it requires the user to specify the amount of time to
reach that feed rate and a specify the amount of time to slow down at the end
of a move. Imagine a truck at a stop sign. It takes a certain amount of time to
get up to speed, as opposed to a car at the same stop sign, it would take less
time to get up to speed. With less weight on the table, the ramps could be
reduced. With a heavier weight on the table, the ramps may need to be
lengthened.

A value between .5 and 2, default being 1, is specified with the R0 word. Values
less than 1 will decrease the time, and values greater than 1 will increase the
time.

The sign (+ or -) of the value identifies the controlled axis. For example, R0
used with a negative value controls the ramp length of the X and Y axis.
Positive values control the Z axis.

EXAMPLE: G51 R0-.6 This will decrease the length of all XY feed ramps
G51 R0+.6 This will decrease the length of a Z axis feed ramps

• Use the R0- and R0+ on separate lines.


• This code sometimes has a significant effect on the amount of time
required to execute a particular program. When the feed ramps are
shorter, the time to execute the program is reduced. The more moves
that are involved in the program the more significant the time savings.
The opposite effect would result if the ramps were lengthened.
• The shorter the ramps, the more stress is placed on the machine. If the
machine does not respond favorably to shortened ramps, either don’t
adjust them or lengthen them. The undue stress will affect the axis sys-
tem for each axis unfavorably and cause premature breakdown. The
operator will notice excessive noise from the axes, hot motors, axis

62 Section 3: G Codes April 2003


Fadal User Manual

amplifier faults, and motor overload faults. If the operator notices any of
these symptoms, lengthen the ramps.

G51.1 Mirror Image This code activates the mirror image mode.

The axes to be mirrored are identified in the same block with the G51.1 code.

EXAMPLE: G51.1 X0 Only the X axis will be mirrored


G51.1 X0 Z0 Both X and Z will be mirrored

• No motion will result from a block containing the G51.1 code.


• The mirror mode can be initiated from any position, but for all practical
uses, it should be initiated from the zero position of the axis to be mir-
rored. This is especially true in absolute.
• Absolute and incremental moves can be mirrored.
• Use G50.1 to cancel the mirror mode.
• When mirroring contouring moves, the climb cuts become conventional
and vice-versa. The program may require the G41 codes to be changed
to G42. This is something that a programmer must determine. Some-
times left handed cutters with M4 can be used with contouring moves
that have been mirrored.

EXAMPLE: G0 G90 E1 X0 Y0 Move to the zero position of the axis to be mirrored


H1 Z.1 M7
G51.1 X0 Y0 Mirror X and Y
G1 Z-.25 F40.
X1. Y0 Mirror image position X-1.0 Y0.0
Y-1. Mirror image position X-1.0 Y1.0
X0 Mirror image position X+0.0 Y1.0
G50.1 Cancel Mirror image

April 2003 Section 3: G Codes 63


Fadal User Manual

G51.2 Tool Load This code activates the Tool Load Compensation (TLC) option. The G51.2 and
Compensation (TLC) the following parameters have been designed to automatically adjust the feed
rate according to tool load conditions.
OPTIONA
9 L This option is a time saver because the feed rates can be increased
automatically when conditions allow. Instead of using a generalized “safe” feed
rate, the feed rate can be calculated for the maximum condition, and then
automatically reduced by tool load conditions when it is being cut.

R1 = Target Spindle The R1 variable represents the target spindle load to maintain. If the tool load is
Load (percentage) less than this amount, the feed rate will be increased; if the tool load equals or
exceeds this amount, the feed rate will be reduced.

R2 = Minimum The R2 parameter represents the lowest percentage to modify the feed rate.
Percentage Feed The lowest modification allowed is 20 percent. By reducing the feed rate the
Rate Reduction chip load will also be reduced. If the R2 parameter is too low, the reduced feed
rate may cause excessive tool wear.

R3 = Maximum When cutting conditions are correct and the spindle load is lower than what the
Percentage Feed R1 parameter is set for, the feed rate will be modified by the R3 percentage.
Rate Increase This parameter must be considered carefully because it will affect the chip load
of the tool. If the feed rate increases, so does the chip load. If the chip load
increases too much it may cause the tool to break. It is suggested to select a
maximum percentage for which the tool is designed. To determine this
percentage, select an appropriate feed rate, multiply it by two thirds (.66666),
and use the result for the feed rate in the program. Use an R3 value of +150.
with G51.2 code. For example, if the appropriate feed rate is 30. then
30.*.66666=19.9998 or 20. Modifying 20. by 150% will result in maintaining
the appropriate feed rate when the spindle load is lower than the target load
factor.

R4 = Number of If the feed rate is programmed at the lowest feed rate modification established
Seconds at Minimum by the R2 parameter for longer than the R4 parameter value, the machine will
Feed Rate Until the be placed in SLIDE HOLD. The R2 parameter is the lowest feed rate
Control Activates modification. When used, it is an indication that the tool is getting dull or the
Slide Hold cutting condition is excessive for the tool.

The time to remain in this condition must be determined carefully. It must be


short enough to force the machine into slide hold when appropriate, and long
enough to allow for intermittent periods of expected high load conditions.

Suggested parameters are given in the following example:

EXAMPLE: G0 G90 E1 X0 Y0

64 Section 3: G Codes April 2003


Fadal User Manual

H1 Z1. M7
G51.2 R1+60.0 R2+50.0 R3+150.0 R4+15.0 Activate TLC
G1 F100. Z-.1 ** cut part**
G51.2 R1+0.0 Cancel TLC
M6 T2 An M6 will also cancel TLC

Note: The feed rate to be modified is on the line after the line where the G51.2
was used. No other feed rates should appear after the initial feed rate or
until the G51.2 is canceled.

Canceling G51.2 Use the G51.2 R1+0 in the program at the point where TLC is to be canceled.
(TLC) An M6 will also cancel the TLC mode. See the program example above.

TLC Manual Target When the TLC is active in AUTO, the parameters will be displayed in the upper
Power Override right portion of the screen. As the control adjusts the feed rates, the display will
reflect the changes as they occur. During AUTO the operator may press the +
or - button to manually override the specified target load parameters.

TAR%:60% MOD%:100% POW%: 100%


Target Power R1 Programmed Feed Rate Actual Power

G51.3 Axis Scaling This allows the programmer to scale all or individual axis dimensions. The
G51.3 code with the R1# parameter will scale all axes. The R2# will scale the X
axis only. The R3# is used for the Y axis, and the R4# for the Z axis. The # with
the parameters represents a percentage to scale. The percentage is
represented in the decimal form. For example 2.0 would double the size, .5
would half the size.

EXAMPLE: N1 O1 (PART 1234


** Cut part **
N2 M6T1 (TOOL #1
N3 G0 G90 S2500 M3 E1 X0Y0
N4 H1 D1 Z.1
N4 G51.3 R1+2. Scale all axes by 2 times scale factor 2
** Cut part **
N4074 G51.3 R1+1. Cancel scaling or scale factor 1
N4075 G0 G90 H0 Z0

Circular moves will be scaled according to the axis being scaled. If the X axis is
scaled, the I for the circle center description will be scaled in the same
proportion. The same would apply for the Y and Z axis. When the circles are to

April 2003 Section 3: G Codes 65


Fadal User Manual

be scaled, it is suggested that the axes of the plane selection be scaled


proportionally. For example, in G18 the X and Z axes should be scaled at the
same percentage.

G52 Coordinate This code is used to shift the current Tooling Coordinate System (TCS) similar
System Shift to the way a fixture offset would be used except that the data for the shift is
coded in the program. The current TCS would have been established by either
the CS command, the SETH or SET(axis letter) commands, the G92 code, or
the fixture offset codes G54-59 and E0-48.

This code is used when an absolute subroutine or subprogram needs to be


used at different locations. Whereas an incremental subroutine or subprogram
can be repeated from any location.

Note: G52 does not cause any motion to take place. It only references the new
location on relation to the original zero.

EXAMPLE: L100 (SUB FOR POCKET


G90 G0 X2.Y-2.
Z-.1 G1 F10.
X2.5 G41 F30.
Y-1.
X1.5
Y-3.
X2.5
Y-2.
X2. G40
Z.1 G0
M17
M30
— Program Body —
X2. Y-2. This is the original position
L101 Call subroutine 1, 1 time
G52 X2. Shift original X0 position 2 inches from home
L101 Call subroutine 1, 1 time
G52 X4. Shift original X0 position 4 inches from home
L101 Call subroutine 1, 1 time

66 Section 3: G Codes April 2003


Fadal User Manual

Cancel G52 G52 X0 Shift is canceled to original X0 home


The G52 shift amount is canceled by using another G52 in the program with a
zero shift amount. See the program example above.

G53 Machine This code causes the control to use the machine tool coordinate system. The
Coordinate System machine tool coordinate system is established when the cold start, CS
command was used. This code is useful when it is desired to move to an object
that is secured to the table. The object may be something that is used by many
fixtures or tools from many different jobs. One use may be the TS-27 probe for
setting tools. Another use may be a diamond, used for dressing grinding tools.

The G53 is a non modal code. It will affect only the line in which it exists.

EXAMPLE: G90 X0 Y2. This position is relative to the part home


G53 Y0 The tool will move to the cold start Y0 position
Y0 This position is relative to the part home

• The G53 should be the only G code in the line.


• Code an X position, Y position or any axis position with the G53 to indi-
cate where to move in relation to the machine tool coordinate system.

EXAMPLE: M5 M9
G53 Z0
M6 T4
G53 X-19.75 Y-9.8 (MOVE TO TABLE PROBE
Z-30. G1 F60. G31

• A G53 Z0 is usually used on the line just prior to an M6. This will make a
quicker tool change, and it offers some insurance when doing mid tape
starts that the tool will not crash into the part.

April 2003 Section 3: G Codes 67


Fadal User Manual

G54-G59 Fixture These codes may be used for fixture offset locations E1 - E6. Specify a G54
Offsets code to access fixture offset number 1, a G55 code for number 2, and up to a
G59 code for number 6. For fixture offsets after number 6, the E words must be
used.

These codes are supported for compatibility and can be used in both format
one and two. See Section 11, Fixture Offsets for more details.

EXAMPLE: G0 G90 S3000 M3 G54 X0 Y0


H1 Z1. M7

G66 Modal This code defines a subroutine as being modal. The subroutine is executed at
Subroutine each X, Y, A, B position programmed or when an M45 is coded, in the same
manner as any fixed cycle would be repeated.
SPECIALF
9 EATURE This code is a time saver (and a memory saver) in that the programmer does
not have to type the sub call after each positioning move. It is a memory saver
because the memory space used for each sub call is no longer needed.

• Use G67 to cancel the modal subroutine call.


• Subs can be incremental or written in absolute.

EXAMPLE: O1
L100
G0 G90 Z.05
G1 G91 X.2 Z-.05 F10.
I-.2 G3 Z-.1
I-.2 G3
X-.2
G90G0 Z.05
M17
M30
M6 T1
G0 G90 S3000 M3 E1 X0 Y0
H1 Z1. M7
G66 L101 Defines subroutine 1 to be modal
X3. Y-3. Repeat Subroutine 1 at this location
X6. Y-3. Repeat Subroutine 1 at this location
G67 Cancel G66

68 Section 3: G Codes April 2003


Fadal User Manual

• Fixed subroutines and Fixed Cycles cannot be used in a subroutine that


will be modal, however they can be in a subroutine that will not be
modal.

EXAMPLE: This is the incorrect form of fixed cycles and subroutines in a sub.

O1
L100
G81 G99 R0+.1 Z-.5 F40.
L9307 R0-.75 R1+0 R2+45.
M17
M30
M6T1 (DRILL
G90 G0 S10000 M3 E1 X3. Y-3.
H1 Z.1 M8
G66 L101

Note: Example 2 is not possible without modification.

This is the correctly modified form when fixed cycles and subroutines are in a
sub.

O1
L100
G67 Cancel the modal subroutine at the beginning of the sub
G81 G99 R0+.1 Z-.5 F40.
L9307 R0-.75 R1+0 R2+45.
G66 L101 Make the subroutine L100 modal at this point
M17
M30
M6T1 (DRILL
G90 G0 S10000 M3 E1 X3. Y-3.
H1 Z.1 M8
L101 The sub will be repeated at X3. Y-3.
X6. The sub will be repeated at this location
Y-6. The sub will be repeated at this location
X3. The sub will be repeated at this location
G67 The modal sub is canceled here

April 2003 Section 3: G Codes 69


Fadal User Manual

G67 Cancel Modal The G67 cancels a modal subroutine. The G67 works in the same way as a G80
Subroutine cancels a fixed cycle.

X6. Y-3. Repeat Subroutine 1 at this location


G67 Cancel modal Subroutine 1

G68 Coordinate The G68 activates a mode to rotate the coordinate system of the current plane
System Rotation (Selected by G17, G18 or G19). In G17 only X, Y, I, and J are rotated. In G18
only X, Z, I, and K are rotated. In G19 only Y, Z, and K are rotated.

The angle of rotation is coded in decimal degrees by the R0 word. A positive


value designates counterclockwise rotation. A negative value designates
clockwise rotation. An X, Y or Z word coded with the G68 defines the rotation
center and must be in absolute (G90) terms. All parameters must be in the line
with the G68 code.

EXAMPLE: G68 R0+.56 X0 Y0 Rotate the program around X0 Y0 +.56 degrees


G68 R0-1.2 X1. Y-.5 Rotate the program around X1. Y-.5 by - 1.2 degrees

Rules

• CRC can be used after rotation is in effect and should be canceled


before G69 is used. A part program cannot be rotated while CRC is in
effect.
• Rotation continues until a G69 is coded.
• Fixture offsets are allowed with rotation. The moves to the offsets are
not rotated.
• Rotation must be established prior to Fixed Cycle definitions and affects
only the positions for execution. Fixed cycles and Fixed Subroutines will
not be rotated to another plane.
• All X and Y (or X, Z or Y, Z or X, Y, and Z) positions are required for lin-
ear moves, even if they are zero or non-motion moves.
• In the selected plane, all X, Y, I and J (or X, Z, I, K or Y, Z, J, K) positions
are required for circular moves, even if they are zero or non-motion
moves.
EXAMPLE: G17
G0 G90 E1 X0 Y.25
H1 Z.1
G1F5. Z-.3
G68 X0 Y.25 R0+45.
X0 Y0 G41 CRC turned on after rotation
X1.0 Y0 G1 F30. Code Y even though it is a non-motion move

70 Section 3: G Codes April 2003


Fadal User Manual

X1.0 Y.5 I0 J.25 G3 Code X even though it is a non-motion move


X0 Y.5 Code Y even though it is a non-motion move
X0 Y.25 G40 Code X even though it is a non-motion move
G69 Cancel rotation

G69 Coordinate This code cancels the coordinate system rotation mode (see G68 for program
System Rotation example).
Cancel

G70 Inch This code is used to verify that the operator has set the CNC to the INCH mode.
Programming This code does NOT place the machine in the inches mode. The inch / metric
mode is set with the SETIN or SETP command. See Section 8, SETIN and SETP
commands.

G71 Metric This code is used to verify that the operator has set the CNC to the METRIC
Programming mode. This code does NOT place the machine in the metric mode. The inch /
metric mode is set with the SETME or SETP command. See Section 8, SETME
and SETP commands.

G73-G76, G81-G89 These are a preset series of operations which direct Z axis movement and/or
Fixed Cycles cause spindle operation to complete such actions as boring, drilling, tapping.
The fixed cycle selection is modal. The cycle is repeated after each M45 or X, Y,
A, or B axis move, until the cycle is canceled by a G80. See also Chapter 4,
Fixed Cycles.

G80 Fixed Cycle This code cancels the current fixed cycle.
Cancel

EXAMPLE: N13 X1.0 Y1.0


N14 G80

In Format 1, the Z axis will return to the initial plane.

In Format 2, the Z axis will return to the plane indicated by the use of the G98 or
G99 code.

April 2003 Section 3: G Codes 71


Fadal User Manual

G90 Absolute Input A control mode in which the motion data input is in the form of absolute
dimensions. The values programmed with the axis words are the locations to
move to in relation to the current zero position. See also Coordinate System,
Section 11.

Since blocks are processed in a left to right order, both G90 and G91 may
appear in the same block. G90 and G91 are position sensitive, therefore the
moves to the left of the G90 code will be in absolute until the G91 code is used.
The G90 code is modal and will remain in effect until the G91 code is used.

EXAMPLE: N12 G90 X2. G91 Y1. The X move will be absolute, the Y move will be
incremental
N13 Z-.02 G5 This Z move will be incremental
N14 G90 X4. This X move will be absolute

G91 Incremental This is a control mode in which the motion data input is in the form of
Input incremental data. The values programmed with the axis words are the distance
and direction to move in relation to the current location.

Since blocks are processed in a left to right order, both G90 and G91 may
appear in the same block. G90 and G91 are position sensitive, therefore the
moves to the left of the G91 code will be in incremental until the G90 code is
used. The G91 code is modal and will remain in effect until the G90 code is
used.

EXAMPLE: N12 G90 X2. G91 Y1. The X move will be absolute, the Y move will be
incremental
N13 Z-.02 G5 This Z move will be incremental
N14 G90 X4. This X move will be absolute

72 Section 3: G Codes April 2003


Fadal User Manual

G91.1 High Speed A control mode which enables high speed data block execution. Using the
Execution 1400-2 processor, the CNC executes up to 72 data blocks per second
throughput, whereas normal execution is about 22 per second.
SPECIAL
9 FEATURE • When using the 1400-3 or -4 processor, it is not necessary to use
G91.1, since the throughput is 250 data blocks per second.

In G91.1 mode, motion words must be programmed in incremental and be


segmented. Mid-program (-tape) starts are not allowed in this mode.
Subroutines or subprograms are not allowed in this mode.

The following codes are the only codes allowed during this mode of execution:
G0, G1, G2,G3, G8, G9, M2, M3, M4, M5, M7, M8, M9, M95, X#, Y#, Z#, A#,
B#, F#, I#, J#, K#, S#.

Note: This is best used in Format 2. The G91.1 code is canceled with the
G91.2 code.

Format 1 G90 cancels the G91.2.

G91.2 High Speed The G91.2 is used to deactivate the high speed execution mode in Format 2
Execution Cancel only. High speed execution is best used in Format 2. The G91.1 code is
(Format 2 Only) canceled with the G91.2 code. See Section 2, M Codes, M94.1 for high feed
rate machining.

G92 Absolute Preset The G92 is used to establish a temporary Program Coordinate System (PCS).
The axis words coded in the same line with the G92 establish the current axis
position to those axis words. For example, G92 X3. Y2. would establish the
current position of the machine to X3. Y2. Then all subsequent axis words will
be relative to this new position.

A G28 code can be used to return to the original tool coordinate system. To
cancel the G92, move to the original tool coordinate system with a G90 G28 X0
Y0 or equivalent move, then code a G92 X0 Y0.

• No other codes are allowed in the same block with the G92 except X, Y,
Z, A, or B.

EXAMPLE: G90 G0 X3.75 Y-4.65


G92 X2. Y0 Current location now is X2 Y0

April 2003 Section 3: G Codes 73


Fadal User Manual

G28 X0 Y0 Move to original home


G92 X0 Y0 Cancels the previous G92 preset

See also Section 11, Program Coordinate System.

G93 I/T (Inverse A control mode in which the feed rate is specified as one divided by the time to
Time) Feed Rate complete the move. This value is usually computed by dividing the desired feed
Specification (IPM/ rate by the length of the actual tool path. See Rotary Axes, Section 12, for more
inches, DPM/ details.
degrees)

G94 Feed Rate This is the default code and does not need to be coded in the program. The
Specification MMPM, mode insures that the feed rate will be specified by Millimeters Per Minute,
IPM or DPM Inches Per Minute, or Degrees Per Minute. When rotary axes are programmed
the feed rate is automatically in degrees per minute. When G93 is used, this
code MUST be coded before a linear or rotary axis motion is programmed. See
Rotary Axes, Section 12, for more details.

G98 Return to Initial This is a control mode in which, after performing the fixed cycle, the Z axis is
Plane returned to the Initial plane. This location is identified by the Z axis location
prior to a fixed cycle definition.

G90
H1 Z1. M7
G81 G98 R0+.1 Z-1. F20.X0 Y0
(AFTER DRILLING, Z RAPIDS UP TO INITIAL Z1.

See Section 4, Fixed Cycles, for more details.

74 Section 3: G Codes April 2003


Fadal User Manual

Section 4: Fixed Cycles

Definition A Fixed Cycle is a series of operations that directs Z axis and spindle movement
to execute such actions as boring, drilling, and tapping. G codes 73-76 and
81-89 define the operation, while F, I, J, K, P, Q, R0, and Z words (cycle
parameters) define the style of execution.

Procedure to 1) Turn spindle on (M3,M4) at the desired RPM.


Initialize a Fixed
Cycle 2) Position the tool to the I plane (Initial plane), a point above the part and
fixture where the tool will clear all objects.

3) Define the Fixed Cycle with its parameters.

4) Specify a move with X, Y, A, or B locations to execute the cycle.

O1234 (DRILLING EXAMPLE


G0 G90 S10000 M3 E1 X.5 Y-.5 Start the spindle
H1 M8 Z.1 Position to the I plane
G82 G99 R0+.1 Z-.25 F45. P18 Define the cycle and its parameters
X1. Y-.6 Cycle is executed at this next location

I Plane The I plane (initial plane) is automatically established by the last Z axis position
when the fixed cycle is defined. This is commonly called the maximum Z
clearance position. It is usually established above the highest object on the
part or fixture. It is used with the G98 code to “jump” over obstacles on the part
or fixture. The I plane must always be equal to or above the R plane.

O1234 (DRILLING EXAMPLE


G90 G0 S10000 M3 E1 X.5 Y-.5 Start the spindle H1 M8 Z1.
Z.1 Position to the I plane. The I plane is the last Z position before the cycle
line.
G81 G99 R0+.1 Z-.72 F45. Define the cycle. The R0 plane is equal to the I
plane.
X1. Y-.6 Cycle is executed at this next location

April 2003 Section 4: Fixed Cycles 75


Fadal User Manual

R Plane This represents the location of the R0 plane (or minimum clearance plane). The
R0 plane is where the tool will begin to feed into the material. This location
must be below or equal to the I plane.

EXAMPLE: G90 where the I is equal to the R0 plane


G90 Z.1
G81 R0+.1

EXAMPLE: G91 where the I is equal to the R plane


G90 Z.1
G91
G81 R0+0

EXAMPLE: G90 where the R is below the I plane


G90 Z.1
G81 R0-.2

EXAMPLE: G91 where the R is below the I plane


G90 Z.1
G91
G81 R0-.3

G 98 Return to I G98 is modal and will remain in effect until the G99 code is used. This code is
Plane after Final Z also a default code. It is in effect after the HO command is used, or in format 1
when entering the MDI mode or when the auto button is pressed.

When this code is in effect, the tool will return to the I plane after reaching the
final Z axis position. This code is used when the tool must “jump” over any
obstacle. For this reason, it is important to establish the I plane above any
obstacle. When this code appears on a line with a positioning move the tool will
return to the I plane after the cycle has been executed and the tool has reached
the final Z axis position. (See the fixed cycle example in this section.)

G99 Return to R0 This code is modal and will remain in effect until the G98 code is used. When
Plane after Final Z this code is in effect, the tool will return to the R0 plane after reaching the final
Z axis position.

Cycle Execution
Format 1 Fixed Cycles are activated by one of the following which is determined by the
machine parameter settings (see SETP command):

76 Section 4: Fixed Cycles April 2003


Fadal User Manual

1) Immediately execute a cycle when the cycle is defined. (Typical of format 2)

2) Wait for a positional move to execute a cycle. (Typical of format 1)

Note: For Option 2, the positional move can be in the cycle definition line. If
any position words exist in the cycle definition line, the cycle will execute.

The advantage of option two is that a cycle can be initialized from any location,
and then wait for positional moves. The positional moves can all be within a
subroutine or subprogram. The first hole location does not have to be used in
the cycle definition line.

Format 2 Fixed cycles, in format two, will always execute immediately when the cycle is
defined. The first location to execute the cycle must be in the cycle line or
established prior to the cycle line. An L0, used for cycle suspension, can be in
the cycle definition line to suspend execution.

Format 1 & Format 2 If one or more axis moves appear on the same line as the fixed cycle, the cycle
will be executed at the specified position. The cycle will execute at the end of
the move. The move can be a G0, G1, G2, or G3 move. The feed rate
established before the cycle line is the feed rate that will be used for the
positional moves made with G1, G2, or G3. The feed rate on the cycle line will
only affect the Z axis move.

A cycle can remain in effect when moving from one fixture offset to another. If
the position from the first offset to the next offset is the same, an M45 must be
used to execute the cycle. If a cycle is to be executed without a positional
move, use an M45 code to cause execution of the cycle at the current position.

A cycle definition must appear after a G68 line when rotation is being used. The
positioning moves are the only moves that will be affected by the G68 code.

When using a rotary axis the brake may be applied before the execution of the
cycle. Use an M-60 on the same line with the angular position. The machine
will rotate to the angular position, apply the brake, then execute the cycle.

Fixed cycles may only be used in the G17 mode.

Fixed Cycle
Parameters
F Word Feed rate for drilling and boring.

RPM for tapping (G74, G74.1, G75, G84 and G84.1) Format 1.

April 2003 Section 4: Fixed Cycles 77


Fadal User Manual

Feed rate for tapping (G74, G74.1, G84 and G84.1) Format 2

Q Word 1) Incremental step distance for intermittent functions (G73, G83). I, J, K


words may be used in place of the Q word.

2) Decimal thread lead for tapping (G74, G74.1, G75, G84, G84.1).

How to compute the Q value for tapping cycles:

Inch mode: Divide 1 by the threads per inch. Example:1/4-20 tap 1/20=.05

Metric mode: Multiply .03937 by the lead. Example: 8mm x 1.25 tap (1.25 is
the lead): .03937 X 1.25= .0492. This will be the inch equivalent for the lead.

3) Y+ axis shift amount before raising the Z axis (G76)

P Word Dwell time in milliseconds (G76, G82, G88, G89).

1) Parameter used with G73 and G83 which specifies how far to stop above
the bottom of the last peck. When no P word is specified, the tool will
return, in rapid, to the bottom of the last peck.

2) Percentage factor to alter the retracting feed rate on tapping cycles (G74,
G74.1, G75, G84, G84.1). When the value is 10 percent or less, only the
feed rate is modified. Values over 10 percent modify the feed rate and the
spindle speed.

I Word: Initial Peck, X 1) Initial Peck, the value of the first peck (G73, G83).
Axis Shift G76
2) X axis shift amount before raising the Z axis (G76).

J Word: Reducing 1) Reducing Value of each peck until K is reached.


Value, Y Axis Shift
G76 2) Y axis shift amount before raising the Z axis (G76).

K Word: Minimum Minimum Peck Value (G73, G83).


Peck

L Word: Cycle Repeat This represents a cycle repeat or suspend. The cycle will repeat at the line with
and Suspend, L# or this code the number of times indicated. The use of L0 will suppress the cycle
L0 at that line. This can be used to move around an obstacle without executing the
cycle.

G81 G99 R0+.1 Z-.5 F20.


G91 X2. L5 Drill 5 holes 2.0 apart
G90 Y3. L0 Machine moves without drilling
X9. Machine moves and drills at this location

78 Section 4: Fixed Cycles April 2003


Fadal User Manual

R Plane: R0 +/- # This represents the location of the R plane (or minimum clearance plane). The
R plane is where the tool will begin to feed into the material. This location must
be below or equal to the I plane.

In the absolute mode (G90), the value for this location is relative to Z zero. In
the incremental mode (G91), the value for this location is relative to the I plane.
The R0 value in the incremental mode can never be a positive value.

S Word Spindle Speed for tapping (G74, G74.1, G84 and G84.1) Format 2.

Z Word The Z word establishes two separate locations. The first is the Initial Plane. This
is the location of the Z axis when the fixed cycle is defined. This should be the
minimum clearance above all clamps and fixtures. When a G98 is coded the Z
axis returns to the Z axis location after completion of the final Z depth. The
second use for Z is the final Z depth of the cycle. In absolute mode (G90), it is
the depth relative to zero. In incremental mode (G91), it is the depth below the
R0 plane. The use of the Z word while a cycle is active will redefine the cycle's
final Z depth until the cycle is canceled or changed. It does not redefine the
Initial Plane. When it is desired to change the return point of the Z axis, the R0
must be redefined with the new final Z depth (see example).

Fixed Cycle N1 O1234 (FIXED CYCLE EXAMPLE


Examples N2 M6 T1 (TOOL #1
N3 G0 G90 S8000 M3 E1 X0 Y0 Start the spindle and move to fixture one
N4 H1 M8 Z.1 Move the tool to the initial plane .1 above the part.
N5 G73 G99 R0-.45 Z-1.2 F10. Q.26 X-.5 Y-.35 P.02 Define cycle and execute
at hole #1.
N6 Y-.7 Execute cycle at hole #2 and remain at the R plane.
N7 Y-1.05 G98 Execute cycle at hole #3 and then return to the I plane.
N8 X-2.5 G99 Execute cycle at hole #4 and remain at the R plane.
N9 Y-.7 Execute cycle at hole #5 and remain at the R plane.
N10 Y-.35 Execute cycle at hole #6 and remain at the R plane.
N11 G80 Cancel the fixed cycle and return to the I plane.
The Z axis zero position for this example is established at the top of the part.
The I plane is Z+.1 above the part. The R plane is established Z -.45 from the
top of the part.

April 2003 Section 4: Fixed Cycles 79


Fadal User Manual

2.50
.50

.35
.70
1.05

R PLANE
INITIAL PLANE

.10

.50 .45
1.0 1.2

FINAL DEPTH Z

Figure 4-1 Fixed Cycle Examples

EXAMPLE: The following example performs the same functions as before with various Z
depth changes.

G90 Z.1
G81 G98 R0+.1 Z-.5 F40 X1.0 Y1.0
X2.0 Z-.7 R0+.1
X
X3.0 Z-.3 R0+.1
Y-1.0
Y-2.0 Z-.8 R0+.1

Note: Restate R0 even if not changed.

80 Section 4: Fixed Cycles April 2003


Fadal User Manual

G73 Peck Drilling N3 G73 G99 R0+.1 Z-1.2 F10. Q.1 P.02 X-.50 Y-.35
Using Q

Drill .25 each step (Q.26), returning incrementally +.05 after each peck, then
down -.03 (.05 -.02 due to P.02) to the next peck plane, until the final depth is
accomplished. The Q word can be calculated by dividing the distance from the
R plane to the final Z by the number of desired steps. Example: 1.2+.1=1.3 for
total distance then 1.3 (distance) / 10 (steps)=.1 for the Q value.

G73 Peck Drilling N3 G73 G99 R0+.1 Z-1.2 F10. I.4 J.09 K.01 P.02 X-.50 Y-.35
Using I, J, K

Drill using varying step sizes, returning incrementally +.05 after each peck,
then down -.03 (.05 -.02 due to P.02) to the next peck plane, until the final
depth is accomplished. (See Deep Hole Drilling in this section for details.)

G74 Left Hand N3 G74 G99 R0+.4 Z-1.2 F550.2 Q.05 X-.50 Y-.35
Tapping

Tap at 550 RPM in the high range, with a thread lead of .05 (20 threads per
inch) to the final Z depth, then the spindle stops and reverses, retracting the Z
axis. (See Tapping cycles in this section for details.)

G74.1 Left Hand N3 G74.1 G99 R0+.4 Z-1.2 F2000. Q.05 X-.50 Y-.35
Rigid Tapping

Tap at 2000 RPM in the high range at a feed rate calculated by the CNC, the
spindle stops and reverses, retracting the Z axis to the R plane. (See Tapping
Cycles in this section for details.)

G75 Tapping Head N3 G75 G99 R0+.4 Z-1.2 F2000. Q.050 X-.50 Y-.350
Cycle
Tap at 2000 RPM in the low range, with thread lead of .050 (20 threads per
inch) to the final Z depth, then feed up to the R plane,. (See Tapping cycles in
this section for details.)

G76 Fine Boring N3 G76 G99 R0+.1 Z-1.2 F10. Q.01 X-.50 Y-.35

Bore Z-.55, spindle stop-orient (the orientation will be the opposite of the
starting spindle direction), shift the Y axis +.01, retract the Z axis, then move
the Y axis -.01.

G81 Spot Drilling N3 G81 G99 R0+.1 Z-1.2 F10. X-.50 Y-.35

April 2003 Section 4: Fixed Cycles 81


Fadal User Manual

Drill in one complete motion at a feed rate of 10.0 IPM.

G82 Counter Boring, N3 G82 G99 R0+.1 Z-1.2 F10. P23 X-.50 Y-.35
Center Drilling, Spot
Facing
Bore to depth, dwell for 23 milliseconds then retract the Z axis at high speed.
Dwell time for three revolutions: 180000/RPM = P word value.

G83 Deep Hole N3 G83 G99 R0+.1 Z-1.2 F10. Q.1 P.02 X-.50 Y-.35
Drilling Using Q

Drill .1 each step, returning in rapid after each step to the R plane, then down in
rapid to .02 (P.02) above the last step until the final Z depth is accomplished.
The Q word can be calculated by dividing the distance from the R plane to the
final Z by the number of desired steps. Example: 1.2+.1=1.3 for total distance
then 1.3 (distance) / 13 (steps)=.1 for the Q value.

G83 Deep Hole N3 G83 G99 R0+.1 Z-1.2 F10. I.4 J.09 K.01 X-.50 Y-.35
Drilling Using I, J, K

Drill using varying step sizes, returning after each increment to the R plane then
down until final depth is accomplished. (See Deep Hole Programming Using
G73 and G83 I, J, and K in this section for details.)

G84 Right Hand N3 G84 G99 R0+.1 Z-1.2 F550.2 Q.05 X-.50 Y-.35 (Format 1)
Tapping
Tap at 750 RPM in the high range, with a thread lead of .05 (20 threads per
inch) to final Z depth, then the spindle stops and reverses, retracting the Z axis.
(See Tapping Cycles in this section for details.)

G84 Right Hand N3 G84 G99 R0+.1 Z-1.2 F550.2 Q.05 P2 X-.50 Y-.35
Tapping Using P
Word Tap at 750 RPM in the high range at a feed rate calculated by the CNC, the
spindle stops and reverses, retracting the Z axis to the R plane at a rate faster
than the in feed rate by 2%, as stated by the “P” word. (See Tapping Cycles in
this section for details.)

82 Section 4: Fixed Cycles April 2003


Fadal User Manual

G84.1 Right Hand N3 G84.1 G99 R0+.1Z-1.2 F2000.2 Q.05 X-.50 Y-.35 (Format 1)
Rigid Tapping

Tap at 2000 RPM in the high range at a feed rate calculated by the CNC, the
spindle stops and reverses, retracting the Z axis to the R plane. (See Tapping
cycles in this section for details.)

G85 Bore In, Bore N3 G85 G99 R0+.1 Z-1.2 F10. X-.50 Y-.35
Out

G86 Bore In, Spindle N3 G86 G99 R0+.1 Z-1.2 F10. X-.50 Y-.35
Off, Orient, Rapid
Out

G87 Bore In, Bore N3 G87 G99 R0+.1 Z-1.2 F10. X-.50 Y-.35
Out

G88 Bore In, Dwell, N3 G88 G99 R0+.1 Z-1.2 F10. P23 X-.50 Y-.35
Bore Out
Bore in at a feed rate of 10 IPM. Dwell for 23 milliseconds, then bore out. Dwell
time for three revolutions: 180000/RPM = P word value

G89 Bore In, Dwell, N3 G89 G99 R0+.1 Z-1.2 F10. P23 X-.50 Y-.35
Bore Out Bore in at a feed rate of 10 IPM. Dwell for 23 milliseconds, then bore out. Dwell
time for three revolutions: 180000/RPM = P word value.

Table 1: Cycle Summary

Dwell at Spindle at
Code Movement In Movement Out Typical Usage
Bottom Bottom
G73 Steps - - Rapid Peck Drilling
G74 Feed - Reverses Feed LH Tap Compression Holder
G74.1 Feed - Reverses Feed Left Hand Rigid Tapping
G75 Feed - No Reverse Feed Self Reversing Tapping Head
G76 Feed Yes Orient, Axis Rapid Fine Boring
Shift
G81 Feed - - Rapid Drill
G82 Feed Yes - Rapid Center Drill, Counter Bore
G83 Intermittent - - Rapid Deep Hole
G84 Feed - Reverses Feed RH Tap Compression Holder
G84.1 Feed - Reverses Feed Right Hand Rigid Tapping
G85 Feed - - Feed Boring
G86 Feed - Orient Rapid Boring

April 2003 Section 4: Fixed Cycles 83


Fadal User Manual

Table 1: Cycle Summary

Dwell at Spindle at
Code Movement In Movement Out Typical Usage
Bottom Bottom
G87 Feed - - Feed Boring
G88 Feed Yes - Feed Boring
G89 Feed Yes - Feed Boring

G80 - Cancel Cycles

G98 - Return to initial plane after final Z

G99 - Return to R0 plane after final Z

G73 - Peck Drilling


using Q G73 G99(G98) RO...Z...F...Q...P...(OPTIONAL)
I PLANE
X,Y (G98)

R PLANE
(G99)
Q
P

Q
P
.
Q
Z FINAL
DEPTH

Q=PECK SIZE
P=FEED DISTANCE
(BEFORE PECK)
RAPID MOVES
FEED RATES
Figure 4-2 Peck Drilling Using Q

84 Section 4: Fixed Cycles April 2003


Fadal User Manual

G73 - Peck Drilling


using I, J, K
G73 G99(G98) R0...Z...F...I...J...K...P...(OPTIONAL)
I PLANE
X,Y (G98)

R PLANE
(G99)
I
P

.
P
.
K P
.
K
Z FINAL
DEPTH
I=INITIAL PECK
J=REDUCING VALUE
PREVIOUS
PECK MINUS J
K=MINIMUM PECK
P=FEED DISTANCE
(BEFORE PECK)
RAPID MOVES
FEED RATES
Figure 4-3 Peck Drilling Using I, J, K

April 2003 Section 4: Fixed Cycles 85


Fadal User Manual

G74 - Left Hand


Tapping (Format 1)
FORMAT 1
G74 G99(G98) RO...Z...F...Q...P..
...(OPTIONAL)

I PLANE
X,Y (G98)

SPINDLE
REVERSE

R PLANE
(G99)

. Z FINAL
DEPTH
SPINDLE FORWARD

F=RPM
Q=THREAD LEAD
P=RETRACT FEED %
(OPTIONAL)
RAPID MOVES
FEED RATES
Figure 4-4 Left Hand Tapping (1)

86 Section 4: Fixed Cycles April 2003


Fadal User Manual

G74 - Left Hand


Tapping (Format 2)
FORMAT 2
G74 G99(G98) RO...Z...F...P..
...(OPTIONAL)

I PLANE
X,Y (G98)

SPINDLE
REVERSE

R PLANE
(G99)

. Z FINAL
DEPTH

SPINDLE FORWARD

F=RPM
P=RETRACT FEED %
(OPTIONAL)
RAPID MOVES
FEED RATES
Figure 4-5 Left Hand Tapping (2)

April 2003 Section 4: Fixed Cycles 87


Fadal User Manual

G75 - Tapping Head


Cycle
(Formats 1 & 2) FORMAT 1 & 2
G75 G99(G98) RO...Z...F...Q...P..
...(OPTIONAL)

I PLANE
X,Y (G98)

SPINDLE
REVERSE

R PLANE
(G99)

. Z FINAL
DEPTH

F=RPM
Q=THREAD LEAD
P=RETRACT FEED %
(OPTIONAL)
RAPID MOVES
FEED RATES

Figure 4-6 Tapping Head Cycle (1&2)

G76 - Fine Boring


Using Q G76 G99(G98) RO...Z...F...Q.

I PLANE
X,Y (G98)

R PLANE
(G99)

X+
SHIFT
. Z FINAL
DEPTH
SPINDLE STOP
AND ORIENT

Q=AMOUNT OF Y+ SHIFT
RAPID MOVES
FEED RATES
Figure 4-7 Fine Boring Using Q

88 Section 4: Fixed Cycles April 2003


Fadal User Manual

G76 - Fine Boring


Using I, J G76 G99(G98) RO...Z...F...I...J...

I PLANE
X,Y (G98)

R PLANE
(G99)

X&Y
SHIFT
. Z FINAL
DEPTH
SPINDLE STOP
AND ORIENT

I=AMOUNT & DIRECTION OF X SHIFT


J=AMOUNT & DIRECTION OF Y SHIFT
RAPID MOVES
FEED RATES
Figure 4-8 Fine Boring Using I, J

G81 - Spot Drilling Note: Use G82 for center drilling.


G81 G99(G98) RO...Z...F...

I PLANE
X,Y (G98)

R PLANE
(G99)

. Z FINAL
DEPTH

RAPID MOVES
FEED RATES
Figure 4-9 Spot Drilling

April 2003 Section 4: Fixed Cycles 89


Fadal User Manual

G82 - Counter Use this for center drilling, counter sinking, and counter boring.
Boring
Dwell time for three revolutions is calculated: 180000/RPM=P word value
G82 G99(G98) RO...Z...F...P...

I PLANE
X,Y (G98)

R PLANE
(G99)

DWELL

. Z FINAL
DEPTH

P=AMOUNT OF DWELL
(IN MILLISECONDS)
RAPID MOVES
FEED RATES
Figure 4-10 Counter Boring

G83 - Deep Hole


Drilling Using Q G83 G99(G98) RO...Z...F...Q...
P...(OPTIONAL)

I PLANE
X,Y (G98)

R PLANE
(G99)
Q

Q
Z FINAL
DEPTH

L=PECK SIZE
P=FEED DISTANCE BEFORE
PECK (OPTIONAL)
RAPID MOVES
FEED RATES
Figure 4-11 Deep Hole Drilling Using Q

90 Section 4: Fixed Cycles April 2003


Fadal User Manual

G83 - Deep Hole


Drilling using I, J, K
G83 G99(G98) R0...Z...F...I...J...K...P...(OPTIONAL)
I PLANE
X,Y (G98)

R PLANE
(G99)
I
P

.
P
.
K P
.
K
Z FINAL
DEPTH
I=INITIAL PECK
J=REDUCING VALUE
PREVIOUS
PECK MINUS J
K=MINIMUM PECK
P=FEED DISTANCE
BEFORE PECK
RAPID MOVES
FEED RATES
Figure 4-12 Deep Hole Drilling Using I, J, K

April 2003 Section 4: Fixed Cycles 91


Fadal User Manual

G84 - Right Hand


Tapping (Format 1)
FORMAT 1
G84 G99(G98) RO...Z...F...Q...P..
...(OPTIONAL)

I PLANE
X,Y (G98)

SPINDLE
FORWARD

R PLANE
(G99)

. Z FINAL
DEPTH
SPINDLE REVERSE

F=RPM
Q=THREAD LEAD
P=RETRACT FEED %
(OPTIONAL)
RAPID MOVES
FEED RATES
Figure 4-13 Right Hand Tapping (1)

92 Section 4: Fixed Cycles April 2003


Fadal User Manual

G84 - Right Hand


Tapping (Format 2)
FORMAT 2
G84 G99(G98) RO...Z...F...P..
...(OPTIONAL)

I PLANE
X,Y (G98)

SPINDLE
FORWARD

R PLANE
(G99)

. Z FINAL
DEPTH

SPINDLE REVERSE

F=RPM
P=RETRACT FEED %
(OPTIONAL)
RAPID MOVES
FEED RATES
Figure 4-14 Right Hand Tapping (2)
G85 - Bore In, Bore
Out G85 G99(G98) RO...Z...F

I PLANE
X,Y (G98)

R PLANE
(G99)

. Z FINAL
DEPTH

RAPID MOVES
FEED RATES
Figure 4-15 G85-Bore In, Bore Out

April 2003 Section 4: Fixed Cycles 93


Fadal User Manual

G86 - Bore In,


Spindle Off, Rapid G86 G99(G98) RO...Z...F
Out
I PLANE
X,Y (G98)

R PLANE
(G99)

. Z FINAL
DEPTH

SPINDLE STOP
AND ORIENT

RAPID MOVES
FEED RATES
Figure 4-16 G86-Bore In, Spindle Off, Rapid Out

G87 - Bore In, Bore


Out G87 G99(G98) RO...Z...F

I PLANE
X,Y (G98)

R PLANE
(G99)

. Z FINAL
DEPTH

RAPID MOVES
FEED RATES
Figure 4-17 G87-Bore In, Bore Out

94 Section 4: Fixed Cycles April 2003


Fadal User Manual

G88 - Bore In, Dwell, Dwell time for three revolutions is calculated: 180000/RPM=P word value
Bore Out G88 G99(G98) RO...Z...F

I PLANE
X,Y (G98)

R PLANE
(G99)

. Z FINAL
DEPTH

DWELL

P=DWELL IN MILLISECONDS
RAPID MOVES
FEED RATES
Figure 4-18 G88-Bore In, Dwell, Bore Out

G89 - Bore In, Dwell, Dwell time for three revolutions is calculated: 180000/RPM=P word value
Bore Out

G89 G99(G98) RO...Z...F

I PLANE
X,Y (G98)

R PLANE
(G99)

. Z FINAL
DEPTH

DWELL

P=DWELL IN MILLISECONDS
RAPID MOVES
FEED RATES
Figure 4-19 G88-Bore In, Dwell, Bore Out

April 2003 Section 4: Fixed Cycles 95


Fadal User Manual

Tapping Cycles The fixed cycle used for tapping is depends on which tapping attachment is
being used. The cycles and examples given here have been approved by the
tapping attachment manufacture specified.

General Tapping Ramping:


Rules
Program a G8 (No Ramps) for the tap operation. This allows the tool to feed at
a constant rate in and out of the hole.

Clearance:

The rapid plane (R0 Plane) should be at least .4 above the hole to be tapped.
This insures that the tap fully retracts prior to movement to the next position.

Spindle Speed:

When using the G74 and G84 cycles, the spindle should be programmed for
the high gear range. This will provide better spindle reversal for tapping. This is
accomplished by programming a “.2" at the end of the S word or F word. For
example, S1000.2 or F1000.2 sets the spindle speed at 1000 rpm in the high
gear range.

Feed Rate:

The feed rate is determined by the thread lead and spindle RPM. The thread
lead is calculated as 1 divided by the number of threads per inch. When using
G74 and G84, the feed rates may be programmed differently for Format 1 and
Format 2. When using the G85 cycle for tapping, the feed rate must be
calculated by the programmer for Format 1 or Format 2. When using rigid
tapping in Format 2 and the F word requires decimal entries, use at least three
place accuracy.

Format 1 The feed rate is calculated by the control. These cycles are programmed using
the F word for RPM and the Q word for thread lead. G74, G75 and G84
calculate the feed rate as the RPM times the thread lead. These cycles
automatically use 100 percent of this calculation for the feed rate into the hole
and 105 percent for the feed rate out of the hole. The P word may be used to
increase or decrease the feed rate out of the hole. Use a positive P to increase
and a negative P to decrease the feed rate out of the hole.

Format 2 The feed rate must be calculated by the programmer. These cycles use the F
word as feed rate and do not use the Q word. The F word in the cycle indicates
the calculated feed rate.

96 Section 4: Fixed Cycles April 2003


Fadal User Manual

Feed Rate The feed rate programmed should use 100 percent of the optimum feed rate.
Calculation The optimum feed rate is the RPM times the thread lead.

EXAMPLE: 1/4-20 Tap at 2000 RPM


Feed rate = (1 / threads per inch) * RPM
= (1 / 20) * 2000
= .05 * 2000
= 100.

Blind Holes:

The procedure described is ONLY a guideline for blind hole tapping. Begin
tapping to a depth 2/3 of the desired final Z depth. Gradually increase the
programmed depth until the final Z depth is reached. This method reduces the
possibility of feeding the tool into the material at the bottom of the hole.

Tap Sizes:

Tapping attachments vary with the desired size of the tap. Insure the proper
attachment is used for the tap size. The chart below lists the recommended
minimum and maximum size tap for each attachment.

Table 2: TAPMATIC

SERIES MAX RPM TAP CAPACITY MAX CUTTING MAX FORMING


NCR-00 5000 #00 - #4 #4 #3
NCR-0A 3000 #4 - 1/4 1/4 1/4
NCR-1A 2000 #10 - 1/2 1/2 1/2
NCR-2A 1000 3/8 - 3/4 3/4 9/16
SPD-3 2000 #0 - 1/4 1/4 1/4
SPD-5 1500 #6 - 1/2 1/2 1/2
SPD-7 1200 #10 - 3/4 3/4 9/16

Table 3: PROCUNIER

SERIES MAX RPM TAP CAPACITY MAX CUTTING MAX FORMING


15001 3000 #0 - 1/4 1/4 #10

Note: The maximum cutting and forming tap sizes for the Tapmatic are based
on free machining steel. When tapping aluminum, the tap size should not
exceed the tapping attachment maximum size.

April 2003 Section 4: Fixed Cycles 97


Fadal User Manual

Program Coding:

Program coding varies with the tapping attachment and the machine format.
Below are examples of the most common uses and attachments.

Metric Threads:

Metric threads may be cut in the inches mode. The Q word is calculated using
the thread pitch of the tap. The thread pitch is multiplied by .03937 to convert
to inches for the control. For an m8 x 1.25 thread, the Q word is calculated as
follows:

EXAMPLE: Format 1
Q = 1.25 * .03937
Q = .0492
H1 Z1.0 M8
G84 G98 R0+.4 Z-1.025 F500.2 Q.0492 X.5 Y-.5

Program Examples The following examples describe the program for a 1/4-20 thread, .3 deep, at
2000 rpm.

EXAMPLE: Format 1
N52 G0 G90 S2000 M3 E1 X0 Y0
N53 H1 M7 Z.4
N54 G84 G99 R0+.4 Z-.3 F2000 Q.05 X0 Y0
N55 X.5
N56 X1.
N57 G80

Rigid Tapping Rigid tapping may be accomplished for right or left hand threads. The rigid
tapping cycles are programmed in the same manner as the compression tap
OPTIONAL holders. The taps may be held in a collet or solid tool holder.
9 FEATURE
Note: Rigid tapping requires a special drive for operation. The machine must
also have a C axis controller for the spindle. In the back panel of the VMC,
the spindle driver should be labeled with Horsepower and Rigid Tap. If the
VMC only has a Horsepower label, it does not have Rigid Tap. Please refer
to the VMC Maintenance Manual for further information.

Note: 10,000 rpm spindle 3,000 rpm max, 7,500 rpm spindle 1,500 rpm
max, 15,000 rpm spindle 3,000 rpm max.

The program codes for rigid tapping are G74.1, G74.2, G84.1, and G84.2. The
G74.1 and G84.1 are coded the same as G74 and G84. Prior to beginning the

98 Section 4: Fixed Cycles April 2003


Fadal User Manual

tapping cycle, the machine prepares the spindle. This is an automatic process
accomplished by four revolutions of the spindle. The preparation is done after
the H offset is applied and just before the cycle begins. The use of the G74.2 or
G84.2 prepares the cycle for execution during the H offset application.

The machine uses the low range for tapping at 750 rpm and below. When the
rpm is above 751 the machine uses the high range. When using the G84.2 or
G74.2, and the programmed rpm is above 750, the S#.2 should be used on the
initial spindle speed call. This sets the proper belt range for the cycle
preparation. The G84.1 and G74.1 automatically set the proper range for
preparation. The G74.1 and G84.1 automatically release the spindle
orientation lock. The rpm specified, before and after the H word must be the
same.

The Gain parameter setting (in SETP) is used to adjust the spindle speed and
feed rate correlation. The gain may be set from 0 to 255. Please contact your
dealer or refer to the VMC maintenance manual for further information.

The Ramp parameter setting (in SETP) is used to adjust the acceleration time
of the spindle. The ramp may be set from 0 to 100. The higher the ramp
number, the longer the time for acceleration.

EXAMPLE: N52 G0 G90 S.2 M5 G80 M90 Do not turn the spindle on!
N53 G84.2
N54 H1 M7 Z.4
N55 G84.1 G99 R0+.4 Z-.3 F2000.2 Q.05 X0 Y0
N56 X1.
N57 G80

EXAMPLE: N52 G0 G90 S2000.2 M5 G80 M90 Do not turn the spindle on!
N53 G84.2
N54 H1 M7 Z.4
N55 G84.1 G99 R0+.4 Z-.3 S2000.2 F100. X0 Y0
100% feed calculation here

N56 X1.
N57 G80

Tapmatic NCR Series The tapping heads in this series should use the G85 Bore Cycle. The feed rate
and spindle potentiometers should be disabled. The following formula
calculates the required feed rate.

April 2003 Section 4: Fixed Cycles 99


Fadal User Manual

M48, M49:

When using the Bore Cycle (G85), the feed rate and spindle speed
potentiometers must be disabled. With the potentiometers disabled the
machine uses the programmed feed rates. This is accomplished with the M49
code. At the completion of the cycle the potentiometers should be enabled with
the M48 code.

Feedrate = ((1 / threads per inch) * RPM) * 95%


= ((1 / 20) * 2000) * .95
= (.05 * 2000) * .95
= 100. * .95
= 95.

EXAMPLE: (Format 1 or Format 2):

N1 O1 (TAPMATIC NCR SERIES


N2 G0 G8 G90 S2000 M3 E1 X0 Y0
N3 H1 M7 Z.4
N4 M49
N5 G85 G99 R0+.4 Z-.3 F95. X0 Y0
N6 X1.
N7 G80 M48
N8 M5 M9

Tapmatic SPD Series The tapping heads in this series should use the G75 Tapping Cycle.

EXAMPLE: (Format 1 or Format 2):

N1 O1 (TAPMATIC SPD SERIES


N2 G0 G8 G90 S2000 M3 E1 X0 Y0
N3 H1 M7 Z.4
N4 G75 G99 R0+.4 Z-.3 F2000. Q.05 X0 Y0
N5 X1.
N6 G80
N7 M5 M9

100 Section 4: Fixed Cycles April 2003


Fadal User Manual

Procunier Series The tapping heads in this series should use the G75 Tapping Cycle.

EXAMPLE: (Format 1 or Format 2):

N1 O1 (PROCUNIER SERIES
N2 G0 G8 G90 S2000 M3 E1 X0 Y0
N3 H1 M7 Z.4
N4 G75 G99 R0+.4 Z-.3 F2000. Q.05 X0 Y0
N5 X1.
N6 G80
N7 M5 M9

Compression (non These tapping heads should use the G84 or G74 Tapping cycle. It is best to use
self-reversing) Tap these in the high range (S word with a .2). The P word may be used to increase
Holder Series the feed rate of the tap when it reverses, if the F word is used for the RPM and
the Q word is used for the lead. The G74 is used in Format 1 style ONLY.

EXAMPLE: Format 1:

N1 O1 (COMPRESSION TAP HOLDER SERIES


N2 G0 G8 G90 S1000.2 M3 E1 X0 Y0
N3 H1 M7 Z.4
N4 G84 G99 R0+.4 Z-.3 F1000. Q.05 X0 Y0
N5 X1.
N6 G80
N7 M5 M9

EXAMPLE: Format 2:

The following formula calculates the required feed rate:

Feed rate = ((1 / threads per inch) * RPM)


= ((1 / 20) * 1000)
= (.05 * 1000)
= 50.
N1 O1 (COMPRESSION TAP HOLDER SERIES
N2 G0 G8 G90 S1000.2 M3 E1 X0 Y0
N3 H1 M7 Z.4
N4 G84 G99 R0+.4 Z-.3 S1000.2 F50. X0 Y0 100% feed calculation here
N5 X1.
N6 G80
N7 M5 M9

April 2003 Section 4: Fixed Cycles 101


Fadal User Manual

Deep Hole The G73 and G83 I, J, K programming options allow the programmer to
Programming Using customize the drill cycle steps up to the final Z depth. This would be used when
G73 and G83 I, J, the steps can be large at the top of the hole and need to be reduced as the tool
and K feeds deeper into the part.

Initial Peck: I# The I word represents the depth of the first peck starting from the R plane
(minimum clearance plane). The rule of thumb for this value is 2 to 3 times the
diameter of the drill but may be larger or smaller as required. This value is
always an incremental value.

Reducing Factor: J# The J word represents a reducing value. The J value will be subtracted from the
I value for the second peck and from each subsequent peck. Each peck will be
smaller than the last peck by the amount of the J value until the peck size is
equal to the K value. This value is always an incremental value.

Minimum Peck: K# The K word represents the minimum peck value. The I value will be reduced by
the J value until the K value is reached. The remainder of the hole will be drilled
in a series of pecks each equal to the K value.

Feed Distance The P word represents the distance to feed before the next peck. Without the P,
Before Next Peck: P# the tool will rapid all the way to the next peck. The P will specify how far above
he next peck to begin feeding into the material. This parameter is especially
helpful if chips fall into the hole during a retraction move. The tool will not crash
into the chips if the P value is large enough.

Peck Drill: G73 The G73 peck drilling cycle is a chip breaker cycle that does not retract all of the
way out of the hole. The retract distance is set by the CNC and cannot be
changed by the programmer. It is an excellent cycle for free machining
materials and drill geometries that allow for efficient chip removal. In these
cases there is a time savings in the cycle because the drill does not retract out
of the hole.

Deep Hole Drill: G83 The G83 Peck Drilling Cycle retracts to the R plane (minimum clearance plane)
on the completion of each peck. It is an excellent cycle to break and clear chips
and for drill geometries that are prone to packing chips.

EXAMPLE: This example is for a 1/4 dia drill drilling 1 1/4 inches deep.

EXAMPLE: G73:

G73 X0 Y0 Z-1.25 R+.1 I.5 J.2 K.1 F10. G98 (G99)

102 Section 4: Fixed Cycles April 2003


Fadal User Manual

Section 5: Subroutines & Subprograms

Subroutines Subroutines are used for contours, hole patterns, or any actions that repeat or
are used in many locations. Typically subroutines will contain only positional
moves. Feed rates, tool changes, spindle speeds, rotation, and other codes are
reserved for the main program. However, most codes can be in a subroutine.

All user defined subroutines must be at the beginning of the program before
the main section of the program. Only the O word and comments may be used
prior to the first subroutine. Subroutines cannot be defined in a
subprogram. However, if the START macro command is used, subroutines can
be defined in subprograms (see Section Eighteen, Macros).

Beginning a The format of the L word for a subroutine definition is LNNKK.


Subroutine
NN is the subroutine number (01-89).

KK will always be 00 (zero, zero).

EXAMPLE: L0100 (or L100) This would define the beginning of subroutine number 1
L2300 This would define the beginning of subroutine number 23

The maximum number allowed for NN is 89. Subprograms 90 - 99 are used by


the control for Fixed subroutines (see Section Six, Fixed Subroutines). The line
with the L word that defines the subroutine can only have a parenthesis or an
asterisk for a comment. No other codes are permitted.

Calling a Subroutine The format for the subroutine call is LNNKK. NN is the subroutine number (01-
99). KK is the number of repetitions (01-99).

EXAMPLE: L101 This would call, or use, subroutine number 1, one time
L2315 This would call, or use, subroutine number 23, fifteen times

The LNNKK word must be the only word in the block in which it appears with
the exception of R parameter definitions, G66, and a parenthesis or an asterisk
for a comment. After a subroutine has been executed, it will return to the line
where it was called and the program will continue from that line.

April 2003 Section 5: Subroutines & Subprograms 103


Fadal User Manual

Ending a Subroutine A subroutine ends with the L word that starts the next subroutine or with an
M17. The M17 must be the only word in the block in which it appears.

The last subroutine in the program MUST have an M17 coded at the end.

Main Program An M30 marks the end of the subroutine section and the start of the main
program. An M17 marks the end of the last subprogram, which must be on a
line before an M30. The M30 must be the only word in the block in which it
appears.

When the operator presses the auto button the control will process the
program. The control will recognize the existence of subroutines by the L #00 at
the beginning of the program. The control will then recognize the beginning of
the main program by the M30 code. When the control is ready to run, the line
just after the M30 will be the first line to appear on the screen of the pendent.

When the M30 is used to end the subroutine section, an M2 is used to end the
program. At the end of the program, the M2 will cause the program to begin
again at the line after the M30 code.

EXAMPLE: N10 M17 This marks the end a sub


N11 M30
N12 G0 G90 S2000 M3 E1 X0 Y0 End of subroutine section
N13 H1 M7 Z.1 Beginning of the Main program
N14 L201 Sub #2 one time. When sub #2 is complete it will return here
N15 M5 M9 G80

104 Section 5: Subroutines & Subprograms April 2003


Fadal User Manual

Nesting A subroutine may be called for execution from another subroutine. This is
called subroutine “nesting.”

Subroutines may be nested as many as seven deep. This means that at some
point in a subroutine another subroutine can be called, and then from that
subroutine another can be called and so forth up to seven times.

Subroutines cannot be defined in a subprogram. However if the START


marco command is used, subroutines can be defined in subprograms (see
Section Eighteen, Macros).

EXAMPLE: N1 O1234 (SUBROUTINE EXAMPLE PROGRAM


N2 L100 This marks the beginning of sub #1
N3 X.5 Y.5
N4 X-.5
N5 G80
N6 M17 This marks the end a sub
N7 L200 This marks the beginning of sub #2
N8 G81 G99 R0+.1 Z-.1 F35.
N9 L101 Sub#1 is being called from sub #2. Sub #1 is nested inside sub#2
N10 M17 This marks the end a subroutine
N11 M30 End of subroutine section
N12 G0 G90 S2000 M3 E1 X0 Y0 Beginning of the Main program
N13 H1 M7 Z.1
N14 L201 Sub #2 one time. When sub #2 is complete it will return here
N15 M5 M9 G80
N16 G0 G49 G90 Z0
N17 M2 End of the Main program. In the auto mode the program will rerun
from line N12

EXAMPLE: Drill and Tap 2 holes using subroutine to define positions.


N1 O1 (SAMPLE PROGRAM
N2 L100 Define Subroutine 1
N3 X.5 Y.5
N4 X-.5
N5 G80
N6 M17 End Subroutine
N7 M30 End of Subroutine definition
N8 M6 T1
N9 Tool #1 drill
N10 G0 G90 S3500 M3 E1 X0 Y0
N11 H1 M7 Z.25 Start main program

April 2003 Section 5: Subroutines & Subprograms 105


Fadal User Manual

Drill cycle
N12 G81 G99 R0+.1 Z-.475 F20.
N13 L101 Call Subroutine 1
N14 N15 M6 T2 Tool #2 tap
N16 G0 G90 S600 M3 E1 X0 Y0
N17 H2 M7 Z.25
N18 G84 G98 R0+.1 Z-.5 F600. Q.05 Tap Cycle
N19 L101 Call Subroutine
N20 M5 M9
N21 G0 G49 G90 Z0
N22 E0 X0 Y0
N23 M6 T1
N24 M2

• Block N2 uses the L word to identify the beginning of the subroutine.


• Block N3 through N4 identify the X and Y locations.
• Block N6 uses M17 to define the end of the subroutine.
• Block N7 uses M30 to define the end of subroutine definition and the
beginning of the main program.

Upon execution of the program, the CNC always begins processing from the
first block. When the first block contains the L word, the CNC examines each
following block, until the M17, M30 codes are encountered. The execution
begins with the block following the M30.

The example program begins execution from block N8. Block N13 causes
program execution from block N2 until the M17 is encountered at block N6.

After completing the subroutine call, the program execution is returned to the
next block following the subroutine call (N14).

106 Section 5: Subroutines & Subprograms April 2003


Fadal User Manual

Parametric Generalized subroutines can be written with the use of subroutine parameters.
Programming In a generalized subroutine, the numerical value of the A, B, E, F, G, H, I, J, K,
L, M, P, Q, R, S, T, X, Y, Z words need not be specified directly. Values that are
to be determined at the time of the subroutine call are specified indirectly by
the use of the parametric reference "R". There are ten parameters, R0 through
R9.

X+R1 directs the CNC to take the current value of parameter R1 as the value for
the X word. X-R1 directs the CNC to take the negative of the current value of
parameter R1 as the value for the X word.

The values of the parameters are modal. They are modified by programming
an R word in a line of code. For example:

R0+.137 defines the value of parameter R0 to +.137. This value is used by any
R0 in the program until it is redefined.

In the example below, subroutine L100 is a generalized subroutine to create a


“D” pattern. Block N7 of the example calls the subroutine with the parameters
R0 and R1 set to 2.0 and 1.0 respectively.

EXAMPLE: N1 L100 (DEFINE SUBROUTINE 1


N2 G1 Y+R0 (FIRST LEG OF “D” PATTERN
N3 G2 X+R1 Y-R1 J-R1
N4 G2 X-R1 Y-R1 I-R1 (BACK TO BEGINNING
N5 M17
N6 M30 (END OF SUBROUTINE DEFINITION
N7 L101 R0+2. R1+1. (CALL SUBROUTINE 1, (EXECUTE 1 TIME

All R values are modal, and are not cleared at the beginning of a program. The
values are cleared at power on and are zero until they are defined.

April 2003 Section 5: Subroutines & Subprograms 107


Fadal User Manual

Indefinite Subroutine In some cases a subroutine needs to be repeated an indefinite number of


Repetitions times. This is accomplished by using a .1 extension at the end of a subroutine
call.

N1 L100
N2 E1 X.45 Y-1.05
N3 G81 G99 R0+.1 Z-.75 F80. X.5 Y-1.
N4 X2.5
N5 G80
N6 Z1.
N7 E0 X0 Y0
N8 G4 P66000 The machine is in the Waiting state, spindle & coolant on
N9 M17
N10 M30
N11 G90 G0 S10000 E1 X.45 Y-1.05
N12 H1 Z1. M7
N13 L101.1 The .1 extension repeats sub #1 an indefinite number of times
N14 M2

Subprograms Subprograms function for the same purpose as a subroutine. They can be
used instead of subroutines. For program editing purposes a program that
uses subroutines is easier to edit. The operator can edit both the main and
subroutine section of the program without switching to another program.
Editing a subprogram requires that the operator first switch to the subprogram,
edit, then switch back to the main program. The main program must be
currently active to execute the program.

Subprograms are generally used in Format 2 style programs. A main program


is identified by the use of the M30 code at the end, which functions like the M2
would in a Format 1 style program. The subprogram is identified by using the
M99 code at the end. The M99 functions as the point to either return to the
beginning of the subprogram for a repeat, or to return to the line where the
subprogram was called.

Subprograms cannot contain subroutines. However a subprogram can be


called from a subroutine. If START macro command is used, subroutines can
be defined in subprograms (see Section Eighteen, Macros).

EXAMPLE: O1 (MAIN PROGRAM


G90 G0 G17 G80 G40 G49 Z0
M6 T1 (TOOL #1
S2000 M3 G54 X0 Y0

108 Section 5: Subroutines & Subprograms April 2003


Fadal User Manual

H1 D1 Z1. M8
G82 G99 R0+.1 Z-.25 F45.

M98 P2 L1 Call subprogram #2 one time. This is where the sub returns after
execution
M5 M9
G80
G90 G0 G49 Z0
M6 T2 (TOOL #2
G90 G0 S2000 M3 G54 X0 Y0
H2 D2 Z1. M8
G83 G99 R0+.1 Z-2.1 F37. Q.3143

M98 P2 L1 Call subprogram #2 one time. This is where the sub returns to after
execution
M5 M9
G80
G0 G90 G49 Z0
G59 X0 Y0
M30
O2 (SUBPROGRAM FOR HOLE LOCATIONS
X2. Y1.
X3. Y1.
M99 End of subprogram and return to main program

April 2003 Section 5: Subroutines & Subprograms 109


Fadal User Manual

This page intentionally left blank.

110 Section 5: Subroutines & Subprograms April 2003


Fadal User Manual

Section 6: Fixed Subroutines

Definition Fixed Subroutines are dedicated cycles, standard in the memory of the control.
They are called by the use of an L word (L9101 - L9901) and will use
parameters (R0-R4, Z, & F). Fixed subroutines can be used during programs
run from memory or DNC operations. Subroutine calls are not allowed in MDI.

L9101 Probe See the Probe section for L9101 applications.


Functions

Engraving
L9201 Engraving Engraving functions are invoked by using the L9201 code. The L9201 function
Functions is capable of engraving either a constant text/number string or a serialized text/
number string. All lettering is uppercase.

Parameters 1) A tool must have been specified by an H or D word.

2) The Z word defines the final depth of cut for the cycle. The maximum Z
depth from R0 plane to final is 2.5 inches.

3) The R0 word is used to define the clearance plane for the tool to move
above the part. The tool retracts to this plane when moving between
characters, changing position to continue the same character, or after the
last character is engraved.
4) R1 defines mode selection of four options:

a. A value of 0 for standard Gothic font (R1+0.).


b. A value of 1 for stencil type Gothic font (R1+1.).
c. A value of 2 for serialization standard font (R1+2.).
d. A value of 3 for serialization stencil font (R1+3.).

5) R2 represents the height of characters to be engraved minus the tool


diameter. The maximum character height is 2.5 inches.

6) R3 represents the angle at which the characters are to be engraved.(see


figure

April 2003 Section 6: Fixed Subroutines 111


Fadal User Manual

7) R4 is the serialization increment selector (1-9). Enter the R4 value for the
increment amount. R4+1. increments the number by one for each part. R1
must be R1+2 or R1+3 to allow R4 to function.
8) F is the feed rate.

9) The comment or words typed after the ( (left parenthesis) will be engraved.

Restrictions 1) The maximum number of characters (including spaces) that can be


engraved in each use of the L9201 code is 63 minus the number of
characters used to code the first part of the L9201 line itself.

2) When serializing, the last part of the text/number string must be the
number to increment.

Engraving a The procedure to engrave the word “ENGRAVE” .125 inch high, using a .015
Constant String inch diameter engraving tool, is shown below:

X0
90ß
Y0 45ß
.625
ENGRAVE

180ß 0ß

270ß -45ß

.375
Figure 6-1 Engraving a Constant String

1) Position the X and Y to the start position (see Computing Start Position on
page 6-6).

Note: This is true for engraving at an angle of zero degrees (see figure above).
When engraving on a non-zero angle the X and Y axis must be shifted
properly for the angle programmed.

2) Position the Z axis to the Initial Plane.

3) Set up the engraving cycle.

112 Section 6: Fixed Subroutines April 2003


Fadal User Manual

EXAMPLE: N1 O1 (SAMPLE ENGRAVING PROGRAM


N2 M6 T1
N3 (TOOL #1 ENGRAVING TOOL .015 CENTER DRILL
N4 G0 G90 S10000 M3 E1 X.375 Y-.6175
N5 H1 D1 M8 Z.05 (DIAMETER .015 IN OFFSET PAGE
N6 L9201 R0+.05 R1+0 R2+.125 R3+0 Z-.005 F40. (ENGRAVE
N7 M5 M9
N8 G90 G0 H0 Z0
N9 E0 X0 Y0
N10 M2

Engraving a Serialization is used to engrave numbers on a series of parts while changing


Serialized String the number on each part. The R1 value must be either a 2 or 3 to identify the
serialized engraving style. The R4 value must be used to identify the increment
amount. This amount is in whole numbers only (to increment decimal
numbers, the decimal point must be engraved as a separate character). The
numbers to be serialized MUST be at the end of the engraving characters.

When serialization is coded, the machine changes the program code to reflect
the next number to be engraved. The program code is changed after the
control processes the engraving line. To reset the number, the operator must
manually change the program code.

Note: When the same number is to be engraved on each part, DO NOT use
serialized engraving.

EXAMPLE: N1 O1 (SAMPLE ENGRAVING PROGRAM


N2 M6 T1
N3 (TOOL #1 ENGRAVING TOOL
N4 G0 G90 S10000 M3 E1 X.375 Y-.6175
N5 H1 D1 M8 Z.05
N6 L9201 R0+.05 R1+2. R2+.125 R3+0 R4+1. Z-.005 F40. (ENGRAVE 1
N7 M5 M9
N8 G90 G0 H0 Z0
N9 E0 X0 Y0
N10 M2

Serialization Range Serialized engraving uses the number of digits at the end of the initial
engraving string to set the range of serialization. For instance, if the end of the
string is 5 digits (00001), the maximum number engraved will be 99999, and
the number engraved after 99999 will be 00000.

April 2003 Section 6: Fixed Subroutines 113


Fadal User Manual

The preceding example engraves ENGRAVE 1 on the first part and ENGRAVE 2
on the second and so on. This example will engrave the numbers 1, 2, 3, 4, 5,
6, 7, 8, 9, and 0. After the 0 the number 1 is engraved again. Further, the
maximum number of digits that could be coded in this example is five (00000
through 99999), because 58 characters on the L9201 line are used by
program code, including the spaces, right parenthesis, and constant portion of
the engraving text.

EXAMPLE: ENGRAVE 01 serializes the numbers 01 through 99, then 00, and then restarts
at 01.

ENGRAVE 0001 serializes the numbers 0001 through 9999, then 0000, and
then restarts at 0001.

Spacing, Positioning, The L9201 Fixed Subroutine uses the Letter Box (the rectangular area around
& Tool Path each character) to calculate the tool path for the engraving, beginning at the X,
Calculations Y position specified in the program.
WIDTH

1/2 WIDTH

PROGRAM HEIGHT
START

START
SPACING
CL
END
SPACING
Figure 6-2 Letter Box

Computing Actual The L9201 Fixed Subroutine calculates the actual height of the tool path as
Letter Height from follows:
the R2 Variable
Actual height = (desired letter height) - (tool diameter)

Computing Start The L9201 Fixed Subroutine calculates the start spacing for each character as
Spacing follows:

Start spacing = (actual height) * (start factor)

114 Section 6: Fixed Subroutines April 2003


Fadal User Manual

Computing End The L9201 Fixed Subroutine calculates the end spacing for each character as
Spacing follows:

End spacing = (actual height) * (end factor)

Computing Start X: The L9201 Fixed Subroutine will move to the X position specified in the
Position program, and then move in X the amount calculated for the start spacing of the
first character, before beginning the engraving cut.

Y: The program must specify a starting Y position that takes into account the
tool diameter, so that the tool is initially positioned one-half the tool diameter
above the desired baseline of the engraving.

X and Y should be specified together before each L9201 line.

Computing Occasionally, it is necessary to calculate the length of the engraving. The


Engraving Length procedure for calculating the length is as follows:

1) Establish a desired height for the engraving.

2) Choose the tool diameter. A recommended value is a diameter equal to .14


times the desired height. Remember to place this diameter in the offset
page.

3) Calculate the width factor for the engraving, using the Letter Width Table to
sum the width for each character or space.

4) Calculate the total engraving length using the formula:


Engraving length = (actual height) * (total width factor)

EXAMPLE: Calculate the length of the word “ENGRAVE” to be engraved at a height of .125
inches with a tool diameter of .015 inches.

1) Tool diameter = .015 inches

2) Actual height = (desired letter height) - (tool diameter) = .125 - .015 inches
= .110 inches

3) Total width factor = the sum of the Letter Width Table’s width factors for
each character or space.

E(.8853)+N(.9573)+G(.9588)+R(.9749)+A(1.0506)+V(1.0147)+E(.885
3)=6.7269

4) The actual engraving length is now given by:

April 2003 Section 6: Fixed Subroutines 115


Fadal User Manual

Engraving length = (actual height) * (width factor)


or, in this example, engraving length = (.110) * (6.7269) = .73996

Note: The tool diameter must be entered in the offset page, and an H word
and/or D word must be used in the program prior to calling the L9201.

Letter Width Factor The letter width is based on the box space for each letter. The Start and End
Values factors are used to calculate the distance from the edge of the letter box to the
start and end points of the letter.

Table 1: Letter Width Factor Table

Character Width Start End


A 1.0506 .2279 .2279
B .9455 .2279 .1284
C .9471 .1837 .2677
D .9441 .2279 .1927
E .8853 .2279 .2280
F .9118 .2279 .2294
G .9588 .2153 .2282
H .9706 .2279 .2353
I .4559 .2279 .2280
J .95 .2279 .2280
K 1.0249 .2279 .2278
L .8941 .2279 .2280
M 1.0824 .2279 .2280
N .9573 .2279 .2279
O .9647 .1779 .1779
P .9485 .2279 .2279
Q .9647 .1779 .1779
R .9749 .2279 .2278
S .9853 .2279 .2280
T .9485 .2279 .2279
U 1.0000 .2279 .2280
V 1.0147 .2279 .2280
W 1.2059 .2279 .2279
X .9559 .2279 .2280
Y 1.0441 .2279 .2280
Z .9441 .2279 .2280

116 Section 6: Fixed Subroutines April 2003


Fadal User Manual

The letter width is based on the box space for each letter. The Start and End
factors are used to calculate the distance from the edge of the letter box to the
start and end points of the letter.

Table 2: Letter Width Factor Table

Character Width Start End


\ .9559 .2279 .2280
! .7353 .3676 .3677
# 1.0441 .1926 .1927
$ .9559 .2276 .2280
% .8676 .2279 .2280
‘ .7353 .3676 .3677
& .9853 .2345 .1453
( .5855 .2279 .2279
) .5855 .2279 .2279
* .9559 .2279 .2280
1.1029 .2279 .2280
, .7353 .2941 .2960
- 1.1029 .2279 .2280
. .7353 .3676 .3677
/ .9559 .2279 .2280
0 .9647 .1779 .1779
1 .6059 .2279 .2280
2 .8926 .2279 .2271
3 .9632 .2279 .2281
4 1.0779 .2279 .2279
5 .9485 .2279 .2089
6 .9118 .2153 .2267
7 .9691 .2279 .2279
8 .9706 .2271 .2282
9 .9118 .2259 .2123
: .7353 .3676 .3677
; .7353 .2941 .2957
“ .7704 .2274 .2274
= 1.1029 .2279 .2280
? .9853 .2279 .2280
Space .8823

April 2003 Section 6: Fixed Subroutines 117


Fadal User Manual

Bolt Circle
L93NN Bolt Circle 1) R0 represents the I definition of a circle. This is the X direction and
distance from the starting position to the center.

2) R1 represents the J definition of a circle. This is the Y direction and


distance from the starting position to the center.

3) R2 represents the angular step between holes. A positive angular step


will move CCW around the bolt circle, while a negative angular step will
move CW around the bolt circle.

4) NN is the number of holes to be drilled. For example, L9304 is for 4 holes.


1ST HOLE DRILLED
STARTING POSITION

(X0,Y0)
Figure 6-3 1st Hole Drilled

The drawing above is a 3.0" diameter, 8 hole, evenly spaced bolt circle. The
procedure is as follows:
1) Position the X,Y axes to the starting position (the last hole of the bolt circle
to be drilled) and the Z axis to the I plane.

2) Select desired Fixed Cycle.

3) Start Bolt Circle subroutine.

EXAMPLE: (Format 1):

N1 O1 (BOLT HOLE EXAMPLE


N2 G0 G90 S2000 M3 X0 Y1.5 Position to starting position
N3 H1 M7 Z.1
N4 G81 G99 R0+.1 Z-1.0 F10. Set up Fixed Cycle
N5 L9308 R0+0 R1-1.5 R2-45. Call Bolt Circle Subroutine
N6 M5 M9
N7 G80

118 Section 6: Fixed Subroutines April 2003


Fadal User Manual

Mill Boring
L94NN Mill Boring 1) A tool must have been specified by an H or D word and the tool diameter
Cycle MUST be in the tool table.
Counterclockwise
2) R0 represents the feed rate.

3) R1 represents the diameter of hole to be bored.

4) NN represents the number of repetitions desired.

START

Figure 6-4 Boring Cycle Counter Clockwise

The drawing above is a 1.5 diameter hole to be mill bored. The procedure is as
follows:

1) Position the X,Y axes to the center.

2) Position the Z axis to finished depth.

3) Start Mill Boring Cycle.

EXAMPLE: N1 O1 (MILL BORING CCW EXAMPLE


N2 M6 T1
N3 G0 G90 S2000 M3 X1.0 Y-1.0
N4 H1 D1 M7 Z.1
N5 G1 F10. Z-1.
N6 L9401 R0+10. R1+1.5
N7 M5 M9
N8 G0 H0 G90 Z0

April 2003 Section 6: Fixed Subroutines 119


Fadal User Manual

L95NN Mill Boring 1) A tool must have been specified by an H or D word and the tool diameter
Cycle Clockwise MUST be in the tool table.

2) R0 represents the feed rate.

3) R1 represents the diameter of hole to be bored.

4) NN represents the number of repetitions desired.

START

Figure 6-5 Hole Diameter

The drawing above is a 1.5 diameter hole to be mill bored. The procedure is as
follows:

1) Position the X,Y axes to the center.

2) Position the Z axis to finished depth, selecting the proper H word or D word
to specify the diameter the tool is using.

3) Start Mill Boring Cycle.

EXAMPLE: N1 O1 (MILL BORING CW EXAMPLE


N2 M6 T1
N3 G0 G90 S2000 M3 X1.0 Y-1.0
N4 H1 D1 M7 Z.1
N5 G1 F10. Z-1.
N6 L9501 R0+10. R1+1.5
N7 M5 M9
N8 G0 G49 G90 Z0

120 Section 6: Fixed Subroutines April 2003


Fadal User Manual

Rectangular Pocket
Clean-out
L9601 Rectangular 1) A tool must have been specified by an H or D word and the tool diameter
Pocket Clean-out MUST be in the tool table.
Counterclockwise
2) R0 represents the feed rate.

3) R1 represents the radius on the corner of the tool.

Note: This can be used to regulate the step over distance. The larger this
number, the less the amount of step over.

4) R2 represents the overall X dimension.


5) R3 represents the overall Y dimension.

START

Figure 6-6 Counterclockwise Rectangular Pocket Clean-Out

The tool path drawing above shows how a 3.25 by 1.75 rectangular pocket
would be cleaned out with a .25" diameter tool. The procedure is as follows:

1) Position the X,Y axes to the center of the pocket.

2) Position the Z axis to finished depth, selecting the proper H or D word to


specify the diameter the tool is using.

3) Start Rectangular Pocket Subroutine.

April 2003 Section 6: Fixed Subroutines 121


Fadal User Manual

EXAMPLE: N1 O1 (RECT CLEANOUT CCW EXAMPLE


N2 M6 T1
N3 G0 G90 S2000 M3 X1.0 Y1.0
N4 H1 D1 M7 Z.1
N5 G1 F10. Z-1.
N6 L9601 R0+10. R1+.01 R2+3.25 R3+1.75
N7 M5 M9
N6 G0 G49 G90 Z0

L9701 Rectangular 1) A tool must have been specified by an H or D word and the tool diameter
Pocket Clean-out MUST be in the tool table.
Clockwise
2) R0 represents the feed rate.

3) R1 represents the radius on the corner of the tool.

Note: This can be used to regulate the step over distance. The larger this
number, the less the amount of step over.

4) R2 represents the overall X dimension.

5) R3 represents the overall Y dimension.

START

Figure 6-7 Clockwise Rectangular Pocket Clean-Out

The tool path drawing above shows how a 3.25 by 1.75 rectangular pocket
would be cleaned out with a .25" diameter tool. The procedure is as follows:

1) Position the X,Y axes to the center of the pocket.

2) Position the Z axis to finished depth, selecting the proper H or D word to


specify the diameter the tool is using.

122 Section 6: Fixed Subroutines April 2003


Fadal User Manual

3) Start Rectangular Pocket Subroutine.

EXAMPLE: N1O1 (RECT CLEANOUT CW EXAMPLE


N2 M6 T1
N3 G0 G90 S2000 M3 X1.0 Y1.0
N4 H1 D1 M7 Z .1
N5 G1 F10. Z-1.
N6 L9701 R0+10. R1+.01 R2+3.25 R3+1.75
N7 M5 M9
N8 G0 G49 G90 Z0

April 2003 Section 6: Fixed Subroutines 123


Fadal User Manual

Circular Pocket
Clean-out
L9801 Circular 1) A tool must have been specified by an H or D word and the tool diameter
Pocket Clean-out MUST be in the tool table.
Counterclockwise
2) R0 represents the feed rate.

3) R1 represents radius on the corner of the tool.

Note: This can be used to regulate the step over distance. The larger this
number, the less the amount of step over.

4) R2 represents diameter of the pocket.

START/END

Figure 6-8 Counterclockwise Circular Pocket Clean-Out

The tool path drawing above shows how a 1.75 diameter circular pocket would
be cleaned out by a .25" diameter tool. The procedure is as follows:

1) Position the X,Y axes to the center.

2) Position the Z axis to finished depth, selecting the proper H or D word to


specify the diameter the tool is using.

3) Start Pocket Subroutine.

EXAMPLE: N1 O1 (CIRC CLEANOUT CCW EXAMPLE


N2 M6 T1
N3 G0 G90 S2000 M3 X1.0 Y-1.0
N4 H1 D1 M7 Z.1
N5 G1 F10. Z-1.

124 Section 6: Fixed Subroutines April 2003


Fadal User Manual

N6 L9801 R0+10. R1+.01 R2+1.75


N7 M5 M9
N8 G0 G49 G90 Z0

L9901 Circular 1) A tool must have been specified by an H or D word and the tool diameter
Pocket Clean-out MUST be in the tool table.
Clockwise
2) R0 represents the feed rate.

3) R1 represents radius on the corner of the tool.

Note: This can be used to regulate the step over distance. The larger this
number, the less the amount of step over.

4) R2 represents the diameter of the pocket.

START/END

Figure 6-9 Clockwise Circular Pocket Clean-Out

The tool path drawing above shows how a 1.75 diameter circular pocket would
be cleaned out by a .25" diameter tool. The procedure is as follows:

1) Position the X,Y axes to the center.

2) Position the Z axis to finished depth, selecting the proper H or D word to


specify the diameter the tool is using.

3) Start Pocket Subroutine.

EXAMPLE: N1 O1 (CIRC CLEANOUT CW EXAMPLE


N2 M6 T1

April 2003 Section 6: Fixed Subroutines 125


Fadal User Manual

N3 G0 G90 S2000 M3 X1.0 Y-1.0


N4 H1 D1 M7 Z.1
N5 G1 F10. Z-1.
N6 L9901 R0+10. R1+.01 R2+1.75
N7 M5 M9
N9 G0 G49 G90 Z0

126 Section 6: Fixed Subroutines April 2003


Fadal User Manual

Section 7: Keyboard

Key Lock Switch VERTICAL POSITION: Enable editing the CNC program.
(Edit Protection)
HORIZONTAL POSITION: Disable editing the CNC program.

Block Skip Switch DOWN POSITION: The down position (OFF) causes the control to ignore the

“/” symbol and execute the program block (see Section Eight, Commands,
Run-time Menu).

UP POSITION: The up position (ON) causes the control to read the “/” symbol
and skip the program block. The /N# line in the program will suppress the look
ahead feature of the control with the switch in the up position (ON) (see Section
Eight, Commands, Run-time Menu).

Optional Stop Switch DOWN POSITION: The down position (OFF) causes the CNC to stop at the M1
function code and enter the WAITING state (see Section Two, M Functions; see
Section Eight, Commands, Run-time Menu).

UP POSITION: The up (ON) position causes the CNC to ignore the M1 function
code (see Section Eight, Commands, Run-time Menu).

Light On/Off Switch This switch controls power to the work lamp.

Video On/Off Switch This switch controls the power going to the video screen. The operation of the
machine is not affected by this switch.

April 2003 Section 7: Keyboard 127


Fadal User Manual

Rapid Travel Selector This switch selects the rapid movement speed (G0, G5).

100% of maximum rapid traverse

50% of maximum rapid traverse

25% of maximum rapid traverse

Feed Rate Override This potentiometer controls the speed of axis motion.
Potentiometer
1) AUTOMATIC mode: Axis motion can be increased to 150% or reduced to
0% of the programmed feed rates. Rapid moves are not affected. The
maximum non-rapid feed rate is 375 ipm. A programmed feed rate above
250 ipm may only be overridden to 375 ipm. (For a 900 ipm rapid travel
machine, the maximum non-rapid feed rate is 600 ipm. A programmed
feed rate above 400 ipm may only be overridden to 600 ipm.)

2) SINGLE STEP mode: All AXIS motion, rapid, or feed rate is controlled by this
override potentiometer.

3) DRY RUN mode: All AXIS motion, rapid, or feed rate is controlled by this
override potentiometer.

4) SLIDE HOLD key:

• After pressing the SLIDE HOLD key, the completion of the current move
is subject to the override potentiometer. During a rapid move, if the
Slide Hold is pressed, when the START key is pressed the feed rate
potentiometer can override the rapid feed rate. If the next program
block is programmed as a rapid move, the feed rate potentiometer will
not override the feed rate.
• An M49 code in the CNC program disables this potentiometer (see Sec-
tion Two, M Functions, M49 Function).

128 Section 7: Keyboard April 2003


Fadal User Manual

Spindle Speed This Potentiometer controls the programmed spindle RPM. The maximum
Override override is 200% of the last programmed spindle speed (S word) executed by
Potentiometer the CNC program or in MDI.The override percentage will not exceed the current
drive RPM range (see Section 1, S Function Range).

WARNING: A setting of 0% will not stop the spindle.

!
Jog Key and the Pressing the JOG key while in the command mode, or during the WAITING
Hand Wheel state while in the AUTO mode, initiates the JOG mode.

Once in the JOG mode, you can select an axis by turning the axis selector
switch on the control panel, or using the keyboard to select the axis to jog by
pressing X, Y, Z, A, B, or C keys.

The jog direction is selected by pressing the + or - key or by the direction the
hand wheel is rotated clockwise for positive and counterclockwise for negative.

The speed of axis motion is selected by pressing the H, M, or L key (High,


Medium, or Low), or by turning the jog increment selector switch.

H = .01 M = .001 L = .0001

Short moves can be made by pressing the JOG key repeatedly or by turning
the hand wheel. If you hold down the JOG key, continuous motion can be
made.

The speed of axis motion can be modified by the feed rate override pot. This
can be used only when the JOG key is held for jog motion. The feed rate
override pot does not affect the speed when using the hand wheel.

To exit the JOG mode, press the MANUAL key. The keyboard uses the familiar
typewriter format for alphanumeric and special characters. The special function
keys are described below (see SLIDE HOLD for JOG AWAY).

Shift This key must be pressed along with another key to get the “upper” character
displayed on that key. The shift key has no effect when pressed with keys that
have only a single character. This key must be depressed while pressing the
Spindle On/Off key to start the spindle manually.

April 2003 Section 7: Keyboard 129


Fadal User Manual

Enter This key is used to indicate that you have completed the entry of your
command or a line of data.

Delete This key stops input of data on the program line. The data entered prior to the
delete key is disregarded and the control is ready to receive the new data.

Backspace This key allows you to move the cursor backward to correct a keying error. All
characters to the right of the cursor, after backspacing, are disregarded by the
control when the enter key is pressed. This data must be entered again to be
entered in the program.

Spindle On/Off This is an alternating switch that controls the spindle manually. As a safety
feature, in order to turn the spindle on, you are required to first have the SHIFT
key depressed before pressing the SPINDLE ON key. The spindle must be
started manually after the external slide hold has been activated.

SPINDLE OFF does not require the use of the SHIFT key.

Spindle speed may be changed by an S word in the program or in MDI (see


Section Nine, MDI command). The spindle orientation may be released by
pressing the SPINDLE ON/OFF key. This will place the spindle in neutral by
releasing the orientation arm.

130 Section 7: Keyboard April 2003


Fadal User Manual

Auto This key initiates execution of the current CNC program.

Pressing this key in the command mode the CNC displays the AUTO MODE
screen. Pressing AUTO again initiates program processing. The control
continues to process the program until the buffer is filled. If the AUTO key is not
pressed the control enters the WAITING state when the buffer is filled.

When the machine enters the WAITING state, the program may be executed by
pressing the START key or returning to the COMMAND mode by pressing the
MANUAL key.

The AUTO key is also used to end the WAITING state or when you want to end
the SINGLE STEP mode.

Typing MU during the machining cycle causes the CNC to display the
BACKGROUND EDIT MENU. This allows the operator to select dry run options
(run time menu), the offset menu or the functions menu. The changes made in
the BACKGROUND EDIT MENU are not effective until after the last program
block that was processed prior to the change being entered.

Pressing the space bar toggles between the BACKGROUND EDIT MENU and the
AUTO MODE screen (see Background Editing).

April 2003 Section 7: Keyboard 131


Fadal User Manual

Slide Hold The SLIDE HOLD button stops the movement of the X,Y, Z, A, & B. The Spindle
and coolant are not affected by the SLIDE HOLD. The CNC will resume motion
after the START or AUTO button is pressed.

WARNING: Before continuing AUTO, check to see if the Spindle or

! Coolant was shut off. If so, manually turn on the Spindle by depressing the
SHIFT and SPINDLE ON button. To turn on the Coolant, press the COOLANT
button.

Slide Hold, JOG By pressing the JOG button while in SLIDE HOLD, any axis can be moved
AWAY away from its current position. This Jog Away feature allows an optional
automatic return of the jogged axes to that position to complete the machining
cycle. The MANUAL key exits JOG and returns the CNC to SLIDE HOLD.After
pressing the MANUAL key the CNC prompts the operator:

Figure 7-1 Slide Hold, JOG AWAY

Pressing 1: The CNC will return the axes to the position before the JOG was
initiated. This motion is accomplished at a rapid feedrate. Make sure the Z axis
is in a position to clear work and fixturing.

WARNING: Slide Hold or Feedrate Override Pot will not function while the

! CNC is returning the axis to original location! The Rapid Travel selector will
change the return speed.

132 Section 7: Keyboard April 2003


Fadal User Manual

Pressing 2: The CNC will continue the machining operation, change the
position read-out to the last machined position, while retaining the JOG offset
until one of the following conditions cancels the jog offset:

• aborting the AUTO mode.


• a G28 with an axis movement will return all axis to zero.
• a tool change is commanded (M6) Z axis only.

Pressing 3: The CNC will continue the machining operation, retain the JOG
offset, and the position read-out will reflect the current position including the
JOG offset. This will remain active until one of the following are initiated:

• aborting the AUTO mode.


• a G28 with an axis movement will return all axis to zero.
• a tool change is commanded (M6) Z axis only.

Note: A tool change is commanded (M6) does not cancel JOG AWAY for X or
Y axis.

External Slide Hold When the machine is running a program and the doors are opened the external
slide hold is activated. The machine motion and the spindle are stopped. When
the doors are closed and the start button is pressed a message to turn the
spindle on will appear if the spindle is turned off manually.

April 2003 Section 7: Keyboard 133


Fadal User Manual

Spacebar, To use background editing, the programmer must have the control in AUTO
Background Editing and press the SPACE BAR at the keyboard.

The space bar toggles the screen between the BACKGROUND EDITING MENU
and the AUTO MODE screen. While in the BACKGROUND EDIT MENU the
programmer now has three options to choose from. The active program
currently running in AUTO will be displayed to the screen, and below it will be
displayed the background edit options:

Figure 7-2 Spacebar, Background Editing

OPTION 1 DRYRUN OPTIONS: Selection will display the dryrun options run
time menu.

OPTION 2 OFFSETS: The operator can edit the FIXTURE and TOOL OFFSETS,
TOOL TIME and the MACRO VARIABLES tables (See the DF, DT, DTT and FO
commands in Section 8 for a detailed description of these tables and their
uses).

OPTION 3 HELP: The operator has several options that are similar to the PAGE
EDIT (PA) command. The active program currently running in AUTO can be
edited.

U-UPT-TOPC-CHANGES-SEARCHP-PROGRAM
D-DOWNB-BOTTOMI-INSERTR-REPLACEJOG
ENTER-PAGE DOWN BACKSPACE-PAGE UP DEL-DELETE
U KEY, move the cursor up.
D KEY, move the cursor down.
T KEY, move the cursor to the top of the program.
B KEY, move the cursor to the bottom of the program.

134 Section 7: Keyboard April 2003


Fadal User Manual

C KEY, change line or edit the line on which the cursor points.
I KEY, insert below the cursor line.
S KEY, search for a specified word.
R KEY, search and replace a specified word.
P KEY, change or review programs in memory.
JOG KEY, JOG away from the current position.

WARNING: Be extremely careful when making changes to the current

! program in auto!

Background editing will allow the programmer to change, add, or delete any
line of program code other than the lines that are currently being processed by
the control. If a line of code to be changed is within the LOOK AHEAD BUFFER
the control will display a message “CONFLICT WITH AUTO” and the
programmer must wait until the BUFFER has passed by the line to be edited.
This prevents the interruption of continuous machining of the current part
during AUTO. The macro WAIT will prevent the LOOK AHEAD at the M2 (see
Section Eighteen, Macros).

Single Step This key issues the SINGLE STEP command which causes the CNC to enter the
WAITING state between each program block. While in the SINGLE STEP mode
all rapid moves are subject to the feed rate pot override. The WAITING state is
ended by pressing one of the following keys:

• START - executes one block of the CNC program.


• AUTO - exits the SINGLE STEP mode for continuous program operation.
• JOG - initiates the JOG Away feature (see SLIDE HOLD).
• MANUAL - terminates program execution and enters the COMMAND
mode.

Start This key is used to terminate a WAITING state that has been initiated in one of
the following situations:

1) You have just initiated the operation of the machine by use of the AUTO,
HOME or MANUAL DATA INPUT command.

2) The WAITING state has been entered to give you time to make any
necessary preparations for the move.

3) The CNC program has been terminated by an M2 or M30 (end of program)


instruction and the CNC is ready to begin execution from the start.

4) The SLIDE HOLD key was pressed.

April 2003 Section 7: Keyboard 135


Fadal User Manual

5) The CNC program has issued a M0 or M1 command.

6) The CNC is in the SINGLE STEP mode. This key is also used to override a
programmed dwell command (see Section 3, G4 code).

Emergency Stop This switch is used to disconnect the control from all machine axes and the
spindle. The control will be put in the COMMAND mode. To restart the program
after an emergency stop, reset the EMERGENCY STOP button by turning it
clockwise and press the JOG key to restart the servo amplifiers. The axes in
motion and the spindle will coast to a stop.

Manual This key interrupts the current activity of LIST PROGRAM, PAGE PROGRAM,
SUM PROGRAM, DISPLAY TOOL TABLE, DISPLAY FIXTURE OFFSETS, MENU or
JOG and returns the CNC to the COMMAND mode.

When the CNC is executing a CNC program, this key is ignored unless the CNC
has been put in the WAITING state by the SLIDE HOLD command, M0
command, M1 command, a problem during tool change, the SINGLE STEP
command or an M2 or M30 (end of program) function.

Coolant-1 (FLOOD) This is an alternating switch that controls the COOLANT-1 function manually.
Same as M7 or M8.

Coolant-2 (MIST) This is an alternating switch that controls the COOLANT-2 function manually.
Same as M7 or M8.

Turret CW When this button is pressed, the turret will be rotated clockwise to the next tool
station. If this button is depressed, the turret will rotate as long as the button is
held down.

Turret CCW When this button is pressed, the turret will be rotated counterclockwise to the
next tool station. If this button is depressed, the turret will rotate as long as the
button is held down.

136 Section 7: Keyboard April 2003


Fadal User Manual

Section 8: Commands

Table 1: Command List


DESCRIPTION COMMAND PARAMETERS
AUTO: AU, From, to, dry run option, direct block start
BACKLASH: BL, Axis no., amount at center, at - limit, at + limit
CHANGE DEVICE: CD, Baud rate, line feed option, command echo, device option
CHANGE PROGRAM BLOCKS: CH, From, through
COPY PROGRAM BLOCKS: CO, From, through, to just after
COMMAND LOCK: CL
COLD START: CS
DISPLAY BUCKET #: DD
DELETE PROGRAM BLOCKS: DE, From, through
DIAGNOSTIC MODE: DI (For use by trained maintenance personnel only)
DISPLAY FIXTURE OFFSETS: DF
DISPLAY FEED FORWARD DFF
DISPLAY TOOL TABLE: DT
DISPLAY TOOL TIME: DTT
DIRECT NUMERICAL CONTROL: DNC (DNCX), Video option, error option, dry run, start block number
DRAW: DR, Displaying from, through, CRC option, list option
DISPLAY VARIABLE TABLE: DV
FIXTURE OFFSET: FO, Number, (X amount), (Y amount), (Z amount)
HOME ALL AXES: HO
INSERT PROGRAM BLOCKS: IN, From, increment
LEARN MODE: LE, First block number, increment
LIST PROGRAM BLOCKS: LI, From, through
MACROS: MA
MEMORY: ME
MENU: MU
MANUAL DATA INPUT: MD
NEW PROGRAM: NE (Caution: this deletes the currently active program, see PR)
NUMBER PROGRAM: NU, Increment for renumbering
PROGRAM MAINTENANCE: PR, Program number
PROGRAM PAGE EDIT: PA
PUNCH PROGRAM TAPE: PU, Data option, code option, TTY option
REINITIALIZE: RI

April 2003 Section 8: Commands 137


Fadal User Manual

Table 1: Command List


DESCRIPTION COMMAND PARAMETERS
SET(parameter): SET Parameter code (SETX, SETY, SETZ, SETA, SETB, SETHO,
SETME, SETIN)
SAVE PARAMETERS SP Parameter#, option#
SET(pallet): SETPA/SETPB This command is used to tell the control which pallet is loaded
in the machine and only occurs at start-up
SETTO: SETTO
SETTO,#: SETTO,#
SET LENGTH OFFSET: SL, Tool number, optional change value
SUM PROGRAM: SU, Displaying from, through, CRC option, list option
SURVEY: SV (For use by trained maintenance personnel only)
SYSTEM PARAMETERS: SETP
TAPE READER INPUT: TA, Device option, error option, add at end
TOOL CHANGER HOME: TC, Option
TOOL PARAMETER DEFINITION: TO, Tool number, diameter, length off.
UTILITY: UT, Tool Number
VERIFICATION OF TAPE: VT

Auto
AU, From, To, Dry This command is used instead of the AUTO key when a mid-program start or a
Run, Direct Block dry run is desired. The “From” parameter specifies the first block to be
Start executed. If it is zero, the first program block of the main program is assumed.
For mid- program starts, all machine axes are automatically positioned to the
location they would have been prior to the block specified, and all modal
function codes specified before the starting block are automatically in effect
(Spindle ON, Coolant ON, Absolute Mode, etc.). The "To" parameter specifies
the block to end program execution. If it is zero, the program is executed until
an M2 or M30 (Format 2) end of program. If the third parameter is a 1, 2, or 3,
the program will be executed in a DRY RUN mode. In this mode, all rapid moves
are under control of the feed rate override pot.

EXAMPLE: DRY RUN OPTIONS: If the third parameter is 1, the interpolation moves are
made at the programmed feed rates and point-to-point moves are at 150 IPM.

If the third parameter is 2, the interpolation moves are made at 150 IPM and
point-to-point moves are at 150 IPM.

If the third parameter is 3, the interpolation moves are at 75 IPM. and point-to-
point moves are at 300 IPM.

138 Section 8: Commands April 2003


Fadal User Manual

If the fourth parameter is a 1, execution begins directly and the control will not
search for modal function codes specified before the block number in the first
parameter; caution must be taken. If the fourth parameter is greater than 1, the
CNC begins the modal code search starting at the block # specified by the
fourth parameter.

WARNING: The low way lube message is not displayed when

! continuously looping a program in the Auto mode. The operator MUST


monitor the way lube level to ensure proper fluid levels during these
continuous operations.

Backlash
BL, Axis No., Amount This command is used to display axis backlash. It is also used to enter an
At Center, At - Limit, amount of backlash for each axis into the memory of the CNC. Each axis is
At + Limit addressed by a number.

X = 1, Y = 2, Z = 3, A = 4, B = 5

The backlash is specified by units of one ten-thousandth of an inch. Therefore


having a value of 5 would equal .0005 in decimal inches. Example: Having
.0004" backlash at center of the Y axis.

Enter: BL,2,4

Change Device
CD, Baud Rate, Line The primary use of this command will be to prepare the RS-232-C serial I/O
Feed Option, port to send or receive data to or from another device such as a tape punch or
Command Echo another computer (see Section 14, Communications).
Option, Device
Option

EXAMPLE: BAUD RATE:

1=110 baud 5=1200 baud 9=19,200 baud


2=150 baud 6=2400 baud 10=38,400 baud
3=300 baud 7=4800 baud 11=57,600 baud
4=600 baud 8=9600 baud 12=115,200 baud

Baud rates above 9600 should only be used with Xmodem protocol. This
protocol uses error checking that is more suitable for the higher baud rates.
See the communications section for an explanation of protocol types.

April 2003 Section 8: Commands 139


Fadal User Manual

Note: The 57,600 and 115,200 baud rates can only be established from the
Command Mode.

EXAMPLE: LINE FEED OPTION: 1=NO LINE FEEDS TRANSMITTED TO THE RS-232 PORT

EXAMPLE: COMMAND ECHO OPTION: 1=NO COMMAND ECHO TO THE RS232 PORT

EXAMPLE: DEVICE OPTION: 0=THE EXTERNAL COMMUNICATIONS PORT IS ACTIVE.

1=THE INTERNAL COMMUNICATIONS PORT IS ACTIVE. PC programs on the 32


MP control may use COM2 when using this option. Type BYE or CD,# to return
the system to the machine RS-232 port.

EXAMPLE: CD,3 Set the baud rate to 300


Send data with line feeds.
Echo all commands entered at terminal.

CD,3,1 Set the baud rate to 300


Send data without line feeds.
Echo all commands entered at terminal.

CD,3,1,1,1 Set the baud rate to 300


Send data without line feeds.
Commands entered at the terminal will not be
echoed back to the terminal.
The internal communications port is active.

Change Program
CH, From, Through This is a command used to change one or more blocks of the program. The
CNC displays the block of data starting with the “From” parameter and
proceeds by pressing the ENTER key until the “Through” parameter (optional)
is reached. You do not need to retype the entire block. You may add, delete or
change a character already in the block.

To add to block number 30:


TYPE COMMAND:CH,30
BLOCK DISPLAY:N30 G0
TO ADD:M8
TYPE:M8
BLOCK CORRECTED:N30 G0 M8
BLOCK DISPLAY:N30 G0 M8

140 Section 8: Commands April 2003


Fadal User Manual

TO ADD:G90
TYPE:G0 G90 (if not the G0 is replaced by G90)
BLOCK CORRECTED:N30 G0 M8 G90

To delete from block number 30:


TYPE COMMAND:CH,30
BLOCK DISPLAY:N30 G0 M8 G90
TO DELETE:M8
TYPE:M;
BLOCK CORRECTED:G0 G90
BLOCK DISPLAY:N30 G1 X9.845
TO DELETE:45
TYPE:45;
BLOCK CORRECTED:N30 G1 X9.8

To change a character in block number 30:


TYPE COMMAND:CH,30
BLOCK DISPLAY:N30 G1 X10.986
TO CHANGE:X10.986 TO X10.988
TYPE:6;8
BLOCK CORRECTED:N30 G1 X10.988
BLOCK DISPLAY:N30 G1 X10.988
TO CHANGE:X10.988 TO 10.7
TYPE:988;7
BLOCK CORRECTED:N30 G1 X10.7

When using the through parameter, the computer prompts you with each
block, starting with the first parameter and ending at the second parameter.
You may press the ENTER key to advance to the next block whether or not you
made any changes. At any time you want to abort this mode, push the
MANUAL key.

Command Lock
CL The Command Lock menu is a method of locking out specific commands that
the user does not want other users to have access to. Commands that are set
to "LOCKED", will only be available if the key lock has been disabled (Key lock
switch is set to the vertical position). To edit any values, the user must move a
selector cursor defined by a * symbol around the screen. This selector cursor
can be moved up, down, left, or right by pressing the "backspace" or "U",
"enter" or "D", "L", or "R" keys respectively. To change the status of any given
command, move the selector cursor to that command's position, and press the

April 2003 Section 8: Commands 141


Fadal User Manual

space bar to toggle that commands lock/unlock status. Press the "manual" key
to save the current settings and exit from the command lock menu.

There are three commands that will not lock/unlock without the user entering a
special password. These commands are the SURVEY MENU, DIAGNOSTICS,
and the MACHINE CONFIGURATION options. If these three commands are in
the locked position, they will remain locked regardless of the key lock switch
position. These are the commands that should only be altered by a service
person.

Figure 8-1 Command Lock Menu

142 Section 8: Commands April 2003


Fadal User Manual

Copy Program
CO, From, Through, This copies one or more blocks specified by “From, Through” parameters to
To Just After just after the block specified by “To Just After” parameter. The original blocks
are not deleted. The copied blocks are renumbered as necessary to fit between
the block specified by the third parameter and the following block.

Using the following program, copy blocks from 1 through 3 to just after block 3.
Type command CO,1,3,3.

Table 2: Copy Program

ORIGINAL PROGRAM PROGRAM AFTER COPY


N1 G0 X1. N1 G0 X1.
N2 G1 Z-2. F25. N2 G1 Z-2. F25.
N3 G0 Z3. N3 G0 Z3.
N4 X6. N3.25 G0 X1.
N3.50 G1 Z-2. F25.
N3.75 G0 Z3.
N4 X6.

Cold Start
CS On System 97 machines the operator does not have to manually cold start the
machine. During the power on process the machine will automatically go
through the cold start procedure.

This command reinitializes the absolute table location which is required after
power on. This is Machine Zero (see Section 11, Machine Coordinate System).
The procedure is as follows:

1) Jog each axis to its indicator (Machine Zero), within .050 of either side.

2) Press AUTO key.

3) Inspect the cold start indicator positions, making sure that each indicator is
aligned.

After the Cold Start procedure has been initialized the CNC will prompt the
operator to move to the last home position or the operator can go directly to the
command mode.

April 2003 Section 8: Commands 143


Fadal User Manual

Press AUTO or START to move to that position and establish the Tooling
Coordinate System (see SETH command). Press MANUAL to return the CNC to
the COMMAND mode.

Display Bucket #
DD Displays the bucket number and tool number table, and identifies the bucket
number located at the bucket ready position with an asterisk.

1) SWAP TOOLS- Option 1 within DD is SWAP TOOLS, which will exchange the
tool in the spindle for the tool in the bucket ready position. The table will be
updated.

2) SORT TOOLS- Option 2 within DD will sort the tools automatically until each
tool number is located in the same bucket number. Upon completion, tool
number 1 will be in the spindle.

Delete Blocks
DE, From, Through This deletes specified blocks from the program. For example:

DE,10 will only delete block 10. DE,10,1000 will delete all blocks starting with
10 through and including block 1000.

Display Feed
Forward Parameters
DFF (optional) This command is used to display advanced feed forward parameters for tools 1
through 30. The menu at the bottom of the display is a summary of keys used
to page through the feed forward table, edit the 5 feed forward parameters,
and exit the display. Only 1 of 3 pages is displayed at a time, showing the
parameters of 12 tools. The ENTER key advances to the next page while the
BACKSPACE key pages returns to the previous page. The #1 key will allow you

144 Section 8: Commands April 2003


Fadal User Manual

to change the parameters of a tool. The space bar will exit to the tool length
offset menu.

NO. GAIN DECEL ACCEL DETAIL FEED


1 100.0000 400.0000 10.0000 0.0100 125.0000
2 100.0000 400.0000 10.0000 0.0020 100.0000
3
4
5
6
7 100.0000 400.0000 10.0000 0.0002 80.0000
8
9
10
11
12
FEED FORWARD TABLE.....................................................PRESS MANUAL TO ABORT--
1-NEW VALUE
ENTER-NEXT PAGE BACKSPACE- PREVIOUS PAGE SPACE- NEXT TABLE

Figure 8-2 Advanced Feed Forward Parameters

April 2003 Section 8: Commands 145


Fadal User Manual

Display Fixture
Offsets
DF This displays the current table of the 48 fixture offsets. In the example below,
offset 2 has a -1.0 value for the X, Y, Z, A, and B axes.

Figure 8-3 Display Fixture Offsets

Diagnostics
DI This command is used by trained maintenance personnel. The Emergency
Stop history can be obtained by entering DI and pressing ENTER then entering
DE and pressing ENTER.

Direct Numerical
Control
DNC, Video Option, This command causes the CNC to execute NC code as it is received from the
Error Option, Dry RS-232 port (see Section 14, DNC).
Run, Start Block
Num. A value of 1 for the Video Option will disable the video display. The video
parameter is also used to perform Mid Tape Starts. Enter the line number to
begin execution from. The control then processes the program from the
beginning to this line. All modal codes are processed.

A value of 1 for the Error Option disables error checking. A value of 0 checks for
syntax errors such as XX or Y—, and lines of code with only a comment.

Dry Run options are the same as the AU command Dry Run options.

The Start Block Num. is the block number to begin execution of the program.
The control ignores all program code prior to this block. This is the same as a

146 Section 8: Commands April 2003


Fadal User Manual

direct block start in AU. This parameter may be used in conjunction with the
Mid Tape Start.

XModem Direct
Numerical Control
DNCX, Video Option, This command operates the same as the DNC command. This command uses
Error Option, Dry the Xmodem protocol instead of the XON/XOFF protocol. The Xmodem protocol
Run, Start Block allows for long term DNC operations at higher baud rates with longer
Num. communications cables. The Xmodem protocol sends data in packets of 128
data bytes. After sending the block of data, checksum is performed. The next
packet is sent if no error is detected.

Draw
DR This command is used to display the graphics menu. The graphics menu of the
page editor has been designed to allow the user to view the part path of the
current program in memory. The graphics can be accessed by pressing the G
Key from the page editor or by entering the command DR.

A second menu will appear, allowing the user to choose from several options.
All of these options can be selected while plotting is taking place.

Figure 8-4 Graphics Menu

A = AUTO Pressing the A key runs the current program completely through the part path
showing interpolation moves only (movement programmed at a feed rate
G1,G2,G3).

C = CLEAR Pressing the C key clears the screen and continues auto part path draw at full
table plotting.

April 2003 Section 8: Commands 147


Fadal User Manual

F = FULL TABLE Pressing the F key clears the screen and continues auto part path draw at full
table plotting. This is used after the part path plot has been ZOOMED inward
and the user wants to see the whole part path again on a full table display.

M = TOGGLE Pressing the M key will toggle the options differences displayed along with the
DISPLAY MODE graphics plot. Toggle display options are incremental moves, absolute
positions, and modal codes. The M key can be pressed while plotting in order
to view the various modes.

O = OPTIONS Pressing the O key displays an additional menu allowing the user to choose
PLOTTING from:

Figure 8-5 Plotting Options Menu

Once the option key has been pressed, the plotting continues.

S = SINGLE STEP By pressing the S key, one program line will be plotted. Repeated pressing of
the S key allows the user to step through the program in line-by-line execution.
This can be canceled at any time by pressing the START button. During single
step plot the current program line will also appear on the screen in G91
incremental value.

V= VIEW TOP OR The V Key can be pressed at any time during plotting to change the view from
ISOMETRIC top to simple isometric view. The plotting will restart from the beginning of
program. This view may not be rotated.

JOG = ZOOM During the plotting process, or after the full plot, pressing the JOG button
allows the user to ZOOM in or ZOOM out the display. The PULSE GENERATOR
(the Jog Hand Wheel) now controls the position where the ZOOM BOX will be
located on the screen (in this mode, JOG does not jog the machine). X and the
Hand wheel moves the box left to right. Y and the Hand wheel moves the box

148 Section 8: Commands April 2003


Fadal User Manual

up and down. Z and the Hand wheel increases or decreases the size of the box.
Locate the box and place it around the portion of the part path the user wants
to see in a larger detail. Press the ENTER button and the part path contained in
the ZOOM box will be redrawn larger. After each successive ZOOM, the pixel
size representation is located to the right of the axis location of the displayed
part path.

Display Tool Table


DT This command is used to display tool diameters and length offsets for tools 1
through 99. The menu at the bottom of the display is a summary of keys used
to page through the tool table, edit tool data, and exit the display. Only 1 of 3
pages is displayed at a time. The ENTER key advances to the next page while
the BACKSPACE key pages returns to the previous page. The #1,#2,#3, and #4
keys enable editing functions; #1 key replaces a value, #2 key increments the
current value, #3 mass modifies the length incrementally, and #4 puts the
display into the Utilities menu.

In program FORMAT 1, an H word applies the length factor in this table for tool
length compensation and applies the diameter factor for cutter radius
compensation. In program FORMAT 2, an H word applies the length factor for
tool length compensation; the D word applies the diameter or radius (see the
SETP command) factor for cutter radius compensation.

Exit the tool table display by pressing MANUAL.

April 2003 Section 8: Commands 149


Fadal User Manual

Display Tool Time


Table
DTT This command is used to display the Tool Time table. The menu at the bottom
of the display is a summary of keys used to page through the tool time table,
edit data, and exit the display.

WARNING: Tool times become active only when appropriate parameter in

! SETP page has been turned on. See SETP command

The user may choose from the following DTT table options:

Figure 8-6 DTT Table Options

1-SET USED This feature is for the expired time or USED time of the tool
2-SET TIME This feature is for the current used time or TIME the control counts
3-RESET ALL USED This feature clears expired time or USED time for all tools
4-RESET ALL TIME This feature clears current time or TIME for al tools

Depending on the SETP feature chosen, the tool times may be used to monitor
USED time and or TIME. There are 3 pages to the Tool Time Table; one page is
displayed at a time. The ENTER key advances to the next page while the
BACKSPACE key returns to the previous page. Exit the tool table display by
pressing MANUAL.

Following are the SETP options for TIMERS and a brief explanation of their use.

150 Section 8: Commands April 2003


Fadal User Manual

Timers

Figure 8-7 Timer Setup Menu

1) ALL TOOL TIMING OFF Do not check the tool time table; factory set to off.

2) DO NOT CHECK Tool timers will be active and count, will not check USED
time.

3) END OF TOOL(AT M6) Tool timers active and will check USED after every
M6. If US time exceeds TIME for tool specified, control will show a screen
display: TOOL HAS EXPIRED!

4) AFTER EACH MOVE Tool timers active and will check USED after every
move. If USED time exceeds TIME for tool specified, control will show a
screen display: TOOL HAS EXPIRED!

5) AT END OF PROGRAM: TOOL HAS EXPIRED!

Select the desired option and set a value in the STT table for USED. The TIME
value will be inserted by the control.

Display Variable
Table Command
DV This command is used to display macro variables 1 through 100. Variables are
accessible through a table display.

Fixture Offset
FO, Offset Number, X This command enters the specified distance(s) in the fixture offset table. The
Value, Y Value, Z offsets are relative to the Tool Coordinate System (Home). The first parameter
Value, A Value, B selects one of the 48 offsets available.
Value

April 2003 Section 8: Commands 151


Fadal User Manual

EXAMPLE: FO,2,-2.0,-2.0,2.0,100.0,205.7
Enters for offset number 2 a value of X-2.0, Y-2.0, Z+2.0, A100.0, and B207.5

FO,2,,,-2.0
This command will not change the X,Y,A and B values. The Z parameter will be
changed to a value of -2.0 (see Section 11, FIXTURE OFFSETS).

Home Axis
HO Automatic return to zero position of the Tooling Coordinate System. Note that
this command operates the same as G28 in Format 1. The HO command acts
as a reset button when in Format 2. R values are not reset with the HO
command. This command is accomplished in one of two ways, according to
the current position of the Z axis.

• If the current Z axis position is above (+) the Z0 position, the X and Y
axes will move to zero first, then the Z axis will move in the negative
direction to zero.
• If the current Z axis position is below (-) the Z0 position, the Z axis will
move in a positive direction, to zero first, then the X and Y axes will
move to zero.

After the moves are computed, the CNC enters the WAITING state. The
operator can command the execution of the moves by pressing the START key
or abort the moves by pressing the MANUAL key.

152 Section 8: Commands April 2003


Fadal User Manual

Insert Blocks
IN, From, Increment Insert blocks in the program. The “From” parameter specifies the starting
sequence number. If “From” is not specified, 1 is assumed. The next sequence
number will be determined by adding the “Increment” parameter to the present
sequence number. If the “Increment” parameter is not specified, 1 is assumed.
The smallest increment allowed is .001, thus allowing insertion without
renumbering the entire program.

EXAMPLE: IN
Insert blocks starting with 1 and incremented by 1 thereafter.

EXAMPLE: IN,2.5,.001
Insert blocks starting with 2.5 and incremented by .001 thereafter.

EXAMPLE: IN,10,10
Insert blocks starting with 10 and incremented by 10 thereafter.
Each time the editor is ready to receive a block it prompts you by printing the
next sequence number. Enter a block by typing the various words you desire in
the block.

EXAMPLE: N10 G2 X.707 Y.293 I.707 J-.707 F4.0


The spaces in the above line are optional.
To exit the insert mode, press the ENTER key after the system has prompted
you with a new line number.

Jog Axis
J(Axis ID) (Direction) This command places the CNC in JOG mode. The axis identification must be
one of X, Y, Z, A or B. The direction is + or -. For example, to JOG Y in the
negative direction you would type JY- and then press ENTER. The commas for
parameter separation are not used with this command. Once in the JOG mode,
the axis, direction, and feed range will be displayed. To exit the JOG mode,
press the MANUAL key (see Section 7, Jog Key and the Hand Wheel).

Learn Mode
LE, First Block The primary use of this command is to enter blocks into the program from the
Number, Increment, jog mode. One example of use is the cleaning out of an irregular pocket. The
Tool Number first parameter is the starting block number, the second parameter is the
increment of numbering (the first and second parameters are used the same as
the insert command), the third parameter is the tool length offset being used.
Once in the learn mode the CNC will prompt you to “PRESS JOG TO CONTINUE
OR MANUAL TO EXIT”. Steps for using the learn mode are as follows:

April 2003 Section 8: Commands 153


Fadal User Manual

1) Enter the command LE with desired block number, increment and tool
being used (a length must have been specified in the tool table or the CNC
will use the total Z length from the zero position).
2) Once in the learn mode press the jog key.

3) Jog the machine to the desired position and then press the manual key.
After the manual key has been pressed, the CNC displays the move to be
inserted into memory. The move may be edited by typing the desired data
at the line number prompt, or accepted by pressing the ENTER key.

4) Edit the move (if necessary), then press the ENTER key. The prompt PRESS
JOG TO CONTINUE OR MANUAL TO EXIT is displayed.

5) To continue, press JOG and repeat steps 2-4, to exit press the MANUAL
key.

List Program
LI, From, Through Command used to list program on the CRT display.

EXAMPLE: LI Lists the entire program


LI,10 Lists from 10 to the end of the program
LI,20,90 Lists from 20 through 90

The speed of the display may be altered by pressing the number keys 0
through 9 while the display is in process. Each of these keys sets a different
speed. “0" halts the display. Keys 1 (slowest) - 9 (fastest) will restart the
display at various speeds. To exit the List mode, press the MANUAL key (see
PA command for an alternate).

Macro
MA This command is used to set the Debug and Run modes for macros. This may
be used to read variable data in memory.

EXAMPLE: SET DEBUG

Manual Data Input


MD This command allows the operator to enter NC data blocks that are to be
executed immediately without affecting the current program in memory. Upon
entering MDI, the CNC displays the current mode, tool and format (see SETP
command). After entering the first data block the CNC enters the WAITING state
until one of the following is pressed:

154 Section 8: Commands April 2003


Fadal User Manual

• AUTO or START key (to execute the data)


- or -

• MANUAL key (to abort and return to the command mode)

Every block entered thereafter is executed immediately upon pressing the


ENTER key:

1) Type MD then press ENTER to put the control in the MDI mode.

2) Now type your CNC block and then press ENTER.

EXAMPLE: G1 G91 Z-2. F100.


This causes a Z- move of 2.0 inches at a feed rate of 100 IPM

3) At completion of each block, the VMC waits for another block of code.

EXAMPLE: G0 G90 Z0 Returns the Z axis to the zero position


Press the MANUAL key to return to the command mode.

Note: The MDI mode can also be entered by pressing the MANUAL key while
in the command mode.

Memory
ME This command will display the percentage of free memory in the control.

Menu
MU (when used in This command is used to access the menu of commands that are used in the
the command mode) command mode. This allows you to find a command that you do not know.
Upon entering the MU command, a directory of commands and the page
number on which they appear is displayed. Type the page number on which
the desired command resides and then press the ENTER key. The ENTER and
BACKSPACE keys are used to page forward and backward through the menu.
To exit the Menu mode press MANUAL.

New Program
NE This command is used to remove the active program (see PR command). The
program in current memory is deleted from the control. Before removing the
active program the CNC will compress memory then verify your decision by
prompting you for a Y (yes) or N (no) response.

April 2003 Section 8: Commands 155


Fadal User Manual

Renumber Program
NU, Increment Renumbers the current program. The value supplied as “Increment” is used as
the first block number and then is used as the step between blocks for the rest
of the program. If the “Increment” parameter is left blank, the control assumes
1.

Program Page Edit


PA This will list the currently active program. Other functions, such as word search,
program editing and program execution are allowed.

The cursor is to the left of the listing and is controlled by one of the six following
keys.

Figure 8-8 Program Page Edit Menu

Position the cursor to a line to execute one of the following functions by


pressing the corresponding key:

C key Change line


I key Insert line after cursor line
DEL key Delete cursor line or multiple lines
S key Search for character or characters
R key Replace program words
A key Run cursor block only
H key Help menu
O key Copy lines

156 Section 8: Commands April 2003


Fadal User Manual

P key Program selection


N key Number lines
F key Function (Function) menu: move (cursor to position first)
G key Graphics menu (see Draw command)
AUTO key Begin program from beginning, from cursor line or search models
and begin from cursor
Editing is addressed in the same manner as the CH command. Inserting new
data blocks is addressed by the I key and it functions in the same manner as
the IN command (see CH and IN commands). Press MANUAL to exit the listing.

Function Menu

Using the Function The Function menus are accessed through the Page Editor by pressing the F
Menus key. The screen will display 9 different function titles and function numbers.
This menu consists of many independent functions that solve various
geometric problems. Each is designed to help the user calculate items such as
ANGLE, LINES, INTERSECTIONS, TANGENT, BLEND RADIUS, CIRCLE, and
TRIANGLE. It is also designed for creating TOOL CALL or END OF PROGRAM
coding and for defining FIXED CYCLES or SUBROUTINES.

Cursor Movement Once in the Function menus, move the cursor up or down in the menu and
describe the items by filling the values in. To move the cursor down press the
ENTER button. To move the cursor UP press the U key.

If the value has been entered incorrectly, move the cursor to where the error is.
Then press the backspace key until it has the incorrect data is removed. When
all the data has been entered, press the C key to compute the geometry.

Getting Started The user should always be aware of what position in the current program the
cursor is. The user should place the cursor on a line of the current program
before entering the Function menu. This line should be above the area where
the calculated information needs to be inserted. When the Function menu
inserts information into the Page editor, a comment is also inserted to indicate
which function was used.

The Menus Once in the function title listing, select the number of the function titles until
you arrive at the individual Function menu. The cursor is located at a specific
geometric question. Fill in the blank, and then press the ENTER button to move
the cursor down to the next question. If the data has been entered incorrectly
press the U key to move the cursor upward to the data and use the Backspace
key to back over the information. Retype the data.

April 2003 Section 8: Commands 157


Fadal User Manual

When all data has been successfully entered, press the C key for compute. The
geometry will automatically be computed and displayed at the bottom portion
of the screen.

By pressing the D key graphics will enlarge to cover the entire screen. To ZOOM
in, press the - key; to reduce the view, press the + key. If the solution is not
what the user wants, Press the S key for same function and retype the
information until the desired solution is found. When the solution is accepted,
the data may be inputted and saved to the current program after the current
cursor location. Pressing the I key will insert data into the editor. This will also
return the display to the Page editor. The current program will contain new code
with appropriate comments from the Function menu.

An entire G code program can be written by choosing from the other functions
available on the menu. Repeat the above instruction until the program is
complete. Be sure to insert the appropriate feeds and speed and Z milling
values. View program on the Graphics Menu before machining. Dry run
program before cutting the part.

Graphics Menu see Draw command.

Background Editing
SPACE BAR or MU To use background editing the programmer must have the control in AUTO and
(when used in the press the SPACE BAR at the keyboard. Pressing the space bar changes the
AUTO mode) screen and the background editing menu will appear.

While in the BACKGROUND EDIT menu the programmer now has several
options 1-DRYRUN OPTIONS, 2 - OFFSETS, 3-HELP.

Dry Run Options

Number Dry Run Summary


1 Block Skip Switch Toggle: Toggles the Block Skip Switch on and off. Status of the
switch is displayed on the auto mode screen as BLK when on. A block of NC code
is ignored by the CNC when the block is preceded by a forward slash (/) and the
Block Skip Switch is toggled ON.
2 Optional Stop Switch Toggle: Toggles the optional stop switch on and off. Func-
tions the same as the mechanical switch on the control panel (see Section 7,
Optional Stop Switch). Status of the switch is displayed on the auto mode screen
as OPT when on.

158 Section 8: Commands April 2003


Fadal User Manual

Number Dry Run Summary


3 Reset CNC Modal Values: Resets modal codes to the default values that are
selected via the SETP command.
9 Dry Run Option: Program execution in a dry run mode. Interpolation moves (G1-
G3) are made at the programmed feed rates and rapid moves are at 150 IPM.
10 Dry Run Option: Program execution in a dry run mode. Interpolation moves (G1-
G3) are made at 150 IPM and rapid moves are at 150 IPM.
11 Dry Run Option: Program execution in a dry run mode. Interpolation moves (G1-
G3) are at 75 IPM and rapid moves are at 300 IPM.
12 M,S,T Function Lockout: Program execution disabling all M, S, T functions; spin-
dle on, coolant on etc. will be ignored.
13 Z Axis and M6 Lockout: Program execution disabling Z axis moves and tool
changes. This option will reduce the control look ahead. After cancellation of this
option, the Z axis will move on the next line with a Z axis programmed move.
14 No Look Ahead (For Dry Run): Normally the CNC look ahead is 90 user defined
data blocks; this function reduces the look ahead to 2 blocks.
15 Display Clocks: Displays all real time clocks for power on, running, last part, cur-
rent part and current time.
19 Cancel All Dry Run Modes: Restores program execution as programmed. This
cancels options 9 through 14.

Offsets Four tables can be edited: tool offset, fixture offset, tool time and macro
variables tables (See DF, DT, DTT and FO commands).

To exit the menus press the MANUAL key.

April 2003 Section 8: Commands 159


Fadal User Manual

Help The Functions Menu is used for editing of the active program, a program in
memory, or writing a new program, similar to PAGE EDIT (PA). The currently
active program that is running in AUTO will be displayed to the screen. At the
bottom of the screen the editing features are displayed as follows:

Figure 8-9 Editing Features

U KEY moves the cursor up


D KEY moves the cursor down
T KEY moves the cursor to the top of the program
B KEY moves the cursor to the bottom of the program
C KEY changes line or edit the line on which the cursor sits
I KEY inserts below the cursor line
S KEY searches for a specified word
R KEY searches and replace a specified word
JOG KEY JOGs away from the current position

WARNING: Be extremely careful when making changes to the current

! program in auto!

160 Section 8: Commands April 2003


Fadal User Manual

Program
Maintenance Library
PR, Program # This command displays the Program Maintenance Library menu. This menu is
the only means to display the list of programs in memory, or copy an old
program. The menu options are as follows:

Figure 8-10 Program Maintenance Library Menu

The selection of option 5 will perform a memory compression prior to


requesting confirmation of the deletion. The “Program #” parameter is used
only in switching to another program stored in the memory.

EXAMPLE: PR,22

The above command causes program #22 to be the active program. An O word
must be inserted in the active program before the Program Maintenance
Library menu is displayed (see Section One, Multiple Part Program).

Punch Program Tape


PU, Data Option, After selecting the desired baud rate, the PU command is used to transmit the
Code Option, TTY desired data in the required format. The PU command will not punch a program
Option that is using the no edit function. See the CD (change device) command for the
communications options. The data is output in the standard left justified
format. The tool offsets are output in the format of the TO command followed
by the fixture offsets output in the format of the FO command. The first
parameter, “Data Option”, selects one of four possible formats as follows:

0 = program, tool and fixture data

April 2003 Section 8: Commands 161


Fadal User Manual

1 = tool and fixture data only

2 = program data only

3 = all programs in library

4 = parameters and backlash

5 = all axis survey

The second parameter, “Code Option”, selects the desired code as follows:

0 = ASCII code

1 = EIA code

The third parameter, “TTY Option”, selects whether or not tape leader and nulls
are sent to the receiving device. The options are as follows:

0 = computer (no leader and nulls)

3 = leaders and nulls (for teletype or paper tape punch)

Further information is covered in the Communications Section.

162 Section 8: Commands April 2003


Fadal User Manual

Reinitialize
RI This command is used to reinitialize the memory of the CNC. Three options are
given as follows:

Figure 8-11 Reinitialize Options

• DO YOU WANT TO ZERO TOOL TABLE?


• DO YOU WANT TO ZERO FIXTURE OFFSETS?
• DO YOU WANT TO REINITIALIZE MEMORY?

Enter the RI command. The CNC requires a Y (Yes) or N (No) response for each
of the 3 options. The memory is cleared for each Y response. A Y response for
option C requires you to Cold Start the machine (see CS command) and reset
tool order (see SETTO command). A memory compression is accomplished
by the control whether the answers to the options are Y or N.

Set Cold Start


SETCS This command is used to return the machine to the Cold Start position for
power off. After entering the SETCS command the HO command must be
entered. The positional display on the screen is the absolute position from the
Cold Start position. If the Auto key is pressed, all axes are returned to the Cold
Start position.

Set Home Position


Of All Axes
SETH The current absolute locations of all axes relative to machine zero are taken as
their home positions. If command HO is issued, all axes are moved to this zero

April 2003 Section 8: Commands 163


Fadal User Manual

position. When executing a CNC program, a G28 returns the axes to this
position.

Set Home Position


For One Axis
SET(axis) This command is used to set home locations for individual axes.

SETX Set current absolute location of the X axis as its home position.

SETY Set current absolute location of the Y axis as its home position.

SETZ Set current absolute location of the Z axis as its home position.

SETA Set current absolute location of the A axis as its home position.

SETB Set current absolute location of the B axis as its home position.

Metric Programming
SETME This command is used to switch from the Inch mode to the Metric mode. All
input data will be processed as Millimeters. In this mode all data (tool and
fixture offsets, feed rate, etc.) is to be in Metric units.

Note: This command is to be entered only when machine is at the Cold Start
position.

Inch Programming
SETIN This command is used to switch from the Metric mode to the Inch mode. All
input data will be processed as inches. In this mode all data (tool and fixture
offsets, feed rate, etc.) is to be in Inch units.

Note: This command is to be entered only when machine is at the Cold Start
position.

Set System
Parameters
SETP This command is used to access the machine’s system parameters. System
parameters configure the software for the model of your machine for such
things as axis travel, axis configuration, spindle adjustment, spindle drive type,
tool changer capacity and pendant style. Generally these parameter settings
will not change. Other parameters are for selecting modes for RS-232
communications, modal code defaults and programming formats to suit the
user’s preference.

164 Section 8: Commands April 2003


Fadal User Manual

The factory settings for your machine are listed on the inside of the pendant
door. Update this listing any time you make a change.

The parameter settings and their values are displayed as a menu with the
individual parameter with the “*” displayed at the bottom of the screen. The
cursor,"*", is moved with the Enter key, Backspace key, D key, and U key. When
the cursor is moved the parameter is displayed at the bottom of the screen.
Change the value by typing the number corresponding to the desired setting,
and then press ENTER.

All parameter settings are initialized when the machine is powered on and the
Cold Start procedure is executed. The default values for modal codes are
initialized when entering MDI, the AUTO mode, and in Format 1, when an M2
(end of program) is detected.

Pallet Programming
SETPA and SETPB These commands set which pallet is currently loaded in the machine. Use
SETPA (Set Pallet A) if the A pallet is loaded and SETPB (Set pallet B) if the B
pallet is loaded. The software will prompt the operator when to enter these
commands during the start-up procedure.

Programming
Formats
Formats There are two programming formats that are selectable by parameter settings.
These formats determine the style in which a program is formatted and
executed.

For the most part, Format 1 and Format 2 are identical with minor differences.
Format 2 maximizes compatibility with the 6MB, 10M or 11M controls.
Therefore, existing programs for these controls can be used in the CNC 88 and
CNC 88 HS.

The following are the screen displays for the various formats and processors.
These examples may not apply to your specific machine. The displays depicted
on the following pages are typical of the screens that you will see. The specific
data displayed is dependent on the processor in your machine and which
parameter you have selected with the cursor.

April 2003 Section 8: Commands 165


Fadal User Manual

Format 1

Figure 8-12 Format 1 Screen Display

Figure 8-13 Format 1 Screen Display (continued)

166 Section 8: Commands April 2003


Fadal User Manual

Figure 8-14 Format 1 Screen Display (continued)


Format 2

Figure 8-15 Format 2 Screen Display

April 2003 Section 8: Commands 167


Fadal User Manual

Figure 8-16 Format 2 Screen Display (continued)

Figure 8-17 Format 2 Screen Display (continued)

Note: Depending on the parameter that the cursor is selecting, not all
parameters are displayed.

168 Section 8: Commands April 2003


Fadal User Manual

Operation Formats THERE ARE TWO PROGRAM OPERATION FORMATS AVAILABLE

Figure 8-18 Operation Formats

This parameter allows the user to select 6MB/10M/11M compatibility. The


operational difference between the two formats depends upon the coding
used.

AXES:X,Y,Z ENTER THE AXIS CONFIGURATION

Figure 8-19 Axis Configuration

When selecting the A or B axes, the machine should be powered off. When the
power is returned the axes will be active.

April 2003 Section 8: Commands 169


Fadal User Manual

DEFAULT: G0 ENTER THE DEFAULT VALUE

Figure 8-20 Default Value G0

The code selected is active at power on and when entering the MDI mode.

DEFAULT: G90 ENTER THE DEFAULT VALUE

Figure 8-21 Default Value G90

The code selected is active at power on and when entering the MDI mode.

170 Section 8: Commands April 2003


Fadal User Manual

DEFAULT: G17 ENTER THE DEFAULT VALUE

Figure 8-22 Default Value G17

This parameter is used to select the default machine plane.

RPM FACTOR ENTER THE SPINDLE RPM ADJUSTMENT FACTOR

Figure 8-23 RPM Factor

This parameter should only be adjusted by trained maintenance personnel.

April 2003 Section 8: Commands 171


Fadal User Manual

BAUD RATE: 2400 ENTER THE DEFAULT BAUD RATE (THE RATE AFTER POWER-ON)

Figure 8-24 Enter Default Baud Rate

The operator may select the desired communications baud rate.

Note: The 57,600 and 115,200 baud rates are available but not listed. These
baud rates must be established from the Command Mode.

TRAVEL ENTER X, Y, Z TRAVEL.

Figure 8-25 Travel

The machine travel is selected with this parameter.

172 Section 8: Commands April 2003


Fadal User Manual

Tool Changer Cap ENTER THE TOOL CHANGER CAPACITY

Figure 8-26 Tool Changer Capacity

Select the appropriate tool changer capacity.

Timers SELECT THE AUTOMATIC TOOL TIMER MODE

Figure 8-27 Automatic Toll Timer Mode

Select the desired option and set a value in the DTT table for USED. The TIME
value will be inserted by the control. See DTT command.

April 2003 Section 8: Commands 173


Fadal User Manual

Spindle Type ENTER THE SPINDLE DRIVE TYPE & RPM

Figure 8-28 Spindle Drive Type

Select the correct spindle type for the machine. This parameter is set at the
factory.SPINDLE AFTER M6:

Spindle After M6 SHOULD SPINDLE COME ON AUTOMATICALLY AFTER A TOOL CHANGE WHEN
THE M6 HAD TO TURN THE SPINDLE OFF?

Figure 8-29 Spindle After M6

When this parameter is selected as YES, the spindle automatically turns on


after the tool change. The spindle comes on at the last programmed spindle
speed. This may cause an overspeed of the next tool. It is recommended that
this parameter is set to number 1.

174 Section 8: Commands April 2003


Fadal User Manual

Pendant ENTER THE PENDANT STYLE

Figure 8-30 Pendant

Select the appropriate pendant location for the machine. When option two is
selected the table may make a Y axis positive move before a tool change. This
occurs only when the Y axis is five inches or more, in the negative direction,
from the cold start position.

Imm. Fixed Cycle SHOULD A FIXED CYCLE EXECUTE IMMEDIATELY?

Figure 8-31 Imm. Fixed Cycle

April 2003 Section 8: Commands 175


Fadal User Manual

A YES response causes a fixed cycle to be executed immediately upon


definition at the current axis location. A NO response requires axis motion to
activate the fixed cycle.

Orientation Factor ENTER THE SPINDLE RPM ADJUSTMENT FACTOR

THE FACTOR MUST BE BETWEEN 0 AND 31

Figure 8-32 Orientation Factor

This parameter should only be adjusted by trained maintenance personnel.

DEFAULT: INCH ENTER THE DEFAULT VALUE

Figure 8-33 Default Value: Inch

176 Section 8: Commands April 2003


Fadal User Manual

The operator must select the inch or metric mode for the machine. The G70,
G71, G20, and G21 check this setting to verify the operational mode.

PU FORMAT SELECT PUNCH OUTPUT FORMAT

Figure 8-34 PU Format

This parameter is set to file for computer use. The punch tape format is used
when a tape reader is employed.

CRC Mode ENTER THE DEFAULT OUTSIDE CORNER MOVEMENT

Figure 8-35 CRC Mode

This parameter selects the default mode for intersectional cutter radius
compensation.

April 2003 Section 8: Commands 177


Fadal User Manual

Pallet DO YOU HAVE A PALLET CHANGER?

Figure 8-36 Pallet

Select the option appropriate for the machine.

M7-FLOOD, M8-MIST ENTER M7, M8 PREFERENCE

Figure 8-37 M7-Flood, M8-Mist

The operator may select either M7 or M8 as the flood coolant code.

178 Section 8: Commands April 2003


Fadal User Manual

Binary Buffers 255 SELECT THE NUMBER OF BINARY BUFFERS FOR CNC LOOK-AHEAD.

Figure 8-38 Binary Buffers: 255

The BINARY BUFFERS parameter can be changed to increase or decrease the


control look ahead. A binary buffer is a block of memory that has been
processed by the control and is waiting for execution. One line of code may
produce numerous binary blocks. A simple drill code generates three binary
blocks: the XY position, the Z down, and Z up. The number of binary blocks can
be set at 15, 30, 50, 100, or 255. The factory sets the buffers at 255. This is
most effective for programs with many small moves that must be executed
rapidly. This parameter helps the Run Time Menu to be used more effectively.
The smaller the buffers the more quickly the Run Time Menu changes will take
effect in the program.

April 2003 Section 8: Commands 179


Fadal User Manual

Turret Factor ENTER THE ENGAGEMENT FACTOR FOR THE TOOL TURRET GENEVA GEAR

THE FACTOR MUST BE BETWEEN 1 AND 50

Figure 8-39 Turret Factor

This parameter is set at the factory. For VMCs equipped with the Servo-Turret,
this factor MUST always be 1.

180 Section 8: Commands April 2003


Fadal User Manual

Gain ENTER THE GAIN FACTOR FOR RIGID TAPPING

THE FACTOR MUST BE BETWEEN 0 AND 255

Figure 8-40 Gain

This parameter affects the spindle response during rigid tapping. The higher
the number the faster the spindle turns in relation to the feed rate. When the
speed is too fast the thread may be too loose.

3 Phase 5% Low: No IS YOUR 3 PHASE POWER MORE THAN 5% LOW?

Figure 8-41 3 Phase 5% Low

The selection chosen is based upon the building power supply.

April 2003 Section 8: Commands 181


Fadal User Manual

High Torque/Rigid DO YOU HAVE THE HIGH TORQUE OR RIGID TAP OPTION?
Tap

Figure 8-42 HighTorque/Rigid Tap

This parameter is set at the factory.

CMD Menu TURN COMMAND MENUS:

Figure 8-43 CMD Menu

The operator may select the command menu structure.

182 Section 8: Commands April 2003


Fadal User Manual

Ramp ENTER THE RAMP FACTOR FOR RIGID TAPPING

THE FACTOR MUST BE BETWEEN 0 AND 255

Figure 8-44 Ramp

This parameter sets the speed at which the spindle accelerates during rigid
tapping.

A-Axis Ratio ENTER A-AXIS RATIO

Figure 8-45 A-Axis Ratio

Select the appropriate option for the rotary table being used.

April 2003 Section 8: Commands 183


Fadal User Manual

B-Axis Ratio ENTER B-AXIS RATIO

Figure 8-46 B-Axis Ratio

Select the appropriate option for the rotary table being used.

M60/A-Axis Brake DOES M60 TURN ON THE A-AXIS BRAKE?

Figure 8-47 M60/A-Axis Brake

Select the option desired to activate or de-activate the air brake for the axis.

184 Section 8: Commands April 2003


Fadal User Manual

M62/B-Axis Brake DOES M62 TURN ON THE B-AXIS BRAKE?

Figure 8-48 M62/B-Axis Brake

Select the option desired to activate or de-activate the air brake for the axis.

N-Words Ordered ENTER THE N-WORD SEQUENCE CONFIGURATION

Figure 8-49 N-Words Ordered

The CNC 88 requires each block of NC code to have sequence numbers in


numerical order. Since the 6MB/10M/11M controls do not require block
numbers in numerical order, select option number 2. Upon tape input the CNC
will add sequence numbers for reference. Otherwise, after tape input the
program must be renumbered if the sequence numbers are not in numerical
order.

April 2003 Section 8: Commands 185


Fadal User Manual

Tool Table WILL THE TOOL COMPENSATION TABLE HAVE THE RADIUS OR DIAMETER?

Figure 8-50 Tool Table

The cutter offset specification in the tool compensation table may be defined
as a diameter or radius. The SETP mode is exited by pressing the MANUAL key.
If new values were selected, the CNC requires that you perform the Cold Start
procedure (see CS command).

Set Turret Order


SETTO This command is used to set the tool turret location. The current turret location
is established as number 1. The remaining locations are numbered
sequentially in a clockwise order, looking from the bottom of the turret.

SETTO without a number parameter following resets all of the tool numbers to
that of the bucket numbers, regardless of where the tools are located, and sets
bucket 1 at t he bucket ready position, and tool 1 in the spindle.

1) Using Turret CW or Turret CCW, rotate bucket 1 to the bucket ready position.

2) From the <ENTER NEXT COMMAND> line, type SETTO.

3) All of the tool numbers will be reset to that of the bucket numbers. Tool
number 1 is in the spindle.

4) Check the table in DD.

5) If Turret rotates in the incorrect direction, the Turret Motor may need to be
rephased.

186 Section 8: Commands April 2003


Fadal User Manual

SETTO,# SETTO,# is used to reset the Turret locations by specifying that “#” is the
number of the bucket (not the tool number) located at the bucket ready position
and ready to be exchanged. The remaining bucket and tool numbers are
recovered as the sequence is retained.

1) Rotate the Turret using Turret CW or Turret CCW at ;east one position until
the desired bucket number (not tool number) is at the bucket ready position.

2) If Turret rotates in the incorrect direction, the Turret Motoe may need to be
rephased.

3) From the <ENTER NEXT COMMAND> line, type SETTO,# where # is the
bucket number of the bucket now at the bucket ready position, and ready to
exchange tools.

4) The sequence of the remaining tools in the Turret is not changed, and the
new bucket numbers are updated in the DD table. The asterisk identifies the
bucket in the bucket ready position.

5) The SETTO,# procedure may be repeated as many times as needed.

Set Tool Length


Offset
SL, Tool Number, This commands automatic entry of tool length compensations. The procedure
Optional Change is as follows:
Value
1) Set the home position using the SET(parameter) command.
2) Install tool in the spindle.

3) Press the MANUAL key to enter the command mode.

4) Press the JOG key to enter the jog mode.

5) Jog the Z axis until the tool is in the proper location.

6) Press the MANUAL key to enter the command mode.

7) Type SL comma and the tool number.

8) Press the ENTER key to insert this location in the tool table.

If the second parameter is a number other than zero, the current location of the
Z axis is ignored and the current value of the length offset in the tool table is
incremented by the value specified by the second parameter. For Example; If

April 2003 Section 8: Commands 187


Fadal User Manual

tool #1 originally has a length offset value of -10.000 and the command SL,1,-
.025 is entered, the NEW offset will be -10.025.

Sum Program
SU, Display From, Sum the X, Y, Z, A, and B moves in the current program and display the final
Through, CRC location, relative to the programmed home position as: X= Y= Z= A= B=.
Option, Display
Option During the SUM process, the moves that the computer is processing are
displayed if the fourth parameter is 1, 2, or 3 (see the following examples). This
information can be outputted to a computer or paper tape punch (see CD
command).

The speed at which the processed program is displayed may be altered by


pressing the keys 0 through 9. Each of these keys sets a different speed. “0"
halts the display, while keys 1 (slowest) - 9 (fastest) restart the display at
various scroll speeds. The “Display From” parameter indicates the first line to
display after beginning the processing from the start of the program. The
“Through” parameter indicates the last line to process.

The “CRC Option” parameter indicates whether to process CRC. A parameter


value of 1 will ignore CRC. A parameter value of 0 processes CRC.

The “Display Option” parameter indicates the display mode to use.

A 1 displays the incremental move only.


A 2 displays incremental moves and absolute locations.
A 3 displays incremental moves, absolute locations, and active modal G
codes.

To abort the Sum process, press the MANUAL key.

SU,0,0,0,1 Sum the entire program, check the CRC generated moves. Display only the
incremental moves on the left side of the screen. Display the absolute location
of the end of the program as X= Y= Z= A= B=.

SU,10,0,1,1 Sum the entire program, ignoring CRC generated moves. Start displaying from
block number 10. Display only the incremental moves on the left side of the
screen. Display the absolute location of the end of the program as X= Y= Z= A=
B=.

SU,10,50,0,2 Sum from beginning, until block number 50, displaying all CRC generated
moves. Start displaying from block 10. Display the incremental moves on the

188 Section 8: Commands April 2003


Fadal User Manual

left side of the screen and the absolute locations of the moves on the right side
of the screen. Display the absolute location of the end of the program as

X= Y= Z= A= B=.

Survey
SV The survey command SV is a utility that manages the axis compensation data.
Each axis controller stores the screw compensation, zero offset for the scales,
and the servo gain settings. The survey menu automatically loads the survey
into memory, starting with the default X Axis survey. If no survey exists, a new
empty survey will be created. The survey is then automatically displayed on the
screen in groups of 40 values at a time. If more than 40 values in any given
survey exist, there will be an additional option located at the bottom of the first
column called "survey values". This option will allow the user to toggle between
Page 1 (the first 40 values) and Page 2 (the remaining values), of the survey.
The zero offset and gain options are also displayed on the bottom of the first
column.

A survey may be saved by either exiting out of the survey menu by pressing the
Manual key, or by selecting another survey to edit. On exiting, the CNC will
automatically cold start to enable the changes. If a survey has not been altered
before exiting, the CNC will not cold start. This new feature allows the user to
go into the survey menu just to look at the current settings, without having to
wait for a cold start when exiting.

If a mistake has been made and a user wants to reload an axis without saving
the changes, move the selector cursor to display the "Enter Axis ID" prompt. At
this prompt, re-enter the axis that is currently being edited. A "Do You Want To

April 2003 Section 8: Commands 189


Fadal User Manual

Save Survey Before Re-Loading (Y/N)" message will appear. Press "N" to
reload the survey without saving the changes.

Figure 8-51 Survey Settings

WARNING: This command should ONLY be used by trained

! MAINTENANCE PERSONNEL.

Tape (Program)
Input
TA, Device Option, The TA command first clears the current program and prepares to receive
Error Option, Add at program data blocks, tool offsets, or fixture offsets. If the current program has
the End Option an O word, it is placed into machine memory. If there is no O word in the
program, it is deleted from the machine memory.

The first parameter determines whether the data is from the tape reader of the
machine or from the RS-232-C port.

0 = Input from Tape Reader.


1 = Input through RS-232 port.
2 = Input maintenance programs from machine memory.
3 = Input probe programs from machine memory.

190 Section 8: Commands April 2003


Fadal User Manual

The second parameter selects the three possible error options.

1 = Indicates that the program HAS parity errors.


2 = Ignores errors on input and gives an error count after input.

Note: A block of code containing an error is ignored, an error count upon


completion of input displays the number of blocks having errors.

3 = Allows the control to accept programs from another


CNC control.

Enter a value of 1 for the third parameter if the input is to be added at the end
of the current program. After this input, the NU command is required before
editing or execution.

Note: The control will automatically delete a program from the library when the
file number of the program being received is same as the one in the library.

Tool Changer Open


TC,1 This command is used to open the tool changer to manually insert tools. If the
“Option” parameter is a 1, the tool changer moves to position under the
spindle. The spindle rises to release the tool (if applicable) and waits. Press
MANUAL to return the spindle and retract the turret. If the parameter is a 2, the
machine does NOT wait with the spindle raised. The spindle and turret
immediately return.

Tool Parameter
Definition
TO, Number, This command is used to manually enter data in the tool compensation table.
Diameter, Length The table contains tool diameter and length offsets for 99 tools.
Offset

EXAMPLE: TO,6,.75,-2.75
Enters data for tool 6; a diameter of .75; a -2.75 length offset

EXAMPLE: TO,6,,-2.75
Enters data for tool 6; the current diameter/radius of tool #6 is unchanged; a -
2.75 length offset

In programming Format 1, the CNC summons these values by use of an H


word programmed in a block of NC code. The length offset value is applied

April 2003 Section 8: Commands 191


Fadal User Manual

immediately when the H word is detected during program execution or in MDI.


The diameter offset value is applied when a G41 or G42 is detected,
compensating the value of the last designated H word.

In programming Format 2, the length offset is applied immediately when the H


word is detected. The D word is used to apply the diameter/radius value for
cutter compensation when a G41 or G42 is coded.

Enter the command DT to examine all tool data.

Tool Loading 1. From MDI mode, (MANUAL DATA INPUT), type M19, press ENTER and
Procedure START to orient Spindle.

2. Press MANUAL to switch to the <ENTER NEXT COMMAND> mode.

3. Rotate the Turret using Turret CW or Turret CCW keys until bucket 1 is in the
bucket ready position.

4. Type SETTO to reset the bucket numbers with bucket 1 at bucket ready
position.

5. Return to MDI by pressing MANUAL.

6. Load the first tool into the Spindle by pressing TOOL IN/OUT and insert into
the Spindle. Notice which of the two keyslots in the Tool Holder is deeper, or
has a protruding setscrew. Align the tool so that the deeper keyslot faces
forward and does not have any protruding setscrew to interfere with the
alignment key on the arm of the ATC.

7. Type M6T2, and the DATC will place the first tool in bucket 2, and wait for
the second tool.

8. Similarly, load the second tool into the Spindle.

9. Type M6T2, and the second tool will move to bucket 3.

10. Similarly, load the third tool into the Spindle.

11. Repeat as necessary until all of the tools have been loaded.

Utility
UT, Tool Number This command has six basic functions, tool setting cycle, fixture offset setting,
TS-20 test, and MP 8 test. The tool setting cycle may be used to input diameter

192 Section 8: Commands April 2003


Fadal User Manual

and length offsets for multiple tools. The fixture offset setting may be used to
set fixture offset locations into the fixture table. The TS-20 test is used to test
the operation of the TS-Series touch probes. The MP 8 test is used to test the
operation of the MP-Series probes. See the VMC Training manual for the
specific operation of this command.

The tool number parameter is utilized to retrieve a specific tool. UT,5 would
perform a tool change and place tool number five in the spindle.

When the UT command is entered without the tool number parameter, the
utility menu is displayed.

Offset Utility
Options:

Figure 8-52 Offset Utility Options

Offset Utility Tool Setting Cycle


Option 1
This option is used to set tool length offsets. See the Touch Probe section of
this manual for the operation of this option.

Offset Utility Fixture Offset Setting


Option 2
This option is used to set fixture offset locations.

FIXTURE OFFSET Menu Items:

Item 1 Select Number/Locator

April 2003 Section 8: Commands 193


Fadal User Manual

This option displays the currently selected fixture data. The operator is then
prompted to select another fixture number. Enter the new fixture number or
press ENTER to use the same number. The fixture offset options are displayed.

Figure 8-53 Select Number/Locator

After selecting this item, the user is prompted for the fixture number.

ENTER FIXTURE OFFSET NUMBER (1-48)

Enter the number of the fixture to be set. The user is then prompted for the
locator diameter.

ENTER LOCATOR DIAMETER

When using an edge finder, enter the edge finding diameter. When using a dial
indicator, press ENTER to continue. The user is prompted for a spindle speed, if
a locator diameter is entered. Enter the desired RPM for the edge finder. The
RPM is set; however, the spindle is not started. The spindle MUST be started
manually when the operator is ready to find an edge. The fixture data and
offset options are displayed after the RPM is entered.

Note: The RPM is input without the letter S. The control returns to the
Command mode when the letter S is entered.

Item 2 Jog to Locate

194 Section 8: Commands April 2003


Fadal User Manual

This option prompts the user to enter the Jog mode. The operator may enter
the Jog mode and find the part edge. The operator may return to the offset
option display at any time, by pressing the MANUAL button.

Figure 8-54 Jog to Locate

April 2003 Section 8: Commands 195


Fadal User Manual

Item 3 Store Location

This option is used to record the fixture offset location to the fixture offset table.

Figure 8-55 Store Location

Locator Diameter

When using a locator diameter, this option is used to adjust for that diameter.
When this option is selected, the compensation amount for the locator is
displayed with the prompt for the axis to set.

Press the letter of the axis to be entered into the fixture table.

The locator compensation options are then displayed.

Figure 8-56 Locator Diameter

196 Section 8: Commands April 2003


Fadal User Manual

Press the plus key if the locator touched the part on the axes positive side. The
control subtracts the locator compensation amount to the current location, and
stores that value in the fixture table. Press the minus key if the locator touched
the axes negative side of the part. The control adds the locator compensation
amount to the current location, and stores that value in the fixture table. Press
0 if the current location is desired. The current axis location is stored in the
fixture table. The operator is returned to the axis selection display to select the
next axis to set. Press any other key to return to the offset options. Repeat this
process for each axis to set.

Dial Indicator

The procedure for the dial indicator is the same; however, the compensation
options are not displayed. When the axis is selected the current location is
entered into the fixture offset table.

Item 4 Find Center of Circle

Figure 8-57 Find Center of Circle

Using a edge finder in the jog mode, the center of a circle can be determined.
Enter the Jog mode by pressing the JOG button, touch the edge finder to the
circumference, then press the MANUAL button to enter the coordinates for the
first point. Repeat this procedure touching at 2 other points on the

April 2003 Section 8: Commands 197


Fadal User Manual

circumference of the circle. The center will be calculated using these


coordinates by pressing the C button.

Figure 8-58 Edge Finder

The data can then be inserted into the fixture offset table by pressing the I
button.

Figure 8-59 Fixture Offset

To exit this option press the X button.

Item 5 Find Midpoint

Using the edge finder as described in the preceding paragraph, the mid point
between two planes or edges can be found and entered in the fixture offset
table.

198 Section 8: Commands April 2003


Fadal User Manual

Item 6 Find Corner

Using the edge finder as described in the proceeding paragraph, the corner
between two intersecting planes or edges can be found and entered in the
fixture offset table.

Item 7 Find 90° Corner

Using the edge finder as described in the proceeding paragraph, a 90° corner
between two points can be found and entered in the fixture offset table.

Item 8 Move to Fixture Offset

The fixture offset calculated in Options 4-7 can be activated with this option.
This will move the machine to that fixture offset’s coordinates.

Item 9 Exit

Selecting this option exits to the Utilities menu.

Offset Utility Test TS-20 Probe


Option 3
This option is used to test the TS- touch probe. See the Touch Probe section of
this manual.

Offset Utility Test MP Probe


Option 4
This option is used to test the MP probe. See the Touch Probe section of this
manual.

Offset Utility Pallet Changer


Option 5
This option displays the pallet changer utility menu. See the Pallet Changer
section of this manual.

April 2003 Section 8: Commands 199


Fadal User Manual

Offset Utility Clocks


Option 6
This option is used to display the clock service utility.

Figure 8-60 Clock Service Utility

Item 1 Display Clocks

Select this option to display all current clock settings.

Figure 8-61 Display Clocks

The current time is displayed at the top. The power on time is the amount of
time since the last reset. Time is accumulative from each power on.

200 Section 8: Commands April 2003


Fadal User Manual

Running time is the total accumulative time that the machine has been in the
AUTO mode. The time is suspended when the machine is in the WAITING state.
This is time is accumulative from the last reset.

The last part time is running time of the last program run. When the AUTO
mode is entered the clock stops. The time stops when the M2 or M30 is
performed. Running time only is used.

The current part time is the current running time of the program in execution.

Item 2 Set Time

This option allows the user to set the current time. The previous time is
displayed with the prompt to enter the new time. Press ENTER to retain the
current time setting. Enter new times using a twelve hour clock. The AM or PM
MUST be entered.

Note: This setting cannot be changed with the key lock on.

Item 3 Reset Clocks

When option three is selected, all clocks, except current time and tool time, are
reset to zero.

To reset tool time go to the DTT table.

Note: This option is not functional when the key lock is on.

Item 4 Exit

Select this option to return to the Offset Utility Options menu.

April 2003 Section 8: Commands 201


Fadal User Manual

Tape Verification
VT, Device Option This command reads a paper tape that is punched by the VMC. Using a check
sum routine, the control verifies the punched tape. The CNC displays the
message TAPE IS GOOD indicating a successful punch.

The “Device Option” parameter of 1 indicates use of the RS-232 port to read
the tape. This parameter is a 0 if the control is to use the machine tape reader.
The procedure is as follows:

1) Type the command: VT,1 then press the ENTER key.

2) Start the tape reader.

3) Stop the tape reader when done.

202 Section 8: Commands April 2003


Fadal User Manual

Section 9: Cutter Radius Compensation

Cutter Radius Cutter Radius Compensation (CRC) is used in a program to allow the operator
Compensation to alter the path of a cutter.
UNDERSIZED PART OUTLINE

GOOD PART OUTLINE

PFAD 1
PFAD 2

Figure 9-1 Cutter Radius Compensation

EXAMPLE: After cutting the part with path 1, the operator measured the part and
determined that the part was undersized. By increasing the amount of the
diameter in the tool table and running the program again with another part in
the fixture, path 2 cut the part to the correct dimension.

Format 1 The H word in the program will pick up the tool length offset (TLO) and the tool
diameter offset. It should be used before using the G41 or G42 codes. The D
word can be used to pick up a new diameter, however, it is not necessary in
Format 1. If a D word is used, it should appear in the program after the H word.
Whatever diameter is picked up by the H word is then overwritten by the D
word. It can be used on the same line as the G41 or G42 codes.

M6 T1
G0 G90 S7500 M3 X-2. Y-1.
H1 M7 Z.1 The H will pick up the TLO and the diameter from the tool table
Format 2 The H word in the program will only pick up the tool length offset (TLO). It
should be used before using the G41 or G42 codes.

April 2003 Section 9: Cutter Radius Compensation 203


Fadal User Manual

The D word must be used to pick up the tool diameter. It can be used on the
same line as the G41 or G42 codes or on any line before the G41 or G42 codes.

M6 T3
G0 G90 S800 M3 X3.641 Y-2.224
H3 D3 M8 Z.1 The H and the D words are used to pick up the TLO and the tool
diameter

G40 - Cancel Cutter See G42.


Radius
Compensation

G41 - Climb Cut See G42.


(cutter left)

G42 - Conventional The G40, G41, or the G42 can be used before or after other codes in a line,
Cut (cutter right) without changing what happens. G41 X1. G1 F35. and G1 X1. F35. G41 would
both function the same way.

G41: OFFSET THE CUTTER TO THE LEFT


OF THE PROGRAMMED PATH

G42: OFFSET THE CUTTER TO THE RIGHT


OF THE PROGRAMMED PATH
Figure 9-2 Conventional Cut

204 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

Climb and
Conventional Cutting G41

G41
G41: CLIMB CUT THE PROGRAMMED
PATH

Figure 9-3 Climb Cutting

Climb cut the inside of a part by following a general counterclockwise path.


Climb cut the outside of a part by following a general clockwise path.
G42

G42: CONVENTIONAL CUT THE


G42 PROGRAMMED PATH

Figure 9-4 Conventional Cutting

Conventional cut the inside of a part by following a general clockwise path.


Conventional cut the outside of a part by following a general counter clockwise
path.

April 2003 Section 9: Cutter Radius Compensation 205


Fadal User Manual

The H and the D


Word with CRC
H and D Word Use Cutter Radius Compensation must be called with offset call. In Format 1 mode,
the offset number is selected by the use of an H word. In Format 2, the D word
is used. The amount applied will be 1/2 the diameter specified in the table.
Positive or negative diameters are allowed. A negative diameter will cause the
displacement in the opposite direction. In Format 2 mode, the cutter offset
specification in the tool data table may be changed to register diameter or
radius

(see Section 8, SETP). The D word in the program (Format 2) indicated which
offset to use. In Format 1, the use of the D word will override any diameter
offset selected by the last H word. The next H word will override the previous D
word.

The use of the H99 with the Q word, in Format 1, may be used to specify a
specific tool diameter. This diameter value given to the Q word is placed into
the tool table location 99. This new value will be used until a new H word or D
word is specified.

EXAMPLE: M6 T1 (.506 E.M.


G0G90S200 M3 E1 X0Y0
H1 Z.1
G1 Z-1.
G41X3.
Y2.
H99 Q.5 This specified a tool diameter of .5
To reverse direction of cut the G41 or G42 mode can be switched without
canceling the other code. This can be used when kellering (cutting in both
direction to remove material).

Advantages of Climb When using climb cuts, the cutter will bend away from the wall being cut. This
Cutting will automatically leave stock on the wall. Because it will leave stock, this will
eliminate the need to program a different roughing pass around the part
outline. A roughing pass and a finish pass will result from using the same path
two times around the outline. After material has been removed on the first
pass, tool pressure is reduced and the tool will not bend on the second pass.
Sometimes more than two passes are required depending on the length and
type of cutter and on the type of material being cut. For a second pass use the
copy command to copy the program, or use subroutines or subprograms.

206 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

Simply increasing the diameter of the tool in the tool table will not always work
for a roughing pass. Inside radii could be a limiting factor. If the tool diameter is
increased to a size larger than an inside radius on the part outline, a “TOOL
DIAMETER TOO LARGE” message will appear.

.005/.015

FINISHED FLOOR
Figure 9-5

Note: The tool is bending the first time around, so program the tool to be .005
to .015 above any floors (the longer the tool the more it will bend). On the
second or final pass, program the tool to cut the floor. The second pass
may also use a different feedrate and spindle RPM.

Note: Because of the rigidity of a bed style vertical machining center, it is not
necessary to program a conventional cut around the part outline and then
finish the part with a climb cut. Although this is true for most materials,
plastics and hardened materials are the exception.

In most cases climb cutting will allow the tool to last longer. It is not
recommended to use climb cutting through a hardened surface, as in a
welded, flame hardened, flame cut, hard anodized, or a hot rolled surface.

Climb cutting allows a higher RPM to be used, and along with a higher RPM,
higher feed rates (as compared to conventional cutting).

The heat created at the tool and work piece is less with a climb cut than with a
conventional cut. With tools as short as possible and a high RPM, the chips will
take the heat away from the tool and the work piece.

Note: When using a higher RPM, use cutters with good chip clearance. Use
two or three fluted end mills in place of cutters with four or more flutes.

Advantages of Use conventional cutting to “scoop out” or cut through hardened material. If
Conventional Cutting the cutter is deep enough to start the chip in soft material, the chip will

April 2003 Section 9: Cutter Radius Compensation 207


Fadal User Manual

continue to form up through the hard material. This will break down the cutter,
but it will last longer than using a climb cut.

The heat between the cutter and the work piece is greater with a conventional
cut, so a this cut is used for a finish cut for some plastics. It will leave a
smoother finish than a climb cut.

In some cases a conventional cut is used to push a flimsy part up against a


fixture. If a climb cut was used, the part would not have any support and would
bend because of the cutting action.

WARNING: Climb cutting causes the cutter to bend away from the wall

! being cut, and conventional cutting will cause the cutter to bend into the
wall being cut.

Guidelines for Using Use CRC (G41, G42) only when cutting a part outline (part path program).
CRC Program motion of the center of the tool when cutting areas other than walls,
using G40 (CRC cancel). When programming the motion of the center of the
cutter (tool path program) using G40, the control will not alter the path.
PART PATH PROGRAM
(CRC IS USED)

G40

G41

TOOL PATH PROGRAM


(CRC NOT USED)

Figure 9-6 Using CRC

CRC (G41, G42) should only be used when cutting a part outline. Program the
outline of the part (using the print dimensions). The control will compensate for

208 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

the radius of the cutter being used and cut to leave the programmed part
outline.
TO CLEAN OUT THE POCKET
PROGRAM THE MOVEMENT OF THE CENTER
(TOOL PATH PROGRAM)

NUR CRC BENUTZEN UM DIE WÄNDE


(PART PATH PROGRAM)

Figure9-7

Note: Cutter Radius Compensation must be canceled prior to locating the


center line of the tool to a specific point.

General Rules
+ 1 4 +

G41 G40

2 3

Figure 9-8 General Rules

1) G90 X-.4 Y.4 Position the tool, at least the tool radius away from the wall
to be cut

2) Y0 G41 G1 F10. With the move to the wall, use G41 to apply CRC

3) X3.01 Move along the wall

4) Y.4 G0 G40 With the move away from the wall being cut, use a G40 to
cancel comp

April 2003 Section 9: Cutter Radius Compensation 209


Fadal User Manual

Note: The distance of the move up to the wall and away from the wall must be
greater than or equal to the radius of the cutter.

Examples of These examples represent part outlines and are intended to give general ideas
Applying and on applying and canceling cutter radius compensation.
Canceling CRC

G40
1 2 .
G41

Figure 9-9 Applying & Canceling CRC (1)

1) Position the tool, at least the tool radius away from the boss.

2) Apply CRC along with the move up to the boss.

3) Program the circular move.

4) Cancel CRC along with the move back to the first position.

G40

6 5

3 4 .

1 2

G41
Figure 9-10 Applying & Canceling CRC (2)

1) Position the tool, at least the tool radius away from the line from 2 to 3.

2) Apply CRC along with the move from position 1 to 2.

3) Complete the entire path.

210 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

4) Cancel CRC along with the move from position 5 to 6.

4 3 . 1 6

Figure 9-11 Applying & Canceling CRC (3)

1) The radius of the lead in lead out radius must be larger than the radius of
the tool to be used.

2) Apply CRC along with the move from position 1 to 2.

3) Complete moving around the path.

4) Cancel CRC along with the move from position 5 to 6.

G40
4 3
1 2
G41

Figure 9-12 Applying & Canceling CRC (3)

1) Apply CRC with the move from position 1 to 2. Position 1 must be at least
the radius of the tool to be used away from the edge of the circle to be cut.
Position 1 does not need be at the center of the circle.

2) Cut counter clockwise around the circle.

3) Cancel CRC along with the move away from the circle from position 3 to 4.

April 2003 Section 9: Cutter Radius Compensation 211


Fadal User Manual

6 1 3 4

Figure 9-13 Applying & Canceling CRC (4)

1) The radius of the lead in lead out radius must be larger than the radius of
the tool to be used.

2) Apply CRC along with the move from position 1 to 2.

3) Complete moving around the path.

4) Cancel CRC along with the move from position 5 to 6.

12 1

G40 G41
11 2
3
4
10
5

9
7

8
Figure 9-14 Applying & Canceling CRC (5)

212 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

1) Apply CRC along with the move up to the part wall (from position 1 to 2).

2) Move around the part.

3) Cancel CRC along with the move away from the part (from position 11 to
12).

G41

G40

Figure 9-15 Applying & Canceling CRC (6)

1) Apply CRC along with the move up to the part wall. This move must be at
least the radius of the tool to be used away from the part.

2) Move in a general clockwise direction around the outside of the part (for
climb cut).

3) Cancel CRC along with the move away from the part. Again, this move must
be at least the radius of the tool to be used away from the part.

G40

G41

Figure 9-16 Applying & Canceling CRC (7)

1) Apply CRC along with a move up to an extended wall from the part. This
move must be at least the radius of the tool to be used away from the part.

April 2003 Section 9: Cutter Radius Compensation 213


Fadal User Manual

2) Move in a general clockwise direction around the outside of the part (for
climb cut) to an extended line off the wall of the part.

3) Cancel CRC along with the move away from the extended line. Again, this
move must be at least the radius of the tool to be used away from the
extended line.

O-Ring Groove In an O-ring groove, consider both circles of the groove as separate walls.
Example
1) Start at the midpoint between the walls.

2) Apply CRC (comp) moving to the first circle.

3) Cut the circle.

4) Cancel comp moving back to the midpoint.

Figure 9-17 O-Ring Groove

Following the general rule, always cancel CRC when leaving a wall. When going
from one wall to the other, cancel comp moving to the midpoint, then apply
comp again moving to the other wall.

5) Apply comp moving to the second circle.

6) Cut the circle.

214 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

7) Cancel comp moving back to the midpoint.

Perpendicular Rule

Figure 9-18 Perpendicular Rule

It is best to apply and cancel comp using moves perpendicular to the wall.
When perpendicular moves are used, the cutter will follow the programmed
move. Otherwise, the cutter will not follow the move to or away from the wall.

Moving perpendicular to and from a wall is best. When comp is on, the tool will
remain perpendicular (tangent) to the wall it is touching. Beginning and ending
the move perpendicular will keep the tool perpendicular for the entire
programmed path.

Comp can be applied with a move that is not perpendicular; however, the
actual move the tool will make when it is moving up to and away from the wall
cannot be predicted. Even though it is possible to turn comp on, with a move
that is not perpendicular the wall, this method is not recommended.

Any line, at any angle, that extends through the center of a circle is considered
perpendicular to the circle. When starting comp such a line is recommended
for contoured walls.

April 2003 Section 9: Cutter Radius Compensation 215


Fadal User Manual

Fillet Radii and Step


Downs

Figure 9-19 Fillet Radii and Step Downs

All features on a print have tolerances. Inside corner radii (“fillet” or “blend”
radii) usually have more tolerance than other features. Take advantage of this
and program inside corner radii larger than the radius of the tool to be used for
cutting the part. Also remember, when a larger tool diameter is going to be
used for a roughing pass, program fillet radii larger than the intended tool
radius. In the drawing above, the tool radius in the tool table is too large for the
programmed fillet radius. In the drawing below, the programmed fillet radius is
larger than the tool radius in the tool table. The operator can increase the tool
radius in the table up to the smallest inside fillet radius.

Figure 9-20 Fillet Radius Larger than Tool Radius

In the drawing above, the step down distance is smaller than the radius of the
tool. The cutter will not be able to step down, and a TOOL DIAMETER TOO
LARGE message will appear. The picture below shows how to program a fillet
radius from the corner of the step and tangent to the bottom wall. Again make
the fillet radius large enough to accept a radius for a roughing pass.

Note: It is always better to program a fillet radius between two intersecting


features, rather than to leave them as steps and intersections.

216 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

Program Example

The print above shows the inside radii as .375 in four places. A .75 end mill
could be used to form the inside radii; however, if the end mill is used to form
the inside radii, the cutter will bend into the corners and chatter. By
programming an inside corner radius larger than the radius of the tool to be
used, the problem of bending into the corner and chattering will be eliminated.
Drilling out the corners, slowing down, speeding up or dwelling in the corners
will not work!

Sometimes the tolerances do not allow the programmer to program an inside


corner radius larger than a common sized end mill. For example, a print may
allow the corner to be no larger than .250. Using a .5 end mill would cause the
cutter to form the inside radius. When forming an inside radius with the radius
of the cutter is not desirable, use a .375 cutter or reground .5 end mill and
contour the .250 fillet radius.

Note: Never use a cutter to form an inside corner radius and expect good
results on the part!

Note: Always contour an inside corner radius!

EXAMPLE: N1 O1 (CRC RECTANGULAR WINDOW EXAMPLE


N2 L100 (POCKET
N3 Y-1.12
N4 X.875 Y-1.5 I.375 J0 G3
N5 X1.625
N6 X2. Y-1.125 I0 J.375
N7 Y-.875
N8 X1.625 Y-.5 I-.375 J0
N9 X.875

April 2003 Section 9: Cutter Radius Compensation 217


Fadal User Manual

N10 X.5 Y-.875 I0 J-.375


N11 M17
N12 M30
N13 (TOOL #1, 3/4 2FL EM (CRC)
N14 G0 G90 S5000 M3 E1 X.875 Y-.875
N15 H1 D1 M7 Z.1
N16 G1 Z-.4 F10. G8
N17 X.5 G41
N18 F35.
N19 L101
N20 F45.
N21 L101
N22 X.875 G40
N23 M5 M9
N24 G0 H0 G90 Z0
N25 M6 T2

The subroutine includes only the moves around the wall of the window.
Programming in this manner allows the subroutine to be called up two times for
two passes around the wall. The move up to the wall at N17 turns comp on,
and is using the feedrate from N16. A new feed at N18 is programmed and
then the sub is called one time at N19. A feedrate change is made at N20, then
the sub is called again at line N21. When running this program, the moves will
look as if they are continuous from the first time around to the second time
around. This is because all of these moves are preprocessed. The move away
from the wall, while turning comp off, is made at line N22.

Corner Rounding When cutter radius compensation is applied, it can use two different methods
to move around a corner: rolling and intersectional.

Figure 9-21 Corner Rounding

218 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

M96 Cancel
Intersectional CRC
(Rolling)

Figure 9-22 Rolling

M97 Intersectional The M96 or M97, as default codes, can be selected when using the SETP
CRC command.

The M96 mode of CRC is more commonly used. In most cases it is also the
safer mode. Using this mode insures that the tool will always be touching the
programmed walls. An M97 allows the tool to move away from the
programmed walls, where it might gouge some other programmed feature.
These two codes are named by the way they move around any corner:
tangentially for M96 and intersectionally for M97.

When to use M96 Each code produces a different type of corner on the floor; however, both will
and M97 cut a mitered corner on all top edges.

Figure 9-23 Using M96 and M97

April 2003 Section 9: Cutter Radius Compensation 219


Fadal User Manual

Figure 9-24 Rounded/Mitered Corners

M96 produces a rounded corner on the floor. M97 produces a mitered corner
on the floor.

Note: Some prints will specify the type of corner needed on the part. In most
cases the type of rounding used will only affect the part visually, not
functionally.

M96 and M97 are default codes, and can be established by using the SETP
command. M96 is more commonly used as default because M97 causes the
tool to bypass a corner which may cause the tool to bump into another portion
of the part.

If a part has steps, and blend radii were not used to move up and down the
steps, use M97. The control will accept the program better than in the M96
mode. As mentioned earlier in regards to fillet radii and step downs, it is better
to always program a fillet radius between two intersecting features, rather than
to leave these features as steps and intersections. If fillet radii are
programmed, use the M96 mode.

Grooves, slots, and O-ring grooves should use M96. This is most important
when the diameter of the tool is almost equal to the width of the slot or groove.

CRC & Z Axis Moves While CRC is in effect, a Z move can be made to move to a new Z level or to
execute a helical move. The control will “look ahead” of Z moves and
compensate the cutter for the next X or Y move.

220 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

M6 T1 (TOOL #1, 1/2 DIA. FINISH EM (CRC)


G0 G90 S6000 M3 E1 X24.5 Y.3
H1 M7 Z-.5
X24.2 G41
Y-1.02 G1 F35.
Z-.2 Here is a move to a new Z level with CRC still in effect
Y-1.9 G5
Y-2.02
X24.5 G0 G40

Applying CRC can be applied along with a Z move. When comp is applied with a Z move,
Compensation with the cutter will offset tangent to the next X or Y axis move. The next line for the
a Z Move control to move tangent to can be a linear move or a circular move.

Note: Format 1 and Format 2 apply the offset differently.

EXAMPLE: Format 1

A G41/G42 in the same line with a Z move will offset the cutter before making a
Z minus move and after a Z plus move.

M6 T1 (TOOL #1, 3/4 DIA. EM (CRC)


G0 G90 S1500 M3 E1 X.6 Y-4.6
H1 Z.1 M7
Z-.52 G41 Here the cutter offsets first, then the Z move is made
X0 Y-3.7 G1 F15.
Y.02
Z.1 G0 G40 Here the Z move is made first, then comp is canceled

Note: The example program above will operate differently in Format 2. See the
next example program for Format 2.

EXAMPLE: Format 2

In Format 2 the Z move and the offset move will be made together.

M6 T1 (TOOL #1, 3/4 DIA. EM (CRC)


G0 G90 S1500 M3 E1 X.6 Y-4.6
H1 Z.1 M7
Z-.52 G41 Here the offset and Z axis move at the same time
X0 Y-3.7 G1 F15.
Y.02

April 2003 Section 9: Cutter Radius Compensation 221


Fadal User Manual

Z.1 G0 G40 Here the Z axis moves and the offset is canceled at the same time

EXAMPLE: Format 1 & 2

The sample program below will operate in the same way for Format 1 and
Format 2.

M6 T1 (TOOL #1, 3/4 DIA. EM (CRC)


G0 G90 S1500 M3 E1 X.6 Y-4.6
H1 Z.1 M7
G41 Here the cutter offsets
Z-.52 Then the Z move is made
X0 Y-3.7 G1 F15.
Y.02
Z.1 G0 Here the Z move is made
G40 Then comp is canceled

222 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

Applying
Compensation with
a Z Move on a Circle

Figure 9-25 Cutter Offset

EXAMPLE: Format 1 & 2

The sample program below will operate in the same way for Format 1 and
Format 2.

M6 T1 (TOOL #1, 3/4 DIA. EM (CRC)


G0 G90 S1500 M3 E1 X2.4 Y-1.2
H1 Z.1 M7
G41 Here the cutter offsets perpendicular to the circle
Z-.52 Then the Z move is made
X-1. Y-1.1225 I-1.4 J-4.8 G3 Here the circle cut is made
Z.1 G0 Here the Z move is made
G40 Then comp is canceled

April 2003 Section 9: Cutter Radius Compensation 223


Fadal User Manual

Compensation
Example

Figure 9-26 Compensation Example

EXAMPLE: Format 1 & 2

The sample program below will operate in the same way for Format 1 and
Format 2.

M6 T1 (TOOL #1, 1/2 DIA. EM (CRC)


G0 G90 S5000 M3 E1 X.332 Y-2.2 This moves to point one
H1 Z.1 M7
G41 Comp is applied perpendicular to the next move
Z-.27 Z moves down
X0 Y-1.625 G1 F30.
Y-.25
X.25 Y0 I.25 G3
Y.3 G40 G0 Comp is canceled along with the move away from the wall being
cut
Z.1
X1.75 This moves to point six
Z-.27
Y0 G41 Comp is applied with the move up to the wall to be cut
X2. Y-.25 J-.25 G3
Y-1.625
X1.668 Y-2.2
Z.1 G0 Z moves up perpendicular to position ten
G40 Comp is canceled and positions over point ten

224 Section 9: Cutter Radius Compensation April 2003


Fadal User Manual

Section 10: Error Messages

Error Messages
ABSOLUTE MODE The CNC must be in the G90 (absolute) mode during all probe functions. Probe
REQUIRED AT N = function L9101 is programmed in the G91 (incremental) mode.

AMPLIFIER FAULT ON This occurs at power on if the control does not detect an axis that should be
AXIS operational. This is often seen when the A axis is not in use and the dummy
termination plug has been installed. If the dummy termination plug is installed,
this message can be disregarded.

If this message appears for any of the other axes (X, Y, or Z), then power off to
check the motor overload relays. Power on and if the message appears again,
call the service department, noting the error message number. The motor
overload relays can be recognized by their white reset buttons. They are
located in both control enclosures. The white button must be pressed to reset a
relay.

This message also appears when the EMERGENCY STOP button has been
pressed. The operator must release the EMERGENCY STOP button and press
the JOG button to reset the amplifiers. (Depressing the EMERGENCY STOP
button disconnects the axis amplifiers. This is why this message appears.)

ARM MUST BE LEFT Before a pallet change can occur, the arm must be completely to the left with
the pallet on the table. The feed back on the arm is being read at this time.

ARRAY EXCEEDS This message will appear when the number on the array exceeds the expected
ALLOWABLE amount. This amount varies from variable to variable. For example, H(99) is
NUMBER acceptable, H(102) is not.

April 2003 Section 10: Error Messages 225


Fadal User Manual

ATC FAILURE Check to see if the Z axis alignment was properly set at cold start. The
automatic tool changer has failed to respond to an M6 or the TC,1 command.
Try a power off and power on. If this does not help check the fuses F5, F6, F7,
and F8 to see if they are burned out. Circuit breakers 1 and 2 (if they are
present) should be pressed to see if they have been tripped.

WARNING: Power off the machine before checking fuses, relays, and/or

! circuit breakers.

If this does not help, call the service department.

If this message appears with the turret in the extended position, it may be an
indication that the sensor for turret extension is faulty; call the service
department.

ATC TURRET Check to see if the Z axis alignment was properly set at cold start. Then check
FAILURE to see if anything is caught between the sheet metal guard and the turret. If
not, this could be an indication that the sensor for turret rotation is faulty.

The fuses F5 and F6 should be checked to see if they are burned out. Circuit
breaker 2 (if it is present) should be pressed to see if it has been tripped.

WARNING: Power off the machine before checking fuses, relays, and/or

! circuit breakers.

ATC WILL NOT MOVE Check to see if the Z axis alignment was properly set at cold start. An attempt is
TO POSITION made to make a tool change and something prevents the turret from going all
the way out to the spindle. Check the tracks that allow the turret to slide out to
the spindle. Sometimes chips stick to the track and prevent the rollers from
rolling on the track.

When this message appears use the command SETCS then the command HO
which will bring the tool to the Cold Start position. It is important to visually
check the axis indicator markers to see if they are aligned; if not, jog the table
until the markers are aligned. Use the command CS, then answer Yes (Y) to the
“move to home?” question. This will bring the tool to the part’s home position
and enable the operator to begin running the program in AUTO again. It is also
possible that the turret extended sensor is faulty.

Fuses F5, F6, F7, and F8 should be checked to see if they are burned out.
Circuit breakers 1 and 2 (if present) should be pressed to see if they have been
tripped.

226 Section 10: Error Messages April 2003


Fadal User Manual

WARNING: Power off the machine before checking fuses, relays, and/or

! circuit breakers.

ATC AMBIGUOUS The Tool Count sensor indicates the Turret is located between Buckets, or has
TURRET POSITION, been interrupted. Move Turret to next Bucket position, and apply SETTO,#
VERIFY POCKET # where # is the Bucket number in the Bucket ready position.
WITH SETTO,# or,
TURRET LOCATION 1. Another system may have faulted while Turret was moving or the ATC
LOST, RESET was communicating. Correct the fault, and reset Turret locations
TURRET LOCATIONS with SETTO,#.
WITH SETTO,# 2. Check the Door Interlock System.
3. Check for power interruption to the Turret Motor, fuses, and circuit
breakers.
4. Check the Turret Motor for liquid contamination, or inoperative brake.
5. Check the Tool Count Sensor.

ATC AMBIGUOUS The Tool Up or Tool Down sensor indicates that Bucket is out of position, and
BUCKET POSITION, the Turret Locations may be lost. Correct Bucket Up/Down problem, and apply
VERIFY POCKET # SETTO,# where # is the Bucket number in the Bucket Ready position.
WITH SETTO,# or,
BUCKET NOT UP/ 1. Check Tool Up/Tool Down reed switches on Bucket Cylinder.
DOWN, RESET 2. Check for both air valves on at the same time.
TURRET LOCATIONS 3. Check for inadequate air supply.
WITH SETTO,#

ATC ARM IS NOT IN The Stopping Sensor or the Arm at Home Sensor indicates that the Arm is not
HOME POSITION in its Home Position, and must be before the machine can continue.

1. Check Door Interlock system.


2. Check Head Position Sensor and Head Position.
3. Check for power interruption to Arm Motor, fuses, and circuit
breakers.
4. Arm Motor may need to be moved manually.

ATC ARM SOLENOID The Arm at Home Sensor indicates that the Arm has not moved away from ATC
SENSOR/HOME home position.
SENSOR FAILURE or,
ARM DID NOT MOVE 1. Check Door Interlock system.
FROM HOME 2. Check Head Position Sensor and Head Position.
3. Check for power interruption to Arm Motor, fuses, and circuit
breakers.
ATC BUCKET UP The Tool Up Sensor has not reported a successful move up of the Bucket in
SOLENOID/SENSOR preparation for rotating the Turret.
FAILURE or, BUCKET
DID NOT MOVE UP 1. Check the lower reed switch on the Bucket Cylinder.

April 2003 Section 10: Error Messages 227


Fadal User Manual

2. Check for inadequate air supply.


3. Check air valve.

ATC BUCKET DOWN The Tool Down Sensor has not reported a successful move down of the Bucket
SOLENOID/SENSOR in preparation for exchanging the tools.
FAILURE or, BUCKET
DID NOT MOVE 1. Check the upper reed switch on the Bucket Cylinder.
DOWN 2. Check for inadequate air supply.
3. Check air valve.

ATC A communication timeout has occurred between the CNC CPU and the DATC
COMMUNICATION Controller (1330).
ERROR WITH 1330
CARD 1. Route ribbon cable connecting the 1470 to 1330 away from fans.
2. If error occurs on power-up, there may not be an actual problem.

ATC INTERLOCK IS An inhibited ATC function has been attempted while interlocked.
ON

ATC TOOL CLAMPING The arm at Spindle Sensor or the Stopping Sensor has indicated that the Arm
FAILURE or, ARM DID has not arrived at the Spindle.
NOT ARRIVE AT
SPINDLE 1. Check for Arm Plunger latching problem.
2. Check Door Interlock system.
3. Check Head Position Sensor and Head position.
4. Check for power interruption to Arm Motor, fuses, and circuit
breakers.

ATC TOOL The Arm at Spindle Sensor or the Stopping Sensor has indicated that the Arm
UNCLAMPING did not leave the Spindle.
FAILURE or, ARM DID
NOT LEAVE SPINDLE 1. Check Door Interlock system.
2. Check Head Position Sensor and Head position.
3. Check for power interruption to Arm Motor, fuses, and circuit
breakers.
4. Check for tool release failure.

ATC TOOL ARM The Arm travel was interrupted before arriving at the Spindle.
OBSTRUCTED or,
ARM DID NOT 1. Check Door Interlock system.
ARRIVE AT SPINDLE 2. Check Head Position Sensor and Head position.
3. Check for power interruption to Arm Motor, fuses, and circuit
breakers.

228 Section 10: Error Messages April 2003


Fadal User Manual

ATC TOOL SENSOR The Stopping Sensor and the Arm at Spindle Sensor both indicate that the Arm
FAILURE or, ARM has not fully positioned at the Spindle.
NOT AT SPINDLE
1. Check Door Interlock system.
2. Check Head position Sensor and Head position.
3. Check for power interruption to Arm Motor, fuses and circuit
breakers.
4. Check for proper Spindle orientation.
5. Check for Tool alignment in ATC grippers.

CAROUSEL The Tool Count Sensor indicates that the Turret Motor has not rotated the Turret
SOLENOID FAILURE as expected within the allotted time.
(OR SENSOR) or,
TURRET HAS NOT 1. Check Door Interlock system.
ROTATED 2. Check for power interruption to Turret Motor, fuses, and circuit
breakers.
3. Check Tool Count Sensor and alignment.

DRAWBAR SENSOR The Drawbar Cylinder Sensor indicates that the Drawbar is still in release
FAILURE or, position, and has not retracted from the Spindle.
DRAWBAR NOT
CLAMPING TOOL 1. Check Drawbar mechanism for binding or no lubrication.
2. Check Drawbar Cylinder Sensor alignment.

DRAWBAR The Drawbar Cylinder Sensor indicates that the Drawbar could not fully release
SOLENOID FAILURE the tool from the Spindle and the Drawbar Cylinder Piston has not moved down
(OR NO AIR) or, full stroke.
DRAWBAR NOT
RELEASING TOOL 1. Check for inadequate air supply or inoperative air valve.
2. Check Drawbar Cylinder Sensor alignment.
3. Check for broken Drawbar Cylinder Piston.

ATTEMPTED In a macro statement, a division by zero was attempted.


DIVISION BY ZERO

ATTEMPTED SQR OF In a macro statement, a square of a negative number was attempted.


A NEGATIVE
NUMBER

ATTEMPT TO This message will occur when attempting to switch from G41 to G42, or vice
CHANGE CRC SIDE versa, on a linear move. However, switching from one to the other is permitted
WITHOUT G40 AT N during circular interpolation.
=

April 2003 Section 10: Error Messages 229


Fadal User Manual

ATTEMPT TO This message occurs if a G41 or G42 is used in the program and a G40 code
CHANGE TOOL does not appear before an M6 code. The G40 cannot be on the same line with
WHILE IN CRC M6. An M6 will not cancel CRC.
MODE, N =

ATTEMPT TO SWITCH G40 must be in effect (CRC must not be on) when changing planes. The default
PLANE DURING CRC plane selection is G17. If CRC is in effect and a code to change to another
plane (G17, G18, G19) is used, this message will appear in the block where the
plane selection was called. G40 must be in effect (CRC must not be on) when
changing planes.

AXIS CONTROLLER This an indication that there is a communication problem between the CPU
DOES NOT RESPOND (1400) board and the axis controller (1010). Note error number and call the
DURING POWER UP service department.
SEQUENCE

AXIS CONTROLLER This an indication that there is a communication problem between the CPU
DOES NOT RESPOND (1400) board and the axis controller (1010). Note error number and call the
TO NC service department.

AXIS DATA This message is the result of a data transfer problem between the 1030 card
TRANSFER IS and a 1010 card. This message does not represent a serious problem and
STALLED should only be reported to the service department if it is persistent. Please note
error number.

AXIS DOES NOT This could be a problem with the 1010 card for the stated axis. Try a power off
RESPOND and a power on. If this does not help, call the service department.

AXIS FAULT(S) AS This appears when the EMERGENCY STOP button is pressed, a motor overload
FOLLOWS relay is tripped, or the machine places itself into the Emergency Stop mode. If
any message or error number is presented on the screen, record this message
and number and report them, if necessary, to the service department.

Release the EMERGENCY STOP button if necessary, then press the JOG button
which will reset the machine. If the machine does not reset, call the service
department.

If the EMERGENCY STOP button is not depressed, then power off the machine
and press the reset buttons of the motor overload relays to see if they are
tripped.

The motor overload relays can be recognized by their white reset buttons. They
are located in both control enclosures. The white button must be pressed to
reset a relay.

230 Section 10: Error Messages April 2003


Fadal User Manual

If the machine stalls for one reason or another, the control places itself into the
Emergency Stop mode. Press the JOG button and jog the tool out of the stalled
position.

An axis fault also occurs during an emergency stop because the control
removes the power to each of the axis servo amplifiers as a safety feature. The
control then analyzes the situation and, as a part of the report, shows a servo
amplifier fault, a result of having removed power to the amplifiers.

AXIS OVERFLOW The axis controller detected an overflow situation. Power off the machine at the
main power switch, wait ten seconds, and turn the power on again. If this
problem is persistent, call the service department.

BAD CIRCLE OR This can indicate an incorrect starting position for the circle, an incorrect
MISSING G AT N ending position, or an incorrect description of the arc center location relative to
the starting position of the circle. This can also indicate that the circle is
programmed in absolute or incremental and the G90 or G91 codes are
incorrect.

BAD DATA OR NO This occurs when an H word (in format 1) or the D word (in format 2) is missing
TOOL DIA. in the program. When a program uses cutter radius compensation (CRC) or a
fixed subroutine, an H word or D word must be specified. This also occurs
when no diameter value is placed in the tool table when using Fixed
Subroutines L94NN, L95NN, L9601, L9701, L9801, L9901. A DIAMETER
VALUE MUST BE USED.

When the fixed subroutine for engraving (L9201) is used, the Z depth and the
R2 variable must be included in the line. See the Users Manual for the correct
format. If the R0 variable is not specified, it is assumed as R0+0. If the R1
variable is not specified, it is assumed as R1+1.

BAD FIXTURE NO. Fixtures are numbered E1-E48. This message is displayed when a fixture offset
is programmed with a value greater than 48. Format 2: G54-G59 and E6-E48
are used.

BAD Check to see what type of move is intended for this block. G1, G2, and G3 are
INTERPOLATION the interpolation codes; G1 is for linear moves and G2 and G3 are for circular
TYPE AT N moves.

BAD R FIELD This occurs during input from the keyboard or through the RS-232 port (from
an off line computer) when the R0 was typed incorrectly. Example: If RO is
typed (R with the letter O) or R with no zero (0) is typed (R-.05 is accepted but
not R.05 or R+.05).

April 2003 Section 10: Error Messages 231


Fadal User Manual

Correct the line in the CNC; or correct the line in the text editor and send the
program again.

BAD R1 USING L91 The R1 parameter is not present in the block containing L9101, or it is present
AT N = with an improper value. L9101 has 9 possible functions that are defined by the
R1 parameter; R1+1. through R1+9.

BAD T WORD AT N= This message occurs during a SUM command. It indicates that the T word
value is larger than the tool changer capacity.

BAD Z OR R0 IN This is a programming error due to the position of the R plane relative to the Z
CANNED CYCLE axis position when initializing a fixed (canned) cycle.
CALL, N =
Problem

1) The R plane is described to be above the I plane.

2) The R plane is described to be below the final Z depth.

3) The final Z depth is described to end above the I or R planes.

4) Canned cycle not cancelled before returning to tool change position.

5) Canned cycle not stated in absolute as required.

Solution

Check to see if the program has the correct positioning mode (G90 or G91),
and check for correct signs and decimal point placement.

Note: The H code might not be in the program.

CALCULATED This is a programming error that could be due to a G90 or G91 code missing or
RADIUS ERROR OF being in the wrong place (e.g.: giving absolute positions while still in
incremental). Also, check the end point description, the beginning position,
and the arc center description (I, J, and K), or radius designation.

This message does not appear during the Auto mode. It appears when using
the SUM command (SU).

CANCEL CRC Before using CRC (G41, G42), mirror the desired axes (G51.1). Also, turn CRC
BEFORE G50.1 OR off (G40) before canceling mirror image (G50.1).
G51.1 AT N =

232 Section 10: Error Messages April 2003


Fadal User Manual

CANCEL CRC The control requires the G40 code to cancel cutter radius compensation before
BEFORE N = the line number listed. See the cutter radius compensation section for
suggestions.

CANCEL Z AXIS The G50.1 code must appear on a separate line before the M6.
MIRROR BEFORE
TOOL CHANGE AT N

CANNOT RETURN This is a background editing error message. The line that called the
FROM SUBPROGRAM subprogram or subroutine was deleted or cannot be found.
OR SUBROUTINE
CALLING LINE
CANNOT BE FOUND

CANNOT START A mid program start must begin from the main program. If it is necessary to
DIRECTLY IN A start the program in a subroutine, the COPY command can be used to copy the
SUBPROG. subroutine to the main program as many times as the subroutine will be
repeated. The programmer or operator can now do a mid program start to
where the subroutine was copied into the main program. After the part is
complete, delete the copied portion and run the program as before.

Another method to start the program in a subroutine is to use the AUTO


command. Enter AU,# (see AUTO command in the Operators Manual), where #
is a sequence number in the subroutine. The control will process the program
from the beginning of the program up to the number specified then start
execution of the program.

CHAR. SIZE OR Characters that are higher than 2.5 inches cannot be engraved using the
DEPTH EXCEEDS 2.5 Engraving mode (L9201).
IN.

CHECK EMERGENCY If the EMERGENCY STOP button (switch) is not pressed, it is necessary to check
STOP SWITCH AND the motor overload relays.
MOTOR OVERLOAD
RELAYS

WARNING: Power off the machine before checking fuses, relays, and/or

! circuit breakers.

The motor overload relays can be recognized by their white reset buttons. They
are located in both control enclosures. The white button must be pressed to
reset a relay.

April 2003 Section 10: Error Messages 233


Fadal User Manual

Also, check the brake relay fuse (F17) to see if it is burned out. It is advised to
power off the machine when checking the fuses or motor overload relays.

CHECK SPINDLE When this message is displayed, it is necessary to check the way lube level,
LUBE, WAY LUBE spindle oiler level, and the air pressure gauge. It is advised to check these oil
AND AIR PRESSURE levels at least once a day.

CLEAR AN An emergency stop condition was invoked. To clear, gently rotate the red
EMERGENCY STOP EMERGENCY STOP button (if depressed) in the direction of the arrows on the
CONDITION button (clockwise), then press the JOG key. Wait 2 seconds for the amplifiers to
be reset, then continue.

COMMAND ERROR This occurs because a SET (parameter) command was typed in improperly. It is
suggested to look in the Users Manual or use the menu of the control to help
with any command format. The following is a list of available SET commands;
SETH, SETX, SETY, SETZ, SETA, SETB, SETCS, SETTO, SETP.

COMMAND With the key lock in the horizontal position, editing commands (CH, CO, DE, IN)
PROHIBITED BY THE cannot be used.
KEY LOCK

CRC CALLED WITH This occurs when the programmer has turned CRC on without an H word in the
NO TOOL ASSIGNED program (or in format 2 no D word).
AT N =
Table 1: CRC Called w/ No Tool Assigned at N=

Format 1 Format 2
N1 G41 N1 H1
N2 H1 This is incorrect N2 G41 This is incorrect
N1 H1 N1 H1 D1 Diameter must be specified for For-
mat 2
N2 G41 This is correct for Format 1 style N2 G41 Format 2 style programming &
only acceptable for Format 1 style

This is a common error in one tool programs when the Z axis is set with the tool
at the gauge point. Assign an H word with no tool length offset (only a tool
diameter) in the tool table.

D OR H TOO LARGE The control maintains a table of 99 tool diameters and 99 length offsets. The
control will only accept H words and D words up to 99.

DATA TRANSFER For this error, it is important to note which axis the transfer fault is on. Note the
FAULT error message number and report it to the service department.There is a data
transfer problem between the 1030 card (slot 8) and the 1010 card for the
stated axis.

234 Section 10: Error Messages April 2003


Fadal User Manual

DNC MODE This message appears after DNC is typed at the control. The VMC is then ready
for DNC operation and is waiting for CNC code from the RS-232 port.

DOOR BEGAN TO This message will occur if the door begins to close during a pallet change. The
CLOSE WHILE ARM feedback of the door may need adjustment or there may have been a drop in
WAS MOVING air pressure.

DO YOU WANT TO This is not an error message, but this message comes up each time the
MOVE TO THE LAST operator uses the CS command and a home position is established (SETH) in
HOME POSITION? memory.

DO YOU WANT TO This prompt is accessed by reinitializing the memory via the RI command. A ‘Y’
ZERO TOOL TABLE? response zeroes the tool offset table.

WARNING: All tool diameter and length offsets are deleted from memory!

!
DO YOU WANT TO This prompt is accessed by reinitializing the memory via the RI command. A ‘Y’
ZERO FIXTURE response zeroes the fixture offset table.
OFFSETS?
WARNING: A ‘Y’ response deletes all fixture offsets from memory!

!
DO YOU WANT This prompt is accessed by reinitializing the memory via the RI command. A ‘Y’
REINITIALIZE response zeroes the memory of the CNC.
MEMORY?
WARNING: A ‘Y’ response deletes all program data from memory! After

! memory is reinitialized, a cold start must be performed.

DRY RUN OPTION __ The selected dry run option (1, 2, or 3) is displayed prior to automatic
IS IN EFFECT execution. See the Run Time Menu for the appropriate option definition.

DUPLICATE NAME No two programs in the library can be identified by the same number. When
copying an existing program assign an unused number to the new, or copied
program. Use option 2 (display program numbers) of the PR menu to
determine which numbers have been used.

DUPLICATE OR BAD This will occur if a program is being input through the RS-232 port and the
PROG. NAME program has an O word in the first line that is a duplicate of an existing number
in the program library. Use option 2 (display program numbers) of the PR menu

April 2003 Section 10: Error Messages 235


Fadal User Manual

to determine which numbers have been used. Change the O word to one not
being used, or remove it. Then send the program out to the control again.

If the program currently active in memory has an O word in the first line, the
program will be moved into the program library when the new program is
transferred through the RS-232 port. If the program currently active does not
have an O word in the first line, the program will be deleted when the new
program is transferred.

DWELL, HIT START This message is displayed when a G04 (dwell) is executed by the CNC. You can
TO INTERRUPT interrupt the dwell time and continue program execution by pressing the START
key.

E WORD MAY ONLY Fixture offsets cannot be on the same line with a circular move (G2, G3).
BE USED WITH G0
OR G1 N=

EMERGENCY STOP - TAKE APPROPRIATE ACTION:

The appropriate action to take:

1) Release the EMERGENCY STOP button if it has been pressed.

2) Press the JOG button which resets the amplifiers if the problem has been
resolved.

3) Type HO and press ENTER, then after the waiting message appears press
START (see note).
4) The operator may now resume the running of the part.

Note: It is not necessary to move the axes to their Cold Start position or
establish the part home again unless the message, JOG AXES TO HOME
POSITIONS, THEN ENTER THE CS COMMAND appears.

EMERGENCY STOP- An emergency stop has occurred. If the emergency stop button is depressed,
TAKE APPROPRIATE turn it clockwise until it returns to its normal position. Press the JOG button and
ACTION the message WAIT 2 SECONDS, THE AXES ARE BEING RESET appears. If this
message persists, call the service department.

ENTER AGAIN OR HIT This message comes up when inserting program coding at the keyboard (using
MANUAL TO EXIT the IN command) or when in Manual Data (MD) and Change (CH) mode. It is
referring to the line just typed. Something was not acceptable, for example the
letter O for the number zero (0) or anything else not correct. The control is still
on the line with the problem, so retype the entire line.

236 Section 10: Error Messages April 2003


Fadal User Manual

ENTER COMMAND The SETP procedure will ask questions regarding the machine and certain
SETP AND SET THE preferences. If any of the questions are not clear, call the service department
MACHINE for help.
PARAMETERS

ENTER COMMAND This happens when a command is typed incorrectly. Either it is an


MU TO SEE THE unrecognizable command or a comma was omitted.
MENU
This message is only a suggestion. It is not necessary to go to the menu to use
a command. The menu is there to remind the operator of the command format.

ERROR This message is a program input error. It is displayed when a program block
containing an error is transmitted to the CNC, via the RS-232. It appears at the
time the error is received. Therefore, list the program at the control to display
the last block of code received. The following block of code in the program,
which was not received, is in error. This normally is caused by back to back
alpha characters, which must be separated by numeric characters. Also, a 0
could have been typed as an O(s).

ERROR IN USER See the Operators Manual for instructions on using the SUM (SU) command.
PROGRAM, ‘SUM’ TO This message will occur when the control lists an error message in the Auto
SEE MESSAGE mode, and the operator persists in running the program by pressing the START
or AUTO button. This message will appear when the line in which the error
exists is at the top of the stack of lines to be executed.

ERROR N WORD This error occurs when the sequence number is larger than 99999. The
EXCEEDS 99999 sequence number must be between .001 and 99999.

ERROR WHILE This is an indication that there may be a problem with the CPU board.
PROCESSING BLOCK
1) Send the machine back to cold start alignment markers.

2) Power off the machines main power, wait 15 seconds and power on the
machine.

3) Cold start, then run the program again.

If this error repeats:

1) Save all the programs and offset information currently in memory, write
down the present home position

2) Send the machine back to cold start alignment markers.

3) Use the command RI and answer Yes (Y) to all the questions. If the above
does not work, please call the Service representative in your area.

April 2003 Section 10: Error Messages 237


Fadal User Manual

ERROR(S) READING While the control is inputting a tape or program with the TA command, error
TAPE option 2, this message appears after input is complete. If the TA command and
error option 1 is used (TA,0,1 or TA,1,1), the input of the program would have
been stopped if an error in the program is detected.

If errors are detected, list the program and look for missing line numbers to find
which lines the control did not accept. Use the IN command to insert the
missing lines where needed.

FILE OVERFLOW This message could mean that the program has too many G codes and M
codes on the same line. It could also mean that during CRC, there were too
many blocks that the control had to look beyond for the next compensated
move (comment lines, Z moves, G code and M code lines, and dwells).

This message may also appear if a fixed cycle is in effect when attempting to
initiate cutter radius compensation.

FIXTURE OFFSET This message occurs when an E word value in the program exceeds 48 (or in
OUT OF RANGE Format 2 exceeds G54 - G59) or exceeds E1 - E48.

FIXTURE OFFSET Fixture offsets can not be applied on lines with circular interpolation (G2 or G3).
MUST BE APPLIED Fixture offset must be applied prior to commencing arc command line (at G0 or
WITH G0 OR G1 G1) or unused fixture offset removed if not applicable to arc.

G28 AND G29 USED Before the control can execute the codes G28 or G29, the program must turn
WITH CUTTER CRC off (G40).
RADIUS COMP AT
SEQ

G31 USED WITH AN Only G1, P, and F are allowed with a G31. No other codes are supported. CRC,
INCOMPATIBLE mirror image, rotation, and drill cycles are not allowed during the execution of a
WORD OR MODE G31 code.

G45-G48 & G52 ARE Codes G45-G48 and G52 are incremental offsets. Rotation can only be used in
NOT ALLOWED WITH the Absolute mode. Therefore, these codes are not allowed.
ROTATION, N =

G91.2 IS NOT The machine is in format 1 with the G91.2 code in the program. The G91.2
ALLOWED IN code can only be used in format 2. In format 1 you must remain in the
FORMAT 1 Incremental mode when G91.1 is coded.

G92 CANNOT BE The G92 code should be used in a line before CRC is turned on. The code G92
USED IN CRC MODE, can only be used after a G40 (G40 is a default code).
N=

238 Section 10: Error Messages April 2003


Fadal User Manual

G92 MUST BE ONLY There can be no other G codes in the line with a G92. The program does not
G CODE IN BLOCK need to be in absolute (G90) to use the G92 code.

GNN IS AN The G code displayed is not a supported code of the FADAL CNC 88.
UNSUPPORTED G
CODE AT N

HELICAL MOVE TOO See error message HELICAL RISE TOO STEEP.
SHORT, N =

HELICAL RADIUS See error message HELICAL RISE TOO STEEP.


TOO SMALL, N =

HELICAL RISE TOO The radius of the circle and the helical rise are radically different in length
STEEP, N = (usually the rise is much longer in comparison to the radius). Also, depending
on the programmed feed rate, the control may or may not be able to handle the
situation. Reducing the feed rate in the program can sometimes correct this
problem.

I, J, OR K MUST BE This message is displayed when an X, Y, or Z is used with an R0 without a G2


SPECIFIED AT N = or G3. Full circles must use either the I, J, or K and the direction around the
circle. See the circular interpolation section for more details.

ILLEGAL O WORD This error occurs during program input via the RS-232. The O word must have
a value of 1 through 9999. No other character or symbol is allowed.

ILLEGAL G CODE This message appears when an illegal G code is programmed while in G91.1.
DURING G91.1 See the Section Three for acceptable G codes.
MODE AT N =

IMPROPER USE OF This message may appear for the following reasons:
CANNED SUBR.
1) No tool diameter in the tool table or No D word was specified.

2) If the programmer omits a required R word from the subroutine.

3) If the programmer does not cancel a fixed cycle with a G80, G28, G29, M6,
G49, or H0 before using a fixed subroutine, except for L93 (bolt hole).

4) Using L96 - L99, if R1 variable is equal to the radius of the tool. The R1
variable is used for the radius on the corner of the tool (fillet radius), not the
tool radius. For example, for a 1.0 diameter end mill with a .125 corner
radius, the R1 variable will be R1+.125, and the tool diameter entered in
the tool table will be 1.0.

April 2003 Section 10: Error Messages 239


Fadal User Manual

5) The G41 or the G42 code has not been canceled with a G40 before using a
fixed subroutine.

INCHES MODE The CNC is in the Metric mode (SETME), and the program has a G20 or G70
REQUIRED - code to verify that the control is in the Inches mode. To run this program, the
OPERATOR MUST operator must set the CNC to the Inches mode by entering the SETIN
SET command.

INCOMPATIBLE G Some codes, even though they are modal and from different groups (families),
CODES AT SEQ are incompatible with one another. Break up the grouping of G codes on the
line by moving some of them to the line just before or after the line they are
currently on. This messages is also displayed when any G code is on the line
with a G53.

EXAMPLE: N20 G1 F20.


N21 G8 G41 X.5 The G41 and the G8 are incompatible
Move the G8 to the line with the G1
N20 G1 G8 F20. This is correct
N21 G41 X.5
INCREMENT DIVIDED If renumbering causes a line in the program to be greater than 99999, the
BY TWO increment for renumbering is divided by two and renumbering is resumed.

All of the lines or program blocks must have sequence numbers. The NU
command is used to renumber the lines in the program by the increment
specified in the first parameter. For example, entering NU,5 will renumber the
lines, incremented by five. If program is large, renumber by 1.

INCREMENT TOO This message occurs when the increment parameter of the program input (IN)
LARGE command causes the sequence numbers to exceed 99999 or a typing error in
the program has been given a value that is too large. Example: X-123456789.

INCREMENT TOO This message occurs when the increment parameter of the program input (IN)
SMALL command is less than .001. Example: IN, 0.00001.

INPUT XMODEM A packet has been missed or came out of order during Xmodem transmission.
TRANSMIT BLOCK
MISSED ERROR

JOG AXES TO HOME This message appears at power on. If the axes are at the Cold Start position
POSITIONS, THEN (machine home), enter the CS command. The operator needs only to jog the
ENTER THE CS axes if they are not at the Cold Start position.
COMMAND
This message also appears when the tool changer crashes and the AUTO
button is pushed or the MD command is used. However, the operator does not
have to jog to Cold Start. Use the SETCS command to reference the Cold Start

240 Section 10: Error Messages April 2003


Fadal User Manual

position, then enter HO to return the axes to home, and when the axes are back
at the Cold Start position, visually check, and then enter the CS command.

SETP will also make this message appear. If the operator used the SETP
command at the part home, handle the situation in the same way as suggested
for a tool changer crash (see above).

LOOK AHEAD WAS This indicates that the NO LOOK AHEAD buffer option of the Run Time Menu
CANCELED BY has been selected. The CNC processes only one block at a time, while
OPERATOR displaying only two blocks of the program on the screen. This option can be
selected or canceled using the Run Time Menu by typing MU in the Automatic
mode.

M,S,T LOCKOUT IS This message indicates the M function, Spindle, and Tool change lockout
IN EFFECT option of the Run Time Menu has been selected. In this mode, M function,
Spindle or Tool Change commands will not be performed during Dry Run. This
option can be selected or canceled using the Run Time Menu by typing MU in
the Automatic mode.

M FUNCTION TOO M functions cannot exceed a 2 digit value. See Section Eight, Commands or
LARGE AT N = the menu (MU) for a list of the accepted M functions.

MAIN PROG. NOT This is a programming error. There are subroutines written in the beginning of
FOUND the program without an M30. M30 is used to separate the subroutines from the
main program. Insert the M30 in the proper place. See Section Eight,
Commands for the accepted format for subroutines. The M30 code on the first
line of the program and a subroutine heading (L100) on the next line will also
cause this error message to appear.

N1 O1 (START OF PROGRAM
N2 (ACCEPTABLE PROGRAM EXAMPLE
N3 L100 (SUB #1
N4 X1.
N5 *
N6 L200 SUB #2
N7 L105
N8 M46
N9 X-5.Y-1.
N10 M47
N11 *
N12 L300 (SUB #3
N13 G91
N14 L204
N15 L104

April 2003 Section 10: Error Messages 241


Fadal User Manual

N16 G90
N17 *
N18 M17 This ends the last subroutine
N19 M30 This separates the sub section from
N20 * The main program
N21 (MAIN PROGRAM

MEMORY ERROR, This is a memory error, turn the machine’s main power off. Then power on and
RELOAD PROGRAM reload the program. If this does not work, save all the programs in the memory
(PU,3) and use the RI command, answering Yes (Y) to all the questions. After
using the RI command, load the programs back into the control.

MEMORY ERROR, There is a possible hardware problem when this message appears. If the
RESPOND WITH Y TO operator answers Yes (Y) to this question, the control may delete some of the
DELETE BAD program in memory. Answer Yes (Y) only if the program in memory can be
BLOCKS replaced (if the program is stored on paper tape or on computer disk). Answer
No (N) if the program needs to be saved.

Turn the machine’s main power off, then power on and reload the program. If
this does not work, save all the programs in the memory (PU,3) and use the RI
command, answering Yes (Y) to all the questions. After using the RI command,
load the programs back into the control. If this does not help, call the service
department.

METRIC MODE At power on, the control is in the Inches mode. The Metric mode must be
REQUIRED - turned on by using the SETME command.
OPERATOR MUST
SET This message will appear if the G21 or G71 code is present in the program to
verify that the Metric mode has been turned on by the operator.

MOTOR OVERLOAD This is an indication that something has stalled or overheated a motor, and is
associated with an emergency stop (see EMERGENCY STOP).

MOVE EXCEEDS AXIS The most common reason this message appears is because of either a missing
LIMIT AT N =CHECK or an extra G90 or G91 code. This message will appear only when the control is
PROGRAM AND in the Auto mode or Manual Data (MD) mode. This message will not appear in
TOOL OR FIXTURE the Sum mode (SU).
OFFSETS
When the control is executing the program, processing of the program is ahead
of the current line that is being executed. If the control detects an over travel
situation while processing the program, then execution of the program will stop
immediately.

242 Section 10: Error Messages April 2003


Fadal User Manual

The setup person may have to consider moving the fixture to another location
on the table. The program may be correct, but the fixture may be set up
incorrectly. The programmer can provide information to the setup person,
indicating how close to the axis limits the fixture can be located.

MOVE TURRET TO When this occurs, the head will be above the tools in the turret with the turret
TOOL 1 AND ENTER ready for loading. Move the turret using the turret CW or CCW buttons so that
SETTO COMMAND the tool designated to be tool #1 is under the spindle, then remove tool #1 from
the turret. Press the JOG button. The head will stay where it is (4 above the Z
axis CS position), and the turret will move back to its home position. Now use
the command SETTO to establish this turret position as #1. Use the HO
command or jog the head down to the Z axis CS position. Next use the
command TC,1 to reopen the turret. Replace tool #1 in the turret and press the
MANUAL button to bring the head down over tool #1.

NEXT ENTRY IS OUT This message is displayed by entering pitch error compensation for the ball
OF RANGE screw when an entry exceeds the maximum allowable difference of 9 (see
Survey command in the Maintenance Manual). For example, if an entry is 15
and the next consecutive entry is 0, the difference is greater than 9.

NO ANGLE, THE The calculated angle of either function 3 or 4 of L9101 is the same as the
POINTS ARE THE expected angle.
SAME

NO MEMORY When this occurs, the operator will have to remove (delete) as many programs
AVAILABLE FOR NEW as necessary from the program library in order to input another program from
PROGRAM the RS-232 port. The standard memory capacity is 38K. FADAL distributors
have a memory expansion board available that increases the memory capacity
to 16 MEG.

NO OTHER WORDS If program coding is used on the first line of the program along with the O word,
ALLOWED WITH O this message appears. A comment is allowed with an O word and is used to
WORD identify each program in the library. The first sixteen characters of this
comment are shown when the program library menu displays the programs in
memory.

EXAMPLE: N1 O1 G0 G90 (P/N 1234 This line is incorrect


N1 O1 (P/N 1234 This line is correct
N2 G0 G90

April 2003 Section 10: Error Messages 243


Fadal User Manual

NO PARAMETERS OR This message occurs most commonly after the memory has been zeroed from
PARAMETERS the DI diagnostics mode. This will also occur if there is a memory error. Enter
CORRUPTED the machine parameters with the SETP command. The parameters to use are
MACHINE DEFAULTS usually found recorded on a check off sheet on the inside door of the pendant.
USED

NO RESPONSE FROM This happens when powering on the machine and the CPU (1400) does not get
AXIS a response from the axis controller (1010).

If this message appears for the X, Y, Z, A, or B axes, power the machine’s main
power off and then on again. If this does not help, call the service department.

NO TOUCH OR The move that causes the probe to touch the part was completed without a
INCOMPLETED touch. Increase the length of the move so that the probe touches. Also, you
POINT AT N = must activate the selected probe by coding an M64 for an MP8 probe, or M65
for a TS20.

NOTE ERROR THEN When the programmer is inputting a program through the RS-232 port (using
HIT MANUAL the command TA,1,0 or TA,1,1), the input will be terminated if the control
detects a bad programming word (EXAMPLE: O for 0, or double letters (XX1.5),
etc.). The programmer will have to edit the program at the computer or
Teletype before inputting the program again.

The control will ignore all errors in the program and continue input by using the
error option 2, with the TA command (EXAMPLE: TA,1,2). An error count is
given at the end of transmission. If there were errors detected, list the program
to find missing line numbers. If the lines are numbered in sequence before
transmission of the program, look for the numbers that are out of sequence.
After the numbers have been located, use the IN command to insert the
missing lines.

NUMBER OUT OF This message appears when a number of twelve digits or greater is typed in.
RANGE This error may be detected by the machine after making a calculation. The
calculated number may be out of range, for example, the macro calculation is
less than .0001.

OFFSET ENTRY This message is displayed using the Utility (UT) command, by pressing the
ERROR MANUAL key when the CNC prompts you for a tool diameter. It is also
displayed by entering a diameter value that is too large.

ONLY BLOCK SKIP The only non macro command allowed with a macro line is the block skip
ALLOWED WITH character.
MACRO

244 Section 10: Error Messages April 2003


Fadal User Manual

ONLY M3, M4 & M5 This message appears when the M6 is coded with an M function other than an
ARE ALLOWED WITH M3, M4, or M5. The unacceptable M function must be moved to another line.
M6 AT N =

ONLY Z, L, R & F This message appears when the programmer uses the fixed subroutine L9201
WORDS ALLOWED for engraving, and has programmed other words in the line with the L9201
other than Z, L, R, and F.

ORIENTATION Visually check the air pressure, it must be between 80 and 90 PSI. If this
FAILURE problem persists call the service department.

OUT OF FILE SPACE, This is a message that informs the programmer that the memory of the control
A FILE is almost full. It is usually displayed when editing the active program in
COMPRESSION IS memory, or during program input via the RS-232. This does not destroy any
BEING TRIED portion of the program. A file compression organizes the memory so that
unused portions are made available. The NE command will perform a file
compression before prompting you with a (Y or N) to delete the current
program. Also, a file compression is performed by deleting the current program
using option 5 from the PR menu. It is always best to retry the command that
caused this message to appear. After the compression, the command will
often work the second time. If unwanted programs are stored in the program
library, remove them to create more room in memory. If there is only one
program in memory, try to reduce the size of the program by removing
unnecessary comments and making full use of all modal codes. Create
subroutines for repetitive portions of the program wherever possible. The
program may have to be broken up into separate operations.

The standard memory capacity is 38K. FADAL distributors have a memory


expansion board available that increases the memory capacity to 16
Megabytes.

O WORD OUT OF This message occurs using the program input (IN) command when typing an O
RANGE word greater than 4 digits. O words must be an integer of 1 through 9999.

PALLET DISABLED IN This message occurs when a pallet changer command or code is used and the
PARAMETERS SETP parameters indicate no pallet changer exists on the machine.

PALLET IN STORAGE This message occurs when there is an attempt to store a pallet where a pallet is
already stored.

PALLET NOT FULLY This message occurs when the time to store a pallet exceeds the allotted time.
STORED The feedback on the arm may need to be adjusted. Call the service department
for assistance.

April 2003 Section 10: Error Messages 245


Fadal User Manual

PALLET MUST BE This message occurs when both pallets are in storage and a command is given
CLAMPED to make a pallet change. One of the pallets must be loaded and clamped on
the table before a pallet change can occur. The feedbacks for pallet loaded and
pallet stored are being read at this time.

PARAMETER ERROR After a command is entered and a comma is typed, the control is expecting a
parameter. If a parameter is not typed before pressing the ENTER button, this
error message appears.

EXAMPLE: AU, This is a parameter error

Note: If the operator is not using a parameter, for instance, the second and
third out of a possible four, then the parameters can be omitted when the
fourth parameter is typed in.

EXAMPLE: AU,50,,,1 This is acceptable

Also if the DE command is used to delete a line that does not exist, or the CO
command is used to copy lines that do not exist, this message appears.

PARITY ERROR This message appears during input through the RS-232 port and is caused by
several factors:

1) Unshielded cable is being used, and the cable is subject to electrical noise.

2) The baud rate is too fast for the length of cable used.

3) There is a failure in the RS-232 port (hardware problem).


4) There may be a problem with the computer that is sending the program.

PARITY ERROR This occurs during DNC transmission of data (see the error message PARITY
DURING DNC ERROR).

PLEASE PUT AN O To use the PR command, the active program must have an O word and a
WORD AT THE FIRST number in the first line. The number must be different than the other numbers
OF THE CURRENT in the program library. This is why it lists the other programs in memory.
PROGRAM THE
FOLLOWING
PROGRAMS ARE IN
MEMORY

EXAMPLE: N.1 O43 ( P/N 34-765 )


Here, a line was inserted before N1 using the command IN,.1
N1 G0 G90 S10000 M3

246 Section 10: Error Messages April 2003


Fadal User Manual

A comment can be added to the line with the O word. These comments help
identify the program.

POINTS ARE ON The 3 touch points of L9101 function 1 are on the same line. Check the
SAME LINE AT N = program for positioning errors.

POSSIBLE PROBE During the UT command, this error occurs for two cases:
OVER TRAVEL
1) when the Z axis home position is set below the Cold Start position; and the
tool change is made to the Probe.

2) when there is a positive offset value used, and the tool change is made to
the Probe.

POSITION LIMIT This message will occur when the program has instructed the tool to move out
beyond the axis limits. When the tool moves beyond the axis limit the CNC
issues an emergency stop. The machine will stop at the line that caused the
over travel.

PRESS Y TO KEEP These messages appear after jogging while in Slide Hold or Single Step
THIS POSITION modes. See Section Eight, Commands, for the proper application of the Jog
PRESS N TO RETURN Away feature.
TO LAST POSITION

PROBE TEST = Testing the probe by using the Utility (UT) command failed. Verify that the probe
FAILURE was properly interfaced. If an MP8 or MP9 is being tested, be sure the 9- volt
battery has a charge. Also remove any obstructions between the probe
(transmitter) and the collector unit (receiver).

PROBLEM This error only occurs during Cold Start, when the Glass Slides are not aligned
POSITIONING close enough to the indicators during Cold Start. Place the machine in Jog and
SLIDES TO ZERO manually align the Cold Start indicators more accurately.

PROGRAM DOES This happens when the selected program number does not exist in the
NOT EXIST RETRY program library. Enter a program number that does exist, or press the MANUAL
OR HIT MANUAL TO button, and then use the PR command again to display the programs that are
EXIT stored in memory (option 2).

The programmer may have put an O-1 or an O.1 as a program number. The
number will show up when the programs are displayed in the library but the
control will not be able to retrieve the program. If the operator uses the PU,3
command and presses the EMERGENCY STOP button when the lost program is
being displayed on the screen, that program is now active in memory and can

April 2003 Section 10: Error Messages 247


Fadal User Manual

be edited. Delete the bad O word, from O-1 or O.1 (which appears as 1000
when it is listed in PR) to O1.

PROGRAM NOT This message is displayed when the PA command is used to display the active
FOUND program, and no program is active. Use the PR command to activate the
desired program stored in memory.

PROGRAM BLOCK This message is displayed when the LI command is used to list selected blocks
NOT FOUND of the active program, and the selected blocks are not found or the program is
not active. View the program by using the PA command.

P WORD TOO LARGE The P word for referencing a line number using M99 is too large of a value. Line
numbers can not exceed 99,999.

RESET THE The EMERGENCY STOP button has been pushed. Turn the button clockwise
EMERGENCY STOP until it is released and then push JOG.
SWITCH

RESOLVER FAULT OR This message may occur in three cases as follows:


SCALE ERROR
1) A failure of the resolver.

2) An axis runaway during power on.

3) A large Scale or Motor error, indicating a possible Scale failure.

Call the service department when this message appears.

Note: Do not run the machine when this message appears.

RAILS NOT ALIGNED This message occurs when the rails for the palette hanger are not aligned or
the feedback switches need adjustment. Call the service department for
adjustment.

RETURN PALLET TO This message occurs when a pallet change is attempted and the other pallet is
THE LOAD POSITION away from the load position. The operator must slide the pallet into the load
position before the other pallet on the table can be changed. The feedback
from the pallet loaded and pallet stored are being read at this time.

ROTARY AXIS MOVE The maximum incremental rotary move for one block is 1080.00 degrees. If it
TOO LONG. N = is necessary to go further, break up the move into several blocks.

RS-232 ERROR This error only occurs during DNC operations. It may occur while using 9600
DURING DNC baud to DNC. Slow the baud rate. It may also indicate line noise or the
possibility of dropped characters. These would indicate a possible problem

248 Section 10: Error Messages April 2003


Fadal User Manual

with the RS-232 cable or the communications port. Check the cable and
communications port and retry DNC.

Also, failure of the CPU may cause this error. If the above corrections are
unsuccessful, contact the maintenance department.

SCALE ERROR A scale error has been detected. The LEDs in the scale interface box in the
back of the machine will indicate which axis gave the error. Call the service
department.

SEE MENU FOR NEW The CD command is different for some versions of software. See the menu for
CD FORMAT these changes.

SEQUENCE NUMBER This error occurs using the Program Input (IN) command when the ‘From’
TOO LARGE parameter is specified greater than the maximum allowable number. Sequence
numbers can not exceed 99,999.

SEQUENCE NUMBER This error occurs using the Program Input (IN) command when the ‘From’
TOO SMALL parameter is less than the minimum allowable number. Sequence numbers
can not be less than .001.

SERVO AMPLIFIER This message appears when the EMERGENCY STOP button is pressed. The
FAULT operator must pull the button out (for ‘85 and older models) or turn it clockwise
(for ‘86 to present models) and then press the JOG button to reset the
amplifiers. If the amplifiers do not reset, call the service department.

SINGLE STEP This message indicates that the control is in the Single Step mode. If the green
START button is pressed when in this mode, the following program block is
executed. The feed rate potentiometer affects all axis motion.

At the end of each block, the operator can press the JOG button and jog away
from the current position without aborting the operation. Program execution
can be continued at the new location, or the axes can be returned to the
position at which the Jog function was initiated. To exit single step, press the
AUTO button for continuous block execution.

SLIDE HOLD Pressing the SLIDE HOLD button stops all axis motion. The distance to finish
the move is presented under the blinking SLIDE HOLD message.

It is possible to press the JOG button and jog away from the current position
while in the Slide Hold mode without aborting the operation. Program execution
can be continued at the new location, or the axes can be returned to the
position at which the Jog function was initiated. To exit from the Slide Hold
mode, the operator must press the START button if in single step, or press the
AUTO button for continuous block execution.

April 2003 Section 10: Error Messages 249


Fadal User Manual

SPINDLE Note the error number and see the list at the end of this chapter. This simply
CONTROLLER DOES could be a problem that occurs when the operator is powering on the machine.
NOT RESPOND Turn the machine’s main power off. Press the motor overload relay button, and
then power on again. If this does not help call the service department with the
error message and number.

The motor overload relays can be recognized by their white reset buttons. They
are located in both control enclosures. The white button must be pressed to
reset a relay. Call the service department first.

SPINDLE Note the error number and see the list at the end of this chapter. This message
CONTROLLER OR is displayed if the spindle was commanded to turn on after an emergency stop
DRIVER FAULT without pressing the JOG button to reset the amplifiers.

If this message appears when not in the Emergency Stop mode, take these
steps to help the service department analyze the problem:

1) Look at the air pressure gauge and write down the current air pressure (Do
not change it at the machine!)

2) Check to see if the belts are on the pulleys.

3) Do not turn the power off.

4) Call the service department and report this problem (while the machine is
on).

SPINDLE The current software module (1610) detected spindle software that was not
CONTROLLER compatible. Call the service department.
SOFTWARE UPDATE
IS REQUIRED

SPINDLE DRIVER This is the result of the air pressure being too low while the spindle is on. Air
FAULT pressure should be set between 80 and 90 PSI. Visually check the air pressure
and start the program over again. If the air pressure is not the problem, power
off the machine and check the motor overload relays to see if they have been
tripped.

The motor overload relays can be recognized by their white reset buttons. They
are located in both control enclosures. The white button must be pressed to
reset a relay.

SPINDLE FAILURE If the spindle stops while in G74, G75, or G84 modes, this message will
WHILE TAPPING appear. Problems such as a dull tap, undersized hole, poor tapping lubricant,
or a shallow hole must be eliminated. The programmer may want to consider

250 Section 10: Error Messages April 2003


Fadal User Manual

thread milling as an alternative to tapping. Call the service department if this is


persistent.

SPINDLE FAILURE This will occur when an M3 and an M4 are in the same line. If the spindle stops
DURING REVERSAL while in G74, G75 or G84 modes, this message will appear. Problems such as
a dull tap, undersized hole, poor tapping lubricant, or a shallow hole must be
eliminated. The programmer may want to consider thread milling as an
alternative to tapping. Call the service department if this is persistent.

SPINDLE HAS Either the Hall Effect Switch on top of the spindle pulley has not recognized that
FAILED TO TURN ON the spindle is turning, or the spindle actually has not turned on and there is
another problem. Call the service department.

SPINDLE FAULT LINE The spindle inverter has detected a fault. See the fault number on the inverter
and report this to the service department.

SPINDLE MOTOR Check to see if the spindle fan is on. If it is not, turn machine’s main power off
TEMPERATURE and check the fuse for the spindle fan (F24). Allow time for the spindle motor to
FAULT cool down and attempt to run the machine again. If this message persists, call
the service department.

SPINDLE WOULD The spindle would not stop in the designated amount of time (12 seconds). If
NOT STOP this message is persistent, call the service department.

STACK OVERFLOW This message should be reported to the service department. It is caused by
excessive stacking of keyboard commands.

SUBROUTINE CALL Subroutines can be executed in AUTO mode ONLY.


IS NOT ALLOWED IN
MDI

SUBR. DOES NOT This message indicates that a subroutine was called that is not in the
EXIST subroutine section of the program. Check to make sure that the subroutines
were numbered properly.

This message also appears if the G66 code is used on a line that does not have
a subroutine call on it.

SUBR. NESTING This is a message that occurs when a subroutine heading (L0100) is entered
ERROR after the M30 code.This message will also occur if a Fixed Cycle is still active
(use a G80 to cancel) or G68 (rotation) is still active when a tool change or end
of program is coded (use a G69 to cancel).

N20 M17
N21 M30

April 2003 Section 10: Error Messages 251


Fadal User Manual

N22 L200 This is not permitted after an M30

TAPE INPUT This message reports to the operator that the tape, or program input process is
TERMINATED complete.

TAPE IS GOOD When verifying a punched tape, this message appears if the tape is accepted.

This message also appears if no errors are detected in transmission when the
TA command is used.

TEMPERATURE For any temperature fault, the operator must check the cooling fans; if they are
FAULT not operational, turn the machine’s main power off and check the fan fuses
(F23, F24, F27, and F28). If this message is persistent, call the service
department.

TEMPORARY This message occurs when background editing is being used. The edit just
CONFLICT WITH made is in the area where AUTO is currently executing. The change will be
AUTO made when AUTO is out of that area.

THE AXIS See Survey in the Maintenance Manual.


CONTROLLER IS NOT
A 1010-4

THE SURVEY See Survey in the Maintenance Manual.


CONTAINS ERRORS,
PLEASE REVIEW

THE SURVEY WAS See Survey in the Maintenance Manual.


NOT WRITTEN TO
THE AXIS
CONTROLLER

THERE IS NO See Survey in the Maintenance Manual.


SURVEY

THREAD LEAD NOT Fixed cycles G74, G75, and G84 need a Q word in the line that represents the
SPECIFIED AT N = decimal thread lead of the tap (see the Users Manual for the proper format). If
the Q word is omitted then this message will appear.

If the programmer uses the fixed cycles G74, G75, or G84 and does not cancel
the cycle with any of the following codes: M6, G28, G29, G49, G80, H0, then
this message will appear at the next Z move.

252 Section 10: Error Messages April 2003


Fadal User Manual

TOO MANY BLOCKS This happens when the CO (copy) command is used and there are too many
FOR GAP lines being copied between existing lines in the program. Use the NU
(renumber) command and copy again, now that the program is renumbered.

TOO MANY M This error occurs when another M function is coded with the M17 or M30.
FUNCTIONS AT N= These two codes must be the only M function on the line.

TOO MANY This error message appears if a program contains over sixteen consecutive
CONSECUTIVE NON comment blocks (with no program coding in the lines). Put coding between the
MOTION BLOCKS comment lines or put comments on lines with program coding, so that the
program can have comments on every line.

Comment blocks in the beginning of the program can be placed in an unused


subroutine. This way the control never reads the lines when executing the
program, but the operator can list the program and read the comment lines.

TOO MANY Commands have associated with them a certain number of parameters. If
PARAMETERS more parameters are typed in than allowed, this message appears.

EXAMPLE: AU,50,,,1, or AU,50,,,3,1

Refer to Menu (MU) on the control for the correct format of each command.

TOO MANY SUBR. Nesting can only be seven deep. If the program goes further than seven deep,
CALLS then this message appears.

TOOL BREAKAGE When using the TS-20 touch probe is used for tool breakage detection, this
DETECTION = error message indicates the program line where the broken tool is detected.
FAILURE AT N = Replace the tool and continue the program.

TOOL DIAMETER This error message is displayed in cutter radius compensation when the
TOO LARGE AT N= programmed move is smaller than the radius of the cutter. To correct this
problem:

1) Check the tool diameter entered in the tool table to see if it was entered
correctly.

2) Check the program to see if it contains any typographical errors.

3) If the intention was to make a rough pass using a larger tool diameter than
the finish pass tool diameter, the smallest programmed inside radius, on
the part, should be as big as the tool radius (half the tool diameter) entered
for the roughing pass.

April 2003 Section 10: Error Messages 253


Fadal User Manual

4) Check the math work to see that it is correct, and was transferred correctly
to the program.

When debugging a program that uses cutter radius compensation, use a zero
diameter in the tool table when running the program or when using the SUM
command for the first time. Then put the tool diameter in the tool table and try
it again. This will make the debugging process easier.

TOOL OFFSET NOT If mirroring the Z axis is desired, first call up the tool length offset, then code
ALLOWED DURING Z the G51.1 Z0. The H word must be on a line in the program before the G51.1
MIRROR Z0.

TOOL NN IS IN THE Identifies the current tool that is in the spindle. This is displayed when entering
SPINDLE the program execution (AU) and the Manual Data Input (MD) modes, and is
also listed in the tool table display (DT).

TOOL NUMBER TOO The starting tool number of the utility (UT) tool setting cycle must not exceed
HIGH that of the tool changer capacity.

TOOL TURRET Rotate the tool turret so that tool #1 is adjacent to the spindle and then type
LOCATION IS NOT SETTO.
SET

TRANSFER ERROR, See Survey command in Maintenance Manual.


PLEASE RETRY

TROUBLE READING The feedback from the external slide hold switches is erratic or inconsistent.
THE EXTERNAL This is an indication that the external slide hold switch system is faulty. Call the
SLIDE HOLD SWITCH service department.

TYPE A Y TO This error message appears only after the message AXIS CONTROLLER DOES
IGNORE, OR TURN NOT RESPOND DURING POWER UP SEQUENCE. This is an indication that there
POWER OFF AND is a communication problem between the CPU and the axis controller. Call the
THEN ON AGAIN service department.

UNDEFINED MACRO This message will appear when situations during a macro execution cause the
ERROR system to fail, but there is no specific error or message associated to the
situation.

WAIT 2 SEC., THE This message occurs when the JOG key is pressed after an axis fault. The
AXIS DRIVERS ARE control returns to the Command mode after 2 seconds. The axis drivers are
BEING RESET reset and the machine can continue normal operation.

254 Section 10: Error Messages April 2003


Fadal User Manual

WAITING In the WAITING mode, the operator has the choice of pressing either the START
or AUTO button to execute automatic motion. Or, the operator can press the
MANUAL button to exit to the Command mode.

WAITING ON AIR When this occurs, the control is waiting on a signal from one of the air valves
VALVE indicating that the valve has completed its job; usually air pressure to the
machine has dropped below 80 PSI. If this message persists, call the service
department.

WARNING POSSIBLE Generally caused by math errors in the program. The CNC has processed a
GOUGE AT N = move that possibly could cause the cutting tool to damage the part. The error
usually is not large enough to make any noticeable difference on the machined
part. Therefore, only a warning is displayed. If there is a noticeable difference,
review your program math.

WAY LUBE Check the way lube oil level if this message appears.
PRESSURE SWITCH
FAILURE

WRITING ERROR, See Survey in the Maintenance Manual.


WAIT 2 MIN. AND
RETRY

X,Y OR Z MOVE Probe function #1 (L9101) has been programmed without an axis specified for
MUST BE SPECIFIED the given plane. For example, if probing is to be used in the XY plane (G17), X
AT N = and/or Y must be programmed in the same block as L9101 R1+1. Z can be
used if in the ZX (G18) or YZ (G19) plane.

YOU CANNOT To delete a program in memory, it must be in the library. Use the PR command
DELETE THE and switch the program currently in memory with a program in the library. The
PROGRAM THAT IS program can then be deleted. If there are not any programs in the library, use
CURRENTLY ACTIVE option 3 to start a new program. This will put the currently active program in
the library and then the program can be deleted. Or just simply use the DE
command and delete starting from the first block in the program to the last.

YOU HAVE A This occurs when the control detects that a new module has been inserted. See
VERSION UPGRADE the Maintenance Manual for proper zeroing procedures. This may also occur
OR MEMORY HAS because of a memory error and the memory needs zeroing.
BEEN CORRUPTED...
MEMORY NEEDS TO
BE ZEROED

YOU MUST ENTER The CNC does not have a valid backlash table. Enter the backlash for each axis
THE BACKLASH by using the BL command. The backlash set at the factory is documented on
TABLE the inside surface of the pendant door.

April 2003 Section 10: Error Messages 255


Fadal User Manual

The backlash information is retained by the battery backed memory card. If this
message appears again after the BL command has been used, call the service
department.

YOUR VERSION OF The control has detected an incompatibility with the CNC memory manager
CNC MAIN NEEDS TO software on the 32MP pendant. Call the service department for an update.
BE UPDATED

Z, Q, OR F MISSING See Section Four, Fixed Cycles for the proper format for each fixed cycle.
IN CANNED CYCLE
CALL, N =

Z & M6 LOCKOUT IS This message indicates the Z axis and Tool Change Lockout option of the Run
IN EFFECT Time Menu has been selected. In this mode, Z axis movement and tool change
commands will not be performed during Dry Run. This option can be selected
or canceled by using the Run Time Menu.

Z AXIS MUST BE AT Check to see if the Z axis alignment was properly set at cold start. The operator
COLD START FOR cannot use the TC,1 command unless the Z axis is at the Z axis CS position.
TC,1 Use the HO command or jog the axis to the Cold Start (Z0).

If the SETZ command has been used, first use the HO command to bring all
axes home, then enter the SETCS command. Jog the Z axis to Z0 and then use
the command SETH so the X and Y home position is not lost. The TC,1
command can now be used to open the tool changer. If necessary return the Z
axis to the previous setting and use the SETZ command. (See the error
message JOG AXES TO HOME POSITIONS if the tool changer crashes.)

Axis/Spindle
Controller Error
Messages
Descriptions Error numbers help discern the source of the problem the axis or spindle is
reporting. The error number and text will follow the message CALL THE
SERVICE DEPARTMENT AND REPORT THE MESSAGE AND NUMBER ON THE
SCREEN TO CORRECT THESE PROBLEMS.

Error numbers from the AXIS or SPINDLE CONTROLLER

(see MU pages 40-41)

1. NO MOTOR This message appears on power up if no motor feedback (resolver or encoder)


FEEDBACK or no motor motion is detected by the axis controller.

256 Section 10: Error Messages April 2003


Fadal User Manual

2. ENCODER NOT This message appears during the rigid tap operation if the encoder feedback is
RESPONDING interrupted during the spindle operation for any period longer than 3 seconds.
PROPERLY The spindle operation is halted and this error message is displayed.

3. LOGIC JUMPER This message appears on power up. An illogical motor-tach jumper
INCORRECT or configuration or failed component may cause the axis to run away in the
COMMAND SIGNAL opposite direction of the command signal. To prevent runaway, axis operation
MISSING is halted and this error message is displayed.

4. ENCODER IS NOT This message appears on power up, only for axes with a 1024-line encoder as
1024 LINE motor feedback, if the count of the encoder lines per revolution of the screw is
not 1024 lines per turn.

5. NO INDEX MARK This message appears during the cold start process, if the index mark of the
DETECTED axis’ primary feedback device, encoder, or scale is not detected.

6. SWITCH 1 This message is not used.


DISABLED

7. RIGID TAP This message indicates that the spindle feedback is not functioning properly.
PRECYCLE ENCODER Prior to the rigid tap cycle, the spindle feedback is checked for operational
COUNT PROBLEM accuracy. Malfunction of the feedback results in termination of the cycle and
(NOT ENOUGH display of this error message.
COUNT)

8. SPINDLE MAGNET This message appears during spindle operation if the spindle magnet is not
NOT DETECTED or detected for any period longer than 3 seconds. This problem could be related
SPINDLE NOT to either command signal, spindle not turning, or spindle magnet malfunction.
RUNNING

9. SPINDLE FAULT The fault line signal down to the inverter should stay high during spindle
LINE DOWN operation. If this signal is held low when the spindle is running then this error
message is displayed.

10. ENCODER AND This is a spindle operation error message. During spindle operation, the
MAGNET NOT encoder feedback and spindle magnet are monitored. If no proper response
RESPONDING or from either of them is detected for any period longer than 3 seconds, then this
SPINDLE NOT error message is displayed. This error could also be caused by the command
RUNNING signal, i.e., if the spindle is not turning.

11. MOTOR This message is not used.


OVERLOAD.
EXCESSIVE
FOLLOWING ERROR

April 2003 Section 10: Error Messages 257


Fadal User Manual

12. MOTOR This message appears at the completion of a move if the number of pulses
OVERLOAD. PULSE required to complete the move does not match the number of pulses received
COMMAND STEP from the CPU by the axis controller, usually indicating a hardware-related
COMMAND problem.
CHECKSUM ERROR

13. MOTOR This message is not used.


OVERLOAD.
FOLLOWING ERROR
GREATER THAN THE
OVERLOAD FACTOR

14. MOTOR This message appears if an axis move command is not initialized properly
OVERLOAD. MISSING (missing 0 or 1 command), usually indicating a hardware-related problem.
0 OR 1 COMMAND

15. TIME OUT ON This message appears during rigid tap precycle test if the spindle rotation is
RIGID TAP PRE- interrupted or the spindle magnet is not detected for a certain length of time.
CYCLE TEST

16. TIME OUT ON This message appears any time the resolver zero-crossing pulse is not
RESOLVER detected within the allowable time (4-10 msec). The zero-crossing pulse is
RESPONSE hardware-generated every 1 msec. This can also be caused by motor over
temperature or by severe motor vibrations.

17. BAD READING This message appears if the value of resolver “counts”, read from the resolver
ON RESOLVER PORT port when the “zero-crossing” pulse is detected is too large, indicating possible
failure of resolver cables, 1010-4(-5) card, or the resolver itself. This can also
be caused by motor over temperature or by severe motor vibrations.

18. SERVO This message appears if the axis card cannot detect the fault line signal from
AMPLIFIER FAULT the amplifier, or the fault line signal strength drops below 10V, indicating a
LINE DOWN possible amplifier fault.

19. STACK This message appears if the stack on the axis card (used to store CPU
OVERFLOW. commands until they have been serviced) overflows.
OVERLOADED WITH
STEP COMMAND

20. MOVE This message appears when an axis move command is improperly transferred
TRANSFER FAULT. to the axis card, as indicated by a checksum comparison between what the
INCOMPLETE DATA CPU sent and what the axis card received.
FOR MOVE
COMMAND

258 Section 10: Error Messages April 2003


Fadal User Manual

21. SPURIOUS This message appears if the interrupt currently being processed is an
INTERRUPTS. NOT undefined interrupt, and thus cannot be serviced, indicating possible failure of
SERVICEABLE the 1010-4(-5), 1030, or main CPU. This could also indicate a software
problem.

22. BAD SCALE This message appears if the feedback from the scale port is outside allowable
READING limits, indicating possible failure of the EXE box, scales, cables, or 1010-4(-5)
card. This can also be caused by severe motor vibrations.

23. MOTOR This message appears (in stand-by mode) when the following error exceeds
OVERLOAD. ERROR > the user-defined overload factor, which sets, in motor turns, the maximum
OVERLOAD following error for the axis operation. MESSAGES 23, 24, 25, AND 26 ARE NO
FACTOR IN STANDBY LONGER RELATED TO ERROR 13.
MODE

24. MOTOR See ERROR 23.


OVERLOAD. ERROR >
OVERLOAD
FACTOR IN POINT TO
POINT MODE

25. MOTOR See ERROR 23.


OVERLOAD. ERROR >
OVERLOAD FACTOR
IN CONTOURING
MODE

26. MOTOR See ERROR 23.


OVERLOAD. ERROR >
OVERLOAD
FACTOR IN JOB
MODE

27. RETURN TO This message appears at the completion of the rigid tap cycle if the spindle
MAGNET TIME-OUT controller could not detect the magnet within 6 seconds while returning to
home position.

28. ORIENTATION This message appears if the spindle controller could not detect the magnet
TIME-OUT OR within 10 seconds, either during spindle orientation (M19, M6) or on the last
TAPPING rotation during rigid tap precycle.
CALIBRATION
FAILURE

April 2003 Section 10: Error Messages 259


Fadal User Manual

29. RIGID TAP See ERROR 7.


PRECYCLE ENCODER
FAILURE (TOO MANY
COUNTS)

30. SURVEY This message appears during cold start if the checksum, calculated from
CLEARED DUE TO reading the survey table, is not equal to the checksum stored in the survey
BLANK OR CORRUPT table. The survey will be zeroed.
SURVEY

31. TIME-OUT ON If the spindle magnet does not align within 10 seconds of an orient spindle
ORIENTATION then this error message is displayed.

32. SPINDLE WILL If the spindle does not stop in 3 seconds from entering a spindle stop
NOT STOP. CHECK command then this error message is displayed.
INVERTER ZERO
SPEED

33. ENCODER This message will display if the encoder connection for spindle motor is
CHANNELS ARE reversed at spindle control card.
REVERSED (RIGID
TAP)

260 Section 10: Error Messages April 2003


Fadal User Manual

Section 11: Coordinate Systems

Machine Coordinate The zero of the Machine Coordinate System (MCS) is the Cold Start Position.
System The Z axis cold start position is the tool change position. The coding of a G53
moves the machine to the programmed location in reference to the MCS. A
G53 X0 Y0 always returns the machine to the MCS position. If a Tooling
Coordinate System is not created, the CNC uses the MCS for the execution of
G28, tool length offsets and the HO command. The tool change function (M6)
automatically positions the Z axis to the zero of the MCS before executing the
tool exchange.

Tooling Coordinate The Tooling Coordinate System (TCS) is established as the X, Y, Z, A, B zero
System - Home position. The SET(axis) or SETH command is used to establish this position
(see Section 8). The Z axis is generally positioned at the cold start position for
safety. After entering the SETH command, the axes positions are displayed on
the video screen as the ZERO. Tool length offsets are measured relative to the
TCS. The TCS allows the operator to adjust all offsets simultaneously. The
operator may jog the Z axis up or down and perform a SETZ to adjust all
offsets. Fixture offsets are relative to the TCS.

The axes are positioned to the zero of this coordinate system when the
programmer issues a G28. The default Tooling Coordinate System is the MCS
(Cold Start).

Enter the command: SETCS, and HO to switch from the TCS to the MCS.

Fixture Offsets Fixture offsets are used to establish a part home position different from the
TCS. This is most commonly used to locate the home positions for multiple part
operations. This may also be used to establish a part change position, with the
TCS, and a part home position, with the fixture offset. The fixture offset gives
the user the capability to individually adjust each fixture. After the TCS is set
during the job setup procedure, the locations (X, Y and Z) of up to 24 fixtures
may be set in the Fixture Offset Table, each offset being relative to the TCS
(Home). To enter a fixture offset, see Section 8, the FO command. The
programmer references each offset, by use of the E word; E1 for offset #1; E2
for offset #2 etc. Fixture offsets 1-6 may also be referenced by programming a
G54-G59; G54 for offset #1; G55 for offset #2 etc.

April 2003 Section 11: Coordinate Systems 261


Fadal User Manual

Programming a fixture offset in Format 1, without motion words, causes the


axes to move to the current absolute position on the specified fixture. In
programming Format 2, the move to the fixture is not made until an X, Y, or Z
word is specified. The axis move can be specified in the same block or after the
block containing the fixture offset code.

EXAMPLE: Fixture offset 1 = X1. Y1. Z1.


Fixture offset 2 = X2. Y2. Z2.

N1 O1
N2 G90 G0 X0 Y0 Z0
N3 E1 X0 Y0
N4 G0 X1. Y-1.
N5 E2 X2.5 Y2.5
N6 Z2.5
N7 E0 X0 Y0
N8 Z0

Format 1 results of running the example above:

N2.X0.Y0.Z0.
Block 2 the machine is already at X0 Y0 Z0 so no motion occurs.
N3.X1.Y1.Z1.E1.G0
Block 3 causes movement in all three axes because with format 1 the motion
for the fixture offset is applied immediately for all axes.
N4.X1.Y-1.G0
Block 4 will move to the X and Y value relative to the fixture offset 1 that has
already been applied for each axis.
N5.X2.5Y4.5Z1.E2.G0
Block 5 causes movement in all three axes because with format 1 the motion
for the fixture offset is applied immediately for all axes.
N6.Z2.5G0
Block 6 will move to the Z value relative to the fixture offset 1 that has already
been applied for each axis.
N7.X-4.5Y-4.5Z-2.G0
Block 7 will cancel the fixture offset currently in effect. Both format 1 and 2
cancel the same way and cause motion immediately for all axes.
N8.Z-2.5G0
Block 8 no fixture offsets are in effect, the Z moves as normal.

262 Section 11: Coordinate Systems April 2003


Fadal User Manual

Format 2 results of running the example above:

N2.X0.Y0.Z0.
Block 2 the machine is already at X0 Y0 Z0 so no motion occurs.
N3.X1.Y1.E1.G0
Block 3 causes movement only in X and Y because with format 2 the motion for
the fixture offset is applied only in moves that have the axes called out.
N4.X1.Y-1.E1.G0
Block 4 causes movement only in X and Y because with format 2 the motion for
the fixture offset is applied only in moves that have the axes called out. Note
that the Z axis fixture offset has yet to be applied and moved.
N5.X2.5Y4.5E2.G0
Block 5 causes movement only in X and Y because with format 2 the motion for
the fixture offset is applied only in moves that have the axes called out.
N6.Z4.5E2.G0
Block 6 finally the Z causes movement because the block has a Z axis motion
called out.
N7.X-4.5Y-4.5Z-2.G0
Block 7 will cancel the fixture offset currently in effect. Both format 1 and 2
cancel the same way and cause motion immediately for all axes.
N8.Z-2.5G0
Block 8 no fixture offsets are in effect, the Z moves as normal.

Program Coordinate The Program Coordinate System (PCS) is established by the programmer at
System some convenient point relative to the work piece and fixture. The default PCS is
the Tooling Coordinate System. The PCS is set by the use of the G92 (Absolute
Preset) or G52 (Coordinate System Shift) code in the part program. If the
programmer knows the location of the Tooling Coordinate System, the operator
can use G92 with the X, Y, Z, etc. dimension words to set the PCS. The G92 is
used to establish the location of the part home from the current location. When
using a G92, after a G28 return to home, the G92 should be canceled. This is
accomplished by moving to the TCS zero and coding a G92 X0 Y0. The G52 is
used to shift the current home position by a specified absolute amount.

EXAMPLE: The material is 12" X 12", one inch thick. The Tooling Coordinate System (TCS)
is set at the X minus Y plus corner of the material. The desired Program
Coordinate System (PCS) is at the center of the material.

N1 G0 G90 S2000 M3 X0 Y0 Locate to the TCS


N2 H1 M7 Z.1
N3 G92 X-6. Y6. Establishes the PCS at the center
N4 X2. Y3.

April 2003 Section 11: Coordinate Systems 263


Fadal User Manual

Block #1 establishes that the current position is at the TCS.

Block #3 establishes the PCS at the center of the material. No machine motion
occurs.

Block #4 moves the X axis to 2. from the PCS and 8. from the TCS (this is the
same position). The Y axis is moved to 3. from the PCS and -3. from the TCS
(this is the same position). Once the PCS is established, the programmer may
switch between absolute(G90) and incremental(G91) modes without affecting
the PCS. The G28 causes the machine to return to the TCS zero position.

EXAMPLE: The material is 12" X 12", one inch thick. The Tooling Coordinate System (TCS)
is set at the X minus Y plus corner of the material. The desired Program
Coordinate System (PCS) is at the center of the material.

N1 G0 G90 S2000 M3 X0 Y0 Locate to the TCS


N2 H1 M7 Z.1
N3 G52 X6. Y-6. Establishes the PCS at the center
N4 X2. Y3.

Block #1 establishes that the current position is at the TCS.

Block #3 establishes the PCS at the center of the material. No machine motion
occurs.

Block #4 moves the X axis to 2. from the PCS and 8. from the TCS (this is the
same position). The Y axis is moved to 3. from the PCS and -3. from the TCS
(this is the same position). Once the PCS is established the programmer may
switch between absolute (G90) and incremental (G91) modes without affecting
the PCS. The G52 is canceled by coding a G52 X0 Y0. This returns the machine
to the TCS on the next motion word line.

264 Section 11: Coordinate Systems April 2003


Fadal User Manual

Section 12: Rotary Axes

A Axis
Direction of Motion Direction of motion is defined as per ANSI/EIA RS-274-D. Since the VMC
rotates the work piece, the rotary head must rotate clockwise to achieve a
counterclockwise tool motion and visa versa.

The positive sign is assumed. The Negative symbol must precede the angular
amount. A-90. is correct, -A90. is incorrect.

A+ = Counterclockwise work piece rotation (viewing in the X+ direction).

A- = Clockwise work piece rotation (viewing in the X+ direction).

END POINT
G91 (A+90ß)

START POINT

G91 (A-270ß)
Figure 12-1 Direction of Motion

G90 Absolute Mode In the absolute mode (G90) the A word value defines the final position between
0 and 360. The + or - signs define the direction of rotation. The + sign causes
counterclockwise work piece rotation, the - sign causes clockwise rotation to
the indicated degree. There are two possible ways to get to a position on the
rotary table in absolute: by rotating either from the positive or negative
direction.

April 2003 Section 12: Rotary Axes 265


Fadal User Manual

EXAMPLE: 1) G90: In absolute terms A+90. and A-90. will position to the same location;
however, from different directions. An A+90. will rotate the work piece in the
positive (CCW) direction to the absolute 90 degree location. An A-90. will move
the table in the negative (CW) direction to the absolute 90 degree location.

N1 G0 G90 A90.000
N2 A-0

Block N1 rotates the work piece counterclockwise to the 90th degree position.

Block N2 rotates the work piece clockwise to the zero degree position.
Changing N2 to a value of A+0 would cause counterclockwise rotation to the
zero degree.

G91 Incremental In the incremental mode (G91) the A axis value defines the direction and
Mode number of degrees to rotate. An A+90. causes the work piece to rotate
counterclockwise 90 degrees. If the next move were an A-90. the work piece
would rotate clockwise to the original position.

EXAMPLE: 1) G91: In incremental terms A+90. and A-270. will position to the same
location; however, from different directions. An A+90. will move the table in
the positive (CCW) direction 90 degrees from its current position. An A-270.
will move the table in the negative (CW) direction 270 degrees from its
current position.

N1 G0 G91 A+90.
N2 A-90.
Block N1 rotates the work piece counterclockwise 90 degrees. Block N2 will
rotate the work piece clockwise 90 degrees.

A Axis Cold Start

The A axis markers must be aligned during the cold start procedure. The mark
on the face plate and the mark on the body of the A axis must be in line before
using the CS command.

A Axis Home Position

The A axis can be set to zero at any angle by using the SETA command. The
SETA command will store the current A axis position into memory as the A axis
home position. When the CS command is used and the move to home question
appears the A axis position appears, at the bottom of the screen, along with
the XYZ and B axis positions.

266 Section 12: Rotary Axes April 2003


Fadal User Manual

EXAMPLE: 1) Jog the fixture or part until it is level.

2) From the command mode, type SETA, then press ENTER.

3) The A axis should now be set to zero.

Move to Home The G28 code in format one and the HO command return the rotary head to the
set point along with the X and Y axes. In format two, a G90 G28 X0 Y0 A0
needs to be coded so that the A axis will move home with the X and Y axes.

1) If the current Z axis position is above (+) the HOME position, the X, Y and A
axis moves to zero first, then the Z axis moves in the negative direction.

2) If the current Z axis position is below (-) the HOME position, the Z axis
moves in a positive direction (to zero) first, then the X, Y, and A axis move to
zero.

After the HO moves are computed, the CNC enters the waiting state. The
operator can command the execution of the moves by pressing the START key
or abort the moves by pressing the MANUAL key.

WARNING: This move will always be in the direction that is the shortest

! distance back to A0.

180˚

180º OR GREATER LESS THAN 180º


FACEPLATE ROTATES FACEPLATE ROTATES
'CCW' TO GET HOME 'CW' TO GET HOME

Figure 12-2 Move to Home

Jog Mode Jogging the A axis in the positive direction causes the work piece to rotate
counterclockwise when viewing in the X+ direction. Relative tool motion would
be clockwise. Jogging the A axis in the negative direction causes the work

April 2003 Section 12: Rotary Axes 267


Fadal User Manual

piece to rotate clockwise when viewing in the X+ direction. Relative tool motion
would be counterclockwise.

A Axis Brake

Use the M60 code to activate the A axis brake. The brake will remain activated
until the M61 is coded or another A axis move is made, either from the program
or jog.

EXAMPLE: N1 G90 G0 M61 Y-2.3 X1.3 Brake off


N2 Z1.6754 A90. M60 Z and A axis move then brake on
An M-60 is used with an A move when using fixed cycles so that the cycle will
not execute until the brake is applied.

EXAMPLE: N10 G82 G99 R0+.1 Z-.25 F45. P130


N11 A30. M-60
N12 A60. M-60
On line N11 and N12 the A axis moves into position, the brake is applied, then the cycle
is executed.

Decimal Degrees

A axis values are given in decimal degrees.

EXAMPLE: d° = Degrees
m’ = Minutes
s" = Seconds
DD = Decimal degrees
40°30’13" = 40.50361
d° m’ s" = DD
DD= d° + (( m’ + ( s" / 60)) / 60 ))

Numerical Format No more than seven numbers are allowed.

A##.#####

A###.####

A####.###

Note: The decimal point is required for all angles except for A0.

268 Section 12: Rotary Axes April 2003


Fadal User Manual

Maximum &
Minimum Angular
Limits START POINT

G90 (A+90ß)

END POINT

G90 (A-90ß)

Y+ X+

Figure 12-3 Max. & Min.

Smallest: A.002

Largest: A1080.

Programming a G91 G1 X2. A1080. will cause an interpolated move where the
X axis moves 2. and the A axis moves 1080. degrees. When a fixed cycle is
used, A axis motion will cause execution of the cycle.

April 2003 Section 12: Rotary Axes 269


Fadal User Manual

EXAMPLE: N1 M6 T1
A0ß
N2 (TOOL #1, DRILL
Y0
N3 G0 G90 S10000 M3 E1 X0 Y0 A30.
N4 H1 D1 M7 Z.1 Z0

N5 G81 G99 R0.1 Z-.5 F40. X.5 X0


60ß

N6 X2.5
N7 A90.
N8 X.5 0ß
30ß
N9 A150. 60ß TYP

N10 X2.5
N11 A210.
N12 X.5
N13 A270.
N14 X2.5
N15 A330.
N16 X.5 .50
2.0
N17 G80
Figure 12-4
N18 M5 M9
N19 G0 G90 H0 Z0

The A axis can be interpolated along with any other axis. For example, an X and
A axis move can be programmed on one line using the G1 code. The X and A
axis moves will both end at the same time.

Note: A G2 or G3 will not accept an A axis move in the same line. (See Flat
Cam Programming).

270 Section 12: Rotary Axes April 2003


Fadal User Manual

EXAMPLE: N18 M6 T3
1.00 1.00
N19 (TOOL #3, 3/8 (.375) 2FL EM
N20 G0 G90 S8000 M3 E1 X3.5 Y0 A0
N21 H3 D3 M7 Z.1
N22 G1 Z-.27 F10.
N23 G91 F50. 30ß
N24 X1.
N25 X-1.A-30.
N26 X-1.A30.
N27 A90.
N28 X2. 90ß
N29 A-90.
N30 X1.
N31 Z.1 G0
N32 M5 M9

2.00
Figure 12-5

Degree Feedrate The actual move distance must be calculated before the feed rate can be
Calculation determined. This distance may be estimated; however, for best results use the
equation below.

The following example is programmed for a part with a diameter of 4.0. The
desired cut is 90 degrees interpolated with an X axis move of 3.0 (see line N6
of the example program below). The feed rate used for calculation was 25 ipm.

Actual move distance = Sqrt (((Dia. of surface to be cut * 3.14159) / (360 /


Degrees of rotation))2 + X2)

EXAMPLE: Actual move distance = Sqrt (((4 * 3.14159) / (360 / 90))2 + 3.02)
= Sqrt ((12.56636) / 4)2 + 9)
= Sqrt ((3.14159)2 + 9)
= Sqrt (9.8696 + 9)
= Sqrt (18.8696)
= 4.3439
(G94) Feed Rate = Degrees of Rotation / (Actual Move Distance / Desired Feed
Rate)

April 2003 Section 12: Rotary Axes 271


Fadal User Manual

EXAMPLE: Feed rate = 90 / (4.3439 / 25)


= 90 / .173756
= 517.97

EXAMPLE: G94

N1 M6 T1
N2 (TOOL #1, 1/2 END MILL
N3 G0 G90 S5000 M3 E1 X0 Y0 A0
N4 H1 M8 Z.1
N5 G1 Z0 F25.
N6 X3. A90. F517.97
N7 X1. 25 Inches per Minute move
N8 X3. A90. 517.97 Degrees per Minute
N9 G90 G0 H0 Z0

Note: The machine control default is G94, therefore it is not required to code
the G94 into the program if degrees per minute is used.

Note: An F word, on a line with an A axis move only, represents degrees per
minute.

Feed Rate
Specification in
Degrees per Minute Table 1: Feed Rate Specification

Maximum Programmable
Axis Ratio Maximum Rapid Traverse
Feed Rate
360:1 2000 1250
180:1 4000 2500
120:1 6000 3750
90:1 8000 5000
72:1 10000 6250

G93 - 1/T (Inverse The G94 code is used more commonly than the G93. G93 was used by controls
Time) that did not interpolate XA or YA moves. The advantage of using G94 (the
default code) is to allow the programmer to switch between ipm and dpm with
no code cancellation. Except for code cancellation, G94 and G93 effectively cut
the A axis interpolated move in the same way.

272 Section 12: Rotary Axes April 2003


Fadal User Manual

The following example is programmed for a part with a diameter of 4.0. The
desired cut is 90 degrees interpolated with an X axis move of 3.0 (see line N6
of the example program below). The feed rate used for calculation was 25 ipm.

Actual move distance = Sqrt (((Dia. of surface to be cut * 3.14159) / (360 /


Degrees of rotation))2 + X2)

EXAMPLE: Actual move distance = Sqrt (((4 * 3.14159) / (360 / 90))2 + 3.02)
= Sqrt ((12.56636) / 4)2 + 9)
= Sqrt ((3.14159)2 + 9)
= Sqrt (9.8696 + 9)
= Sqrt (18.8696)
= 4.3439
(G93) Feed Rate = 1 / (Actual Move Distance / Desired Feed Rate)

EXAMPLE: Feed rate = 1 / (4.3439 / 25)


= 1 / .17376
= 5.755

EXAMPLE: G93

N1 M6 T1
N2 (TOOL #1, 1/2 END MILL
N3 G0 G90 S5000 M3 E1 X0 Y0 A0
N4 H1 M8 Z.1
N5 G1 Z0 F25.
N6 G93 X3. A90. F5.76
N7 G94
N8 X1.
N9 G93 X2. A30. F11.07
N10 G94
N11 G90 G0 H0 Z0

All moves in this example from N6 to N9 are equivalent to a feed rate of 25 ipm
linear interpolation.

April 2003 Section 12: Rotary Axes 273


Fadal User Manual

G15 - YZA Circular This code is used to interpolate Y, Z arcs while making simultaneous A axis
Interpolation movement. This code is used when it is necessary to cut an arc with the bottom
of the end mill. G15 may also be used with a ball nose end mill.
START POINT BEFORE
ROTATION
END POINT AFTER
ROTATION

G91
Y

Figure 12-6

Note: When the center of the arc to be cut is not the same as the center of
rotation on the A axis, G15 must be used to cut the radii (see picture
below).

The following diagram shows the information required to program G15.


J

Figure 12-7

The G15 arc requires four descriptors: end point, center description, A axis
rotation, and the G2 or G3 code. These four elements are determined as
follows:

1) End point description:

a. Incrementally Y and Z axis moves are described as the direction and


distance from the start point, prior to A axis rotation, to the end point,
after the A axis rotation.
b. In absolute terms the Y and Z axis end positions are given as the abso-
lute locations after rotation.
2) Center description:

a. The J is the incremental Y direction and distance from the Y axis start
point to the center of A axis rotation.

274 Section 12: Rotary Axes April 2003


Fadal User Manual

b. The K is the incremental Z direction and distance from the center of the
arc to be cut to the center of A axis rotation.

A- FOR CCW
1.000 TOOL MOTION
END POINT
START POINT
.500 Y (G91)
J START POINT

G3 Z (G91)

K
.800
.400 A AXIS
ROTATION
AMOUNT

A AXIS
R .10 CENTER
PART
BEFORE ROTATION
(4)PL PART AFTER
ƒÓ1.50 ROTATION

Figure 12-8
Z+

Y+ Y-

3) A axis description:

a. Incrementally the A axis rotation is given as the angle between the end
point at the beginning of the move and the end point at the end of the
move (See picture below).
b. In absolute terms this would be given as the absolute angle of the part
at the end of rotation.

Figure 12-9

4) G2 or G3 description:

a. The arc direction coding is based on viewing the part looking in the X+
direction. A clockwise arc uses a G2 code and a counterclockwise arc
uses a G3.

April 2003 Section 12: Rotary Axes 275


Fadal User Manual

EXAMPLE: N1 (G15 RECTANGLE


N2 (X0 IS END OF PART, Y0 IS CENTER, Z0 IS TOP OF 1.5 DIA PART
N3 G90 G0 X.3 Y-1.5 E1 A0 S5000 M3
N4 H1 Z-.35 M8
N5 G91 G8 G1 Y1.9F10.
N6 G15
N7 Y-.7 Z.1 J-.4 K-.3 A-90. G3
N8 G90 Y.6
N9 G91 Y-.7 Z-.1 J-.3 K-.4 A-90. G3
N10 G90 Y.8
N11 G91 Y-.7 Z.1 J-.4 K-.3 A-90. G3
N12 G90 Y.6
N13 G91 Y-.7 Z-.1 J-.3 K-.4 A-90. G3
N14 M5 M9
N15 G90 G0 H0 Z0
N16 E0 X0 Y0 A0
N17 M2

EXAMPLE: N1 (G15 CRANKSHAFT


N2 (X0 IS END OF PART, Y0 IS THE CENTER, Z0 IS THE TOP OF 1.5 DIA
N3 (TOOL IS A .5 DIA CENTER CUTTING 2FL EM
N4 G90 G0 S5000 M3 E1 X.45 Y0 A0
N5 H1 Z.1 M8
N6 Z-.05 G1 F10.
N7 G15
N8 G91
N9 Y0 Z0 J0 K-.45 A-360. G3
N10 G90
N11 Z.1 G0
N12 X1.15 A180.
N13 Z-.05 G1
N14 G91
N15 Y0 Z0 J0 K-.45 A-360. G3
N16 G90 G0 Z.1
N17 M5 M9
N18 G90 G0 H0 Z0
N19 E0 X0 Y0 A0
N20 M2

276 Section 12: Rotary Axes April 2003


Fadal User Manual

Flat Cam (Cam Flat cam programming is used when an XY program needs to be “wrapped”
Wrapping) around the circumference of the part. This function is designed to convert Y
Programming axis motion into A axis motion. XA conversion is used when the A axis is the
rotary table, YB conversion is used when the B axis is the rotary table.

Figure 12-10 Flat Cam

The conversion from Y to A axis moves is defined in the program by using a


G17 and Q word in the same line. The Q word represents a number used by the
control for converting the Y or X axis moves to A or B axis moves.

Wrapping X on B Axis

Y axis wrapping is assumed. Use G17 Q word P1 on the same line in the
program for YB wrapping. All information for Y to A wrapping applies to X to B
wrapping.

Cam Diameter

The cam diameter to be used is usually given on the blueprint. If it is not given,
use the outside diameter of the part for the cam diameter. Y axis moves, when
wrapped, are measured along the circumference of the cam diameter.

Note: The angular move for one inch of Y axis motion for CAM DIA. 1, is less
than the angular motion for one inch of CAM DIA. 2 (see the picture above).

April 2003 Section 12: Rotary Axes 277


Fadal User Manual

A Axis Ratio

Each rotary table has an axis ratio. Not all manufactures keep the same ratio.
This number is affected by the gear ratio of the axis. The manual for each
rotary head contains the A axis ratio number to use for calculating the Q word.
1" ALONG THE
CIRCUMFERENCE
OF DIAMETER 1

CAM DIA 1

A AXIS B AXIS
MOTION MOTION

CAM DIA 2

1" ALONG THE


CIRCUMFERENCE OF
DIAMETER 2

Figure 12-11 A Axis Ratio

Q Word

A axis ratio = 90 to 1, cam diameter = 4., pi = 3

.14159

(Inches) Q = A axis ratio / (5 * pi * (cam diameter in inches)) 5= counts constant

Q = 90 / 5 * 4 * 3.14159

Q = 90 / 20 * 3.14159

Q = 90 / 62.8318

Q = 1.4324

(Metric) Q = A axis ratio / ((5/25.4) * pi * (cam diameter in millimeters))

Unwrapping

Prior to canceling the G17 Q word code, the Y axis must be “unwrapped” so
that the A axis can return to its original position.

1) The position of the Y axis, when the G17 Q word is coded, establishes the
original position of the A axis.

278 Section 12: Rotary Axes April 2003


Fadal User Manual

2) Returning the Y axis to its original position should return the A axis to its
original position. The A axis position read out on the screen must be the
same position that it started from to be fully unwrapped. The Q word can be
altered to attain this.

3) An absolute or incremental Y axis move can be used to return the Y axis to


its place of origin.

G90

If the program moves the Y axis Y+5., then the unwrapping move would be Y0.

G91

If the program moves the Y axis Y+5., then the unwrapping move would be Y-5.

April 2003 Section 12: Rotary Axes 279


Fadal User Manual

Canceling Cam Wrapping

Directly after the unwrapping move, cancel the flat cam programming function
by coding a G17 on a line by itself.

EXAMPLE: N1 O1 (FLAT CAM PROGRAM EXAMPLE


N2 M6 T1 2.125

N3 (TOOL #1, 1/2 2 FL E.M. USE .5 IN THE TOOL TABLE


N4 G0 G90 S2000 M3 X0 Y0 A0
N4.5 G51.1 Y0 It is important to mirror the Y axis 4.50

N5 H1 D1 M8 Z.1 6.50

N6 G17 Q1.4324 This line starts Flat cam conversion


(see Q word)
N7 X1.125 Y-2.125 R 1.02

N8 G1 Z-.27 F25. R .96

N9 G1 G42 X2.125 To maintain a climb cut on a mirrored R .75


(FULL RADIUS)

path, use G42 Figure12-12


N10 Y-.25
N11 X1.875 Y0 I-.25 G3
N12 X.25
N13 X0 Y-.25 J-.25 G3
N14 Y-4.5
N15 X.322 Y-5.2437 I1.02 G3
N16 X.625 Y-5.9437 I-.657 J-.7 G2
N17 Y-6.5
N18 X2.125 I.75 G3
N19 Y-3.375
N20 X1.125 G40
N21 Z.1 G0
N22 Y0 Return to original Y position
(unwrapping move)
N22.5 G50.1 Turn off mirror
N23 G17 This line cancels the Flat cam
conversion
N24 M5 M9
Figure 12-13
N25 G90 G0 H0 Z0

280 Section 12: Rotary Axes April 2003


Fadal User Manual

Note: Rapid movements (G0 or G5) are reduced in speed during the flat cam
conversion.

400 / Q word amount = new rapid rate

400 / 1.4324 = 279.25 IPM

Mid Program Start

Mid program starts may not be executed after the G17 Q word which is used to
start the cam wrapping feature. The mid program start feature can be used on
any line before the G17 Q word and after the G17 that is used to cancel cam
wrapping.

Writing a Cam Wrapping Program

When writing a program to be wrapped, mirror the Y axis with a G51.1 Y0 at the
beginning of the program, just before the G17 Q#, and exchange all G41 codes
to G42. (See the program example above.)

Cam Wall Angles A axis machining can produce two different cam wall angles. The cam walls
may intersect or they may be parallel. These wall angles are determined by the
programming methods used. The wall configuration required is established by
the part blueprint.

Note: Flat cam conversions will produce walls that intersect (see picture
below).

Figure 12-14

April 2003 Section 12: Rotary Axes 281


Fadal User Manual

Review the print to determine whether the walls on the print intersect or are
parallel. Place a straight edge on a wall on the print to help determine if the
walls intersect.

Figure 12-15

Note: If the walls are parallel, DO NOT use flat cam (cam wrapping)
conversions (see picture above).

Figure 12-16

Parallel walls are normally associated with slots or grooves. These parallel
walls can be maintained by using a cutter that is the same diameter as the
width of the slot. When the slot is wider than the cutter, Y axis movements must
be made to maintain parallel walls.

Parts that have parallel walls, such as slots or grooves, are usually parallel
because a follower pin must fit into the slot or groove.

1) Start cutting the slot by programming the center of the groove, and cut with
an undersized cutter. This cutter must be undersized enough to account for
cutter deflection.

2) Use the same programmed path to make a second cut with a full- sized
cutter.

282 Section 12: Rotary Axes April 2003


Fadal User Manual

Parts with parallel walls can be cut by using a cam system that provides this
feature. These systems allow for the Y axis to be offset to account for cutter
radius compensation, if required.

Tilt Rotary Table


Direction of Motion Direction of motion is defined as per ANSI/EIA RS-274-D. Some tilt rotary
tables are set up with the B axis as the tilt portion and others with the A axis as
the tilt portion. All rotary table information for a tilt rotary table can be read in
the A axis portion of this section. Since the VMC tilts the work piece, the tilt
must be clockwise to achieve counterclockwise tool motion and visa versa.

Note: The positive sign is assumed. The negative symbol must precede the
angular amount. B-90. is correct, -B90. is incorrect.

B Tilt Table

B+ = Counterclockwise work piece rotation

(viewing in the Y+ direction).

B- = Clockwise work piece rotation

(viewing in Y+ direction).

A Tilt Table

A+ = Counterclockwise work piece rotation

(viewing in the X+ direction).

A- = Clockwise work piece rotation

(viewing in X+ direction).

Tilt Cold Start

The tilt table axis markers must be aligned before using the CS command.

Tilt Home Position

Jog the tilt table to the desired degree for home position. Then use the SETB or
SETA command, whichever applies, to establish the tilt home position. This
position is stored in memory and when the next CS command is used, the tilt
table will return to this location.

April 2003 Section 12: Rotary Axes 283


Fadal User Manual

Axis Limits

The tilt limits are as follows:

1) B tilt table:
• 105 degrees - from the cold start position
• 15 degrees + from the cold start position
2) A tilt table:

• 105 degrees + from the cold start position


• 15 degrees - from the cold start position

B-105˚
A+105˚

CS CS

A-15˚ B+15˚

Z+ Z+

Y+ X+

Figure 12-17

Tilt Table Brake To activate the brake for the tilt table use the M62 code. When the next tilt axis
move is made, the brake will automatically release. M63 can be used to release
the tilt table brake.

EXAMPLE: N1 G90 G0 M63 Y-2.3 X1.3 Brake off


N2 B+315. M62 B tilt move then brake on

284 Section 12: Rotary Axes April 2003


Fadal User Manual

G90 Absolute Mode In the absolute mode, the tilt angular value defines the final position between
15 and 265 degrees. The + or - signs define the direction the table will move to
get to the degree of tilt. Care must be used in selecting the proper sign for tilt to
prevent over travel.
265˚ 270˚ 270˚ 265˚

315˚ 315˚
A+ B-

0˚ 0˚

15˚
15˚

Z+ Z+
B+
A-

Y+ X+

Figure 12-18 G90 Absolute Mode

EXAMPLE: In absolute terms B+10. will tilt the B axis counterclockwise to the 10th degree.

In absolute terms B-270. will tilt the B axis clockwise to the 270th degree.

In absolute terms A-10. will tilt the A axis clockwise to the 10th degree.

In absolute terms A+270. will tilt the A axis counterclockwise to the 270th
degree.

G91 Incremental In the incremental mode (G91) the tilt value defines the direction and number
Mode of degrees for the tilt table to move. A B+10. causes the table to tilt positively
(CCW) 10 degrees from its current position. A B-10. causes the table to tilt
negatively (CW) 10 degrees from its current position.

B+90˚
A-90˚

A+90˚ B-90˚

Z+ Z+

Y+ X+

Figure 12-19 G91 Incremental Mode

EXAMPLE: In incremental terms B+90. tilts the table 90 degrees counterclockwise from its
current position.

April 2003 Section 12: Rotary Axes 285


Fadal User Manual

In incremental terms B-90. tilts the table 90 degrees clockwise from its current
position.

In incremental terms A+90. tilts the table 90 degrees counterclockwise from its
current position.

In incremental terms A-90. tilts the table 90 degrees clockwise from its current
position.

Feed Rate

Feed rate is addressed by use of the F word and a G01 code. Tilt motion is
programmed in degrees per minute. For example; G91 G01 B+45. F50.0
rotates the B axis 45 degrees at 50 degrees per minute. Use the following chart
to find the maximum programmable feed rate for selected device.

See the degree feed rate calculation information in this section for details.

A & B Fixtures A & B Fixtures offsets are relative from the E0 or SETA, SETB position. This
Offsets fixture offset value (in the fixture table) is an absolute value relative to zero.
Within the program the direction of motion is specified by + (positive) or -
(negative). For Rotary table see figure 1, for Tilt see figure 2.

286 Section 12: Rotary Axes April 2003


Fadal User Manual

Section 13: Interpolation

VMC Interpolation
Modes
Linear Interpolation Linear Interpolation is used to generate motion along a line, at a specified feed
rate. The linear mode is established by the G1 code. The VMC control can move
up to 5 axes simultaneously, completing the movement at a point determined
by the X, Y, Z, A, and B words.

EXAMPLE: N1 O1
N2 M6 T1
N3 G0 G90 S2000 M3 E1 X0 Y0 A0 B0
N4 H1 Z.1 M8
N5 G1 Z-.25 F5.
N6 G1 G91 X1. F10.
N7 X1. Y1.
N8 X1. Y1. Z1. A360. B90.

According to the sample program above: Block N6 moves the X axis linearly
(G1 mode) 1.0 inch at a feed rate of 10 IPM. Block N7 moves the X and Y axes
together forming an angular cut. Block N8 moves all possible axes together.
The G1 code will use the last feed rate established in the program with the F#
word. The F# word is modal and is only canceled by another F# word. The F#
will remain in effect throughout the program until another F# word is used. The
F# word can appear on any line with other codes as long as the other codes
have no restrictions.

G1 is modal and is only canceled by a G0 code. The G1 must be used again


after using a G0 code in the program. A G2/G3 code will not cancel a G1 code.
This means that if a G2 or G3 is used it is not necessary to re-state the G1 on
the following line. Also, if the arc center is not described, then a straight line will
be generated.

Note: Maximum program feedrate at 100% is 400 IPM for machines capable
of 900 IPM rapid traverse. The maximum program feedrate at 100% is 250
IPM for machines capable of 400 IPM rapid traverse.

April 2003 Section 13: Interpolation 287


Fadal User Manual

Circular Circles and arcs are described by the start point, the end point, direction and
Interpolation distance from the start point to the center of the circle, and the arc direction.
Any arc or circle may be programmed with two lines.

Note: The largest programmable radius is 399.9999 inches and with CRC
99.9999 inches.

1) The first line represents the move to position to the start point of the arc.
This move could be a rapid move, a linear move, or the end of another
circular move.

2) The second line (the circular move) includes the end point, arc center
description, and arc direction. This move is made at the current feed rate.

XY (end point), IJ (arc center), G2/G3 (arc direction)

The end point, arc center, and direction around are described on the next three
pages.

Note: Maximum program feedrate at 100% is 400 IPM for machines capable
of 900 IPM rapid traverse. The maximum program feedrate at 100% is 250
IPM for machines capable of 400 IPM rapid traverse.

End Point The end point is described differently for G90 and G91. In both cases either the
X or Y or both X and Y can be used. Similar to a linear move or rapid move, only
the axis that has a difference between the start point and the end point must be
included in the end point description.

EXAMPLE: G90

In the absolute mode, the end point is described as the absolute distance from
the home position of the part to the end point of the arc.
X END POINT
Y END POINT
END

START

Figure 13-1 G90

288 Section 13: Interpolation April 2003


Fadal User Manual

G91

In the incremental mode, the end point is described as the direction and
distance from the start point of the arc to the end point of the arc.

Put a pencil on the starting position of the arc and draw arrows, first
horizontally along the X axis then vertically along the Y axis to the end point to
help visualize the direction from start to end.

END

Y+

X-
START

Figure 13-2 G91

April 2003 Section 13: Interpolation 289


Fadal User Manual

Arc Center
G90 and G91 The arc center description is the same for G90 and G91.

The arc center is the direction and distance from the start point of the arc to the
center point of the arc. Put a pencil on the starting position of the arc and draw
arrows, first horizontally along the X axis then vertically along the Y axis to the
center point to help visualize the direction from start to center.

For the X axis direction description to the center use the letter I.

For the Y axis direction description to the center use the letter J.

If the circle begins at the start of a quadrant, only an I or J is required. If the


circle begins within the quadrant, both I and J are required.

X- START
-
J- Y-
X-
- START
CENTER CENTER

Figure 13-3

J-

+ J- - J-

+ -

+ J+ - J+

J+
Figure 13-4

290 Section 13: Interpolation April 2003


Fadal User Manual

Arc Direction The G2 code is used when the arc direction is clockwise, G3 is used for arcs in
a counterclockwise direction.

END END

G3

START
START

G2

Figure 13-5 Arc Direction

Circle Examples The following are examples of various programmed arcs in absolute (G90) and
incremental (G91)modes.
START

R .5

END

X3.95 Y-5.62

G90 G91
X4.45 Y-5.12 G1 F45. X-1. Y0 G1 F45.
X3.95 Y-5.62 J-.5 G3 X-.5 Y-.5 J-.5 G3

Figure 13-6 Circle Examples (1)

April 2003 Section 13: Interpolation 291


Fadal User Manual

R .42
START

END
X-1.863
Y+3.052

G90 G91
X-2.283 Y2.632 G1 F45 X0 Y-.5 G1 F45
X-1.863 Y3.052 I.42 G3 X.42 Y-.42 I.42 G3
Figure13-7

X5.1135 Y.765

END
R .375

START

G90 G91
X4.7385 Y.39 G1 F45. X.5 Y0 G1 F45.
X5.1135 Y.765 J.375 G3 X.375 Y.375 J.375 G3
Figure 13-8 Circle Examples (3)

292 Section 13: Interpolation April 2003


Fadal User Manual

X3.5 Y0

END

START
R .005

G90 G91
X3.505 Y-.005 G1 F45. X0 Y1. G1 F45.
X3.5 Y0 I-.005 G3 X-.005 Y.005 I-.005 G3
Figure 13-9 Circle Examples (4)

.7071
START
45˚

.7071 R 1.0
END

X-.3212 Y-3.423
G90 G91
X-.0283 Y-2.7159 G1 F45. X-.5 Y-.5 G1 F45.
X-.3212 Y-3.423 I.7071 J-.7071 G3 X-.2929 Y-7071 I.7071 J-.7071 G3
Figure 13-10 Circle Examples (5)

April 2003 Section 13: Interpolation 293


Fadal User Manual

X-3.215 Y2.7063

.7071

45˚

END
.7071 R 1.0

START

G90 G91
X-3.5079 Y1.9992 G1 F45. X0 Y.5 G1 F45.
X-3.215 Y2.7063 I1. G2 X.2929 Y.7071 I1. G2

Figure 13-11 Circle Examples (6)

.7071 START .5 45˚


30˚
END

.7071

.866

X-4.1989 Y-3.6314

G90 G91
X-2.6258 Y-3.4243 G1 F45. X-.25 Y-.433 G1 F45.
X-4.1989 Y-3.6314 I-.866 J.5 G2 X-1.5731 Y-.2071 I-.866 J.5 G2
Figure 13-12 Circle Examples (7)

294 Section 13: Interpolation April 2003


Fadal User Manual

START AND
END POINT
J-1.0 G3

R 1.0

Figure 13-13 Circle Examples (8)

Full circles require the move to the start/end point and either the I or J,
depending on the start point moved to, and the direction around.

X-3, Y-2

.30

.30

.30

X-4, Y-2.3

X-4.3, Y-2.3
Figure 13-14 Full Circles

Circular Boss M5 M9
Example G90 G0 H0 Z0
M6 T3 (TOOL #3, .5 2FL EM
G90 G0 S8000 M3 E1 X-4.3 Y-2.3
H3 D3 Z.1 M8

April 2003 Section 13: Interpolation 295


Fadal User Manual

G8
Z-.245 G1 F10.
X-4. G41 F50.
Y-2.
I1. G2
Y-1.7
X-4.3 G40
Y-2.3 Z-.25
G91 (G91 USED FOR EXAMPLE ONLY
X.3 G41
Y.3
I1. G2
Y.3
X-.3 G40
M5 M9
G90 G0 H0 Z0
M6 T4

Contoured Slot M5 M9
X2, Y-1.5
Example G90 G0 H0 Z0
M6 T6 (TOOL #6, 3/8 (.375) 2FL
EM
G90 G0 S10000 M3 E1 X2. Y-1.5 .38 R .19
H6 D6 Z.1 M8
Z.01 G1 F10.
G8
G91 1.00
X-1. Z-.135 F30.
X1. 4 3
X-1. Z-.145
2,7
X1.
1,8
X.19 G41 F50.
X-.19 Y.19 I-.19 G3 5 6
X-1. Figure 13-15 Contoured Slot Example
Y-.38 J-.19 G3
X1.
Y.38 J.19 G3
X-1.
Y-.38 J-.19 G3
X1.
X.19 Y.19 J.19 G3
X-.19 G40

296 Section 13: Interpolation April 2003


Fadal User Manual

G90
Z.1 G0
G0 G90 H0 Z0

Circular Using G18 (XZ plane) and G19(YZ plane) requires the use of K to represent the
Interpolation Using direction and distance in Z from the starting point of the circle to the circle
G18 & G19 center.

G18 Circles in the XZ plane require either the absolute or incremental end point, the
I and K circle center description, and a G2/G3 arc direction. Note that G2 and
G3 are reversed. The information in this section concerning the use of I and J
applies to the K word.

The G18 word must appear in the program just before the circular move. The
G18 is required only for the XZ circular moves. Linear XZ moves can be
programmed from any plane. When cutter radius compensation is required for
linear and circular XZ moves, use the G18 just before applying compensation
and the compensation will be applied to the XZ axes.
R 1.1500
5.0900 Z+
3.4585
2.9928 X+
1.8600
.4800

.9520
1.6180
2.5600
.8314

R .9600

1.1328 .1980
Figure 13-16

G3 G2
Y+
Z+
VIEW
G2 G3
Y+
X+
G18 G17 X+

Figure 13-17

April 2003 Section 13: Interpolation 297


Fadal User Manual

EXAMPLE: G90

G90 X-5.09 Z-2. G0


G18
Z-2.56 G42 G1
X-3.4585Z-1.168
X-2.9928 Z-.952 I-.48 K.8314 G2
X-1.86 Z0 I1.1328 K-.198 G3
X0
Z.5 G0 G40

EXAMPLE: G91

G90 X-5.09 Z-2.


G18
G91
Z-.56 G41 G1
X1.6315 Z.942
X.4657 Z.666 I-.48 K.8314 G2
X1.1328 Z.952 I1.1328 K-.198 G3
X1.86
Z.5 G0 G40

298 Section 13: Interpolation April 2003


Fadal User Manual

G19 Circles in the YZ plane require either the absolute or incremental end point, the
J and K circle center description, and the G2 or G3 description. The information
in this section concerning the use of I and J applies to the K word.

The G19 word must appear in the program just before the circular move. The
G19 is required only for the YZ circular moves. Linear YZ moves can be
programmed from any plane. When cutter radius compensation is required for
linear and circular YZ moves, use the G19 just before applying compensation
and the compensation will be applied to the YZ axes.

R 1.1500
5.0900 Z+
3.4585
2.9928 Y+
1.8600
.4800

.9520
1.6180
2.5600
.8314

R .9600

1.1328 .1980

G3

G2
Z+
Y+

G2 G3
9 Y+
G1 X+
G17

VIEW X-

April 2003 Section 13: Interpolation 299


Fadal User Manual

EXAMPLE: G90

G90 Y-5.09 Z-2.


G19
Z-2.56 G41 G1
Y-3.4585 Z-1.618
Y-2.9928 Z-.952 J-.48 K.8314 G3
Y-1.86 Z0 J1.1328K-.198 G2
Y0
Z.5 G0 G40

EXAMPLE: G91

G90 X-5.09 Z-2.


G19
G91
Z-.56 G41 G1
X1.6315 Z.942
X.4657 Z.666 J-.48 K.8314 G3
X1.1328 Z.952 J1.1328 K-.198 G2
X1.86
Z.5 G0 G40

300 Section 13: Interpolation April 2003


Fadal User Manual

Circular An R word, which represents the radius of the circle, can be used in place of the
Interpolation Using I, J, or K arc center description. This can be used in any plane (G17, G18, G19)
Radius Designation and with absolute or incremental in effect.

An R0 variable is used to represent the radius of the arc to be programmed.


The sign (+,-) of the R0 value determines the amount of angular motion. A
negative value is used for motion greater than 180 degrees. A positive value
for motion equal to or less than 180 degrees. For example; R0+1. defines a
one inch radius, with motion equal to or less than 180 degrees; R0-1. defines a
one inch radius, with the motion greater than 180 degrees.

ARC #2

ARC #1

START POINT END POINT

Figure 13-18

The drawing above shows two possible clockwise (G2) paths. Each has the
same end point. One arc is greater than 180 degrees, the other less than 180
degrees. Use R0+1.0 to move along arc #1 or use R0-1.0 to move along arc
#2.

G90 X3.623 Y-2.173 R0+.75 G2 (for arc #1)


X3.623 Y-2.173 R0-.75 G2 (for arc #2)

G91 X.65 Y0 R0+.75 G2 (for arc #1)


X.65 Y0 R0-.75 G2 (for arc #2)

Note: When using radius designation, the circular motion must be less than
360 degrees. Full circles are not allowed.

The radius value can be represented by a parameter:

X1. Y1. R0+R1 G3

The R0 value will be the R1 parameter value. See Section 18, Macros, for more
information concerning the use of parameters.

April 2003 Section 13: Interpolation 301


Fadal User Manual

Helical Interpolation Helical moves are used in various situations. Thread milling is one good
example. Helical moves can be used for roughing the walls of a bore and for
entering a pocket with a bottom cutting end mill. This type of motion can be
used to replace a pilot hole drilled to enter a bore or a pocket.

When G17 (XY plane) is coded, the perpendicular axis is the Z axis. A helical
move in G17 would be an XY circular move with a Z axis move coded in the
same line as the circle. For G18 (XZ plane), the perpendicular axis is the Y axis.
A helical move in G18 would be an XZ circular move with a Y axis move in the
same line. For G19 (YZ plane), the perpendicular axis is the X axis. A helical
move in G19 would be a YZ circular move with an X axis move in the same line.
For any of the planes selected with G17, G18, or G19, the perpendicular axis
move finishes at the same time that the circular move finishes.

Figure 13-19

EXAMPLE: (TOOL #1, 3/8 2FL EM, CENTER CUTTING)


M6 T1
G90 G0 S8000 M3 E1 X2. Y-1.5 This is the move to the center of the pocket
H1 D1 Z.05 M8
X2.3 Z0 G1 F30. This is the move to the start point of the circle and to the top
G91
I-.3 G3 Z-.05 This is the first helical move
I-.3 G3 Z-.05
I-.3 G3 Z-.04 At the end of this move the tool is .14 deep
X-.3 F40. This move is back to the center of the pocket
L9601 R0+40. R1+.01 R2+2.98 R3+1.98 Rectangular pocket routine
X.3 This move is to the start of the circle
I-.3 G3 Z-.010 This last helical move is to the -.15 finished floor depth
X-.3 F50. This move is back to center
L9601 R0+50. R1+.01 R2+3. R3+2. Rectangular pocket routine
M5 M9
G90 G0 H0 Z0

Repeating Helical Helical moves are usually made by repeating subroutines, subprograms, or
Moves copying lines in the program.

302 Section 13: Interpolation April 2003


Fadal User Manual

Examples Using G90


Copied Lines X5.5 G1 G41
I-.5 G3 Z-.1
I-.5 G3 Z-.2
I-.5 G3 Z-.3
X5. G40

Note: The circular moves remain the same, however the absolute Z axis
positions must change in each line.

G91
X.5 G1 G41
I-.5 G3 Z-.1
I-.5 G3 Z-.1
I-.5 G3 Z-.1
X-.5 G40
or
G91 X.5 G1 G41
I-.5 G3 Z-.1 L3
X-.5 G40

Note: The circular and Z axis moves remain the same in each line. The copy
command can be used to copy each incremental helical move.

Examples Using Line G90


Repetitions X5.5 G1 G41
G91 I-.5 Z-.1 G90 L3
X5. G40

Note that the L3 is used here to repeat the helical move. This example can only
be used in a main program. The L line repeat code is restricted to the main
program. The G91 in the beginning of the line establishes the incremental
mode for the helical move. The G90 in the end of the line establishes the
absolute mode for the next line. This will work if it is typed into the control in
this exact order.

Examples Using
Subroutines and
Subprograms

EXAMPLE: Using Subroutines

April 2003 Section 13: Interpolation 303


Fadal User Manual

L100 (SUB FOR HELICAL MOVES DOWN INTO POCKET


G91 I-.5 G3 Z-.1 CRC is not applied here
M17
L200 (SUB FOR POCKET
G91 D1 The diameter of the tool must be in tool table to function properly
L104 The helical move in subroutine L100 is repeated four times here (Z-.4)
L9601 R0+10. R1+.015 R2+2.96 R3+2.96 Roughing the pocket
X1.5 G41 G1 Finishing the pocket, apply CRC here
Y.98
X-.52 Y.52 I-.52 G3
X-1.96
X-.52 Y-.52 J-.52 G3
Y-1.96
X.52 Y-.52 I.52 G3
X1.96
X.52 Y.52 J.52 G3
Y.98
X-1.5 G40 Cancel CRC
G90 Z.1 G0 Z up to move to the next pocket location
M17
M30
********MAIN PROGRAM *********
M6 T1
G0 G90 S200 M3 E1 X0 Y0
H1 Z.1 M7
G1 Z.05 F10.
L201 Call subroutine 200 1 time
Move to next fixture and repeat

G0 G90 H0 Z0
E0 X0 Y0
M2

Note that the helical move was placed in a subroutine. The first line of sub
L200 has the G91 code needed for L100 to be repeated to get the incremental
Z move down.

EXAMPLE: Using Subprograms

O1 (SUB FOR HELICAL MOVE


G91 I-.5 G3 Z-.1 CRC is not applied here

304 Section 13: Interpolation April 2003


Fadal User Manual

M99
O2 (SUB FOR POCKET
G91 D1 The diameter of the tool must be in tool table to function properly
M98 P1 L4 The helical move in subprogram O1 is repeated here four times (Z-
.4)
L9601 R0+10. R1+.015 R2+2.96 R3+2.96 Roughing the pocket
X1.5 G41 G1 Finishing the pocket, apply CRC here
Y.98
X-.52 Y.52 I-.52 G3
X-1.56 G40 Cancel CRC
G90 Z.1 G0 Z up to move to the next pocket location
M99

Note that the helical move was placed in a subprogram. The first line of sub O2
has the G91 code needed for O1 to repeated to get the incremental Z move
down.

April 2003 Section 13: Interpolation 305


Fadal User Manual

Cutter Radius Cutter radius compensation can be used with a helical move. CRC must be
Compensation with turned on before the helical move. Compensation is applied to the axes of the
Helical Moves selected plane. For example in G17 compensation is applied to the X and Y
axes and no compensation would be applied to the Z axis. The same is true for
the G18 plane and the G19 plane.

Here is a example of applying compensation and then making the helical


move. The helical move is used to rough the bore and a circular move is made
at the end to finish the bore. Note that a drill was not needed as a pilot for the
end mill. Because the tool is climb cutting down the wall of the bore, the tool is
automatically leaving stock for the finish cut at the end.

Figure 13-20

EXAMPLE: (TOOL #1, 3/4 2FL EM, BOTTOM CUTTING


M6 T1
G90 G0 S5000 M3 E1 X2. Y-2.
H1 D1 Z.05 M8
X2.5 Z0 G1 F25. Tool down to the top of the part
X3. G41 Comp on to the edge of the one two inch bore
G91 I-1. G3 Z-.3 L3 Helical down -.9 from the top
I-1. G3 Z-.13 Helical down -1.03 from the top
I-1. G3 L2 Two finishing passes
G90 X2. G40 G0 Comp off back to the center of the bore
M5 M9
G90 G0 H0 Z0

306 Section 13: Interpolation April 2003


Fadal User Manual

Partial Arcs and Helical moves can be made with any circular move, including full circles and
Helical Moves partial arcs.

START

Z+
END Y+

X+
Figure 13-21

EXAMPLE: G91
Y.19 G41 G1
Y-.38 J-.19 G3 Z-.05 Helical move with a partial arc
X1. Z-.05 Linear XZ move
Y.38 J.19 Z-.05 Helical move with a partial arc
X-1. Z-.05 Linear XZ move
Y-.38 J-.19 G3 Finish moves for slot
X1.
Y.38 J.19 G3
X-1.
Y-.19 G40

Thread Milling Threads can be cut using a single point thread mill or with a thread hob. A
single point thread mill can be used for any lead thread, where a thread hob is
ground for a specific lead. Thread hobs and single point cutters are available
as carbide inserts. Inserts can also be purchased for pipe threads.

1) A boss must be cut to the major diameter of the thread for an outside
diameter (OD) thread, and a bore must be cut to the minor diameter of the
thread for an inside diameter (ID) thread.

2) Determine the lead of the thread to be cut. The lead represents the distance
from thread to thread.

a. Lead (inches) = 1 / threads per inch


b. Lead (metric) =(m20X2.0) the lead is the 2.0, or 2.0mm lead. To con-
vert to inches multiply the lead times .03937 to get the lead distance in
inches.

April 2003 Section 13: Interpolation 307


Fadal User Manual

EXAMPLE: 1 1/16 - 28 thread

Lead = 1 / 28 Lead = .0357

Cutting an OD
Thread

START

ENDE

To cut a right handed OD thread:

1) Start at the top of the boss for an OD thread.

a. Turn comp on, moving up to the minor diameter.


b. Helical cut down using G2 and a Z- (lead) for each thread.
c. Move away from the minor diameter turning comp off.

The tools are set at the top of the part. The thread is located at X0 Y0. The
amount of thread to cut is .500

(OD Thread example 1 1/16 - 28 3A)

Major dia. - 1.0625/1.056

Minor dia. - 1.0187

N46 ( TOOL #5 3/4 DIA SINGLE POINT CARB THREAD MILL (CRC)
N47 M6 T5
N48 G90 G0 S10000 M3 X-1. Y0
N49 H5 Z.0357 M7
N50 X-.5094 G41 G1 F25.

308 Section 13: Interpolation April 2003


Fadal User Manual

N51 G91
N52 I.5094 G2 Z-.0357 L15
N53 G90
N54 X-1. G40 G0
N55 M5 M9

Line N48 moves the tool to a safe position to bring the tool down away from the
boss.

Line N49 brings the tip of the threading tool to one thread above the boss.

Line N50 turns comp on while moving up to the minor diameter.

Line N52 is the helical cut down, in incremental mode. The L15 in line 52
repeats the line fifteen times. This is why it is in incremental mode. Each repeat
represents the next thread.

Line N54 moves the tool away from the diameter turning comp off.

Cutting an ID Thread
START

END

Figure 13-22

To cut a right handed ID thread:

1) Start at the bottom of the bore.

a. Turn comp on moving up to the major diameter.


b. Helical cut up using G3 and a Z+(lead) for each thread.
c. Move away from the diameter turning comp off.

April 2003 Section 13: Interpolation 309


Fadal User Manual

The tools are set at the top of the part. The thread is located at X0 Y0. The
amount of thread to cut is .500

(ID Thread example 1 1/16 - 28 2B)

Major dia. - 1.0625

Minor dia. - 1.0240/1.0301

N46 ( TOOL #5 3/4 DIA SINGLE POINT CARB THREAD MILL (CRC)
N47 M6 T5
N48 G90 G0 S10000 M3 X0 Y0
N49 H5 Z.1 M7
N50 Z-.5 G1 F50.
N51 X.5313 G41 G1 F25.
N52 G91
N53 I-.5313 G3 Z.0357 L15
N54 G90
N55 X0 G40 G0

Line 48 moves the tool to the center of the hole.

Line 50 brings the tip of the threading tool to the depth of the first thread. Line
51 turns comp on while moving up to the major diameter.

Line 53 is the helical cut up, in incremental mode. The L15 in line 53 repeats
the line fifteen times. This is why it is in incremental mode. Each repeat
represents the next thread.

Line 55 moves the tool away from the diameter turning comp off.

310 Section 13: Interpolation April 2003


Fadal User Manual

Section 14: Communications

Communications
Character Code The CNC 88 can send or receive either EIA or ASCII character codes. The EIA
code output is intended for output to a tape punch only. The communications
described in this section are intended for the ASCII mode.

Initial Connection When the CNC 88 is in the command mode (ENTER NEXT COMMAND is on the
screen), it constantly monitors the RS-232 port for incoming data. When data
is detected, the CNC 88 switches to the terminal mode and subsequent input/
output is through the RS-232 port. Also, the user can direct the CNC 88 to send
its output to the RS-232 port by entering the proper CD command.

The initial communication to the machine requires the following


communications parameters:

7 Data Bits

Even Parity

1 Stop Bit

Compatible Baud Rate (i.e. 2400 at both the computer and the machine).

Machine Grounding The machine grounding may affect the communications capabilities. The
machine MUST be properly grounded for best communication results. The
FADAL VMC shall be grounded using any method listed in article 250 of the
National Electrical Code. The minimum grounding method recommended by
FADAL Engineering is detailed in the Installation chapter of the VMC
Maintenance Manual. Inadequate grounding will result in a wide range of hard-
to-diagnose problems in communications, positioning, spindle motion, etc.

Termination If the MANUAL key is pressed while the control is in the terminal mode,
communication will be terminated. This is also accomplished at the computer
terminal by typing the word BYE.

Handshaking Handshaking uses one of two available software protocols:

April 2003 Section 14: Communications 311


Fadal User Manual

XON/XOFF Protocol DC1-READER ON (ASCII 17) DC2-PUNCH ON (ASCII 18)


DC3-READER OFF (ASCII 19) DC4-PUNCH OFF (ASCII 20)

While punching (or outputting) a program, the CNC receives either a DC3 or
DC4, and the transmission pauses. When a DC1 or DC2 is received,
transmission is resumed.

XMODEM Protocol 132-byte packet with 128 bytes of data and 4 control bytes, including a 1-byte
checksum.

How to Send a File The following listing provides an outline for implementing XMODEM protocol.
Using XMODEM for Data is sent 128 bytes at a time. Program lines are concatenated with other
DNCX lines until there are 128 bytes to send (including carriage returns). Four control
bytes are added to the 128 bytes to complete a packet. The first three bytes are
1) CHR$(1); 2) Block Number (from 0-255, starting at 1); 3) 255 - Block
Number. The 128 data bytes are next, followed by a checksum byte.

The procedure for sending data is based on ACKs and NAKs. ACK means
acknowledged, or success. NAK means not acknowledged, or failure. An EOT
is sent if an unrecoverable error or end-of-file has occurred. The logic is better
described in sample code than in words.

312 Section 14: Communications April 2003


Fadal User Manual

EXAMPLE:

SUB DNC ()
' SETUP VALUES
' TRANSMIT BLOCK - [3-128-1], 1ST IS CONTRO L BYTE
SENDBLO CK$ = CHR$(1) + STRING$(131, 32)
' BLOCKNUMBER WILL BE INCREMENTED TO 1 IN FIXBLOCK
BLOCKNUMBER% = 0
' TIMES BLO CK WAS BEEN TRANSMITTED, 3 FOR ERRO R
XMITEDCO UNTER% = 0
RECDNAK% = 0
RECDACK% = 0
SENDFLAG% = 0
EO T$ = CHR$(4)
NAK$ = CHR$(21)
ACK$ = CHR$(6)
STARTCHAR% = 4
CALL CLEARPORT
NEXTBLO CK:
CALL NEXTDNC(DATA$)
IF DATA$ = "" THEN GO TO SPACEFILL
BACKTOSLO W:
DATA$ = DATA$ + CHR$(13)
DATALENGTH% = LEN(DATA$)
SELECT CASE STARTCHAR% + DATALENGTH%
CASE IS > 132
CANFIT% = 132 - STARTCHAR%
LEFTO VER% = DATALENGTH% - CANFIT%
MID$(SENDBLO CK$, STARTCHAR%, CANFIT%) = LEFT$(DATA$, CANFIT%)
GOSUB BEGINSENDING
MID$(SENDBLO CK$, 4, LEFTO VER%) = RIGHT$(DATA$, LEFTOVER%)
STARTCHAR% = 4 + LEFTOVER%
CASE 132
MID$(SENDBLO CK$, STARTCHAR%, DATALENGTH%) = DATA$
GOSUB BEGINSENDING
STARTCHAR% = 4
CASE ELSE
MID$(SENDBLO CK$, STARTCHAR%, DATALENGTH%) = DATA$
STARTCHAR% = STARTCHAR% + DATALENGTH%
END SELECT
GO TO NEXTBLOCK
SPACEFILL:
' SPACE FILL REST O F BLOCK, TERMINATING CR
MID$(SENDBLO CK$, STARTCHAR%, 131 - STARTCHAR% + 1) =
STRING$(131 - STARTCHAR%, CHR$(32)) + CHR$(13)
GO SUB BEGINSENDING
FINISHUP:
CALL DWELLSENDING
CALL CLEARPORT
Q UITING:
CLO SE
EXIT SUB

BEGINSENDING:
CALL FIXBLO CK
BEGINSENDINGSKIP:
CALL CHECKFORABORT
' WAS LAST BLO CK ACKED O R NAKED?
IF RECDACK% OR RECDNAK% THEN RECDACK% = 0: GO TO ZXREADYTOSEND
ZXREADYTORECD:
CALL WAITTILGOT(STOP$)
SELECT CASE STO P$

April 2003 Section 14: Communications 313


Fadal User Manual

EXAMPLE:

CASE IS = EO T$
GOTO QUITING
CASE IS = NAK$
RECDACK% = 0
RECDNAK% = 1
IF SENDFLAG% THEN
' BLOCK WAS SENT BUT NOT RECEIVED, RE-TRANSMIT UP TO 3 TIMES
SELECT CASE XMITEDCO UNTER%
CASE IS = 0, 1
XMITEDCOUNTER% = XMITEDCOUNTER% + 1
CASE ELSE
CALL MHSENDDATA(PO RT%, EO T$, ECO DE%)
IF ECO DE% THEN ERRO R ERRTRANSMIT%
GOTO FINISHUP
END SELECT
END IF
GO TO ZXREADYTO SEND
CASE IS = ACK$
IF SENDFLAG% THEN
' BLOCK WAS SENT AND RECEIVED
SENDFLAG% = 0
XMITEDCOUNTER% = 0
RECDNAK% = 0
RECDACK% = 1
RETURN
END IF
END SELECT
ZXREADYTOSEND:
CALL DWELLSENDING
CALL MHSENDDATA(PO RT%, SENDBLOCK$, ECODE%)
IF ECO DE% THEN ERRO R ERRTRANSMIT%
SENDFLAG% = 1
' WAIT FOR ACK
GO TO ZXREADYTO RECD
END SUB

SUB FIXBLOCK
' SET BYTES 2 AND 3 FO R HEADER, 132 HO LDS CHECKSUM
BLOCKNUMBER% = BLO CKNUMBER% + 1
IF BLO CKNUMBER% > 255 THEN BLO CKNUMBER% = 0
MID$(SENDBLOCK$, 2) = CHR$(BLO CKNUMBER%)
MID$(SENDBLO CK$, 3) = CHR$(255 - BLO CKNUMBER%)
CSUM% = 0
FOR I = 1 TO LEN(SENDBLO CK$) - 1
CSUM% = CSUM% + ASC(MID$(SENDBLOCK$, I))
NEXT I
MID$(SENDBLO CK$, 132) = CHR$(CSUM% MO D 256)
END SUB

NEXTDNC:
' RETURNS NEXT ASCII LINE TO SEND
DATA$ = "" IF END O F FILE
DWELLSENDING:
' WAIT UNTIL TRANSMISSION BUFFER IS EMPTY

314 Section 14: Communications April 2003


Fadal User Manual

Commands
CNC 88 Commands All of the CNC 88 commands may be issued from the computer terminal. The
MANUAL key is simulated by a control/E (05 hex or ENQ character). The line
delete function is accomplished by the @ key and the backspace function is
accomplished by the underline key. The TA and PU commands have special
requirements and features discussed below.

Tape Input The following is a description of the two possibilities to initiate data input.

a. From the keyboard, enter the commands: CD, (Baud Rate #) and TA,1
b. While in the command mode if a DC2 is received from the RS-232 port,
a TA,1 is assumed by the CNC.

The following events are required to successfully complete the transfer of an


NC program.

1) The CNC 88 starts by issuing a DC1 control character. Terminals such as


the teletype with the AUTO mode respond to DC1 by turning on the tape
reader. If the sending device has a tape reader that does not respond to
DC1, the operator must start the reader after the TA,1 command has been
issued. The TA,1 command will send a DC3 to activate the tape reader.

2) The next data sent must be a “%” character followed by a CR control


character, to signal the start of NC program data.

3) The terminal must now send the body of the NC program. Lines of the
program must be separated by a CR control character. An LF character is
optional. After all lines are sent, one or more TO commands followed by
one or more FO commands may be sent to build the tool and fixture data
tables.

4) The terminal must conclude the NC program data by sending a “%”


character followed by a CR control character.

5) An optional checksum may follow. The checksum is sent as a string of


characters consisting of one to four numeric digits(0-9) and terminated by
a carriage return. The checksum may be generated by a high level
language like BASIC. An example follows:

10 REM update checksum after sending character C$

20 CK + CK = ASC (C$)

30 If CK9999 Then CK=CK-9999

April 2003 Section 14: Communications 315


Fadal User Manual

Note:

a. CK is set to zero before the “%” Character is sent in step 20 above.


b. CK includes all characters sent up to, but excluding, the first character
of the checksum.
c. The only control character included in the checksum is the CR (i.e. the
LF character is not counted).
d. If a null line (only a CR) is sent, the CR must not be included in the
checksum.

6) At the completion of a successful TAPE input, when no CHECKSUM is


received, the CNC displays the message “TAPE INPUT TERMINATED”.
When a CHECKSUM is correct, the message “TAPE IS GOOD” is displayed.

PU Command The following is a description of two ways to initiate data output:

a. From the keyboard, type CD, (baud rate #) and press ENTER then type
PU and press ENTER.
b. While in the command mode if a DC1 is received from the RS-232 port,
a PU is assumed by the CNC.

The PU command has two modes of transmission. The first assumes that the
remote device is a “dumb” terminal such as a punch or a teletype. This mode
is initiated by the PU command (with no parameters). The CNC 88 transmits
the NC program as follows:

1) A DC2 control character is sent. Some terminals respond to this by turning


on the tape punch.

2) Approximately 300 NULL characters (leader) are sent next (when punch
tape format is selected). Leader is transmitted only at baud rates 600, 300,
150, and 110.

3) The data portion is then opened with a “%” character followed by LF and
CR characters.

4) The body of the NC program is transmitted next with LF and CR characters


terminating each line.

5) After the NC program, TO and FO commands are output (if selected) to


download the tool and fixture data tables.

6) The data is finally closed with a “%” character followed by LF and CR


characters.

7) The last line sent is the checksum as described in the TA command.

316 Section 14: Communications April 2003


Fadal User Manual

The second mode assumes that the remote device is programmable and is
prepared to receive the NC data in the order described below. This mode is
invoked by the PU,,,1 command. The order is as follows:

1) The CNC 88 sends one null character and waits for a DC1 or DC2 from the
remote device.

2) The remote device then sends a DC1 or DC2 when it is ready to receive
data.

3) The CNC 88 responds with ten lines of data.

4) The remote device must process the data received in step 3.

5) Steps 2 through 4 must be repeated until the end of file is detected. The
end of file is indicated by a line consisting of a single “%” character. All
lines are terminated by LF only.

6) After the end of file, the CNC 88 sends the checksum as described above.

DNC Mode DNC mode is generally used when a program is too big for the memory of the
CNC control. CAD/CAM software usually posts a program too big to fit into the
CNC memory, either the program is sectioned and stored, or it is sent DNC.

DNC mode does not store a program in the control. The control receives
program code via the RS-232 port in blocks. Enough program code is sent to
fill a buffer for the machine tool to perform. Once the machine has performed
the code, it looks to the buffer for more information. When the buffer starts to
empty, the control talks to the units sending the code to refill or keep filling the
buffer so that the machine can have a continuous run. Since the DNC program
does not remain in the control, certain differences to the code are as follows:

a. NO O word program identification numbers are allowed.


b. NO comments are allowed.
c. NO user defined subroutines (L01-L89) are allowed.
d. Fixed subroutines are allowed during DNC.
e. Sequence numbers are optional.
f. The program should be ended with either an M0 or with NO code at all.
g. Macro statements (see Section 18) ARE allowed.

Using FADAL communications software such as Assist, ProSend, or CNC


Memory Manager in the DNC mode, a server program can be accessed by
encoding a drive, path and filename within the program. During DNC the
program lines indicating the path and filenames may NOT have line sequence
numbers.

April 2003 Section 14: Communications 317


Fadal User Manual

EXAMPLE: N1 G0 G90 S3000 M3 E1 X0 Y0


N2 H1 Z.1 M7
C:\ASSIST\CNCDATA\MOLD.CNC
N3 G0 G90 H0 Z0
N4 M0

Note: A % sign is not required in sub program

DNC Protocols The control may use either one of two types of handshaking protocols.

1) DNC, the standard protocol is XON/XOFF.

a. This protocol uses DC1 through DC4 to control data flow.


b. When the machine cannot continue to receive data, or the buffer is full,
the XOFF stop signal is sent. When transmission can resume, the XON
start signal is sent.
c. This protocol is used for normal DNC operations.

2) DNCX, Xmodem protocol is used at a baud rate setting of 9600 baud or


above.

a. X modem protocol sends data in blocks of 128 bytes.


b. After sending each block a CHECKSUM is performed. These blocks are
used to report errors that may occur during transmission.
c. X modem protocol requires the use of the DNCX command during DNC
operations.
d. DNCX must be used with computer software or a device that can send a
file at X modem protocol.
e. DNCX command is available with the 1400-3 processor only.

RS-232-C Interface Data and command input to the CNC is normally via the keyboard on the VMC
Connection pendant. However, the CNC can be instructed to receive its input from the RS-
232-C interface. Likewise, data normally sent to the CRT can also be directed
to the interface. This interface is set up in the data terminal equipment (DTE)
mode per the Electronic Industries Association (EIA) Standard numbered RS-
232-C published by:

Electronic Industries Association


Engineering Department
2001 Eye St. N.W.
Washington, D.C. 20006

318 Section 14: Communications April 2003


Fadal User Manual

Table 1 shows the circuits that are implemented in the CNC’s RS-232-C
interface. In this table, DCE, stands for Data Communication Equipment. The
DCE is normally a telephone modem. If the user wishes to connect a computer
or a data terminal directly to the CNC, it must be determined whether the
device is set up as DTE or DCE.

If the device is DCE, a commercially available 9 wire cable will be satisfactory.


The CNC requires the socket housing (female) connector at its end of the cable.
If the device is DTE, the user must make or buy a modem bypass cable (also
called a null modem).

Two versions of a null modem are shown in tables 2 and 3. Table 2 is for simple
3 wire cabling. Table 3 is for equipment that uses the DTR circuit to indicate
conditions, such as buffer full. This condition requires a brief pause in
transmission from the CNC (see handshaking). If the CNC finds its DSR line low
for more than 1 second it ceases transmission until it is reconnected.

The CNC RS-232-C interface has a programmable baud rate. It can be


changed by use of the CD command (see Section 8, Commands, for more
details). When the CNC is powered on, the initial baud rate is set by the SETP
command. The CNC is set up for Asynchronous Communication only.

The CNC control expects and transmits seven (7) data bits and one (1) stop bit.
For ASCII data, even parity (E) is required, and for EIA-RS-244-B data, odd
parity (O) is required.

FADAL’s Parts Department has RS232C cables and NULL modem cables
available, properly configured for communication with the VMC.

Cable Configuration

Table 1: Cable Configuration

PIN NUMBER DESCRIPTION SIGNAL SOURCE


25 PIN DIN CON- DTE (VMC) DCE
NECTOR (MODEM)
1 Protective Ground (PG)
2 Transmitted Data (TD) X
3 Received Data (RD) X
4 Request To Send (RTS) X
5 Clear To Send (CTS) X
6 Date Set Ready (DSR) X

April 2003 Section 14: Communications 319


Fadal User Manual

Table 1: Cable Configuration

PIN NUMBER DESCRIPTION SIGNAL SOURCE


7 Signal Ground (SG)
8 Received Line Signal Detector X
(RLSD)
20 Data Terminal Ready (DTR) X

IBM-Compatible PC-
Simple DB25 Null RS232 Pinouts for the IBM-compatible PC
Modem Simple DB25 Null Modem
PC DB25 Fadal DB25
connector connector

1 1 To Protective Ground
Transmit 2 2 Transmit
Receive 3 3 Receive
4 4
5 5
6 6
Signal Ground 7 7 Signal Ground
8 8
20 20
22 22

Note: Connect pin one to the shield only at the machine end.

IBM-Compatible PC-
DB9 to DB25 for DTE RS232 Pinouts for the IBM-compatible PC
Equipment-Null DB9 (@PC) to DB25 (@VMC) for DTE Equipment
Modem Not Included PC DB9 COM Fadal DB25
connector connector

Received
Line Signal Detector 1 1 To Protective Ground
Receive 2 2 Transmit
Transmit 3 3 Receive
Data Terminal Ready 4 4 Request to Send
Signal Ground 5 5 Clear to Send
Data Set Ready 6 6 Data Set Ready
Request to Send 7 7 Signal Ground
Clear to Send 8 8 Received Line Signal
Ring Indicator 9 Detector

20 Data Terminal Ready


Note: Null Modem performs 22 Ring Indicator
crossover in this configuration

320 Section 14: Communications April 2003


Fadal User Manual

Note: Connect pin one to the shield only at the machine end.

Macintosh II Mini-8
Connector
RS232 Pinouts for the Macintosh II

MAC Mini8 Fadal DB25


connector connector

1 1 To Protective Ground
2 2 Transmit
Transmit 3 3 Receive
4 4 Request to Send
Receive 5 5 Clear to Send
6 6 Data Set Ready
7 7 Signal Ground
Signal Ground 8 8 Received Line Signal
Detector
Need 10-12 volts from
#3 (red) and #8 (black); 20 Data Terminal Ready
‘Xon/Xoff’ and ‘Strip’
disabled

Note: Connect pin one to the shield only at the machine end.

Macintosh Plus DIN-


9 Connector
RS232 Pinouts for the Macintosh Plus

MAC DIN9 Fadal DB25


connector connector

Frame Ground 1 1 To Protective Ground


2 2 Transmit
Signal Ground 3 3 Receive
4 4 Request to Send
Transmit 5 5 Clear to Send
+12 volts 6 6 Data Set Ready
Clear to Send 7 7 Signal Ground
8 8 Received Line Signal
Receive 9 Detector

20 Data Terminal Ready

Note: Connect pin one to the shield only at the machine end.

April 2003 Section 14: Communications 321


Fadal User Manual

Macintosh Plus DIN-


8 Connector
RS232 Pinouts for the Macintosh Plus

MAC DIN8 Fadal DB25


connector connector

Data Set Ready 1 1 To Protective Ground


2 2 Transmit
3 3 Receive
Signal Ground 4 4 Request to Send
Receive 5 5 Clear to Send
RS-422 6 6 Data Set Ready
7 7 Signal Ground
Receive RS-422 8 8 Received Line Signal
Detector

20 Data Terminal Ready

Note: Connect pin one to the shield only at the machine end.

VMC
Communications
Procedures
VMC Control The first step to any communications is to prepare the VMC control. At the
Parameters ENTER NEXT COMMAND prompt, enter the command CD,# and press ENTER.
This sets the machine baud rate and readies the RS-232 port. Use the
appropriate command for the desired baud rate.

CD,1 = 110 baud


CD,2 = 150 baud
CD,3 = 300 baud
CD,4 = 600 baud
CD,5 = 1200 baud
CD,6 = 2400 baud
CD,7 = 4800 baud
CD,8 = 9600 baud
CD,9 = 19200 baud
CD,10 = 38400 baud
CD,11 = 57600 baud
CD,12 = 115200 baud

322 Section 14: Communications April 2003


Fadal User Manual

Receiving Data /
Programs at the VMC

EXAMPLE: To Receive Data:

CD,6 ENTER This sets the baud rate at 2400 baud

The line feed and echo parameters may also be used with the CD command.
See Section Eight, Commands for detailed information on these parameters.

When a file is to be received at the VMC the TA,1 command is used. This
command is entered after the CD command.

EXAMPLE: The program sent to the control should start and conclude with the “%” sign.

CD,6 ENTER
TA,1 ENTER The VMC is now ready to receive a program

After entering the TA command the control is ready to receive a file. The
program can now be sent to the control from the source device.

Sending Data / When a program is to be transmitted from the VMC to a receiving device, the
Programs from the PU command is used. Prior to using the PU command the receiving device
VMC MUST be ready to receive. Check the device requirements for receiving a file.
When the device is ready to receive, enter the CD and PU commands at the
VMC.

EXAMPLE: To Send Data:

CD,6 ENTER
PU,2 ENTER This transmits the program data only to the receiving device

The use of the PU command parameters may be required for different devices.

Data Options
0 = Currently active program and offsets
1 = Offsets only
2 = Currently active program only
3 = All programs in memory

Code Option
0 = ASCII (Standard)
1 = EIA

April 2003 Section 14: Communications 323


Fadal User Manual

TTY Option
0 = Computer (Standard)
1 = Leader, Program, Trailer (This option is used for tape punches)

After entering the PU command the program is transmitted to the receiving


device.

Device
Communications
Procedures
Computer The procedures described in this section are for generic computer
communications.

The computer MUST be equipped with a serial port (RS-232 port). If a mouse
or pointing device is installed, insure that there is a serial port available for
communications. Identify whether the port is COM1 or COM2. This information
is required for the software being used.

The RS-232 cable MUST be configured for communications. The standard 25-
pin configuration in Table 2 above should be used. This pin configuration may
be achieved by using the FADAL Null Modem cable. Connect the cable(s) from
the VMC to the computer serial port.

The communications parameters must now be set at the computer software.


The software documentation will describe the procedure for setting these
parameters. To communicate with the FADAL VMC use the following parameter
settings:

1) Set the baud rate compatible with the machine (Normally 2400).

2) Even Parity

3) 7 Data Bits

4) 1 Stop Bit

5) XON/XOFF Handshaking In Effect (On)

Some software may have additional parameters. Use the following settings:

6) Strip Line Feeds (No)

7) Code Format (ASCII or EIA)

8) Strip Carriage Returns (No)

324 Section 14: Communications April 2003


Fadal User Manual

9) Echo Keyboard To Screen (Yes)

10) Delay After End Of Line (0.0 seconds)

The VMC and computer are now ready for communications.

Receiving at the VMC:

1) Enter the appropriate CD command at the VMC control.

2) Enter the TA command desired to receive a program at the VMC.

3) Perform the software procedures to transmit the file to the VMC.

4) After receiving the file, press the MANUAL button to return to the command
mode.

Transmitting from the VMC:

1) Enter the appropriate CD command at the VMC control.

2) Prepare the computer to receive a file. See the software documentation for
these procedures.

3) Enter the desired PU command at the VMC control.

4) After receiving the file, press the Manual button to return to the command
mode.

Tape Punch / The procedures outlined in this section are designed for the DSI tape punch
Teletype model LRP300. Procedures for other tape punches or teletypes may vary with
model. Contact your device manufacturer for exact procedures.

This tape reader uses the RS-232 cable for data transfer. The cable MUST be
straight wired. This means that the wire connected to each pin must connect to
the corresponding pin at the opposite end of the cable. The Null Modem is NOT
used for the tape reader or teletype. The RS-232 cable should be attached to
the DSI tape punch at the bottom 25 pin port.

The DSI tape punch switch settings for communication are defined as follows:

OC/L RS-232 RS-232


HIGH/LOW HIGH
FULL/HALF FULL
LINE/LOCAL LOCAL
OFF/REM CTL OFF

April 2003 Section 14: Communications 325


Fadal User Manual

OFF/PRINT PRINT
ON/PUNCH PUNCH

RUN Press to start


Prepare the machine for communications by entering the CD command. Use
the command CD,3 to set the baud rate at 300 baud. This is the baud rate that
the tape punch uses. The machine and the tape punch are now ready for
communications.

Receiving at the VMC:

1) Enter the CD,3 command at the VMC control.

2) Enter the TA command desired to receive a program at the VMC.

3) Load the paper tape into the tape reader or teletype.

4) Press the RUN button to begin the transmission.

5) After receiving the file, press the Manual button to return to the command
mode.

Transmitting from the VMC:

1) Enter the CD,3 command at the VMC control.

2) Press the RUN button on the tape reader to prepare the reader to receive
the file.

3) Enter the desired PU command at the VMC control.


4) After receiving the file, press the MANUAL button to return to the command
mode.

Communications For communication problems several factors must be examined. Review the
Troubleshooting environment, then check the file, the VMC, the cables, the computer, and finally
the computer’s communications software. Any one of these subsystems can
propagate a communication problem.

If, after following these procedures, communications cannot be successfully


carried out, please call FADAL’s its representative’s) Programming Support
department for assistance.

Environment In areas where lightning strikes are common, communications can be


interrupted when or after lightning has struck a power line. The lightning may
affect the memory of the CNC control, which would then have to be zeroed from

326 Section 14: Communications April 2003


Fadal User Manual

the DI mode. It is suggested to call a service person or see the maintenance


manual for this zeroing procedure.

Note: An RS-232 surge suppressor adds protection in this kind of


environment.

File 1) Has the file ever successfully been transmitted to the VMC before? If the file
has been transmitted before, has it recently been edited and has
something been introduced into the file? Use an editor or word processor to
show hidden characters. If hidden characters are present in the file, remove
them.

2) If the file has not been successfully transmitted, use an editor or word
processor to show hidden characters. If hidden characters are present in
the file, remove them.

a. The only accepted characters allowed before the initial percent sign are
DNC, DNCX, or TA,1. In addition, no O words are allowed in DNC mode.

EXAMPLE: DNC
%

b. A two-second dwell is required between the DNC command and the first
percent symbol (%). If the software being used to transmit the program
cannot support this dwell time, remove the DNC, DNCX, or TA,1 com-
mand from the file and type the command at the VMC before starting
file transmission.

3) When a file is posted for a paper tape, or when a paper tape is read and
placed on a disk, it may have leader characters before the initial percent
sign — they need to be removed.

4) If some of the file can be transmitted, but some of it cannot, check for
syntax errors.

a. Examine the area in the file for syntax errors and repair them. For exam-
ple, double motion words or missing words are syntax errors.

EXAMPLE: X1.23 X4.5 Double motion words


-Y2.3 Incorrect placement of - (minus)
.534 No word at all

April 2003 Section 14: Communications 327


Fadal User Manual

Note: Use the TA,1,1 command for program transmission so that the control
will halt transmission and display the line where the syntax error occurs.

5) If a word processor or editor is used to write the program, it must be saved


in a text only format. Some processors will add formatting characters to the
file which will disallow communications.

VMC 1) Check to see if the grounding wires are properly attached.

a. The only proper and acceptable primary ground is a single continuous


copper wire attached from the ground bus in the junction box of the
VMC to the main power box of the building. A green sticker in the junc-
tion box further expounds the grounding requirement. Any other meth-
ods of grounding, such as grounding to the conduit, or to a ground rod,
are not acceptable and will lead to communication problems. See the
Maintenance Manual for grounding procedures.
b. Check to see if the screws attaching the ground wire to the VMC are
tight at both ends.
c. The ground wire of the RS-232 DB25 plug on the inside of the CNC con-
trol cabinet must be attached from the RS-232 port to the inside of the
CNC control cabinet. This wire is attached to pin #1 of the DB25 plug,
and is used to shield the cable at the VMC end ONLY (see Table 2 for
proper pin configuration).

Note: If the paint has not been removed from this area, scrape the paint away
and re-attach the wire.

2) Check the cable from the RS-232 port on the inside of the CNC control
cabinet to the 1030 board.
a. Sometimes this cable will work itself out of the plug. Press the plug into
the board to confirm a good connection.
b. Examine the cable for cuts or kinks and replace it if there is evidence of
damage.

3) For VMCs with a phone modem, make sure that the DB25 plug on the
inside of the CNC control cabinet is NOT plugged into the back of the
modem — if it is, it will interrupt normal communications through the RS-
232 port.

4) Use the test plug to test the 1030 board. The test plug is stored in the
bottom of the CNC control cabinet when the VMC is shipped. It is a DB25
plug with no wires coming from it. On the inside of the plug, pins 2 and 3

328 Section 14: Communications April 2003


Fadal User Manual

are crossed to complete the communications path. Plug the test plug into
the RS-232 port on the outside of the back of the CNC control cabinet.

Use the diagnostics mode to complete the test.

a. Move to the cold start position.


b. From the command mode type DI then press ENTER.
c. Type G0 3000 and press ENTER to enter the test menu.
d. Press 4 to select the RS-232 (1030) test.
e. Select a baud rate (usually the baud rate used in normal communica-
tions).
f. Observe the screen.
• Numbers next to the word TESTING should be changing constantly.
This is good, and the 1030 board has passed the test.
• The numbers at the end of the other sentences should all be zero. Any
numbers appearing at the end of these sentences indicates that the
1030 board is faulty (assuming the cable was checked in step (2)
above).

Note: It has been our experience that the 1030 is rarely faulty.

• If the diagnostics test passes, then it is safe to conclude that the VMC is
not at fault for a communication problem.

g. Press the MANUAL button to end the communication test.


h. Power off the VMC, wait 10 seconds, then power on again.

5) Has the proper baud rate been selected at the VMC?

a. The CD,# command is used to select a baud rate. The MU command


has a list of each baud rate in the menu, or see Section Eight, Com-
mands for the same list.
b. The SETP command, for the VMC parameters, can be used to select a
baud rate as default. The CD,# command will temporarily override the
selection in the SETP parameter page.

Cables 1) Verify that all connections between the communications cable and both the
VMC and the computer are firmly seated, including surge suppressors,
gender changers, and couplers. Pick up the cables and physically confirm
that each connection is properly together.

April 2003 Section 14: Communications 329


Fadal User Manual

• Loose cable connections are one of the most common causes of com-
munication problems.

2) If a switch box is used, determine if the switch is in the proper position.

a. Examine the cable connections to see if they are in the correct ports.
b. Turn the switch handle back and forth a few times. Sometimes the con-
tacts are corroded and turning the handle will temporarily correct the
problem.

• If turning the handle corrects the problem, it is suggested to clean the


contacts or replace the switch box with a new one.

3) If the cable is coiled because the cable is too long, it is suggested to get a
shorter cable. The coiling may cause intermittent problems.Also, the
shorter the cable, the less chance a parity error will occur.

4) Check to see if the cable is draped over fluorescent lights or wrapped


around or connected on the high-voltage line for the power to the VMC or
other machines. This can cause RF noise and inductive voltages on the
cable, and communications will be interrupted from time to time.

a. Welding machines and EDM machines close to the VMC or the cable will
also cause communication problems. These machines also cause RF
noise which interrupts communications.

5) Open the DB25 plugs to see if the solder on the pins has been applied
properly. Cold solder joints for these wires will need to be soldered again.

6) Check to see if the wires are connected to the proper pins. See earlier in
this section for the proper pinout.

• Confirm that, with shielded cable, pin one is connected to the shield at
the VMC side only. Pin one cannot be connected at the computer side.

7) If straight cable is used a null modem is required. A null modem cable can
be purchased from the FADAL Parts Department (part # WIR-0150), or from
any computer store. A null modem is a short portion of cable or ribbon
cable that has pins 2 and 3 crossed. The crossover and the proper jumpers
on each end can be found earlier in this section. If a null modem is used

330 Section 14: Communications April 2003


Fadal User Manual

that was supplied from FADAL, the switch must be in the outward position
away from the cable.

8) Use the mirror plug test as described in step 4 of the VMC section above to
test each section of cable from the VMC to the computer, replacing any
section that fails.

9) What is the length of the cable?

a. The longer the cable the slower the baud rate must be.
b. The faster baud rates may work for the longer cables, but the chance of
losing information increases the faster the baud rate.
c. Try using a slower baud rate, and if this works better, this may be the
best solution. However, this may also indicate an IO port at the com-
puter with low voltage. See the Computer and Computer IO Port sec-
tion on the next page.

Computer and 1) Is the cable plugged into the proper port in the back of the computer?
Computer IO Port
a. Some ports are marked COM or SER — these are the proper ports.
b. If the ports are unmarked, a COM or serial port will be the male gender
port (the port with the exposed pins — the female gender port will have
sockets).

Note: A gender changer plug may be needed if the gender on the cable will
not plug into the proper COM or serial port.

2) Is the port active?

a. Is the cable on the inside of the computer cover attached to the port?
b. Check the voltage across pins 2 and 7 while transmitting a file (use a
file large enough to allow time to check the voltage while the transmis-
sion is in progress). With the positive lead on pin 2 and the negative on
pin 7, the voltage should range between 10 and 12 volts. Any voltage
below 10 volts could result in interrupted communications.

Note: A FLUKE meter (or equivalent) used to measure voltage must be set to
AC to obtain a reading.

3) When the computer was set up, did any interrupts interfere with the
communications port?

April 2003 Section 14: Communications 331


Fadal User Manual

Note: A qualified computer setup person will be able to confirm that the port is
free of other interrupts.

4) If an IBM-compatible computer has a serial mouse, is the mouse plugged


into the proper port?

a. Usually the serial mouse is used in COM1 or serial port one.


• Move the mouse to COM1 and the VMC cable into COM2 and try to
communicate again.
• If the mouse is not to be used during the DNC process, remove the
mouse software commands from the CONFIG.SYS and/or
AUTOEXEC.BAT file(s), and then reboot the computer. (CAUTION: Only
a person familiar with altering these files should perform this operation,
as these files are necessary for startup of an IBM-compatible computer.
Refer to the DOS manual for any questions regarding these files and
how to properly modify them.)

5) Some screen saver software can interrupt communication, change the


baud rate, or transmit an odd hidden character, when the screen saver
starts to display. Remove or disable the screen saver software and try to
communicate again.

6) The quality of the IO board must be considered. Multipurpose IO boards are


usually not recommended. High quality boards dedicated to only IO
functions are recommended. DigiBoard and Quad Tech are examples of
companies which produce high quality IO boards. These boards are
specific to the operating system used by the computer — one board is
used for DOS, another for Windows, and another for micro channel (IBM
PS/2). These boards usually test 12 volts across pins 2 and 7 at the
computer, for the best quality transmission.

Note: A FLUKE meter (or equivalent) used to measure voltage must be set to
AC to obtain a reading.

7) If a network board is installed in the computer, the computer technician


who installed the board must check for conflicting interrupts and IO
addresses.

8) The FADAL Assist software has in its utility menu an RS-232 tester. Use the
mirror plug in the port and follow the instructions on the screen for test
number one.

Software 1) Check the communication parameters in the software.

a. TA, DNC, and PU (using Xon/Xoff)

332 Section 14: Communications April 2003


Fadal User Manual

• Baud rate - This is variable and it must match the baud rate set at the
VMC with the SETP command or with the CD,# command.
• Parity - E (Even)
• Data Bits - 7 (Seven)
• Stop Bits - 1 (One)
• EOB (End Of Block) - CR,LF (ASCII 13,10)
• Starting and ending character - % (ASCII 37)
• Xon/Xoff (Software handshaking) disabled for TA
• Enabled for DNC and PU
• Hardware handshaking - disabled

b. DNCX (using XMODEM)


• Baud rate - This is variable and it must match the baud rate set at the
VMC with the SETP command or with the CD,# command.
• Parity - N (None)
• Data Bits - 8 (Eight)
• Stop Bits - 1 (One)
• EOB (End Of Block) - CR,LF (ASCII 13,10)
• Starting and ending character - % (ASCII 37)
• Packet Data Bytes - 128
• Hardware handshaking - disabled
• For more information, see ‘How to Send a File Using XMODEM for
DNCX’.

2) Use DOS to send a file, bypassing the communications software in the


computer. If this works, the software is in doubt.

a. From the DOS prompt type the following two DOS commands:

Type MODE COM2:2400,E,7,1 MODE port:parity,data bits,stop bits


MODE = DOS command (followed by a space)
port = COM2
: = : (the : is required DOS syntax)
baud = 2400
, = , (the , is required DOS syntax)
parity = EVEN
, = , (the , is required DOS syntax)
data bits = 7
, = , (the , is required DOS syntax)
stop bits = 1

Type TYPE C:\CNCDATA\PN1234.NC>COM2TYPE pathnamefilename>port

April 2003 Section 14: Communications 333


Fadal User Manual

TYPE = DOS command (followed by a space)


pathname = C:\CNCDATA\ substitute the drive-and-directory(ies) where
the file being sent to the
VMC is stored
filename = N1234.NC substitute the name of the file sent to
the VMC
> = > (the > is required DOS syntax to redirect the file to COM2
port = COM2

• Note: Before typing these two lines, the VMC should be in the TA,1
mode ready to receive the program at 2400 baud.
• Refer to the DOS manual for answers to additional questions about the
DOS commands used here.

3) Running DOS-based software from Windows may not work for


communications.

4) Introducing another computer into a situation where communications are


not happening may be useful only if the computer has been proven to work
in other situations. Otherwise the second computer may also have a
problem.

334 Section 14: Communications April 2003


Fadal User Manual

Table 2: Fadal Software Error Codes

04 OUT OF DATA 52 BAD FILE NUMBER


05 ILLEGAL FUNCTION CALL 53 FILE NOT FOUND
06 OVERFLOW 54 BAD FILE MODE
07 OUT OF MEMORY 55 FILE ALREADY OPEN
11 DIVISION BY ZERO 57 DEVICE I/O ERROR
12 ILLEGAL DIRECT 58 FILE ALREADY EXISTS
13 TYPE MISMATCH 61 DISK FULL
14 OUT OF STRING SPACE 62 INPUT PAST END
15 STRING TOO LONG 63 BAD RECORD NUMBER
16 STRING FORMULA TOO COMPLEX 64 BAD FILE NAME
17 CAN’T CONTINUE 67 TOO MANY FILES
18 UNDEFINED USER FUNCTION 68 DEVICE UNAVAILABLE
19 NO RESUME 69 COMMUNICATION BUFFER OVERFLOW
21 UNPRINTABLE ERROR 70 DISK WRITE PROTECTED
22 MISSING OPERAND 71 DISK NOT READY
23 LINE BUFFER OVERFLOW 72 DISK MEDIA ERROR
24 DEVICE TIMEOUT 74 RENAME ACROSS DISKS
25 DEVICE FAULT 75 PATH/FILE ACCESS ERROR
27 OUT OF PAPER 76 PATH NOT FOUND

April 2003 Section 14: Communications 335


Fadal User Manual

Table 3: CNC Main Errors


150 “THE CNC NEEDS TO BE UPGRADED TO USE THIS PROGRAM”
151 ”THIS VERSION OF CNCMAIN IS INCOMPATIBLE WITH YOUR CNC“
152 ”CANNOT ESTABLISH LINK WITH CNC“
153 ”INTERNAL ERROR: “
154 ”CNC WILL NOT RESPOND“
155 ”CANNOT RESPOND TO CNC“
156 ”NO RESPONSE FROM CNC“
157 ”INTERNAL ERROR: R“
158 ”CNC DOES NOT RESPOND“
159 ”OPERATION ABORTED“
160 ”CNC REQUIRES A COLD START“
161 ”NO SUCH STARTING BLOCK“
162 ”SERIAL PORT NOT RESPONDING“
167 ”STARTING BLOCK NOT FOUND“
170 ”TOO MANY RETRIES ON A SINGLE PACKET“
180 ”CANNOT FIND FILE“
181 ”NOT AVAILABLE IN DESKTOP VERSION“

336 Section 14: Communications April 2003


Fadal User Manual

Table 4: Syntax Errors


190 “ALPHA CHARACTER MUST SEPARATED BY NUMBERS”
191 ”DATA INPUT ERROR”
192 ”ILLEGAL CHARACTER”
193 ”ILLEGAL ENDING CHARACTER”
194 ”ILLEGAL STARTING CHARACTER”
195 ”CANNOT FIND NESTED FILE”
196 ”FILES NESTED MORE THAN 3 DEEP”
251 ”THIS PROGRAM REQUIRES A MOUSE”
253 ”THIS PROGRAM REQUIRES A VGA COLOR MONITOR”
254 ”.SYS FILE IS MISSING”
255 ”INCORRECT VERSION OF .SYS FILE”

April 2003 Section 14: Communications 337


Fadal User Manual

This page intentionally left blank.

338 Section 14: Communications April 2003


Fadal User Manual

Section 15: Touch Probes

Touch Probes
Touch Probe - The tool setting probe is used with the UTILITY command to establish the
Length Offset length offset. It can also be used for tool breakage detection and setting tool
diameter offsets. The UTILITY command is used to set diameter and locate the
length offset. Enter the command UT and the following menu appears:

Figure 15-1 Utility Options Menu

Tool Setting Cycle The utility command provides two basic functions to aid in the setup procedure.
The first function steps the operator through the process of retrieving tools
from the turret, entering the diameters and locating the length offsets.

April 2003 Section 15: Touch Probes 339


Fadal User Manual

After selecting this cycle the CNC displays the following menu:

Figure 15-2 Tool Setting Cycle Menu

The information regarding the current tool in the spindle is displayed and the
CNC prompts the user for the starting tool number. After entering the first tool
number, the CNC responds with the message:

Figure 15-3 Starting Tool Number Prompt

Respond by entering the last tool number to be set.

340 Section 15: Touch Probes April 2003


Fadal User Manual

The following menu appears after the starting and ending tool numbers are
defined:

Figure 15-4 Tool Setting Options Menu

Option 1=Jog to This option is used for locating the tool length offset by using the JOG function
Position of the CNC. The CNC prompts the operator to press the JOG key and manually
move to the gauge point instead of the automatic process using the probe.

Option 2 & 3 - Probe The CNC allows for two probe mounting positions. The left or right orientation is
Mount defined as standing in front of the machine, looking Y+ direction.
LEFT RIGHT
MOUNT MOUNT

Y+

X+

Figure 15-5 Probe Mounting Positions

Selecting left or right mount determines the X axis shift direction when locating
the tool length of an end mill. The left mount probe shifts the X axis in the
positive direction before moving Z down. The right mount shifts the X axis in the
negative direction before moving Z down.

April 2003 Section 15: Touch Probes 341


Fadal User Manual

Probe Fixture Offset Once the probe is installed, a fixture offset can be dedicated to tool setting. The
Number (0, 1-48) X and Y fixture offset value is the location of the center of the tool setter stylus
relative to the HOME position.

Y AMOUNT X AMOUNT

HOME
Figure 15-6 Probe Fixture Offset Number

Respond with 0 to ignore this feature or enter the fixture offset number.

Probe Offsets
Z Fixture Offsets
GAGE POINT

Z- AMOUNT
Z OFFSET

Figure 15-7 Z Fixture Offsets

342 Section 15: Touch Probes April 2003


Fadal User Manual

After selecting a fixture offset the CNC displays the current X, Y, and Z values
and prompts the user with the following message:

Figure 15-8 Z Fixture Offset Message

Respond by pressing the Y key and begin the process of establishing the Z
fixture offset. Then press the N key and the CNC continues the setup procedure
using the current Z value.

When a fixture offset is selected, the Z fixture offset value is subtracted from
the current touch position when determining the length offset. A positive value
increases and a negative value shortens the length offset.

After selecting a fixture offset, the CNC moves X and Y axes to the fixture offset,
loads the first tool, and begins the tool setting process by displaying the
following menu:

Figure 15-9 Tool Setting Options Menu

April 2003 Section 15: Touch Probes 343


Fadal User Manual

If the program requires the diameter or the tool is an end mill, the operator
selects function 1 and enters the diameter. Select function 2 to begin locating
the length offset.

Locating Length The CNC displays the message:


Using the JOG
Function PRESS JOG AND MOVE TO HEIGHT BLOCK OR PRESS MANUAL TO EXIT

The operator then presses the JOG key and moves the tool to the desired offset
position. When the tool is at the desired location press the MANUAL key.

Locating Length Selecting function 2 causes the CNC to move the tool down in one of two ways:
Using the Probe
1) If a diameter is entered, the X axis shifts the radius amount, spins the tool
backwards, then locates the length.

2) Specifying a zero tool diameter causes the CNC to move the Z down without
shifting the X axis or spinning the tool.

The CNC performs the following actions for locating the length of an end mill:

a. Spindle ON reverse at 100 RPM


b. X axis is shifted the radius of the tool
c. Z axis down until initial touch
d. Z axis is raised .010"
e. Spindle speed is increased to 500 RPM
f. Z axis down until final touch
g. Spindle off, length offset is stored
h. Z axis returned to COLD START
i. X axis shift position returned

344 Section 15: Touch Probes April 2003


Fadal User Manual

After locating the length by either the JOG or PROBE method, the CNC
automatically performs a tool change to get the next tool and displays the
following menu:

Figure 15-10 Tool Setting Options Menu

The process is repeated until the last tool has been set.

Tool Breakage Tool breakage detection is achieved by a two step process as follows:
Detection
1) The CNC is programmed to touch the probe. The tool touch is programmed
as a normal program operation except using the G31 P1 code. The G31 is
used to stop probe motion. When coded with axis motion, the motion
terminates with the probe touch.

2) The L9101 R1+6. code is used to perform the touch check. After
performing the touch check, the CNC aborts the program if the tool did not
touch, otherwise the program continues.

EXAMPLE: Breakage detection for a .25" diameter drill.

N1 G0 G90 E24 X0 Y-.5


N2 H2 Z-.1 M65
N3 G1 G31 Y0 F25. P1
N4 L9101 R1+6.

April 2003 Section 15: Touch Probes 345


Fadal User Manual

Z+

Y+
X0, Y0, E24

X+
.100

CLEARANCE
POSITION VIEW Y+

Figure 15-11 Clearance Position & Touch Probe Selection

N1 moves X and Y to the clearance position (Left Figure Above).

N2 moves the tool .100 below the top of the probe (Right Figure Above) and
selects the Touch probe.

N3 moves the tool to the center of the probe. Because the block contains the
G31 code, the CNC stops moving as soon as the tool touches the probe. The P
word used in combination with the G31 causes the CNC to store the touch
location.

N4 verifies the previous point (P1) has been interrupted by the probe. A broken
tool causes the move to go to completion (without a touch) and abort the
operation. See PROBE L9101 FUNCTIONS in this section.

346 Section 15: Touch Probes April 2003


Fadal User Manual

Touch Probe - Tool The tool diameter offset is achieved by a two step process as follows:
Diameter Offset
1) The CNC is programmed to touch the probe at two points.

2) The L9101 R1+8. code is used to perform the calculation.

EXAMPLE: After the length offset has been located, the following program is used to
establish the diameter of a 1/2" end mill.

N1 G0 G90 S500 M4 E24 X0 Y-.5 (.200+.25+.05


N2 H1 Z-.1 M65
N3 G1 G31 Y0 F5. P1
N4 G0 Z.1
N5 Y.5
N6 Z-.1
N7 G1 G31 Y0 P2
N8 L9101 R1+8. R2+.4 D1

N1: The E24 shifts the XY zero to the center and the Z zero to the top of the
stylus. The X0 moves to the center of the stylus. The Y-.5 moves to a clearance
position, calculated as follows:

1/2 the width of the stylus: .200

1/2 the approximate tool diameter: .250

Clearance: .050

N2: moves the tip of the tool .100" below the top of the stylus while spinning
the tool backwards at 500 RPM.

N3: moves to touch point 1.

N4: moves Z .100 above the stylus.

N5: moves to a clearance position in preparation for the next touch.

N6: moves Z below the top of the stylus.

N7: moves to touch point 2.

N8: performs the diameter calculation.

April 2003 Section 15: Touch Probes 347


Fadal User Manual

The stylus width is specified by R2. The D word specifies the diameter is to be
stored as offset 1 in the tool table.

General Rules to 1) Start the program by selecting the probe. M64 selects the MP Series
Follow: MP Series probe, M65 selects the TS Series probe.
Probe
2) A move with the G31 must be a linear (G1) move.

3) No other codes are allowed with the G31 except G1, P# (Point Number),
and feed rates.

4) The Probe functions may only use three points for each calculation, P1, P2,
and P3.

5) The probing is to be in the absolute mode (G90).

6) CRC, Mirror Image, Rotation and Drill Cycles are not allowed during the
execution of the G31 code.

Locating the Points There are two procedures available to locate and store the points:

1) Using the G31 P# codes.

2) Using function 1 of the L9101 fixed subroutine.

G31 Probe Touch The G31 is only used in conjunction with a probe. This code causes the
Function machine to stop motion when the probe is touched and then execution
continues at the next line in the program. The G31 can be used with table or
spindle probes (See also G31.1).

The motion can be defined in absolute or incremental terms. The positions can
be stored with a P word, a macro V variable, and output through the RS232
port. All G31 moves must be G1 linear moves. No G0, G2, or G3 moves are
allowed.

• Rotation can be in effect when the G31 is used.


• CRC should not be in effect when G31 is used.
• Mirrored axes should be canceled before using the G31 code.
• Fixed cycles need to be canceled before using the probe.

Note: Program a move that would normally be excessive. For example, if a


one inch move is required to get the probe up to a wall, use a two inch
move in the program. The probe will stop the motion, and whatever motion
is remaining, for that line, will be discarded and the control will continue
execution of the program at the next line.

348 Section 15: Touch Probes April 2003


Fadal User Manual

Expect some over travel if the feed rate used with the move is high, and also if
the stylus in the probe is long. A method for accuracy would be to use the G31
and the G31.1 codes together. Use the G31 at a high feed rate to get up to the
wall. With the high feed rate, the stylus is angled and over the edge because of
the time required to read the probe and stop the motion. Then reverse the
motion to move away from the wall with the G31.1 code in the line. Do this at a
slow feed rate. At F1. the motion is slow enough that it will usually stop within
one tenth. The G31.1 will stop motion when the probe is not touching. This
means that the stylus will be perpendicular to the table and directly at the edge
of the wall when the probe is not touching.

If the stylus is not running true, or a chip is in the spindle, the probe will not
give a true position reading. For consistency use an M19 to orient and lock the
spindle at the same position each time the probe inserted in the spindle. If an
operator is to place the probe in the spindle by hand, orient the spindle prior to
inserting it in the spindle. Sometimes the stylus will work itself loose, confirm
that it is tightly screwed in before using the probe.

Storing Probed Saving positions through the RS-232 port:


Positions
1) Any software designed to save data from the port will be sufficient to retain
the data.

2) When a touch is made, the motion will stop and the current position wIll be
outputted through the port.

G1 G31 X1. F50. This line sends just the X axis location to the port
G1 G31 X2. Y5. F50. This line sends the X and Y locations to the port
G1 G31 X3. Y-4. Z-2. F50. This line sends the X, Y, and Z locations to the port

3) Macro SPRINT statements can be used just before the probe line to identify
the information being saved

#SPRINT “PROBE TOUCH #1:” G1 X1. Y1. G31

EXAMPLE: Saving Positions to P Words:

April 2003 Section 15: Touch Probes 349


Fadal User Manual

1) P1, P2, and P3 are used to save the touch positions when the fixed probe
subroutines are going to be used in the program.

G1 X3. Y-6. G31 P1 The first touch position is saved to P1


X0 Y0 G5
G1 X0 Y6. G31 P2 The second touch position is saved to P2
X0 Y0 G5
G1 X-3. Y-6. G31 P3 The third touch position is saved to P3
L9101 R1+2. Use probe fixed subroutine function #2 to find center

2) P1, P2, and P3 can be used with the macro PX1-3, PY1-3, PZ1-3, PA1-3,
and PB1-3 variables. When a probe touch (G31) or probe no-touch (G31.1)
is used on a line with a P1, P2, or P3 each axis position is stored regardless
of the axis that moved to get the touch point.

G90 G0 X3. Y-6.


Z1. H21
G1 F30. G31 Z-2.
F1. Z0 G31.1 P1 P1 has stored the XYZAB position at this line
#V1=PZ1
#PRINT “THE TOUCH POINT IS: X”,PX1,", Y",PY1,", AND Z",PZ1

EXAMPLE: Saving the Position as a V Variable:

1) The current position can be saved to a V variable by using a macro AX, AY,
AZ, AA, or AB command.
G90 G1 X4. Y4. G31 F50.
X0 Y0 G31.1 F1.
#V1=AX This saves the X position to V1#V2=AY This saves the Y position to V2

G31.1 Probe No This code causes the machine to stop motion when the probe is not touching
Touch Function and then execution continues at the next line in the program. The G31.1 can be
used with table or spindle probes. This code functions exactly like the G31
code. See also G31.

Using G31 During the probing function, the CNC is programmed as normal. Programming
a G31 with an axis move causes the CNC to monitor the probe interface and
stop all motion in the event of a touch.

The CNC stores three touch points in memory. Coding a P1, P2, or P3 in the
same block with the G31 designates the touch point to stored. This code also
sends the touch or no touch data to the RS-232 serial port.

350 Section 15: Touch Probes April 2003


Fadal User Manual

EXAMPLE: G1 G31 F25. X10. P1


Moves the X axis until the probe touches or the move is completed

EXAMPLE: If the Probe Touches:

The axis motion stops, the X, Y, Z, A, B locations are stored as point 1 and the
program continues.

EXAMPLE: If the Probe Doesn’t Touch:

The CNC stores a value of .100E9 (to signify no touch) as the X location of point
#1 and continues the program.

The following example shows how to locate three points inside a 3" diameter
hole. The approximate center is at X0 and Y0. The Z0 is at the top of the
diameter.
Y+ 90˚ POINT 1
PUNKT

X+

225˚ 315˚

POINT 2
PUNKT POINT 3
PUNKT
Figure 15-12 Locating Points

N1 M6 T1 (LOAD THE PROBE


N2 G0 G90 X0 Y0 (POSITION TO THE APPROX. CENTER
N3 Z-.25 H1 M64 (MOVE TIP .25 BELOW TOP OF PART
N4 G1 G31 P1 F25. Y1.8 (FIRST POINT
N5 F150. Y0 (MOVE OFF PART AND RETURN
N6 G31 P2 F25. X-1.273 Y-1.273 (APPROACH AT 225 DEGREES
N7 F150. X0 Y0 (MOVE OFF PART AND RETURN
N8 G31 P3 F25. X+1.273 Y-1.273 (APPROACH AT 315 DEGREES
N9 F150. X0 Y0 (MOVE OFF PART AND RETURN

April 2003 Section 15: Touch Probes 351


Fadal User Manual

Note: After performing a G31 touch, before another G31 is programmed, the
probe must be moved off the part as in N5 and N7 above.

L9101 Probe The L9101 fixed subroutine has 10 probe functions available:
Functions
1) LOCATE TOUCH POINT

2) CENTER LOCATION AND RADIUS

3) PART ORIENTATION

4) MID-POINT AND ANGLE

5) Z DATUM LOCATION

6) TOOL BREAKAGE DETECTION

7) TOUCH/POSITION CHECK

8) COMPUTE DIAMETER

9) SET PROBE CALIBRATION

10) SET TOUCH POINT

The code L9101 is used to call a probe function, the R word R1 selects the
specific function. For example: L9101 R1+2. Selects function #2 - CENTER
LOCATION AND RADIUS.

Upon completion of the L9101, the R words R1-R3 contain the results. The R
words can then be used as indirect references throughout the remainder of the
program.

The touch points are retained in memory until power is removed, thus making it
possible to do a mid-program start after the points have been located. As in
circular motion, the G17, G18, and G19 modes determine the output of the
L9101 subroutine. G17= XY, G18= ZX, and G19= YZ.

For example, use function 2 to compute the center location of 3 points. The
logical X is returned in R1. When G18 is in effect, R1 contains the physical Z
center location.

352 Section 15: Touch Probes April 2003


Fadal User Manual

The probing process is designed to be used as a three step process:

1) Locate the points.

2) Use fixed subroutine L9101 to perform the calculations.

3) Continue the program using the R words returned by step 2.

Locate Touch Point Function #1: Locates Touch Point

Coding: L9101 R1+1. X, Y or Z moves, Approach/Return Feed


P1, P2 or P3 define point number
Result: Stores Location Specified By P word
R1= Logical X Touch, R2= Logical Y Touch

Moves to locate a touch point, apply the probe correction and return to the
starting position. This function uses a two touch process. The first touch
locates the initial point, the second touch is performed at a slow feed rate for
best accuracy.

EXAMPLE: Example Coding:

L9101 R1+1. X1. Y1. F50. P1


Generates the following incremental motion:
X1. Y1. F50. G31 G1 (INITIAL TOUCH
X.0035 Y.0035 F10. (OVER TRAVEL PROBE SWITCH
X-.0707 Y-.0707 F10. G31.1 (MOVES UNTIL NO TOUCH
X-.0035 Y-.0035 F10. (MOVES OFF .005 MORE
X.0707 Y.0707 F.5 G31 P1 (FINAL TOUCH

April 2003 Section 15: Touch Probes 353


Fadal User Manual

The following program uses function 1 to locate the 3 points of a circle, instead
of G31 as in the previous example.

Y+ 90˚ POINT 1
PUNKT

X+

225˚ 315˚

PUNKT
POINT 2 POINT 3
PUNKT

Figure 15-13 Point Location with Function 1

N1 M6 T1 (LOAD THE PROBE


N2 G0 G90 X0 Y0 (POSITION TO APPROX. CENTER
X-1. Y-1. F50. G1 (RETURN TO START POSITION
N3 Z-.25 H1 M64 (MOVE .25 BELOW TOP OF PART
N4 L9101 R1+1. P1 F25. Y1.8 (FIRST POINT
N5 L9101 R1+1. P2 F25. X-1.273 Y-1.273 (APPROACH AT 225 DEGREES
N6 L9101 R1+1. P3 F25. X+1.273 Y-1.273 (APPROACH AT 315 DEGREES

Compute Center and Function #2: Compute Center Location and Radius
Radius
Coding: L9101 R1+2.
Points Used: P1, P2, P3
Results: R1= Logical X, R2= Logical Y, R3= Radius

This function computes the center location and radius relative to the three
touch points. The X center position is returned in R1, the Y center position
returned in R2. and the radius returned in R3. This function may be used with
the ID or OD of a circle. The following is a sample program to locate a center

354 Section 15: Touch Probes April 2003


Fadal User Manual

and perform a drilling operation at the center of the circle, using the ID of the
circle:

P1
? ?
P1
P3 P3

P2 P2

Figure 15-14 Circle Center Location

N1 M6 T1 (LOAD PROBE
N2 G0 G90 X6. Y0. (POSITION TO CENTER
N3 Z-.25 H1 M64 (POSITION Z
N4 L9101 R1+1. X5. Y1. F25. P1 (LOCATE POINT 1
N5 L9101 R1+1. X5. Y-1. F25. P2 (LOCATE POINT 2
N6 L9101 R1+1. X7. Y-1. F25. P3 (LOCATE POINT 3
N7 L9101 R1+2. (COMPUTE CENTER
N8 M6 T2 (LOAD DRILL
N9 G0 X+R1 Y+R2 (POSITION TO CENTER
N10 H2 Z.1 (BEGIN DRILLING OPERATION
N11 G1 F10 Z-2.0

April 2003 Section 15: Touch Probes 355


Fadal User Manual

Part Orientation Function #3: Part Orientation

Coding: L9101, R1+3., R2= Expected Angle from P2 to P3


Points Used: P1, P2, P3
Results: R1= Logical X, R2= Logical Y, R3= Angular Error

90˚ P3

P2
P1

Figure 15-15 Intersection Point & Angular Correction

This function computes the location of the intersection point and angular
correction needed for program rotation. The computed intersection point
assumes P1 has a 90 degree relationship to the line created from P2 to P3.

90˚
0˚ P3

P2 P3 P2

P2

P3 180˚
P3 P2
270˚

Figure 15-16 Expected Angle Changes

The expected angle is related to the touch surface. The examples above
illustrate how the expected angle changes, depending upon how P2 and P3
touch the part.

356 Section 15: Touch Probes April 2003


Fadal User Manual

The angle is coded in decimal degrees, 0 degrees starts at the X+ direction and
increases in the counterclockwise direction.

PROGRAMMED ANGLE
PROGRAMMIERT
90˚
125˚

TATSÄCHLICH
ACTUAL ANGLE

P3
P3

P2
P2

Figure 15-17 Programmed Angle P2 to P3

The angular error returned in R3 is the result of subtracting the expected angle
from the probed angle (P2 to P3). This angle (R3) becomes the angular
correction needed for program coordinate rotation (G68). The sample above
shows the programmed angle from P2 to P3 to be 90 degrees. The angle
necessary for program rotation would then be 35 degrees if the actual angle is
125 degrees.

1.0 2.0 1.0

2.0
P1

P3
P2 5˚
ROTATION CENTER

Figure 15-18 Sample Program to Drill Two Holes in a Part

The example above is a sample program to drill two holes in a part. The
program XY zero position is approximately the lower left corner of part.

The probe stylus is a .25" diameter.

April 2003 Section 15: Touch Probes 357


Fadal User Manual

N1 M6 T1(LOAD PROBE
N2 G0 X-.5 Y1. (CLEARANCE POSITION FOR POINT 1
N3 Z-1.0 H1 M64
N4 L9101 R1+1. X.5 F25. P1 (MOVE TO TOUCH POINT 1
N5 Z0 G0
N6 X1.0 Y-.5 (CLEARANCE POSITION FOR POINT 2
N7 Z-1.0
N8 L9101 R1+1. Y.5 F25. P2 (MOVE TO TOUCH POINT 2
N9 G0 Z-1.0
N10 X5.0 Y-.5 (CLEARANCE POSITION FOR POINT 3
N11 Z-1.0
N12 L9101 R1+1. Y.5 F25. P3 (MOVE TO TOUCH POINT 3
N13 L9101 R1+3. R2+0 (CALCULATE PART ORIENTATION
N14 G90 G0 H0 Z0
N15 M6 T2 (LOAD DRILL
N16 G90 G0 X+R1 Y+R2 S10000 M3 (MOVE TO INTERSECTION POINT
N17 G92 X0 Y0 (SET ABSOLUTE LOCATION
N18 G68 R0+R3 X0 Y0 (SET ROTATION
N19 Z.1 H1 M8
N20 G81 G99 Z-1.0 R0+.05 F50. X1.125 Y1.125 (DRILL CYCLE
N21 X3.125 (DRILL SECOND HOLE
N22 G69 G80

.125

.125

X+R1
Y+R2
Figure 15-19 CNC Movement to Corner

After probing the part and establishing the rotation, programming X.125 Y.125
causes the CNC to move the center of the tool to the corner of the part.

358 Section 15: Touch Probes April 2003


Fadal User Manual

Mid-Point and Angle Function #4: Mid-Point and Angle

Coding: L9101, R1+4., R2= Expected Angle


Points Used: P1, P2
Results: R1= Logical X, R2= Logical Y, R3= Angular Error

P2

P1

Figure 15-20 Mid-Point and Angle

This function computes the location of the point between P1 and P2 and the
angular correction needed for program rotation. The angular error is
determined the same as function 3 - PART ORIENTATION previously described.

The following are two examples using this function:

P2
P1

Figure 15-21 Part with Unknown Rotation

April 2003 Section 15: Touch Probes 359


Fadal User Manual

The example above shows a part having an unknown rotation. After using this
function, the R3 contains the angular correction needed for rotation.

UNKNOWN

P1 P2

1/2
Figure 15-22 Part with Unknown Width

The example above shows a part having an unknown width. After using this
function, the R1 contains the location of the midpoint.

Z Datum Location Function #5: Z Datum Location

Coding: L9101, R1+5., Optional Z Modifier


Points Used: P1
Results: R1= Distance From Length Offset Position To Z Datum
PROBE STYLUS

UNKNOWN
UNBEKANNT
KNOWN
BEKANNT

PART

FIXTURE

Figure 15-23 Z Datum Location

360 Section 15: Touch Probes April 2003


Fadal User Manual

This function is used to calculate the distance between an unknown surface


and the gauge point (Tool Length Offset Position).

The procedure is as follows:

1) Setup: A length offset is set for the probe as a normal tool.

2) Programming:

a. The probe is moved to the gauge point using the H word.


b. The Z touch for P1 is found using G31 or function 1 of L9101.
c. Function 5 is used to calculate the distance.
d. The R1 is referenced as the distance to the surface.

The following example shows how to locate the top surface and remove .010":

N1 M6 T1 (LOAD PROBE
N2 H1 M64 (MOVE TO OFFSET, SELECT MP8 PROBE
N3 G1 G31 F25. Z-30. P1 (LOCATE P1
N4 L9101 R1+5. Z-.010 (CALCULATE, ADD -.01
N5 M6 T2 (LOAD END MILL
N6 M3 S10000 (SPINDLE ON
N7 Z+R1 H2 (POSITION Z
N8 G1 F100. X10. (MACHINE .010 OFF TOP

Block 7 above positions the Z axis .01 below the touch position. Another
method available is to use the G92 preset code as follows:

N6 M3 S10000 (SPINDLE ON
N7 H2 (POSITION Z
N8 G92 Z-R1 (PRESET ABS. Z LOCATION
N9 Z0
N10 G1 F100. X10. (MACHINE .010 OFF TOP

Using the G92 code allows the absolute Z location to be relative to the touch
position for the remainder of the program.

When machining multiple parts, the Z datum can be stored as a fixture offset
using G10 L02 Z-R1 P#.

April 2003 Section 15: Touch Probes 361


Fadal User Manual

Tool Breakage Function #6: Tool Breakage Detection


Detection
Coding: L9101, R1+6.
Points Used: P1
Results: A No Touch Causes The CNC Program To Stop

CONTACT NO CONTACT
KONTAKT KEIN KONTAKT
Figure 15-24 Tool Breakage Detection

This function is used to check if P1 had a successful Y or Z touch position


stored. A block containing a G31, P1 with a move that doesn’t touch the tool
setting probe causes the CNC to store a value to signify a touch was not made.

See “USING THE TOUCH PROBE - TOOL BREAKAGE DETECTION” previously


described.

Touch Check, Function #7: Touch Check, Position Check


Position Check
Coding:
Touch Check: L9101, R1+7., R2= False #, R3= True #
Position Check: L9101, R1+7., R2= False #, R3= True #
R4= Approach Direction, X, Y, Z, A or B # Points Used: P1
Results: R2= True # or False #

362 Section 15: Touch Probes April 2003


Fadal User Manual

The following diagram describes this function:

Figure 15-25 Touch Check, Position Check

An X, Y, Z, A, or B dimension word included with the L9101 block is used for


the position check. Motion will not occur; the CNC uses the axis word only for
the position check. The R4 indicates approach direction; R4+1.= Positive, R4-
1.= Negative.

EXAMPLE: L9101 R1+7. R2+10. R3+20. R4-1. Y-2.5

1) Approaching negative with a touch at Y-3.0 returns R2 with a value of 20.

2) Approaching negative with a touch at Y+1.0 returns R2 with a value of 10.

April 2003 Section 15: Touch Probes 363


Fadal User Manual

True or False Function #7: Continued


Comparison
Coding:
Touch Check: L9101, R1+7., R2= False #, R3= True #
Position Check: L9101, R1+7., R2= False #, R3= True #
R4= Approach Direction, X, Y, Z, A or B # Points Used: P1
Results: R2=True # or False #

Using the True/False response to redirect the program allows for numerous
capabilities. The following is an example how the program operation changes
according to the touch position:
ENDE

TOUCH POINT AFTER


BERÜHRUNG NACH 5"

P1
Y 5.0"
POSITIVE APPROACH
ANNÄHERUNG DIRECTION
POSITIV

FINISH

TOUCH POINT AFTER


BERÜHRUNG NACH 5"

Y 5.0"

Y P1
POSITIVE APPROACH
ANNÄHERUNG DIRECTION
POSITIV

X
Figure 15-26 True/False Comparison

N1 M6 T1 (LOAD PROBE
N2 G0 G90 X0 Y0 (POSITION XY
N3 Z-1.0 H2 M64 (POSITION Z, SELECT MP8
N4 G1 G31 Y10. F25. P1 (MOVE TO TOUCH
N5 L9101 Y5.0 R1+7. R2+8. R3+11. R4+1. (COMPARE POSITION
N6 M6 T2 (LOAD TOOL
N7 M99 P+R2 (“AT” or “PAST”= N11,BEFORE =
N8 G10 L12 P2 R0+.55 (SET DIAMETER FOR ROUGHING
N9 F25.0 (SET ROUGHING FEED RATE
N10 M98 P1 (CALL SUB. TO MACHINE PART
N11 G10 L12 P2 R0+.5 (SET DIAMETER FOR FINISHING
N12 F50.0 (SET FINISH FEED RATE
N13 M98 P1 (CALL SUB. TO MACHINE PART

364 Section 15: Touch Probes April 2003


Fadal User Manual

This example finds a touch point and begins the finishing operation at N11
when the Y touch position is “AT” or “PAST” the Y+5", otherwise the roughing
operation is performed.

Calculate Diameter Function #8: Calculate Diameter

Coding: L9101, R1+8., R2= Stylus Width


D#= Offset Number (Optional)
Points Used: “Y” of P1 and “Y” of P2
Results: R1= Tool Diameter/Radius
Logical X of P1= Tool Diameter/Radius

This function performs the diameter/radius calculation. The value returned


depends on the selection made using the SETP command. When the machine
is in the DIAMETER mode the result is diameter, otherwise radius is returned.
Specifying a D word in the block with L9101 causes the CNC to store the value
in the tool offset table.

The X of P1 contains the result of the calculation. This enables function 7 to


perform a Position Check. See USING THE TOUCH PROBE - TOOL DIAMETER
OFFSET previously described.

Set Calibration Function #9: Set Probe Calibration

Coding: L9101, R1+9., R2= Radial Over travel


X, Y or Z= Shift Amount
Points Used: None
Results: Used With Function #1

This function establishes the probe compensation. The L9101 Function 1 uses
these values when present for error correction. In most cases this function is
not needed because most tolerances are greater than the probe errors.

XY Shift Error The shift error is the difference between the center of the spindle and the
center of the probe. The probe has an adjustment to align the centers. The
CNC XY shift capability allows another method to compensate for the error.

Radial Over Travel Before the probe indicates a touch, the stylus must touch the surface and open
the contacts inside the probe. This causes a slight over travel error. This probe
error varies with the length of the stylus. For example, an over travel error of
approximately .0012" occurs with a 2" stylus length. The error increases to
.0043" with a 7" stylus length. Applying over travel correction improves the 2"
stylus error to +-.0004" and the 7" stylus error to +-.0012.

April 2003 Section 15: Touch Probes 365


Fadal User Manual

When locating the center of a circle, the over travel of the probe doesn’t change
the computed center location. The radius of the circle appears larger when
inside a hole and smaller when outside a boss.

MP8 Probe 1) Mount an inspection ring on the table.


Calibration
2) Set the XY home position at the center of the ring.

3) Install the probe and run the following program:

N1 M64 G1 G90 Z-??(MOVE Z INSIDE RING


N2 L9101 R1+1. Y5.0 F25. P1
N3 L9101 R1+1. X-4.33 Y-2.5 F25. P2(TOUCH 120 DEG. APART
N4 L9101 R1+1. X+4.33 Y-2.5 F25. P3
N5 L9101 R1+2.(COMPUTE CENTER

4) Enter the command; SUM

Function #9: Continued

Coding: L9101, R1+9., R2= Radial Over Travel


X, Y or Z= Shift Amount
Points Used: None
Results: Used With Function #1

After entering the SUM command the CNC displays the point data, R words,
points used and the probe correction setting as follows:

P1=0,0,0,0,0,0,0,0,0
P2=0,0,0,0,0,0,0,0,0
P3=0,0,0,0,0,0,0,0,0
R WORDS R0-R9
0,0,0,0,0,0,0,0,0,0
POINTS USED X Y

The point values are displayed in the axis order of P1=X, Y, Z, U, V, W, A, B, C.

The R values are displayed in ascending numerical as R0, R1, R2, R3, R4, R5,
R6, R7, R8, R9.

Entering XY Shift The negative values of R1 and R2 are used for the shift values. R1 becomes the
Values X shift and R2 becomes the Y shift.

366 Section 15: Touch Probes April 2003


Fadal User Manual

EXAMPLE: The probe indicates the center location to be at X.001 and Y.002 after
performing the calibration. The compensation is entered as L9101 R1+9.R2+
X-.001 Y-.002

Entering Radial Over After the ring gauge test, R2 contains the effective radius. The amount entered
Travel for compensation is computed by subtracting the effective radius from the
apparent radius.

EXAMPLE: Ring Gauge Radius= 1.500" Stylus Radius= .125"


Apparent Radius= 1.375" Effective Radius= 1.378
1.375 - 1.378 = -.003 (Correction Needed)
The XY shift and radial correction is entered as:
L9101 R1+9. R2-.003 X-.001 Y-.002

The correction is entered in the program before L9101 function 1 is used.

Set Counter Function #10: Set Counter

Coding: L9101, R1+10., P1= Increments the counter


by 1 X = Sets the counter starting number
Points Used: None
Results: Used With Function #7 to create IF - Then statement

This function is used to create an IF - Then statement for program redirection.


The examples below use this function to perform G52 program shifts for
multiple part programming.

%
N1O101 (SUB FOR PART MACHINING
N2G1G90F250.
N4X1.
N5Y1.
N6X0
N7Y0
N8M99
N1O9110 (IF THEN PROGRAM REDIRECTION EXAMPLE
N2L100 (SUB TO SHIFT THEN MOVE
N3G52X+R8Y+R7 (LOCAL COORDINATE SYSTEM
N4M98P101 (INPUT SUB PROGRAM NUMBER
N5M17
N6M30
N7R9+0R8+0R7+0 (ASSIGN R VARIABLES
N8L101

April 2003 Section 15: Touch Probes 367


Fadal User Manual

N9G91G10L109P1 (INCREMENT X COUNT BY +1


N10G90
N11G91G10L108P2 (INCREMENT X STEP BY +2
N12G90
N13L9101R1+10.X+R9P1 (SETS THE X VALUE TO COUNT
N14L9101R1+7.X3.R2+24.R3+16.R4+1. (IF COUNT IS X OR HIGHER
N15M99P+R2 (GOTO R3 ELSE GOTO R2
N16G91G10L107P-2 (INCREMENT Y STEP BY -2
N17G90
N18L9101R1+10.Y+R7P1 (SETS THE Y VALUE TO COUNT
N19L9101R1+7.Y-5.R2+21.R3+25.R4-1. (IF COUNT IS Y OR HIGHER
N20M99P+R2 (GOTO R2 ELSE GOTO R3
N21R8+0 (ASSIGN VARIABLES
N22G52X0Y+R7 (MOVE TO X0 Y(R7 VALUE)
N23R9+0 (ASSIGN R VARIABLE
N24M99P8 (GOTO LINE #8
N25M5M9
N26M2

Set Touch Point Function #10: Set Touch Point

Coding: L9101, R1+10.,X, Y, Z, P


X, Y, AND Z = Location of point
Points Used: None
Results: The P word identified by the X, Y, and Z
location is used with other L9101 functions.

This function may be used to identify the centers of two bores and calculate the
center and angle between them. The example below locates the center of two
bores and calculates the center and angle between them.

N1 M6 T1 (LOAD PROBE
N2 G0 G90 X6. Y0. (POSITION TO CENTER OF THE FIRST BORE
N3 Z-.25 H1 M64 (POSITION Z
N4 L9101 R1+1. X6. Y1. F25. P1 (LOCATE POINT 1
N5 L9101 R1+1. X4. Y-1. F25. P2 (LOCATE POINT 2
N6 L9101 R1+1. X8. Y-1. F25. P3 (LOCATE POINT 3
N7 L9101 R1+2. (COMPUTE CENTER OF THE FIRST BORE
N8 R9+R1 R8+R2 (RENAME THE LOCATION
N9 G0 G90 X10. Y0 (POSITION TO CENTER OF THE SECOND BORE
N10 L9101 R1+1. X10. Y1. F25. P1 (LOCATE POINT 1

368 Section 15: Touch Probes April 2003


Fadal User Manual

N11 L9101 R1+1. X8. Y-1. F25. P2 (LOCATE POINT 2


N12 L9101 R1+1. X12. Y-1.F25. P3 (LOCATE POINT 3
N13 L9101 R1+2. (COMPUTE CENTER OF THE SECOND BORE
N14 R7+R1 R6+R2 (RENAME THE LOCATION
N15 L9101 R1+10. X+R7 Y+R6 P2 (SET THE CENTER OF THE SECOND BORE
TO POINT 2
N16 L9101 R1+10. X+R9 Y+R8 P1 (SET THE CENTER OF THE FIRST BORE TO
POINT 1
N17 L9101 R1+4.R2+0 (COMPUTE CENTER AND ANGLE OF THE TWO BORES
N18 G90 G10 L2 P1 X+R1 Y+R2 (SET THE CENTER OF THE BORES AS
FIXTURE OFFSET 1
N19 G0 G90 E1 X0 Y0 (MOVE TO FIXTURE 1 ZERO
N20 G68 X0 Y0 R0+R3 (SET ROTATION WITH THE ANGLE OF THE BORES

Probe Tutorial
Examples in Format Always test the probe to determine if it is functioning properly by typing the
2 M64 M66 code in MDI. Then go into jog, touch the stylus, and look for the
touch/no touch message.

The stylus should run true when the probe is rotated by hand. Place an
indicator in a magnetic base and put the indicator tip on the end of the stylus.
Rotate the probe head by hand and observe the run out. Use the adjustment
screws to get the stylus to run true.

1) This example will demonstrate how the G31 code stops motion and allows
the control to move to the next line in the program. The move on the line
with the G31 or the G31.1 is usually a move that is beyond the desired
touch point.
EXAMPLE: G91 G1 F50.
M64 M66
X-3. G31
M0 Look at the X axis position at this point
X1. G0
M99 P1

Start by jogging the probe to approximately one inch to the right side of a solid
object. The end of the stylus should be below the top of the solid object.

2) This example will demonstrate the effect of feed rate on over travel after the
probe indicates to the control that a touch has been made.

April 2003 Section 15: Touch Probes 369


Fadal User Manual

EXAMPLE: G91 G1 F50.


M64 M66
X-3. G31
M0
X1. G0
M99 P1

Start by jogging the probe to approximately one inch to the right side of a solid
object. The position display will present the current X axis location. Press the
START button to run this routine each time the position is displayed. Notice that
the location changes over several times it is run. Next, change the feed rate on
line one. Make it faster, then try it at slower feed rates. The position should
repeat more consistently at the slower feed rates. The faster the feed rate, the
further the machine will over travel at the touch point.

3) This example will demonstrate a two-touch method of finding a point on an


edge.

EXAMPLE: G91 G1 F50.


M64 M66
X-3. G31
X.05
F1.
X-3. G31
M0
X1.G0
M99 P1

Start by jogging the probe to approximately one inch to the right side of a solid
object. The end of the stylus should be below the top of the solid object.

The first touch is at a high feed rate and is only used to get the stylus in the
general area of the edge. Then the stylus moves away and the second
approach is used to get a “good” point. From the second example it was
demonstrated that the slower feed rate results in a more consistent touch
position.

4) This example will demonstrate the use of the G31.1 code.

The G31 code will stop motion when the probe switch is opened. The G31.1
code will stop motion when the probe switch is closed. The G31.1 code is used
just after a G31 code is used. The probe switch is opened when the stylus
touches an edge and the motion continues to cause the stylus to open the
switch. At this point, the stylus should be at an angle. It should be mentioned

370 Section 15: Touch Probes April 2003


Fadal User Manual

that the longer the stylus, the more over travel will be required to open the
switch. Motion in the opposite direction can now be stopped with a G31.1
code. When the stylus is vertical, the probe switch is now closed and the
motion will stop because of the G31.1 code.

EXAMPLE: G91 G1 F50.


M64 M66
X-3. G31
F10.
X1. G31.1
M0
X1. G0
M99 P1

Try to vary the second feed rate. Again observe the X axis position. The slower
feed rate will result in a more consistent final position.

5) This is a variation on the fourth example.

Start by jogging the probe to approximately one inch to the right side of a solid
object. The end of the stylus should be below the top of the solid object.

EXAMPLE: G91 G1 F50.


M64 M66
X-3. G31
X1. G31.1
F.5
X-3. G31
M0
X1. G0
M99 P1

Notice the amount of time required to pick up a point with each of these
methods. Compare the time from examples 4 and 5. Also compare the
positions picked up using each method. Consistency and time should be
issues to be aware of.

Using the Probe with


Macro Statements
Examples in Always test the probe to determine if it is functioning properly by typing the
Format 2 M64 M66 code in MDI. Then go into jog, touch the stylus, and look for the
touch/no touch message.

April 2003 Section 15: Touch Probes 371


Fadal User Manual

The stylus should run true when the probe is rotated by hand. Place an
indicator in a magnetic base and put the indicator tip on the end of the stylus.
Rotate the probe head by hand and observe the run out. Use the adjustment
screws to get the stylus to run true.

Macro statements can be used to make determinations from the positions


picked up with the probe.

1) Use the AX, AY, AZ, AA, and AB macro statement to collect and use the
current axis position.

Start by jogging the probe to approximately one inch to the right side of a solid
object. The end of a stylus should be below the top of the solid object.

EXAMPLE: G91 G1 F50.


M64 M66
X-3.G31
X1. G31.1
F.5
X-3.G31
#V1=AX
M0
X1. G0
M99 P1

The macro statement states, “Make the V1 variable equal to the current X axis
location (AX). To see this value in memory, use the DV command from the
command mode. The current location will be stored in the V1 variable location
on the screen. These examples can all be used for the other axes, and they
could all be used in absolute as well.

2) This example will demonstrate how to use a macro statement to determine


the center point of the part.

Start by placing a 1-2-3 block in a vice. hold the block with the three inch sides
in the jaws. Jog the probe to approximately one inch to the right side of the
block. The end of the stylus should be approximately .25 below the top of the
block.

EXAMPLE: G91 G1 F50.


M64 M66
X-3. G31
X1. G31.1
F.5

372 Section 15: Touch Probes April 2003


Fadal User Manual

X-3. G31
#V1=AX
Z1. G0
X-4.
Z-1.
F50.
X3. G31
X-3. G31.1
F.5
X3. G31
#V2=AX
#V3=(V1+V2)/2
Z1. G0
X4.
Z-1.
M0
M99 P1

The V1 variable represents the right side touch; the V2 variable represents the
left side touch point. The V3 variable represents the mid-point of the block.
This mid-point will be relative to the SETX position. View the V3 value in the
variable table by using the DV command in the command mode.

3) This example will demonstrate the ability to alter or establish a fixture offset
using the probe and a macro statement.

Start by placing a 1-2-3 block in a vice. Hold the block with the three inch sides
in the jaws. Jog the probe to approximately one inch to the right side of the
block. The end of the stylus should be approximately .25 below the top of the
block.

EXAMPLE: G91 G1 F50.


M64 M66
X-3. G31
X1. G31.1
F.5
X-3. G31
#V1=AX
Z1. G0
X-4.
Z-1.
F50.
X3. G31

April 2003 Section 15: Touch Probes 373


Fadal User Manual

#V2=AX
#V3=(V1+V2)/2
#FX1=V3
Z1. G0
X4.
Z-1.
M0
M99 P1

The V1 variable represents the right side touch; the V2 variable represents the
left side touch point. The V3 variable represents the mid-point of the block.
This mid-point will be relative to the SETX position. The FX1 macro statement is
used to enter the value of V3, which is the mid-point position, into the X value
of fixture offset 1. Use the DF command and the DV command to compare the
values in the fixture table and the variable table.

374 Section 15: Touch Probes April 2003


Fadal User Manual

Fixed Subroutines
Examples in Format Always test the probe to determine if it is functioning properly by typing the
2 M64 M66 code in MDI. Then go into jog, touch the stylus, and look for the
touch/no touch message. The stylus should run true when the probe is rotated
by hand. Place an indicator in a magnetic base and put the indicator tip on the
end of the stylus. Rotate the probe head by hand and observe the run out. Use
the adjustment screws to get the stylus to run true.The control has fixed
subroutines specially designed to work with the probe. This section will discuss
the use of these routines.

1) Each subroutine requires that the positions used in the calculations are
stored in P variables. There are two methods to pick up and store P values:

EXAMPLE: Method 1

The P1, P2, or P3 variables will store the values of the moving axes in the line
with the G31 or G31.1 codes.

G91 G1 F50.
M64 M66
X-3. G31 P1
M0
X1. G0
M99 P1
The P1 on the line with the G31 will store the X value of the touch point

G91 G1 F50.
M64 M66
X-3. G31.1 P1
M0
X1. G0
M99 P1
The P1 on the line with the G31.1 will store the X value of the touch point

G91 G1 F50.
M64 M66
Z-5. G31 P1
M0
X1.G0
M99 P1
The P1 on the line with the G31 will store the Z value of the touch point

April 2003 Section 15: Touch Probes 375


Fadal User Manual

G91 G1 F50.
M64 M66
X-3. Y-3. G31 P1
M0
X1. G0
M99 P1
The P1 on the line with the G31 will store the X and Y axis values

Method 2

Use the L9101 subroutine function 1 to move and store the point. Note that the
program must be written in absolute terms. When using the example use the
SETX command to set the X axis home approximately one inch to the right of
the object to touch.

EXAMPLE: G90 G1
M64 M66
L9101 R0+1. X-3 F25. P1
M0
X1. G0
M99 P1

The function for the L9101 subroutine is selected with the R0+1. selects
function 1 of the L9101 subroutine. The function requires four items:

1) The R0 variable to select the function

2) The move to the point

3) The approach feed rate


4) The desired P variable

In the example above only the X axis will be stored because it is the only axis
move in the L9101 line.

Compare this method of picking up and storing a touch point to the methods
discussed previously in this section. Each method will store the points needed;
selecting one method over the other is a matter of programmer’s preference.
Note that one disadvantage of using the L9101 fixed subroutine is that it must
be written in absolute terms.

376 Section 15: Touch Probes April 2003


Fadal User Manual

EXAMPLE: G90 G1
M64 M66
L9101 R0+1. X-3. Y-3. F25. P1
M0
X1. G0
M99 P1

In the example above, the X and Y axis positions will be stored because they
are the axes in motion in the L9101 line.

April 2003 Section 15: Touch Probes 377


Fadal User Manual

This page intentionally left blank.

378 Section 15: Touch Probes April 2003


Fadal User Manual

Section 16: Command Menus

Quick Keys Menu There are three separate prompting menus within the machine control. They
are the Quick Keys Menu, the Edit Menu, and the Function Menu. These menus
prompt the operator for input to perform machine commands. The Quick Keys
menu is used for quick setup functions. Program editing is accomplished with
the Edit Menu. The Function Menu is used to perform machine tasks. These
menus are activated or deactivated within the machine parameters. Use the
SETP command and the CMD MENU parameter to turn the menus on or off.
When the menus are off, the machine is operated by commands (See Section
Eight, Commands). The Quick Keys Menu is selected by pressing the space bar
from ENTER NEXT COMMAND.

When the power on cold start has been completed the following screen is
displayed when the menus are turned on within machine parameters:

Figure 16-1 Quick Keys Menu

1-DRY RUN Quick key #1 places the control in auto inside the run time menu. The operator
now may choose a dry run option. After a dry run mode is selected, press the
MANUAL key and then the AUTO key to start the dry run.

2-NEXT TOOL Quick key #2 calls the next tool with an M6 T# command. Press the START
button to load the next tool.

April 2003 Section 16: Command Menus 379


Fadal User Manual

3-ZERO RETURN Quick key #3 returns all axes to the HOME position. Press 3-ZERO RETURN then
the START button.

4-SET FIXTURE Quick key #4, places the control in the FIXTURE OFFSET UTILITIES MENU.

5-SET LENGTH Quick key #5 sets the length of the current tool in the spindle at its current Z
location.

a. Jog the current tool down to the desired part Z0


b. Press 5-SET LENGTH from the quick key menu.

6-OFFSETS This Quick key #6 places the control into the OFFSET tables. By pressing the
space bar, the operator may toggle between TOOL LENGTH OFFSET TABLE,
FIXTURE OFFSET TABLE, TOOL TIME TABLE, and MACRO VARIABLE TABLE.

7-AXIS ZERO Quick key # 7 is used to set an axis HOME position.

1) Jog the desired axis to the desired position to be called zero.

2) Press 7-AXIS ZERO from the Quick Keys Menu.

3) Choose the desired axis from the SETUP / AXIS ZERO menu.

This has now set that axis to zero. For example, if you choose X the current
position is now X0. This position does not have to be the same place as cold
start X0. And it is not a fixture offset location.

8-READ Quick Key #8 has two options:

1- BEGIN

By pressing quick key # 8,then # 1, the control will begin receiving from the RS-
232 port.

2- OPTIONS

Options to the quick key READ allows the operator to customize the input
parameters.

MEMORY/INPUT/OPTIONS:
0- NORMAL ERROR CHECKING2- IGNORE ERRORS
1- IGNORE PARITY ERRORS3- OTHER FORMAT

9-PUNCH Quick Key #9 will output programs and offsets through the RS-232 port.

380 Section 16: Command Menus April 2003


Fadal User Manual

There are 4 options as follows:

0-PROGRAM AND TOOLING 2-PROGRAM ONLY


1-TOOLING ONLY 3- ALL PROGRAMS

0- PROGRAM AND TOOLING ONLY will output the program any values in the
tool offset table and any values in the fixture table. The operator is then
prompted for the data format.

0-ASCII: 7 DATA BITS, EVEN PARITY, 1 STOP BITS

1-EIA : 8 DATA BITS, ODD PARITY, 1 STOP BIT

Normal output is 0-ASCII

0-COMPUTER, NO LEADER OR NULLS

1-TTY, LEADER AND NULLS

2-PROGRAM ONLY will output program data only. No tooling fixture offset data
will be sent. The operator is then prompted for the data format.

0-ASCII: 7 DATA BITS, EVEN PARITY, 1 STOP BITS

1-EIA : 8 DATA BITS, ODD PARITY, 1 STOP BIT

Normal output is 0-ASCII

0-COMPUTER, NO LEADER OR NULLS

1-TTY, LEADER AND NULLS

3-ALL PROGRAMS will output all programs in the program library. They will be
sent as a single file, no offset data will be included. The operator is then
prompted for the data format.

0-ASCII: 7 DATA BITS, EVEN PARITY, 1 STOP BITS

1-EIA : 8 DATA BITS, ODD PARITY, 1 STOP BIT

Normal output is 0-ASCII

0-COMPUTER, NO LEADER OR NULLS

April 2003 Section 16: Command Menus 381


Fadal User Manual

1-TTY, LEADER AND NULLS

0-CUSTOM MACRO Quick Key #0 will run program number 9999 without having to switch the
currently active program in memory. This feature allows the user to
conveniently run this program.

Any program maybe defined as O9999 or a factory installed sample macro


program may be loaded into memory. The factory example program can be
loaded by typing TA,6 from the command mode. The example macro program
is an example of a menu. This program can be modified and stored on disk for
future use.

When the 0 key is pressed and program number 9999 is not found, the control
will display the program library menu. The user may then choose to start a new
program with a program number 9999, for a user-defined custom macro
program.

See the PR command Section Eight, Commands.

EXAMPLE: 1) Program O1 is a production part. This is the currently active program in


memory.

2) Program O9999 is a warm up program written by the programmer which is


performed every morning.

a. Press the space bar until the Quick Key menu is displayed.
b. Press the 0 button to run the custom macro to warm machine up.
c. Press AUTO to begin. (Program O9999 will now be run in auto.)
d. After the warm up program is complete, press MANUAL to exit AUTO.
e. Press AUTO to run production part. (Program O1 will now be run in
auto.)

Edit Menu The Edit Menu is selected by pressing the space bar twice from ENTER NEXT
COMMAND, and allows editing or viewing the currently active program. This

382 Section 16: Command Menus April 2003


Fadal User Manual

menu functions the same as the PA command editor (see Section 8, PA


Command). When the Edit Menu is entered the following screen is displayed.

Figure 16-2 Edit Menu

Edit Menu Options The menu options displayed function in the following manner.

U-UP Press U to move the cursor up one line


D-DOWN Press D to move the cursor down one line
F-FUNCTIONS Press F to enter the graphics menu (See section 20 for
CNC88HS graphics use)
C-CHANGE Press C to change the line that the cursor is on
I-INSERT Press I to insert a line after the line that the cursor is on
S-SEARCH Press S to search for data within the program. The cursor will
move to the first line that the data is in
R-REPLACE Press R to search and replace data within the program
N-NUMBER Press N to renumber the program
O-COPY Press O to copy program blocks
ENTER-PAGE DOWN Press the ENTER key to move the cursor one page
forward in the program
BACKSPACE-PAGE UP Press the BACKSPACE key to move the cursor one page
backward in the program
DEL-DELETE Press the DEL key to delete the program line that the cursor is on
P-PROGRAM Press P to switch to another program
The following key commands NOT displayed on the menu are also available:
T-TOP Press T to move the cursor to the first line of the program
B-BOTTOM Press B to move the cursor to the last line of the program

April 2003 Section 16: Command Menus 383


Fadal User Manual

Function Menu The Function Menu is selected by pressing the space bar three times from
ENTER NEXT COMMAND. The first twelve (12) lines display the currently active
program. The bottom four (4) lines display the Function Menu options. These
menu options are selected by number input. The operator may switch between
the Function Menu, the Quick Keys Menu, and the Edit Menu by pressing the
Space bar.

Selection of menu options may display additional menu options. The top line of
the subsequent menus displays the previous menus selected. Press the
MANUAL key at any menu to abort the process and return to the MAIN menu.
The following pages explain the complete menu structure and the options
available.

Figure 16-3 Function Menu

1- Setup Function To perform machine Setup functions select option 1 from the main menu. This
function allows for the following options.

Select the option below for the indicated desired results:

1. Tool - This selection is used to set tooling information. It may be used to set
tool length or diameter offsets. These offsets may be input or changed. The
following options are available when Tool is selected:

1. Single - This option is used to set a single tool. The options requiring
input will affect the tool in the spindle. The following options are
available when Single is selected:

1. Get Tool - This option is used to change to a desired tool. Enter


the tool number to change to. The machine will perform a tool change
to the tool number.

384 Section 16: Command Menus April 2003


Fadal User Manual

2. Enter Diameter - This option is used to input a tool diameter. The


input value will be an absolute change to the tool table. Enter the
diameter value. The entered value is placed into the tool table.

3. Store Length - This option is used to input the tool length into the
tool table. The machine will input the current Z axis location into the
tool table. The control performs the SL command.

4. Modify Length - This option is used to change a tool length offset.


The offset will be incrementally changed. Enter the amount to
change the tool offset. The machine will perform the SL command
to change the offset.

5. Jog Key - This option allows the operator the ability to Jog the tool to
the gauge point before setting the length. The machine enters the
Jog mode. Press the manual key to return to the previous menu.

2. Multiple - This option should be selected when setting tool data for more
than one tool. When this option is selected, the machine performs the
UT command (See the Setting Tool Offsets, Using the UT command).

3. Offset Table - This option is used to view the tool table. The control
performs the DT command.

4. Turret Location - This option is used to set the current tool turret
location as number 1.

1. Reset Current Tool Location As 1 - This selection performs the


SETTO command.

2. Abort - This options aborts the procedure and returns to the main
menu.

2. Fixture - This selection is used to set fixture offset information. The following
options are available:

1. Offset Table - This option is used to view the fixture offset table. This
selection performs the DF command.

2. Read From Jog - This option is used to set fixture offsets using the UT
command. This selection initiates the UT command for Fixture Offset
setting.

3. Zero Axes - This option is used to set the machine axes home positions.
The current axis location is set as the axis home position.

April 2003 Section 16: Command Menus 385


Fadal User Manual

1. Press Keys: X, Y, Z, A, B, (H FOR ALL) OR JOG - The JOG key may be


pressed to enter the Jog mode. Press MANUAL to return to this
option. The selection of an axis will set the current location as the
axis home position.

2 - Memory This selection from the main menu may be used to perform machine memory
Function tasks. The following options may be selected to perform the desired operation:

1. Run Program - This option begins execution of the current program.

1. Automatic - This option begins program execution.


1. Begin - This selection begins program execution from the beginning.
2. Select Options - This option allows the operator to select the AU
command options individually. Program execution will be performed
according to the AU parameters selected.
2. DNC - This option begins DNC execution of the program.
1. Begin - This selection begins DNC program execution from the
beginning.
2. Select Options - This option allows the operator to select the DNC
command options individually. Program execution will be performed
according to the DNC parameters selected.
3. Summary - This option is used to perform the SUM command. This
command is used to debug the program in memory.
1. Begin - This option performs the SU command with all parameters =
zero.
2. Select Options - This option allows the operator to select the SUM
command options individually. Program execution will be performed
according to the SUM parameters selected.
2. Program Library - This command performs program library maintenance.
The PR command is performed when this option is selected.

3. Input/Output - This option is used for program transferring and verification.

1. Input - This option is used to transmit a file to the machine.


1. Begin - This option performs a TA,1 command.

386 Section 16: Command Menus April 2003


Fadal User Manual

2. Options - This option allows the operator to select the TA command


options individually. The TA command is performed with the selected
parameters.
2. Output - This option transmits a file from the machine to an external
device.
1. Begin - This option performs a PU command.
2. Options - This option allows the operator to select the PU command
options individually. The PU command is performed with the selected
parameters.
3. Verify - This option is used to verify the tape that was punched. The
command VT,1 is performed when this option is selected.
4. Baud Rate - This option is used to set the machine baud rate.
1. Select Baud Rate - Enter the selection number to select the
machine baud rate.
4. Learn Mode - This option is used to enter the learn mode. Selection of this
option performs the LE command.

5. Clear - This option is used to clear data from the machine memory.

1. Current Program - This option is used to clear the current program from
memory. The NE command is performed when this option is selected.

2. Offsets and All Memory - This option is used to completely clear tool
and fixture offsets and machine memory. The RI command is
performed when this option is selected.

3. Display Free Memory - This option is used to display the percentage of


free memory in the machine. The ME command is performed when this
option is selected.

6. Settings - This option is used to view or change parameter and backlash


settings.

1. Backlash - This option is used to view or change the machine backlash


settings.

1. Display - This option displays the current machine backlash


settings. The BL command is performed when this option is
selected.

April 2003 Section 16: Command Menus 387


Fadal User Manual

2. Change - This option is used to change the machine backlash


settings. The axes and desired settings are input at the required
prompts.

2. Parameters - This option is used to view or change the machine


parameters. The SETP command is performed when this option is
selected.

3 - MDI Function This function performs the MD command, putting the control in Manual Data
Input mode. Pressing the MANUAL key will return to the main menu.

4 - Home Axes This function is used to send the machine to the home position.
Function
1) Return To Home - This option is used to return the machine to the axes
home position. The HO command is performed when this option is
selected.

2) Return For Power Off - This option is used to return the machine to the
cold start position for power off. The SETCS and HO commands are
performed when this option is selected.

5 - Reset Function This function is used to reset the machine’s modal codes. The HO command is
performed when this option is selected.

6- Command Mode This function is used to enter the command mode. The machine operates in
Function the same format as when the Menu Mode is turned off. Press the MANUAL key
to return to the menu mode.

7- Diagnostics This function is used to perform probe and diagnostic tests.


Function
A. Touch Probe - This option is used to test the TS20 or 27 touch probe. The
touch probe test begins when this option is selected.

B. MP Probe - This option is used to test the MP probe. The MP test begins
when this option is selected.

C. Controller - This option is used for maintenance diagnostics. This option


should be used by trained maintenance personnel ONLY.

1) Continue - This option performs the DI command. This is for maintenance


personnel ONLY.

2) Abort - This option returns to the main menu. This option is for non
maintenance personnel.

388 Section 16: Command Menus April 2003


Fadal User Manual

8- Last Screen This function is used to display the previous screen. Warning or error
Function messages that were cleared can be displayed with the use of this function.
Only the last message is displayed.

9- Cold Start This function is used to perform the machine cold start procedure. This
Function function should be the first function used after power on. After this function is
used, the option is no longer displayed on the main menu. If the option is
displayed it should be selected to perform the cold start.

A. Continue - This option should ONLY be used when the axes are aligned with
the cold start indicators. If they are not, use option 2.

B. Align Axes - This option is selected with the JOG key. When the axes cold
start indicators are not aligned, press the JOG key to align them. Press the
MANUAL key to return to the cold start menu. After this option has been
completed select option 1 to complete the cold start procedure.

April 2003 Section 16: Command Menus 389


Fadal User Manual

This page intentionally left blank.

390 Section 16: Command Menus April 2003


Fadal User Manual

Section 17: Pallet Changer

Mechanical This section will describe the operation of the optional Pallet Changer. The
Overview pallet changer may be operated within the program or by use of the UT
command. The pallets ride on rails with circular bearings. The pallet is locked in
place on the table with a hydraulic clamp.

This clamp is released with program coding of a pallet change or through the
utility menu function. The door operates with a hydraulic valve to open and
close. The pallets are moved by a mechanical arm. The two pallets are
identified as pallet A and pallet B. The forward pallet is pallet A. The rear pallet
is pallet B.

There are three pallet positions, loaded, stored, and working. The loaded
position is when the pallet is locked onto the table with the hydraulic brake. The
stored position is when the pallet is ready to be loaded onto the table. This
position locks into place with a mechanical release. The working position is
when the pallet is released from the stored position. The pallet must be moved
to this position manually. Push the release lever down to pull the table to the
working position. This is the outermost position that the pallet can be moved
to. This position is the most accessible to the operator for part changes.

There are three M Functions that may be used to operate the pallet changer.
These functions can be used to exchange pallets or utilize only one pallet.

Note: The machine parameter “DO YOU HAVE A PALLET CHANGER?” MUST be
answered YES for the pallet to operate.

G17.1 - G17.2 A/B The G17.1 word swap activates B-axis command substitution for the A-axis
Word Swap command. This allows the use of the A-axis rotary moves in one program for
use with the rotary heads on both pallets. If the program calls for an A-axis
move and the rotary device is connected to the B-axis controller, the G17.1
code will swap the A word for a B word. Existing programs written for the dual
4th axis setups that contain the A and B words are allowed. The G17.1 will
automatically swap the B words to A words. The G17.2 word cancels A/B axis
command swap mode.

April 2003 Section 17: Pallet Changer 391


Fadal User Manual

M31 Exchange M31 performs a pallet exchange. The pallet changer will store the current pallet
Pallets on the machining table and load the other pallet onto the machining table. No
other machine movements will be made. This is the only code allowed on the
program line.

Note: All fixture and machine offsets MUST be canceled prior to attempting a
pallet change.

M32 Store Pallet B When Pallet B is on the table, M32.1 will STORE Pallet B (outside machining
and Load Pallet A area) and pallet arm will move to Pallet A. The machine will be placed in the
WAITING state and the pallet door will remain open until the START button is
pressed. When the START button is pressed Pallet A will be returned to the
table inside the machining area (LOADED).

When Pallet A is on the table, M32.1 will STORE Pallet A. The machine will be
placed in the WAITING state and the pallet door will remain open until the
START button is pressed.When the START button is pressed Pallet A will be
returned to the table inside the machining area (LOADED).

Note: All fixture and machine offsets MUST be canceled prior to attempting a
pallet change.

M32.1 Store Pallet B When Pallet B is on the table, M32.1 will STORE Pallet B and LOAD Pallet A. If
& Load Pallet A & Pallet A is at LOAD position (on machining table), M32.1 will verify Pallet A is at
Verify Pallet A has LOAD (on machining table). No movement will occur.
been Loaded

M33 Store Pallet A When Pallet A is on the table, M33 will STORE Pallet A (outside the machining
and Load Pallet B area) and the pallet arm will move to Pallet B. The machine will be placed in the
WAITING state and the pallet door will remain open until the START button is
pressed. When the START button is pressed, Pallet B will be returned to the
table inside the machining area (LOADED).

When Pallet B is on the table, M33 will STORE Pallet B.The machine will be
placed in the WAITING state and the pallet door will remain open until the
START button is pressed. When the START button is pressed, Pallet B will be
returned to the table inside the machining area (LOADED).

Note: All fixture and machine offsets MUST be canceled prior to attempting a
pallet change.

392 Section 17: Pallet Changer April 2003


Fadal User Manual

M33.1 Store Pallet A When Pallet A is on the table, M33.1 will STORE Pallet A and LOAD Pallet B.
& Load Pallet B &
Verify Pallet B has If Pallet B is at LOAD position (on machining table), M33.1 will verify Pallet B is
been Loaded at LOAD (on machining table). No movement will occur.

Figure 17-1 Pallet B at LOAD Position

Note: The table move to the pallet position may be stopped with the SLIDE
HOLD button. The pallet movement to and from the stored position may
also be stopped with the SLIDE HOLD button.

Note: The pallet MUST be in the stored position to change pallets. When in the
working position, the message “RETURN PALLET TO THE STORED
POSITION” will appear if a change is attempted.

Note: The air and hydraulics are turned off between M32 and M33 pallet
changes, and after a STORE PALLET in the pallet utilities.

Note: When a pallet is placed in the service position during a pallet change,
the machine tool enters the WAITING state.

Pallet A Rotary Table Pallet changer machines that are equipped with dual rotary tables have two
& Pallet B Rotary potentiometers located on the sheet metal, one to the left and one to the right
Table Override of the pallet door. They are Pallet A rotary table potentiometer for the rotary
Potentiometer table on Pallet A, and Pallet B rotary table potentiometer for the rotary table on
Pallet B. This is assuming the rotary table on the Pallet A is A axis, and Pallet B
rotary table is B axis.

April 2003 Section 17: Pallet Changer 393


Fadal User Manual

Potentiometers will become active after Cold Starting the machine and then
enabling the M48.2, Pallet A rotary table override pot, or M48.3, Pallet B rotary
table override pot. These M codes may be used in a program or in MDI mode.
The intention of the potentiometers are to allow the operator to turn the rotary
table for removing or installing the workpiece.

The rotary tables will return automatically to the original position when the
M49.2, Pallet A Rotary Table Override Potentiometer Disable, or M49.3, Pallet
B Rotary Table Override Potentiometer Disable, is programmed. This may also
be done in a program or in MDI mode. The movement of the rotary table will be
slow when the potentiometer is turned. When the axis is returned with disable
codes (M49.2 or M49.3) the move will be automatic and slow in speed. This
rate of speed is not adjustable. The corresponding pot disable M code will lock
out the potentiometer and then bring the rotary tables to the last position. This
will ensure that the rotary tables are in the original position before returning to
the work area.

M48.2 Pallet A M48.2 enables the Pallet A rotary table axis override pot while Pallet A is
Rotary Table stored.
Override
Potentiometer
Enable

M49.2 Pallet A M49.2 disables the Pallet A rotary table axis override pot while Pallet A is
Rotary Table stored.
Override
Potentiometer
Disable

M48.3 Pallet B M48.3 enables the Pallet B rotary table axis override pot while Pallet B is
Rotary Table stored.
Override
Potentiometer
Enable

M49.3 Pallet B M49.3 disables the Pallet B rotary table axis override pot while Pallet B is
Rotary Table stored.
Override
Potentiometer
Disable

EXAMPLE: N3 E0 X0Y0 A0

394 Section 17: Pallet Changer April 2003


Fadal User Manual

N4 M33.1 (STORE PALLET A, LOAD PALLET B IN MACHINING AREA


N5 M48.2 (PALLET A ROTARY OVERRIDE POT ENABLE
...
N506 M49.2 (PALLET A ROTARY OVERRIDE POT DISABLE
N507 E0 X0 Y0 A0
N508 M33.1 (STORE PALLET B ROTARY OVERRIDE POT ENABLE
...
N1017 M49.3 (PALLET B ROTARY OVERRIDE POT DISABLE

Remote Machine There are two remote machine control


Control panels mounted by the pallet work
area. These controls provide the
operator with the START, SLIDE START

HOLD, and EMERGENCY STOP


buttons for machine control. They are
located on the side of the machine
enclosure at both pallet work areas. GLEITHALT

NOTHALT

Figure 17-2 Remote Machine Control

Utility Menu The pallets may also be operated using the UT command. When the UT
command is entered, the following menu appears:

Figure 17-3 Utility Menu

April 2003 Section 17: Pallet Changer 395


Fadal User Manual

Figure 17-4 Pallet Controls Menu

OPTION 1 When option 1 is selected, the following sequence will occur:

1) The door opens.

2) The machine enters the WAITING state, and the message “PRESS START
TO MOVE PALLET” appears. The X, Y, M48, F150, and G1 will also appear
if a table move is necessary.
a. When the START button is pressed, the machine will move to position
for the pallet change. When in position the machine will enter the WAIT-
ING state.
3) When the START button is pressed, the hydraulic clamp is released and the
pallet will move to the stored position. The table then moves into position to
receive the other pallet. The pallet is moved into the loaded position on the
table. The hydraulic clamp is engaged and the door is closed.

4) The PALLET CONTROLS menu is displayed.

OPTION 2 If Pallet B is on the table, this option performs the same as option 1. When
option 2 is selected and Pallet A is on the table, the following will occur:

1) The door opens.

2) The machine enters the WAITING state, and the message “PRESS START
TO MOVE PALLET” appears. The X, Y, M48, F150, and G1 will also appear
if a table move is necessary.

a. When the START button is pressed the machine will move to position for
the pallet change. When in position the machine will enter the WAITING
state.

396 Section 17: Pallet Changer April 2003


Fadal User Manual

3) When the START button is pressed the hydraulic clamp is released and the
pallet will move to the stored position. The machine enters the WAITING
state for the operator to change parts.

4) When the START button is pressed the pallet is returned to the loaded
position and the door closes.

5) The PALLET CONTROLS menu is displayed.

OPTION 3 If Pallet A is on the table, this option performs the same as option 1. When
option 2 is selected and Pallet B is on the table, the following sequence will
occur:

1) The door opens.

2) The machine enters the WAITING state, and the message, “PRESS START
TO MOVE PALLET” appears. The X, Y, M48, F150, and G1 will also appear
if a table move is necessary.

a. When the START button is pressed the machine will move to position for
the pallet change. When in position the machine will enter the WAITING
state.
3) When the START button is pressed the hydraulic clamp is released and the
pallet will move to the stored position. The machine enters the WAITING
state for the operator to change parts.

4) When the START button is pressed the pallet is returned to the loaded
position.

5) The PALLET CONTROLS menu is displayed.

OPTION 4 When this option is selected the following menu appears:

Figure 17-5 Pallet Service Utility Menu

April 2003 Section 17: Pallet Changer 397


Fadal User Manual

OPTION 1: This option toggles the hydraulic clamp on and off.

OPTION 2: This option toggles the door open and closed.

OPTION 3: The table MUST be in position to receive a pallet the following


occurs:

a. The door opens if not already open.


b. The machine enters the WAITING state and displays the message
“PRESS START TO MOVE PALLET”.
c. When the START button is pressed, the pallet moves to the stored posi-
tion. While the pallet moves to this position, the message “STORING
PALLET...” appears. If the pallet is already stored, the message “STOR-
ING PALLET...PALLET IN STORAGE” appears and the control is returned
to the command mode.

OPTION 4: This option is only used when the table is empty. The table MUST
be in position to receive the pallet. See option 5 and 6. When the table is in
position, the following occurs:

a. The door opens if not already open.


b. The machine enters the WAITING state and displays the message
“PRESS START TO MOVE PALLET”
c. When the START button is pressed, the pallet moves to the loaded posi-
tion on the table. While moving to the loaded position the message
“LOADING PALLET...” appears. If the table is not in the change position
the message “LOADING PALLET...RAILS NOT ALIGNED” appears and
the control returns to the command mode.

OPTION 5: This option moves the table to the change position for Pallet A. The
following occurs:

a. The door opens.


b. The machine enters the WAITING state and displays the message
“PRESS START TO MOVE PALLET”. The X, Y, M48, F150, and G1 will
also appear if a table move is necessary.
c. When the START button is pressed, the table moves to the change posi-
tion for Pallet A.

OPTION 6: This option moves the table to the change position for Pallet B. The
following occurs:

398 Section 17: Pallet Changer April 2003


Fadal User Manual

a. The door opens.


b. The machine enters the WAITING state and displays the message
“PRESS START TO MOVE PALLET”. The X, Y, M48, F150, and G1 will
also appear if a table move is necessary.
c. When the START button is pressed, the table moves to the change posi-
tion for Pallet B.

OPTION 7: This option displays the maintenance switches for the pallet
system. This option is to be used by trained maintenance personnel.

OPTION 8: This option allows the operator to enter the JOG mode. The
message “PRESS JOG TO CONTINUE OR MANUAL TO EXIT” appears. Press
the JOG button to enter the Jog mode. When in the Jog mode, press MANUAL
to return to the pallet service utility menu. If the MANUAL button is pressed
when this message appears, the control returns to the command mode.

OPTION 9: This option is used to return to the PALLET CONTROLS menu.

April 2003 Section 17: Pallet Changer 399


Fadal User Manual

This page intentionally left blank.

400 Section 17: Pallet Changer April 2003


Fadal User Manual

Section 18: Macros

Macros and
Parametric
Programming
Macros Macros give the programmer the ability to perform arithmetic and comparison
functions within a CNC program. Values for variables (V1- V100) can be
entered from input statements or passed to the macro from R variables or from
the fixture, tool data, and tool time tables. Values from macro statements can
be passed to the CNC program by using parametric variables (R0-R9). Macros
may be used for probe functions and for part outlines where the part can be
defined by an arithmetic formula.

Parametric Parametric programming gives the operator the ability to use a parametric R
Programming variable to represent the value of any program coding word. The variables
include: R0 and R1 - R9. Parametric programming is also used to transfer data
from macro variables V1-V100 to the CNC program for machine motion, feed
and speed.

EXAMPLE: N13 R1 + 10. R2 + 5. (R1 AND R2 ARE ASSIGNED VALUES


N14 R3 + 7.5 R4 + 5.5 R5 + 0 (R3, R4 AND R5 ARE ASSIGNED VALUES
N15 X - R1 Y + R2. G1 F34. (THIS LINE READS X10. Y5. G1 F34.
N16 X + R3. I - R4 J - R5 G3 (THIS LINE READS X7.5 I5.5 J0 G3

Parametric variables are used when programming words require change during
the execution of a program or need to be changed at different runs. One typical
use of these variables would be in the use of a subroutine or subprogram to cut
a pocket. The Z words in the routine may use a variable to cut many different
levels. The L word for the subroutine call may use a variable to change the
number of times that the sub is called. The R variable used for the L word must
indicate the subroutine number and number of repetitions (see the example
below). The X, Y, I, and J of a circular move can all be changed by parametric
programming. All program words can use a parametric variable. Parametric
programming is also used when programmer is considering a generic program
for a family of parts.

Note: When variables are used as values, a positive or negative symbol must
be used between the two variables, R9+R2, R8-R2. This is also true when

April 2003 Section 18: Macros 401


Fadal User Manual

using radius designation for circular moves or for the minimum clearance
plane description with fixed cycles.

R Variable Definition R variables are defined by coding the R word, + or - symbol and a value.

EXAMPLE: N12 R8+50.0 This is variable R8 defined as 50.0


N13 F+R8 The R8 transfers a value of 50.0 for the feed rate

Note: Variables must be defined in the beginning of the program or just before
they are used in the program. Variables are modal and retain their values
after the termination of a program, after an HO, and after exiting from MDI.
R variables do not have table storage like macro V variables. The
programmer should always specify a value for an R variable; otherwise, the
last programmed value will be used and will result in unpredictable
machining.

Example Program for The parametric R variables are defined in the main program, on lines 32 and
Parametric 37, and in the subroutine on line 19 of the program below. The R variables are
Programming modal; they remain effective until the same R variable is redefined. Note that
on line 21 of the program below, the R1 variable is changed but the R2 variable
remains in effect.

N01 L100(SUB TO CUT SLOT


N02 (R1=Z, R2=SUB & REPS, R3=RADIUS OF SLOT, R4=DIA OF SLOT
N03 X-1. Z-R1 G1
N04 X-R3 G41
N05 L+R2
N06 X+R3 G40
N07 X1.
N08 L200(SUB FOR SLOT
N09 X+R3 Y-R3 I+R3 G3
N10 X1.
N11 Y+R4 J+R3 G3
N12 X-1.
N13 X-R3 Y-R3 J-R3 G3
N14 L300(CUT SLOT
N15 Z0.01 G1
N16 R1+0.1 R2+201.
N17 G91
N18 L102
N19 R1+0.05
N20 L101

402 Section 18: Macros April 2003


Fadal User Manual

N21 R1+0.01 R2+202.


N22 L101
N23 G0 G49 G90 Z0.1
N24 M17
N25 M30
N26 (
N27 (MAIN PROGRAM
N28 G0 G90 S8000 M3 E1 X1.5 Y-0.876
N29 (R1=Z, R2=SUB & REPS, R3=RADIUS OF SLOT, R4=DIA OF SLOT
N30 H1 Z0.1 M7
N31 Z0.01 G1 F30.
N32 R3+0.19 R4+0.38
N33 L301
N34 X4. Y-0.876
N35 L301
N36 X4. Y-3.45
N37 R3+0.255 R4+0.51
N38 L301
N39 X1.5 Y-3.45

Macros Each macro line is identified by using the # symbol at the beginning of a line in
the program. Macros can reside in a main program, subroutine, or in a
subprogram. Macros may be used during AUTO, MDI (Manual Data Input),
DNC, and at the command line. The maximum number of characters per
macro line is 63.

Parametric R variables are used to transfer macro data to the CNC program.

EXAMPLE: N1 # V1 = V1 + 2.
N2 # V2 = V2 - 1.
N3 # R1 = V1
N4 # R2 = V2
N5 G0 G90 S8000 M3 E1 X+R1 Y-R2

Machine program code cannot be coded in a macro line.

April 2003 Section 18: Macros 403


Fadal User Manual

EXAMPLE: N1 G0 G90 # V1=INT(V5 * 10000)/10000 This line is incorrect


N1 # V1=INT(V5 * 10000)/10000 This line is correct
N2 G0 G90 This line is correct

Example Macro Program for a Rectangle with PRINT and INPUT


Statements:

0600 (SUB FOR RECTANGULAR POCKET FINISH


#CLEAR
#PRINT “ENTER THE POCKET LENGTH: ”,
#INPUT V1 Keyboard entry is transferred to V1
#PRINT “ENTER THE POCKET WIDTH: ”,
#INPUT V2 Keyboard entry is transferred to V2
#R3=V1/2 R3 equals V1 divided by 2
#R4=V2/2 R4 equals V2 divided by 2
#R2=V1 Transfers the V1 value to R2 parameter
#R5=V2 Transfers the V2 value to R5 parameter
G0G90Z.1
X0Y0
D1
Z-.250G1F20
G91 G41 Y-R4
X+R3
Y+R5
X-R2
Y-R5
X+R3
Y+R4 G40 G90 Cancel CRC
G0G90Z.1 Safety Z move
M99 End of sub program

O700 (SUB FOR RECTANGULAR POCKET FINISH WITH CORNER RADIUS

#CLEAR
#PRINT “ENTER THE POCKET LENGTH: ”,
#INPUT V1 Keyboard entry is transferred to V1 (X VALUE)
#PRINT “ENTER THE POCKET WIDTH: ”,
#INPUT V2 Keyboard entry is transferred to V2 (Y VALUE)
#PRINT “ENTER THE CORNER RADIUS:”
#INPUT V3 Keyboard entry is transferred to V3
#V4=V3+V3 Diameter
#R2=V1-V4 Transfers the V1-V4 value to R2 parameter (X

404 Section 18: Macros April 2003


Fadal User Manual

#R3=V1/2 R3 equals V1 divided by 2 (X VALUE)


#R4=V2/2 R4 equals V2 divided by 2 (Y VALUE)
#R5=V2-V4 Transfers the V2-V4 value to R5 parameter (Y
#R6=V3 Radius
#R7=(V2/2) V3R7 equals V2 divided by 2, minus the radius value (Y
#R8=(V1/2) V3R3 equals V1 divided by 2, minus the radius value (X
G0G90Z.1 H1Safety Z move
X0Y0 Locate to the center of pocket
D1 Diameter of tool must be in tool table
Z-.250G1F20. Feed down into pocket
G91 G41 Y-R4CRC climb cut
X+R8 Parametric transfer to axis movement
X+R6 Y+R6 R0+R6 G3
Y+R5
X-R6 Y+R6 R0+R6 G3
X-R2 Macro calculations determine the X Y moves here
X-R6 Y-R6 R0+R6 G3
Y-R5
X+R6 Y-R6 R0+R6 G3
X+R8
Y+R4 G40 G90 Cancel CRC
G0G90Z.1 Safety Z move
M99 End of subprogram

April 2003 Section 18: Macros 405


Fadal User Manual

Mathematical
Functions
Mathematical Macros operate with the use of mathematical functions, commands and
Function Macros variables. The variables are used in conjunction with the functions to perform
calculations. The characters below describe the mathematical function
capabilities. Older controls are required to type the Alpha Keys for the
characters not on the keyboard.

Table 1: Mathmatical Function Macros


Character Description Alpha Keys
Blank
+ Plus, Positive, Addition
- Minus, Negative, Subtraction
* Multiply, Multiplication
/ Divide, Division
ABS Absolute value
ATN Arc tangent
COS Cosine function
INT Integer value
RND Rounding function
SGN Return the sign
SIN Sine function
SQR Square root
( Left Parenthesis
) Right Parenthesis
= Equal EQ
< Less Than LT
> Greater Than GT
<= Less Than or Equal to LE
>= Greater Than or Equal to GE
<> Not Equal to NE
‘ Remark in macro line

Order of Calculation Arithmetic operations are performed in standard mathematical order:

Parentheses ( )

Functions (SIN,COS ...)

- (negation)

* (multiplication)and / (division)

406 Section 18: Macros April 2003


Fadal User Manual

+ (addition)and - (subtraction).

AND, OR, NOT

Parentheses can be used to establish order of arithmetic operations, overriding


standard mathematical order.

Decimals Numbers without decimals will be considered integers. This is true only for
macro lines.

Exponential Form Exponential form is not allowed. For 1.23^5 use 123000.

Comments Comments are very important part of Macro programming. They explain the
program to others, and remind the programmer why they wrote it the way they
did. Comments on a macro line begin with an apostrophe ( ‘ ), and can extend
to a total line length of 63 characters.

N3 # V100=1.2345 ‘V100 IS THE LENGTH OF THE PART 2

Calculations The mathematical operations of addition, subtraction, multiplication and


division are represented by + , - , *( asterisk ) , and / ( slash ), respectively.

EXAMPLE: N11 # V10=3/V12

April 2003 Section 18: Macros 407


Fadal User Manual

Variables
Arrays Variable arrays can now be used; that is, the subscript of a variable can now be
a variable or arithmetic expression. The subscript variables are D, FX, FY, FZ,
H, PX, PY, PZ, PA, PB, R, and V. The subscript for a variable must not exceed
the allowed range for the variable. For instance, the subscript for a V variable
must be 1 through 99 and the subscript for a FX variable must be 1 through
48.

EXAMPLE: If the variables V1=5 and V2=1 then the following are equivalent:

#V5=1
#V(5)=1
#V(V1)=1
#V(V1+V2-1)=1
#V(V1/V2)=1
#V(V(SQR(V2))=1

AX, AY, AZ, AA, AB, Axis position variables are used to read the current location of the desired axis.
AC: Axis Position
Variables

EXAMPLE: N79 # IF AZ >12.050 THEN GOTO :GETNEXT

In the above example, if the Z axis is at 12.050 inches by the time this line is
executed then the control will jump to the line in the program with the label
:GETNEXT.

EXAMPLE: N99 E2 X0 Y0
N100 Z-30 G31 F50.
N101 G91 Z.05
N102 G90
N103 Z-30. G31 F1. The probe will stop the Z axis when it touches
N104 #IF AZ > 12.050 THEN GOTO :GETNEXT

CP: Clock from This variable will return the accumulated time stored since power on.
Power On

CR: Clock for All Run This variable will return the accumulated time for all of the time while the
Time control was in auto mode.

CC: Clock for Current This variable will return the accumulated time of the program currently being
Part executed. The SETP page must have the TIMERS ON for the accumulated time
to register.

408 Section 18: Macros April 2003


Fadal User Manual

D1 - D99: Tool These variables are used to read the current value of any diameter/radius from
Diameter/Radius the tool table. It can also be used to establish or write a value in the table. The
Variables current value for any diameter can be changed by placing the variable on the
left side of the equal sign.

EXAMPLE: Reading Diameters

N20 # IF D5 >.505 THEN GOTO :END


N...
N349 # :END
N350 M0
N350 #PRINT “ TOOL DIAMETER #5 SHOULD BE NO LARGER THAN .505",

EXAMPLE: Writing Diameters

N89 # D2 = D2 + .01
This line will read the current value of diameter offset #2, then write a new
diameter for #2, .01 larger, into the tool table.

FX1-FX48, FY1- These variables are used to read the current value of each fixture offset. It can
FY48, FZ1-FZ48, also be used to establish or write a value in the table. The current value of any
FA1-FA48, FB1- fixture offset can be changed by placing the variable on the left side of the
FB48: Fixture Offset equal sign.
Variables
FY3 Read/write the Y of fixture three
FZ34 Read/Write the Z of fixture thirty four

EXAMPLE: Reading

N15 G91 G10 L02 X2. P1


N16 # IF FX1 >30. THEN GOTO :SUB3 Read the X value of fixture one
N...
N24 # :SUB3.
N25 G91 G10 L02 X-2. P1
N26 E0 X0 Y-1.
N27 L315

April 2003 Section 18: Macros 409


Fadal User Manual

EXAMPLE: Writing

N63 # FX1 = FX1 - 2.


H1 - H99: Tool These variables are used to read the current value of any tool length offset
Length Offset from the tool table. It can also be used to establish or write a value in the table.
Variables The current value for any tool length offset can be changed by placing the
variable on the left side of the equal sign.

EXAMPLE: Reading

N34 # IF H16 <-10.67 THEN GOTO :NOTOOL


N35 # IF H16 = 0 THEN GOTO :STOPIT
N...
N144 # :NOTOOL
N145 #R6=V6+1
N146 M6 T+R6

EXAMPLE: Writing

N654 # H33 = H33 - 16.

I, G, O, HO, TL,VF: The TL and VF macros are single variables returning the index of the tool offset
Macro Variables table, and index of the fixture offset table. The I-, O-, HO- and G macros are
arrays, returning inputs, manipulating spare outputs, relative user selected
home positions, and the current value of the G codes. All inputs and outputs
are available from the 1040-2A card.

Fadal reserves the right to use and change any input and output pins at any
time.

EXAMPLE: N10#PRINT I(3)


N20#O(2) = 1

410 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: Layout of I Macro:

The inputs 1 – 6 are user inputs available from the J2 connector on the 1040-
2A card. Pin 1 on the J2 connector is given by a little arrow visible on top of the
connector.

I(1) Input 1 J2 pin 17 I(2) Input 2 J2 pin 18

I(3) Input 3 J2 pin 19 I(4) Input 4 J2 pin 20

I(5) Input 5 J2 pin 21 I(6) Input 6 J2 pin 22

I(7) Renishaw Probe I(8) Scale Error

I(9) Ext. Slide Hold I(10) Slide Home

I(11) Spindle Orient I(12) Turret return

I(13) Slide external I(14) Orient Arm Home

I(15) Low range out I(16) Indexer stop sw.

I(17) Indexer arm sw. I(18) ATC fault

I(19) Drawbar down I(20) High range out

I(21) Oiler I(22) Arm at Table J2 pin 9

I(23) Arm at storage J2 pin 10 I(24) Y Aligned J2 pin 11

I(25) Pallet at A J2 pin 12 I(26) Pallet at B J2 pin 13

I(27) Door Open J2 pin 14 I(28) Door Closed J2 pin 15

I(29) Inhibit J2 pin 16

The input values contained in the I-array are either 0 (the input is low/on) or 1
(the input is high/off).

April 2003 Section 18: Macros 411


Fadal User Manual

EXAMPLE: Layout of G Macro:

G(l) (Group A G-codes) current interpolation type.

Contains G-code plus one as follows:

1 = (G0) point to point.

2 = (G1) linear.

3 = (G2) circular clockwise (CW).

4 = (G3) circular counter clockwise (CCW).

G(2) (Group B G-codes) current plane for circular algorithms.

G(3) (Group C G-codes) current cutter radius compensation mode.

G(4) (Group D G-codes) current Canned Cycle (CC) mode.

G(5) (Group E G-codes) current absolute/incremental mode

G(6) (Group F G-codes) current mode for return in Canned Cycle.

G(7) current location of spindle with respect to starting point (reference

plane)

0 = spindle at 0 (initial plane)

1 = spindle at "R1'

412 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: Layout of O Macro

O(1) Output 1 J2 pin 6

O(2) Output 2 J2 pin 7

O(3) Output 3 J2 pin 8

The output is updated when a value is assigned to one of the slots in O-array. If
a zero (0) is assigned to O(1), then the output on J2 pin 6 is pulled low. Any
other value than zero assigned to the output will cause the output to float.

EXAMPLE: Layout of HO Macro:

The HO-array contains values that represent the location of user selected home
relative to absolute position for all axes.

HO(1) X – axis HO(6) W - axis

HO(2) Y – axis HO(7) A - axis

HO(3) Z – axis HO(8) B - axis

HO(4) U – axis HO(9) C - axis

HO(5)V - axis

PX1 - PB1, PX2 - These variables are used to read the current value of the touch points. PX1
PB2, PX3 - PB3: would read the current X axis value of touch point P1. PY1 would return the
Probe Touch Point value for the Y axis location of touch point P1 and PZ1 returns the Z axis value.
Variables The values for ONLY three touch points are available. The values for the X, Y, Z,
A, and B axis may be read.

EXAMPLE: N197 #V1=1


N198 #R8=V1
N199 G1 G31 X20. Y25. F25. P+R1
N200 # PRINT “POINT #”,V1," IS X",PX1," Y",PY1

After touching a point with the probe, the position (P1) is now in memory and
each axis position can be used for any calculation or can be output through the
RS-232 port with the print command.

The printed line will read as follows:

April 2003 Section 18: Macros 413


Fadal User Manual

POINT #1 IS X18.5 Y17.65


R0-R9: Parametric These variables are used to pass data from the macro to the CNC program
Variables lines. Parametric parameters R0-R9 are also used for fixed subs and fixed
cycles (see Parametric Programming).

EXAMPLE: N15 # R2 = V56


N16 Z-R2 G1 F20.
N17 L9201 R0+.1 R1+0 R2+.25 R3+0 R4+1 Z-R9 F+R8 (ENGRAVING
TN: Tool Number This variable will return the numerical value of the current tool in the spindle.
This number is determined by the last M6 T# executed from the program.

EXAMPLE: N32 #V1=TN This would result in V1 being equal to the current tool number
TT: Tool Time This variable will return the time entered in the time table for life expectancy of
a specified offset.

Note: The TT and TU macro are active when the SETP parameters for tool time
are enabled (On).One of the options (2-5) must be selected.

EXAMPLE: N12 #V1=TT3 This will result in V1 being equal to the tool time entered in the
time table

TU: Tool Used TU variables accumulate the total amount of time that a specific tool has been
in use. For example, if tool 5 is used for ten minutes, then TU5 = 10. If tool 5 is
used for another seven minutes, then TU5=17. TU variables are retained
between part runs and when powering down the machine.

After a tool change, declare a tool length offset (H1 - H99). The current tool
length offset applied determines which TU variable will be used. For example, if
H7 is in effect, then TU7 will be active. The TU variable increases whenever the
control is in the interpolation mode only.

Note: The TT and TU macro are active when the SETP parameters for tool time
are enabled (On) by choosing one of the options (see SETP for tool life
management options).

EXAMPLE: N31 #IF TU3=3 THEN GOTO :CHANGETOOL


——————
N300 #:CHANGETOOL

This will cause a jump to the label :CHANGETOOL when the time is equal to 3.
Using the option 2 of tool life management in the SETP page allows the user to
program the tool time displayed in the tool time table and the TU to read the
used time in the tool time table. The combination of the TT and the TU macro

414 Section 18: Macros April 2003


Fadal User Manual

allows the user to customize a macro to include a specialize tool life


management application.

V1-V100: Macro These variables are used in the macro lines.


Variables

EXAMPLE: N88 # V1 = V2 + V3

Functions
ABS ABS will return the absolute value of a number.

EXAMPLE: V2 = ABS (V1)


If V1 is equal to -2.3 then V2 would be 2.3, and if V1 is equal to 2.3, then V2
would be 2.3. The absolute value of a number is always the positive value of
the number.
ATN ATN will return the Arc tangent of a number. See the SET command for degrees
or radians.

EXAMPLE: V5 = ATN (V6/V7)


If V6 is the opposite side of a right angle and V7 is the adjacent side of the
right angle, then V5 would be equal to the angle between the sides.
To calculate mathematical function Tangent of an angle use the following
formula: TANGENT(angle) = SIN(angle) / COS(angle)

COS COS will return the Cosine of an angle. See the SET command for degrees or
radians.

EXAMPLE: V56 = COS (V34 + V72)


If V34 and V72 represent angles, V56 would then be equal to the cosine of the
sum of the two angles.
To calculate mathematical function Inverse Cosine of an angle use the
following formula:

ARCCOS(angle) = 1570796-ATN(angle / SQR(1-angle*angle)

INT INT will return the integer of a number.

EXAMPLE: V100 = INT(V23)


If V23 = 12.345 then V100 = 12.
If V23 = -12.345 then V100 = -12.

April 2003 Section 18: Macros 415


Fadal User Manual

If V23 = 12.513 then V100 = 12.


If V23 = -12.513 then V100 = -12.

The integer value uses only the whole number portion of the number.

RND RND will return a rounded value of a number. The number of places to round to
is set using the #SET RND# command. To set the rounding to four places enter
the command below.

EXAMPLE: N5 #SET RND4 This line sets the number of places to round to
N6 # V1 = RND(V1) This rounds the V1 value to 4 places

Note: When higher accuracy is desired, the rounding may be calculated. This
eliminates the need to use the #SET RND# command. To round off numbers
to the fifth place use this equation: V1 = INT(V5 * 10000)/10000. The value
of V5 will be rounded to the fifth place and V1 will be used for the rounded
number. This example only affects the individual line.

SGN SGN is used to determine the sign of a value.

EXAMPLE: V50 = SGN (V77 - V78)


If (V77 - V78) is a positive value, then V50 is +1.
If (V77 - V78) is zero, then V50 is +1.
If (V77 - V78) is a negative value, then V50 is -1.
SIN SIN will return the sine of an angle. See the macro SET command for selecting
degrees or radians.

EXAMPLE: V56 = SIN (V34 + V72)


If V34 and V72 represent angles, V56 would then be equal to the sine of the
sum of the two angles.
To calculate mathematical function Inverse Sine of an angle use the following
formula: ARCSIN(angle) = ATN(angle) / SQR(1-angle*angle)

SIN/COS To calculate mathematical function Tangent of an angle use the following

formula: TANGENT(angle) = SIN(angle) / COS(angle)

416 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: V12 = SIN(30) / COS(30)


V12 would be equal to the tangent function of a 30 degree angle

SQR SQR will return the square root of a number. If the number is negative, an error
is printed and the program will halt.

EXAMPLE: V46 = SQR (9) V46 would be equal to 3


V45 = SQR (V1 - (V63*V29)) V45 would be equal to the square root of (V1 -
(V63*V29))

Macro Commands Macro commands help direct each equation. Processing will stop if the
commands are incorrectly used. Computational errors will cause an error
message to be printed on the screen. The processing of macros can be
executed step by step using the DEBUG command.

CLEAR CLEAR is used to zero macro variables. The variables may need to be cleared
at the beginning of a macro routine or at some place within the program. The
CLEAR macro can zero one variable at a time or a range or list of variables. If
the CLEAR statement is left blank, ALL variables (V1-V100) are cleared.

Note: It is recommended that all variables be cleared at the start of each


program.

EXAMPLE: #CLEAR This zeroes all macro variables

EXAMPLE: # CLEAR V1 This line will zero only variable V1


# CLEAR V1-V20 This line will zero variables V1 through V20
# CLEAR V3-V7,V15,V30,V45-V60 This line will zero variables V3 through V7,
then V15 and V30, then V45 through V60

GOTO The GOTO statement is used to redirect the program. When used separately,
the program is redirected to the line number or label indicated.

EXAMPLE: N3 #V1= 1 This sets V1 equal to 1


N4 # IF V1 >2 THEN GOTO :INSIDE
This checks the value of V1. If V1 is less than or equal to 1 continue at N5, if
the value of V1 is greater than 1 then continue at label :INSIDE
N5 X1.0 Y-2.3 G1
N6 X3.6 Y-3.0
N15# :INSIDE This is label :INSIDE

April 2003 Section 18: Macros 417


Fadal User Manual

N16 # R3 = V2 * V17 This line transfers the multiplication of V2 * V17 to R3


parameter
N25 X+ R3 F20. G1 This transferred R3 to X
N26 #GOTO :INSIDE Continue at label :INSIDE at N15

Labels Labels are used to identify a GOTO location in the program. It is usually best to
choose labels that are descriptive of the area or instruction to which they are
assigned. The colon (:) assigns the LABEL field.

EXAMPLE: N5 #V1=1 This sets the value of V1 to be 1


...
N9 #GOTO :DOMATH This sends the operation to line N100 to label DOMATH
N10 #:WORK This the label WORK the end destination of line N110
N11 #V1=V1+1 This changes variable V1 by adding 1 to its value
N12 #IF V1=5 THEN GOTO :DOMATH
This checks the value of V1 If V1 is equal to a value of 5 it goes to N100, label
DOMATH,if not the program continues at line N14
N13 #R9=R9+V1 This line transfers the value of V1 to parameter R9
N14 T+R9 M6 This line transfers the value R9 to the Tool number
N...
N100 #:DOMATH This is the end destination from the GOTO on line N5.
N...
N110 #GOTO :WORK This sends the operation to line N10 to label WORK
Labels may not have a comment on the same line. See below:

N2 #:TEST ‘THIS IS A TEST A comment is not allowed on a label line

IF - THEN The IF-THEN command is used for comparisons. The IF part of the macro line
will examine a variable or equation and if it is true, it will execute the THEN part
of the macro line. If the IF part of the macro is not true, it will not execute the
THEN part of the macro line and will continue with the next line in the program.
When N words are used for the THEN part of the statement, they are NOT
renumbered when the NU command is used in the control. If the program is
renumbered, then the N word must be altered to match the program.

Note: The THEN part of the statement may also use labels. See Label
definitions.

418 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: Example 1:

N200 # IF V1 > V2 THEN GOTO :PART3


N201 E2 X0 Y0
...
N299 # :PART3
N300 E3 X0 Y0

In line N200, if it is true that V1 is greater than V2, then the program will jump
to line number N300. If V1 is not greater than V2 the program will skip to line
N201.

The THEN part of the statement may contain any valid macro statement.

EXAMPLE: Example 2:

N100 # IF (V5 + V6) <= 0 THEN V7 = ABS(V5 + V6)

In line N100, if the sum of V5 plus V6 is less than or equal to zero, then let the
value of V7 be the absolute value of the sum of V5 plus V6.

INDEX The INDEX macro is used to send indexer code directly to the FADAL indexer.
This feature is only available when used with the FADAL indexer. For more
information on the FADAL indexer see the indexer manual.

EXAMPLE: N5 # INDEX “M1 A90. F300.” This sends CNC code to the FADAL indexer to
move the indexer 90 degrees at a feed rate of 300

INPUT The INPUT command is used to allow the operator to enter program data
during execution of the macro. When the INPUT statement is executed, the
program processing stops until the operator presses the ENTER key. The PRINT
command may be used to prompt the operator for the desired data to enter.
Placing a comma at the end of the PRINT statement will move the cursor to the
end of the text on the screen.

EXAMPLE: N1 #CLEAR
N2 #PRINT “ENTER THE POCKET LENGTH”,
N3 #INPUT V1
N4 # PRINT “ENTER THE POCKET WIDTH”,
N5 #INPUT V2

These statements prompt for the V1 and V2 data required for the program. The
program suspends operation until each value is entered.

April 2003 Section 18: Macros 419


Fadal User Manual

LABELS Labels designate a place in the program where program execution may be
directed when preselected conditions have or have not been met. Labels are
unaffected by program renumbering and take the form #:LABEL. Nothing else
may appear on the line. The call to a label will include the colon followed by the
name of the label. Each label in a program must have a unique name. If there
are any duplicate names, program execution will always go to the first label in
the program. Labels may be any alphanumeric the programmer chooses.
Labels must be preceded by a colon (:) and there may be no comments or
other code in the line with the label. A label indicates a place in the program
where program execution may continue after a jump. This may be a routine
that is to be repeated several times, or a routine that is to be executed only
when certain conditions are met. To make a program easier to read, labels
should describe the operation taking place. Such as :LOOP :JUMPBACK.

PRINT The PRINT statement is used to print text and data to the screen.

Note: Text that is to be displayed MUST be enclosed in quotation marks.

EXAMPLE: N4 #V6=25.45
N5 #PRINT “THE VALUE CALCULATED: ”,V6,", IS THE X VALUE."

Using a comma to separate the variable from the text, the screen display is as
follows:

THE VALUE CALCULATED: 25.45, IS THE X VALUE.

Note: Do not use a semicolon to separate the variable from the text.

SET The SET command is used to change macro parameters. There are five
parameters to establish using the SET command. They are DEBUG, RUN,
RND#, DEGREES, and RADIANS. Setting DEGREES or RADIANS affects the SIN,
COS, and ATN commands. The SET commands are inputted after entering the
machine command MA at the command prompt or in the macro program. The
DEGREES and RADIANS parameters may also be set within a macro as
described below. The SET command, without specifying the setting function,
restores all SET parameters to the default.

EXAMPLE: MA Example:

MA
SET RND5
The “#” sign is not required when using the MA command. This Command is
typed at ENTER NEXT COMMAND Prompt.

420 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: Macro Example:

N24 # SET RADIANS


N25 # V2 = ATN(V1)
N26 # PRINT, V2
N27 # SET DEGREES
N28 # V2 = ATN(V1)
N29 # PRINT, V2

Line N26 prints the angle V2 in radians. Line N28 prints the angle V2 in
degrees.

SET DEBUG The debug command is used temporarily in the macros to proof the macro
lines. Debug mode works only when SU from the command mode is used. The
advantage to using the debug mode is that it will display the values of the
variables. To start the Debug mode, enter #SET DEB in the macro program or
SET DEB using the MA command. To end the Debug mode, to enter SET RUN
using the MA command or enter #SET RUN in the macro program.

SET DEGREES / SET DEG and SET RAD commands are modal and cancel each other. When
RADIANS using the SIN, COS, or ATN functions the calculations are based upon the
DEGREE or RADIANS setting. The default setting is degrees.

Radians = ((Angle in Degrees * PI) / 180)


Degrees = ((Angle in Radians * 180) / PI)

PI=3.14159265

SET RND# This function will return a rounded value of a number. The number of places to
round to is set using the SET RND# command. To set the rounding to four
places enter the command below. The maximum number of places to round to
is five.

EXAMPLE: MA
SET RND4

Note: When higher accuracy is desired, the rounding may be calculated. This
eliminates the need to use the SET RND# command. To round off numbers
to the fifth place use this equation: V1 = INT(V5 * 10000)/10000. The value
of V5 will be rounded to the fifth place and V1 will be used for the rounded
number. This example only affects the individual line.

April 2003 Section 18: Macros 421


Fadal User Manual

SET RUN This command is used to exit the DEBUG mode. Using the MA command, enter
SET RUN to exit the DEBUG mode or enter #SET RUN in the macro program.
The program may then be executed.

SINPUT The SINPUT command is used to wait for and accept data though the RS-232
port during execution of a macro. When the SINPUT statement is executed, the
program processing stops until the control receives data through the RS-232.
The control will not look ahead of the line with the SPRINT macro command.
The LOOK AHEAD process begins when data is received through the RS-232
port. The data sent to the port must terminate with a carriage return.

EXAMPLE: N1 #CLEAR
N2 #PRINT “WAIT ! NOW ENTERING THE POCKET LENGTH DATA”,
N3 #SINPUT V1
N4 #PRINT “WAIT ! NOW ENTERING THE POCKET WIDTH DATA”,
N5 #SINPUT V2

SPRINT The SPRINT command is used to send data out through the RS-232 port. Text
and variable data can be sent. The SPRINT statement prints through the RS-
232 port the same as the PRINT statement displays to the screen.

Note: Text must be enclosed in quotation marks.

EXAMPLE: N43 # SPRINT “PART NUMBER ”,V4," DATA"


N44 # SPRINT “X ”,AX," Y “,AY

In line N43 the words, part number, and data are considered to be text. If the
value of V4 is 98645 then N43 would print out:

PART NUMBER 98645 DATA.

START # The START macro is used to jump to another program. This is used in a
situation where the program being called has subroutines. Subroutines are not
allowed in a subprogram, this is the reason why this START command is used.
This command can be used to link many user main programs. It executes a
jump only. No return will occur. The START command would generally be used
in place of an M2 or M30 at the end of each program being linked. When the
next program is called, the operator must press the AUTO button again to run
the next program.

422 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: N3245 G0 G90 G49 Z0


N3246 E0 X0 Y0
N3247 #START 7 This calls a jump to program O7
WAIT

This command temporarily pauses processing of the program lines at the line
with the WAIT command. Processing will continue when the execution buffer is
completely exhausted. This might be used to Print out a message when the
program is completely finished. The control will print out through the RS-232
port during the preprocess period unless the WAIT command is used. The
WAIT command is also used to have the machine absolutely stationary before
printing out the current location of the machine using the axis variables.

EXAMPLE: N256 G1 G31 Z-30. F1.


N257 # WAIT
N258 # SPRINT “POINT #”,V5,": X",AX," Y",AY

In line N257 the control will stop processing the program and wait for the
execution buffer to be exhausted before executing line N258 which would print
out the current location of the machine.

Note: The execution buffer is a part of memory used by the control to store
processed program data. When the control “looks ahead”, this processed
data is stored in the execution buffer. Using the SETP command allows the
programmer to vary the size of the buffer. On the machine parameter page
the term “Binary buffer” is used for the execution buffer.

AND, OR, and NOT AND, OR, and NOT are logical operators that allow the programmer to
construct compound tests from one or more expressions. In BASIC, a
compound Boolean expression is created by connecting two Boolean
expressions with a “logical operator”. The FADAL macro language allows
“logical operators”. The number of logical operators in a statement is limited
by the maximum number of characters allowed on a single line, 63. This
includes all spaces and the pound sign (#).

A good rule for writing compound expressions is to always verify that the
statement will evaluate to both a TRUE and a FALSE condition. The items being
compared must be segregated with parentheses to avoid confusion in lengthy
or complex statements. This will also ensure that the statement’s components
are evaluated in the order that the programmer intended.

EXAMPLE: Example 1:

AND

April 2003 Section 18: Macros 423


Fadal User Manual

IF (V1 GT V2) AND (V1 LT V3) THEN GOTO :LOOP


This first example is true only if expression 1 and expression 2 are both true,
then control jumps to the label :LOOP.

EXAMPLE: Example 2:

OR
IF (V1 GT V2) OR (V1 LT V3) THEN GOTO :LOOP
In this example, either condition can be true for control to jump to the label
:LOOP.

EXAMPLE: Example 3:

NOT
IF NOT(V1=0) THEN GOTO :LOOP
In this example if V1 is NOT equal to zero then control jumps to the label :LOOP.

EXAMPLE: Example 4:

AND, OR, and NOT


IF (V1 LT V2) OR (V1 LT V3) AND (NOT(V1 GT V4)) THEN GOTO :LOOP

The fourth example shows multiple operators strung together in one statement.
Combinations of AND, OR, and NOT can be used to build up very complex
expressions. There is no practical limit to their complexity, except the obvious
one of writing an expression that may be difficult to read and exceeds 63
characters.

Macro Tutorial
Overview This subsection is designed as a tutorial for FADAL’s Macro Language. Several
Macro Language commands are referenced here. For a complete list with
applicable syntax, review the Macro Commands section.

Summary Macro programming uses a subset of BASIC to manipulate data for use in G
code programs. If a shape can be defined with an equation or all of its
elements with variables, then it may be advantageous to use macro
programming.

The availability of compare statements and algebraic operators in the form of IF


THEN loops and +, -, *, /, SIN, COS and ATN (to list a few), makes it possible to
create complex geometry with a few lines of code.

424 Section 18: Macros April 2003


Fadal User Manual

This discussion will include examples of macro programs with their


explanations and, where appropriate, the equations from which the geometry
is derived. It will start with simple examples and proceed through to the more
complex functions.

Conventions All macro lines must be preceded by a pound sign # immediately following a
line number. The open paren (and asterisk * are macro operators and cannot
be used in a macro statement to denote a comment. Instead use an
apostrophe ‘ to denote a comment in a macro line. The open and closed
parens ( |) are grouping operators used to indicate order of operation, use as in
an algebraic equation. The asterisk * is a multiplication symbol.

Comments Comments are very important part of macro programming. They explain the
program to others, and remind the programmer why they wrote it the way they
did. Comments on a macro line begin with an apostrophe ( ‘ ), and can extend
to a total line length of 63 characters.

N3 # V100=1.2345 ‘V100 IS THE LENGTH OF THE PART 2

Calculations The mathematical operations of addition, subtraction, multiplication and


division are represented by +, -, * (asterisk), and / (slash), respectively.

EXAMPLE: N11 # V10=3/V12

Variables
V1-V100: Macro There are 100 available variable or ‘V’ registers numbered from V1 to V100.
Variables These registers may be used to manipulate data but may not be used directly
in the G code program. The manipulated values must be passed to the R
registers for use in the program. There are ten R registers numbered R0 to R9.
Since the control uses R0 through R4 in various fixed cycles, it is usually
advantageous to pass values to the R registers starting with R9 and proceeding
backwards to R0. Be careful not to ‘step on’ any values in use. Re-assign
values if necessary.

These variables are used in macro language statements.

EXAMPLE: N88 # V1 = V2 + V3
Arrays Variable arrays can now be used; that is, the subscript of a variable can now be
a variable or arithmetic expression. The subscript variables are D, FX, FY, FZ,
H, PX, PY, PZ, PA, PB, R, and V. The subscript for a variable must not exceed
the allowed range for the variable. For instance, the subscript for a V variable
must be 1 through 99 and the subscript for a FX variable must be 1 through
48.

April 2003 Section 18: Macros 425


Fadal User Manual

EXAMPLE: If the variables V1=5 and V2=1 then the following are equivalent:

#V5=1
#V(5)=1
#V(V1)=1
#V(V1+V2-1)=1
#V(V1/V2)=1
#V(V(SQR(V2))=1

AX, AY, AZ, AA, AB, Axis position variables are used to read the current location of the desired axis.
AC: Axis Position
Variables N79 # IF AZ >12.050 THEN GOTO :GETNEXT

In the above example, if the Z axis is at 12.050 inches by the time this line is
executed, then the control will jump to the line in the program with the label
:GETNEXT.

EXAMPLE: N99 E2 X0 Y0
N100 Z-30 G31 F50.
N101 G91 Z.05
N102 G90
N103 Z-30. G31 F1. The probe will stop the Z axis when it touches
N104 #IF AZ > 12.050 THEN GOTO :GETNEXT

CLEAR The CLEAR statement is used to zero the values in the variable table. If used
alone it will clear all of the variables in the table. If a variable number is
included after the command CLEAR the variable or variables specified will be
cleared.

EXAMPLE: #CLEAR Clears all V registers OR


#CLEAR V1 Clears only V1 OR
#CLEAR V10-V30 Clears V10 through V30

In normal programming practice a CLEAR statement at the beginning of the


program will ensure that all of the variables will be zeroed. This is done to
prevent a variable register that the program will use from having a value that
may shorten a loop sequence or exceed the test value.

For example, if a statement reads #IF V1 <|> 10 THEN GOTO :JUMP with the
intent of looping 10 times, and the value of V1 is 15 from a previous program,
the program will always go to the label :JUMP. This line is an example of a bad
programming practice. The only way a loop written with this statement will ever
end would be if V1 were equal to 10. If the loop were counting up it would be

426 Section 18: Macros April 2003


Fadal User Manual

better written as #IF V1 <= 10. In this form once the count exceeded 10 the
program would drop out of the loop. If a specific value is required in a register it
must be entered by the programmer with an assign statement.

To assign a value to a V variable use the equal sign. Ex: #V1=10 #V1=V2
#V1=R9 #V1=SIN(V10) any valid Macro function may be used to assign a
value to a Macro variable. The R variables may also be assigned values in the
same manner as a V variable. In addition, values may be directly assigned
outside of a Macro statement using a + or - . The value passed to an R variable
in this manner must be either a number or another R variable.

EXAMPLE: R9+10. R8-18. R7+R6

Operator Interaction
PRINT PRINT statements are used to display messages on the screen for the operator.
Anything written that will not change must be enclosed in quotes. Any values
represented by V or R variables must be outside of the quotes ( “ ) and
separated by a comma ( , ).

#PRINT V10
#PRINT “CHANGE PART”
#PRINT “THIS IS PART NUMBER ”,V10
#PRINT “THIS IS PART NUMBER ”,V10,"THERE ARE “,V11,”PARTS LEFT"

SCREEN DISPLAY:

36920
CHANGE PART
THIS IS PART NUMBER 36920
THIS IS PART NUMBER 36920 THERE ARE 121 PARTS LEFT
INPUT An INPUT statement requires that a variable register be specified to receive the
input value, this may be requested by the PRINT statement. The operator will
enter a requested value and that value will be placed in the variable register
specified in the INPUT statement then continue program operation. Pressing
the return key without entering a value will enter a zero (0) in the variable
register specified and continue program execution.

The INPUT statement is used to halt program execution to receive data input
and to display a print statement. It is assumed that a print statement will
request some action from the operator. A PRINT statement only displays to the
screen. PRINT will not halt program execution and therefore may scroll off of
the screen before the operator can read it.

April 2003 Section 18: Macros 427


Fadal User Manual

EXAMPLE: #PRINT “ENTER THE DIAMETER OF THE END MILL”


#INPUT V100

Program Branching
LABELS Labels designate a place in the program where program execution may be
directed when preselected conditions have or have not been met. Labels are
unaffected by program renumbering and take the form #:LABEL. Nothing else
may appear on the line. The call to a label will include the colon followed by the
name of the label. Each label in a program must have a unique name. If there
are any duplicate names, program execution will always go to the first label in
the program. Labels may be any alphanumeric the programmer chooses.
Labels must be preceded by a colon (:) and there may be no comments or
other code in the line with the label. A label indicates a place in the program
where program execution may continue after a jump. This may be a routine
that is to be repeated several times, or a routine that is to be executed only
when certain conditions are met. To make a program easier to read, labels
should describe the operation taking place. Such as :LOOP :JUMPBACK.

GOTO The GOTO statement may also be used in a line by itself to redirect program
execution. In this form it is an unconditional jump, meaning there are no
conditions to be met for the jump. Program execution is directed to the
specified line or label.

EXAMPLE: #GOTO N45 OR


#GOTO :LABEL

These lines will cause program execution to branch to the line or label
specified. GOTO statements may address a line number directly; however, if
the program is re-numbered it will be necessary to verify that all of the
addresses have not changed. The control WILL NOT update any N words in
GOTO statements when a program is re-numbered. A preferred method is to
use macro labels.

IF-THEN The IF-THEN statement provides the FADAL macro programming language the
flexibility necessary for compact, powerful programs. It takes the form IF some
condition is true THEN do something or go to an address.

The condition to be met may be a simple statement comparing some A to


some B:

EXAMPLE: #IF V1=V2


This compare statement looks for equal values in variables V1 and V2
#IF V1=8

428 Section 18: Macros April 2003


Fadal User Manual

This compare statement checks to see if the content of variable V1 is equal to


8

Some valid equalities: V1=R1 R1=V1 V1=SIN(V2) V5=TN. The condition may
also be a Boolean Equation.

EXAMPLE: #IF V1*V2=3 Which reads: if V1 times V2 equals V3


or
#IF V1*V2< >V3 Which reads: if V1 times V2 is not equal to V3

Symbolic Operators The Boolean operators used in the FADAL Macro language are:

= or EQ for Equal
< or LT for Less than
> or GT for Greater than
<= or LE for Less than or equal to
>= or GE for Greater than or equal to
<|> or NE for Not equal to

The THEN portion of the statement may be used to assign or re-assign a value
to a variable or register.

EXAMPLE: THEN V1=V5 or THEN R6=SIN(V34)

The THEN statement may also be used to re-direct program execution.

EXAMPLE: THEN GOTO N45 Re-directs program execution to line number N45
or
THEN GOTO :LOOP Re-directs program execution to the label :LOOP
If program execution is re-directed to a line number, it will be necessary to
verify that the line number is correct any time the program is re-numbered.
When the program is re-numbered the control WILL NOT update the line
numbers in an IF THEN loop or a GOTO statement. For this reason it is
preferable to use labels to re-direct program execution.

A complete IF THEN statement will take the form:

#IF V1 <= 28 THEN GOTO :LOOP

This line reads, if the contents of variable register V1 are less than or equal to
28, then go to LOOP. This line could be used in a program with V1 as a counter
to perform some operation until the value of V1 is greater than 28, once the

April 2003 Section 18: Macros 429


Fadal User Manual

value of V1 exceeds 28, program operation will continue with the program line
following the IF THEN statement.

#IF V1 = 1 THEN V20 = V5

This line reads, if the contents of variable register V1 are equal to 1, then make
the contents of variable register V20 equal to the contents of variable V5. This
IF THEN statement would be used to set or reset the value of variable register
V20 to the value in V5 once V1 is set to 1.

AND, OR, and NOT


Logical Operators AND, OR, and NOT are logical operators that allow the programmer to
construct compound tests from one or more expressions. In BASIC, a
compound Boolean expression is created by connecting two Boolean
expressions with a “logical operator”. The FADAL macro language allows
“logical operators”. The number of logical operators in a statement is limited
by the maximum number of characters allowed on a single line, 63. This
includes all spaces and the pound sign (#).

A good rule for writing compound expressions is to always verify that the
statement will evaluate to both a TRUE and a FALSE condition. The items being
compared must be segregated with parentheses to avoid confusion in lengthy
or complex statements. This will also ensure that the statements components
are evaluated in the order that the programmer intended.

430 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: Example 1:

AND
IF (V1 GT V2) AND (V1 LT V3) THEN GOTO :LOOP
This first example is true only if expression 1 and expression 2 are both true,
then control jumps to the label :LOOP.

EXAMPLE: Example 2:

OR
IF (V1 GT V2) OR (V1 LT V3) THEN GOTO :LOOP
In this example either condition can be true for control to jump to the label
:LOOP.

EXAMPLE: Example 3:

NOT
IF NOT(V1=0) THEN GOTO :LOOP
In this example if V1 is NOT equal to zero then control jumps to the label :LOOP.

EXAMPLE: Example 4:

AND, OR, and NOT


IF (V1 LT V2) OR (V1 LT V3) AND (NOT(V1 GT V4))
THEN GOTO :LOOP

The fourth example shows multiple operators strung together in one statement.
Combinations of AND, OR, and NOT can be used to build up very complex
expressions. There is no practical limit to their complexity, except the obvious
one of writing an expression that may be difficult to read and exceeds 63
characters.

Counting Loops Counting loops may be initiated to count the number of parts machined, holes
drilled, etc. The basic code generally takes the form:

# V49 = V49 + 1
# D98 = D98 + 1

The values may be placed in any unused register, for example, any valid V, D,
R, H, TT, or FO register. When using a register for counting, care must be taken
to insure that the value in the register is not overwritten by another function in
use by the control.

April 2003 Section 18: Macros 431


Fadal User Manual

Inaccuracies in the count may be caused by the look-ahead feature in the


control. This may be overcome with the use of a macro WAIT statement in the
line preceding the count statement. The WAIT statement does not cause the
machine to stop, it stops look ahead past this point until the program execution
actually reaches this point in the program. This will keep the counter from
incrementing until the event being counted actually occurs.

Counting loops are best placed at the end of the program.

FADAL Macro
Language Examples
D-Hole Macro 1) Move to the center of the D-Hole.

a. This move can be made incrementally, but this macro switches to abso-
lute. So remember, if you are programming in incremental, enter the
G91 code on the next line of the program after the call to this macro.

2) Position the Z axis to the desired Z depth.

3) Establish a feed rate.

4) Use a D word to establish the tool diameter offset to use.

a. This macro assumes that the tool diameter is entered into the tool
table.
b. For tool tables set up for radius Y, enter the radius.

5) Type the R words and M98 P800.

a. R5: Use 0 for CW, and 1 for CCW


b. R6: Circle radius
c. R7: Blend radius
d. R8: Distance to the line
e. R9: Angle

432 Section 18: Macros April 2003


Fadal User Manual

EXAMPLE: O1 (D-HOLE EXAMPLE: MAIN PROGRAM


(TOOL #1, .5 DRILL
M6 T1
G90 G0 S5000 M3 E1 X2. Y-3.
H1 Z.1 M8
G81 G99 R0+.1 Z-.6 F40. X2. Y-3.
G80
M5 M9
G90 G0 G49 Z0
(TOOL #2, .5 HSS 2FL EM
M6 T2
G90 G0 S7000 M3 E1 X2. Y-3.
H2 Z.1 M8
Z-.3 G1 F30.
F45.
D2
R5+1. R6+2. R7+.5 R8-.7 R9+0 M98 P800
Z.1 G0
M5 M9
G49 Z0
E0 X0 Y0
M2

Sub Program 800 N1O800(D-HOLE MACRO: SUB PROGRAM


N2#’1ST MOVE TO D HOLE CENTER, THEN POS. Z AXIS)
N3#’R5=0 FOR CW, 1 FOR CCW)
N4#’R6=RADIUS OF CIRCLE
N5#’R7=BLEND RADII
N6#’R8=X DIR & DIS TO LINE
N7#’R9=ANGLE
N8#V1=AX ‘GET CURRENT X POSITION
N9#V2=AY ‘GET CURRENT Y POSITION
N10#V3=R5 ‘CW OR CCW
N11#V4=R6 ‘RADIUS OF CIRCLE
N12#V5=R7 ‘BLEND RADIUS
N13#V6=R8 ‘X DIR & DIS TO LINE
N14#V8=V4-V5
N15#V10=-(ABS(V6)-V5) ‘X CENTER OF BLEND
N16#V11=SQR((V8*V8)-(V10*V10)) ‘Y CENTER OF BLEND
N17#V12=V11/V10 ‘SLOPE OF LINE THROUGH CENTER OF CIRCLE AND
CENTER

April 2003 Section 18: Macros 433


Fadal User Manual

N18#V13=-SQR((V4*V4)/(1+(V12*V12))) ‘X END PNT ON BND RAD


N19#V14=V12*V13 ‘Y END PNT ON BND RAD
N20#IF R5=0 THEN GOTO :CW
N21#R3=V6 ‘FIRST X MOVE TO LINE
N22#R4=0
N23 G90 G8
N24 M98 P900
N25 X+R5 Y+R6 G1
N26#R3=V6
N27#R4=-V11 ‘Y MOVE TO BND RAD
N28 M98 P900
N29 X+R5 Y+R6
N30#R1=R5
N31#R2=R6
N32#R3=V10
N33#R4=-V11
N34 G8
N35 M98 P900
N36#R1=R5-R1 ‘I TO B.R. CENTER
N37#R2=R6-R2 ‘J TO B.R. CENTER
N38#R3=V13 ‘X BND RAD END POINT
N39#R4=-V14 ‘Y BND RAD END POINT
N40 M98 P900
N41 X+R5 Y+R6 I+R1 J+R2 G3
N42#R1=V1-R5
N43#R2=V2-R6
N44#R3=V13
N45#R4=V14 ‘Y CIRCLE END POINT
N46 M98 P900
N47 X+R5 Y+R6 I+R1 J+R2
N48#R1=R5
N49#R2=R6
N50#R3=V10
N51#R4=V11
N52 M98 P900
N53#R1=R5-R1
N54#R2=R6-R2
N55#R3=-V6 ‘X BND RAD END POINT
N56#R4=V11 ‘Y BND RAD END POINT
N57 M98 P900
N58 X+R5 Y+R6 I+R1 J+R2
N59#R3=-V6

434 Section 18: Macros April 2003


Fadal User Manual

N60#R4=0
N61 M98 P900
N62 X+R5 Y+R6
N63#R3=0
N64#R4=0
N65 M98 P900
N66 X+R5 Y+R6 G40
N67 M99
N68#:CW
N69#R3=V6 ‘FIRST X MOVE TO LINE
N70#R4=0
N71 G90 G8
N72 M98 P900
N73 X+R5 Y+R6 G1
N74#R3=V6
N75#R4=V11 ‘Y MOVE TO BND RAD
N76 M98 P900
N77 X+R5 Y+R6
N78#R1=R5
N79#R2=R6
N80#R3=V10
N81#R4=V11
N82 M98 P900
N83#R1=R5-R1 ‘I TO B.R. CENTER
N84#R2=R6-R2 ‘J TO B.R. CENTER
N85#R3=V13 ‘X BND RAD END POINT
N86#R4=V14 ‘Y BND RAD END POINT
N87 M98 P900
N88 X+R5 Y+R6 I+R1 J+R2 G2
N89#R1=V1-R5
N90#R2=V2-R6
N91#R3=V13
N92#R4=-V14 ‘Y CIRCLE END POINT
N93 M98 P900
N94 X+R5 Y+R6 I+R1 J+R2
N95#R1=R5
N96#R2=R6
N97#R3=V10
N98#R4=-V11
N99 M98 P900
N100#R1=R5-R1
N101#R2=R6-R2

April 2003 Section 18: Macros 435


Fadal User Manual

N102#R3=V6 ‘X BND RAD END POINT


N103#R4=-V11 ‘Y BND RAD END POINT
N104 M98 P900
N105 X+R5 Y+R6 I+R1 J+R2
N106#R3=V6
N107#R4=0
N108 M98 P900
N109 X+R5 Y+R6
N110#R3=0
N111#R4=0
N112 M98 P900
N113 X+R5 Y+R6 G40
N114 M99

Sub Program 900 N1O900(ROTATE X & Y)


N2#V30=(R3*COS(R9)-R4*SIN(R9))
N3#V31=(R3*SIN(R9)+R4*COS(R9))
N4#R5=V30+V1
N5#R6=V31+V2
N6 M99

Row Column Pattern 1) Start the fixed cycle


Macro
2) Type the R words:

R9 = Number of holes across R7 = Number of holes down


R8 = Space between X axis holes R6 = Space between Y axis holes

EXAMPLE: O10(ROW & COLUMN: MAIN PROGRAM#CLEAR


#SET RUN
G90 G0 G40 G80 G17
E0 X0 Y0
G90 G0 S1000 M3 E1 X0 Y0
H1 Z0.1 M8
G81 G99 Z-1.R+0.1 F100. M45
R9+3.R8+1.R7+3.R6+1.
M98 P810
G80
M5 M9
G90 G0 G49 Z0
E0 X0 Y0
M2

436 Section 18: Macros April 2003


Fadal User Manual

Sub Program 810 O810(ROW & COLUMN: SUBPROGRAM


#’R9 IS THE NUMBER OF HOLES ACROSS
#’R8 IS THE SPACE BETWEEN X HOLES
#’R7 IS THE NUMBER OF HOLES DOWN
#’R6 IS THE SPACE BETWEEN Y HOLES
#V1=R9
#V2=R8
#V3=R7
#V4=R6
#V5=V1
#R5=V5
#V50=0’V50 IS THE HOLE COUNTER ACROSS
#V60=0’V60 IS THE HOLE COUNTER DOWN
#V70=0’V70 IS LAST ROW COUNTER
G91
#:RIGHT
#IF V50=V1 THEN GOTO:BACK
#V50=V50+1
X+R8
#GOTO:RIGHT
#:BACK
#V60=V60+1
#V50=0
#R4=(R9*R8)-R8
X-R4 Y-R6
#IF V60=V3 THEN GOTO:LAST
#GOTO:RIGHT
#:LAST
X+R8
#V70=V70+1
#IF V70=V5 THEN GOTO:END
#GOTO:LAST
#:END
M99

Spiral Cut Macro O5757


#CLEAR Clears all macro variables
G0 G90 G80 G40 G49
S1800 M3 M7
G0 G90 X0 Y0
H1 Z.1
G1 Z-.25 F20.

April 2003 Section 18: Macros 437


Fadal User Manual

#V7=0 - Sets V7 to zero


#:LOOP - Label :LOOP
#V7=V7+1 - Add 1 to V7
#IF V7>=360 THEN V7=0 Reset angle if over 360 degrees
#V1=V1+.00077 Set radial increments per degree
#V2=SIN (V7)*V1 Calculate X component
#V3=COS(V7)*V1 Calculate Y component
#R9=V2 Transfer V2 value to R9
#R8=V3 Transfer V3 value to R8
#R7=V1 Transfer V1 value to R7
G2 X+R9 Y+R8 F30. R+R7 Machines part to macro calculations
#IF V1<10. THEN GOTO :LOOP Stop when 10. inches
N20 G0 Z.1 M5 M9
N21 G28
N22 M2

Drill Grid Pattern The following is a simple program to drill a grid of 100 holes in a 10 by 10
Macro - Whole pattern. The program begins with normal G code programming, then clears the
Number Increments values in the variable registers to ensure a proper count for our loops. It uses
the variable V1 for the X position counter and V2 for the Y position counter.
These values will be passed to the R9 and R8 registers for use in the G code
portion of the program. Only one label will be required for the loop. The first IF
THEN statement will check to see when all of the holes in the X axis are drilled.
When the count reaches 10, program execution will ‘fall out’ of the loop. The
next statement zeroes (re-initializes) the X axis counter and the following
statement increments the Y axis value. The second IF THEN statement checks
to see when all of the rows in the Y axis have been drilled. In this program the
values in the variable registers serve as counters as well as the value to
increment for each X and Y move.

O1234(DRILL GRID 10-1" X STEPS, 10-1" Y STEPS


G90 G80 G40 G0 Z0
S2500 M3 M7
G0 X0 Y0 E1
Z.1 H1
G81 X0 Y0 Z-.75 R0.1 G98 F20.
#CLEAR Sets all variable registers to zero
#:LOOP Label for the loop
#V1=V1+1 Increases the value in V1 by 1
#R9=V1 Assigns the value in V1 to R9
#R8=V2 Assigns the value in V2 to R8
X+R9 Y+R8 Moves to locations specified by R8 and R9

438 Section 18: Macros April 2003


Fadal User Manual

#IF V1<=9 THEN GOTO :LOOP Tests if 10 holes have been drilled
#V1=0 Resets V1 to zero for the next row
#V2=V2+1 Increases the value in V2 by 1
#IF V2<=9 THEN GOTO :LOOP Tests if 10 rows have been drilled
G80 M5 M9
G49 Z0
G0 E0 X0 Y0 Z0
M2

This program drills 100 holes with 20 lines of code. An equivalent G code
program would use approximately 109 lines to accomplish the same thing.

Drill Grid Pattern If it is necessary to program the moves in other than whole number
Macro - Decimal increments, then it will be necessary to change the program format only
Increments slightly. The R9 and R8 values will be incremented by the desired values and
must be initialized prior to the loop statement. The variables V1 and V2 are
retained as counters.

O1235(DRILL GRID 10-.375" X STEPS, 10-.5" Y STEPS


G90 G80 G40 G0 Z0
S2500 M3 M7
G0 X0 Y0 E1
Z.1 H1
G81 X0 Y0 Z-.75 R0.1 G98 F20.
R9+0 R8+0 Clears the R9 and R8 registers
#CLEAR Sets all variable registers to zero
#:LOOP Label for the loop
#V1=V1+1 Increases the value in V1 by 1
#R9=R9+.375 Increases the value in R9 for the next hole
X+R9 Y+R8 Moves to the locations specified by R8 and R9
#IF V19 THEN GOTO :LOOP Tests if 10 holes have been drilled
#V1=0 Resets V1 to zero for the next row
#V2=V2+1 Increases the value in V2 by 1
#R9=0 Resets R9 to zero to start at beginning of line
#R8=R8+.5 Increases the value in R8 for the next row
#IF V29 THEN GOTO :LOOP Tests if 10 rows have been drilled
G80 M5 M9
G49 Z0
G0 E0 X0 Y0 Z0
M2

April 2003 Section 18: Macros 439


Fadal User Manual

Tutorial Program
Summaries
Synopsis The following programs have been designed as an integral part of this tutorial.
Each program is summarized in this section and then each program is
explained line-by-line in the following section. The last section contains listings
of each program.

Program Number 1 This is a simple program to check the length of tool number 1 and enter this
length into the tool offset table. Fixture offset number 23 must contain the
distance from the Z zero surface to the top of the tool probe. Fixture offset
number 24 must contain the X and Y location of the tool probe.

Program Number 2 This program is similar to program 1 in that it uses the TS-20 or TS-27 tool
setting probe to check for tool condition. The function of this program is to
check for broken tools.

Program Number 3 This program gets the tool number for the tool in the spindle then uses that tool
to drill a set of holes. It then checks the time that the drill is cutting against the
time entered in the tool table. If the time is less than the total time in the table
then the routine will continue. Once the time has exceeded the time allowed,
the program will increment the tool number and load the next tool. This process
will continue until all tools in the tool changer have been used. In order for this
program to function properly, the timers must be set to 2)DO NOT CHECK. This
function is found on page two of the parameters. In addition, all tools to be
used must be loaded and their respective tool lengths entered in the tool table.

Program Number 4 This program takes the diameter of a large drill then calculates the amount of
each peck and the minimum dwell time required to relieve pressure on the drill.
This allows the machine to more efficiently drill a large hole with less strain on
the machine.

The formula used takes the number of milliseconds in a minute 60,000 divided
by the RPM multiplied by .75. 60000/RPM equals the dwell time for one
complete revolution. Multiplying by .75 gives 3/4 revolution to relieve the
pressure.

Program Number 5 This program will drill a circular bolt hole pattern as defined by the user. The
Sine and Cosine functions are used to define the X and Y dimensions for the
first hole. The program then rotates the hole an amount determined by the
number of holes.

Program Number 6 This sub program probes two bores in line on the X axis. It then resets the
fixture offset to the center of the left hand bore and rotates the coordinate
system to align with the C/L of the bores. The left hand bore will be set to X0

440 Section 18: Macros April 2003


Fadal User Manual

Y0. The distance between bores is assumed to be 5". This dimension may be
adjusted in line N14. Bores up to approximately 2.5" dia. may be checked. This
value will be influenced by the probe diameter and may be changed by
modifying the X and Y values in the L9101 R1+1 lines.

Program Number 7 This program will cut a rectangular pocket with tapered sides. The pocket will
have been roughed to the bottom finish size. The angle of the sides in this
example is five degrees and the Z step will be .01. The calculation for the X and
Y axis step over is Tan 5 * .01 = the step over distance. The tangent point for
the bottom of the pocket must be calculated for the start dimensions. If the
pocket is through, the Z depth will be equal to the depth of the bottom of the
pocket plus 1/2 the diameter of the ball nose end mill that is being used. The X
Y shift amount would be equal to the radius of the cutter divided by the COS of
the angle. EX. .1875/COS 5 .1875/.99619=.1882 would be the correction
factor for a 3/8 end mill at 5 degrees. If the pocket is not a through pocket, Z
depth will be equal to the depth of the pocket minus 1/2 the diameter of the ball
end mill. The X Y shift amount would use the same calculations as the through
pocket plus a correction factor for the difference in depth, which would be TAN
of the Angle times the Radius of the cutter.

EX: TAN 5 * .1875 = .087488*.1875 = .0164

This is the depth factor. Subtract this from the Angle factor .1882 for the total
correction factor: .1882-.0164=.1718

Program Number 8 Sine Wave - A sine wave is constructed by laying out a line that represents one
360 degree revolution. In the case of a cam wrap, this would be equal to the
circumference of the part to be cut. An example would be a 1 1/2" diameter
that has a circumference of PI*dia=3.1416*1.5=4.7124. This line is then
divided into equal segments determined by the for requirements on the blue
print. Many segments give a high resolution and better form; few segments
give a low resolution. Two degree segments are acceptable for most
applications. Once the number of segments is determined, the line is divided
by this number to obtain the Y axis step. Since our line is 360 degrees long, we
find the number of steps by dividing 360 by the angular increment, in this case
two. 360/2=180 steps. We then divide the length of our line (4.7124) by the
number of steps (180) 4.7124/180=.0262. This will be the amount of Y axis
movement for each two degree increment on the Sine wave. The X axis
movement is determined by multiplying the Sine of the accumulated angle by
the height of the wave. The height of the wave will be half of the total X axis
movement. If we require a total movement of 1.25 inches in the X axis our wave
will be 1.25/2=.625.

Our formulas are:

April 2003 Section 18: Macros 441


Fadal User Manual

PI*Dia = Circumference

360/Angular increment = Y axis move

Sine of the angle * Wave Height = X axis move

This program will ‘wrap’ a sine wave around a round part on a fourth axis.

Program Number 9 Ellipse - An ellipse is defined as a collection of points whose locations are the
sum of the distances from two fixed points such that the sum of the distances
is always equal. The formula is given as (X Sq/ a Sq)+(Y Sq / b Sq)=1, where a
is equal to the X radius of the ellipse and b is equal to the Y radius of the
ellipse. By re-arranging the formula to solve for Y we obtain +-Y = +/- Square
Root of ( b2 - ( ( X2 * b2 ) / a2 ) ). Because the formula solves for plus or minus
Y we will need two loops to complete the ellipse, one for the Y+ and one for the
Y-. The X axis will be incremented in .01 steps.

Formula: +-Y = +/- Square Root of ( b2 - ( ( X2 * b2 ) / a2 ) )

Tutorial Program
Explanations
Program Number 1 This is a simple program to check the length of tool number 1 and enter this
length into the tool offset table. Fixture offset number 23 must contain the
distance from the Z zero surface to the top of the Tool Probe. Fixture offset
number 24 must contain the X and Y location of the tool probe.

N1 O99 (CHECK TOOL


Contains the program number and a comment
N2 G90 G0 E24 X0 Y.25 S250. M4
Sets absolute and rapid modes, moves to X0 Y.25 on the Tool Probe and turns
the spindle on backward at 250. RPM
N3 M65
Turns on the TS-20 tool setting probe
N4 H1 E23 Z1.
Applies the tool length offset for tool #1 plus the Z axis correction for the Fixture
location plus one inch. This moves the tool tip to one inch above the tool probe
N5 G1 G31 Z-.1 F20.
Commands the probe skip function and feeds the tool into the tool probe
N6 G91 Z.05
Commands an incremental Z axis move .05 off of the tool probe
N7 G90 S500
Sets absolute mode and increases the RPM to 500
N8 G1 G31 Z-.1 F1.

442 Section 18: Macros April 2003


Fadal User Manual

Commands probe skip function and feeds the Z axis back into the tool probe at
a slower feed for improved accuracy
N9 #R9=AZ
Reads the current Z location (AZ) into register 9 (R9). This is the actual Z value
from the Home position
N10 #R8=R9-FZ23
This macro statement subtracts the Z fixture location in FIXTURE OFFSET 23
(FZ23) from the value in register 9 (R9) and places it in register 8 (R8) This
compensates for the difference in Z from the Z zero position to the top of the
tool probe
N11 G10 L10 P1 R0+R8
Uses the G10 function to store the value in register 8 (R8) into tool offset
number 1
N12 M5 G0
Turns off the spindle and sets rapid mode
N13 G0 G90 H0 Z0
Sets absolute mode, cancels the tool offset and moves to Z zero
N14 E0 X0 Y0 Z0
Cancels the fixture offset and moves to X0 Y0 and Z0
N15 M99
Code to return from sub program. Will return control to the main or calling
program

Program Number 2 This program is similar to program 1 in that it uses the TS-20 or TS-27 tool
setting probe to check for tool condition. The function of this program is to
check for broken tools.

N1 O2(SUB TO CHECK FOR TOOL BREAKAGE


Contains the program number and a comment
N2 G90 G0 E24 X0 Y.25 S250. M4
Sets absolute and rapid modes, moves to X0 Y.25 on the touch probe and
turns the spindle on backward at 250 RPM. Make sure the Y axis move will
clear the tool probe
N3 #R8=TN
Sets register 8 (R8) equal to the tool number
N4 #H99=H(R8)
Sets tool offset number 99 (H99) equal to the tool offset indicated in register 8
(R8)
N5 #H99=H99+FZ23
Adds the correction factor for the difference from Z zero to the top of the probe

Note: Lines Four and Five may be combined to eliminate a step:

April 2003 Section 18: Macros 443


Fadal User Manual

N4 #H99=H(R8)+FZ23
N6 M65
Turns on the tool probe
N7 H99 Z1. (TOOL LENGTH ENTERED IN OFFSET #99 TO PROBE
Applies the corrected tool length offset to one inch above the tool probe
N8 G1 Z-.1
Brings the tip of the tool below the edge of the probe
N9 G1 G31 Y0
Turns on the probe skip function and moves the tool into the tool probe
N10 #R9=AY
Reads the Y axis position into register number 9 (R9)
N11 G0 Y.25
Moves the tool off of the tool probe
N12 H0 Z0 G0 E0 X0 Y0
Cancels all offsets and sends the machine to the home position
N13 #IF R9>0 THEN GOTO :EXIT

Tests the value of R9. If the value of R9 is greater than Zero the tool is not
broken. This is because once the tool makes contact with the probe, axis
motion is stopped. If the tool is broken it will not make contact with the tool
probe and will complete the move to Y0. If the value of R9 is greater than zero
the THEN portion of the command will cause program execution to continue on
the line with the :EXITlabel. If the value of R9 is zero, this line will cause no
action. The program will continue with the next line.

N14 M0 Halts program execution. If the tool is broken the program will halt
execution here. A #PRINT statement could be used here to alert the operator to
a broken tool.
N15 #:EXIT This is the label for the jump from line 13 to continue program
execution
N16 M99 Code to return from sub program. It will return control to the main or
calling program

Program Number 3 This program gets the tool number for the tool in the spindle then uses that tool
to drill a set of holes. It then checks the time that the drill is cutting against the
time entered in the tool table. If the time is less than the total time in the table,
then the routine will continue. Once the time has exceeded the time allowed,
the program will increment the tool number and load the next tool. This process
will continue until all tools in the tool changer have been used. In order for this
program to function properly, the timers must be set to 2)DO NOT CHECK. This
function is found on page two of the parameters. In addition, all tools to be
used must be loaded and their respective tool lengths entered in the tool table.

444 Section 18: Macros April 2003


Fadal User Manual

N1 03*TOOL TIME*
Contains the program number and a comment.
N2 G0 G90 E1 X0 Y0
Sets the rapid and absolute modes then moves to X0 Y0 at fixture offset
number 1
N3 #V9=TN ‘GET THE TOOL NUMBER
Assigns the number of the tool currently in the spindle to variable 9 (V9)
N4 #R9=V9 Assigns the tool number to register 9 (R9)
Note: Lines three and four may be combined to eliminate a step:

#R9=TN

N5 #:LOOP
Contains the label :LOOP. This is where an IF THEN loop will send the program
N6 M6 T+R9
Commands a tool change to the tool indicated by register 9 (R9)
N7 Z.1 H+R9
Applies the tool offset to .1 above Z zero
N8 G81 G98 Z-.1 R0+.1 F50. M45
Drills a hole
N9 G91 X.5 L20
Drills twenty holes in the X axis .5" apart
N10 G80 G90 M5M9
Cancels the drill cycle, turns off the spindle and coolant, resets the absolute
mode
N11 X0 Y0
Moves back to X0 Y0.
N12 #IF TU(R9)<TT(R9) THEN GOTO :LOOP

Tests the time used against the time set in the Tool Time table. If the time used
is less than the time in the table, program execution continues at the :LOOP
label in line N5. If the tool time is expected to be the same for all of the tools
TT(R9) may be changed to TT1. This will eliminate the need to set the tool time
several places in the table, all times will be checked against the value in one

April 2003 Section 18: Macros 445


Fadal User Manual

table. If the time used is more than the time set in the Tool Time Table,
program execution will continue on the next line.

N13 #R9=R9+1
Increments the tool number by one
N14 #TU(R9)=0
Resets the Time used in the Tool Time table to Zero
N15 #IF R9<22 THEN GOTO :LOOP

Tests the value of R9 to see if all of the tools have been used. If the tool
number is 21 or lower, program execution will continue at :LOOP line N5. If the
tool number is greater than 21 program execution will continue on the next
line. NOTE: The test value may be changed to test for more or fewer tools.

N16 M2
End program code

Program Number 4 This program takes the diameter of a large drill then calculates the amount of
each peck and the minimum dwell time required to relieve pressure on the drill.
This allows the machine to more efficiently drill a large hole with less strain on
the machine.

The formula used takes the number of milliseconds in a minute 60,000 divided
by the RPM multiplied by .75. 60000/RPM equals the dwell time for one

446 Section 18: Macros April 2003


Fadal User Manual

complete revolution. Multiplying by .75 gives 3/4 revolution to relieve the


pressure.

N1 O4 (BIG DRILL
Contains the program number and a comment
N2 L100
Subroutine number one
N3 G1 G91 F5. Z-R6
Sets incremental mode feed at 5. IPM to Z minus the value in register 6
(R6)
N4 G4 P+R4
Dwell for the amount of time indicated by the value in R4
N5 #V10=AZ
Enters the current Z position into V10
N6 #IF V10>V1 THEN GOTO N3
Tests for the current location of Z. If full depth has not been reached loop back
to N3
N7 #V10=0
Reset V10 to zero
N8 G90 G1 Z.1F50.
Set absolute mode. Feed out to .1 above Z zero
N9 M17
N10 M30
Lines nine and ten end the subroutine definitions
N11 #CLEAR
The program starts here
This statement clears all of the values in the variable table
N12 R9-1. R8+1000. R7+.05 (CHANGE THIS LINE FOR NEW VALUES.
Sets the R values for the drill to be used
N13 #PRINT “R9=ABSOLUTE Z DEPTH”
N14 #PRINT “R8=RPM TO BE USED”
N15 #PRINT “R7=DIAMETER OF DRILL BEING USED”
Lines 13, 14 and 15 inform the operator what the R values are used for
N16 #V1=R9
Passes the value in R9 to V1
N17 #V2=R8
Passes the value in R8 to V2
N18 #R4=(6000/V2)*.75
Calculates the Dwell time and stores it in R4

N19 #V3=R7
Passes the value in R7 to V3

April 2003 Section 18: Macros 447


Fadal User Manual

N20 #V4=V3*.3 ‘.3 = 30 PERCENT OF THE DRILL DIAMETER


Calculates the peck distance
N21 #R6=V4
Passes the value in V4 to R6
N22 G90 G0 S+R8 M3 E1 X0 Y0
Sets the absolute mode, turns on the spindle and rapids to X0 Y0 of fixture
offset #1
N23 H1 Z1. M8
Brings the spindle to 1. above Z zero and turns on the coolant
N24 Z.1
Brings the tool .1 above Z zero
N25 L101 G66
Calls subroutine L100 as a modal routine. From this point the subroutine will
execute after every position move until canceled by a G67
N26 M45
Will execute the subroutine at this location
N27 X1.
Moves to X1. and executes the subroutine
N28 X2.
Moves to X2. and executes the subroutine
N29 G67
Cancels execution of the subroutine
N30 G0 G90 H0 Z0
Sets absolute and rapid modes. Cancels tool length offset and moves to Z0
N31 E0 X0 Y0
Cancels the fixture offset and moves to X0 Y0
N32 M2
End of program

Program Number 5 This program will drill a circular bolt hole pattern as defined by the user. The
Sine and Cosine functions are used to define the X and Y dimensions for the
first hole. The program then rotates the hole an amount determined by the
number of holes.

N1 O5 (BOLT PATTERN
Program number and comment
N2 #CLEAR
Clears all variable registers
N3 #PRINT “X0 Y0 IS THE CENTER OF THE PATTERN USING FIXTURE OFFSET
#1"
N4 #PRINT “R5 IS THE NUMBER OF HOLES TO BE DRILLED”
N5 #PRINT “R4 IS THE DIAMETER OF THE HOLE PATTERN”

448 Section 18: Macros April 2003


Fadal User Manual

N6 #PRINT “R3 IS THE STARTING ANGLE”


Lines three through six tell the operator where everything is
N7 R5+10. R4+5. R3+30.
Defines the parameters for the part
N8 #R7=360/R5 ‘ANGLE BETWEEN HOLES
Sets R7 as the angle between holes. It is to be used in the G68 line to rotate
the hole
N9 #V1=R4/2 ‘RADIUS OF THE BOLT PATTERN
Determines the radius of the bolt pattern for X Y calculations
N10 #R9=SIN(R3)*V1 ‘X STARTING LOCATION
N11 #R8=COS(R3)*V1 ‘Y STARTING LOCATION
N12 T1M6
N13 G90 G80 G0 S5000 M3 E1 X+R9 Y+R8
N14 Z5. H1 M8
N15 G81 X+R9 Y+R8 Z-1. R0.1 F10.G98
N16 #R6=R7
Set R6 equal to R7 as a value to increment the angle for each rotation
N17 #:LOOP
Label to loop to
N18 G68 R+R7 X0 Y0
Rotate the hole by the angle defined by R7
N19 #R7=R7+R6
Add to the angle for rotation (next hole)
N20 #IF R7<(360-R6) THEN GOTO :LOOP
Test for last hole
N21 G80 M5 M9
N22 G49 Z0
N23 G28 X0 Y0 Z0
N24 M2

Program Number 6 This sub program probes two bores in line on the X axis. It then resets the
fixture offset to the center of the left hand bore and rotates the coordinate
system to align with the C/L of the bores. The left hand bore will be set to X0
Y0. The distance between bores is assumed to be 5". This dimension may be
adjusted in line N14. Bores up to approximately 2.5" diameter may be
checked. This value will be influenced by the probe diameter and may be
changed by changing the X and Y values in the L9101 R1+1 lines.

N1 O6(SUB PROG TO CHECK BORE C/L AND ROTATE


Contains the program number and a comment
N2 G0 G90 G40 G49 G80 Z0
Safe start line

April 2003 Section 18: Macros 449


Fadal User Manual

N3 X0 Y0 E1
Move to X0 Y0 at fixture offset 1
N4 Z0.1 H1
Moves the probe to .1 above Z zero
N5 G1 Z-0.25 F30.
Moves the probe .25 below Z zero
N6 M64
Turns on the probe
N7 L9101 R1+1. Y1.25 P1 F30.
Calls the probe routine to pick up the first point in the first bore
N8 L9101 R1+1. X-1.0825 Y-0.625 P2 F30.
Calls the probe routine to pick up the second point in the first bore
N9 L9101 R1+1 X1.0825 Y-0.625 P3 F30.
Calls the probe routine to pick up the third point in the first bore
N10 L9101 R1+2.
Calculates the diameter and center point of the first bore
N11 #V50=R1
Stores the X location of the first bore in V50
N12 #V51=R2
Stores the Y location of the first bore in V51
N13 G0 Z.1
Moves to Z.1
N14 X5. Y0
Moves to the estimated center point of the second bore
N15 G1 Z-0.25 F20.
Moves to Z-.25
N16 L9101 R1+1. X5. Y1.25 P1 F30.
Calls the probe routine to pick up the first point in the second bore
N17 L9101 R1+1. X3.9175 Y-0.625 P2 F30.
Calls the probe routine to pick up the second point in the second bore
N18 L9101 R1+1. X6.0825 Y-0.625 P3 F30.
Calls the probe routine to pick up the third point in the second bore
N19 L9101 R1+2.
Calculates the diameter and center point of the second bore
N20 #V60=R1
Stores the X location of the second bore in V60
N21 #V61=R2
Stores the Y location of the second bore in V61
N22 #V55=V60-V50
Calculates the X distance from the first bore to the second bore
N23 #V56=V61-V51
Calculates the Y distance from the first bore to the second bore

450 Section 18: Macros April 2003


Fadal User Manual

N24 #V57=ATN(V56/V55)
Calculates the angular rotation off of 0
N25 #FX1=FX1+V50
Sets fixture offset one X location to the center of the first bore
N26 #FY1=FY1+V50
Sets fixture offset one Y location to the center of the first bore
N27 #R9=V57
Sets R9 equal to the angular rotation of the second bore
N28 G49 Z0
Cancels tool length offset
N29 G0 X0 Y0 E1
Moves to X0 Y0 of fixture offset one
N30 G68 X0 Y0 R+R9
Rotates the coordinate system to align on the bores
N31 M99
Code to return to the main or calling program

Program Number 7 This program will cut a rectangular pocket with tapered sides. The pocket will
have been roughed to the bottom finish size. The angle of the sides in this
example is five degrees and the Z step will be .01. The calculation for the X and
Y axis step over is Tan 5 * .01 = the step over distance. The tangent point for
the bottom of the pocket must be calculated for the start dimensions. If the
pocket is through, the Z depth will be equal to the depth of the bottom of the
pocket plus 1/2 the diameter of the ball nose end mill that is being used. The X
Y shift amount would be equal to the radius of the cutter divided by the COS of
the angle. EX: .1875/COS 5 .1875/.99619=.1882 would be the correction
factor for a 3/8 end mill at 5 degrees. If the pocket is not a through pocket Z
depth will be equal to the depth of the pocket minus 1/2 the diameter of the ball
end mill. The X Y shift amount would use the same calculations as the through
pocket plus a correction factor for the difference in depth, which would be TAN
of the Angle times the Radius of the cutter. EX: TAN 5 * .1875 =
.087488*.1875 = .0164. This is the depth factor. Subtract this from the Angle
factor .1882 for the total correction factor. .1882-.0164=.1718.

N1 O7 (TAPER RECTANGLE
Contains the program number and a comment
N2 G0 G90 G80 G40 G49 Z0
Safe start line
N3 S7500 M3 M8
Spindle on 7500 RPM coolant on
N4 G8 M92
Set intermediate gain turn off ramping. This increases the accuracy and
smoothes the moves

April 2003 Section 18: Macros 451


Fadal User Manual

N5 G0 X0 Y0 E1
Move to the center of the pocket
N6 Z0.05 H1
Move to .05 above Z zero
N7 G1 Z-1.687 F50.
Move to the bottom of the pocket. The tangent point must be calculated for the
X and Y locations
N8 R9+0.8736
Set R9 equal to 1/2 of the Y dimension at the bottom of the pocket plus the
tangent point on the ball end mill

N9 R8+1.3556
Set R8 equal to 1/2 of the X dimension at the bottom of the pocket plus the
tangent point on the ball end mill
N10 R7+1.687
Set R7 equal to the Z depth. The pocket depth plus 1/2 of the endmill diameter
N11 #:LOOP
Label to loop to for each step
N12 G1 Y-R9
Mill from the center to Y- dimension
N13 X+R8
Mill from the center to the X+ dimension
N14 Y+R9
Mill to the Y+ dimension
N15 X-R8
Mill to the X- dimension
N16 Y-R9
Mill to the Y- dimension
N17 X0
Mill to X0
N18 #R9=R9+.00087
Increment the Y dimension by .00087. The Tangent of the angle times the .01
Z step. In this case the angle is five degrees
N19 #R8=R8+.00087
Increment the X dimension by .00087. The tangent of the angle times the .01 Z
step. In this case the angle is five degrees
N20 #R7=R7-.01
Increment the Z dimension .01
N21 Z-R7.
Move the Z axis up .01
N22 #IF R7 GT 0 THEN GOTO :LOOP
Test to see if the top of the part has been reached

452 Section 18: Macros April 2003


Fadal User Manual

N23 G0 Z.5 M5 M9
Rapid to Z.5 turn off the spindle and coolant
N24 G49 Z0 E0 X0 Y0 Z0
Cancel offsets and return to the home position
N25 M2
End of program

Program Number 8 Sine Wave - A sine wave is constructed by laying out a line that represents one
360 degree revolution. In the case of a cam wrap, this would be equal to the
circumference of the part to be cut. An example would be a 1 1/2" diameter
that has a circumference of PI*dia=3.1416*1.5=4.7124. This line is then
divided into equal segments determined by the for requirements on the blue
print. Many segments give a high resolution and better form; few segments
give a low resolution. Two degree segments are acceptable for most
applications. Once the number of segments is determined, the line is divided
by this number to obtain the Y axis step. Since our line is 360 degrees long we
find the number of steps by dividing 360 by the angular increment, in this case
two. 360/2=180 steps. We then divide the length of our line (4.7124) by the
number of steps (180) 4.7124/180=.0262. This will be the amount of Y axis
movement for each two degree increment on the Sine wave. The X axis
movement is determined by multiplying the Sine of the accumulated angle by
the height of the wave. The height of the wave will be half of the total X axis
movement. If we require a total movement of 1.25 inches in the X axis our wave
will be 1.25/2=.625.

Our formulas are: PI*Dia = Circumference, 360/Angular increment = Y axis


move, Sine of the angle * Wave Height = X axis move

This program will ‘wrap’ a sine wave around a round part on a fourth axis.

N1O7(SINE WAVE DEMO


Program number and a comment
N2 L100
Sub routine label
N3 R1+0 R2+0 R3+0 R4+0 (ESTABLISH VALUES FOR R
WORDS
Zero R variables
N4 #V1=1.5 ‘DIAMETER OF THE PART
Enter the diameter of the part
N5 #V2=.625 ‘RISE OF THE SINE WAVE
Enter the rise of the sine wave
N6 #V3=3.141593*V1 ‘CIRCUMFERENCE OF THE PART
Calculate the circumference of the part

April 2003 Section 18: Macros 453


Fadal User Manual

N7 #V4=90/(5*V3) ‘CALCULATE THE Q WORD


Calculate the Q word for Cam Wrapping
N8 #R1=V4 ‘TRANSFER Q WORD TO R1
Transfer the value of the Q word to R1
N9 G51.1 Y0 ‘SET Y AXIS MIRROR
Mirror the Y axis for Cam Wrapping
N10 G17 Q+R1 ‘TURN ON CAM WRAPPING
Turn on Cam Wrapping
N11 G90 F50.
Set absolute mode 50. IPM
N12 #V10=V3/180 ‘Y AXIS INCREMENT PER 2 DEG MOVE
Calculate the Y axis increment for each 2 deg
N13 #:LOOP
Label to loop to until finished
N14 #V12=V12+V10 ‘Y AXIS POSITION
Calculate the Y axis position
N15 #V13=V13+2 ‘ANGULAR COUNT
Increment the angle
N16 #V14=SIN(V13)*V2 ‘X AXIS POSITION
Calculate the X axis position
N17 #R4=V12 ‘Y AXIS PASS TO R4
Transfer the Y axis position to R4
N18 #R5=V14 ‘X AXIS PASS TO R5
Transfer the X axis position to R5
N19 G1 X+R5 Y+R4 F20. ‘NEXT MOVE
Move to the next location
N20 #IF V13 LT 360 THEN GOTO :LOOP
Test if finished
N21 G0 Z1.
Move to clear part
N22 Y0
Unwrap move
N23 G50.1
Turn off Mirror
N24 G17
Turn off Cam Wrapping
N25 M17
N26 M30
End of subroutines
N27 G0 G80 G90 G40 G49 Z0
Safe start line
N28 T1 M6

454 Section 18: Macros April 2003


Fadal User Manual

Tool change
N29 S2500 M3 M8
Spindle and coolant on
N30 G0 X0 Y0 A0 Z0 E1
Move to position
N31 Z1. H1
Move to Z 1
N32 G1 Z0.65 F15.
Move to cut height. Z zero is the center of the part
N33 L101
Call Subroutine
N34 M5 M9
Turn off spindle and coolant
N35 G49 E0 X0 Y0 Z0
Cancel offsets
N36 G28
Go home
N37 M2
End of program

Program Number 9 Ellipse - An ellipse is defined as a collection of points whose locations are the
sum of the distances from two fixed points such that the sum of the distances
is always equal. The formula is given as (X Sq/ a Sq)+(Y Sq / b Sq)=1 Where a
is equal to the X radius of the ellipse and b is equal to the Y radius of the
ellipse. By re-arranging the formula to solve for Y we obtain +- Y = Square Root
of ( b2 - ( ( X2 * b2 ) / a2 ) ). Because the formula solves for plus or minus Y, we
will need two loops to complete the ellipse, one for the Y+ and one for the Y-.
The X axis will be incremented in .01 steps.

Formula: +-Y = +/- Square Root of ( b2 - ( ( X2 * b2 ) / a2 ) )

N1 O9 (ELLIPSE PROGRAM
Program number and a comment
N2 G0 G90 G80 G40 G49 Z0
Safe start line
N3 T1 M6
Call tool one
N4 S2500 M3 M7
Spindle on coolant on
N5 G0 X0 Y0 Z0 E1
Rapid to the middle of the part
N6 #:XDIM

April 2003 Section 18: Macros 455


Fadal User Manual

Label to loop to if invalid data entered


N7 #PRINT “ENTER THE X DIMENSION”
Print statement asking the operator to enter data
N8 #INPUT V1
Input statement to accept the requested data
N9 #V1=V1/2
Calculates the X radius
N10 #IF V1 LE 0 THEN GOTO :XDIM
Tests for acceptable data
N11 #:YDIM
Label to loop to if invalid data is entered
N12 #PRINT “ENTER THE Y DIMENSION”
Print statement asking the operator for more information
N13 #INPUT V10
Input statement to accept requested information
N14 #V10=V10/2
Calculates the Y radius
N15 #IF V10 LE 0 THEN GOTO :YDIM
Tests for invalid information
N16 #V20=V1
Copies the value in V1 to V20
N17 #V1=V1*V1
Squares the contents of V1. This is the a value
N18 #V10=V10*V10
Squares the contents of V10. This is the b value

N19 #R9=V20
Transfers the X+ location to R9
N20 G0 X+R9 Y0
Moves to the start point on the Ellipse
N21 Z0.1 H1
Moves the tool to .1 above Z zero
N22 G1 Z-0.25 F20.
Feeds the tool to Z-.25
N23 #V25=V20
Copies the value of V20 into V25 for use as a counter
N24 #:LOOP
Label to loop to for each step
N25 #V20=V20-.01
Calculates the next X location
N26 #V21=V20*V20

456 Section 18: Macros April 2003


Fadal User Manual

Squares the X location for the X squared portion of the formula


N27 #V30=(V21*V10)/V1
Calculates the X squared times b squared divided by a squared portion of the
formula
N28 #V31=SQR(V10-V30)
Calculates the square root of b squared minus V30 value
N29 #R9=V20
Copies the X location to R9
N30 #R8=V31
Copies the Y location to R8
N31 G1 X+R9 Y+R8 F20.
Moves to the next location
N32 #IF V20 > -V25 THEN GOTO :LOOP
Tests for the finish of the top portion of the Ellipse
N33 #:LOOP1
Label to loop to for the bottom portion of the Ellipse
N34 #V20=V20+.01
Reverses the X axis move
N35 #V21=V20*V20
Squares the X location for the X squared portion of the formula
N36 #V30=(V21*V10)/V1
First calculation of the formula
N37 #V31=SQR(V10-V30)
Final calculation of the formula
N38 #R9=V20
Copies the X location to R9
N39 #R8=V31
Copies the Y location to R8
N40 G1 X+R9 Y-R8 F20.
Moves to the next location
N41 #IF V20 < V25 THEN GOTO :LOOP1
Tests to see if the Ellipse is complete
N42 G0 Z0.1 M5 M9
Moves to Z.1 turns off the spindle and coolant
N43 G49 Z0 E0 X0 Y0
Cancels offsets returns to Zero
N44 G28
Returns home
N45 M2
End of program

April 2003 Section 18: Macros 457


Fadal User Manual

Tutorial Program
Listings
Program Number 1 N1 O99 (CHECK TOOL
N2 G90 G0 E24 X0 Y.25 S250. M4
N3 M65
N4 H1 E23 Z1.
N5 G1 G31 Z-.1 F20.
N6 G91 Z.05
N7 G90 S500
N8 G1 G31 Z-.1 F1.
N9 #R9=AZ
N10 #R8=R9-FZ23
N11 G10 L10 P1 R0+R8
N12 M5 G0
N13 G0 G90 H0 Z0
N14 E0 X0 Y0 Z0
N15 M99

Program Number 2 N1 O2(SUB TO CHECK FOR TOOL BREAKAGE


N2 G90 G0 E24 X0 Y.25 S250. M4
N3 #R8=TN
N4 #H99=H(R8)
N5 #H99=H99+F23
N6 M65
N7 H99 Z1. (TOOL LENGTH ENTERED IN OFFSET #99 TO PROBE
N8 G1 Z-.1
N9 G1 G31 Y0
N10 #R9=AY
N11 G0 Y.25
N12 H0 Z0 G0 E0 X0 Y0
N13 #IF R9>0 THEN GOTO :EXIT
N14 M0
N15 #:EXIT
N16 M99

458 Section 18: Macros April 2003


Fadal User Manual

Program Number 3 N1 03*TOOL TIME*


N2 G0 G90 E1 X0 Y0
N3 #V9=TN ‘GET THE TOOL NUMBER
N4 #R9=V9
N5 #:LOOP
N6 M6 T+R9
N7 Z.1 H+R9
N8 G81 G98 Z-.1 R0+.1 F50. M45
N9 G91 X.5 L20
N10 G80 G90 M5M9
N11 X0 Y0
N12 #IF TU(R9)<TT(R9) THEN GOTO :LOOP
N13 #R9=R9+1
N14 #TU(R9)=0
N15 #IF R9<22 THEN GOTO :LOOP
N16 M2

Program Number 4 N1 O4 (BIG DRILL


N2 L100
N3 G1 G91 F5. Z-R6
N4 G4 P+R4
N5 #V10=AZ
N6 #IF V10>V1 THEN GOTO N3
N7 #V10=0
N8 G90 G1 Z.1F50.
N9 M17
N10 M30
N11 #CLEAR
N12 R9-1. R8+1000. R7+.05 (CHANGE THIS LINE FOR NEW VALUES.
N13 #PRINT “R9=ABSOLUTE Z DEPTH”
N14 #PRINT “R8=RPM TO BE USED”
N15 #PRINT “R7=DIAMETER OF DRILL BEING USED”
N16 #V1=R9
N17 #V2=R8
N18 #R4=(6000/V2)*.75
N19 #V3=R7
N20 #V4=V3*.3 ‘.3 = 30 PERCENT OF THE DRILL DIAMETER
N21 #R6=V4
N22 G90 G0 S+R8 M3 E1 X0 Y0
N23 H1 Z1. M8
N24 Z.1
N25 L101 G66

April 2003 Section 18: Macros 459


Fadal User Manual

N26 M45
N27 X1.
N28 X2.
N29 G67
N30 G0 G90 H0 Z0
N31 E0 X0 Y0
N32 M2

Program Number 5 N1 O5 (BOLT PATTERN


N2 #CLEAR
N3 #PRINT “X0 Y0 IS CENTER OF PATTERN USING FIXTURE OFFSET #1"
N4 #PRINT “R5 IS THE NUMBER OF HOLES TO BE DRILLED”
N5 #PRINT “R4 IS THE DIAMETER OF THE HOLE PATTERN”
N6 #PRINT “R3 IS THE STARTING ANGLE”
N7 R5+10. R4+5. R3+30.
N8 #R7=360/R5 ‘ANGLE BETWEEN HOLES
N9 #V1=R4/2 ‘RADIUS OF THE BOLT PATTERN
N10 #R9=SIN(R3)*V1 ‘X STARTING LOCATION
N11 #R8=COS(R3)*V1 ‘Y STARTING LOCATION
N12 T1M6
N13 G90 G80 G0 S5000 M3 E1 X+R9 Y+R8
N14 Z5. H1 M8
N15 G81 X+R9 Y+R8 Z-1. R0.1 F10.G98
N16 #R6=R7
N17 #:LOOP
N18 G68 R+R7 X0 Y0
N19 #R7=R7+R6
N20 #IF R7<(360-R6) THEN GOTO :LOOP
N21 G80 M5 M9
N22 G49 Z0
N23 G28 X0 Y0 Z0
N24 M2

Program Number 6 N1 O6(SUB PROG TO CHECK BORE C/L AND ROTATE


N2 G0 G90 G40 G49 G80 Z0
N3 X0 Y0 E1
N4 Z0.1 H1
N5 G1 Z-0.25 F30.
N6 M64
N7 L9101 R1+1. Y1.25 P1 F30.
N8 L9101 R1+1. X-1.0825 Y-0.625 P2 F30.
N9 L9101 R1+1 X1.0825 Y-0.625 P3 F30.

460 Section 18: Macros April 2003


Fadal User Manual

N10 L9101 R1+2.


N11 #V50=R1
N12 #V51=R2
N13 G0 Z.1
N14 X5. Y0
N15 G1 Z-0.25 F20.
N16 L9101 R1+1. X5. Y1.25 P1 F30.
N17 L9101 R1+1. X3.9175 Y-0.625 P2 F30.
N18 L9101 R1+1. X6.0825 Y-0.625 P3 F30.
N19 L9101 R1+2.
N20 #V60=R1
N21 #V61=R2
N22 #V55=V60-V50
N23 #V56=V61-V51
N24 #V57=ATN(V56/V55)
N25 #FX1=FX1+V50
N26 #FY1=FY1+V50
N27 #R9=V57
N28 G49 Z0
N29 G0 X0 Y0 E1
N30 G68 X0 Y0 R+R9
N31 M99

Program Number 7 N1 O7 (TAPER RECTANGLE


N2 G0 G90 G80 G40 G49 Z0
N3 S7500 M3 M8
N4 G8 M92
N5 G0 X0 Y0 E1
N6 Z0.05 H1
N7 G1 Z-1.687 F50.
N8 R9+0.8736
N9 R8+1.3556
N10 R7+1.687
N11 #:LOOP
N12 G1 Y-R9
N13 X+R8
N14 Y+R9
N15 X-R8
N16 Y-R9
N17 X0
N18 #R9=R9+.00087
N19 #R8=R8+.00087

April 2003 Section 18: Macros 461


Fadal User Manual

N20 #R7=R7-.01
N21 Z-R7.
N22 #IF R7 GT 0 THEN GOTO :LOOP
N23 G0 Z.5 M5 M9
N24 G49 Z0 E0 X0 Y0 Z0
N25 M2

Program Number 8 N1O7(SINE WAVE DEMO


N2 L100
N3 R1+0 R2+0 R3+0 R4+0 (ESTABLISH VALUES FOR R WORDS
N4 #V1=1.5 ‘DIAMETER OF THE PART
N5 #V2=.625 ‘RISE OF THE SINE WAVE
N6 #V3=3.141593*V1 ‘CIRCUMFERENCE OF THE PART
N7 #V4=90/(5*V3) ‘CALCULATE THE Q WORD
N8 #R1=V4 ‘TRANSFER Q WORD TO R1
N9 G51.1 Y0 ‘SET Y AXIS MIRROR
N10 G17 Q+R1 ‘TURN ON CAM WRAPPING
N11 G90 F50.
N12 #V10=V3/180 ‘Y AXIS INCREMENT PER 2 DEG MOVE
N13 #:LOOP
N14 #V12=V12+V10 ‘Y AXIS POSITION
N15 #V13=V13+2 ‘ANGULAR COUNT
N16 #V14=SIN(V13)*V2 ‘X AXIS POSITION
N17 #R4=V12 ‘Y AXIS PASS TO R4
N18 #R5=V14 ‘X AXIS PASS TO R5
N19 G1 X+R5 Y+R4 F20. ‘NEXT MOVE
N20 #IF V13 LT 360 THEN GOTO :LOOP
N21 G0 Z1.
N22 Y0
N23 G50.1
N24 G17
N25 M17
N26 M30
N27 G0 G80 G90 G40 G49 Z0
N28 T1 M6
N29 S2500 M3 M8
N30 G0 X0 Y0 A0 Z0 E1
N31 Z1. H1
N32 G1 Z0.65 F15.
N33 L101
N34 M5 M9
N35 G49 E0 X0 Y0 Z0

462 Section 18: Macros April 2003


Fadal User Manual

N36 G28
N37 M2

Program Number 9 N1 O9 (ELLIPSE PROGRAM


N2 G0 G90 G80 G40 G49 Z0
N3 T1 M6
N4 S2500 M3 M7
N5 G0 X0 Y0 Z0 E1
N6 #:XDIM
N7 #PRINT “ENTER THE X DIMENSION”
N8 #INPUT V1
N9 #V1=V1/2
N10 #IF V1 LE 0 THEN GOTO :XDIM
N11 #:YDIM
N12 #PRINT “ENTER THE Y DIMENSION”
N13 #INPUT V10
N14 #V10=V10/2
N15 #IF V10 LE 0 THEN GOTO :YDIM
N16 #V20=V1
N17 #V1=V1*V1
N18 #V10=V10*V10
N19 #R9=V20
N20 G0 X+R9 Y0
N21 Z0.1 H1
N22 G1 Z-0.25 F20.
N23 #V25=V20
N24 #:LOOP
N25 #V20=V20-.01
N26 #V21=V20*V20
N27 #V30=(V21*V10)/V1
N28 #V31=SQR(V10-V30)
N29 #R9=V20
N30 #R8=V31
N31 G1 X+R9 Y+R8 F20.
N32 #IF V20 > -V25 THEN GOTO :LOOP
N33 #:LOOP1
N34 #V20=V20+.01
N35 #V21=V20*V20
N36 #V30=(V21*V10)/V1
N37 #V31=SQR(V10-V30)
N38 #R9=V20

April 2003 Section 18: Macros 463


Fadal User Manual

N39 #R8=V31
N40 G1 X+R9 Y-R8 F20.
N41 #IF V20 < V25 THEN GOTO :LOOP1
N42 G0 Z0.1 M5 M9
N43 G49 Z0 E0 X0 Y0
N44 G28
N45 M2

464 Section 18: Macros April 2003


Fadal User Manual

Section 19: Miscellaneous

Flood Coolant
Through the Spindle
(Optional)
Description The Coolant Through the Spindle option provides coolant flow through the
spindle. The system has its own pump and electrical system, separate from the
standard flood coolant system. The main power switch for this system is
located in the rear of the machine and is labeled “Coolant Through Spindle.”
The coolant through main disconnect switch must be in the on position to
activate the coolant through system.

The SETP command allows the operator to select M7 or M8 for flood coolant.
When M7 is selected for flood coolant, M8 is used to activate the coolant
through the spindle option from the program. When M8 is selected for flood
coolant M7 is used to activate the coolant through the spindle option from the
program. The M9 code will cancel the M7 or M8 codes.

Special hollow retention knobs need to be fitted into the ends of tool holders,
which are intended for use with special tools that allow for coolant through the
tool. Because these retention knobs are hollow, their manufacturer
recommends usage with tools that have no side cutting pressure. The thin side
walls of these special retention knobs may fracture when using side cutting
tools like end mills, fly cutters, face mills etc. When the retention knobs fracture
and break, the tool will fall out of the spindle.

Note: Tools with side cutting pressure require solid retention knobs. Special
filters may be required to be retrofitted to the system if micro sized grit is in
the coolant. The grit can damage the rotating seals in the coolant through
system. If this seal is destroyed, the coolant will leak out of the seal and
damage the belt or other systems in the head area. These filters would be
supplied and provided by the user as to suit their particular need.

If the coolant through the spindle system is activated when a tool is in the
spindle, which has a solid designed retention knob, pressure will build up
behind the retention knob. When the solid tool holder is removed from the
spindle, either by hand of from a tool change, the pressurized coolant will spray
out from the flange area. It is suggested to used the tool changer, with the

April 2003 Section 19: Miscellaneous 465


Fadal User Manual

doors closed, to remove a tool from the spindle when the coolant through the
spindle system is pressurized.

Note: Always wear eye protection when operating the machine and all of its
added equipment.

Hydro Sweep
(Optional)
Hydro Sweep™ Chip The Hydro Sweep™ option is used to clear machined part chips from the
Removal System machine tool. This system uses a flood coolant wash to transfer the chips to a
recycling container.

The Hydro Sweep™ system is comprised of flood wash nozzles, a flood coolant
tank, a rotating chip drain drum, and a chip ejector shoot. The flood wash
nozzles are prepositioned to provide maximum wash capabilities. The wash
flood is divided into three sections, the left side, the right side, and the cross
wash.

The rotating drum is driven, on rollers, by a motor. The rollers are belt driven by
a standard 110 vac motor. The motor is powered by the machine tool. The
electrical plug for the motor is mounted to the rear of the VMC and marked
“Conveyer”. The drum is activated by pressing the CYCLE START button on the
Hydro Sweep™ control panel. The drum may also be plugged into a standard
wall socket. This provides the drum motor with power without turning on the
flood wash.

The flood system uses the machine


coolant for the flood wash. The 40 60

coolant tank capacity is 70 gallons


(VMC 4020) and 85 gallons (VMC
20 80

6030) to provide an adequate supply


0 100
TRANSFER 1

for both the coolant system and the


40 60

wash. 20 80

0 100
TRANSFER 2

CYCLE START

Figure 19-1 HydroSweep Control Panel

Operation The Hydro Sweep™ is operated using the Hydro Sweep™ control panel. The
control is mounted on the front of the VMC under the control pendant. The
flood wash system is activated by pressing the CYCLE START button on the

466 Section 19: Miscellaneous April 2003


Fadal User Manual

control panel. It may also be activated by the M20 code in the machine
program.

The CYCLE START and M20 code are toggles for the system. Either can turn the
system on or off. Press the button once to active the system and press it again
to deactivate the system. The M20 operates the same way. The first time the
code is performed in the program, the system is activated. The second time it
is performed the system is deactivated. When the system is used, by either of
these methods, the flood wash and drum are activated or deactivated. To
activate the drum without the flood wash, the drum motor MUST be plugged
into another power source.

Note: When an alternate power source is used, the drum is NOT activated by
the CYCLE START or M20.

The knobs marked TRANSFER 1 and TRANSFER 2, are used to set the flood
time. The TRANSFER 1 knob controls the cross wash. The TRANSFER 2 knob
controls the left and right wash. The flood has four cycles. The cycles rotate in
sequence from the cross wash, to the left wash, to the cross wash, to the right
wash. This sequence is continual until the CYCLE START button is pressed.
Only one wash cycle is on at any time. As one cycle starts the other stops. The
flood wash duration for each cycle position is determined by the TRANSFER
knob settings. The knobs are adjustable from 0 to 100 percent. With the knob
at 0 the wash cycles for three seconds. At 100 percent the wash cycles for
thirty seconds. The rotating drum lifts the chips to a drainage tray. Chips are
moved from the drainage tray to a recycling bin by a ram. This ram moves at
preset intervals when the system is activated.

Automatic Doors
(Optional)
Description The Automatic Door option may be operated using the M80, (open), and the
M81, (close). The doors ONLY operate with the M functions when they are in
the interlocked position. The interlocked position is when the doors are locked
into place on the pneumatic valves. When the doors are in the interlocked
position, the M80 code activates the pneumatic valves to open the doors.
When in the open position, the doors may NOT be closed manually. When in
the closed position, the door interlock may be manually disengaged to open
and close the doors. The door interlocks may be manually released by opening
the doors by hand. This requires slightly more pressure than without the
interlocks. The interlocks may be engaged manually by pulling the doors
closed, by hand, until the interlock engages. The interlocks must be engaged
manually to open the doors with the pneumatic valves.

April 2003 Section 19: Miscellaneous 467


Fadal User Manual

Note: An M20 code is used to close the doors when the machine tool is not
equipped with a general indexer.

Note: When the doors are closed and the M20 is coded, the machine will wait
for a signal. To override this condition, open and close the doors manually.

Note: The M20 code is ONLY used when the machine is NOT wired for a
general purpose indexer. Use the M81 code when there is an indexer.

The doors will come to a complete closed position before the program will
continue. When a general purpose indexer is used, the doors will close with an
M81.

M80 Automatic This function is used to open the automatic doors. When the doors are in the
Doors Open interlocked position, this code activates the pneumatic valves to open the
doors. When in the open position, the doors may NOT be closed manually.
When in the closed position, the door interlock may be manually disengaged to
open and close the doors. The interlocks must be engaged manually to open
the doors with the pneumatic valves. The interlocks may be engaged manually
by pulling the doors closed, by hand, until the interlock engages.

M81 Automatic This function is used to close the automatic doors. When the doors are in the
Doors Close interlocked position, this code activates the pneumatic valves to close the
doors. When in the open position, the doors may NOT be closed manually.
When in the closed position, the door interlock may be manually disengaged to
open and close the doors. The interlocks must be engaged manually to open
the doors with the pneumatic valves.

Note: When the doors are closed and the M81 is coded the machine will wait
for a signal. To override this condition, open and close the doors manually.

Note: This function is ONLY used when the machine is wired for a general
purpose indexer. Use the M20 code when there is no indexer.

Servo Coolant
(Optional)
Description The Servo Coolant is an option that requires the appropriate software version
and hardware. The M7.1 or M8.1 activates the Optional Servo Coolant and
Coolant one (Flood). The SETP command allows the operator to select M7 or
M8 for flood coolant. The H word must be specified before programming the
M7.1 or M8.1.

468 Section 19: Miscellaneous April 2003


Fadal User Manual

The servo coolant option has been designed to allow the user to program a
direction of coolant flow. This coolant flow may be directed onto the tool or
directly onto the part to cool and wash away chips.

The servo coolant will be assigned to the A axis. If a rotary table is on the VMC,
it will have the A axis and the servo coolant will then have the B axis. When in
JOG mode, the servo coolant may be moved by jogging in the A or B axis (see
SETP page, set parameter for A or B ratio option to COOLANT).

The CS Procedure When the VMC is powered on the servo coolant nozzle will find its own COLD
START zero position by seeking the spindle housing and backing off 10.0
degrees. The nozzle is moved towards the spindle until the movement is
obstructed. When the user COLD STARTS the VMC the Servo Coolant will again
seek the alignment position. At this point the nozzle is moved back by 10
degrees and Cold Start position is set. The range of motion is limited to 0 to 45
degrees from this CS position. The Cold Start will time out after 15 seconds.
The external override potentiometer knob must be straight upward in the OFF
position before Cold Starting the VMC.

The Servo Coolant will also have an external override potentiometer knob
located on the right side of the doors on the Chip guard. When this override is
straight up, the display will show OFF. If the knob is rotated, the amount
overridden will be displayed to the right of the position display. This knob will be
active after CS for all modes of operation and may be locked in or out with the
M48.1 and M49.1 codes.

When the control is in AUTO or MDI the position display will be as follows:

X 0.0000 0
Y 0.0000 0 A0 OFF
Z 0.0000 0

The Axis Position Display is modified to allow display for override pot. The
numeric display to the right the position display is now replaced by the value of
the override pot. This display will be in degrees (A or B axis only). This display
is active after Cold Starting the machine providing the servo coolant ratio is
selected in the SETP parameter page. Override pot should be in OFF position at
CS.

Setup Procedure 1) Return the nozzle to the HOME position by using the HO command or by
using JOG mode to jog the nozzle back to the CS zero position. The override
potentiometer must be in the off position.

April 2003 Section 19: Miscellaneous 469


Fadal User Manual

2) From MDI, call the first tool to be used with the Servo Coolant. With this tool
in the spindle turn on the coolant. Next position the coolant flow onto the
tip of the tool by using the manual Pulse Generator. Adjustment may be
made later for the nozzle to point to the outer diameter of the tool by using
a P word and diameter value.

3) Note the degree value on the display. This will be the value for the L WORD
on the M7.1 line for the first tool. No negative position may be programmed
for the Servo Coolant.

4) Place this information in the program to use the Programmable Servo


Coolant.

In addition to turning on the coolant, the nozzle may be directed by


programming the following parameters:

L = Degrees to point to the first tool programmed. The L word initializes the
coolant nozzle angle.

P = Optional diameter / radius of tools in program. This makes an adjustment


outward or inward.

Q = Optional length override. This is to modify the nozzle adjustment up or


downward. The calculation is normally made from the value in the tool length
offset table.

For example, if Tool 3 needs the nozzle to be adjusted upward, the calculation
must be changed. To change the calculation the M7.1 line must include a Q
word. If the current value in the tool table offset 3 is -22.39 by adding one inch
to this value, the Q word will be -23.39. The program will now use the Q word
instead of the H word value to aim the programmable coolant upward 1 inch.
This change now adjusts the original setup parameter programmed for the first
tool. The next H word / M7.1 combination will return to the original
programmed setting. The Q word does not affect the tool length offset or
change any values in the tool table.

The program line will read as follows:

N124 H3 D3 Z1.5 The tool length offset is -22.39


N125 M7.1 Q-23.39

Note: M48.1 and M49.1 enables and disables the override pot. This is to
allow maximum movement to the nozzle even when the override pot is not
at zero.

470 Section 19: Miscellaneous April 2003


Fadal User Manual

EXAMPLE: N1 O1 (PART 1234


N2 M6 T1 (TOOL #1 , 3 INCH SHELL MILL
N3 G0 G90 S3200 M3 E1 X0 Y0
N4 H1 D1 Z.1
The H word must be called before the M7.1 code
N5 M7.1 L10.0 P3.0
Servo coolant on, Flood coolant on M7.1Read length of tool 1 and place nozzle
at the L of 10 degrees from CS position this offset now sets the origin of the
nozzle for this program. All nozzle aim will be adjusted from here.
*****cut part*******The P moves nozzle outward to the edge of inserts on the
3.0" shell mill
N22 M6 T2 ( .25 END MILL
N23 G0 G90 S3400 X0 Y0
N24 H2 Z1.5
N25 M7.1 Servo coolant on, Flood coolant on M7.1
*****cut part*******Read length of tool 2 and point nozzle to center tip of tool 2
N98 M9 Coolant off
N122 M6 T3 ( .5 END MILL
N123 G0 G90 S3400 X0 Y0
N124 H3 D3 Z1.5
N125 M7.1 P.5 Q-23.39
Servo coolant on as defined for the first tool called in program. Read length of
tool 3 and move nozzle to center of tip of tool 3. The P changes*****cut
part*******The Q-23.39 now moves the length upward 1.0 “ to adjust
preference
N1100 M9 Coolant off
Continuous Sweep Use of the reciprocation with the servo coolant will continuously sweep the
Mode for the Servo nozzle across the tool and part clearing / cooling the entire tool and part.
Coolant
M14 Reciprocation for the B (Continuous sweep mode -Servo coolant option)

M15 Reciprocation for the A (Continuous sweep mode -Servo coolant option)

Use of the reciprocation with the servo coolant will continuously sweep the
nozzle across the tool and part. The servo coolant nozzle has a axis range of 0
to 45 degrees only.

EXAMPLE: G90 A10. X-3.0 M7


G1 F1000.0 A15.
M15
X6.0 G1 F25.0 The smaller the feedrate, the more times A will reciprocate
M10

April 2003 Section 19: Miscellaneous 471


Fadal User Manual

Chip Auger and


Wash Down
(Optional)
Description The chip auger and wash down option is used to clear machined part chips
from the machine tool. This system uses a flood coolant wash to transfer the
chips to the front of the machine where a mechanical screw (auger) removes
the chips.

The chip auger and wash down system is comprised of flood outlets, a flood
coolant tank, a rotating mechanical auger and a chip shoot. The flood wash
outlets are pre-positioned to provide maximum wash capabilities. The flood is
divided into two sections: the right side and the left side.

The chip auger is driven by a shaft that is pinned to the auger. The shaft is
driven by a ¾ HP standard 240 VAC 3 phase motor with a ninety degree angle
head adapter. The motor is powered through the machine. The electrical plug
for the motor is mounted at the bottom of the CNC Box. The flood pump is also
a standard 240 VAC 3 phase motor and the electrical plug is mounted at the
bottom of the Junction Box.

The wash system uses the fluid in the coolant tank. The coolant tank capacity
is approximately 70 gallons to provide an adequate supply for both the coolant
system and the wash. The coolant tank has a set of baffles (screens) inside the
tank to filter out chips that get past the bottom pan screen. Therefore, the
coolant tank will have to be cleaned periodically to remove any accumulation of
chips inside the coolant tank.

Operation The chip auger and wash system can run together (Standard Mode) or the
wash separately (Wash Only Mode). The normal operating mode is with the
switch in the Auger Wash mode. A control box mounted on the front of the
machine (underneath the pendant control) has a two position switch to select
the desired mode, Auger Wash or Wash Only. In both conditions, the side door
panels must be installed and the front doors closed for the system to operate.
The coded magnetic interlocks on the side panels and front doors must be in

472 Section 19: Miscellaneous April 2003


Fadal User Manual

their closed state (normal operation when the front doors are closed and the
side panels are installed).

Figure 19-2 Control Box

Figure 19-3 Coded Magnetic InterLocks

The chip auger wash system is activated and deactivated by the lower button
on the control panel (labeled Start/Stop). The button is pushed once to activate
the auger wash system and pushed again to deactivate the auger wash
system. Either mode, Auger Wash or Wash Only, can be stopped immediately
by opening the front doors or removing one of the side panels.

The chip auger/wash system cycle can also be activated by programming M20.
Programming M20 again turns off the chip auger/wash system.

In the auger mode (Auger Wash), the auger continuously runs and the wash
system cycles. The wash cycle time is a fixed off cycle time (time between
when the wash shuts off and when the next wash cycle starts). Both sides of
the machine are washed at the same time. The wash duration time (on time)

April 2003 Section 19: Miscellaneous 473


Fadal User Manual

can be adjusted by the cycle wash control (middle knob on the control box
panel). The shortest duration time occurs with the knob rotated fully
counterclockwise. The longest duration time is when the wash cycle time knob
is fully rotated clockwise.

In the wash only mode, the auger does not operate and the wash system
operates normally. The wash cycle time can be manipulated to adjust the wash
duration (on/off time) by rotating the knob either clockwise or counter
clockwise, respectively.

The auger operates automatically when the Start/Stop button is activated. The
auger will move the chips across the bottom of the machine as the wash
system washes the chips into the auger. The auger pushes the chips out of the
push-out shoot where they are collected for removal. A standard 55-gallon
drum can be placed on a pallet underneath the chip shoot to collect the chips.

If a jam condition occurs, the auger motor will reverse to clear the jam
condition. The auger reversal is controlled by an overload current condition.
The current supplied to the motor is monitored through the auger board. When
a jam condition occurs and the supply current to the motor exceeds the current
limit, the auger motor will reverse. The auger will reverse approximately 3-5
turns and then will resume normal operation. If the overload condition still
exists (the reversal did not clear the jam the first time), the auger will repeat the
reversal/forward clearing procedure up to 5 times per minute.

If the condition still exists, the auger board will trip and the obstruction will have
to be cleared manually, the auger board reset (reset switch on auger board),
and the normal operation resumed.

Figure 0-1 Auger Board Reset

474 Section 19: Miscellaneous April 2003


Fadal User Manual

Dual Arm Tool


Changer
Commands
DD Displays the bucket number and the tool number table, and identifies the
bucket number located at the bucket ready position with an asterisk.

1) SWAP TOOLS- Option 1 within DD is SWAP TOOLS, which will exchange the
Tool in the Spindle for the bucket ready position.

2) SORT TOOLS- Option 2 within DD will sort the tools automatically until each
tool number is located in the same bucket number. Upon completion, Tool
number 1 will be in the Spindle.

SETTO SETTO without a number parameter following resets all of the tool numbers to
that of the bucket numbers, regardless of where the tools are located, and sets
bucket 1 at the bucket ready position, and tool 1 in the spindle.

1) Using Turret CW or Turret CCW, rotate bucket 1 to the bucket ready position.

2) From the <ENTER NEXT COMMAND> line, type SETTO.

3) All of the tool numbers will be reset to that of the bucket numbers. Tool
number 1 is in the Spindle.

4) Check the table in DD.

5) If Turret rotates in the incorrect direction, the Turret Motor may need to be
rephased.

SETTO,# SETTO,# is used to reset the Turret locations by specifying that “#” is the
number of the bucket (not the tool number) located at the bucket ready position
and ready to be exchanged. The remaining bucket and tool numbers are
recovered as the sequence is retained.

1) Rotate the Turret using Turret CW or Turret CCW at least one position until
the desired bucket number (not tool number) is at the bucket ready position.

2) If Turret rotates in the incorrect direction, the Turret Motor may need to be
rephased.

3) From the <ENTER NEXT COMMAND> line, type SETTO,# where # is the
bucket number of the bucket now at the bucket ready position, and ready to
exchange tools.

April 2003 Section 19: Miscellaneous 475


Fadal User Manual

4) The sequence of the remaining tools in the Turret is not changed, and the
new bucket numbers are updated in the DD table. The asterisk identifies the
bucket in the bucket ready position.

5) The SETTO,# procedure may be repeated as many times as needed.

Tool Loading 1) From MDI mode, (MANUAL DATA INPUT), type M19, press ENTER and
Procedure START to orient Spindle.

2) Press MANUAL to switch to the <ENTER NEXT COMMAND> mode.

3) Rotate the Turret using Turret CW or Turret CCW keys until bucket 1 is in the
bucket ready position.

4) Type SETTO to reset the bucket numbers with bucket 1 at bucket ready
position.

5) Return to MDI by pressing MANUAL.

6) Load the first tool into the Spindle by pressing TOOL IN/OUT and insert into
the Spindle. Notice which of the two keyslots in the tool holder is deeper, or has
a protruding setscrew. Align the tool so that the deeper keyslot faces forward
and does not have any protruding setscrew to interfere with the alignment key
on the arm of the ATC.

7) Type M6T2, and the DATC will place the first tool in bucket 2, and wait for
the second tool.

8) Similarly, load the second tool into the Spindle.

9) Type M6T3, and the second tool will move to bucket 3.

10) Similarly, load the third tool into the Spindle.

11) Repeat as necessary until all of the tools have been loaded.

Operating the DATC The commands used within a program to operate the Dual Arm Tool Changer
from a Program are the same codes as the Geneva and Servo-Turret toolchangers. The call for
a tool change can take advantage of the ability of the DATC to pre-stage the
next tool into the bucket ready position. This is accomplished by commanding
Txx and M6 independently. (Do not use T-xx as in previous versions.)

476 Section 19: Miscellaneous April 2003


Fadal User Manual

Miscellaneous
Control Options
Input from a Tape The control can accept programs or tool data into its memory by using the tape
Punch or Computer input command.

1) The BAUD RATE of the control and the device it is connected to must be set
at the same rate (see BAUD RATE, USING THE CD COMMAND).

2) From the command mode type TA,1,# (where # is an error option see
below), then press the ENTER button.

3) Prepare the tape punch or the computer, connected to the control, to send
the program or tool data.

Option 1:

For # type 1. Using this error option for input will cause the control to halt the
input process if an error is detected in the program. EXAMPLE: Using the letter
O for the number 0, double letters (XX.152), minus sign misplaced (-Y.45), a
comment without a preceding * or, a dimension without an axis word (X.125
.756). Observe, on the screen of the control which line the transmission was
halted at, and correct this line at the text editor or Teletype. After this line is
corrected repeat steps 1-3 above. If no errors are detected the message “TAPE
IS GOOD” will appear.

April 2003 Section 19: Miscellaneous 477


Fadal User Manual

Option 2:

For # type 2. When this option is used the control will continue to accept data
even after an error is detected. When transmission of the data is complete, a
message is displayed on the screen “# ERROR(S) READING TAPE.” If no errors
are detected the message “TAPE IS GOOD” will appear. This option is only
recommended when the program being transmitted has sequence numbers.
With sequence numbers in the program the operator can list the program, if
errors are detected, and look for the missing sequence numbers that were
dropped because of errors in the line. Use the insert (IN) command to replace
the missing lines. (see INSERT PROGRAM LINES, USING THE IN COMMAND)

Option 3:

For # type 3. This option is used when the program to be transmitted is from
another control. The FADAL CNC 88 will accept the program but may not be
able to run the program in its present form. Some of the coding may have to be
edited to the coding format required by the FADAL CNC 88.

4) Start output from the tape punch or the computer.

Note: If the program currently in memory has an O word as the first line of the
program, the program is considered a part of the program library. When the
new program is transmitted to the control, the program currently in memory
will be pushed into the library and retained. If the program currently in
memory does not have an O word as the first line in the program it is not
considered to be a part of the program library. When the new program is
transmitted to the control, the program currently in memory is deleted and
the new program replaces it.

Key Lock The KEY LOCK on the pendant is used to protect the program from
unauthorized editing. When any of the commands that can alter the program
are used, the message “COMMAND PROHIBITED BY KEY LOCK” appears.

To prohibit program editing:

1) Put the key into the key slot on the pendant.

2) Turn the key so the slot is in the horizontal position.

3) Remove the key and store it in a secured area.

To allow program editing:

1) Put the key into the key slot on the pendant.

478 Section 19: Miscellaneous April 2003


Fadal User Manual

2) Turn the key so the slot is in the vertical position.

NOEDIT Feature 1) On the line with the O word type a comment with the word NOEDIT within
the first sixteen characters, and this will prevent any changes to the
program.

EXAMPLE: N1 O6 (NOEDIT FACE PLATE

Analyzer Software
Description Analyzer software is a DOS-based program written by FADAL for a user that
machines surfaces on the Fadal VMC. The VMC must be equipped with 1010-5
axis controller boards and the program must have been written to machine a
part path over 50 ipm. Machining at 1000 BPS (blocks per second) requires
machining at high feed rates. When a normal DNC program uses high feed
rates, the movement may violently shock the slides during axis reversals. The
intention of the FADAL Analyzer software is to smooth high-speed motion
during reversals. This will utilize the same basic feed-forward functions of the
M94 (severe direction changes) and M94.1 (incremental direction changes)
codes. The Analyzer was written for a DOS-based computer, for the distinct
advantages of off-line computing. The most important is the computational
requirements (10,000 block look-ahead) of this program and the potential size
of data to be processed.

Advantages of 1) CAD systems generally do not address severe or incremental direction


Analyzer changes. This results in sudden drops or rises in feeds that can cause
banging or marks. The Analyzer looks ahead thousands of moves and
computes effective points at which to smooth feed changes.

2) Smoothing feeds is a one-time process.The Analyzer assumes this duty so


that the CNC can spend time machining, not recomputing what it is going
to machine, each time a part is machined. This results in significantly faster
DNC rates then conventional methods.

April 2003 Section 19: Miscellaneous 479


Fadal User Manual

Using the Analyzer The Analyzer software converts and performs a binary compression of a
program into a file that the DNC can run at 1000 BPS.

Simple Rules:

1) G91.3 starts the process.

2) G91.2 cancels (Format 2).

3) The high-speed moves must be absolute.

4) The block before the G91.3 must contain an absolute X, Y, and Z


positioning move (contouring moves only).

5) Only high-speed moves between a G91.3 and G91.2 will be analyzed and
processed.

6) A & B moves are currently not allowed.

The Analyzer displays 3 different views of the part (upper left: side view; upper
right: front view; lower left: top view). The part must be scaled to display
properly. Scale the part the first time you analyze it.

Scaling scans the program to check the maximum dimensions and far left
corner position. The values generated by scaling may be altered. Scaling only
affects the graphics display and does not change the analyzing process in any
way.

Axis reversals are called “Severe Direction Changes.” The greater the angle
chosen, the more severe the direction change must be to be smoothed.

Incremental direction changes are smoothed by “Angular Reduction.” A severe


angle broken up over many moves will cause a reduction.

The feedrate of the tool is controlled by the size of the high-speed moves; the
larger the moves, the faster the feed. For example, if the maximum feed is 150
ipm, the maximum move will be .0025 inches. (Feed = maximum move * 1000
BPS * 60 seconds). During incremental direction changes, the maximum move
will be reduced .0024, .0023, .0022, etc. depending upon the total angular
change and the distance over which this change is made.

Where the tool is moving quickly, the color will be blue. Where the tool is
slowing for an incremental direction change, the color may be green or red.
Where the tool makes a severe direction change, the color will be red.

480 Section 19: Miscellaneous April 2003


Fadal User Manual

Long moves (those moves much longer than the maximum move size) will be
broken into moves equal to or smaller than the maximum move size. For
example, a 1 inch Z position move will begin red, then change green then blue
as the tool gets up to speed. When approaching a severe direction change, the
maximum move will reduce through green to red.

Sample File: Included with the Analyzer is the sample program, DATA.ABS. Changing the
DATA.ABS parameters on this program will help you understand how to use the Analyzer
effectively.

Each program you analyze will have a .PAR parameter file, saving the
parameters you last used on that program. This allows you to optimize the
parameters for each program, accounting for different tolerances and needs,
without having to try to remember the settings you used last.

CNC88 HS Optional
Diskette Drive
Specifications 3½" diskette medium.

1.44 Megabyte capacity; will read/write 720K diskettes.

MS-DOS format.

Access from Control The drive is accessed from the Functions menu on the CNC by selecting option
0-DISK. A submenu is displayed with the following options:

Figure 19-4 0-Disk Submenu

April 2003 Section 19: Miscellaneous 481


Fadal User Manual

Disk to Memory Loads a program from a diskette into CNC memory.


Memory to Disk Saves a program from CNC memory onto a disk.
Directory Displays the files and directories on a disk.
Delete Deletes a file from the diskette.
Format Formats a diskette (all files on diskette are deleted).
View Displays the contents of a file from a diskette (one page at a
time) on the CNC monitor.
Run DNC Runs the VMC from a file on a diskette using DNC.
Options are:
1) Error checking
2) Dry run
3) Mid-program start by block #

Note: The % character is not needed for running DNC from a diskette, but can
be included in the file on the diskette.

Access from Macro language statement #DISK invokes a program on disk from within a
Program Using program in the CNC memory. After processing the file from disk, control is
Macro Statement routed back to the line of the program in memory that follows the #DISK
#DISK statement.

EXAMPLE: Macro Statement Format:

#DISK filename

EXAMPLE: N1 G90 G0 S10000 M3 E1 X0 Y0


N2 H1 Z.1 M7
N3 #DISK CAVRUF This calls the disk file named CAVRUF and runs it relative to
Fixture 1
N4 G0 Z.1 Program execution continues with this line, positioning the head to
Z.1 after CAVRUF finishes running the first time
N5 E2 X0 Y0 This positions to X0 Y0 of Fixture 2
N6 #DISK CAVRUF This calls the disk file named CAVRUF and runs it again,
this time relative to Fixture 2

Restrictions on File Content and Format:

The file needs to be in text file format, without any formatting characters or
codes, such as those a Word Processor might use. In addition, the following
guidelines apply:

1) The file needs to consist of standard CNC program words, similar to what
would be typed or transmitted into the memory of the machine.

482 Section 19: Miscellaneous April 2003


Fadal User Manual

2) The file must not contain an O word.

3) The file should not contain an M30, M99, or an M2. The CNC will return to
the program in memory automatically at the end of the file.

4) The lines can be numbered, but do not need to be.

5) The file itself cannot contain any #DISK statements.

Note: The % character is not needed for running a program from disk,
although it can be included in the file.

Restrictions on User- The file executes in the CNC memory just as if it were a part of the program that
Defined Subroutines executes the #DISK statement, with the following restrictions on user-defined
subroutines.

1) The program on the disk cannot define a user-defined subroutine.

2) The disk file cannot call a user-defined subroutine.

Subprograms and Subprograms and fixed subroutines can be called from the disk file. Use the
Fixed Subroutines standard subprogram call format: M98 P# (where # is the subprogram to call).
ARE Allowed After the subprogram has executed, the program returns to the line after the
subprogram call. For example, L100 might be used in memory to define
subroutine one, but this cannot be accomplished in the disk file.

Table 1: Diskette Drive Error Codes

Code Description
1002 FILE ALREADY EXISTS: Attempt made to define file with file already in directory.
1003 FILE DOES NOT EXIST: File selected for reading or deletion not in directory.
1004 ILLEGAL COMMAND: Command not recognized.
1005 DISKETTE FULL: Diskette has no room for transmitted data, or directory has no room
for another entry.
1009 COMMUNICATIONS ERROR: Check character error detected, or other software or hard-
ware communications problem.
1100 DISK READ ERROR: Unable to read directory without error, usually caused by unfor-
matted diskette.
1101 BLOCK CHECK ERROR: Four attempts failed to read diskette block without error.
1103 SEEK ERROR: Track could not be verified while reading, or before writing, data block.
1104 DISKETTE TIMEOUT: Diskette could not be accessed, usually due to no diskette in
drive, or diskette not fully inserted in drive.
1105 DISK WRITE PROTECTED: Write attempted on write-protected diskette.

April 2003 Section 19: Miscellaneous 483


Fadal User Manual

This page intentionally left blank.

484 Section 19: Miscellaneous April 2003


Fadal User Manual

Section 20: Graphics

CNC 88HS Graphics


Graphics Menu The graphics menu of the page editor has been designed to allow the user to
view the part path of the current program in memory. The graphics can be
accessed by pressing the G Key from the page editor or by entering the
command DR. A second menu will appear, allowing the user to choose from
several options. All of these options can be pressed while plotting is taking
place.

Plotting Options

Figure 20-1 Plotting Options Menu

A = AUTO

Pressing the A key runs the current program completely through the part path
showing interpolation moves only (movement programmed at a feedrate
G1,G2,G3)

C = CLEAR

Pressing the C key clears the screen and continues auto part path draw at full
table plotting.

April 2003 Section 20: Graphics 485


Fadal User Manual

F = FULL TABLE

Pressing the F key clears the screen and continues auto part path draw at full
table plotting. This is used after the part path plot has been ZOOMED inward
and the user wished to see the whole part path again on a full table display.

M = TOGGLE DISPLAY MODE

Pressing the M key will toggle the options differences displayed along with the
graphics plot. Toggle display options are incremental moves, absolute
positions, and modal codes. The M key can be pressed while plotting in order
to view the various modes.

O = OPTIONS PLOTTING

Pressing the O key displays an additional menu allowing the user to choose
from:

I Ignore G41 G42 compensation

L Plot only subroutines

O Plot only subprogram

P Plot total program

T Plot tool

Once the option key has been pressed, the plotting continues.

S = SINGLE STEP

Pressing the S key, one program line will be plotted. Repeated pressing of the S
key allows the user to step through the program in line by line execution. This
can be canceled at any time by pressing the START button. During single step
plot the current program line will also appear on the screen in G91 incremental
value.

V= VIEW TOP OR ISOMETRIC

The V Key can be pressed at any time during plotting to change the view from
top to simple isometric view. Plotting restarts from the beginning. This view
may not be rotated.

486 Section 20: Graphics April 2003


Fadal User Manual

JOG = ZOOM

During the plotting process, or after or during the plot, pressing the JOG button
allows the user to ZOOM in or ZOOM out the display. The PULSE GENERATOR
(the Jog Hand Wheel) now controls the position where the ZOOM BOX will be
located on the screen (in this mode JOG does not Jog the machine). X and the
Hand Wheel moves the box left to right. Y and the Hand Wheel moves the box
up and down. Z and the Hand Wheel increases or decreases the size of the box.
Locate the box and place it around the portion of functionthe part path the user
wishes to see in a larger detail. Press the ENTER button and the part path
contained in the ZOOM box will be redrawn larger.

After each successive ZOOM the pixel size representation is located to the right
of the axis location of the displayed part path.

The Graphics screen will display a position located in the upper left hand
portion. Located to the right of the position is a + (or -) and a value. This value
is the Pixel resolution. The further the user ZOOMs into the graphically
displayed part the smaller the Pixel resolution will become.

The ZOOM box may be decreased in the Z to show a cross hatch. The user may
position this crosshatch using the X and Y. The position display will show a
value and this value’s tolerance depends on the Pixel amount displayed.

Function Menu
Using the Function The function menus are accessed through the Page Editor by pressing the F
Menus key. The screen will display 9 different function titles and function numbers.
This menu consists of many independent functions that solve various
geometric problems. Each is designed to help the user calculate items such as
ANGLE, LINES, INTERSECTIONS, TANGENT, BLEND RADIUS, CIRCLE, and
TRIANGLE. Also it is designed for creating TOOL CALL or END OF PROGRAM
coding and for defining FIXED CYCLES or SUBROUTINES.

Cursor Movement Once in the function menus, move the cursor up or down in the menu and
describe the items by filling the values in. To move the cursor down press the
ENTER button. To move the cursor UP press the U key.

If the value has been entered incorrectly, move the cursor to where the error is.
Then press the backspace key until the incorrect data is removed. When all the
data has been entered, press the C key to compute the geometry.

Getting Started The user should always be aware of what position the cursor is at in the current
program. The user should place the cursor on a line of the current program
before entering the function menu. This line should be above the area where

April 2003 Section 20: Graphics 487


Fadal User Manual

the calculated information needs to be inserted. When the function menu


inserts information into the Page Editor, a comment is also written to indicate
which function was used.

The Menus Once in the function tile listing, select the number of the function titles until you
arrive at the individual function menu. The cursor is used to locate a specific
geometric question. Fill in the blank, and then press the ENTER button to move
the cursor down to the next question. If the data has been entered incorrectly
press the U key (UP) to move the cursor upward to the data then use the
Backspace button to back over the information. Retype the data.

When all data has been successfully enter press the C key to compute. The
geometry will automatically be computed and displayed at the bottom portion
of the screen. Pressing the D key (DRAW) will enlarge the graphics to cover the
entire screen.

To ZOOM in, press the - key; to reduce the view, press the + key. If the solution
is not what the user wants, press the S key for same function and retype the
information until the expected solution is found.

When the solution is accepted, the data may be entered and saved to the
current program after the current cursor location. Pressing the I key will insert
data into the editor. This will also return the display to the Page Editor. The
current program will contain new code with appropriate comments from the
function menu.

An entire G code program can be written by choosing from the other functions
available on the menu. Repeat the above instruction until the program is
complete. Be sure to insert the appropriate feeds, speed and Z milling values.
View the program on the Graphics display before machining. Dry run the
program before cutting the part.

488 Section 20: Graphics April 2003


Fadal User Manual

Coordinate System The function menu uses the X Y plane (G17) of the cartesian coordinate
system. All point descriptions are in absolute mode(G90), where all points are
described as their distance from HOME (X0,Y0).

Y+

(X-1.,Y2.) (X1.,Y2.)

(-2.,Y1.) (X2.,Y1.)

X- X+
(X-2.,Y-1.) (X2.,Y-1.)
(X-1.,Y-2) (X1.,Y-2)

Y-
Figure 20-2 Coordinate System

Points Describe a point by specifying its X and Y distance from home. The X is
measured right (+) or left (-) from the X axis zero location. The Y is measured
up (+) or down (-) from the Y axis zero location.

April 2003 Section 20: Graphics 489


Fadal User Manual

Angles Angles are measured from the positive X axis using decimal degrees. A positive
angle is measured counterclockwise from the X positive axis, and the negative
angle is measures clockwise from the X positive axis.

Y+
Y+

45˚ 225˚

X- X+ X- X+

Y- Y-

Y+
Y+

X- X+ X- X+
-45˚

-225˚

Y- Y-
Figure 20-3 Angles

Angles describe direction of motion on a line. Moving on a line to the right


describes the line to be at an angle of 0 deg. Moving on a line to the left
describes the line to be at an angle of 180 deg.

490 Section 20: Graphics April 2003


Fadal User Manual

Lines Lines are described by specifying a point on a line and the angle of the line.
The point does not need to be on the part. It can be on an extended portion of
the line. The angle defines the direction of the motion on the line (see Angles).
MOTION TO LEFT MOTION TO RIGHT
GIVES ANGLE OF 180˚ GIVES ANGLE OF 0˚

Y+

(X0,Y2.)

X- X+

(X0,Y0.)

Y-
Figure 20-4 Lines

Circles A circle is defined by the X, Y location of its center, a Radius, and a direction of
motion. The circle direction of motion is described by clockwise or
counterclockwise. To define a circle as a point, describe the circle as having a
zero radius. If the X, Y center location is not known, then it is to be considered a
blend radius.
Y+

X- X+

-225˚

Y-
Figure 20-5 Circles

April 2003 Section 20: Graphics 491


Fadal User Manual

Blend Radius A blend radius is a circle that is situated between two known geometric
elements. It is defined by a radius value and a direction of motion. The blend
radius direction of motion is described by clockwise or counterclockwise.
CW MOTION
CCW BLEND
ON CIRCLE

MOTION ON LINE

CW BLEND
Figure 20-6 Blend Radius

The Function Menu


Display
Function menus The Function menu display and each of the graphics menus are shown as they
appear on the monitor.

MAIN MENU

Figure 20-7 Main Menu

492 Section 20: Graphics April 2003


Fadal User Manual

ANGLE OF A LINE

Figure 20-8 Angle of a Line

TWO LINE
FUNCTIONS

Figure 20-9 Two Line Functions

April 2003 Section 20: Graphics 493


Fadal User Manual

FINDING A PARALLEL
LINE USING A LINE
OR CIRCLE

Figure 20-10 Finding a Paralell Line

THREE
INTERSECTION
FUNCTIONS

Figure 20-11 Three Intersection Functions

494 Section 20: Graphics April 2003


Fadal User Manual

INTERSECTION OF 2
LINES

Figure 20-12 Intersection of 2 Lines

INTERSECTION OF 2
CIRCLES

Figure 20-13 Intersection of 2 Circles

April 2003 Section 20: Graphics 495


Fadal User Manual

INTERSECTION OF A
LINE AND CIRCLE

Figure 20-14 Intersection of a Line and Circle

TWO TANGENT
FUNCTIONS

Figure 20-15 Two Tangent Functions

496 Section 20: Graphics April 2003


Fadal User Manual

TANGENT POINT OF
A LINE AND CIRCLE

Figure 20-16 Tangent Point of a Line and Circle

TANGENT POINTS OF
TWO CIRCLES

Figure 20-17 Tangent Points of Two Circles

April 2003 Section 20: Graphics 497


Fadal User Manual

NINE BLEND RADIUS


FUNCTIONS

Figure 20-18 Nine Blend Radius Functions

BLEND RADIUS
FROM A LINE TO A
LINE

Figure 20-19 Blend Radius from a Line to a Line

498 Section 20: Graphics April 2003


Fadal User Manual

BLEND RADIUS
FROM A LINE TO A
CIRCLE

Figure 20-20 Blend Radius from a Line to a Circle

BLEND RADIUS
FROM A CIRCLE TO A
LINE

Figure 20-21 Blend Radius from a Circle to a Line

April 2003 Section 20: Graphics 499


Fadal User Manual

BLEND RADIUS
FROM A CIRCLE TO A
CIRCLE

Figure 20-22 Blend Radius from a Circle to a Circle

BLEND RADIUS
FROM A POINT TO A
LINE

Figure 20-23 Blend Radius from a Point to a Line

500 Section 20: Graphics April 2003


Fadal User Manual

BLEND RADIUS
FROM A LINE TO A
POINT

Figure 20-24 Blend Radius from a Line to a Point

BLEND RADIUS
FROM A POINT TO A
CIRCLE

Figure 20-25 Blend Radius from a Point to a Circle

April 2003 Section 20: Graphics 501


Fadal User Manual

BLEND RADIUS
FROM A CIRCLE TO A
POINT

Figure 20-26 Blend Radius from a Circle to a Point

BLEND RADIUS
FROM A POINT TO A
POINT

Figure 20-27 Blend Radius from a Point to a Point

502 Section 20: Graphics April 2003


Fadal User Manual

CIRCLE FUNCTION

Figure 20-28 Circle Function

TRIANGLE SOLVER

Figure 20-29 Triangle Solver

April 2003 Section 20: Graphics 503


Fadal User Manual

TOOL CALL AND END


OF PROGRAM

Figure 20-30 Tool Call and End of Program

TOOL CALL

Figure 20-31 Tool Call

504 Section 20: Graphics April 2003


Fadal User Manual

END OF PROGRAM

WARNING: End of program will insert at cursor!

!
The following will be inserted at the cursor for an “end of program”:

(ENDING PROGRAM
G0 G80 G90 M5 M9
Z0 G53
X0 Y0 Z0 E0 H0
M30

FIXED CYCLES AND


SUBROUTINE
FUNCTIONS

Figure 20-32 Fixed Cycles and Subroutine Functions

April 2003 Section 20: Graphics 505


Fadal User Manual

ENGRAVING

Figure 20-33 Engraving

BOLT CIRCLE

Figure 20-34 Bolt Circle

506 Section 20: Graphics April 2003


Fadal User Manual

MILL BORING

Figure 20-35 Mill Boring

RECTANGULAR
POCKET

Figure 20-36 Rectangular Pocket

April 2003 Section 20: Graphics 507


Fadal User Manual

CIRCULAR POCKET

Figure 20-37 Circular Pocket

DRILLING CYCLES

Figure 20-38 Drilling Cycles

508 Section 20: Graphics April 2003


Fadal User Manual

TAPPING CYCLES

Figure 20-39 Tapping Cycles

BORING CYCLES

Figure 20-40 Boring Cycles

April 2003 Section 20: Graphics 509


Fadal User Manual

This page intentionally left blank.

510 Section 20: Graphics April 2003


Fadal User Manual

Section 21: Formats

Overview From the SETP Command the control has the option to use either FORMAT 1 or
FORMAT 2.

Format 1 Format 1 is FADAL style programming and machine operation.

Format 1 has been uniquely designed to have the CNC control reset before
restarting machine operation. When the CNC control is in Format 1 the
programmer may program with the minimal of commands. This helps the user
for programming, setup, and operation. Some codes are unique for FORMAT 1
and FORMAT 2. Listed in this chapter are examples for each formats
programming style.

Format 2 Format 2 allows a 6M/ 10M /11M style programming and machine operation.

Format 2 follows the design to allow the programmer to completely command


the CNC control. All resets therefore must be done by the programmer in the
program and machine operation. Some codes are unique for FORMAT 2 and
FORMAT 1. Listed in this chapter are examples for each format’s programming
style.

Format 1
Programming
Notes on Format 1 1) Each line requires a sequence number and will be generated by the CNC
Style Programming control. Sequence numbers use an N####.### word. Decimal points can be
used to input lines between existing line numbers. The sequence numbers
can be added when the program is typed at the computer, but the numbers
are added automatically when the program is transferred to the control with
the TA (tape input) command. So it is possible to type the program without
line numbers and have the control add the line numbers automatically. The
NU command is used to renumber the lines.

2) Decimals are required for all dimensions, feed rates, and angles.

EXAMPLE: X Y Z ###.#### (or ##.##### for higher precision)


F ####.##
A ####.###
B ####.###

April 2003 Section 21: Formats 511


Fadal User Manual

If the decimal point does not appear with dimensions, feed rates, or angles, the
control will add them. For example, if an X1 is entered it is accepted as X.0001
(See also DECIMALS and SIGNS).

3) The O word on the first line is not required. The O word is used only for
identification of the program in the program library for multiple program
storage. The first sixteen characters of the comment with the O word will
appear when the program library directory is displayed. This comment can
be longer than sixteen characters but the remainder of the comment will
only appear when the program is listed or printed (See also the section on
program library, the PR command).

4) If the word NOEDIT is used within the first sixteen characters of the
comment on the line with the O word, the program cannot be edited. This is
the same function as using the key lock on the pendant. Program can only
be deleted with the PR command.

FORMAT 1 Program EXAMPLE 1, without subroutines or subprogram calls with fixture offsets:
Example
O# (COMMENT
M6 T1
(TOOL #1 ID
G0 G90 S##### M3 E## X###.#### Y###.####
H# M7 Z###.####
G4 P1000
Math work
M5 M9
G0 G90 80
Z0 G53
M6 T2
(TOOL #2 ID
G0 G90 S##### M3 E## X###.#### Y###.####
H# M7 Z###.####
G4 P1000
Math work
M5 M9
G0 G90 G80
Z0 G53
E0 X0 Y0 H0
M2

512 Section 21: Formats April 2003


Fadal User Manual

FORMAT 1 Program O# (COMMENT


with Subroutines (SUBROUTINE SECTION
and Subprogram L100 (SUB #1 FOR _______ Each sub begins with an L word, a sub
Calls Math worknumber (1-99), and a two digit zero repetition (00)
M17
L200 (SUB #2 FOR _______ ) Math work
M17
L300 (SUB #3 FOR _______ ) Math work

M17 This M17 marks the end of the last sub


M30 The M30 marks the end of the program’s sub section
(MAIN PROGRAM)
M6 T1(.........TOOL #1 ID
G0 G90 S##### M3 E## X###.#### Y###.####
H# M8 Z###.####
G4 P1000
Math work

L101 This line calls sub #1 one time


M98 P5 L1 This line calls subprogram 5 one time
L215 This line calls sub #2 fifteen times
G91 X##.#### L9 The L9 repeats this line nine times
M5 M9
G0 G90 G80
Z0 G53
M6 T2(..........TOOL #2 ID
G90 G0 S##### M3 E## X###.#### Y###.####
H# M8 Z###.####
G4 P1000
Math work

M5 M9
G0 G90 G80
Z0 G53
E0 X0 Y0
M2

O5 (SUBPROGRAM #5 FOR ______________ Math work


M99 Ending this program with an M99 makes it a subprogram

April 2003 Section 21: Formats 513


Fadal User Manual

Format 2
Programming
Notes on Format 2 1) The safe block is mandatory at the beginning of the program.
Style Programming
O# (COMMENT
(COMMENT
Z0 G53
G0 G17 G40 G70 G80 G90 H0 E0 Z0
G28 X0 Y0 Z0 A0 B0 if needed

2) The G28, with the axis designated to move, will bring the machine to the
zero position established by the cold start command (CS) or to the zero
position established by the SETX, SETY, SETZ, or SETH commands and/or
fixture offsets, whichever was used last. The SET commands can be used
to establish a zero position at any desired location. The program does not
need to start from the machine home position. See also the section on
establishing home position.

3) Fixed subroutines such as bolt hole pattern subroutines or pocket cutting


routines from other machines cannot be used on this control. See the users
manual for information on using fixed subroutines from the CNC 88 control.

4) The SETP command allows certain changes to default codes, diameter or


radius input, and M7 M8 preferences.

5) When typing any variable (R0,R1 - R9) always type the positive or negative
symbol before the value, for example, R1+.5 R2+2.34 R3+5.7124 R4-
6.765. See Section Six, Subroutines for proper usage.

6) The H word will only pick up the tool length offset. The D word must be
used to pick up the diameter or radius from the tool table.

7) Tool changes can be made from any XY position. The M6 code change will
move the head to the tool position and make the exchange. The T word and
the M6 can appear together, M6T# or T# M6, and usually do with this type
of tool changer; however they may appear on separate lines.

8) Each line requires a sequence number. Sequence numbers use an


N####.### word. Decimal points can be used to input lines between existing
line numbers. The sequence numbers can be added when the program is
typed at the computer, but the numbers are added automatically when the
program is transferred to the control with the TA (tape input) command. So
it is possible to type the program without line numbers and have the control
add the line numbers automatically. The NU command is used to renumber
the lines.

514 Section 21: Formats April 2003


Fadal User Manual

9) Decimals are required for all dimensions, feed rates, and angles.

EXAMPLE: X Y Z ###.#### (or ##.##### for higher precision)


F ####.##
A ####.###
B ####.###

If decimals points do not appear with dimensions, feed rates, or angles, the
control will add them. For example if an X1 is entered it is accepted as X.0001.

10) The O word on the first line is not required. The O word is used only for
identification of the program in the program library for multiple program
storage. The first sixteen characters of the comment with the O word will
appear when the program library directory is displayed. This comment can
be longer than sixteen characters but the remainder of the comment will
only appear when the program is listed or printed (see also the section on
program library, the PR command).

11) If the word NOEDIT is used within the first sixteen characters of the
comment on the line with the O word, the program cannot be edited. This is
the same function as using the key lock on the pendant.

12) When transferring a program from another control through the RS232 port,
the original line numbers can be maintained by selecting #2 from the N
WORDS ORDERED: parameter. Selecting this will cause the control to
maintain the original line numbers. The first row is from the original
program. When the program is output from the machine, only the original
numbers are outputted.

FORMAT 2 Program O# (COMMENT


Example (COMMENT
G53 Z0
G0 G17 G40 G70 G80 G90 H0 Z0 This safety line is a RESET
E0 X0 Y0 This moves to the SETH position or cold start
G54 X##.#### Y##.#### (or E1 X# Y# or G92 X# Y# are alternative
M6 T1
(TOOL #1 ID
G0 G90 S##### M3 X###.#### Y###.####
H# M8 Z###.#### D#
G4 P1000
Math work
M98 P4 L4 This calls subprogram #4 four times
M98 P3 L27 This calls subprogram #3 twenty seven times
G91 X##.#### G90 L9 The L9 repeats this line nine times

April 2003 Section 21: Formats 515


Fadal User Manual

M5 M9
G0 G90 H0 Z0
M6 T2
(TOOL #2 ID
G0 G90 S##### M3 X###.#### Y###.#### E## (or G54-G59)
H# M8 Z###.#### D#
G4 P1000
Math work
M5 M9
G0 G90 H0 Z0
E0 X0 Y0 Use this line to cancel all fixture offsets
M30
O3 (SUBPROGRAM #3 FOR ______________
Math work

M99 Ending this program with an M99 makes it a subprogram. It is called with
an M98 P3 L#. The L word is used for number of repeats
O4 (SUBPROGRAM #4 FOR ______________
Math work
M98 P3 L1 Sub #4 is calling sub #3 one time (nesting)
M99 Ending this program with an M99 makes it a subprogram

Default Parameters,
SETP Command
FORMAT 1 & Changing from FORMAT 1 (FADAL mode), to FORMAT 2 (6M, 10M, 11M mode),
FORMAT 2 is done from the SETP mode.

Format 2 allows a 6M/ 10M /11M style programming and machine operation.

Format 2 follows the design to allow the programmer to completely command


the CNC control. All resets therefore must be done by the programmer in the
program and machine operation. Some codes are unique for FORMAT 2 and
FORMAT 1. Listed in this chapter are examples for each formats programming
style.

WARNING: When operating in the FORMAT 2 mode, All RESETS must be

! commanded by the user.

1) The automatic move to home, upon program initiation, must be


commanded in the program. Format 2 requires commands to reset. All
reset commands must be used with any AUTO command.

516 Section 21: Formats April 2003


Fadal User Manual

a. In most cases it is required to use the SETCS then the HO command to


place the machine to the CS alignment position before typing SETP.
Verify that the alignment markers all line up. User may be instructed to
COLD START CNC.

The SETP command is generally used by the factory and by the set-up person
who installs the machine. It can also be used by the end user to establish
programming, baud rate, and output preferences.

Note: The factory set parameters can be found on the inside of the pendant
door.

1) Move the machine to the cold start position if changes will be made to the
parameter settings. The machine Cold Start must be accomplished when
parameters are changed.

2) From the command mode type SETP then press the ENTER button.

3) The menu prompt at the bottom of the screen defines the use of the
keyboard to move the cursor to the parameter to change. When the
parameter to change has the cursor to its left, the parameter choices will de
displayed at the bottom of the screen.

4) Select the parameter choice by pressing the number corresponding to the


choice and press the ENTER button. The parameter will display the change
and the cursor will move to the right.

5) Press the MANUAL button to exit and save the parameter setting mode.

Note: If changes are made to any of the parameters, in most cases the CNC
control will require a COLD START. Follow the power on procedure (see
POWER ON).

The following pages have the recommended format settings for the FADAL
FORMAT 1 and FORMAT 2 6MB,10M,11M compatibility.

FORMAT 1 Parameter The following is the screen’s representation upon entering the SETP command.
Settings The parameters FORMAT, DEFAULTS, IMM> FIXED CYCLE and CRC MODE

April 2003 Section 21: Formats 517


Fadal User Manual

should be set as shown. All other parameters should be set as they are from
the factory.

Figure 21-1 Format 1 Parameter Settings

Figure 21-2 Format 1 Parameter Settings (Continued)

518 Section 21: Formats April 2003


Fadal User Manual

Figure 21-3 Format 1 Parameter Settings (Continued)

FORMAT 2 Parameter The following is the screen representation upon entering the SETP command.
Settings The parameters FORMAT, DEFAULTS, CRC MODE, N-WORDS ORDERED and
TOOL TABLE should be set as shown. All other parameters should be set as
they are from the factory.

Figure 21-4 Format 2 Parameter Settings

April 2003 Section 21: Formats 519


Fadal User Manual

Figure 21-5 Format 2 Parameter Settings (Continued)

Figure 21-6 Format 2 Parameter Settings (Continued)

FORMAT THERE ARE TWO PROGRAM OPERATION FORMATS AVAILABLE

DO YOU WANT MAXIMUM 6MB/10M/11M CAPABILITY?


1) NO, ORIGINAL FADAL STYLE - FORMAT 1
2) YES, FORMAT 2

520 Section 21: Formats April 2003


Fadal User Manual

This parameter allows the user to select 6MB/10M/11M compatibility. The


operational difference between the two formats depends upon the coding
used.

AXES: X,Y,Z ENTER THE AXIS CONFIGURATION

1) A
2) A, B
3) X,Y,Z
4) X,Y,Z,A
5) X,Y,Z,A,B
6) X,Y,Z,B
7) C only

When selecting the A or B axes, the machine should be powered off. When the
power is returned the axes will be active. COLD START must then be
performed.

DEFAULT: G0 ENTER THE DEFAULT VALUE

1) G0
2) G1

The code selected is active at power on and when entering the MDI mode.

DEFAULT: G90 ENTER THE DEFAULT VALUE

1) G90
2) G91

The code selected is active at power on and when entering the MDI mode.

DEFAULT: G17 ENTER THE DEFAULT VALUE

1) G17
2) G18
3) G19

This parameter is used to select the default machine plane.

April 2003 Section 21: Formats 521


Fadal User Manual

RPM FACTOR ENTER THE SPINDLE RPM ADJUSTMENT FACTOR

THE FACTOR MUST BE BETWEEN 0 AND 31

This parameter should only be adjusted by trained maintenance personnel.

BAUD RATE ENTER DEFAULT BAUD RATE (THE RATE AFTER POWER-ON)

1) 110 5) 1200 9) 19200


2) 150 6) 2400 10) 38400
3) 300 7) 4800 11) 57600
4) 600 8) 9600 12) 115200

The operator may select the desired communications baud rate.

TRAVEL ENTER X,Y,Z TRAVEL

1) X22 Y16 Z20 8) X40 Y20 Z28 15) X50 Y20 Z20
2) X20 Y12 Z20 9) X60 Y30 Z30 16) X50 Y20 Z28
3) X20 Y13.5 Z20 10) X22 Y16 Z28 17) X80 Y30 Z30
4) X22 Y13.5 Z20 11) X20 Y16 Z20 18) X30 Y20 Z24
5) X22 Y13 Z20 12) X20 Y16 Z28 19) X30 Y20 Z32
6) X20 Y13 Z20 13) X30 Y16 Z20 20) X20 Y20 Z24
7) X40 Y20 Z20 14) X30 Y16 Z28 21) X20 Y20 Z32

The machine travel is selected with this parameter.

A-AXIS RATIO ENTER A-AXIS RATIO

1) 90:1
2) 180:1
3) 360:1
4) 120:1
5) 72:1
6) COOLANT
7) 60:1
8) 144:1

Select the appropriate option for the rotary table being used. See servo coolant
option.

522 Section 21: Formats April 2003


Fadal User Manual

B-AXIS RATIO ENTER B-AXIS RATIO

1) 90:1
2) 180:1
3) 360:1
4) 120:1
5) 72:1
6) COOLANT
7) 60:1
8) 144:1

Select the appropriate option for the rotary table being used. See servo coolant
option.

TOOL CHANGER CAP ENTER THE TOOL CHANGER CAPACITY

1) 16 TOOL ATC
2) 21 TOOL ATC
3) 30 TOOL ATC

Select the appropriate tool changer capacity.

SPINDLE TYPE ENTER THE SPINDLE DRIVE TYPE & RPM

1) 10,000 HI/LOW
2) 10,000 3 STEP
3) 15,000 DIRECT
4) 5,000 HI/LOW
5) 6,500 HI/LOW
6) 3750 WYE/DEL.
7) 7500 WYE/DEL.
8) 5000 DIRECT
9) 15K WYE/DEL.

Select the correct spindle type for the machine. This parameter is set at the
factory.

SPINDLE AFTER M6 SHOULD SPINDLE COME ON AUTOMATICALLY AFTER A TOOL CHANGE WHEN
THE M6 HAD TO TURN THE SPINDLE OFF?

1) NO (FADAL RECOMMENDS THIS RESPONSE)


2) YES

April 2003 Section 21: Formats 523


Fadal User Manual

IF YES, ALL PERSONNEL MUST BE AWARE OF THE POSSIBILITY OF OVER


SPEEDING A TOOL BEFORE THE NEW S-WORD IS ENCOUNTERED

When this parameter is selected as YES, the spindle automatically turns on


after the tool change. The spindle comes on at the last programmed spindle
speed. This may cause an overspeed of the next tool. It is recommended that
this parameter is set to number 1.

PENDANT ENTER THE PENDANT STYLE

1) KEYBOARD BESIDE THE VIDEO TUBE


2) KEYBOARD BELOW THE VIDEO TUBE
3) SAME AS 2 BUT MOUNTED ON FULL-ENCLOSURE CHIP GUARDS

Select the appropriate pendant location for the machine. When option two is
selected the table may make a Y axis positive move before a tool change. This
occurs only when the Y axis is five inches or more, in the negative direction,
from the cold start position.

M60/A-AXIS BRAKE DOES M60 TURN ON THE A-AXIS BRAKE?

1) YES
2) NO

Select the option desired to activate or de-activate the air brake for the axis.

M62/B-AXIS BRAKE DOES M62 TURN ON THE B-AXIS BRAKE?

1) YES
2) NO

Select the option desired to activate or de-activate the air brake for the axis.

IMM. FIXED CYCLE SHOULD A FIXED CYCLE EXECUTE IMMEDIATELY?

1) YES
2) NO, ONLY IF X OR Y DIMENSION WORDS ARE IN THE DEFINITION LINE

A YES response causes a fixed cycle to be executed immediately upon


definition at the current axis location. A NO response requires axis motion to
activate the fixed cycle.

524 Section 21: Formats April 2003


Fadal User Manual

ORIENTATION ENTER THE SPINDLE RPM ADJUSTMENT FACTOR


FACTOR
THE FACTOR MUST BE BETWEEN 0 AND 31

This parameter should only be adjusted by trained maintenance personnel.

DEFAULT: INCH ENTER THE DEFAULT VALUE

1) INCH
2) METRIC

The operator must select the inch or metric mode for the machine. The G70,
G71, G20, and G21 check this setting to verify the operational mode.

PU FORMAT SELECT PUNCH OUTPUT FORMAT

1) PUNCHED TAPE FORMAT (TELETYPE STYLE)


2) COMPUTER FILE FORMAT (NO NULLS)

This parameter is set to file for computer use. The punch tape format is used
when a tape reader is employed.

CRC MODE ENTER THE DEFAULT OUTSIDE CORNER MOVEMENT

1) M96 - ROLL
2) M97 - INTERSECTIONAL

This parameter selects the default mode for intersectional cutter radius
compensation.

SPINDLE OFF DO YOU WANT THE SPINDLE TO TURN OFF WHEN EXITING JOG OR MANUAL
DATA INPUT?

1) NO
2) YES

This parameter is set at the factory and should not be changed.

April 2003 Section 21: Formats 525


Fadal User Manual

PALLET DO YOU HAVE A PALLET CHANGER?

1) NO
2) YES
Select the option appropriate for the machine.

ASPECT ENTER THE ASPECT RATIO OF Y TO X

THE RATIO MUST BE BETWEEN 25 AND 150

M7-FLOOD M8-MIST ENTER M7, M8 PREFERENCE

1) M7 IS FLOOD COOLANT, M8 IS MIST


2) M8 IS FLOOD COOLANT, M7 IS MIST

The operator may select either M7 or M8 as the flood coolant code.

BINARY BUFFERS: SELECT THE NUMBER OF BINARY BUFFERS FOR CNC LOOK-AHEAD.
255
1) 15 3) 50 5) 255
2) 30 4) 100

The BINARY BUFFERS parameter can be changed to increase or decrease the


control look ahead. The factory sets the buffers at 255. This is the most
effective for programs with many small moves that must be executed rapidly.
This parameter is used to more efficiently utilize the Run Time Menu. The
smaller the buffers the more quickly the Run Time Menu changes will take
effect in the program.

TURRET FACTOR ENTER THE ENGAGEMENT FACTOR FOR THE TOOL TURRET GENEVA GEAR

THE FACTOR MUST BE BETWEEN 1 AND 50 (1 FOR SERVO TURRET)

This parameter is set at the factory. For VMCs equipped with the Servo Turret,
this factor MUST always be 1.

GAIN ENTER THE GAIN FACTOR FOR RIGID TAPPING

THE FACTOR MUST BE BETWEEN 0 AND 255

This parameter effects the spindle response during rigid tapping. The higher
the number the faster the spindle turns in relation to the feed rate. When the
speed is too fast the thread may be too loose.

526 Section 21: Formats April 2003


Fadal User Manual

TIMERS SELECT THE AUTOMATIC TOOL TIMER MODE?

1) ALL TOOL TIMING OFF


2) DO NOT CHECK
3) END OF TOOL (AT M6)
4) AFTER EACH MOVE
5) AT END OF PROGRAM

Select the desired option and set a value in the DTT table for TIME. The USED
value will be inserted by the control. See DTT command.

3 PHASE 5% LOW: IS YOUR 3 PHASE POWER MORE THAN 5% LOW?


NO
1) YES
2) NO

The selection chosen is based upon the building power supply.

HIGH TORQUE DO YOU HAVE THE HIGH TORQUE OPTION OR RIGID TAP OPTION?

1) NO
2) YES

This parameter is set at the factory.

CMD MENU TURN COMMAND MENUS:

1) OFF
2) ON
3) TOGGLE ON WITH SPACE BAR

The operator may select the command menu structure.

RAMP ENTER THE RAMP FACTOR FOR RIGID TAPPING

THE FACTOR MUST BE BETWEEN 0 AND 255

This parameter sets the speed at which the spindle accelerates during rigid
tapping.

Note: Only a factory trained representative should modify this parameter.

April 2003 Section 21: Formats 527


Fadal User Manual

OVERLOAD ENTER THE MOTOR OVERLOAD FACTOR (2 IS STANDARD)

THE FACTOR MUST BE BETWEEN 1 AND 8

SCREW SELECT THE SCREW PITCH TYPE?

1) INCH PITCH
2) 8/10MILLIMETER PITCH

IPM SELECT THE MAX RAPID FEED RATE?

1) 400 IPM 4) 800 IPM


2) 500 IPM 5) 900 IPM
3) 700 IPM

XYZ RAMP ENTER THE X, Y, & Z RAMP LENGTH FACTOR (160 IS STANDARD)

THE FACTOR MUST BE BETWEEN 50 AND 200

This parameter sets the speed at which the axes accelerate and decelerate
during travel.

Z TAP GAIN SELECT THE Z GAIN DURING RIGID TAPPING?

1) NORMAL
2) MEDIUM
3) HIGH

Only a factory trained representative should modify this parameter.

VECTOR DO YOU HAVE VECTOR DRIVE (10 RPM MIN)?

1) YES
2) NO

AXIS DISPLAY DISPLAY THE AXIS FOLLOW ERROR OR LOAD?

1) LOAD PERCENTAGE
2) FOLLOWING ERROR

This option is used to select what the axis display will show on the position
display while auto running a program.

528 Section 21: Formats April 2003


Fadal User Manual

A-PALLET WHICH ROTARY AXIS IS INSTALLED ON THIS PALLET?

1) NOT APPLICABLE
2) A-AXIS
3) B-AXIS
4) A-AXIS & B-AXIS

Select the appropriate option for the rotary axis being used.

B-PALLET WHICH ROTARY AXIS IS INSTALLED ON THIS PALLET?

1) NOT APPLICABLE
2) A-AXIS
3) B-AXIS
4) A-AXIS & B-AXIS

Select the appropriate option for the rotary axis being used.

AUTO BRAKE AUTOMATICALLY APPLY THE A OR B BRAKE DURING IDLE TIME?

1) YES
2) NO

Select the option desired to activate or de-activate the air brake for the axes.

5th AXIS DO YOU HAVE THE 5TH AXIS PROGRAMMABLE HEAD ATTACHMENT?
PROGRAMMABLE
HEAD 1) NO
2) YES

Answer YES if a 4th or 5th axis rotary head attachment is installed in the
spindle.

G0 DETAIL ENTER THE DETAIL DESIRED FOR G0 MOVES

BETWEEN 2 TO 250 TENTHS (251=OFF)

Enter a value between 2 and 250 to set the maximum distance to allow before
the control will continue with the next motion block. Smaller values may have
the tendency to cause the machine to wait at the end of G0/G5 moves. The
value of 251 can be set to turn off the feature. This parameter should be set to
any preference, as it will not affect contouring motion.

April 2003 Section 21: Formats 529


Fadal User Manual

AIR VALVE DO YOU HAVE AIR VALVE FEEDBACK?


FEEDBACK
1) NO
2) YES

Answer NO only for machines built previous to having feedback on the


drawbar.

Parameters
Applicable to
FORMAT 2 Only
N-WORDS ORDERED ENTER THE N-WORD SEQUENCE CONFIGURATION

1) THE N-WORDS ARE IN ASCENDING NUMERICAL ORDER OR


THE PROGRAM WILL BE RENUMBERED AFTER INPUT.
2) THE N-WORDS ARE NOT IN ORDER.

The CNC 88 requires each block of NC code to have sequence numbers in


numerical order. Since the 6MB/10M/11M controls do not require block
numbers in numerical order, select option number 2. Upon tape input the CNC
will add sequence numbers for reference. Otherwise after tape input the
program must be renumbered if the sequence numbers are not in numerical
order.

TOOL TABLE WILL THE TOOL COMPENSATION TABLE HAVE THE RADIUS OR DIAMETER?

1) DIAMETER
2) RADIUS

The cutter offset specification in the tool compensation table may be defined
as a diameter or radius.

The SETP mode is exited by pressing the MANUAL key. If new values were
selected, the CNC may require that you perform the Cold Start procedure (see
CS command).

530 Section 21: Formats April 2003


Fadal User Manual

Section 22: Operation of the TRM

Introduction
Fadal’s smallest VMC model is the Tool Room Mill. Although It has many
similarities with Fadal’s larger models, it has a few operational differences that
warrant a separate section in the User Manual.

Existing Programs An important feature of the Tool Room Mill is its capabilities to run existing
programs that run currently on the standard Fadal CNC control. The Feeds and
Speeds of the program will have to match the TRM specifications, but as a
whole the program will run without changes. Since the machine does not have
a tool changer, a message to make a manual tool change will be requested
when a tool change is executed.

Tool Changes The TRM does not have a tool changer, but tool changes in Auto and MDI can
still be executed. This will allow programs to run unmodified if they were written
for machines with a tool change present. When the control is asked for a tool
change, a waiting message “TOOL CHANGE –“ will blink on the screen. Before
the machine will proceed with the program, the tool has to be changed
manually. Use the TOOL IN/OUT button to release the tool in the spindle and
then put the requested correct tool into the spindle. When the correct tool is in
the spindle, the START button can be pressed to continue the program with the
new tool inserted in the spindle.

April 2003 Section 22: Operation of the TRM 531


Fadal User Manual

Manual Mode Using The Tool Room Mill uses a fully manual mode to move the machine’s axes.
the MPG Hand Each axis has its own dedicated MPG, Manual Pulse Generator, hand wheel.
Wheels For this reason, there is no axis selector switch on the machine. The X and Y
axis MPG hand wheels are located parallel to the axis that they operate. The Z
axis MPG hand wheel is located on the pendant of the machine. The Z axis
MPG hand wheel has a dual function; it will also operate when MPD, Manual
Pulse Dry run, is used. To see how to use the MPD function, read about it in
the appropriate section of the User Manual.

To enter the Manual Mode of the machine, press the JOG key. The full display
will be used to show current position. Using the axis increment selector switch,
the stepping resolution of each of the MPG hand wheel can be modified from
.0001”, .001” or .01” The axis load is display to the right of the current
position of the axis as a percentage.

Each of the axes position can be zero while in this mode. By pressing the
associated letter for the axis, the position display will be zeroed out. For
example, pressing the Y key will result in the Y axis position to be cleared to
zero. This feature can be helpful to set reference points as the machine is
positioned to points on a part print.

Figure 22-1 Full position display during manual mode (Jog)

Figure 22-2 Manual MPG hand wheels for the X, Y, and Z axes

532 Section 22: Operation of the TRM April 2003


Fadal User Manual

Keyboard The TRM uses a notebook style keyboard with added functionality. Two of the
keys are operated by holding the Shift key down and pressing the desired
function key. They are identified by common color of the key text. The first of
these two keys is the TOOL IN/OUT key, holding the SHIFT key down and then
pressing the TOOL IN/OUT will operate the tool release or locking mechanism.
The other key is the SPINDLE ON/OFF key, holding the SHIFT key down and
then pressing the SPINDLE ON/OFF key will start the spindle at the last
programmed spindle speed. Pressing the SPINDLE ON/OFF key by itself will
turn off the spindle.

Learn Mode The Learn mode on the Fadal control has always been available, but when
used on the TRM this feature can be very handy. As the machine is jogged to
positions, the program can be built automatically. See the full description of
this feature in the appropriate section of the Fadal User Manual.

April 2003 Section 22: Operation of the TRM 533


Fadal User Manual

Spindle and Axis The current spindle and axis motor power load percentage is show on the
Motor Power Load control display while operating the machine in Manual mode or Jog mode.
Percentage 100% is the continuous power output of the machine. When the power
percentage is above 100%, the machine will only be able to maintain it for
short periods of time. This time varies on the duty cycle above and below the
100% limit. When the machine is cutting material and the load goes above
100%, begin to back off on the load applied. This will prevent the machine
from faulting from and overload.

534 Section 22: Operation of the TRM April 2003


Fadal User Manual

Tool Room User For added capabilities, the TRM custom macro can be used to machine simple
Macro features. Using this custom macro will alleviate the need to move the machine
manually or writing a CNC program. To use the Tool Room Mill Custom Macro
program, the program will have to be loaded into memory and then accessed
from the Quick Key menu. To get to this menu from any of the three Command
Menu Editor menus, go to the Quick Key Menu by pressing Q. This will display
the following menu at the bottom of the screen:

1-DRY RUN 4-SET FIXTURE 7-AXIS ZERO 0-CUSTOM MACRO


2-NEXT TOOL 5-SET LENGTH 8-READ AUTO
3-ZERO RETURN 6-OFFSETS 9-PUNCH

Press the 0 key to start the TRM Custom Macro loaded into program O9999.
The custom macro program will then automatically be switched to and run in
Auto Mode. Acknowledge the start of the program by pressing the START key.
Note, there are minimum SETP (set parameters) requirements to use this
special program which are as follows in SETP set to Format 1, tool table must
be set to Diameter and be in Inch programming mode. In some cases, the Jog
Mode may need to be entered first before running the TRM custom macro for
the first time.

After pressing START to begin the program, the machine will move to the last
SET home position. Once the TRM Custom Macro is started, the menu
displayed will show the simple features that can be accomplished with the TRM
Custom macro:

1 - DRILL X - ZERO X AXIS


2 - TAP Y - ZERO Y AXIS
3 - CIRCLE Z - ZERO Z AXIS
4 - RECTANGLE A - ZERO A AXIS
5 - MOVE TO XYZ
0 - PARAMETERS

PRESS KEY SELECTION?

At this menu, the individual MPG hand wheels are enabled. The machine may
manually be moved with the wheels to desired locations. Use the X, Y, Z or A
keys to set zero references. All functions on the menu will work as incremental
moves.

April 2003 Section 22: Operation of the TRM 535


Fadal User Manual

Default Parameters To aid in repetitive tasks, there are a set of default parameters that are stored
for TRM Custom by the program that are shown in the following Parameter Menu:
Macro
1) SPINDLE SPEED/DIRECTION, S[1000.] M[3]

2) TOOL DIAMETER, D[0.125]

3) CUTTING FEED, F[20.]

4) CONVENTION/CLIMB CUTTING, [CLIMB]

5) PECK AMOUNT, Q[0.1]

6) Z PLUNGE FEED RATE F[3.]

PRESS KEY SELECTION?

The values shown between the brackets in the menu are the current default
values set. These values are stored even if the TRM Macro program is stopped
and exited. Select the parameter from the menu to change it. To keep certain
parameters at their default value, simply press the ENTER key to use defaults.

Drill Function From the main menu, move the machine with either the MPG hand wheels or
the Incremental Move function over the desired hole location. The spindle
speed, feeds and pecking amount can be set in the parameters section.
Position the tool tip at a known distance above the hole. The incremental depth
of the hole is taken from the Z position when the Drill function is started.

INCREMENTAL DEPTH FROM CURRENT Z [-1.]?

The incremental depth shown in the brackets is the default depth. If this is the
depth of the hole desired, press ENTER to continue with default value.
Otherwise, type in desire depth from the current Z position.

S 1000. M 3
PLUNGE AT F 5.
CUT AT F 20.
DEPTH Z- 1.
* PRESS START TO CONTINUE OR ANY OTHER KEY TO ABORT *

If the settings for the Drilling function are the correct, press the START button to
begin the cycle.

536 Section 22: Operation of the TRM April 2003


Fadal User Manual

Tapping Function The tapping function will use a compression tapping cycle. From the main
menu, move the machine with either the MPG hand wheels or the Incremental
Move function over the desired hole location. Position the tool tip at a known
distance above the hole. The incremental depth of the hole is taken from the Z
position when the Tapping function is started.

INCREMENTAL DEPTH FROM CURRENT Z [-1.]?


SPINDLE SPEED [500.] = S
THREAD LEAD [.05]?

The incremental depth shown in the brackets is the default depth. If this is the
depth of the tapping desired, press ENTER to continue with default value.
Otherwise, type in desired depth from the current Z position. Do the same for
the spindle speed to tap with and the thread lead to follow.

S 1000. M 3
PLUNGE AT F 5.
CUT AT F 20.
DEPTH Z- 1.
* PRESS START TO CONTINUE OR ANY OTHER KEY TO ABORT *

If the settings for the Tapping function are the correct, press the START button
to begin the cycle.

Circle and Rectangle The circle and the rectangle function can make either inside or outside shapes.
Functions They both use the diameter that is set up in the parameters, 0 from main
menu. The position of the shapes are always from the XY center of the shape,
i.e. center of circle. From the main menu, move the machine with either the
MPG hand wheels or the Incremental Move function over the desired circle/
rectangle location. Position the tool tip at a known distance above the shape.
The incremental depth of the circle/rectangle is taken from the Z position when
the function is started.

1=INSIDE OR 2=OUTSIDE CIRCLE?


INCREMENTAL DEPTH FROM CURRENT Z [-1.]?
DIAMETER OF CIRCLE [ 1.125]?
1=POCKET OR 2=MILL BORE?

Choose whether the shape will be either an outside or inside feature. When
inside is chosen, there will be an addition prompt at the end whether to make a
pocket or to just mill bore the hole. The values shown in the brackets are the
default values, if these are the desire values, press ENTER to continue with
default value. Otherwise, type in desired values.

CIRCLE DIAMETER = 1.125

April 2003 Section 22: Operation of the TRM 537


Fadal User Manual

S 1000. M 3
PLUNGE AT F 5.
CUT AT F 20.
DEPTH Z- 1.

* PRESS START TO CONTINUE OR ANY OTHER KEY TO ABORT *

If the settings for the function are the correct, press the START button to begin
the cycle. Note, that the diameter of the tool is automatically compensated
using the value in the parameters. The direction of the cutting is determined by
the spindle direction and the desired direction of climb or convention.

538 Section 22: Operation of the TRM April 2003


User Manual
Fadal

Index

Numerics
3 Phase 5% Low 181

A
A & B Fixtures Offsets 286
A = AUTO 147
A Axis 265
Direction of Motion 265
G90 Absolute Mode 265
G91 Incremental Mode 266
A Axis Brake 268
A Axis Cold Start 266
A Axis Home Position 266
A Axis Ratio 278
A Value 151
A/B Word Swap 55
A-Axis Brake 184
A-Axis Ratio 183
Absolute Input 72
Absolute Mode 285
ABSOLUTE MODE REQUIRED AT N = 225
Absolute Preset 73
Acceleration 49
Acknowledge Spindle Magnet 23, 24
Advanced Feed Forward 42
AFF Cancel 44
Air Ratcheting Indexer 30
AMPLIFIER FAULT ON AXIS 225
Analyzer Software 479
Advantages of Analyzer 479
Description 479
Sample File DATA.ABS 481
Using the Analyzer 480
Angular Limits 269
Maximum & Minimum 269
Applying Compensation with a Z Move 221
Applying Compensation with a Z Move on a Circle 223
Arc Center 290

February 2001 Index 1


Fadal User Manual

Arc Direction 291


ARM MUST BE LEFT 225
ARRAY EXCEEDS ALLOWABLE NUMBER 225
ATC FAILURE 226
ATC TURRET FAILURE 226
ATC WILL NOT MOVE TO POSITION 226
ATTEMPT TO CHANGE CRC SIDE WITHOUT G40 AT N = 229
ATTEMPT TO CHANGE TOOL WHILE IN CRC MODE, N = 230
ATTEMPT TO SWITCH PLANE DURING CRC 230
ATTEMPTED DIVISION BY ZERO 229
ATTEMPTED SQR OF A NEGATIVE NUMBER 229
AU 138
Auto 131, 138
Automatic Doors 467
Description 467
M80 Automatic Doors Open 468
M81 Automatic Doors Close 468
Automatic Doors Close 38
Automatic Doors Open 38
AXIS CONTROLLER DOES NOT RESPOND DURING POWER UP SEQUENCE 230
AXIS CONTROLLER DOES NOT RESPOND TO NC 230
AXIS CONTROLLER IS NOT A 1010-4 252
AXIS DATA TRANSFER IS STALLED 230
AXIS DOES NOT RESPOND 230
AXIS FAULT(S) AS FOLLOWS 230
Axis Limits 284
AXIS OVERFLOW 231
Axis Position Variable 426
Axis Scaling 65
Axis/Spindle Controller Error Messages 256

B
B Value 151
Background Editing 158
MU 158
SPACE BAR 158
Backlash 139
Backspace 130
BAD CIRCLE OR MISSING G AT N 231
BAD DATA OR NO TOOL DIA. 231
BAD FIXTURE NO. 231
BAD INTERPOLATION TYPE AT N 231
BAD R FIELD 231
BAD R1 USING L91 AT N = 232
BAD READING ON RESOLVER PORT 258

2 Index February 2001


User Manual
Fadal

BAD SCALE READING 259


BAD T WORD AT N= 232
BAD Z OR R0 IN CANNED CYCLE CALL, N = 232
BAUD RATE 139
2400 172
Baud Rate 139
B-Axis Brake 185
B-Axis Ratio 184
Belt Drive Range 34
Binary Buffers 255 179
BL 139
Blind Holes 97
Block Skip Switch 127
Bolt Circle 118
Bore In 83, 94
Bore Out 83

C
C = CLEAR 147
Cable Configuration 319
CALCULATED RADIUS ERROR OF 232
Cam Diameter 277
Cam Wall Angles 281
Cam Wrapping 277
Canceling 280
Writing a Program 281
CANCEL CRC BEFORE G50.1 OR G51.1 AT N = 232
CANCEL CRC BEFORE N = 233
Cancel Cutter Radius Compensation 204
Cancel Intersectional CRC 219
Cancel JOG AWAY 56
Cancel Modal Subroutine 70
Cancel Positive Approach 35
Cancel Reciprocation 28
CANCEL Z AXIS MIRROR BEFORE TOOL CHANGE AT N 233
Canceling 65
CANNOT RETURN FROM SUBPROGRAM OR SUBROUTINE CALLING LINE CANNOT BE FOUND 233
CANNOT START DIRECTLY IN A SUBPROG. 233
CC 408
CD 139
Center Drilling 82
CH 140
Change Axis Gain 38
Change Device 139
Change Program 140

February 2001 Index 3


Fadal User Manual

CHAR. SIZE OR DEPTH EXCEEDS 2.5 IN. 233


Character Code 311
Character Summary 2
CHECK EMERGENCY STOP SWITCH AND MOTOR OVERLOAD RELAYS 233
CHECK SPINDLE LUBE, WAY LUBE AND AIR PRESSURE 234
Chip Auger and Wash Down 472
Description 472
Operation 472
Circle Examples 291
Circular Boss 295
Circular Interpolation
Using G18 & G19 297
Using Radius Designation 301
Circular Interpolation Arc Clockwise 48
Circular Interpolation Arc Counterclockwise 48
Circular Pocket Clean-out 124
L9801 Circular Pocket Clean-out Counterclockwise 124
L9901 Circular Pocket Clean-out Clockwise 125
CL 141
CLEAR AN EMERGENCY STOP CONDITION 234
Clearance 96
Climb and Conventional Cutting 205
Climb Cut 204
Climb Cutting 206
Advantages of 206
Clock for All Run Time 408
Clock for Current Part 408
Clock from Power On 408
Clocks 200
CMD Menu 182
CNC 88 Commands 315
CNC 88HS Graphics 485
Graphics Menu 485
Plotting Options 485
CNC Main Errors 336
CNC88 HS Optional Diskette Drive 481
Access from Control 481
Access from Program Using Macro Statement #DISK 482
Diskette Drive Error Codes 483
Restrictions on User-Defined Subroutines 483
Specifications 481
Subprograms and Fixed Subroutines ARE Allowed 483
CO 143
Cold Start 143
Cold Start Function 389

4 Index February 2001


User Manual
Fadal

Command Echo Option 139, 140


COMMAND ERROR 234
Command List 137
Command Lock 141
Command Mode Function 388
COMMAND PROHIBITED BY THE KEY LOCK 234
Communications 311
Cables 329
Computer and Computer IO Port 331
Environment 326
File 327
Software 332
Troubleshooting 326
VMC 328
Compression Tap Holder Series 101
Contoured Slot 296
Control Parameters 322
Conventional Cut 204
Conventional Cutting 207
Advantages of 207
Coolant Off 28
Coolant One On 26
Coolant Options 26
Coolant Two On 27
Coolant-1 136
Coolant-2 136
Coordinate System Rotation 70
Coordinate System Rotation Cancel 71
Coordinate System Shift 66
Coordinate Systems 261
Copy Program 143
Corner Rounding 218
Counter Boring 82
Counting Loops 431
CP 408
CR 408
CRC 208, 210
Applying 210
Canceling 210
Guidelines for Using 208
Z Axis Moves 220
CRC CALLED WITH NO TOOL ASSIGNED AT N = 234
CRC Mode 177
CS 143
Cutter Compensation Cancel 59

February 2001 Index 5


Fadal User Manual

Cutter Compensation Left 59


Cutter Compensation Right 59
Cutter Radius Compensation 203
Format 1 203
Format 2 203
with Helical Moves 306
Cycle Execution 76
Format 1 76
Format 1 & Format 2 77
Format 2 77
Cycle Summary 83

D
D OR H TOO LARGE 234
D1 - D99 409
DATA TRANSFER FAULT 234
DE 144
Deceleration 50
Decimal Degrees 268
Deep Hole Drill
G83 102
Deep Hole Drilling
Using I, J, K 82
Using Q 82
Deep Hole Programming 102
DEFAULT
G0 170
G17 171
G90 170
INCH 176
Default Status 5
Default G Codes 6
Reset 5
Degree Feedrate Calculation 271
Delete 130
Delete Blocks 144
Device Communications Procedures 324
Device Option 139, 140
DF 146
DFF 144
DI 146
Diagnostics 146
Diagnostics Function 388
Abort 388
Align Axes 389

6 Index February 2001


User Manual
Fadal

Continue 388, 389


Controller 388
MP Probe 388
Touch Probe 388
Dial Indicator 197
Direct Numerical Control 146
Direction of Motion 283
Display Clocks 200
Display Feed Forward Parameters 144
Display Fixture Offsets 146
Display Tool Table 149
Display Tool Time Table 150
Timers 151
Display Variable Table Command 151
DNC 146
DNC MODE 235
DNC Mode 317
DNC Protocols 318
DNCX 147
DO YOU WANT REINITIALIZE MEMORY? 235
DO YOU WANT TO MOVE TO THE LAST HOME POSITION? 235
DO YOU WANT TO ZERO FIXTURE OFFSETS? 235
DO YOU WANT TO ZERO TOOL TABLE? 235
DOOR BEGAN TO CLOSE WHILE ARM WAS MOVING 235
DR 147
Draw 147
Drill Grid Pattern Macro 438
Decimal Increments 439
Whole Number Increments 438
Dry Run 146, 147
DRY RUN OPTION __ IS IN EFFECT 235
DRY RUN OPTIONS 138
Dry Run Options 158
Dry Run Summary 158
DT 149
DTT 150
DUPLICATE NAME 235
DUPLICATE OR BAD PROG. NAME 235
DV 151
Dwell 48, 83
DWELL, HIT START TO INTERRUPT 236

E
E WORD MAY ONLY BE USED WITH G0 OR G1 N= 236
Edit Menu 382

February 2001 Index 7


Fadal User Manual

BACKSPACE-PAGE UP 383
B-BOTTOM 383
C-CHANGE 383
D-DOWN 383
DEL-DELETE 383
ENTER-PAGE DOWN 383
F-FUNCTIONS 383
I-INSERT 383
N-NUMBER 383
O-COPY 383
Options 383
P-PROGRAM 383
R-REPLACE 383
S-SEARCH 383
T-TOP 383
U-UP 383
Emergency Stop 136
Emergency Stop Button 12
EMERGENCY STOP-TAKE APPROPRIATE ACTION 236
ENCODER AND MAGNET NOT RESPONDING or SPINDLE NOT RUNNING 257
ENCODER CHANNELS ARE REVERSED 260
ENCODER IS NOT 1024 LINE 257
ENCODER NOT RESPONDING PROPERLY 257
End Of All Subroutines 31
End Of Program 32
End of Program 22
End Of Subprogram 46
End of Subroutine 29
Engraving 111
Computing Actual Letter Height from the R2 Variable 114
Computing End Spacing 115
Computing Engraving Length 115
Computing Start Position 115
Computing Start Spacing 114
Engraving a Constant String 112
Engraving a Serialized String 113
L93NN Bolt Circle 118
Letter Width Factor Values 116
Parameters 111
Restrictions 112
Serialization Range 113
Spacing, Positioning, & Tool Path Calculations 114
Enter 130
ENTER AGAIN OR HIT MANUAL TO EXIT 236
ENTER COMMAND MU TO SEE THE MENU 237

8 Index February 2001


User Manual
Fadal

ENTER COMMAND SETP AND SET THE MACHINE PARAMETERS 237


ERROR 237
ERROR IN USER PROGRAM, ‘SUM’ TO SEE MESSAGE 237
Error Messages 225
ERROR N WORD EXCEEDS 99999 237
Error Option 146, 147
ERROR WHILE PROCESSING BLOCK 237
ERROR(S) READING TAPE 238
Exchange Pallets 32
Execute Fixed Cycle 34
External Slide Hold 133

F
F = FULL TABLE 148
Feed Distance Before Next Peck
P# 102
Feed Forward by Feed Rate Modification 40
Feed Forward by Feed Rate Modification Cancel 44
Feed Forward Cancel 44
Feed Forward Function 39
Feed Ramps 50
Feed Rate 96
Feed Rate Override Potentiometer 128
Feed Rate Specification 272
Feed Rate Specification MMPM, IPM or DPM 74
FILE OVERFLOW 238
Fillet Radii 216
Find 90° Corner 199
Find Center of Circle 197
Find Corner 199
Find Midpoint 198
Fine Boring 81
First Block Number 153
Fixed Cycle Cancel 71
Fixed Cycle Parameters 77
F Word 77
Fixed Cycle Examples 79
I Word 78
J Word 78
K Word 78
L Word 78
P Word 78
Q Word 78
R Plane 79
S Word 79

February 2001 Index 9


Fadal User Manual

Z Word 79
Fixed Cycles 71, 75
Definition 75
Procedure to Initialize 75
Fixed Subroutines 111, 375
Fixture Offset 151
FIXTURE OFFSET MUST BE APPLIED WITH G0 OR G1 238
FIXTURE OFFSET OUT OF RANGE 238
Fixture Offset Setting 193
Fixture Offset Variables 409
Fixture Offsets 68, 261
Flat Cam 277
Flood Coolant Through the Spindle 465, 531
FO 151
Format 1 511
Notes on Format 1 Style Programming 511
Overview 511
Parameter Settings 517
Format 1 Programming 511
Format 2
Overview 511
Parameter Settings 519
Parameters Applicable to Format 2 Only 530
N-WORDS ORDERED 530
TOOL TABLE 530
Format 2 Programming 514
Notes on Format 2 Style Programming 514
Format Classification Sheet 14
D Function Code 16
F Function Range 15
Format Classification Shorthand 14
Format Detail 14
G Function Codes 15
Geometric Relationship 20
H Function Code 16
H99 Q Value 17
M Function Codes 15
Machine 14
Maximum Working Dimensions 17
S Function 15
T Function Code 16
Formats 511
3 PHASE 5% LOW
NO 527
5th AXIS PROGRAMMABLE HEAD 529

10 Index February 2001


User Manual
Fadal

A-AXIS RATIO 522


AIR VALVE FEEDBACK 530
A-PALLET 529
ASPECT 526
AUTO BRAKE 529
AXIS DISPLAY 528
BAUD RATE 522
B-AXIS RATIO 523
BINARY BUFFERS, 255 526
B-PALLET 529
CMD MENU 527
CRC MODE 525
Default Parameters, SETP Command 516
DEFAULT, G0 521
DEFAULT, G17 521
DEFAULT, G90 521
DEFAULT, INCH 525
G0 DETAIL 529
GAIN 526
HIGH TORQUE 527
IMM. FIXED CYCLE 524
IPM 528
M60/A-AXIS BRAKE 524
M62/B-AXIS BRAKE 524
M7-FLOOD M8-MIST 526
ORIENTATION FACTOR 525
OVERLOAD 528
PALLET 526
PENDANT 524
PU FORMAT 525
RAMP 527
RPM FACTOR 522
SCREW 528
SPINDLE AFTER M6 523
SPINDLE OFF 525
SPINDLE TYPE 523
TIMERS 527
TOOL CHANGER CAP 523
TRAVEL 522
TURRET FACTOR 526
VECTOR 528
X,Y,Z Axes 521
XYZ RAMP 528
Z TAP GAIN 528
Function Menu 157, 384, 487

February 2001 Index 11


Fadal User Manual

Abort 385
Angles 490
Automatic 386
Backlash 387
Baud Rate 387
Begin 386, 387
Blend Radius 492
Change 388
Circles 491
Clear 387
Coordinate System 489
Current Program 387
Cursor Movement 157, 487
Display 387
Display Free Memory 387
DNC 386
Enter Diameter 385
Fixture 385
Getting Started 157, 487
Input 386
Input/Output 386
Jog Key 385
Learn Mode 387
Lines 491
Memory Function 386
Modify Length 385
Multiple 385
Offset Table 385
Offsets and All Memory 387
Options 387
Output 387
Parameters 388
Points 489
Program Library 386
Read From Jog 385
Reset Current Tool Location As 1 385
Run Program 386
Select Baud Rate 387
Select Options 386
Settings 387
Setup Function 384
Store Length 385
Summary 386
The Menus 157, 488
Turret Location 385

12 Index February 2001


User Manual
Fadal

Using 157, 487


Verify 387
Zero Axes 385
Function Menu Display 492
ANGLE OF A LINE 493
BLEND RADIUS FROM A CIRCLE TO A CIRCLE 500
BLEND RADIUS FROM A CIRCLE TO A LINE 499
BLEND RADIUS FROM A CIRCLE TO A POINT 502
BLEND RADIUS FROM A LINE TO A CIRCLE 499
BLEND RADIUS FROM A LINE TO A LINE 498
BLEND RADIUS FROM A LINE TO A POINT 501
BLEND RADIUS FROM A POINT TO A CIRCLE 501
BLEND RADIUS FROM A POINT TO A LINE 500
BLEND RADIUS FROM A POINT TO A POINT 502
BOLT CIRCLE 506
BORING CYCLES 509
CIRCLE FUNCTION 503
CIRCULAR POCKET 508
DRILLING CYCLES 508
END OF PROGRAM 505
ENGRAVING 506
FINDING A PARALLEL LINE USING A LINE OR CIRCLE 494
FIXED CYCLES AND SUBROUTINE FUNCTIONS 505
Function menus 492
INTERSECTION OF 2 CIRCLES 495
INTERSECTION OF 2 LINES 495
INTERSECTION OF A LINE AND CIRCLE 496
MAIN MENU 492
MILL BORING 507
NINE BLEND RADIUS FUNCTIONS 498
RECTANGULAR POCKET 507
TANGENT POINT OF A LINE AND CIRCLE 497
TANGENT POINTS OF TWO CIRCLES 497
TAPPING CYCLES 509
THREE INTERSECTION FUNCTIONS 494
TOOL CALL 504
TOOL CALL AND END OF PROGRAM 504
TRIANGLE SOLVER 503
TWO LINE FUNCTIONS 493
TWO TANGENT FUNCTIONS 496

G
G 98 Return to I Plane after Final Z 76
G Codes 2, 47
Preparatory Functions 2

February 2001 Index 13


Fadal User Manual

Summary Table 3
G Macro
Layout 412
G0 Rapid Travel 47
G1 Linear Interpolation 48
G10 Programmable Data Input 51
L10 52
L100 - L109 53
L12 52
L13 52
L14 52
L15 52
L2 51
T 53
G15 274
G15 YZ Circular Interpolation With The A Axis 54
G17.1-G17.2 A/B Word Swap 55
G17-G19 Plane Selection 54
G2 Circular Interpolation Arc Clockwise 48
G20 Inch Programming 55
G21 Metric Programming 55
G28 AND G29 USED WITH CUTTER RADIUS COMP AT SEQ 238
G28 Return to Zero 55
Format 1 55
Format 2 56
G28.1 Cancel JOG AWAY 56
G29 Return from Zero 56
G3 Circular Interpolation Arc Counterclockwise 48
G31
Using 350
G31 Probe Touch Function 57, 348
G31 USED WITH AN INCOMPATIBLE WORD OR MODE 238
G31.1 Probe No Touch Function 59, 350
G4 Dwell 48
as a Program Stop 49
as an In-Position Check 49
G40 204
G40 Cutter Compensation Cancel 59
G41 204
G41 Cutter Compensation Left 59
G42 204
G42 Cutter Compensation Right 59
G43 Tool Length Compensation Positive 59
G44 Tool Length Compensation Negative 59
G45 Tool Offset Single Expansion 60

14 Index February 2001


User Manual
Fadal

G45-G48 & G52 ARE NOT ALLOWED WITH ROTATION, N = 238


G46 Tool Offset Single Reduction 61
G47 Tool Offset Double Expansion 61
G48 Tool Offset Double Reduction 61
G49 Tool Length Offset Cancel 61
G5 Non Modal Rapid 49
G50 Ramp Control Cancel 62
G50.1 Mirror Image Cancel 62
G51 Ramp Control 62
G51.1 Mirror Image 63
G51.2 Canceling 65
G51.2 Tool Load Compensation 64
R1 = Target Spindle Load 64
R2 = Minimum Percentage Feed Rate Reduction 64
R3 = Maximum Percentage Feed Rate Increase 64
R4 = Number of Seconds at Minimum Feed Rate Until the Control Activates Slide Hold 64
G51.3 Axis Scaling 65
G52 Coordinate System Shift 66
Cancel G52 67
G53 Machine Coordinate System 67
G54-G59 Fixture Offsets 68
G66 Modal Subroutine 68
G67 Cancel Modal Subroutine 70
G68 Coordinate System Rotation 70
G69 Coordinate System Rotation Cancel 71
G70 Inch Programming 71
G71 Metric Programming 71
G73 Peck Drilling 81
Using I, J, K 81, 85
Using Q 81, 84
G73-G76, G81-G89 Fixed Cycles 71
G74 Left Hand Tapping 81
Format 1 86
Format 2 87
G74.1 Left Hand Rigid Tapping 81
G75 Tapping Head Cycle 81
Formats 1 & 2 88
G76 Fine Boring 81
Using Q 88
G76 Fine Boring Using
I, J 89
G8 Acceleration 49
G80 Fixed Cycle Cancel 71
G81 Spot Drilling 81, 89
G82 Counter Boring 90

February 2001 Index 15


Fadal User Manual

G82 Counter Boring, Center Drilling, Spot Facing 82


G83 Deep Hole Drilling
Using I, J, K 91
Using Q 90
G83 Deep Hole Drilling Using Q 82
G84 Right Hand Tapping 82
Format 1 92
Format 2 93
G84 Right Hand Tapping Using P Word 82
G84.1 Right Hand Rigid Tapping 83
G85 Bore In, Bore Out 83, 93
G86 Bore In, Spindle Off, Orient, Rapid Out 83
G86 Bore In, Spindle Off, Rapid Out 94
G87 Bore In, Bore Out 83, 94
G88 Bore In, Dwell, Bore Out 83, 95
G89 Bore In, Dwell, Bore Out 83, 95
G9 Deceleration 50
as an In-Position Check 50
G90 Absolute Input 72
G91 Incremental Input 72
G91.1 High Speed Execution 73
G91.2 High Speed Execution Cancel 73
G91.2 IS NOT ALLOWED IN FORMAT 1 238
G92 Absolute Preset 73
G92 CANNOT BE USED IN CRC MODE, N = 238
G92 MUST BE ONLY G CODE IN BLOCK 239
G93 - 1/T 272
G93 I/T Feed Rate Specification 74
G94 Feed Rate Specification MMPM, IPM or DPM 74
G98 Return to Initial Plane 74
G99 Return to R0 Plane after Final Z 76
Gain 181
Gain Setting 38
General Purpose Indexer 31
General Rules 209
GNN IS AN UNSUPPORTED G CODE AT N 239
Graphics 485
Graphics Menu 158, 485

H
H and D Word with CRC 206
Use 206
Handshaking 311
Helical Interpolation 302
HELICAL MOVE TOO SHORT, N = 239

16 Index February 2001


User Manual
Fadal

Helical Moves
Partial Arcs 307
HELICAL RADIUS TOO SMALL, N = 239
HELICAL RISE TOO STEEP, N = 239
Help 160
High Speed Execution 73
High Speed Execution Cancel 73
High Torque 182
HO 152
HO Macro
Layout 413
Home Axes Function 388
Return For Power Off 388
Return To Home 388
Home Axis 152
Hydro Sweep 466
Chip Removal System 466
Operation 466

I
I Macro
Layout 411
I Plane 75
I, J, OR K MUST BE SPECIFIED AT N = 239
I/T Feed Rate Specification 74
IBM-Compatible PC-DB9 to DB25 for DTE Equipment-Null Modem Included 320
IBM-Compatible PC-Simple DB25 Null Modem 320
ID Thread 309
Cutting 309
ILLEGAL G CODE DURING G91.1 MODE AT N = 239
ILLEGAL O WORD 239
Imm. Fixed Cycle 175
IMPROPER USE OF CANNED SUBR. 239
IN 153
Inch Programming 55, 71, 164
INCHES MODE REQUIRED - OPERATOR MUST SET 240
INCOMPATIBLE G CODES AT SEQ 240
Increment 153
INCREMENT DIVIDED BY TWO 240
INCREMENT TOO LARGE 240
INCREMENT TOO SMALL 240
Incremental Input 72
Incremental Mode 285
Indefinite Subroutine Repetitions 108
Initial Connection 311

February 2001 Index 17


Fadal User Manual

Initial Peck
I# 102
INPUT XMODEM TRANSMIT BLOCK MISSED ERROR 240
Insert Blocks 153
From 153
Increment 153
Interpolation 287
Circular 288
End Point 288
Linear 287
Interpolation Modes 287
Intersectional CRC 219
Intersectional Cutter Compensation 45
Intersectional Cutter Compensation Canceled 44

J
J 153
JOG = ZOOM 148
JOG AXES TO HOME POSITIONS, THEN ENTER THE CS COMMAND 240
Jog Axis 153
Axis ID 153
Direction 153
Jog Key and the Hand Wheel 129
Jog Mode 267
Jog to Locate 194

K
Key Lock 12
Key Lock Switch 127

L
L9101 Probe Functions 111, 352
L9201 Engraving Functions 111
Last Screen Function 389
LE 153
Learn Mode 153
Left Hand Rigid Tapping 81
Left Hand Tapping 81
LI 154
Light On/Off Switch 127
LINE FEED OPTION 140
Line Feed Option 139
Line Jump 46
Linear Interpolation 48
List Program 154

18 Index February 2001


User Manual
Fadal

From 154
Through 154
Load and Store Pallet 33
Load Pallet A & Verify Pallet A Has Been Loaded 33
Load Pallet B & Verify Pallet B Has Been Loaded 34
Locator Diameter 196
LOGIC JUMPER INCORRECT or COMMAND SIGNAL MISSING 257
Logical Operators 430
LOOK AHEAD WAS CANCELED BY OPERATOR 241

M
M = TOGGLE DISPLAY MOD 148
M 33.1 Load Pallet B & Verify Pallet B Has Been Loaded 34
M FUNCTION TOO LARGE AT N = 241
M Functions 6, 21
Modal 6
Non Modal 6
Summary Table 7
M,S,T LOCKOUT IS IN EFFECT 241
M0 Program Stop 21
M1 Optional Program Stop 22
M10 Cancel Reciprocation 28
M11 X Axis Reciprocation 28
M12-M16 Reciprocation for Y, Z, B, A 29
M17 End of Subroutine 29
M18 Air Ratcheting Indexer 30
M19 Spindle Stop and Orient 31
M2 End of Program 22
Format 1 22
Format 2 22
M20 General Purpose Indexer 31
M3 Spindle CW 23
M3.1 Sub-Spindle On, Ignore Magnet 23
M3.2 Acknowledge Spindle Magnet 23
M30 End Of All Subroutines 31
M30 End Of Program 32
M31 Exchange Pallets 32, 392
M32 Load and Store Pallet A 33
M32 Store Pallet B and Load Pallet A 392
M32.1 392
M32.1 Load Pallet A & Verify Pallet A Has Been Loaded 33
M33 Store and Load Pallet B 33
M33 Store Pallet A and Load Pallet B 392
M33.1 393
M4 Spindle CCW 24

February 2001 Index 19


Fadal User Manual

M4.1 Sub-Spindle On, Ignore Magnet 24


M4.2 Acknowledge Spindle Magnet 24
M41-M43 Belt Drive Range 34
M45 Execute Fixed Cycle 34
Used with Fixture Offsets 34
M46 Positive Approach 35
M47 Cancel Positive Approach 35
M48 Potentiometer Controls In 35
M48.1 & M49.1 Servo Coolant Potentiometer Controls In/Out 36
M48.2 394
M48.2 & M49.2 Pallet A Rotary Table Override Potentiometer 36
M48.3 394
M48.3 & M49.3 Pallet B Rotary Table Override Potentiometer 37
M49 Potentiometer Controls Out 36
M49.2 394
M49.3 394
M5 Spindle Off 24
M6 Tool Change 25
SETP Parameter 25
T-# Move Tool Changer 26
M60 184
M60 - M69 User Attached Devices 37
M-60 & M-62 for Fixed Cycles 38
M62 185
M7 Coolant One On 26
SETP Parameter 26
M7.1 Programmable Coolant On 27
SETP Parameter 27
M7-FLOOD 178
M8 Coolant Two On 27
SETP Parameter 27
M8.1 Programmable Coolant On 27
SETP Parameter 28
M80 Automatic Doors Open 38
M81 Automatic Doors Close 38
M8-MIST 178
M9 Coolant Off 28
M90 Change Axis Gain
P Word 38
M90-M93 Gain Setting 38
M94 Feed Forward Function 39
P Word 40
Q Word 40
M94.1 Feed Forward by Feed Rate Modification 40
P Word 41

20 Index February 2001


User Manual
Fadal

Q Word 41
R0+# 41
R1+# 41
R2+# 41
M94.2 Advanced Feed Forward 42
Acceleration 43
Deceleration 43
Detail 43
P Word 43
R1 43
R2 43
M95 Feed Forward Cancel 44
M95.1 Feed Forward by Feed Rate Modification Cancel 44
M95.2 AFF Cancel 44
M96 219
M96 and M97 219
When to use 219
M96 Intersectional Cutter Compensation Canceled (Roll CRC) 44
M97 219
M97 Intersectional Cutter Compensation 45
M98 Subprogram 45
L Word 46
P Word 45
M99 End Of Subprogram 46
M99 Line Jump 46
P Word 46
MA 154
Machine Coordinate System 67, 261
Machine Grounding 311
Macintosh II Mini-8 Connector 321
Macintosh Plus DIN-8 Connector 322
Macintosh Plus DIN-9 Connector 321
Macro 154
Macro Commands 417
AND, OR, and NOT 423
CLEAR 417
GOTO 417
IF - THEN 418
INDEX 419
INPUT 419
LABELS 420
Labels 418
PRINT 420
SET 420
SET DEBUG 421

February 2001 Index 21


Fadal User Manual

SET DEGREES / RADIANS 421


SET RND# 421
SET RUN 422
SINPUT 422
SPRINT 422
START # 422
Macro Language Examples 432
D-Hole Macro 432
Sub Program 800 433
Sub Program 900 436
Macro Tutorial 424
Calculations 425
Comments 425
Conventions 425
Overview 424
Summary 424
Macro Variables 410
Macros 401, 403
Functions 415
ABS 415
ATN 415
COS 415
INT 415
RND 416
SGN 416
SIN 416
SIN/COS 416
SQR 417
MAIN PROG. NOT FOUND 241
Main Program 104
Manual 136
Manual Data Input 154
Mathematical Functions 406
Calculations 407
Comments 407
Decimals 407
Exponential Form 407
Macros 406
Order of Calculation 406
MD 154
MDI Function 388
ME 155
Memory 155
MEMORY ERROR, RELOAD PROGRAM 242
MEMORY ERROR, RESPOND WITH Y TO DELETE BAD BLOCKS 242

22 Index February 2001


User Manual
Fadal

Menu 155
METRIC MODE REQUIRED - OPERATOR MUST SET 242
Metric Programming 55, 71, 164
Metric Threads 98
Mid Program Start 281
Mill Boring 119
L94NN Mill Boring Cycle Counterclockwise 119
L95NN Mill Boring Cycle Clockwise 120
Minimum Peck
K# 102
Mirror Image 63
Mirror Image Cancel 62
Miscellaneous Control Options 477
Input from a Tape Punch or Computer 477
Key Lock 478
NOEDIT Feature 479
Modal & Non Modal Functions 3
Modal 3
Non Modal 3
Modal Subroutine 68
MOTOR OVERLOAD 242
MOTOR OVERLOAD. ERROR > OVERLOAD FACTOR IN CONTOURING MODE 259
MOTOR OVERLOAD. ERROR > OVERLOAD FACTOR IN JOB MODE 259
MOTOR OVERLOAD. ERROR > OVERLOAD FACTOR IN POINT TO POINT MODE 259
MOTOR OVERLOAD. ERROR > OVERLOAD FACTOR IN STANDBY MODE 259
MOTOR OVERLOAD. EXCESSIVE FOLLOWING ERROR 257
MOTOR OVERLOAD. FOLLOWING ERROR GREATER THAN THE OVERLOAD FACTOR 258
MOTOR OVERLOAD. MISSING 0 OR 1 COMMAND 258
MOTOR OVERLOAD. PULSE COMMAND STEP COMMAND CHECKSUM ERROR 258
MOVE EXCEEDS AXIS LIMIT AT N = CHECK PROGRAM AND TOOL OR FIXTURE OFFSETS 242
Move to Fixture Offset 199
Move to Home 267
Move Tool Changer 26
MOVE TRANSFER FAULT. INCOMPLETE DATA FOR MOVE COMMAND 258
MOVE TURRET TO TOOL 1 AND ENTER SETTO COMMAND 243
MP Series Probe 348
General Rules 348
MP8 Probe Calibration 366
MU 155

N
NC Word Summary 1
NE 155
Nesting 105
New Program 155

February 2001 Index 23


Fadal User Manual

NEXT ENTRY IS OUT OF RANGE 243


NO ANGLE, THE POINTS ARE THE SAME 243
No Feed Ramps 49
NO INDEX MARK DETECTED 257
NO MEMORY AVAILABLE FOR NEW PROGRAM 243
NO MOTOR FEEDBACK 256
NO OTHER WORDS ALLOWED WITH O WORD 243
NO PARAMETERS OR PARAMETERS CORRUPTED MACHINE DEFAULTS USED 244
NO RESPONSE FROM AXIS 244
NO TOUCH OR INCOMPLETED POINT AT N = 244
NOEDIT 11
Non Modal Rapid 49
NOTE ERROR THEN HIT MANUAL 244
NU 156
NUMBER OUT OF RANGE 244
Numerical Format 268
N-Words Ordered 185

O
O = OPTIONS PLOTTING 148
O Macro
Layout 413
O Word 10
O WORD OUT OF RANGE 245
OD Thread 308
Cutting 308
OFFSET ENTRY ERROR 244
Offset Number 151
Offset Utility Option 3 199
Offset Utility Option 4 199
Offset Utility Option 5 199
Offset Utility Option 6 200
Offset Utility Options 193
Item 1 193
Item 2 194
Item 3 196
Item 4 197
Item 5 198
Item 6 199
Item 7 199
Item 8 199
Item 9 199
Option 1 193
Option 2 193
Offsets 159

24 Index February 2001


User Manual
Fadal

ONLY BLOCK SKIP ALLOWED WITH MACRO 244


ONLY M3, M4 & M5 ARE ALLOWED WITH M6 AT N = 245
ONLY Z, L, R & F WORDS ALLOWED 245
Operation Formats 169
Operator Interaction 427
INPUT 427
PRINT 427
Optional Program Stop 22
Optional Stop Switch 127
Orient 83
Orientation Factor 176
ORIENTATION FAILURE 245
ORIENTATION TIME-OUT OR TAPPING CALIBRATION FAILURE 259
O-Ring Groove 214
OUT OF FILE SPACE, A FILE COMPRESSION IS BEING TRIED 245

P
P WORD TOO LARGE 248
PA 156
Pallet 178
Pallet A Rotary Table & Pallet B Rotary Table Override Potentiomete 393
Pallet A Rotary Table Override Potentiometer 36
Pallet B Rotary Table Override Potentiometer 37
Pallet Changer 199, 391
Mechanical Overview 391
Word Swap 391
PALLET DISABLED IN PARAMETERS 245
PALLET IN STORAGE 245
PALLET MUST BE CLAMPED 246
PALLET NOT FULLY STORED 245
Pallet Programming 165
PARAMETER ERROR 246
Parametric Programming 107, 401
Example Program 402
Parametric Variables 414
PARITY ERROR 246
PARITY ERROR DURING DNC 246
Peck Drill
G73 102
Peck Drilling 81
Pendant 175
Perpendicular Rule 215
Plane Selection 54
PLEASE PUT AN O WORD AT THE FIRST OF THE CURRENT PROGRAM THE FOLLOWING PROGRAMS ARE
IN MEMORY 246

February 2001 Index 25


Fadal User Manual

Plotting Options 485


A = AUTO 485
C = CLEAR 485
F = FULL TABLE 486
JOG = ZOOM 487
M = TOGGLE DISPLAY MODE 486
O = OPTIONS PLOTTING 486
S = SINGLE STEP 486
V= VIEW TOP OR ISOMETRIC 486
POINTS ARE ON SAME LINE AT N = 247
Position Check 362
POSITION LIMIT 247
Positive Approach 35
POSSIBLE PROBE OVER TRAVEL 247
Potentiometer Controls In 35
Potentiometer Controls Out 36
PR 161
PRESS Y TO KEEP THIS POSITION PRESS N TO RETURN TO LAST POSITION 247
Probe Fixture Offset Numbe 342
Probe No Touch Function 59
Probe Offsets 342
Locating Length Using the JOG Function 344
Locating Length Using the Probe 344
Z Fixture Offsets 342
PROBE TEST = FAILURE 247
Probe Touch Function 57
Probe Touch Point Variables 413
PROBLEM POSITIONING SLIDES TO ZERO 247
PROCUNIER 97
Procunier Series 101
PROGRAM BLOCK NOT FOUND 248
Program Branching 428
GOTO 428
IF-THEN 428
LABELS 428
Program Coding 98
Program Coordinate System 263
PROGRAM DOES NOT EXIST RETRY OR HIT MANUAL TO EXIT 247
Program Maintenance Library 161
PROGRAM NOT FOUND 248
Program Number 10
Program Numbers, Protection & Storage 10
O Word 10
Program Number 10
Program Page Edit 156

26 Index February 2001


User Manual
Fadal

Program Protection 11
Emergency Stop Button 12
Key Lock 12
NOEDIT 11
Program Data Input 13
Program Storage 12
Program Stop 21
Program Storage 12
Program Tape Input 9
Programmable Coolant On 27
Programmable Data Input 51
Programming Formats 165
Format 1 166
Format 2 167
PU 161
PU Command 316
PU FORMAT 177
Punch Program Tape 161
Code Option 161
Data Option 161
TTY Option 161

Q
Q Word 278
Quick Keys Menu 379
AXIS ZERO 380
CUSTOM MACRO 382
DRY RUN 379
NEXT TOOL 379
OFFSETS 380
PUNCH 380
READ 380
SET FIXTURE 380
SET LENGTH 380
ZERO RETURN 380

R
R Plane 76
R Variable Definition 402
Radius Variables 409
RAILS NOT ALIGNED 248
Ramp 183
Ramp Control 62
Ramp Control Cancel 62
Ramping 96

February 2001 Index 27


Fadal User Manual

Rapid Out 83, 94


Rapid Travel 47
Rapid Travel Selector 128
Receiving Data 323
Reciprocation for Y, Z, B, A 29
Rectangular Pocket Clean-out 121
L9601 Rectangular Pocket Clean-out Counterclockwise 121
L9701 Rectangular Pocket Clean-out Clockwis 122
Reducing Factor
J# 102
Reinitialize 163
Remote Machine Control 395
Renumber Program 156
Increment 156
Repeating Helical Moves 302
Using Copied Lines 303
Using Line Repetitions 303
Using Subroutines and Subprograms 303
Reset Clocks 201
Reset Function 388
RESET THE EMERGENCY STOP SWITCH 248
RESOLVER FAULT OR SCALE ERROR 248
Return from Zero 56
RETURN PALLET TO THE LOAD POSITION 248
Return to I Plane after Final Z 76
Return to Initial Plane 74
RETURN TO MAGNET TIME-OUT 259
Return to R0 Plane after Final Z 76
Return to Zero 55
RI 163
Right Hand Rigid Tapping 83
Right Hand Tapping 82
Right Hand Tapping Using P Word 82
Rigid Tap 182
RIGID TAP PRECYCLE ENCODER COUNT PROBLEM (NOT ENOUGH COUNT) 257
RIGID TAP PRECYCLE ENCODER FAILURE 260
Rigid Tapping 98
Roll CRC 44
Rolling 219
Rotary Axes 265
ROTARY AXIS MOVE TOO LONG. N = 248
Row Column Pattern Macro 436
RPM FACTOR 171
RS-232 ERROR DURING DNC 248
RS-232-C Interface Connection 318

28 Index February 2001


User Manual
Fadal

S
S = SINGLE STEP 148
SCALE ERROR 249
SEE MENU FOR NEW CD FORMAT 249
Select Number/Locator 193
Sending Data 323
SEQUENCE NUMBER TOO LARGE 249
SEQUENCE NUMBER TOO SMALL 249
SERVO AMPLIFIER FAULT 249
SERVO AMPLIFIER FAULT LINE DOWN 258
Servo Coolant 468
Continuous Sweep Mode 471
CS Procedure 469
Description 468
Setup Procedure 469
Servo Coolant Potentiometer Controls In/Out 36
SET 164
Set Cold Start 163
Set Home Position For One Axis 164
Set Home Position Of All Axes 163
Set System Parameters 164
Set Time 201
Set Tool Length Offset 187
Optional Change Value 187
Tool Number 187
Set Turret Order 186
SETCS 163
SETH 163
SETIN 164
SETME 164
SETP 164
SETP Parameter 25
SETPA and SETPB 165
SETPB 165
SETTO 186
Shift 129
SINGLE STEP 249
Single Step 135
SL 187
SLIDE HOLD 249
Slide Hold 132
Slide Hold, JOG AWAY 132
Software Error Codes 335
Spacebar, Background Editing 134
Spindle After M6 174

February 2001 Index 29


Fadal User Manual

Spindle CCW 24
SPINDLE CONTROLLER DOES NOT RESPOND 250
SPINDLE CONTROLLER OR DRIVER FAULT 250
SPINDLE CONTROLLER SOFTWARE UPDATE IS REQUIRED 250
Spindle CW 23
SPINDLE DRIVER FAULT 250
SPINDLE FAILURE DURING REVERSAL 251
SPINDLE FAILURE WHILE TAPPING 250
SPINDLE FAULT LINE 251
SPINDLE FAULT LINE DOWN 257
SPINDLE HAS FAILED TO TURN ON 251
SPINDLE MAGNET NOT DETECTED or SPINDLE NOT RUNNING 257
SPINDLE MOTOR TEMPERATURE FAULT 251
Spindle Off 24, 83, 94
Spindle On/Off 130
Spindle Speed 96
Spindle Speed Override Potentiometer 129
Spindle Stop and Orient 31
Spindle Type 174
SPINDLE WILL NOT STOP. CHECK INVERTER ZERO SPEED 260
SPINDLE WOULD NOT STOP 251
Spiral Cut Macro 437
Spot Drilling 81
Spot Facing 82
SPURIOUS INTERRUPTS. NOT SERVICEABLE 259
STACK OVERFLOW 251
STACK OVERFLOW. OVERLOADED WITH STEP COMMAND 258
Start 135
Start Block Num 147
Start Block Num. 146
Step Downs 216
Store and Load Pallet B 33
Store Location 196
Storing Probed Positions 58
Saving Positions Through the Rs-232 Port 58
Saving Positions to P Words 58
Saving the Position As a V Variable 58
SU 188
Sub Program 810 437
Subprogram 45
Subprograms 108
SUBR. DOES NOT EXIST 251
SUBR. NESTING ERROR 251
SUBROUTINE CALL IS NOT ALLOWED IN MDI 251
Subroutines 103

30 Index February 2001


User Manual
Fadal

Beginning 103
Calling 103
Ending 104
Sub-Spindle On, Ignore Magnet 23, 24
Sum Program 188
CRC Option 188
Display From 188
Display Option 188
Through 188
Survey 189
SURVEY CLEARED DUE TO BLANK OR CORRUPT SURVEY 260
SURVEY CONTAINS ERRORS, PLEASE REVIEW 252
SURVEY WAS NOT WRITTEN TO THE AXIS CONTROLLER 252
SV 189
SWITCH 1 DISABLED 257
Symbolic Operators 429
Syntax Errors 337

T
TA 190
Table 59
Tap Sizes 97
Tape Input 190, 315
Add at the End Option 190
Device Option 190
Error Option 190
TAPE INPUT TERMINATED 252
TAPE IS GOOD 252
Tape Punch 325
Tape Verification 202
TAPMATIC 97
Tapmatic NCR Series 99
Tapmatic SPD Series 100
Tapping Cycles 96
Feed Rate Calculation 97
General Tapping Rules 96
Format 1 96
Format 2 96
Program Examples 98
Tapping Head Cycle 81
TC,1 191
Teletype 325
TEMPERATURE FAULT 252
TEMPORARY CONFLICT WITH AUTO 252
Termination 311

February 2001 Index 31


Fadal User Manual

Test MP Probe 199


Test TS-20 Probe 199
THERE IS NO SURVEY 252
THREAD LEAD NOT SPECIFIED AT N = 252
Thread Milling 307
Tilt Cold Start 283
Tilt Home Position 283
Tilt Rotary Table 283
Tilt Table Brake 284
TIME OUT ON RESOLVER RESPONSE 258
TIME OUT ON RIGID TAP PRE-CYCLE TEST 258
TIME-OUT ON ORIENTATION 260
Timers 173
TLC 64, 65
TLC Manual Target Power Override 65
TN 414
TO 191
TOO MANY BLOCKS FOR GAP 253
TOO MANY CONSECUTIVE NON MOTION BLOCKS 253
TOO MANY M FUNCTIONS AT N= 253
TOO MANY PARAMETERS 253
TOO MANY SUBR. CALLS 253
Tool Breakage Detection 362
TOOL BREAKAGE DETECTION = FAILURE AT N = 253
Tool Change 25
Tool Changer Cap 173
Tool Changer Open 191
Tool Diameter 409
TOOL DIAMETER TOO LARGE AT N= 253
Tool Length Compensation Negative 59
Tool Length Compensation Positive 59
Tool Length Offset Cancel 61
Tool Load Compensation 64
TOOL NN IS IN THE SPINDLE 254
Tool Number 153, 414
TOOL NUMBER TOO HIGH 254
Tool Offset Double Expansion 61
Tool Offset Double Reduction 61
TOOL OFFSET NOT ALLOWED DURING Z MIRROR 254
Tool Offset Single Expansion 60
Tool Offset Single Reduction 61
Tool Parameter Definition 191
Diameter 191
Length Offset 191
Number 191

32 Index February 2001


User Manual
Fadal

Tool Table 186


Tool Time 414
TOOL TURRET LOCATION IS NOT SET 254
Tool Used 414
Tooling Coordinate System - Home 261
Touch Check 362
Touch Probes 339
Calculate Diameter 365
Compute Center and Radius 354
Entering Radial Over Travel 367
Entering XY Shift Values 366
Jog to Position 341
Length Offset 339
Locate Touch Point 353
Locating the Points 348
Mid-Point and Angle 359
Part Orientation 356
Probe Mount 341
Radial Over Travel 365
Set Calibration 365
Set Counter 367
Set Touch Point 368
Storing Probed Positions 349
Tool Breakage Detection 345
Tool Diameter Offset 347
Tool Setting Cycle 339
True or False Comparison 364
Using with Macro Statements 371
XY Shift Error 365
Z Datum Location 360
TRANSFER ERROR, PLEASE RETRY 254
TRAVEL 172
TROUBLE READING THE EXTERNAL SLIDE HOLD SWITCH 254
TT 414
TU 414
Turret CCW 136
Turret CW 136
Turret Factor 180
Tutorial Program Explanations 442
Program Number 1 442
Program Number 2 443
Program Number 3 444
Program Number 4 446
Program Number 5 448
Program Number 6 449

February 2001 Index 33


Fadal User Manual

Program Number 7 451


Program Number 8 453
Program Number 9 455
Tutorial Program Listings 458
Program Number 1 458
Program Number 2 458
Program Number 3 459
Program Number 4 459
Program Number 5 460
Program Number 6 460
Program Number 7 461
Program Number 8 462
Program Number 9 463
Tutorial Program Summaries 440
Program Number 1 440
Program Number 2 440
Program Number 3 440
Program Number 4 440
Program Number 5 440
Program Number 6 440
Program Number 7 441
Program Number 8 441
Program Number 9 442
Synopsis 440
TYPE A Y TO IGNORE, OR TURN POWER OFF AND THEN ON AGAIN 254

U
UNDEFINED MACRO ERROR 254
Unwrapping 278
User Attached Devices 37
UT 192
Utility 192
Tool Number 192
Utility Menu 395

V
V= VIEW TOP OR ISOMETRIC 148
V1-V100 415
Variables 408, 425
Arrays 408, 425
Axis Position Variables 408
CLEAR 426
V1-V100 425
Video On/Off Switch 127
Video Option 146, 147

34 Index February 2001


User Manual
Fadal

VMC Communications Procedures 322


VT 202

W
WAIT 2 SEC., THE AXIS DRIVERS ARE BEING RESET 254
WAITING 255
WAITING ON AIR VALVE 255
WARNING POSSIBLE GOUGE AT N = 255
WAY LUBE PRESSURE SWITCH FAILURE 255
Wrapping X on B Axis 277
WRITING ERROR, WAIT 2 MIN. AND RETRY 255

X
X Axis Reciprocation 28
X Value 151
X,Y OR Z MOVE MUST BE SPECIFIED AT N = 255
XModem Direct Numerical Control 147
XMODEM for DNCX 312
How to Send a File Using 312
XMODEM Protocol 312
XON/XOFF Protocol 312
XYZ Axes 169

Y
Y Value 151
YOU CANNOT DELETE THE PROGRAM THAT IS CURRENTLY ACTIVE 255
YOU HAVE A VERSION UPGRADE OR MEMORY HAS BEEN CORRUPTED ... MEMORY NEEDS TO BE ZEROED
255
YOU MUST ENTER THE BACKLASH TABLE 255
YOUR VERSION OF CNC MAIN NEEDS TO BE UPDATED 256
YZ Circular Interpolation With The A Axis 54
YZA Circular Interpolation 274

Z
Z & M6 LOCKOUT IS IN EFFECT 256
Z AXIS MUST BE AT COLD START FOR TC,1 256
Z Value 151
Z, Q, OR F MISSING IN CANNED CYCLE CALL, N = 256

February 2001 Index 35

You might also like