You are on page 1of 170

.....

THE ALLEN-BRADLEY COMPANY


BANDIT® III CNC

PROGRAMMING MANUAL

MILL REVISION Cl

. I

. .

wp BANDIT III CNC-BIII FORM: 749-340 01


DATE: 20 May 83
FOREWARD

Proprietary

The information in this document is proprietary to the Allen-


Bradley Company, and may not be used for the manufacture of
equipment of the type described herein. This document or any
part thereof cannot be reproduced, stored in a retrieval system,
or transmitted in any form by any means, electronic, mechanical,
photocopying, recording or otherwise without written permission
from an authorized representative of the Allen-Bradley Company,
Systems Division.

Objective

This publication is intended to provide the reader with essen-


t;i.al information for a Numerical Control System. Every attempt
has been made to present information which is complete and cur-
rent, however the nature of the equipment makes it impractical
to cover all of the contingencies which may arise in its instal-
lation, operation, or maintenance. Incorporation of design
changes to improVe performance or reliability may occur at any
time and are not necessarily reflected in the information pro-
vided . The right to revise or change this publication in whole
or in part whithout prior notice is reserved. Should further
information be des~red or should situations arise which are not
covered sufficiently for the purchaser's purposes, contact the
~ K~~~/~
Allen-Bradley Company, Systems Division .

Copyright 1983

The Allen-Bradley Company


Systems Division
Highland Heights, Ohi o

h .
TABLE OF CONTENTS

1. INTRODUCT I ON 1. 1

2. CONTROL DESCRIPTION .......... . .. . . . ...... .. . ....... . 2.1

2.1 PENDANT MODULE •• • • • • •• • • • •••. • ••... • 2. 2

2 .1. 1 FRONT PANEL • . . . . . . . .. . • . ••. . . . . 2. 3

2.2 LOG I C CONTROL MODULE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5

2.3 AXIS DRIVE MODULE. . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . 2. 6

2.4 AXIS MOTOR PACKAGES .. .. 2 .6

2.5 DRI VE ENCLOSURE ...... . . . ..••.• .... .. . • .. 2.6

2.6 MACH I NING OPTIONS . ...... .. . .. : .-. 2. 6

2.7 OPERATION SPECIFICATI ONS. 2. 7

2.7 .1 INCOMING SYSTEM POWER AND I NITI AL START-UP •.. 2 .7

2.7.2 PAGE ADDRES SED OPERATION AND SOFT-KE Y


STRUCTURE • • • •••••••• •• ••• . . • • •••••••• 2. 8

MODE SELECT P A.GE. . . . . . . . . • . . • . . • • . . • . . . . . . . . . 2. 8 -

Fl: MANUAL OPE RATE . . .•..... ...•...... .•.. .• 2 .9

F3: PROGRA.M ENTRY •• ••••• • • •• • • •••••••.• • •• 2. 9

F4: JOB SET-UP . . . .. . 2. 9

F5: PROGRAM OUTPUT. • . . • • . . . . • . . . . . • . . . . . • . • 2. IO

F6: CHECK OUT. • . • . . • • . • . . . . . . . • • . . • • • . • . • • . 2.10

F7: AUTO OPERATE .• . .... ..... 2.10

2.7.3 CONTROL OPERATING STATES. 2 . ],0

2.7.4 MACHINE HOME REQUIREMENTS. 2.11

2.7.5 AXIS POSITION DISPLAYS .. .. .. .. . . . . .. . .•. . •• . 2.12

2.7.6 DEFAULT CONDITIONS . . ..... . .. .. .. . .. . .... . •. . 2.13

2.8 BACKLASH COMPENSATION •... . ...... . .•. . .. 2. 1 3

2.9 PA.RT PROGRAMMING ·LANGUAGE .. .. .. ... . .. . . 2.14

2.9.1 DATA BLOCKS. • • • . . . . . . . • . . . . . . • • . . . . . . . • • • . . . 2. 14

i
2.9.2 PERMITTED CHARACTERS EIA AND ASCII/ISO ...... 2.14

2. 9. 3 WORD ADDRESSES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 15

2.9.4 PROGRAMMING FORMATS . . . . . . . . . . . . . . . . . . . . . . . . . 2.18

3. WORD DESCRIPTIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 1

3.1 REWIND STOPS, COMMENTS, REWIND STOPS . . . . . . . . . . . . . . . . 3.1

3•2 D WORD. . • • • • • • • • . • • . . . . . • . . . . . . . • • • • • • • • • • • • • . . . . . . . 3•1

3•3 E WORD. • • . • . • • . . • . . • • • • • . • • • . • . • . . • • . • • • • • • • • • • • • • . • 3. 2

3•4 F WORD. • . • • • . • • • • • • • • • • • . • • . . • • • • • • • • • • • • • • • • • . • • • • • 3•2

3•5 G WORD • • • • • • . . . . . • . . • • . . • . . . . . . . • . • . . • • • • • • • . • • • • • • • 3•2


~

3.5.1 GOO- RAPID POSITIONING MODE . . . . . . . . . . . . . . . . 3.3

3.5~2 G01- LINEAR INTERPOLATION MODE . . . . . . . . . . . . . 3.4

3. 5. 3 G02- CIRCULAR INTERPOLATION (CW) . . . . . . . . . . . 3.4


.. 3.5.4 G03- CIRCULAR INTERPOLATION (CCW) .. ........ 3.5

3.5.5 G04 DWELL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3•7

3.5.6 G17 - PLANE SELECTION XY • ••••••••••.••.••.•• 3.7

3.5.7 G18 - PLANE SELECTION xz .................... 3.7

3.5.8 G19 - PLANE SELECTION YZ •.•••••.•••••••••••• 3.7

3.5.9 G22 - HELICAL INTERPOLATION (a,q) . ••...•.• .•• 3.7

3.5.10 G23 - HELICAL INTERPOLATION ( ccw) ........... 3.10

3.5.11 G24 - BOLT-HOLE CIRCLE AUTOROUTINE . . . . . . . . . . 3.10

3.5.12 G25- STEP AND REPEAT AUTOROUTINE . . . . . . . . . . . 3.14 -


3.5. 13 G26 RECTANGULAR POCKET ·
CLEARANCE AUTOROUTINE . . . . . . . . . . . . . . 3.16

3 .5.14 G29 - EXECUTE LAST ACTIVE AUTOCYCLE ......... 3.18

3.5.15 G30- CANCEL MIRROR IMAGE •... . . . . . . . . . . . . . . . 3.19

3.5.16 G31 - MIRROR IMAGE AXES .. .. . ..... . . . . . . . . . . . 3.19

ii
r -c.

3.5.17 G40- CANCEL CUTTER RADIUS COMPENSATION .. . . . 3 . 19


3.5 . 18 G41 CUTTER RADIUS COMPENSATION, LEFT ..... . 3.20

3.5.19 G42- CUTTER RADIUS COMPENSATION, RIGHT ... . . 3.21

3.5.20 CUTTER RADIUS COMPENSATION- GENERAL ........ 3.22

3.5.21 G66 -GRAPHICS CONTROL ..........•.......... 3.30

3.5.22 G70- INCH MODE TEST . . . . . . . . . . . . . . . . . . . . . . . . 3.30

3.5 . 23 G71- METRIC ( MM) MODE TEST ..............•.. 3.30

3.5.24 G72- SCALI NG . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.31

3.5.25
...
G73- POINT-TO-POINT INTERPOLATION MODE ..... 3.33

3.5.26 G74- PARTS ROTATION .......•...........•...• 3.34

3.5 . 27 AUTOCYCLE OPERATION GENERAL •...•••....• ~ ...• 3.39

3 . 5.28 G79- PROGRAMMABLE AUTOCYCLE ......•.......•. 3.41

3.5 . 29 G80- AUTOCYCLE CANCELLATION . . . . . . . . . . . . . . . . 3.43

3 . 5.30
.
G81- DRILL AUTOCYCLE . . . . . . . . . . . . . . . . . . . . . . . 3.43

3 . 5 . 31 G82- COUNTER-BORING AUTOCYCLE ... . .......... 3.45

3.5.32 G83- PECK-DRILLING AUTOCYCLE . . ..••.. . ...... 3.4~

3.5.33 G84 -TAPPI NG AUTOCYCLE •.. . ............•.... 3.50

3.5.35 G8 5 - BORING AUTOCYCLE ........ .. . . . . . . . . . . • . 3 . 51

3.5.36 G8 9 - RESTORE LAST CANCELLED AUTOCYCLE . .. . . . 3.52

3.5 . 37 G90- ABSOLUTE PROGRAMMING MODE • . . . . . . . . . . . . 3.53

3.5.38 G91 - INCREMENTAL PROGRAMMING MODE .. ....... • 3.53

3 . 5.39 G92- ABSOLUTE POSITION PRESET ........ . .. .. 3.54

3.5.40 G99- CANCEL ABSOLUTE POSITI ON PRESET .•..... 3 . 54

3.6 L WORD- REPEAT COUNTER ... ... .. . .... ..... . . ....... . . 3.54

3. 7 M WORD- MISCELLANEOUS FUNCTIONS . ..... . .. .. ...... . . • 3.55

3.7.1 MOO - PROGRAM STOP ...... . .... . ... .. •... .•• . . 3. 56


3 . 7. 2 MOl- OPTIONAL PROGRAM STOP .... ........ . .... 3.56
3. 7. 3 M02 - END OF PROGRAM ..... .. . . ......... . ..... 3.56

iii
3.7.4 M30- END OF PROGRAM, TAPE REWIND . . . . . . . . . . . 3.57

3. 7. 5 OTHER M-FUNCTIO~S- SUMMARY ........•........ 3.57

3 .·8 N WORD - SEQUENCE NUMBERS. . . . . . . . . . . . . . . . . . . . . . . . . . 3. 58

3. 9 P WORD - PROGRAt-1 IDENTIFICATION. . . . . . . . . . . . . . . . . . . . 3. 58

3.10 R WORD- CLEARANCE PLANE DEFINITION ........•....... 3.59

3.11 SWORD- SPINDLE SPEED CODING . . . . . . . . . . . . . . . . . . . . . 3.60

3.12 T WORD- TOOL SELECTION AND TOOL OFFSETS ........... 3.60

3.13 AXIS MOVEMENT INSTRUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . 3.61

3.13.1 LINEARAXES (X, Y, Z) ..........•..........• 3.62

3.13.2 CIRCLE CENTER PARAMETERS FOR CIRCULAR


INTERPOLATION AND POLAR POSITIONING
(I, J, K) . . . . . . . . . . . . . . . . . . . • • . . . . . . . . . . . 3.62
-
3.13.3 ROTARY AXIS (W).. . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 62

3.13.4 ANGLE PARAMETERS FOR POLAR


POSITIONING (A, B, C) . . . . . . . . . . . . . . . . . . . . 3.63

3.13.5 SECONDARY AXES (U, V, W) . . . . . . . . . . . . . . . . . . . 3.64

4. PART PROGRAMMING AND CONTROL OPERATION . . . . • . . . . . . . . . . . . . . 4.1

4.1 PRE-PROGRAMMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1

· 4.1.1 PART COORDINATES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2

4 . 1. 2 TOOLING . . . . . . . • . . • . • • • • • • . . • . • • . • . . . . . . . . . . . . 4•4

4. 1. 3 FIXTURE OFFSETS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 6

4. 2 EXAMPLE PROGRAM. . . . • • • • • • • • . . . . . . . . . . . • • • . . • . . • . . . • . 4. 7

4.2.1 t1AIN PROGRAM P1- FIXTURES . . . . . . . . . . . . . . . . . . . 4.7

4.2.2 SUBPROGRAM P2- CONTOUR ... ~ . . . . . . . . . . . . . . . . . . 4.10

4.2.3 SUBPROGRAM P3- INC C-BORE ......•....•....... 4.14

4.2 .4 SUBPROGRAM P4- DRILL . . . . . . . . . . . . . . . . . . . . . . . . 4.15

4.3 JOB PREPARATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.16

4.3.1 MANUAL OPERATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.16

MACHINE HOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.17

iv
MD I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 17

JOG INCREMENTAL . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . 4.18

JOG CONTINUOUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.19

JOG HANDWHEEL . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . 4. 20
4.3.2 JOB SET-UP .. .................... 4.20
INCH/METRIC .. 4.21
BLOCK DELETE . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . 4. 2 2

OPTIONAL STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.22

TOOL OFFSETS . . . . . . . . . . . . . . . . . . . . . . . . . . ... 4.22

FIXTURE OFFSETS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.24

BACKLASH COMPENSATION . . . . . . . . . . . . . . . . . . . . . . . . . 4.25

DIRECTORY . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 4.26

NEXT PROGRAM . • • . • • • • • • • • • • • • • . • . • • • • . • • • • . • 4.26

4.4 PROGRAM ENTRY . . . . . . . . . . . . . . . . . . . . . . .. 4.26

4.4.1" -PROGRAM NUMBER AND MEMORY DISPLAY. 4.27

PROGRAM NAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 2 7

PROGRAM NUMBER. . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . 4. 2 7

CHARACTERS.................................. 4.28

AVAILABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.28

RENUMBER TO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 28

4.4.2 PROGRAM ENTRY SOFT-KEYS . . . . . . . . . . . . . . . . . . . . . . . 4.28

EDIT . . . . . . . . . . . . . . . . . . . . . 4.28

DELETE . . . . . . . . . . . . . . . . . . . 4.29

DIRECTORY . . . . . . . . . . . . . . . . . . . . c:••·•············ 4.29

NEXT PROG ..• . . . . • . . . . • • . • • • • • • • • • • • • • • • • . • • . • • 4.29

4.4.3 PROMPT EDIT FEATURES .. .... ....... ••••••••••••• 4.29

PROMPT EDIT CHARACTER SPACE FORMAT ............ 4.30

v
LIST EDIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.33
~

SEARCH •.. • . . • • . . . . . . . • . • • •••••••••....• .••.•• . 4.34

4. 5 CHECK OUT . . • • . . . . . . . • . • . • . . . . • . . . . . . . . . . . . . . . . . . . . • . . 4.35

4 • 5 • 1 CHECK RUN • . . . • • • • • • • • • • • . . . . • • . . • • . • . • • . • • . . . . 4.35

4 • 5 . 2 TEST RUN . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.36

4. 5. 3 DRY RUN . . . . . • . • • . . . . . . • • • • . . . . . . . . . . . . • • . . . . . . 4.37

4.5.4 STATUS PAGE 4.37

4.5.5 GRAPHICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.39

LEFT, RIGHT AND BOTTOM LIMITS . . . . . . . . . . . . . . . . . 4.40

SOFT LIMITS. . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 40

RAPID. 4.41

GRID. 4.41

AUTO LIMITS AND RESTART . . . . . . . . . . . . . . . . . . . . . . . 4.41

ERASE • ..•.••••• 4.42

PLANE SELECTION AND POSITION DISPLAY . . . . . . . . . . 4.42

4. 6 PROGRAM EXECUTION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 4 2

JOG-IN-AUTO AND JOG-AND-RETURN . . . . . . . . . . . . . . . . 4.44

5. INPUT/OUTPUT . . . . . . . . . . . . . . . . 5.1

PRELIMINARY CONNECTIONS CASSETTE INTERFACE . . . . . . . . . 5.1

5. 1 PROGRAM OUTPUT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. 2

5. 2 PROGRAM INPUT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • 5. 4

6. ADVANCED PROGRAMMING . . . . . . . . . . . . . . . . . . 6.1

6.1 POLAR COORDINATE PROGRAMMING . . . . . . . . . . . . . . . . . . . . . . . . 6.1

6 .1.1 CIJ COMMAND . • . . . . . . . . . . . . • . . . . . . . . . . . . . . . • • . . 6.3

6 .1. 2 RI J COMMAND. . . . . . • . . . . . • • . • • • • . • . • • • • • • • • . • • • 6•5

6 .1. 3 RA COMMAND. • • • • . • • • • • • • • . • . . • • . • • • • . • . • • • • • • • 6•7

vi
6.1.4 RCIJ COMMAND • . . . . . . . . . . . . . . . . . . . • . . . . • . . . . . . . 6.9

6.1.5 POLAR PROGRAMMING EXAMPLES . . . . . . . . . . . . . . . . . . . 6.11

CIRCULAR SHAPES USING POLAR LINE SEGMENTS .... 6.12

ELLIPTICAL SHAPES WITH SCALING . . . • . . . . . . . . . . . 6.16

SPIRALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 17

APPENDIX A- SYSTEM MESSAGES AND ERROR DIAGNOSIS . . . . . . . . . . . . . a-1

APPENDIX A- INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a-2

ERROR DIAGNOSIS....... . . . . . . . . . . . . . . . . . . . . . . . . . . a-2

MESSAGES. • . • • • • • • • • • • • • • • • • • • • • • . • • . • • . • • • • . • . • • a-2

APPENDIX B - MATH FOR PROGRAMMERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-1

B. 1 INTRODUCTION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b- 2
B.2 GENERAL CONCEPTS AND COORDINATE SYSTEM ...•.•........ b-2

B.3 INCREMENTAL/ABSOLUTE PROGRAMMING AND


ABSOLUTE POSITION PRESET . . . . • . . . . . . . . . . . . . . • . . . . . b-5

B.4 CALCULATION PRINCIPLES AND TECHNIQUES -


ALGEBRAIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-7

B.5 CALCULATION PRINCIPLES AND TECHNIQUES -


GEOMETRIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-8

B.6 CALCULATION PRINCIPLES AND TECHNIQUES -


TRIGONOMETRIC .•.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-12

B. 7 SOLVING TRIANGLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-14

B.B TOOL PATH COORDINATES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-19

B. 9 ILLUSTRATIVE PROBLEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-32


I

.
II
I
I
I
1

Vl.l.
LIST OF FIGURES

1-1: Axes On a Vertical Mill ...... .. . . . . . . . . . . . . . . . . . . . . . . . . 1.1


2-1: System Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1

2-2: Vertical Milling Machine Installation . . . . . . . . . . . . . . . . . . 2.2


2-3: Pendant Module Front Panel . . . . . . . . . . . . . . . . . . . • . . . . . . . . . 2.3

2-4: Bandit III Soft-Key Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fold-Out


3-1: Circular Interpolation Plane Selection . . . . . . . . . . . . . . . . . 3.4
3-2: Absolute and Incremental G02 Arcs. . . . . . . . . . . . . . . . . . . . . . 3. 5
3-3: G02 /G03 Arc Programming Examples. . . . . . . . . . . . . . . . . . . . . . . 3. 6

3-4: Hel1cal Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . 3.8


3-5: Incrementa~ Helical Interpolation . . . . . . . . . . . . . . . . . . . . . . 3.9

3-6: G24 Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 12

3-7: Bolt-hole Circle Programming Example . . . . . . . . . . . . . . . . . . . 3.13

3-8: G25 Programming Examples.. . . . . . . . . . . . . . . . . . . . • . • . . . . . . . 3. 15

3-9: Rectangular Pocket Clearance Autoroutine . . . . . . . . . . . . . . . 3.18

3-10: Cutter Radius Compensation, Left . . . . . . . . . . . ... .•....... 3.20

3-11: Cutter Radius Compensation, Right . . . . . . . . . . . . . . . . . . . . . . 3.21

3-12: Cutter Radius Compensation Programming . . . . . . . . . . . . . . . . . 3.23

3-13: Compensation Look Ahead Restrictions . . . . . . . . . . . . . . . . . . . 3.29

3-14: Scaling Absolute Moves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.32

3-15: Rotation of the Coordinate Sys tern. . . . . . . . . . . . . . . . . . . . . . 3. 3 5

3-16: Rotation Programming Example 1 .....•. ..•........•.•..... 3.36

3-17: Rotation Programming Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . 3.39

3-18: Programmable Autocycle . . . • . . . . . . . . . •.. ...........••..•. 3.43

3-19: Drill Autocycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.44

3-20: Counter-boring Autocycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.46

viii
3-21 Peck Drill Autocycle. .................................. 3.49

3-23: Tapping Autocycle. ..................................... 3.51


3-24: Bor1ng Autocycle . . . . . . . . . . . . 3.52

4-1 Example Part Specificatlons. 4.2

4-2: Example Part Coordinates . . . . . . . . . . . . • . . . . • . . . . . . . . . . . . . 4.4

4-3: Tool Length Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 5

4-4: Fixture Offsets Example. 4.6

4-5: Programmed Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11

4-6: Manual Operate Page. 4.16

4-7: Job Set-up Page. 4.21

4-8: Tool Off?ets Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.23

4-9: Fixture Offsets Page. 4.25

4-10: Program Entry Page .•.•... 4.26

4-11: Prompt Edit Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.30

4 -l 2 : Check Run Page . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 3 5

4-13: Status Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.38

4-14: Graphics Page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. 39

4-15: Auto Operate Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.43

5-l: Program Output Page .. 5.2

5-2: Cassette Output Page. 5.3

5-3: Cassette Input Page....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. 4

6-1 Polar Positioning System . . . . . . . . . 6.1

6-2: CIJ Polar Cotnm.and • . • • • . . . . . . • . • • • • • 6.3

6-3: CIJ Cor:unand Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. 4

6-4: RIJ Polar Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5

6-5: RIJ Command Exanples. 6.6


~
_,
6-6: RA Polar Coilll1land. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. 7

lX
6-7: RA Command Examples . . . . . . . . . . . • . . . . . . . . . . . . . . • . . . . . . . . • 6.8
6-8: RCI'-J Polar Corrunand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.9
6-9: RCI ..J Command Examples .. . . • • . • . . . . . . . . . . . . . . . . . . . • . . . . . . 6.10
6-10: Polar Programming Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.12

6-ll: Circle Generation with Line Segments . . . . . . . . . . . . . . . . . . . 6.13

6-12: Ellipse Programming Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.16

6-13: Constant Lead Spiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.19

B-1: Tool Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-2

B-2: Rectilinear Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . b-3

B-3: Polar Coordinate System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-4

B-4: Absolute anp Inc~emental Moves . . . . . . . . . . . . . . . . . . . . . . . . . b-5

B-5: Parallel and Perpendicular Lines . . . . . . . . . . . . . . . . . . . . . . . b-8

B-6: The Circle . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b - 9

B-7: Opposite Angles Equal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b - 10 ~ .....

B-8: Triangles - Sum of Interior Angles . . . . . . . . . . . . . . . . . . . . . b - 10

B-9: Proportional Triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-11

B-10: Right Triangle- Pythagorean Theorem . . . . . . . . . . . . . . . . . . . b-11

B-11: Trigonometric Relationships- Right Triangle ........•.• b-13

B-12: Unit Circle- Derivation of Trig Functions . . . . . . . . . . . . . b-13

B-13: Signs of Trig Functions by Quadrant . . . . . . . . . . . . . . . . . . . . b-14

B-14: General Triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b -1 5

B-15: General Triangle Solut1ons . . . . . . . . . . . . . . . . . . . .......... b-17

B-16: Right Triangle Solutions . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . b-18

B-17: 90° Corners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b - 20

B-18: Acute Corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-21

B-19: Obtuse Corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-22

X
B-20: Resolving Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-22

B-21: Single Quadrant Arc . . . . . . . . . . . . . . . . . . . . . .... ....... . ... b-24

B-22: Multi-quadrant Arc. .................................... b-26

B-23: Circle Programming. b-28

B-24: Blending Arcs to Angles Example 1. . . . . . . . . . . . . . . . . . . . b-29

B-25: Blending Arcs to Angles Example 2. . . . . . . . . . . . . . . . . . . . b-30

B-26: Blending Arcs to Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-31

B-27: Example Part .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-32

B-28: Solved Example Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b-33

XJ.
1. INTRODUCTION

The Bandit® III CNC represents a new concept in "state of the


art" computer numerical controls. In comnon with most of today's
top of the line controls it offers a CRT (cathode ray tube) dis-
play , an integral programmable controller,-and enhanced program-
ming capabilities. But, in addition to these common features
the Bandit III CNC provides versatile program editing facilities
with optional prompting, a graphic part display, and a unique
page addressed method of operation. Page addressed operation
introduces the new concept: make advanced CNC easy to understand
and use. The Bandit III CNC brings ease and convenience of oper-
ation to the state of the art control. Its addition to any
machine tool will immeniately enhance metal working precision
and efficiency. It can make previously complex operations easy
to perform and give a new scope to the capabilities of any
machine shop.

This manual is a guide to programming the Bandit® III CNC. In


the sections that follow, we will present the control in general
terms (Section 2), give complete definitions of program commands
(Section 3), and provide a guide to program development (Section
4). I/O operations ~re discussed in Section 5 and Section 6
explains advanced programming features and concepts. Appendix A
lists system messages and error diagnostic procedures. Appendix
B gives a brief review of math concepts for the programmer.

Before starting our discussion, certain preliminary assumptions


should be noted. We have assumed installation on a vertical
milling machine with three controlled axes. The axes are desig-
nated X, Y, and Z in agreement with the conventional coordinate
system . Figure 1-l illustrates the coordinate system overlaid
on the working space of a vertical mill.

Note that direct1ons are referenced to the tool. Although move-


ments of the X and Y axes are acutally table movements, we will
consider them to be tool movements. Thus a move in the X+ direc-
tion is a tool movement to the right (although the table moves to
the left) .

It is important that the programmer study this manual thoroughly.


Once grasped, programming the Bandit III CNC is surpr1singly
simple. But a finished part can be no better than the program
which generates it. And full use of the control requires a
knowledge of its capabilities.

l.l
Figure 1-1: Axes On a Vertical Mill

If, in the course of reading this manual , you discover any errors
or inadequacies , please advise Technical Documentation/Commercial
Services , Allen-Bradley Company/Systems Div.ision, 747 Alpha Drive,
Highland Heights, OH 44143

The Allen-Br a dley Company reserves the right to update this doc-
ument through whatever means necessary without prior notice.

1.2
2. CONTROL DESCRIPTION

This section presents a general overview of the Bandit III CNC's


components and programming features as they relate to a vertical
milling machine application. Figure 2-l illustrates the rela-
tionships between system components. Figure 2-2 shows a typical
installation on a series II vertical mill.

VERTICAL
MILL

PENDANT
MODULE
AUTOMATIC TOOL CHANGER
(POWER DRAW BAR, ~PM CHANGER)

SPINDLE
CONTACTOR
BOX LOGIC
CONTROL
MODULE

DRIVE ENCLOSURE

Figure 2-l: System Components

2.1
Figure 2-2: Vertical Milling Machine Installation

2.1 PENDANT MODULE

The Pendant Module is the focal point for an operator/programmer's


use of the system. The pendant's front panel contains a 9 inch
CRT, a full alpha-numeric keyboard, and controls for machine
operation.

The Pendant Module is typically mounted to the machine with a


Mounting Arm at a location that is convenient for operator access
to the front panel. Two pivot points on the arm allow the pen-
dant to be moved forward and back or left and right, as required.

2.2
2.1.1 FRONT PANEL

Figure 2 - 3 details the front panel of the Pendant Module. A


brief description of the front panel is given in this section.

MANUAL OPERATE

BANDIT III PROGRAM ENTRY

MILL REV C I JOB SETUP

PROGRAM OUTPUT

ALLEN-BRADLEY CHECK OUT

CNC AUTO OPERATE

~ ., .... t 14

•o®"o
40

30

20 140
120

30

~~ ~ 10 '50

® ALLEN-BRADLEY
~ ' •~EEDRATE "'aSPIN OLE SP£EO

Figure 2-~ : Pendant Module Front Panel

1. CRT -- A 9 inch CRT is provided for the operator or


programmer to monitor and control the functions of the CNC.
The CRT will display various "pages" of information to the
user d epending on which soft-key is pressed while a given
page is displayed. The Mode Select page is shown in figure
2- 3 .

2. SOFT-KEYS -- This vertical group of 8 keys is addressed


through the CRT in a number of ways depending on the
currently displayed page. (They have software definable
functions, thus the term "soft-keys".) For example, if the
Mode Select page is displayed, and the F3 key pressed, the
Program Entry page will be shown on the CRT. The soft-keys
will now have functions associated with program input and
management.

2.3
. '
3. ALPHA-NUMERIC KEYBOARD -- A full alpha-numeric keyboard
allows the programmer to specify required word addresses and
numeric data for part programs . For more complete
documentation , programs can also incorporate comments, which
may be entered using the front panel keyboard . Secondary
characters are accessed by simultaneously pressing the SHIFT
key and a k e y from the numeric keyboard.

4. DELETE AND INSERT KEYS -- The DELETE and INSERT keys are use-
ful during p rogram editing. They are used in conjunction
with the CRT c u rsor to insert or delete individual characters
or complete data blocks.

5. SHIFT KEY - Secondary characters from the keyboard are


entered when the SHIFT key is pressed simultaneously with a
selected numeric key. During program editing, the SHIFT key
can be used with the DELETE and INSERT keys and the cursor
control keys to perform se v eral editing functions. Lastly,
pressing the HALT CYCLE button and the SHIFT key will halt
execution of the current function and re-establish several
default (power-on) conditions.

6. CURSOR CONTROL AND ENTER KEYS -- Certain pages shown on the


CRT wi ll hav~ a mo~able cursor for convenience of data entry. _
The cursor control (arrow) keys move the cursor up, down,
right or left. Pressing and releasing a cursor control key
will move the cursor one space. Pressing and holding a cur-
sor control key will move the cursor continuously in a given
direction . If da ta o r other information is required at the
present loc ation o f the cursor, it can be entered by using
the charac t e rs from the keyboard, followed by pressing the
ENTER key .

7. EXIT KEY -- The EXIT k ey is used to move , or "exit," from a


page that is curr e ntly being displayed on the CRT. Pressing
the EXIT key o nce will display the previous page (that was
used to c all th e e x ited page) . Repe a tedly pressing the EXIT
key wil l normal ly bring the control back to the Mode Select
page. Pressing the SHIFT and EXIT keys at the same time will
also bring the c ontrol back to the Mode Select page .

8. EOB (END OF BLOCK) KEY -- Each data block in a part program


must be te r minated with an End of Block (#) character. An
End of Block is specified when this key is pressed, and a new
data block can begin following the # character.

9. JOG HANDWHEEL -- When Jog Handwheel is selected from the


Manual Operate page, a given machine axis can be moved with
the jog handwheel on the front panel . The axis will move in
the + or - direction depending on which direction the
handwheel is rotate d . Incremental movement of the handwheel
will move an axis a given incremental amount depending on the
setting of the Feedrate Override Switch.

2.4
10. START CYCLE BUTTON -- This green illuminated button will ini-
tiate continuous execution of a prograM or other function when
it is pressed. The button is normally off, but will illuminate
when pressed and remain on until the particular progran or
function is completed .

11. SINGLE CYCLE BUTTON -- This yellow illuminiated button is


used to execute a single program data block or other
function. A part program may be run one block at a time by
pressing the SINGLE CYCLE button repeatedly. The button is
normally not lighted, but turns on when pressed, remaining
on until the data block is completed .

12. HALT CYCLE BUTTON -- This red illuminated button will halt
execution of a program or other function when it is pressed.
Axes will decelerate and hold in position when the HALT CYCLE
button is pressed and the button will be lighted when the
control is in a halted state. Program execution is resumed
by pressing the START CYCLE or SINGLE CYCLE buttons.

13. FEEDRATE OVERRIDE SWITCH ~ The programmed rate at which


machine axes move can be modified by the operator with
adjustment of this rotary switch. The switch is graduated in
10% increments from 0% (FEEDHOLD) to 150%. Programs should
be written assuming a 100% setting, but this can be modified
by the operator to meet specific. machining requirements.

14. SPINDLE SPEED OVERRIDE SWITCH -- This switch affects the


programmed spindle speed. The operator can modify programned
spindle speed in 10% incremen~s from 0% (stop) to 150% . (In
nost installations the spindle.- will not respond to the
override switch below the 50% setting or above the 120%
setting.) Programs should be written assuming a 100% setting.

15. EMERGENCY STOP BUTTON -- This pushbutton disables normal CNC


functions when pushed-in to the OFF position. The CRT will
show a fla s hing "EMERGENCY STOP" message for this position
of the button. To activate the control, rotate the button
clock wise u ntil it pops out . The CRT will then display
the page that was current when the button_was pushed-in.

2.2 LOGIC CONTROL MODULE

The Logic Control Module is the principal operating component of


the Bandit III CNC system. It contains the CPU and CRT control
boards which monitor and direct virtually all CNC functions. The
CPU board processes system information and directs axis
movements. The CRT control board, in addition to its CRT control
functions, monitors the machine interface (e.g., axis travel
limits, tool changer operation, etc.).

The Logic Control Module is typically mounted within a Drive


Enclosure to protect it from the machine shop environment.

2.5
2.3 AXIS DRIVE MODULE

The Axis Drive Module uses the motor drive signal (from the Logic
Control Module) to run the Axis Motor Packages at a desired velo-
city and in a given direction. The Axis Drive Module also
monitors a tachometer feedback signal from the Axis Motor
Packages. Four separate motor drivers may be incorporated to
automate a vertical milling machine (3 linear axes, and 1
rotary axis, for example), but the Bandit III CNC can direct up
to six independent axes.

The Axis Drive Module is normally mounted within the Drive


Enclosure.

2.4 AXIS MOTOR PACKAGES

Axis Motor Packages combine a DC servo-motor, an encoder feed-


back device, and a tachometer. The DC motor responds to the
amplified drive signal from the Axis Drive Module to rotate an
axis lead screw, for example, at a given rate and in a given
direction. The encoder, coupled to the motor shaft, feeds the
motor's actual respons~ back to the Logic Control Module. The
CPU then compares -its commanded signal with the motor's response
to generate further drive information. The tachometer signal is
fed back to the ~xis Drive Module where . it is used to modify axis
speed. This comp·l etes a DC servo closed loop system with precise
control of velocity and position of machine axes.

2. 5 DRIVE ENCLOSURE

A Drive Enclosure , provided for the Bandit III CNC system by


Allen-Bradley, houses the Logic Control Module, the Axis Drive
Module and system power supplies. It also gives all necessary
interface electronics, and external cables. The Drive Enclosure
provides internal cooling of components without drawing in exter-
nal air. This eliminates the requirement of cooling air filters.

The Drive Enclosure ' s door latch is interlocked to incoming AC


power so that if the door is opened, power is removed from the
system.

2.6 MACHINING OPTIONS

A number of options are available from Allen-Bradley which


enhance the operational efficiency of the Bandit III CNC system.
These options include an Automatic Toolchanger (ATC) which can
randomly select and change any of up to 24 tools from its tool
carousel . The ATC option will also provide -a Power Draw Bar
which draws a tool into the spindle, or releases it on command.
The Power Draw Bar may be ordered as a stand-alone option if the
ATC is not incorporated. A spindle RPM Changer is available as
a standalone option to automatically vary the spindle speed. A
Spindle Contactor Box may also be ordered. It contains the
necessary components for controlling 3 phase spindle motors.
2.6
2.7 OPERATION SPECIFICATIONS

This section presents a brief summary of Bandit III CNC opera-


tional facilities.

2.7.1 INCOMING SYSTEM POWER AND INITIAL START-UP

Incoming power to the Bandit III CNC system ("fully wired" or


"partial"~ those supplied with an Allen-Bradley Drive Enclosure)
must be three-phase AC in the range l98V to 250V, 50/60 Hz. All
necessary power for the control and associated devices is derived
from this input through factory installed power supplies and
connect1ons.

CAUTION: There are no user serviceable components


within the Drive Enclosure. Use extreme
care and remove incoming power before
opening the Drive Enclosure, if it is ever
necessary to do so. Power applied to the
open Drive Enclosure poses a potential
hazard to personnel and equipment. Refer
all service problems to qualified service
personnel.

The only power switch for the system is the door interlock on the
Drive Enclosure. There is no power switch on the Pendant Module.
If the system is not "ON," first push the Emergenct Stop button
into the "OFF" position. If the system is equipped with an
Automatic Toolchanger make sure that its power switch is "OFF" as
well prior to turning the Bandit III "ON".

IMPORTANT: The Emergency Stop button on the Pendant


Module can be pushed-in at any time during
operation . This position of the button will
remove power from the Axis and Spindle
Drives, and stop any movement of the axes
and spindle. Pushing the Emergency Stop
button may not stop operation of the Auto-
matic Toolchanger immediately. To inhibit
the toolchanger immediately, use the STOP
button on the toolchanger.

When power is applied to the system via the Drive Enclosure


interlock , the CRT will first display "CHECKING MEMORY" in high-
lighted video for about four seconds. Following the control's
check of its memory, a flashing "EMERGENCY STOP" message will be
shown. To remove the energency stop condition, rotate the Emer-
gency Stop button clockwise until it pops out. This should
bring the Mode Select page to the CRT (see figure 2-3), and the
red HALT CYCLE button should be illuminated. The Axis Drives
shouln also initialize, after several seconds , at .this time.
When a correct power-on sequence for the control is complete,
the Automatic Toolchanger can be turned "ON".

2.7
NOTE: If errors are detected during control sta r t -
up, the system will either show a flashing
message on the screen denot1ng the error, or
stop 1n a memory fail condition. For system
detected errors, refer to Appendix A of th1s
manual for d1agnos1s and/or refer the prob-
lem to qualified service personnel.

With the Mode Select page shown on the CRT, and the control pro-
perly in1talized, the system is ready for normal use .

2.7.2 PAGE ADDRESSED OPERATION AND SOFT-KEY STRUCTURE

The Bandit III CNC implements a page addressed method of


operation. t1ajor fun ctions of the control are divided into
separate units, or pages, which are displayed on the CRT. A
g1ven page will display pertinant information concerning the
current function of the control. It will allow specific opera-
t1ons to be performed and may also provide a soft-key addressed
selection of other pages or operations.

The soft-keys and the EXIT key are used to move between the
various pages of ·the control. The soft-keys provide the means of
moving into pages; the EXIT key is used to move out of a current -
page to the page that was previously displayed. Fo l d-out figure
2-4, at the end of this section, gives a summary of the page
address structure for the Bandit III CNC; i.e., a "soft- key tree . "
Each page of the control has a corresponding block in the tree.
The soft-key used to access a given page is noted immed1ately
above each page block. Note that there are six primary branches
in the structure. Each of these branches are accessed from the
main page of the control, the Mode Select page.

MODE SELECT PAGE

The f1rst page displayed by the control after initial start-up is


the Mode Select page. It shows the current fir mwar e version (in
this case, Cl) and offers a soft-key selection among the s1x pr1-
mary operat1ng modes of the control. The Mode Select page is the
starting point of the page addressed structure. Press1ng the F l
soft-key, for example, puts the control in the Manual Operate
mode and causes the Manua l Operate page to be displayed. If the
Fl soft-key is pressed again from this page, the Jog Handwheel
capability is activated. At this point, t~e Fl soft-key has a
dedicated function; changing the program units of the control
between inch and metric defin1 tions. \.ofhen the end of a branch
in the structure is reached, the soft-keys will have dedicated
usages and the only way to move to another page is t o "exit. "
Pressing the EXIT key once from the Jog Handwheel page will take
the control back to Manual Operate. At this point press1ng
another s oft-key will select another Manual Operate function:
another method of jogging , the MDI mode, or the Mach1ne Home
function. If EXIT 1s pressed from the Manual Operate page , the
control returns to Mode Sel~ct.

2.8
A convenient method is provided for exiting immediately to the
Mode Select page from virtually any point in the soft-key
structure. Press and hold the SHIFT key then press the EXIT key
(referred to as SHIFT EXIT). The Mode Select page will be shown
and another branch can be selected. The various branches of the
page address/soft-key structure are discussed briefly below.

Fl: MANUAL OPERATE

The Manual Operate mode provides several means of manually moving


the machine axes and performing other functions . Three methods
of jogging are given:

1. Jog Handwheel - This method allows selected axes to be


moved with the handwheel on the front panel.

2. Jog Continuous - This method moves the axes continuously


in selected plus or minus directions.

3. Jog Incremental - This method allows the user to specify


an increment of distance and then apply the increment to
any direction of the axes.

Manual Operate also gives the opti?n of MDI (Manual Data Input).
This allows commands to be entered one at a time from the-
keyboard in a manner similar to Prompt Edit (see section 4.4.3).
MDI commands are executed immediately and do not affect program
memory.

Finally, Manual Operate provides the Machine Home function which


establishes the control's position reference. The Machine Home
operation is discussed separately in section 2.7.4.

F3: PROGRAM ENTRY

The Program Entry mode provides the means of placing a program


into CNC memory either through direct entry at the keyboard or
from an external device. Program Entry provides the control ' s
editing facilities and gives significant information regarding
program memory space. Entry of programs from the keyboard can be
made using an optional prompting method, or with a listing
method, or both. Programs can be searched for individual charac-
ters or blocks of code. Input from an external device is stan-
dard RS 232 or 20 rnA serial with the option of incorporating a
Cassette Interface. Parallel input is available as an optional
expansion.

F4: JOB SET-UP

The functions associated with the Job Set-up page prepare the
control for part production. T~ese functions include selection
of inch or metric (millimeter) definitions for program units,
block delete, and optional stop. The Tool Offsets pages can be
accessed for entry of tool length and diameter values. The
Fixture Offsets page is available for entry of fixture offset and
backlash compensation values. The user can also choose to view

2.9
the program memory directory, and call a program from memory for
editing or execution.

FS: PROGRAM OUTPUT

Output of a program to an external device is initiated from the


Program Output page. The coding for output can be specified as
either EIA or ASCII. The program directory can be viewed and a
particular program can be selected for output. Output may be 20
rnA or RS232 serial with the option of output to a Cassette
Interface. Parallel output is available as on optional
expansion.

F6: CHECK OUT

The Check Out modes of program execution provide a means of


thoroughly testing a program before actual implementation. The
user can select among Check Run, Test Run and Dry Run. Check Run
executes the program as rapidly as possible with axis movements
and M functions suppressed. Test Run also suppresses axis move-
ments and M functions, but prograns are executed at specified
feedrates, and front panel override switches are active. Dry Run_
permits X and Y axis movements, but Z axis movement and coolant
flow are inhibited.
Job Set-up, jog capabilities, and MDI are available from the
Check Out modes. This allows the control to be operated as if
actual program execution was taking place. However, the
constraints mentioned above for each mode apply (for example, no
axis movement will occur in Check Run and Test Run). Axis Posi-
tion Displays respond to programmed moves and all program infor-
mation is processed with full error detection capability active.

Prior to execution of a program the user can specify the program


required from memory and examine the program directory. Axis
Position Displays are given on each main Check Out page.

The user can choose to examine the control's Status page where
the current parameters assumed by the control are shown. The
Graphics page is selectable for viewing the tool path in detail.

F7: AUTO OPERATE

The Auto Operate mode is used for placing part programs in


production. In common with the Check Out modes, Axis Position
Displays are given, and programs can be selected for
inplementation. Job Set-up, jogging, and MDI are fully
operational. Status and Graphics pages can be selected and
viewed by the operator as required.

2.7.3 CONTROL OPERATING STATES

The Bandit III CNC has five distinct states that it can assume
during normal operation. These states are IDLE, RUNNING,
FEEDHOLD, HALTED, and FAULT. Each state will be shown on various
pages of the control when it occurs.

2.10
The IDLE state is assumed by the CNC when none of the remaining
- conditions are detected. It simply means that the system is not
performing a selected function and is completely available for
use. (The control assumes itself to be IDLE when Jog Handwheel
and Jog Continuous are used, but these are the sole exceptions.)

The RUNNING state occurs when the control is executing a user


selected function; whether running a program, executing a command
in MDI or performing a Machine Home. It also occurs when it runs
a system based program such as Jog Incremental.

FEEDHOLD is active when the Feedrate Override Switch is moved to


its 0% setting. Axis movement is stopped or inhibited in the
FEEDHOLD state.

The HALTED condition occurs when the control is executing a func-


tion and the HALT CYCLE button is pressed. It also occurs after
single command execution when SINGLE CYCLE is used to sequence
through a program, or when axis travel limits are detected. It
requires the user to re-establish execution of the current
function.
-
The FAULT condition is associated with errors that are detected
by the system. If the FAULT state occurs, the control ceases its
normal operation and displays flashing error messages on the CRT.
These messages indicate the error causing condition and the user
should take steps to diagnosis and remove the error. Usually,
pressing the EXIT key will remove the FAULT state, but this will
not remove the cause of the error.

2.7.4 MACHINE HOME REQUIREMENTS

The Bandit III CNC maintains an absolute position reference from


a zero point designated as Machine Zero (~bsolute XO, YO, ZO).
This point is established independently for each axis during
system instal lation with the physical placement of "home"
switches along the axes. The axes must be "homed" to allow the
control to properly establish its position reference before cer-
tain operations can be performed. The homing operation is
referred to as a Machine Home sequence, and it is initiated from
the Machine Home page in the Manual Operate mode. During a
Machine Home, each axis moves towards its home switch until it
trips, then the axis is moved away from the switch until an
encoder marker pulse, or zero location is detected. This posi-
tion becomes absolute zero for that axis, ~1achine Zero, or
Machine Home.

Operations which do not require a Machine Home are: Jogging, Job


Set-up, Program Entry, Program Output, Check Run, and Test Run
(with no change in inch/metric selection, see below).

Those operations which require a Machine Home before they can


function are: MDI (from Manual Operate), Dry Run and Auto
Operate.

2.11
Also, if a change is made between inch and metric units on the
Jog or Job Set-up pages or is programmed, a Machine Home is
required before using MDI, any of the Check Out modes, or Auto
Operate.

If a Machine Home is required at some point during use, a message


denoting the fact will be shown on the CRT.

Once a Machine Home is performed, it will stay in effect


indefinately, provided a change in inch/metric units is not made
and power is not removed from the control.

2.7.5 AXIS POSITION DISPLAYS

A read out of axis position· is shown on the following control


pages: the Jog pages, the Machine Home page, the Check Out
pages, the Auto Operate page, the Status page, .and the Graphics
page . The function of the displays . can be changed by the user as
desired by pressing and holding the SHIFT key, then pressing the
ENTER key (referred to _as SHIFT ENTER). Each time a SHIFT ENTER
is done, the function of the displays will sequence through the
following modes.

1. MACHINE ZERO - the position of the axes as referenced to


Machine Home, the default mode of the displays.

2. LAG ERROR - the "following error" developed by the system due


to velocity control: the amount that acutal position lags
commanded position: useful in system installation.
3. PROGRAM ZERO - the position of the axes as referenced to an
established zero coordinate within a program.

4. DISTANCE TO GO - the distance to reach te final destination


of the axis: always a positive number that counts down to
zero.

5. TARGET - the desired end position in terms of the Program


Zero coordinate system.

NOTE: DISTANCE TO GO and TARGET displays are not


applicable to the Jog Handwheel or Jog Con-
tinuous modes . Also, the function of the
displays on the Graphics page cannot be
changed, they are always referenced to Machine
Zero.

Once the function of the displays i .s established on a given page,


it remains in effect until changed, or until that page is
exited. The exception to this rule is Machine Zero, which auto-
matically changes to Program Zero when program execution is
begun.

2.12
2.7.6 DEFAULT CONDITIONS

The following is a br i ef list of default connitions assumen by


the control at start-up.

1. In IDLE state if not 1n FEEDHOLD.

2. Linear interpolation continuous path positioning at 75 1pm.

3. Absolute pos i tioning referenced t o Hachine Zero.

4. XY plane establishen for circular i nterpolation.

5. Jl1irrors off.

6. Cutter diameter compensation off.

7. Autocycles off.

8. Machine Zero Axis Position Displays.

9. Graphics limits zero .

2.8 BACKLASH COMPENSATION

Backlash is a relative movement between interconnecting mechani-


cal parts. In mi l ling operations, it becomes apparent as a
slackness in the lead screws that is granually produced by normal
wear. When a worn lead screw changes directions, the first few
degrees of rotation take up the s l ack without producing axis
movement. The actual movenent observed will be shorter than the
commanden movement by the amount of slack, or backlash.
Compensating for backlash becomes important when slippage of the
lead screws will adversely affect the specifications of a produc-
tion part.

Implementing backlash compensation requires the entry of numeric


values for each compensated axis on the Fixture Offsets page of
the control (see figure 4 - 9, section 4.3.2). Space is provided
for specifying the compensation amount in inches or millimeters.
Inch values shoud be entered when the con t rol is in inch mode,
and millimeter values shouln be entered with the control in
metric mode. This will avoid confusion ·which may arise nue to
the differing positions of the decimal point for inch and metric
modes (see section 2.9.4).

When backlash compensation values are entered , the slack is imme-


diately taken up in a positive direction. The sign (+ or -) of
the entry is 1mmaterial. If an entry is made and then reduced
(0.002" to 0.001" for example) the nifference is applied in the
negat1ve direction. Increasing an entry will apply the nif-
ference in the positive direction of the axis.

2.13
Backlash compensation is applied only before a change in axis
movement occurs. If an axis move occurs in the same direction as
the previous move of the axis, no compensation will take place
since the slack has already been taken up.

Movement of the axis motor shaft associated with backlash compen-


sat1on will always occur at the maximum feedrate of the system.
The setting of the Feedrate Override Switch has no effect on
take-up rate, and the Axis Position Displays will not reflect the
movement occuring at the motor shaft.

2.9 PART PROGRAMMING LANGUAGE

This section describes general aspects of the part programming


language implemented on the Bandit III CNC. Refer to section 3
for a detailed description of programming features.

2.9.1 DATA BLOCKS

The basic unit of information used to build up a part program is _


the data block. Each data block contains information for the CNC
to perform axis movements and/or othe~ functions. A data block
may contain one or more word addresses and associated numeric
data. The first character of a data block is the word address
defining the type of operation to be performed; subsequent
characters provide numeric and parameter information. All data
blocks must be terminated by an End of Block (#) character.

A data block may contain any of the following words, codes, and
characters:

1. Sequence number (N word)


2. Preparatory functions (G words)
3. Axis movement instructions and parameters (X, Y, Z, U, etc .)
4. Feedrate definition (F word)
5. Spindle speed control (S word)
6. Tool offset number (T word)
7. A miscellaneous function (M word)
8. Subprogram call (P word)
9. Block repeat counter (L word)
10. A block-delete code (/)
11. A start-of-comment code(;)

All blocks must have an End of Block character in the last


character position (Carriage Return, displayed as (#)). A block
consisting only of an End of Block character is valid, and may be
used to make part programs more readable. It has no effect on
control operation.

2.14
2.9.2 PERMITTED CHARACTERS EIA AND ASCII/ISO

The control accepts part programs coded in either EIA or


ASCII/ISO tape codes.

Illegal characters cause execution of the part program to termi-


nate, and the message " CODE NOT KNOWN" to display on the CRT.
The block currently being processed is also displayed on the
Status Page, and should be examined for erroneous coding. Note
that new and untested programs can be rapidly checked for such
errors by using the Check Run facility (see section 4.5.1).

2.9.3 WORD ADDRESSES

The list below shows the valid word addresses for the Bandit III
CNC in alphabetical order, and their primary uses with position-
ing codes or in autoroutine/autocycle . definitions.

WORD ADDRESS POSITIONING AUTOROUTINE/AUTOCYCLE/ETC


,...
A Angle coding from Bolt- hole circle (~24)
initial point angle to first hole
from start reference

B Bolt-hole circle (G24)


angle increment
between holes.

c Angle coding Angle coding from


from center point center point

D Dwell time coding Dwell time coding

E Fixture offset coding

F Feedrate coding Feedrate codi n g

G Preparatory functions Preparatory functions

H Step and repeat (G25)


feedrate coding

Rectangular pocket
(G26) finish feedrate

I X axis circle center coding X axis circle and


rotation center coding
(G24, G74)

Step and repeat (G25)


number of points in X

(cont . )

2.15
WORD ADDRESS POSITIONING AUTOROUTINE/AUTOCYCLE/ETC

Rectangular pocket
(G26) finish cut in X

Peck drill (G83)


maximum peck distance

J Y axis circle center coding Y axis circle and


rotation center coding
(G24, G74)

Step and repeat (G25)


number of points in Y
Rectangular pocket
(G26) finish cut in
y

Peck drill (G83) peck


difference

K Z axis circle center coding Rectangular pocket (G26)


finish cut in Z
z axis lead per revolution
(G22-G23) helical interpo- Peck drill (G83) min-
lation imum peck

L Block repeat counter Block repeat counter

Rectangular pocket (G26)


number of rough cuts
in Z

M Miscellaneous functions

N Sequence numbers
p Program identification Subprogram identifi-
cation

Rectangular pocket (G26)


milling sequence

Retract coding (G81-G85)

Q Graphics control (G66)


GRID toggle
WORD ADDRESS POSITIONING AUTOROUTINE/AUTOCYCLE / ETC

R Radial positional coding Bolt-hole c1rcle (G24)


radius

Clearance plane (G26,


G8l-G85) positioning

Graphics control (G66)


RAPID toggle

s Spindle speed coding

T Tool selection and offsets Rectangular pocket


(G26) radius
compensation offset

u Secondary linear axis U axis scaling (G72)


(corresponding to X) factor
positional coding
Rectangular pocket
Secondary rotary axis (G26) magnitude o~
(about X) positional rough cut in Z
coding
Peck drill (G83)
depth prior to
retract

v Secondary linear axis V axis scaling (G72)


{corresponding toY) factor
positional coding

Secondary rotary axis Rectangular pocket


(about Y) positional (G26) plunge fee d rate
coding
Bore cycle (G85)
counter-bore fee drate

w Secondary linear axis Bolt-hole circle (G24)


(corresponding to Z) point count
positional coding

Secondary rotary axis Rectangular pocket


(about X) positional (G26) rough cut in XY
coding
Graphics control (G66)
1nhibit erase.

W axis scaling (G72)


factor

Peck drill (G83) chip


break retract.

2.17
WORD ADDRESS POSITIONING AUTOROUTINE/AUTOCYCLE/ETC

X X axis positional coding Bolt-hole circle (G24)


start reference in X

Step and repeat (G25)


point increment in X

Rectangular pocket
(G26) opposite corner
in X

X axis scaling (G72)


factor
Rotated X move (G74)

Pre-cycle X move
(G81-G85)
y Y axis positional coding Bolt-hole circle (G24)
start reference in Y _

Step and repeat (G25)


point increment in Y

Rectangular pocket ~
(G26) opposite corner
in Y
Y axis scaling {G72)
factor

Rotated Y move (G74)

Pre-cycle Y move
(G81-G85)

z Z axis positional coding Z axis positional


coding

z axis scaling (G72)


factor

On a control system with fewer than 4 axes, some of the axis word
addresses above are invalid. Refer to the particular machine ' s
configuration for details of which axes are present .

2.18
2.9.4 PROGRAMMING FORMATS

The standard system can operate in either inch mode or metric


(millimeter) mode. The number of digits which may be associated
with each word address is listed below in alphabetical order.
A decimal point shows that the address can use decimal numeric
data. The number to the left of the decimal point is the number
of digits allowed to the left of the decimal, and the number to
the right of the decimal point is the number of digits resolved
to the right of a programmed decimal point.

INCH METRIC

A degrees 4.3 4.3


B degrees 4.3 4.3
c degrees 4.3 4.3
D seconds 2.2 2.2
E number 2 2
F feed 3.1 4
G number 2 2
H feed 3.1 4
I 'a xis/ number 3.4/2 4.3/2
J axis/number 3.4/2 4.3/2
K axis 3. 4 .. 4.3
L number 3 3
M number 2 2
N number 4 4
p number 2 2
Q NA NA
R axis 3.4 4.3
s number (% RPM) 2 2
T number 2 or 4 2 or 4
u axis/degrees 3.4/4.3 4.3/4.3
v feed/axis/degrees 3.1/3.4/4.3 4/4.3/4 . 3
w axis/degrees/ 3.4/4.3/3 4.3/4.3/3
number
X axis 3.4 4.3
y axis 3.4 4.3
z axis 3.4 4.3

A plus sign (+) is assumed if no sign is programmed.

Decimal point programming is standard, and leading or trailing


zeros are not required. Where the dec1mal point is omitted from
decimal numeric data, the digits present are interpreted as being
the least significant values working from the right hand end.
For example in inch mode, the X values:

Xl.209 and Xl2090

are equivalent, and the control accepts either of these formats.


Decimal point programming is recommended, however, for general use
as an aid to reading programs.

2.19
3. WORD DESCRIPTIONS

The following sections provide details of the various words and


characters that can be included in a data block to provide move-
ment ann other control functions. Words used specifically and
only within autoroutine or autocycle blocks are described in the
relevant cycle definitions.

3.1 BLOCK DELETE, COMMENTS, REWIND STOPS

If a block delete (/) code appears in the first character posi-


tion of a delete block, that block is totally ignored by the
control, provided that the operator has selected the BLOCK
DELETE option on the Job Set-up page of the control. If the
BLOCK DELETE option has not been selected, the control executes
the block normally.

If a block starts with a comment code "(;), the block is always


ignored by the control, and no attempt is made to execute it.
This provides a facility for the part programmer to add comments
in his program for documentation purposes, or as instructions ~o
the operator. In order to give the operator time to respond to
a comment displayed on the CRT, a Program Stop (MOO) code should
be programmed in the block immed1ately before the comment. The
CNC then halts program execution, and displays the MOO code and
the text of the comment on the Status page. Execution is resumed
when the operator presses START CYCLE.

All part programs prepared externally on tape should begin with


the Rewind Stop character (%), followed by an End of Block code
(#). If external tape reader control is incorporated the tape
automatically rewinds to the Rewind Stop character if the part
program is terminated by an M30 code. The End of Block character
immed1atel y following the Rewind Stop character is additionally
used by the control to automatically determine the coding used
on the tape, whether EIA or ASCII.

3.2 D WORD

The D word (format: D2.2) is used to define a dwell time when


programmed by itself, or in conjunction with the preparatory
code G04. When programmed, it sets a dwell time value in an
internal timer within the CNC. Execution of this block, and
subsequent blocks containing a G04 word programmed by itself,
causes the time to count down to zero, and display its current
value on the Status page as it does so. A new D value can be
programmed by itself or in another G04 block for different times
in different sections of the part program. After the elapsed
dwell time, program execution continues normally with the next
block.

3.1
3.3 E WORD

The E word (format: E2) is used to invoke a particular fixture


offset, in the range EOl - E08. Fixture offsets are provided to
permit any or all axes to be offset by a predetermined amount.
This typically occurs when more than one fixture or vice is
available on the machine, or identical parts are being machined
in two or more locations. When a new fixture offset is invoked,
any necessary axis movements associated with it occur on the
next programmed move of each axis. Any fixture offset currently
in force is cancelled by programming EO and the offset is removed
with the next programmed moves of associated axes. If the opera-
tor performs a Machine Home operation, any active fixture offset
is also cancelled.

Fixture offset values are entered and stored on the Fixture


Offsets page of the control. This page also provides space for
entry of backlash compensation values (in inches or millimeters)
for each controlled axis.

3.4 F WORD

The F word (format: inch F3.1, metric F4) specifies the feedrate
at which one or more axes should move in inches or millimeters
per minute. During simultaneous moves, the velocity of each axis
is calculated to give a vector feedrate equal to the specified
current F value.

The actual feedrate occurring on the machine may be modified by


the operator using the Feedrate Override Switch. This switch 1s
calibrated in 10% increments from 0% (FEEDHOLD) to 150%. In
general, part programs should be written assuming a 100% setting,
but this may be modified by the operator in the light of cutting
conditions and operating requirements. The maximun permitted
feedrate for a particular machine is defined in the firmware for
that system, and a programmed feedrate which exceeds that value
is automatically limited to this maximun figure. When prepara-
tory code GOO (rapid) is invoked, all axes motions take place at
the predefined maximum rate, and any current F value is ignored.

3.5 G WORD

A large number of G word preparatory functions are provided,


which define the mode of operation for the machine. G codes can
be either modal or non-modal. A nodal code remains in effect not
only for the block in which it first occurs, but also for all
subsequent blocks until modified or cancelled by a further modal
operation. A non-modal code remains in effect only during the
execution of the block in which it occurs. A block must not con-
tain more than one G word, otherwise the error message "MORE
THAN 1 G CODE" is displayed on the CRT, and part program execu-
tion is halted.

3.2
A preparatory function is defined by the word address "G,"
followed by a 2 digit numeric value (although codes GOO to G09
can be invoked by a single digit if required}. The G code may be
placed anywhere within a block, between an initial sequence
number (if present} and the End of Block character (#}.

The list below summarizes the valid G codes which are available
on the Bandit III CNC system.

GOO Rapid positioning mode (modal}


GOl Linear interpolation mode (modal}
G02 Circular interpolation (CW) (non-modal, sets GOl or
leaves G73)
G03 Circular interpolation (CCW) (non-modal, sets GOl or
leaves G73}
G04 Dwell (non-modal, retains D value)
Gl7 Plane selection X, Y (modal)
Gl8 Plane selection X, Z (modal)
Gl9 Plane selection Y, Z (modal)
G22 Helical interpolation (CW) (non-modal)
G23 Belica.l interpolation ( CCW) (non-modal)
G24 Bolt-hole circle autoroutine (non-modal)
G25 Step and repeat autoroutine (non-modal)
G26 Rectangular pocket clearance autoroutine (non-modal)
G29 Execute last autocycle (non-modal)
G30 Mirror image cancel (modal)
G3l Mirror image axes (modal)
G40 Cancel cutter radius compensation (modal)
G4l Cutter radius compensation, left (modal)
G42 Cutter radius compensation, r~ght (modal)
G66 Graphics control (non-modal)
G70 Inch mode test (modal)
G7l Metric (mm) mode test (modal)
G72 Scaling (modal)
G73 Point-to-point interpolation mode (modal)
G74 Parts rotation (modal)
G79 Programmable autocycle (modal)
G80 Cancel autocycles (modal)
G8l Drilling autocycle (modal)
G82 Counter boring autocycle (modal)
G83 Peck drilling autocycle (modal)
G84 Tapping autocycle (modal)
G85 Boring autocycle (modal)
G89 Restore last cancelled autbcycle (modal)
G90 Absolute programming mode (modal)
G9l Incremental programming mode (modal)
G92 Absolute position preset (modal)
G99 Cancel absolute position preset (modal)

3.5.1 GOO - RAPID POSITIONING MODE

In this mode all axes are moved to their programmed destination


points at maximum feedrates. When the axes reach their
destination, the servo following error must be within predefined
limits, "In Position," before the next move is started. The GOO
code is modal, and cancels codes GOl and G73.

3.3
~------------------------------------~--------------------------------------------------/
3.5.2 GOl -LINEAR INTERPOLATION MODE

In this mone axes are moved along a straight line at a constant


veloc ity specified by the programmed feedrate (F word). The
actual feedrate can be modifien by the operator using the Feed-
rate Override Switch. \Vhere a W axis (rotary) move is program-
med, it starts and stops simultaneously with any associated
linear axis noves. The GOl code is modal, and cancels modal
codes GOO and G73. The control is in GOl mode at power-up.

3.5.3 G02 -CIRCULAR INTERPOLATION (CW)

With this code a clockwise circular arc is generaten by simulta-


neous appropriate movement of two axes. (The tool path movement
with respect to the workpiece is clockwise when viewed in the
negative direction of the remaining perpendicular axis.) '"~hich
two axes are involved is defined by programming a Gl7 (X andY),
GlB (X and Z), or Gl9 (Y and Z) code before the G02 block. The
default state of the control at power-up of the control is the XY
plane.

Z+ Z+
Y+

G 17: XY PLANE G18: XZ PLANE


Z+

G 19 : YZ PLANE

Figure 3-1: Circular Interpolation Plane Selection --


3.4
Each G02 block can define an arc of any length, crossing quadrant
boundaries if neccessary, including a complete circle. The start
point of the arc is the current cutter position, and the end
point is defined by appropriate X, Y, Z or C values according to
the selected plane of interpolation. (Use of the C word occurs
in polar positioning which is limited to movements in the XY
plane.) The position of the center of the arc is similarly
defined by using appropriate I, J or K values according to the
selected plane. In ~bsolute mode (G90) the end point and center
locations are specified directly. In incremental mode (G91) the
arc end point is specified with the .i ncremental distances on the
relevant axes measured from the start point. The arc center is
specified with incremental distances from the start point, taking
into account signs to specify the directions from the start point
to the center.

ABSOLUTE ( G90 l ARC INCREMENTAL (G91) ARC

0 INITIAL POSITION
+ CENTER (It, j-) ( i -, j-)
e END POSITION

UPPER CASE: ABSOLUTE


LOWER CASE: INCREioiENTAL X,Y END --y--------,r'----+----"' END
\ \
\ \

+I, J CENTER
\
II -
+C-EN-TE-R--+-~- '/
I I
(INITIAL START /I
CUTTER '- /

---
POSITION) ........ / (it, jt) ( ·-. jt)
....... /

Figure 3-2: Absolute and Incremental G02 Arcs

Before executing a block containing circular interpolation, the


control automatically checks the arc end point and associated
center for valid dimensions. If a geometrically impossible arc
has been specified, the control halts, displaying "IMPROPER
G02/3 ARC." Programs can be checked quickly for such errors by
using the Check Run facility (see section 4.5.1).

The G02 code is not modal, however it cancels GOO and sets the
GOl mode for subsequent moves.

3.5.4 GOJ -CIRCULAR INTERPOLATION (CCW)

This circular interpolation code is identical to the G02 code


above, except that the interpolation direction is counter-
clockwise in the selected plane when viewed with respect to the
negative direction of the remaining perpendicular axis. The same
considerations apply on plane selection, as well as the specifi-
cation of end points and arc centers. The code is not modal,
cancels code GOO and sets the GOl mode for subsequent moves.
See figure 3-3 for examples of G03 and G02 arcs.
3.5
ABSOLUTE (G90) INCREMENTAL (G91)

2.0 R END

/ X5. 4142 45° / / / - -...


,-
45° / / Y4. 4142 END
/ / y = 2 . 4142
goo /
-----t 30
::,..,"' X4.
y 3 _ CENTER
90° / /
____3_0_0-~-/lfX4-.----~-r-
/ ~/ Y~. j= I.
/
/ /"' CENTER
START
X2.2679 START
Y2. l-i=L7~21
1----- It= 3.1 46~
G90 ft. G91 #
G02 X5 . 4142 Y4.4142 14. J.3. ** G02 X3.1463 Y2.4142 I1.7321 Jl. #

k: -1.0607
_L

G90# G91#
Gl9# Gl9#
G03 YL0607 ZI.0607 JO KO # G03 YO ZO J -1.0607 K-1.0607 #

~START = END

_\~20"
\~~01 I \
3.0
/\30°
-60° \ j= o
X-5. ------~~ __L START _L ____'+---
Y-2.
START
2 X- ·
Y-2 .
CENTER
f.- ;. 3.~ CENTER

G90# G91#
G02 I-2. J-2. Cl20. # G02 I3. JO C- 60. #

(POLAR POSITIONING EXAMPLE- USE IN XY PLANE ONLY)

Figure 3-3: G02/G03 Arc Programming Examp les

3.6
3.5.5 G04 -DWELL

The G04 code is used to program a dwell, for which the duration
~ is defined by an associated D value. The first time a G04 word
appears in a program, it must have an associated D word included
1n the block, defining the dwell time duration.

Subsequent part program blocks need specify only the G04 code if
the same dwell time is required: otherwise a new D value can be
specified by itself or in conjunction with a G04 in later blocks
as required. During the dwell period the control displays a
countdown of the time on the Status page as it elapses. Dwells
may be necessary in some machining operations, or can be used to
give the operator time to read a part program comment on the Sta-
tus page, in which case the comment block should immed1ately fol-
low the G04 block.

The G04 code is non-modal and does not cha.nge the status or func-
tioning of the control in any way except to 1nsert a pause of the
designated duration. On completion of the dwell time, the
control continues execution of the next block.

r-
3.5.6 Gl7 - PLANE SELECTION XY

This code specifies that all circular interpolation is in the XY


plane. The Gl7 code is modal, and cancels codes Gl8 and Gl9.
The control is in Gl7 mode at power-up. See figure 3-1.

3.5.7 Gl8 -PLANE SELECTION XZ

This code specifies the XZ plane for all circular interpolation,


is modal, and cancels codes Gl7 and Gl9. See figure 3-1.

3.5.8 Gl9 -PLANE SELECTION yz

This code specifies the YZ plane for all circular interpolation,


is modal, and cancels codes Gl7 and Gl8. See figure 3-1.

3.5.9 G22 - HELICAL INTERPOLATION (CW)

The helical interpolation pos1tioning codes feed the Z axis


linearly as the X and Y axes are circularly· 1nterpolating. It
is typically used for machining spirals and threads but is not
limited to these applications. ~he G22 code requires definition
of the circle center coord1nates using appropriate I and J
values. The total Z axis move is specified together with a K
value that programs the Z move per complete revolution of the
circularly interpolating axes.

3.7
NOTE: The helix move concludes when the Z axis
reaches final programmed position. The final
positions for X and Y axes can conclude any-
where on the circle as determined by the ratio
of Z to K. For example, (in incremental mode)
if Z is 1 and K is .5, two revolutions in X
and Y will occur. Similarly, if Z is . 5 and
K is 1, one-half revolution will result.
Therefore, it is recommended that the next X
move and the next Y move after a helix should
be programmed in Absolute (G90) positioning.

I
1.25
i
.25 ':':I
1;:

J:
t
f =: ' : : ]

1
; ;
r
:
G90#
GOI XO Y2. F 10. #
G 22 I I. J 2 . Z - I. K . 2 5 #
XI. Y2. #

Figure 3-4: Helical Interpolation

The following example program illustrates the use of incremental


helical interpolation to mill a spiral cutter path. See figure
3-5.

3.8
G90 #
GOO xo Yl. 5 #
GOl Z-2. #
.......... G9l #
.... G02 xo YO IO J-1.5 #
G22 IO J-1. 5 K. 5 Z.25 #
G22 IO Jl.375 K.5 Z.25 #
G22 IO J-1. 25 K.5 Z.25 #
G22 IO Jl.l25 K. 5 Z.25 #
G22 IO J-1. K.5 Z.25 #
G22 IO J.875 K.5 Z.25 #
G22 IO J-.75 K.5 Z.25 #
G22 IO J.625 K.5 Z.25 #
G02 xo YO IO J-.5 #
M02 #

XO
Yl.5 STA1n

1.5 R

END
zo

Z-2.
t
Z.25 '
K.5
t

Figure 3-5:
START
'
Incremental Helical Interpolation

The G22 code is non-modal, and is only effective in the block in


which it is programmed. Cutter radius compensation cannot be
used 1.n a helix.

3.9
3.5.10 G23 -HELICAL INTERPOLATION (CCW)

This code is identical in operation to the G22 code described


above, except that the sense of the circularly interpolating
axes is reversed. It is non-modal, and is effective only in the
block in which it is programmed.

3.5.11 G24- BOLT-HOLE CIRCLE AUTOROUTINE

The G24 code is provided for the automatic execution of an auto-


cycle (G79-G85) and/or subprogram (P) at each of up to 128
equally spaced points in a circular pattern. Movements between
execution points in the pattern are made at rapid (GOO) traverse.
At completion of the pattern, axis position will be the last
point of execution, and the positioning mode will be that which
was in effect when the G24 routine was defined.

To program the G24 block, the following parameters should be


specified: the center of the circular pattern, the start
reference position on the circle, and the number and spacing of
execution points on the circle. These can be programmed in a
number of ways with the words described below.

The center of the circular pattern can be specified directly


with Absolute coordinates, with incremental dimensions from the
initial tool position, or in conjunction with polar values. The
start refernce position on the circle can be programmed with XY
dimensions or with an angle (C) measured from the X positive
axis (G90) or from the initial tool position (G91). The radius
(R) of the circle can also be specified directly. The number of
execution points, and the spacing of these points can be pro-
grammed through numeric (W and L) values or with an angle incre-
ment (B and L) between points.

The programmer may also choose between clockwise and counter-


clockwise movement to points on the circle, whether to use an
angle increment (A) from the start reference position to the
first execution point, and whether to perform a subprogram (P)
and/or an autocycle at execution points. If an autocycle is
used it should be programmed prior to the G24 block.

The G24 code rapids the tool to the first execution point and
performs the programmed operation of a subprogram and/or auto-
cycle. Subsequent movement to other execution points is also
made at rapid, and the autoroutine ends at the last specified
execution po1nt with any current autocycle still in effect.

The G24 pattern is programmed by:

G24 (I,J) (X,Y) (R,C) (L) (W) (B) (A) (P)

where:

3.10
I,J - defines the coordinate of the circle center in Absolute
(G90) positioning or the direction and distance to the cen-
ter in incremental (G91) positioning. If not programmed,
the current tool position is assumed to be the circle cen-
ter.

X,Y- describes the start reference position on the circle in


Absolute (G90) or incremental (G91) positioning . If not
programmed, the current tool position is assumed to be
the start reference point.

R,C - defines the radius (R) of the circle and the start refer-
ence position on the circle as an angle (C) from the posi-
tive X axis in Absolute (G90) or from the initial tool
position in incremental (G91). Rand C values cannot be
entered if both I, J and X, Y entries are made . They may
be used 1f I, J or X, Y are entered.

L -specifies the total number . of execution points on the


circle. The maximum number is 128 . If not programmed , 1
point is assumed .

\tV - specifies the. total number of points in the complete


circle . , The maximum number is 127 in a counterclockwise
direction or 128 in a clockwise direction. If the sign
of W is negative, the movemerrt to execution points around
the circle is clockwise , otherwise it is counterclockwise.
W (or B) must be programmed if the value of L is greater
than 1. The point spacing on the circle is defined as
\ I 360°/W when w · is programmed. If not programmed, the B
value is used for point spacing.

B - defines the angle in degrees between successive execution


points around the circle . If the sign of B is negative
the movement to points around the circle is clockwise ,
otherwise it is counterclockwise . B (or W) must be
programmed if L is greater than 1 . If B is not programmed ,
w is used to determine point spacing .

A - defines the angle in degrees from the start reference


position on the circle to the first execution point. A
negative value moves clockwise to this point, otherwise
the move to the first execution point is counterclockwise .
If not programmed , the start reference position is
assumed .

P specifies the number of a subprogram to be performed at


the points of execution around the circle. If not
programmed, the currently active autocycle is assumed . If
the subprogram includes rapid moves and an autocycle is
active, the autocyle will be performed at the rapid points
in the subprogram.

3.11
Note that L defines the number of execution points, and W or B
define the spacing of points around the circle. For example, if
L = 5 and W = 10, points are spaced according to 360°/W = 36°
between points, and only 5 points will be executed; i.e., a half
circle. If L = 5 and B = 45., then 5 points will be executed
with 45° between successive points, or 5/8 of the entire circle.

Figure 3-6 gives a graphic representation of G24 parameters and


figure 3-7 presents an exampl~ of G24 execution.

0 INITIAL TOOL POSITION UPPER CASE= ABSOLUTE ( G90)


+ CENTER LOWER CASE= INCREMENTAL (G91)

-+- START REFERENCE

e EXECUTION

___f..___
/ /
-- ~, ~
!pt. 2 ........ so+
/ • pt. 3 ' I ' \
FIRST POINT
I I \
I I
I
W6= 860. I CENTER
l ----
L6 = FULL CIRCLE 1---r--- ~~-'<.:-~
I,J
1?--;-r---,
~pt. 4 \ "'-...#co- / Ao+
\ \ cC~,:/~START REFERENCE

',
'
j '(
\pt.~ ~
~~'T
' ........_ pt. 5 ...,.., ._,.\ I y
~--- I
-----L---+---~ --+---..........__


INITIAL TOOL POSITION

Figure 3-6: G24 Parameters

3.12
:::::

::::
=:::::~::::~~:1: ::::::

:::::: :::::
:::::::::::
::.:.: .;::::
'i: tA
:::::
:::::

,:!::
:::::
::::~ It !}}
-I ill""

::::~:::::
::::
~
::::]! .ili-!1!,:;:::
""
')
!: : :~::~:
)) ::::::

:::: \,
J f); :::::
:::::::::: :{
:::::: I[;', }
1:::::::: =:::::::::;:: 1:)) ::''\:

II!" }} \
:::::::: I'=V:l
1<<0'>:'
':::~
:::::: ::: i.f
!) ' ::;::
,,.,... . :::: ~ ~: .:::
:::::::
}}
::::=:::::: E~
,:,:::,:~:·~: :: {''
jJiJjl!0~
:::
:r f:.
~
::::;

'I :'<::~:::~::: :::::-~~~::::~ ~


Y.., r v ::::
>>
L~)(
;{

' /..
/, m:::~
:?
::: ::: ::::::::~ :-=:-,: : .: ::~:::
>> :::::::: ::~:::~:~~~
-~: -~: ::~-:::: >><< ::-~: ~: :::::::::: :::::;: :=:::: ::::::
::-::- ~ : :-~ ::::::
:::::: :::::::
:::::: ::::::::::::: :;:::,::: :,:,::::::::: ::~ ::;:::;:::tr/ \) >> ::::.:::·:.::::: ::::::::::::::

R f
.7

!
G90# G90*F
G81 Z-.6 R.l # G81 Z- .6 R.l #
OR
G24 IO JO XO Yl.5 L5 W5 # G24 XO Yl.5 Rl.5 C90. L5 W5 #

G80# G80 #

Figure 3-7: Bolt-hole Circle Programming Example

3.13
3.5.12 G25 - STEP AND REPEAT AUTOROUTINE

The G25 code is used to program a rectangular or square pattern


of points at which a subprogram (P) and/or autocycle (G79-G85)
can be performed. The spacing and number of points along the X
and Y axes of the pattern can be specified independently. Moves
between execution points can be made at rapid, at a feedrate
independent of the current F value, or at the current F value.
If moves between points are made at a feedrate the currently
active autocycle is not performed (unless a spec1fied subprogram
contains rapid moves).

At completion of the pattern, the control treats subsequent


moves as originating from the start point of the pattern
although actual position will be the last point in the pattern.

The G25 command is programmed by:

G25 X Y I J (P) (H)

where:

X - spec1fies the X in9remental distance and direction between


points of the rectangular pattern. This dimens1on is always _
treated as an incremental direction and distance, regardless
of the mode (G90 or G9l) currently in effect.

Y - specifies the Y incremental distance and direction between


points of the rectangular pattern. This dimension is always
treated as an incre mental direction and distance regardless
of the mode (G90 or G9l) currently in effect.

I - defines the number of points along the X axis of the rectan-


gular pattern. The sign of the entry is ignored.

J - defines the number of points along the Y axis of the rectan-


gular pattern. The sign of the entry is ignored.

p - calls the number of a subprogram for execution at points in


the rectangular pattern. If not programmed, the current
autocycle is performed, and if there is none, the G25 block
will continue without execution at the relevent points. If
an autocycle is current and P is programmed, the autocycle
will be executed at the end of each rapid move in the sub-
program.
H - specifies the feedrate for moves between points in the pat-
tern. If H is not programmed, the feedrate defaults to rapid
(GOO) mode. If HO is programmed, the current feedrate (F)
·is used.

F1gure 3-8 gives two examples of G25 autoroutine programming.

3.14
r-x=l. ~ -
G----o----o--· -e---o---@
_L pt. 6

TCf- ---G--- -o----e-- -e---0


Y=-.5 pt.l •

C9- - - -o----e- --- 0-- - -G- - - -Q pt. 18

G ---0-- -B----0--- -8---0 •


pt. 24
G90#"
(position treated G81 Z- .6 R.l FlO. PO **
as pt. I ) G25XlY - .5 I6J4-1*
G80 #
M02 #

pt. 30 (position treated as pt. I)

P2
G90** G91#
G81 Z-.6 R.l FlO. PO# GOO XO YO#
G25 XI . Yl. I5 J2 P2# X.25 Y.25 #
G80 X.25 Y-.25 #
M02 1* M02#

.............
Figure 3-8: G25 Programming Examples

3.15
3.5.13 G26 - RECTANGULAR POCKET CLEARANCE AUTOROUTINE

The G26 autoroutine automat1cally roughs out and f1nishes a spe-


cified rectangular or square pocket, on both the sides and the
floor. Roughing cuts are performed from the middle of the pocket
with the tool performing larger rectangles until roughing has
finished at that depth. Successive depths are roughed out until
the finish cut depth is reached, then f1nally the floor and sides
of the pocket are finished. The G26 autoroutine supports incre-
mental or absolute definition of pocket dimensions, climb milling
with optionally programmed normal milling, and separately
programmed feedrates for plunge (V), rough (F), and finish (H).
Separate X, Y, and Z finish thicknesses, can be specif1ed as well
as the size of rough cut in X and Y.

The length of the shortest side of the pocket must be equal to


or greater than the diameter of the current tool plus the rough
cut value in X and Y (programmed with W, o~ if W is not pro-
grammed, then the current tool radius) plus the finish cut
thickness if programmed.

The G26 autoroutine is programmed as:

G26 X Y Z (I) (J) (K) (W) (U or L) (F) (H) (V) (R) (T) (P)
where:

X,Y- programs the position of the opposite corner of the pocket


from the current tool position in Absolute mode (G90), or
the distance and direction to the opposite corner of the
pocket from the current tool position in incremental mode
(G91).

z - programs the Z axis position at the bottom of the pocket


in Absolute mode (G90), or the distance and direction to
the bottom of the pocket measured from the R-plane in
incremental mode (G9l).

I - specifies the thickness of the fin1sh cut along the X ax1s.


1f not programmed, a default value of 0.125 inches or
1.250 mm is used depending on the current program units.

J - specifies the thickness of the finish cut along the Y axis.


If not programmed, a default value of 0.125 inches or
1.250 mm is used depending on the current program units.

K - specifies the thickness of the finish cut for the Z axis


at the bottom of the pocket. If not programQed, a default
value of 0.050 inches or 0.500 nm is used, depend1ng on
the current program units.

W - defines the rough cut thickness 1n X and Y. If not pro-


grammed, the infeed for rough cuts in X and Y is the radius
of the current tool.

3.16
U defines the rough cut thickness for the Z axis. If not
programmed, the L value is used to determine the rough cut
thickness. If the L value is also not programmed only one
rough cut is performed.

L - specifies the number of rough cuts to make along the z


axis. The thickness of each rough cut is determined by:

Absolute (G90): R - Z - K
L

or

incremental (G91): Z - K
L

If L is not programmed, the U value is used for the rough


cut in z. If neither L nor U is programmed, only one
rough cut is done.

F - defines the rough feedrate for the X and Y axes. If not


programmed, the last specified F rate in the current
program is used.
r

H - defines the finishing feedrate. If not programmed, the


finishing feedrate is twice the roughing feedrate.

V - defines the plunging feedrate for the Z axis. If not


programmed, the roughing feedrate (F) is used.

R - defines the clearance R-plane which is also considered the


top boundary of the volume to be cleared. The R-plane is
the Z axis coordinate in Absolute (G90) or the distance
below in1tial tool position in incremental (G91).

T - specifies the tool offset number to be used for radius


compensation within the pocket. Compensation is automati-
cally applied regardless whether it 1s programmed (with
G40-G42) or not, previous to the G26 block. The d1ameter
entry under the corresponding offset number will be halved,
and the control will assume this value to be the rad1us of
the corners of the pocket. If there is no T entry in the
G26 block, the control will use the value of the current
tool for radius compensation. If there is no current T
value, the control will issue an error to this effect.

P - specifies normal milling (assuming that the cutter is


rotating clockwise) when programmed as non-zero (1 to 99).
If not programmed, or programmed as zero, climb milling
(cutter CW) will result.

3.17
.,...__ _ _ _ _ _ _ _ 4 .00

T I = .5" DIA. CUTTER

2.50


)1· OPPOSITE
Y-1.25

G 90 #
G 26 X2. Y-1.25 Z-.5 I .01 J.OI K.OI W.2· U.2 F20. H40 .VIO.R.I Tl PO#

Figure 3-9: Rectangular Pocket Clearance Autoroutine

3.5.14 G29 -EXECUTE LAST ACTIVE AUTOCYCLE

The G29 code calls for the execution of the last autocycle wh1ch
was active in a program. The autocycle is performed in response
to this code even if it has been cancelled by a G80 code. The
autocycle is performed only once and is not restored to active
status (if previously cancelled} by the G29 code. The current
feedrate need not be rapid (GOO} for performance of the autocycle.

The G29 block may contain a P word which calls a subprogram for
execution. The rapid moves of this subprogram will not have the
autocycle applied to them if the autocycle has been previously
cancelled. If the autocycle has not been cancelled it will be
performed after rapid moves. The G29 block -may also contain an
L word which specifies the number of executions for the entire
block up to 255 times.

3.18
3.5.15 G30 -CANCEL MIRROR IMAGE

This code cancels any mirror imaging on the specified axes (e.g.
G30XZ cancels mirror imaging on axes X and Z). All sense of axis
motion is restored to the normal directions of operation. The
code is modal, and is automatically selected when power is first
turned on. It cancels code G31. A G30 by itself defaults to
cancelling any mirror, on all axes.

3.5.16 G31 -MIRROR IMAGE AXES

This code is provided to reverse the sense of direction on the


specified axes (e.g., G31XY applies mirror imaging to axes X and
Y) . It reverses the sign of all directional moves associated
with the specified axes which occur in the part program while the
G31 code is in force. While the code is active the Status page
displays "M" (Mirror) in highlighted video following the display
of the axes position . The code .is modal, and is cancelled by the
G30 code.

3.5.17 G40 - CANC~L RADIUS COMPENSATION

The G40 code is used to cancel a previously invoked G41 or G42


code. The G40 data block may include axis entries which specify
a finishing move along the compensated cutter path. This fin-
ishing move is a "look-ahead" entry to which initial compensa-
tion is correctly applied (as if the move were to be executed),
but compensation is cancelled prior to the move's actual execu-
tion. This fore goes the use of "dummy moves" to remove cutter
compensation. ("Dummy moves" are axis entries which produce
movement only because they apply or remove cutter radius comp-
ensation, tool length offsets, fixture offsets, etc.) Of course,
"dummy moves" may still be used according to the requirements of
the program, or programmer.

A G40 code programmed in a block by itself will cancel compen-


sation, and the value will be moved out during the first axis
move (which may be a "dummy move") following the G40 block.
This move must occur before any G word data block that is not a
movement instruction, or before a T word data block.

The G40 code is modal and cancels ,G41 and G42. The G40 mode is
selected by the control at power up or at the beginning of a
program. Refer to the programming examples beginning on page
3.24 and to figure 3-12.

3.19
3.5.18 G41 - CUTTER RADIUS COMPENSATION, LEFT

The G41 code selects cutter radius compensation with the cutter
assumed to be left of the part being machined, viewed in the
direction of travel of the cutter.

Figure 3-10: Cutter Radius Compensation, Left

The G41 data block may include axis entries which specifies the
last assumed position of the cutter. This simplifies the pro-
cess of applying compensation to subsequently programmed move-
ments . Compensation is applied with appropriate XY movements
according to the assumed previous move (specified in the G41
block), and according to the next programmed XY move. This
forgoes the need for programm1ng "dummy moves" to correctly
initiate compensation in certain circumstances.

When the G41 block is programmed in a block by itself, compensa-


tion is interpolated into the next programmed axis move. There-
fore it is recommended that this move occur while not cutting
metal.

The G41 code is modal and cancels codes G40 and G42. Refer to
the programming examples starting on page 3.24 and to figure
3-12.

3.20
3.5.19 G42 -CUTTER RADIUS COMPENSATION, RIGHT

The G42 code selects cutter radius compensation with the cutter
assumed to be right of the part being machined viewed in the
direction of travel of the cutter.

Figure 3-ll: Cutter Rad1us Compensation, Right

The G42 data block may include axis entries which specify the
assumed previous location of the cutter. This simplifies the
application of compensat1on for subsequently programmed moves.
Compensation is applied with appropriate XY movements according
to the G42 specified previous location, and according to the
next programmed X and/or Y move following the G42 block. This
foregoes programming "dummy moves" to correctly initiate cutter
compensation in certain circumstances.

When the G42 code is programmed in a block by itself, compensa-


tion is interpolaten into the next programmed XY movement.
Therefore, it is recommended that this movement occur when not
cutting metal.

The G42 code is modal and cancels G41 and G40. Refer to the
programming examples beginning on page 3.24 and to figure 3-12.

3.21
3.5.20 CUTTER RADIUS COMPENSATION - GENERAL

Cutter radius compensation is used to offset programmed dimen-


sions in the XY plane by the radius of a tool. The tool's dia-
meter and length are entered on the Tool Offsets pages of t~
control. Programmed T words call specified length and diameter
values from the Tool Offsets table. The diameter value of a
given tool is halved automatically to derive the XY radius com-
pensation value.

The tool diameter value entered on the Tool Offsets pages may be
the actual diameter of the tool, which implies that compensation
will be applied directly to programmed part dimensions. The
tool diameter value may also be a difference entry, that is, an
amount by which a tool diameter used for an operation differs
from the one originally used to calculate the tool path. In
this case, a positive entry will apply compensation to the out-
side of the programmed tool path and a negative (-) entry will
compensate inside the original tool path. Thus, if a part is
programmed for a tool of specific diameter, the path can be
adjusted for oversized tools (+entry), undersized tools or for
tool wear (-entry).

The codes G40-G42 are used to cancel or activate cutter compen-


sation. G40 cancels compensation and this is the default mode
of the control. G4l calls for compensation applied to the left
of the programmed path when viewed in the direction of tool
movement. G42 invokes compensation with the tool to the right
of the programmed path as the tool moves about the part.

Once compensation has been invoked with a G4l or G42, certain G


codes are illegal. Compensation must be cancelled with a G40
and removed before they can be executed. These illegal codes
during cutter compensation include:

Gl7, Gl8, Gl9 - Circular Plane Selection


G30, G31 - Mirror Image
G90, G9l - Absolute/1ncremental mode
G92 - Absolute Position Preset
G99 - Absolute Position Cancel

A programmed XY move resulting in no net movement (zero length


move) is also illegal while radius compensation is in effect.

And , compensation must first be cancelled to change between G41


and G42, call for a newT number offset or . perform XYZ simulta-
neous movement.
Compensation is applied only to XY moves made at feedrate (GOl,
G02, G03, G73) and ignored for Z axis moves. Compensation is
automatically removed for rapid traverse (GOO) moves and for
helical interpolation (G22, G23). Nhen these moves conclude,
compensation is restored and interpolated into the next pro-
grammed feedrate moves.

3.22
In general, a cutter compensation value specified through a pre-
viously programmed T word is interpolated into the first XY
feedrate moves after a G41 or G42. To properly invoke cutter
compensation (without the use of "dummy moves" or "look ahead
start" moves, to be explained later) a move that is equal to or
greater than the tool radius must be programmed following the
G41 or G42. This is also true for the complete removal of com-
pensation following a G40.
MOVE 4

XO
Y3.

a
+ X- 2.5
y 1.5
MOV E 5

MOVE I START
X. 5
Y- .5

START
XO
YO

L OOK AHEAD
START MOVE

Figure 3-12: Cutter Radius Compensation Programming

3.23
As an illustration of compensation programming examine the fol-
lowing example program and figure 3-12a.

DATA BLOCK COMMENT

~ENTER MOVE# Program name

G99 # Cancel any previous position preset.

G90 # Establish Absolute mode

GOO X-10. Y-5. Z-.5 # Rapid to start point

G92 X.5 Y-.5 ZO # Preset Absolute position

TOl # Call tool offset number 1,


0.5000" diameter.

G41 # Call for cutter compensation ·with


the cutter traveling to the left
of the part path.

GOl Z-1. FlO. # Lower tool to working depth at


10 ipm~ compensation is ignored. -

XO YO F20. # Entrance move to part contour


that is greater than tool radius,
compensation is interpolated
into this move~ feedrate is 20 r--.
ipm.

X-4. # Move 1

Yl.5 # Move 2

G02 X-2.5 Y3. I-2.5 Jl.5 # Move 3

xo # Mo v e 4

YO # Move 5

GOO zo # Rapid Z axis up from work.

G40 # Cancel compensation~ the compen-


sation value is removed with the
next XY move.

X.5 Y-.5 # Tool returns to start position


at rapid and compensation is
removed with this command.

G99 XO YO ZO # Cancel position preset and return


to Machine Zero location at rapid.

M02 # End of program

3.24
The preceding example invoked cutter radius compensation with an
entrance move to the part that was greater than the tool radius.
Compensation could also have been activated with a "dummy move"
- (or a "look ahead start" move). Figure 3-12b shows the same
part contour as figure 3-12a, but with an interior pocket added.
The following program produces this part and invokes compensation
with "dummy moves". Note that the program start point has been
changed for this example.

DATA BLOCK COMMENT

~DUMMY MOVE# Program nane

G99 # Cancel any previous position preset

G90 # Establish Absolute mode

GOO X-10. Y-4.5 z-.5 # Rapid to start point

G92 XO YO zo # Preset Absolute position

TOl # Call tool offset number 1,


0.5000" diameter.

G41 # Call for cutter compensation ~ith


the cutter traveling to the left
of the part path.

GOl YO # "Dummy move" to invoke compen-


sation for the outside contour
of the part. The tool moves to
Y-.25 with this command in prep-
aration for the next programmed
X move. A dummy move must be
programmed at feedrate.

Z-1. FlO # Lower tool to working depth at


10 imp.

X-4. F20. # Move 1; 20 ipm

Yl. 5 # Move 2

G02 X-2.5 Y3. I-2.5 ,Jl.5 # Move 3

xo # Move 4

YO # Move 5

GOO zo # Rapid Z axis up from work

G40 # Cancel compensation~ the compen-


sation value is removed with the
next move.

x-.75 Y.75 # Rap1d to start point of pocket.

3.25
DATA BLOCK COMMENT

G42 # Call for compensation with the


cutter traveling to the right of
the programmed path.

GOl Z-1. FlO. # Lower tool to working depth at


10 ipm.

X-1.5 # Move 6

Yl. # Move 7

X-3.5 # Move 8

Yl. 5 # Move 9

G02 X-2 . 5 Y2.5 I-2.5 Jl. 5 # Move 10

x-.5 # Move ll

Y.5 # Move 12

x-.75 # "Dummy" move to prevent the tool


from notching the part . This
move is e q ual to the tool radius
and is a look ahead move that
stops the cutter before it com-
pletely executes the full length
of move 12 , above.

GOO zo # Rapid Z axis up from work .

G40 # Cancel compensation~ the compen-


sation value is removed with the
next XY move .

XO YO # Rapid to start point

G99 XO YO ZO # Cancel position preset and return


at rapid to Machine Zero.

M02 # End of program

3.26
The final example of cutter rad~us compensation programming to
be presented here illustrates the use of "look ahead start"
moves to invoke and remove compensation. "Look ahead start"
moves are accomplished with axis entries ~ncluded ~n the G40 -
G42 commands. The following program produces the part shown in
figure 3-12c, which is identical to figure 3-12b. Note that
the start point of ' pocket has been changed.
DATA BLOCK COMMENT
~LOOK AHEAD# Program name

G99 # Cancel any previous pos~tion preset.


G90 # Establish Absolute mode
GOO X-10.5 Y-4.5 z-.5 # Rapid to start point

G92 XO YO ZO # Preset Absolute position

TOl # Call tool offset number 1,


0.5000" diameter.

G41 Y3. # Call for compensation with the


cutter traveling to the left of
the part path and specify a "look
ahead start" entry of Y3. This
entry describes the previous
location of the tool which is
assumed to have occurred with
compensation active although it
actually invokes compensation.
This axis entry gives the coor-
dinate of or the dimension (with
G91) to the last assumed cutter
position. It could have any
length desired, since it simply
tells the control how to enter
compensation properly for the
next move.

GOl Z-1. FlO. # Lower tool to working depth at


10 ipm.

X-4. F20. # Move 1

Yl. 5 # Move 2

G02 X-2.5 Y3. I-2.5 Jl. 5 # Move 3

xo # Move 4

YO # Move 5

3.27
DATA BLOCK COMMENT

G40 X-4. # Cancel compensation and remove


compensation value with a "look
ahead" move to an assumed compen-
sated move. ~he move is not
actually performed but compensa-
tion is applied initially to
simplify the finishing of the
compensated path.

GOO zo # Rapid Z axis up from work.

x-.5 Y.5 # Rapid to start point of pocket.

G42 Y2.5 # Call for compensation with the


cutter traveling to the right of
the programmed path and specify
a "look ahead start" move to enter
compensation for the pocket. (If
G91 mode were in affect the axis
entry would be Y2., for example.)

GOl Z-1. FlO. # Lower tool to working depth at


10 ipm.

X-1.5 F20 # Move 6' ; 20 ipm .

Yl. # Move 7

X-3.5 # Move 8

Yl. 5 # Move 9

G02 X-2.5 Y2.5 I -2.5 Jl. 5 # Move 10

x-.5 # Move 11

Y.5 # Move 12

G40 X-1. 5 # Cancel compensation and remove


compensation with a "look ahead"
move to which compensation is
applied. This entry prevents the
tool from notching the part and
correctly finishes the pocket
contour.

GOO zo # Rapid tool up from work.

G99 XO YO ZO # Cancel posit~on preset and return


at rapid to Machine Zero.

M02 # End of program

3.28
The preceding example programs have illustrated the three methods
of invoking and cancelling cutter radius compensation: entrance
move, dummy move and look ahead start move.

The final consideration involved in cutter radius compensation


that we will mention here is the look ahead requirements of the
control. The control examines the data block one ahead of the
currently executing block to check for tangency of the tool to
the programmed path and whether the tool is too large to produce
the desired contour. In general, the control will not compensate
an outside move that is less than cutter radius if this move is
followed by an inside move greater than cutter radius.

NOTE: An "inside" move is one in which the tool turns


toward its position relative to the part. If
the tool is left (G41) and turns left viewed in
the direction of travel it has made an "inside"
move. Tool right (G42) turning right is also an
"1.nside" move. An "outside" move is one in which
the tool turn away from its relative position
(e.g. tool left turning right). The control will
compensate an inside move followed by an outside
move.

See figure 3-13 for examples.

r- CORRECT
_/
ERROR

OUTSIDE MOVE
/ INSIDE MOVE
/I
4

8
G·~
INSIDE MOVE
. . . - - - - - 1-

OUTSIDE

Figure 3-13: Compensation Look Ahead Restrictions

3.29
3.5.21 G66 - GRAPHICS CONTROL

The G66 code is provided to control characteristics of the


Graphics display from within an executing program, according to
the parameters listed below. A G66 programmed by itself erases
the graphics display automatically.

The G66 command is programmed by,

G66 (Q) (R) (W)

where:

Q - toggles the GRID when programmed. If act1ve it is made


in-active, and vice versa. If not programmed, no action is
taken.

R - toggles the RAPID feature when programmed. If active it is


made in-active, and vice versa. If not programmed, no action
is taken.

W - inhibits erasure of the graphics display when programmed.


If not programmed, the display is automatically erased.

Numeric values specified for Q, R, W are ignored.

3.5.22 G70 - INCH MODE TEST

This code defines that dimensional values associated with all


axis movements, feedrates, clearance planes and offsets are to
be specified in inches for a program. \~en entered at the start
of a program requiring inch definitions, the control will suspend
execution of the program if the operator has selected metric
progran units during Job Set-up or Jogging. The formats which
apply in inch mode are shown in section 2.9.4.

Either inch (G70) or metric (G71) mode is selected by the control


at power-up, depending on the particular machine's configuration.
If the mode is changed between inch and metric prior to the start
of a part program, the operator must perform a Machine Home oper-
ation. A message to this effect is displayed to the operator
whenever a change in the system's dimensional units occurs and
program execution is attempted. The G70 code is modal, must be
programmed in a data block by itself, and should be programmed
prior to any moves in the part program. It cancels code G7l.

3.5.23 G7l -METRIC (MM) MODE TEST

The G7l code selects a metric definition for all axis dimensional
move information, feedrates, clearance planes and offsets. When
entered at the start of a program requiring metric definitions,
the control will suspend program execution if the operator has
selected metric units during Job Setup or Jogging. The relevant
formats for metric mode are shown in section 2.9.4

3.30
The G71 code must be programmed in a block by itself. If the
dimensional units are changed at the start of a part program
between inch and metric, then the operator must perform a Machine
Home, and a message specifying this need is automatically dis-
played. The G7l is modal, cancelling G70.

NOTE: The current inch or metric mode of opera-


tion is displayed to the operator at all
times on the Jog, Job Set-up or Status pages.
All dimensional information presented (axis
movements, feedrates, tool offsets, fixture
offsets, etc.) is automatically displayed by
the control in the current dimnsional units.
If the metric mode is current, a comma(,)
replaces the usual decimal point to denote
metric units. The control does not convert
inch entries to metric entries. If fixture
offsets, for example, are initially entered
with inch values and a change to metric units
occurs the decimal point moves to the right
one place and is replaced with a comma. (An
inch entry of 1.5000 becomes 15,000 mm = 15
millimeters.) Entries must be made according
to the requirements of a program. Metric and
inch operations cannot be mixed within any
one executing program.

3.5.24 G72 SCALING

The G72 code is used to reduce or enlarge subsequently pro-


grammed movements by a multiplying factor in the range 0.0500 to
20.0000. Axis moves associated with jogging and dimensions for
tool length offsets or cutter radius compensation are unaffected
by scaling.

The G72 command is programmed as,

G72 (X) (Y) (Z) (W) (V) (U)

where individual axis entries can be scale~ by different amounts


within the programmable range. A G72 code without axis entries
turns scaling off (by restoring an original scale factor of 1.00
to all axis).

Arc center designators I, J, and K for circular interpolation


(G02, G03) are scaled by the factors correspond1ng to X, U, and
z, respectively. Autorout1nes or autocycles which use I, J, K
for purposes other than axis moves will not have these entries
scaled.

For correct execution of a scaled arc entry (G02/03, G22/23),


both axe s in the circular interpolation plane must be scaled by
the same amount. If scaling factors in the plane differ, the
arc will not appear as it would 1f it were unsealed. For
example, a circle may become unexecutable.

3.31
The programmer should be aware of the affect of scaling Absolute
(G90) positioning moves. In this case scaling is applied to the
coordinate system directly. For example, assume that the current
tool postion is Xl. Yl. Now, a G72 X.5 Y.5 is programme d. The
position of the tool in the scaled coordinate system becomes X2.
Y2., and if a Xl. Yl. is now programmed, movement of the axes
will result. See figure 3-14.

Y+ pt. A

)( I.
y I.
XI.
Yl.
pt.A +
X2. Y2.

X-I X I.
Yl. y I.

X+ X+
xo xo
YO YO

~
x- I. X I.
v- I. Y-1.

G72 X .5 Y5#
EFFECT OF SCALING
'\ ABSOLUT.E MOVES
X -I. XI.
y -I. Y-1

ORIGINAL TOOL PATH PRIOR


TO SCALING

Figure 3-14: Scaling Absolute Moves

If scaling ~s not removed at some point by programming a G72 in


a block by itself, subsequent scaling will be the multiple of
programmed scaling factors. For example, if G72 X.5 is program-
med then, later, G72 X.25 the resulting scaling factor

0.5 X 0.25 = 0.125

on the X axis. If multiple scaling exceeds the programmable


range (0.0500 to 20.0000) an error will be ind~cated by the con-
trol and program execution will be suspended.

Scaling factors which are in effect for main programs can be


altered in subprograms. The original scaling factors should be
restored with proper programming in the subprogram before
returning to the main program. Note the following example.

3.32
Pl

G72 X2. # Original scaling = 2.0 on X.

P2 # P2

G72 X.25 # X scaling = 0.5

G72 X4 . # Restore X2. scaling


factor for return
to Pl.

M02 # Return to Pl

GOO Yl. Continue execution with scaling = 2.0 on X

M02 # End program

The original scaling factor in Pl (main program) is X2. P2


(subprogram) changes the scaling factor to X. S. Before return-
ing to Pl, a G72 X4 . is programmed to restore the original
scaling factor for Pl.

3.5.25 G73 - POINT-TO-POINT INTERPOLATION MODE

The G73 code is provided to remove corner rounding effects when


contouring consecutive linear moves. The mode uses feedrate
programming, similar to the GOl linear interpolation mode, except
that the control moves to each destination point to within the
"In Position" permissible servo-error. · There is a slight pause
at the start of consecutive linear moves until the control senses
"In Position." The G73 code is modal and cancels GOO and GOl.

3.33
3.5.26 G74 - PARTS ROTATION

The G74 code is provided for rotation in the XY plane of subse-


quently programmed movements. Rotation lS about a specified
point at a specified angle.

The G74 code ls programmed by:

G74 (I) (J) (C) (X) (Y) (P) (L)


where:

I - is the coordinate of the center of rotation in Absolute (G90)


mode, or the X direction and distance from the present loca-
tion to the center of rotation in lncremental (G91) mode.
If not programmed, the last programmed I is assumed.

J - is the Y coordinate of the center of rotation in Absolute


(G90) mode, or the Y direction and distance from the present
location to the center of rotation in incremental (G91)
mode. If not programmed, the last programmed J is assumed.

C - is the rotation angle measured from the pos1tive X axis in


~bsolute (G90) moder or the new angle of rotat1on as
measured from the previous rotation angle in incremental
(G91) mode. Positive angles are measured counterclockwise
and negative angles are measured clockwise. If not pro-
grammed, the last programmed C is assumed.

X - calls for an Absolute (G90) or incremental (G91) move in X.


The move will be rotated according to the G74 center and
angle of rotation.

Y - calls for an Absolute (G90) or 1ncremental move in Y. The


move will be rotated according to the G74 center and angle
of rotation.

P - specifies a subprogram for execution at a rotation pos1tion.

L - specifies the number of times that the G74 block should be


executed up to 255 times.

NOTE: If X and (or) Y are included in the G74 block


and an autocycle is currently active, the auto-
cycle will be performed at the conclusion of
the move if the rapid (GOO) mode is active.

The G74 code is essentially used to rotate the Program Zero


coordinate system to produce parts with radial symmetry or to
offset a part program by an angle. The rotation of the coordi-
nate system may occur about the origin of coordinates~ i.e.
about XO YO. It may also occur about a non-zero coordinate.
Both situations are illustrated ln figure 3-15. Note that lf
rotation occurs about a non-zero coordinate the origin, XO YO,
will be shifted.

3.34
'
...,~rr Y+
I G90•
t
e
I G74 II. J2. C30. #
I XI
Y2.

I
G7~
G90 #
IO JO C30• W I
I
- - - - STANDARD SYSTEM
- - - ROTATED SYSTEM

x- . . . - - - - - - x- +-- - - - - - --..x +-
'1-~o
- - - STANDARD SYSTEM
- - - ROTATED SYSTEM

I
I I
I t
y•
ROTAT ION ABOUT ZERO

• Y-
ROTAT ION ABOUT A. POIN T

Figure 3-15: Rotat1on of the Coordinate System

Because the axis par-ameters (I,J,C,X,Y) of the G74 block can be


defined separately as Absolute (G90) or incremental (G9l), ther~
are many different results that can be obtained 1n rotation pro-
gramming. Care and understanding must be employed to achieve
desired results.

When X and or Y are included in the G74 block they can establish
a reference position for subsequent moves in the rotated coord1-
nate system when X andY are defined as Absolute (G90). This is
because the X and Y moves are made according to the rotated coor-
d inate system. Each time the G74 block is executed, the axes
move to specified XY coordinates in the rotated system. The
programmer can precise l y locate the beginning point of a sequence
of actions in this way. For example, the following program was
written to produce the pattern shown in figure 3-16.

DATA BLOCK COMMENT

G90 # Establ1sh Absolute mode for all


axes.

G92 XlO. Y5. ZO # Preset Absolute position

GBl Z-1. RO PO # Establish Drill autocycle (sec.


3.5.30)

GOO X2. Yl. P2 # Rapid to X2. Yl. and perform


subprogram P2.

3.35
NOTE: P2

G9l X # X incremental 1n P2

X. 5 L3 # Repeat X.5 move


four t1mes

M2 # End subprogram

G9l C # C incremental (X Absolute in


this program)

G74 Il. Jl. C45. X2. Yl. Rotation center Xl. Yl.; lncre-
P2 L7 # mental rotation angle = 45 ° ;
reference X2. Yl.; perform sub-
program P2; perform block 7 times.

G74 # Cancel rotation

G99 XO YO ZO # Cancel position preset and return


at rapid to Machine Zero.

M2 # End program

0
0
0 0
0 0 0
0 0 0
0 0
/!I"TYP X2. 0.25 DRILL THRU

0000 / l_Ov1.0
-fx.vi. -1 TYP
O.!lo 1-
60
0 0
0 0 0
0 0 0
0 0
0
0
Figure 3-16: Rotation Programming . Exanple 1

When XY movement is program as 1ncremental (G9l) in the G74


block, 1t establishes an offset from the current tool position
according to the rotation angle C.

3.36
Programming C as Absolute (G90) will rotate the coordinate system
to a single angular position. If the G74 block is repeated, in
this case, there will be no further rotation (provided IJ are
Absolute) . However, if Cis incremental and the G74 block is
repeated, the coordinate system will rotate angle C with each
execution of the block.

Programming the rotation center location, IJ , as Absolute will


cause rotation solely about the specified point. If they are
incremental, the rotation center will be different for each exe-
cution of the block.

NOTE: When I,J and C are incremental and Absolute


XY movement is programmed in the block, it
may be advisable to program the center in a
separate block if repeat execution is desired.
For example:
G74 Il . J2 . #
G74 Xl . . C30. P2 L4 #
may deliver more satisfactory results. How-
ever, this is a special case and need not be
considered a rule of thumb.

When a subprogram call, P, is included in the block and rotation


occurs about a non-zero coordinate, the moves contained in the
subprogram should either be Absolute moves, or should be a closed
path of incremental moves . If moves in the subprogram are incre-
mental and do not represent a closed path, Absolute XY movement
should be included in the G74 block to properly establish the
starting point for incremental movements. Again, this is a gen-
eral recommendation and need not be adhered to if specific pro-
gramming indicates otherwise.
As an additional example of part rotation programming consider
the following program and Figure 3-17.

DATA BLOCK COMMENT

G99 # Cancel previous position preset.

G90 # Establish Absolute mode.

GOO X-10. Y-4. z-.5 # Rapid to program start point.

G92 XO YO ZO # Preset Program Zero as current


tool position .

G91 C # Call for incremental C.

3 . 37
DATA BLOCK COMMENT

G74 IO JO C60. X.6392 Rotation block w1th rotaion about


Yl. 357 P2 L6 # XO YO; incremental 60° angle;
move to Absolute X.6392 Yl.357
for each block execution; execute
subprogram P2 at rotated XY loca-
tion; execute G74 block 6 times.

G74 # Cancel rotation

xo Y3.5 # Rapid to perimeter start point.

GOl Z-1. FlO. # Feed to depth.

G02 XO Y3. 5 IO ,JO # Execute full circle, 3.5" radius,


center at XO YO.

GOO zo # Rapid Z up.

G99 xo YO zo # Cancel position preset and rapid


to Machine Zero.

M02 # End of program

Subprogram, P2

G91 # Establish incremental mode for


moves in P2.

GOl Z-1. FlO. # Feed z to depth.

G03 X-1.2784 YO I-.6392 Partial arc move A to B.


J-1. 357 #

x-.7513 Yl. 3013 # B to C

G02 X2.781 YO Il. 3905 Partial arc move C to D.


J-2.6583 #

x-.7513 Y-1.3013 # D to A

GOO Zl. # Rapid Z up.

H02 # End of subprogram P2.

3.38
A= X .6392 Y 1.357
8= X -.6392 Y 1.357
C = X-1.3905 Y 2 .6583
0 = X 1.3905 Y 2.6583
E = X 0 Y 3 .5
O=XO YO
E

Figure 3-17: Rotation Programming Example 2

G74 rotation is not nestable, that is any subsequently pro-


grammed G74 cancels a previous one.

3.5.27 AUTOCYCLE OPERATION - GENERAL

Autocycles are standard "canned cycles" contained in the con-


trol ' s firmware to which the programmer adds numeric and para-
meter information. The added information details the action
required of the autocycle .
The autocycles and autocycle control codes provided are :

G29 Execute last autocycle (See section 3 . 5.14)


G79 Programmable autocyc l e
G80 Cancel autocycle
G8l Drill autocycle
G82 Counter-boring autocycle (Drill with dwell)
G83 Peck-drilling autocycle (Deep hole drill)
G84 Tapping autocycle
G85 Boring autocycle
G89 Restore last autocycle

3 . 39
Once an autocycle G79, G81-G85 has been defined it executes
after every rapid (GOO) X ann/or Y move until autocycles are
cancelled with a G80 code.

The G29 code is used to call for the execution of the last
active autocycle even if it has been cancelled w~th a G80 code.
See section 3.5.14.

The G79 code can be used by the programmer to designate a


subprogram to act as an autocycle; that is, it will execute
following any rapid XY move. See section 3 . 5.28.

The G89 code is used to restore an autocycle to active status


that has been cancelled with a G80 code. See section 3.5.36.

The remaining autocycle codes, G81 through G85, are used to spe-
cify infeed (or Z axis) movements at rapid XY locations. These
codes have certain parameters in common which will be described
here and also briefly in the section pertaining to each code.

The word addresses that are common to each code of the G81-G85
series are:

Z - programs the Z ceordinate of maximum infeed (negative Z


movement) in Absolute (G90) mode, or the distance below the -
R-plane to maximum infeed in incremental (G90) positioning.

R - specifies the Z coordinate of the R-plane (clearance, rapid


positioning, or retract plane) in Absolute (G90) position-
ing, or the distance below initial tool position at cycle
definition to the R-plane in incremental (G91) mode. The
metal cutting operation specified by the G81-G85 autocycle
occurs from the R-plane position to the position program-
med by z. All autocycles rapid down to the position of
the R-plane from the initial tool position when the auto-
cycle is performed. Programming the R-plane is opt~onal.
If not programmed in the autocycle, the last used R-plane
is assumed, and if there is none, the current ZO position
is assumed. When R is programmed, and P is missing from
the autocycle or P is programmed as zero, the rapid moves
in XY invoking the autocycle are performed at the R-plane.

P - programs the retract pos~tion of the tool between execu-


tions of the autocycle. If not programmed, or programmed
as zero the tool retracts to the R-plane during XY moves
invoking the cycle. If P is programmed as non-zero (01 to
99) the tool retracts to its initial -position at cycle
definition for subsequent XY moves.

F - calls for a feedrate to be used for infeed operations. If


not programmed, the current F value for feedrate moves is
assumed.

3.40
X,Y- programs a ~ove 1n X and/or Y to be performed prior to the
first execution of the cycle. This move is made with
Absolute (G90) or incremental (G9l) positioning depending
on the mode in effect for the individual axes and at feed-
rate or rapid traverse depending on the mode active at
cycle definition. If the rapid mode is active, the auto-
cycle will be performed following the move.
Other word addresses that are unique to each cycle are used to
describe details of the infeed operation and will be explained
in the following sections.

All autocycles are modal and remain in effect once programmed


until cancelled with a G80 code.

3.5.28 PROGRAMMABLE AUTOCYCLE

The G79 code is provided to specify a subprogram to act as an


autocycle in response to rapid (GOO) moves within a program.

It is programmed as:

G79 P (L)

where:

P - specifies the number (l to 99) of a subprogram to be per-


formed after each rapid (GOO) move within the program. The
subprogram P ~ay call other subprograms to a 6 deep level of
nesting.

L - calls for a number of executions (l to 255) of the subprogram


at the rapid (GOO) position.

Consider the following program as an example of G79 autocycle


programming.

Program, Pl

DATA BLOCK COMMENT

;CALL# Comment block specifiy1ng program

G99 # Cancel any previous position


preset

G90 # Establish Absolute mode for all


axes.

GOO X-10. Y-4. Z-.5 # Rapid to X-10. Y-4. z-.5

G92 XO YO ZO # Establish position preset XO YO


ZO -- Program Zero.

3.41
DATA BLOCK COMMENT

G79 P2 # Programmable autocycle performed


after rapid moves in Pl; action
of cycle contained in P2.
G9l X # Establ1sh X axis as incremental
for Pl.

X-l. L4 # Rap1d X-1. four times; the auto-


cycle will be performed after
each rapid move.

GBO # Cancel autocycle.

G90 # Establish Absolute mode for all


axes.

G99 XO YO ZO # Cancel position preset and return


at rapid to Machine Zero.

M02 # End of program.

Subprogram, P2

;CYCLE# Comment block w1th program name.


\
G91 # Establish incremental mode for
ax1s moves in P2.

GOl z-.6 F5. # Feed to depth at 5 ipm.

y. 25 # Move to edge of circle from center.

G02 XO YO IO J-.25 Full circle move center at incre-


mental Y-.25.

GOO Y-. 25 # Rapid to circle center after


completing circle.

Z.6 # Rapid Z up from work.

M02 # End of subprogram.

In this example, the main program (Pl) rapids from Machine Zero
to X-10. Y-4. z-.5. This point is established as Program Zero.
The G79 autocycle is programmed and a subprogram (P2) conta1ns
the moves which will be performed at subsequent rapid positions
in Pl. ~he action of P2 is to feed to depth, move to the peri-
meter of a 0.25 inch circle, perform the circle and then return
at rapid to the start position of the cycle. This action is
produced 4 times along the X axis in Pl, then the cycle is can-
celled an~ the axes return to Machine Zero. Refer to figure
3-18.

3.42
X,Y- programs a nove in X ann/or Y to be performed prior to the
first execution of the cycl e . This move is made with
Absolute (G90) or incremental (G9l) positioning depending
on the mode 1n effect for the individual axes and at feed-
rate or rapin traverse depending on the mode active at
cycle definition. If the rapid mode is active, the auto-
cycle will be performed following the move.

Other word addresses that are unique to each cycle are used to
describe details of the infeed operation and will be explained
in the following sections.

All autocycles are modal and rema1n in effect once programmed


until cancelled with a G80 code.

3.5.29 PROGRAMMABLE AUTOCYCLE

The G79 code is provided to specify a subprogram to act as an


autocycle in response to rapid (GOO) moves within a program.

It is programmed as:

G79 P (L)

where:

P - specifies the number (l to 99) of a subprogram to be per-


formed after each rapid (GOO) move within the program. The
~ subprogram P may call other subprograms to a 6 deep level of
~ nesting.

L - calls for a number of executions (l to 255) of the subprogram


at the rapid (GOO) position.

Consiner the following program as an example of G79 autocycle


programming.

Program, Pl

DATA BLOCK COMMENT

;CALL# Comment block specifiy1ng program

G99 # Cancel any previous position


preset

G90 # Establish Absolute mode for all


axes.

GOO X-10. Y-4. Z-.5 # Rapid to X-10. Y-4. z - .5

G92 XO YO ZO # Establish pos1tion preset XO YO


ZO -- Program Zero.

3.41
DATA BLOCK COMMENT

G79 P2 # Programmable autocycle performed


after rapid moves in Pl; action
of cycle contained in P2.
G9l X # Establ1sh X axis as incremental
for Pl.

X-1. L4 # Rapid X-1. four times; the auto-


cycle will be performed after
each rapid move.

G80 # Cancel autocycle.

G90 # Establish Absolute mode for all


axes.

G99 XO YO ZO # Cancel position preset and return


at rapid to Machine Zero.

M02 # End of program.

Subprogram, P2

;CYCLE# Comment block with program name.

G9l # Establish incremental mode for


ax1s moves in P2.

GOl z-.6 F5. # Feed to depth at 5 ipm.

Y.25 # Move to edge of circle from center.

G02 XO YO IO J-.25 Full circle move center at incre-


mental Y-.25.

GOO Y-.25 # Rapid to circle center after


completing circle.

Z.6 # Rapid Z up from work.

M02 # End of subprogram.

In this example, the main program (Pl) rapids from Machine Zero
to X-10. Y-4. Z-.5. This point is established as Program Zero.
The G79 autocycle is programmed and a subprogram (P2) contains
the moves which will be performed at subsequent rapid positions
in Pl. The action of P2 is to feed to depth, move to the peri-
meter of a 0.25 inch circle, perform the circle and then return
at rapid to the start position of the cycle. This action is
produced 4 times along the X axis in Pl, then the cycle is can-
celled ann the axes return to Machine Zero. Refer to figure
3-18.

3.42
X-10.
+Y-4.
START

~I. Ll L2 L3

Figure 3-18: Programmable Autocycle

In common with other autocycles, the G79 code is modal and


remains active until cancelled with a G80 code.

The specific actions of the G79 autocycle are completely at the


discretion of the programmer according to the codes used within
the specified subprogram of the cycle. The subprogram may also
contain other autocycles or autoroutines and these will not
affect the status of the G79 code.

3.5.29 G80 - AUTOCYCLE CANCELLATION

The G80 code is used to cancel a currently active autocycle. It


should be programmect when subsequent rapid movements in X and/or
Y shoulct not have the autocycle performed at their completion .
Autocycles should also be cancelled at the end of any program in
which they occur.
Details of the last cancelled autocycle are retained within the
control so that it can be executed in response to a G29 code
(section 3.5.14), or restored to active status with a G89 code
(section 3.5.36).

3.5 . 30 G81 - DRILL AUTOCYCLE

The G8l cycle is provided for simple drilling operations. The


action of the autocycle rapids to the R-plane, drills to depth,
then rapids up to retract position (either the R-plane or the
initial tool position).

The G8l code 1s programmed as:

G8l Z (R) (F) (P) (X) (Y)

where:

3.43
Z - programs the Z position of hole bottom in Absolute (G90) or
the distance below the R-plane to hole bottom in incremen-
tal (G9l) mode.

R - specifies the Z position of the R-plane in Absolute (G90)


or the distance below initial tool position to the R-plane
in incremental (G9l). If not programmed, the last active
R-plane is used and if there is none position ZO is assumed.

F - programs a feedrate for infeed from the R-plane to depth.


If not programmed, the last used F rate is assumed.

P - specifies the retract position between executions of the


cycle. If not programmed, or programmed as zero, the R-
plane is the retract position for X and Y movements. If
programmed non-zero (l to 99), the retract position is the
initial tool position at cycle definition.

X,Y- programs a move in X and/or Y to be performed prior to the


first execution of the cycle. This move is made with
Absolute (G90) or incremental (G9l) positioning depending
on the mode in effect for the individual axes and at feed-
rate or rapid traverse depending on the mode active at
cycle definition ~ If the rapid mode is active, the auto-
cycle will be performed following the move.

Z INITIAL

t .75
P*O RETRACT

"~!
R PLANE - .•!oil __
z --.f.-----
0
PO RETRACT

.5"

RAPID FEED

G90# G91#
G81 Z-.5 R.l PO# OR G81 z-.6 R-.75 PO#
ABSOLUTE INCREMENTAL

Figure 3-19: Drill Autocycle

3.44
In common with all autocycles, the G81 cycle is modal . It
operates automatically following a programmed rapid (GOO) ax1s
move in the XY plane until cancelled with a G80 code.

3.5.31 G82 -COUNTER-BORING AUTOCYCLE

The G82 cycle is provided for counter-boring or drilling opera-


tions where a dwell is desirable in the work piece. Its opera-
tion is similar to the G81 cycle described above, but includes
the additional facility of specifying a dwell time during th?
cycle. The operation rapids to the R- plane, then drills to
depth, then dwells, and finally rapids up to the retract posi-
tion (R-plane or initial tool position).

It is programmed as follows :

G82 Z (R) (F) (P) (D) (X) (Y)

where:

Z - programs the Z position of hole bottom in Absolute (G90)


or the distance below the R-plane to hole bottom in incre-
mental (G91) mode.

R specifies the Z position of the R-plane in Absolute (G90)


or the distance below initial tool position to the R-plane
in incremental (G91). If not programmed, the last active
R-plane is used and if there is none position ZO is assumed .

F - programs a feedrate for infeed from the R-plane to depth.


If not programmed, the last used F rate is assumed.

P - specifies the retract position between executions of the


cycle. If not programmed, or programmed as zero, the R-
plane is the retract position for X and Y movements . If
programmed non-zero (1 to 99), the retract position is the
initial tool position at cycle definition .

D - programs the dwell time at hole bottom in seconds (0.01 to


99 . 99). If not programmed, the action of the cycle will
be identical to the G81 autocycle.

X,Y- programs a move in X and/or Y to be performed prior to the


first execution of the cycle. This move is made with
Absolute (G90) or incremental (G91) positioning depending·
on the mode in effect for the individual axes .and at feed-
rate or rapid traverse depending on the mode active at
cycle definition. If the rapid mode is active, the auto-
cycle will be performed following the move.

3.45
~
Z INITIAL

R PLANE
•!
r
.75
11

RAPID
I
FEED

zo

G90# G91#
G82 Z-.1 R.l D.5 PO** OR G82 Z- . l R-.75 D.5 PO#
ABSOLUTE INCREMENTAL

Figure 3-20: Counter- boring Autocycle


The G82 auto cycle is modal, and operates automatically on all


subsequent blocks which contain rapid XY movement until cancel-
led by a G80 code or another code from the G79, G8l~G85 series.

3.5.32 G83 - PECK-DRILLING AUTOCYCLE

The G83 cycle provides a drilling operation which includes


pecking for chip breaking or chip removal. The programmer may
specify a dwell and/or a Z positive incremental movement as the
chip break action after each peck. When full retraction is
programmed for chip break, it may occur after each peck, at suc-
cessive programmed depths, or only at the end of the cycle. When
a dwell is programmed for chip break, an optional retract to the
R-plane may be programmed after each dwell.

The operation of the autocycle is to rapid to the R-plane from


wh ich the peck and chip break action occurs until total depth is
r e ached. Then the tool retracts at rapid either to the R-plane
or initial tool position prior to the next execution of the
cycle.

The G83 autocycle is programmed as :

G83 Z (R) (F) I (J) (K) (D) (W) (U) (P) (X) (Y)

where:

3.46
Z - programs the Z position of hole bottom in Absolute (G90)
or the distance below the R-plane to hole bottom in incre-
mental (G9l) mode.

R - specifies the Z position of the R-plane in Absolute (G90)


or the distance below initial tool position to the R~plane
in incremental (G9l). If not programmed, the last active
R-plane is used and if there is none position ZO is
assumed .

F - programs a feedrate for infeed from the R-plane to depth .


If not programmed, the last used F rate is assumed.

I - programs the magnitude of the first peck which occurs


below the R-plane. This value is always treated as an
incremental Z negative movement regardless of the mode (G90
or G9l) in effect or the sign of the entry . If J and K
are not programmed, I is the constant peck value used in
the cycle. Specifying the .I value is required for a valid
G83 autocycle.

J - specifies an incrementa l distance to subtract from the


last peck to form the next peck distance. For example,
starting with the I value peck, the second peck will be

I - J = 2nd peck distance


and

2nd peck - J = 3rd peck distance

and so on until the m1n1mum peck value, K, is obtained.


If J or K is not programmed , the peck distance is constantly
the I value .

K - specifies the minimum peck distance . The K value 1s used


when

last peck - J ~ K

and remains in effect until total d epth is reached. If K


or J is not programmed the peck distance is constantly the
I value.

D - programs a dwell time in seconds (0.01 to 99.99) which


occurs after each chip break retract (W). The tool will
dwell at the retract position whose location depends on
the parameters described below. If D is not programmed,
there will be no dwell. If D is programmed, and W is
missing from the cycle, the control assumes that W = 0,
i.e. no chip break retract increment .

3 . 47
w specifies a chip break retract increment. This is an
incremental Z positive movement which occurs at feedrate
after the tool has made each peck, allowing chip removal
to occur. The next peck will occur f r om the W retract
position, so the magnitude of W must be less than I (or K
if programmed). If W is not programmed , and U is not
programmed the control assumes W to be 0.01 inch or 0.10
mm depending on the current program dimensions. However ,
if W is not programmed, and D is programmed, the control
assumes W = 0 .

U - programs the magnitude of depth between rapid retracts to


the R-plane. This value is always considered an incremen-
tal Z negative distance regardless of the mode (G90 or G91)
in effect. Each time the current "depth of cut without
retract" is equal to or greater than the U value, a rapid
retract to the R-plane is performed. If U is not program-
med, or is less than I, the tool will retract to the R-
plane after each peck. If U is gre·a ter than Z minus R,
there will be no retract to the R-plane until final depth
is reached.

P - specifies the retract position between executions of the


cycle . If not p~ogrammed , or programmed as zero, the R-
plane is the retract position for X and Y movements . If
programmed non- zero (1 to 99), the , retract position is the
initial tool position at cycle d~finition .

X,Y- programs a move in X and/or Y to be performed prior to the


first execution of the cycle. This move is made with
Absolute (G90) or incremental (G91) positioning depending
on the mode in effect for the individual axes and at feed-
rate or rapid traverse depending on the mode active at
cycle definition. If the rapid mode is active, the auto-
cycle will be performed following the move.

Refer to figure 3-21 which gives several examples of G83 auto-


cycle programming.

3.48
RAPID FEED

G90>*
G83 Z- 2. R.l FlO. ~ . 6 W. l U3. PO#
(ABSOLUTE)
OR
G91 #
G83 Z-2 I R-1 . FlO. ~. 6 W. l U3. PO ....
(INCREMENTAL)

NOTE• U > Z - R, RETRACT AT FINAL DEPTH ONLY

Z INITIAL Z INITIAL

D
G90#
G83 Z-2. R.l FlO. 1 .6 J.2 K2 Ul .2 0! . PO#
G90#
(ABSOL UTE)
G83 Z - 2 . R. l 1.6 01. PI#
(ABSOLUTE) OR
OR
G91#
G91 # G83 Z-2.1 R-1 . FlO. 16. J.2 K.2 U1. 2 01. PO#
G83 Z-2.1 R -1. L6 01. PI # (INCREMENTAL)
\INCREMENTAL)

NOTE • USE OF J,K, AND U; NO W RETRAC T -


NOTE• U NOT PROGRAMMED- RETRACT TO R- PLANE EACH PECK U;t O, DI'O
P;tO- RETRACT TO Z INITIAL AT END OF CYCLE

Figure 3-21: Peck-drilling Autocycle

The G83 cycle operates automatically on subsequently programmed


data blocks which include rapid XY movement. It is cancelled by
a G80 code or replaced by another autocycle from the G79, G81
G85 series.

3.49
3.5.33 GB4 - TAPPING AUTOCYCLE

The G84 autocycle provides a tapping facility for threaded holes.


The operation rapids to the R-plane, and feeds to depth. When
final ctepth is reached, the sp1ndle reverses automatically and
feeds back up to retract position.

NOTE 1: At the bottom of the G84 tapping cycle,


when the spindle rotation is reversed,
the Z axis motion also reverses insta-
taneously without waiting for the "Spin-
dle Speed Achieved" signal from the
spindle amplifier. This helps to avoid
damage to the thread, but it is recom-
mended that a floating tap holder be
used wherever possible.

NOTE 2: The G84 Tapping autocycle is intended


for RH threaded holes only. If LH
threads are desired, the programmer
should invoke the code required with a
G79 Programmable autocycle.

The G84 cycle is programmed as:

G84 Z (R) (F) (P) (X) (Y)

where:

z - programs the Z position of hole bottom in Absolute (G90)


or the distance below the R-plane to hole bottom in incre-
mental (G9l) mode.

R - specifies the Z position of the R-plane in Absolute (G90)


or the distance below initial tool position to the R-plane
in incremental (G91). If not programmed, the last active
R-plane is used and if there is none position ZO is assumed.

F - programs a feedrate for infeed from the R-plane to depth.


The feedrate programmed should be F = RPM x Lead of tap.
If not programmed, the last used F rate is assumed.

P - specifies the retract position between executions of the


cycle. If not programmed, or programmed as zero, the R-
plane is the retract position for X and Y movements. If
programmed non-zero (l to 99), the r~tract position is the
initial tool position at cycle definition.

X,Y- programs a move in X and/or Y to be performed prior to the


first execution of the cycle. This move is made with
Absolute (G90) or incremental (G9l) positioning depending
on the mode in effect for the individual axes and at feed-
rate or rapid traverse depending on the mode active at
cycle definition. If the rapid mode is active, the auto-
cycle will be performed following the move.

3.50
II
Z INI TIAL

i
R PLANE
.75"

,.I ~ --~-
I I
I

~
FEED RAPID

zo :
..
= ~

...·.
r :
. .. ..
. .. . .:
...
..
iI = F=
._SPINDLE RE VERSE

G90 l=f: G91 l=f:


G84 Z - .5 R.l F l2. 5 PO # OR G84 Z- .6 R-.7 5 Fl2 .5 PO#
ABSOLUTE INCREMENTAL

NOTE ' RPM= 200, LEAD= 1/16 , F = 200 x 1/ 16 = 12 .5 IPM

Figure 3-23 : Tapping Auto cycle

The G84 autocycle is modal and operates on program data block~


which include rapid XY movement. It is cancelled by a GSO code
or replaced by another autocycle from the G79, G81-G85 series.

3.5.35 G85 -BORING AUTOCYCLE

The G85 autocycle is provided for boring . The cycle rapids


tothe R-plane, feeds to depth , dwells and then feeds up to the
retract position.

The G85 cycle is programmed a s:

G85 Z (R) (F) (V) (D) (P) (X) (Y)

where:

Z - programs Z position of hole bottom in Absolute (G90) or


the distance below the R-plane to hole bottom in incremen-
tal (G91) mode.

R - specifies the Z posit i on of the R-plane in Absolute (G90)


or the distance below initial tool position to the R-plane
in incremental (G91). If not programmed, the last active
R-plane is used and if there is none position ZO is assumed.
F - programs a feedrate for infeed from the R- plane to depth.
If not programmed, the last used F rate is assumed .
V - programs the feedrate for retraction from total depth. If
not programmed, the F value in the cycle is used, and if
there is none , the last programmed F rate is assumed .

3.51
D - calls for a dwell in seconds (0.01 to 99.99) a total hole
depth. If not programmed, there is no dwell at depth.
p - specifies the retract position between executions of the
cycle. If not programmed, or programmed as zero, the R-
plane is the retract position for X and Y movements. If
programmed non-zero (l to 99), the retract position is the
initial too l position at cycle definition.

X,Y programs a move in X and/or Y to be performed prior to the


first execution of the cycle. This move is made with
'I
Absolute (G90) or incremental (G9l) positioning depending
on the mode in effect for the individual axes and at feed-
rate or rapid traverse depending on the mode active at
cycle definition. If the rapid mode is active, the auto-
cycle will be performed following the move.

Z INITIAL

R PLANE
,r. ___
.lu .,
II 1_1

]==tll'l:'I:I'JJIIIU~-
zo
.6
: :· RAPID F- FEED V-FEED
.. . .
. : . . :. : D = .5 SEC

G90 # QJi G91#


G86 Z - .6 R. l F5. Vl5. 0.5 PO# G85 Z - .7 R-.75 F5. Vl5. 0.5 PO#
ABSOLUTE INCREMENTAL

Figure 3-24: Boring Autocycle

The G85 cycle is modal and operates on subsequent data blocks


which include rapid XY movement. It is cancelled by a G80 code,
or replaced by another autocycle from the G79, G80-G85 series.

3.5.36 G89 - RESTORE LAST CANCELLED AUTOCYCLE

The G89 code is used to re-enable or restore the last autocycle


cancelled with a G80 code to active status within a program.
The autocycle may have been cancelled to suspend the autocycle
from acting on certain rapid XY movements. ~estoring the last
autocycle with the G89 code programmed in a block by itself
saves the programming time required for re-entry of autocycle
parameters.

3.52
3.5.37 ABSOLUTE PROGRAMMING MODE

In Absolute programming mode, all dimensional informat1on occur-


ring for specified axes in the data block is treateQ as coordi-
nates referenced to the Machine Zero (Machine Home) position or
to the Program Zero (G92 established) pos1tion. The Absolute
mode is assumed for all axes by the control at power-up, but the
programmer can select Absolute or incremental (G91) on a per axis
basis with appropriate programming. Switching between Absolute
and incremental is allowed at all times. The G90 code estab-
lishes the Absolute programming mode select1vely to specif1ed
axes within the G90 block, or to all axes when programmed in a
block by itself.

The axes to which Absolute mode may be applied are:

X Y Z WV U I J K A B C R

as listed on the Status page of the control. Axes that cur-


rently respond to Absolute programming are listed on this page
with upper case letters. Those designated to act incrementally
(G91) will be shown in lower case.

Programming G90 and any of the above listed word addresses will
establish Absolute mode for those words. Programming G90 by -
itself in a data block establishes Absolute mode for all of the
listed axes and parameter.

The G90 code is modal and cancels G91 for the axes involved.

3.5.38 INCREMENTAL PROGRAMMING MODE

When a G9l data block is programmed, the control interprets all


subsequent dimensional data for associated axes as incremental
move information referred to the current tool position. When
the control operates in incremental mode, it still internally
maintains details of Absolute axes positions for display to the
operator and to permit a mode change back to Absolute (G90) at
any time.

When programm1ng an arc or circle in incremental, the I, J, or K


arc center location is specified as the incremental distance
from the arc start point to the arc center with proper signs.

The G91 code establishes the incremental programming mode selec-


tively to axes specified within the G9i block, or to all axes
when programmed in a block by itself.

The axes to which incremental mode may be applied are:

x y z w v u i j k a b c r

3.53
as listed on the Status page of the control. Axes that cur-
rently respond to incremental programming are listed on this page
with lower case letters. Those that are Absolute (G90) are shown
in upper case.

Programming G91 and any of the above listed word addresses will
establish incremental mode for those words. Programming G91 by
itself in a data block establishes incremental mode for all of
the listed axes and parameters.

The G91 code is modal and cancels G90 for the axes specified.

3.5.39 G92 -ABSOLUTE POSITION PRESET

The G92 code is provided as a means of redefining the coordinate


zero point, and is useful only when programming in Absolute mode.
Its function is to define a new value for the coordinate point at
the current tool position. Its format is:
G92 (X) (Y) (Z) (U) (V) (W)

The values for X, Y, Z, and the secondary axes are treated as


the new Absolute position of the tool at the time the G92 block
is executed. One, two, three, or all axes can be preset in the
G92 block. It is common practice to locate this new coordinate
reference point either on the part being machined, or at the
tool change position. No axis movement occurs when executing a
G92 block~ its purpose is only to define a · new coordinate system
referenced to a Program Zero point. The G92 code is modal, and
is cancelled by a G99 data block which returns the axes origin
of coordinates to the Machine Zero (Machine Home) position.

3.5.40 CANCEL ABSOLUTE POSITION PRESET

The G99 command is provided to remove the effect of a previous


G92 data block. Its action is to redefine the absolute coor-
dinate reference ~oint as the Machine Home position. Axes data
that are specifie~within the G99 block will be treated as moves,
moving to absolute· coordinates if the current mode ~s Absolute
(G90) or to incremental positions if the current mode is incre-
mental (G91). Movement will be made at rapid (GOO) if this mode
is current, or at feedrate (GOl) if this is the current mode.

The G99 code is modal and cancels a G92.

3.6 L WORD - REPEAT COUNTER

The L word (Format: L3) is generally used to specify the number


of executions of the data block in which it appears and thus
eliminate repetitive programming. But, it also appears in the
Bolt-hole Circle (G24) and Pocket Clearance (G26) autoroutines.
(Refer to sections 3.5.11 and 3.5.13 for these special uses of
the L word.)

3.54
When the L word is used as a repeat counter for a data block, L
has a range of l to 255. The numeric value specifies the number
of executions of the entire data block in which it appears. For
example , programming

G9l #
G8l z-.5 R-.5 PO FlO. #
GOO X-1. LlO #

will execute a rapid move of X-1. a total of 10 times with a


Drill (GBl) autocycle applied at the end of each move. Another
example for the use of the L word is as a subprogram repeat
counter. In this case, programming

P4 LSO #

will execute subprogram P4 a total of 50 times.

(Subprogram P4 could also call other subprograms up to a 6 deep


level of nesting. See section 3.9.)

The current value of the L word counter is d1splayed on the


control's Status page so that the operator may keep track of
data block executions.

NOTE: If a data block includes the L word


and an M02 command, such as P4 LSO M02 #,
program execution will be halted~fter
the first execution of the data b\ock.
Remaining iterations are suspended by
the execution of the M02 code.

3.7 M WORD- MISCELLANEOUS FUNCTIONS

Most miscellaneous functions (format: M3) in the control are


implemented through an integral Programmable Controller. This
Programmable Controller executes an "I/O ladder" diagram provided
by the systems's installer which is unique to a particular
machine and system configuration. Thus, it is not possible to
rigorously define the operation of all M functions. However, a
list is provided in section 3.7.5 wh1ch ind1cates the typical M
codes likely to be implemented.

3.55
There are four M codes which are predefined by the control and
which are not completely ladder dependent. There are:
MOO - Programmed stop
MOl - Optional stop
M02 - End of program
M30 - End of program (and tape rewind for units
with tape reader control)

3.7.1 MOO- PROGRAM STOP

The MOO code causes a Program Stop. The messages "HALTED" and
"Awaiting start cycle" are then displayed to the operator on the
CRT. Whether the MOO code causes any other machine operations,
such as turning off coolant flow, depends on the detailed imple-
mentation of the I/O ladder for the machine. Part program execu-
tion continues normally with the next block when the operator
presses the START CYCLE button.

NOTE: MOO is ignored by the control during


Check Run (see section 4.5.1).

3.7.2 MOl - OPTIONAL PROGRAM STOP

The MOl code is ignored during part program execution unless the
operator has selected the ~PTIONAL STOP function on the Job Set-
up page. If this option has been selected · (being displayed 1.n
reverse video) then an MOl code operates identically to the MOO
code .
NOTE: MOl is ignored by the c ontrol during
Check Run (see section 4.5 . 1).

3.7.3 M02 - END OF PROGRAM

The M02 code designates the end of a program or subprogram.


When the M02 code occurs at end of a main program, it terminates
part program exe~_ution, displaying "PROGRAM COMPLETED" to the
operator. Wheth~ it has any other effects on the machine's
operation, such as turning off the spindle and coolant, depends
on the detailed implementation of the machine's I/O ladder. An
M02 code must be used at the end of all subprograms: this M02
returns program execution to the calling part program. If an M02
word is omitted from the end of a part program, the error message
"PROGRAM P** - NO M02" is d isplayed to the operator on the CRT
where ** displays the faulty program number.

3.56
3.7.4 M30 - END OF PROGRAM (TAPE REWIND WITH READER CONTROL)

The M30 code behaves identically to the M02 code, but addi-
tionally may cause an automatic rewind of the paper tape reader
to a rewind-stop character at the start of the paper tape if this
option is incorporated. The rewind occurs when the block con-
taining the M30 code is read from the paper tape reader, not
when the roo code executes so that the tape can be removed imme-
diately.

3.7.5 OTHER M-FUNCTIONS - SUMMARY

The following list of M functions is provided as a guide to a


typical implementation on a vertical mill. Note that the
existence of particular M functions and their operation is depen-
dant on the implementation of the machine's I/O ladder, and the
part programmer should consult the relevant documentation from
the system installer to establish exactly which functions are
available for a particular machine .

M03 - Turn spindle on clockwise


M04 - Turn spindle on counterclockwise
M05 ~ Spindle stop
M06 Program stop manual toolchange
M07 - Turn coolant on, ' mi·s t
MOB - Turn coolant on, flood
M09 - Tu nn coolant off
MlO - Clamp on
Mll - Clamp off
Ml2 - Standard function
Ml3 - Turn spindle on clockwise, flood coolant
Ml4 - Turn spindle on counterclockwise , flood
coolant.
Ml5 - Optional function with reset
Ml6 - Optional function with reset
Ml9 - Oriented spindle stop
M20 - Tool out (ATC)
M21 - Turret clockwise (ATC)
M22 - Turret counterclockwise (ATC)
M23 - Tool in (ATC)
M24 - RPM up
M25 - RPM down
M26 - RPM home
M27 - Turret home (ATC)
M28 - Low gear
M29 - High gear

3.57
,
3.8 N WORD - SEQUENCE NUMBERS

An N word (format: N4) can be used at the start of a part program


data block to identify that block by means of up to 4 numeric
characters. N words are ignored by the control, except for
display during editing and part program execut1on, and are not
essential within a part program. When they are used, it is
recommended that the sequence numbering should be unique, and
count by tens to leave space for later part program modifi-
cations and the insertion of additional blocks, if necessary.
N words are useful for program documentation purposes, and even
where they are not used on every data block, it is recommended
that they be present at the start of subprograms and also at
important subsections within a program; they. can then be used
during program search operations to uniquely identify and locate
particular sections of a part program. The most recent N word
value which has occurred within a part program is displayed to
the operator on the Status and program execution pages.

3.9 P WORD - PROGRAM IDENTIFICATION

Every program or subprogram that is resident in storage must be


uniquely identified with a 2 digit P number. This identifica-
tion must be in the range POl to P99, with up to 39 part programs -
and/or subprograms resident in storage a~ any one time. Programs
resident in storage can be displayed and edited as necessary
(see section 4 . 4) , and the ~ ength of each program is displayed
to the operator using the Directory pages of the control. Pro-
grams can be deleted from storage or renumbered if necessary
using the Program Entry page.

NOTE: If a subprogram is renumbered, references


to that program contained in other programs
are not automatically updated; the part
programmer should be aware of this operator
facility . The part program is to be exe-
cuted is selected by the operator using the
facilities of the Program Entry, Job Set-up
and program execution pages. An attempt to
execute a program whose P number is not
currently in storage causes the error message
"P** NOT LOADED" to display on the CRT.

A subprogram is specified in a program simply by programming a P


and the relevent number of the subprogram. Subprogram execution
may be "nested" (a subprogram calling another subprogram, and so
on) ·to 6 levels deep . For example,

Level 0 Pl calls
Level l P2 calls
Level 2 P3 calls
Level 3 P4 calls
Level 4 P5 calls
Level 5 P6 calls
Level 6 P7

3 . 58
At the end of P7, program execution eventually returns to Pl.
If nesting beyond 6 levels deep is attempted the error message
P NESTING TOO DEEP will appear on the CRT and program execution
will stop.

Execution of code within a subprogram can alter parameters passed


to it from the calling progran. When the subprogram ends, cer-
tain states existing in the calling program will be automatically
restored. These states are:

1. Absolute/incremental mode per axis


2. Circular interpolation plane
3. Mirror states per axis
4. Current autocycle
5. Current autoroutine
6. Feedrate
7. Remainder of currently executing block
8. Dwell amount
9. Interpolation mode

The system checks that an "infinite loop" of part program execu-


tion has not been requested by ca l ling subprograms that call
themselves or the calling program. If this occurs, the error
message "P** IN ** AND **" is displayed on the CRT and program
execution halts7 ** displays the offending P numbers. A new and
untested program can be checked quic~ly for these types of error
by using the Check Run facility (see section 4.5.1).

Each program and subprogram must end with an M02 code. When M02
ends a subprogram, execution automatically reverts back to a
calling program. When M02 terminates a program, execution halts
and Program Comp1eted is shown on the CRT. If the control
detects the absence of an M02 code in a program or subprogram
the error message P** NO M02 is indicated and ** will give the
number of the offending program.

The P word is also used in various data blocks to specify retract


position (G81-G85) and climb or normal milling sequence (G26).

3.10 R WORD - RADIAL POSITIONING, CLEARANCE PLANE DEFINITION

An R word is used in conjunctio n with positioning commands to


specify the length of a angular vector. It can also be used in
this way for Bolt-hole Circle (G24) definition. In the G81 -
G85 series of autocycles, the R word is _used to specify a clear-
ance plane just above the work piece to which the tool can safely
position with rapid movement during autocycle operations. It is
also used in this way for the Pocket Clearance (G26) autoroutine.
In effect, the R value specifies an Absolute Z axis position as
a reference point during these operations. See sections 3.5.28-
35 for examples of autocycles (G81-G85 series) which use the R
word facility .

3.59
3.11 SWORD - SPINDLE SPEED CODING

The S word (format: S4) is used to define the spindle rotation


speed. The way in which it does so is a function of the machine ' s
I/O ladder as implemented by the system installer so refer to the
installer's documentation for a particular machine .

When the spindle is turned on by programming a data block con-


taining the appropriate M function (typically M03 or M04) , the
current S word value is used to set the rotation speed . The S
word is modal and remains in effect until another S word is
specified, or the spindle is turned off. Where the spindle is
starting from rest, or changing in rotational speed, part program
execution waits until the spindle reaches the newly defined
speed.

The actual spindle rotational speed can be modified by the operator


using the Spindle Speed Override switch on the Pendant Module
front panel. When using the G84 tapping autocycle, the part
programmer should insure that the operator is instructed t o set
the spindle speed override switch to 100%~ otherwise the part
programmer's calculations of Z axis feedrate for the tapping
operation would be incorrect . The G84 tapping autocycle is also
the only case where the system does not await a speed achieved
signal from the spindle logic.

3.12 T WORD - TOOL SELECTION AND TOOL OFFSETS

The T word (format: T2 or T4) is provided to allow automatic tool


change with associated tool length and diameter offsets. On
machines without an automatic toolchanger, the two digit T word
is used to call up a tool offset (length and diameter) from the
Tool Offsets Tables. On machines with an automatic toolchanger ,
a four digit T word is used to define both tool selection and
the associated offset .

The control can handle up to 48 tool entries, in the range TO l to


T48. The relevant offset is interpolated into the ne x t programme d
move of the relevant axes~ specifically , the length offset is
included in the next programmed Z move, and the diameter value is
used when cutter radius compensation is programmed with a G41 or
G42 code. Any selected tool length offset currently in force is
cancelled by programming a data block containing TOO . The offset
is removed with the next programmed Z movement .

On systems without an automatic toolchanger, the two digit T word


only invokes the length and diameter offsets according to the
entries in the Tool Offsets Tables .

3.60
On systems which incorporate an automatic toolchanger, the four
digit T word enables selection of the required tool from th_e___
toolchanger, and definition of which offset values from the tool
offset table should be used. The format of the four digit T word
is: Tttoo where "tt" is the tool number required from the
toolchanger, and "oo'' is the tool offset number as a reference
into the Tool Offsets Tables.

A tool changing operation is typically init1ated by programming a


data block containing an MOS (spindle stop) code, followed by a
block which returns the tool to the tool change position. The
next block in the program should contain the relevent T word.
In this case the toolchanger selects and loads the designated
tool into the machine spindle, and then continues part program
execution. Any offsets associated with the new tool are inter-
polated into the next programmed
,. axis moves.

3.13 AXIS MOVEMENT INSTRUCTIONS

A data block specifies movement of one or more axes if it contains


the relevant axis address words and numeric data. An attempt to
program a move on a non-existent axis causes the part program
execution to halt, and the display of the error message " CODE NOT
KNoWN• to the operator.

Decimal point programming is standard on the Bandit III CNC, and


the numeric data does not require leading or trailing zeroes
(see section 2.9.4). For dimensional numeric data, the control
interprets the dimension according to the format currently in force
(inch or metric). In inch mode, the control assumes four figures
after the decimal point, while in metric mode it ' assumes three.
To avoid confusion, it is recommended that the decimal point
should always be used.

In Absolute mode (G90) the control interprets axis address words


as specifying the required Absolute position of an axis although
this is modified in practice by other considerations such as tool
length and/or fixture offsets. In incremental mode (G91), axis
numeric data is interpreted as both the direction and distance
to move an axis from its current position. In both cases the
optional plus (+) sign commands a direction of movement along
the positive direction of the selected axis, and a minus (-) sign
commands a direction of movement in the negative axis direction.
If no sign character is present the sign is assumed to be plus.

NOTE: If Mirror Image has been selected on one or


more axes (using the G31 code), the actual
direction of axis movement is reversed.

3.61
3.13.1 LINEAR AXES (X, Y, Z)

In inch mode (G70), a linear axis movement can be programmed in


the range 000.0001 to 999.9999 inches, with a resolution of
0.0001 inch. Note that physical limitations of the machine
limit the maximuM move which can be made in any axis . Refer to
the specific machine details for informat1on on the maximum
allowable moves which can be made. The direction of axis travel
is controlled by programming a "+" (optional) or "-" between
the axis address word and the numeric move value.

3.13.2 CIRCLE CENTER PARAMETERS FOR CIRCULAR INTERPOLATION AND


POLAR POSITIONING (I, J, K)

In circular interpolation (G02, G03), helical interpolat1on


(G22, G23), polar positioning and part rotation (G74), additional
information is required to spec1fy the position of the center of
the programmed circular or linear movement. In Absolute mode
(G90) the I, J, or K values specify the absolute coordinates of
the center of movement. In incremental mode (G91) the I, J, or
K values specify the incremental distance to the center of the
move, with signs as necessary to give the relat1ve position of
the center with respect to the current tool position. The I _
value is the position or distance measured along the X axis, the
J value is the position or distance along the Y ax1s, and the K
value is the position or distance along the Z axis. Only two
axis movement words (X, Y or Z) together with two of the I, J,
or K values are necessary to specify a circular interpolation
move, according to the plane of circular interpolation program-
med in a preceeding block by a Gl7, GlB, or Gl9 code. If any of
t h e axis move values, or I, J or K parameters are zero, then
they still must be programmed, but the numeric data of the word
can be omitted. In polar pos1t1oning, the relevant angle (A , B
or C) and/or radius (R) must be specified together with appro-
p r iate I and J values as required to determine the polar origin
(see section 6.1).

3.13.3 ROTARY AXIS (W)

Rotary axis moves are commanded in units of degrees . The format


in both inch and metric modes is W4.3 (thousandths of a degree).
A rotary axis move can be programmmed with linear axis movements
in the same dat a block. The control interpolates rotary axis
movement s such that all axes start and stop simultaneously, with
· the required feedrate being calculated from only the linear axis
movements.

3.62
For a rotary move programmed by itself in a separate data block,
you must program a feedrate (F word) for rotary feedrate in
Degrees Per Second (DPS). The format of the F word in this par-
ticular case is F2.3. The maximum permitted feedrate is likely
to be limited by rotary table characteristics, and the maximum
value should be established by reference to the machine's
specifications.

NOTE: The particular F word applicable in a


rotary axis data block is only valid for
that block. When a data block containing
a linear move is next executed, the proper
linear feedrate must be reprogrammed.

3.13.4 ANGLE PARAMETERS FOR POLAR POSITIONING (A,B,C)

In the Bolt-hole Circle (G24) autoroutine, Part Rotation (G74)


programming and polar positioning (see· section 6.1) angles are
spec ified with A, B, and C values. The format for these words
is 4.3 in both inch and metric program dimensions. Angles
measured counterclockwise are considered positive; those measured
clockwise are negative.

In general, the A word programs an angle whose origin is the


current tool position. In Absolute (G90) mode, the A angle is
measured with respect to the X positive axis. In incremental
(G91) mode the A angle is measured with respect to the imaginary
extension of the last programmen move. The A word is used in
Bolt-hole Circle (G24) programming and in polar positioning.
Refer to sections 3.5.11 and 6.1 respectively for details of its
implementation.

The B word is used solely in the Bolt-hole Circle (G24) auto-


routine in which it describes an angular increment for point
spacing. See section 3.5.11.

The C word, in general, programs an angle originating at a desig-


nated (with I and J values) center position. In Absolute mode,
the angle is measured from the positive X axis, and in incremen-
tal mode it is measured from the last assumed angular position
from the designated center to the current tool position. The C
word is used in Bolt-hole Circle (G24) definition (section
3.5 . 11), Part Rotation (G74) programming (section 3.5.26) and in
polar positioning (section 6.1) .

3.63
3.13.5 SECONDARY AXES (U,V,W)

The Bandit® III CNC is capable of directing up to six independent


axes. The primary axis set (X,Y,Z) are designateo for linear
movement . The secondary axes (U,V,W) may be designated as linear
or rotary depending on the firmware configuration of the system.
When secondary axes are. linear the U axis corresponds to the X
axis, the V axis corresponds to the Y axis, and the W axis
corresponds to the Z axis. When secondary axes are rotary, the U
axis is considered rotary about the X axis, the V axis is rotary
about the Y axis and the W axis is rotary about the Z axis.

3.64
4. PART PROGRAMMING AND CONTROL OPERATION

The following sections give the programmer a general l ook at


aspects of part programming, job set-up, program management and
operation of the Bandit® III CNC. In section 4.1 we will dis-
cuss pre-programming considerations~ the process of preparing
for part production. Section 4.2 presents an example part pro-
gram. The example part and its program is not intended to be
indicative of actual machine shop practice, merely to show what
a finished program may look like. The programmer should be
aware of specific machining requirements involved in a particular
job. Section 4.3 deals with preparing the control for a parti-
cular job~ manually moving machine axes, entering job set-up
data, etc. Section 4.4 is devoted to program entry and section
4.5 deals with program check out. Finally, section 4.6 deals
with actual program execution.

4.1 PRE-PROGRAMMING

The objective of smart CNC programming is to produce parts as


effeciently and cost-effectively as possible. To meet this
objective, the programmer must consider the specifications of the
part itself, the tooling required for the job, and the capabili-
ties of the machine used to produce the part.

The details of the part will generally dictate which machine and
which tool to use. Pro~uctivity is increased by using the
machine and the tool in the most efficient manner.

Consider the part shown in figure 4-1. The task required is to


machine this part using a Bandit® III CNC that has been retrofit
to a series II vertical mill.
With the part's specifications in hand, the programmer sho u ld get
some ideas about how to approach its production . In general, he
will have to answer some basic questions:

1. What tools should be used for the machinin g operations


involved?

Determining which tools to use will indicate what sort of t o ol


length offsets and tool diameter compensation values to enter .
The control can automatically make use of these values during
program execution and greatly reduce the required length of a
program.

2. What axis feedrates and spindle speeds are required?

Axis feeds and spindle speeds are a function of the tool required
for a particular machining proc ess, and the f1nish requirements
of the part. They should be programmed assuming 100% settings on
the control's override switches.

4.1
3. Can several parts be machined with one job set-up; e.g . , can
fixture offsets be used?

Use of fixture offsets can allow several parts to be machined


with a single job set-up. This will significantly reduce job
set-up time and increase overrall productivity. A multiple part
fixture may have to be designed, but its cost can quickly be made
up by being able to produce the parts more quickly.

This is not an exhaustive list of things to consider, but


answering these and other questions is the beginning of the
programming process.

After thorough job planning, the programming process itself can


begin. This will first require that the coordinates of the part
be determined .
\ 1. 5000R
,--------------------~

~'=----~~
6 PL .
.5000 DIA.THRU,
EQUAL SPACED ON
3.0000 DIA.BOLT
CIRCLE

1.0000 R

:::,:
: : ·: :. r " ~ .. . ,,

35000

: •,

.. 1.5000
~ :.
·. . :.

_/ 1.312 .3750 R ~s•

1.0000 R . o::.? '\0, .8750 -l----:--3.8750 -!....---~-------1


1--- -2.0000 - - - · +1 ~----'--2.0000 -
l o o - - - - - 3.0000 ---~-,

~---------- '6'CM~oooo ----------~

Figure 4-1 : Example Part Speci f i c ations

4.1.1 PART COORDINATES

The Bandit® III CNC is a precision velocity and position control.


It controls machine axis velocity by comparing the feedrate it
commands with the actual feedrate it observes . Axis position is
controlled by keeping a running track of movement that is
referenced to a "Machine Home" location. The control considers
Machine Home to be the point XO YO ZO, ( i.e. , " Machine Zero")
in Absolute coordinates. .....-,

4.2
The phyical location of Machine Home is set by the system
installer. Switches are placed at specific locations on the
machine axes. When an operator commands a Machine Home sequence
using the Manual Operate mode the axes move in order toward
their switches until they are tripped. Then, the axes are moved
away from the switches until a zero location (encoder marker
pulse) is detected by the control. All subsequent axis movements
are measured from this position~ Absolute XO YO ZO, or Machine
Zero.
To program a part, the control must be told the significant coor-
dinates of the part, and the type of movement required between
coordinates. This requires the programmer to calculate the
coordinates of the part relative to some point. The programmer
should be aware of the mathematics required to calculate part
coordinates. For a brief review of calculation procedures, see
Appendix B.

Programming a part's coordinates as referenced to Machine Zero is


generally inconvenient. Therefore, a method is provided that
allows the programmer to "rename" any position of the axes with
an arbitrary coordinate designation. Thfs is accomplished with a
G92: Absolute Position Preset. For example, if the machine's
position is X-7. Y-3. Z-1. (from Machine Zero), entering G92 XO
YO Z.5# informs the control that this point now has this Absolute
coordinate. Using G92 will always s~ift the program's origin of
coordinates, and establish a new "Program Zero" (i.e., what the
control uses as Absolute XO YO ZO within a program).

Subsequently programmed Absolute (G90) moves are now referenced


to the G92 position. The control is still aware of axis position
from Machine Zero, and keeps track of machine coordinates as well
as established (G92 preset) program coordinates.
The advantage of using G92 in a program is that it allows the
programmer to select any convenient point as Absolute XO YO ZO
and calculate a part's coordinates accordingly.

A final consideration before calculating part coordinates is


whether tool radius compensation (G40-G42) will be used. The
control can compensate cutting moves so that tools d1ffering in
diameter produce identical precision cuts. Using radius compen-
sation can also allow the programmer to calculate coordinates
directly from the part's dimensions. The control will automati-
cally offset these dimensions by the radius of a specific tool
when the program is run. If the tool radius compensation feature
is not (or cannot be) used, the programmer must figure in the
radius of the tool (see Appendix B). The programmer should
become aware of the use and limitations of tool radius compen-
sation programming. Certain machining operations may negate its
use (e.g., helical interpolation).

4.3
Assuming that radius compensation will be programmed, figure 4-2
shows the example part of f1gure 4-1 with its significant coor-
dinates calculated. Note the extablished XO YO location used
as Program Zero in the XY plane. ZO is considered to be the top
surface of the part.

X-1 .25 XO
.--+Y.!...:3~.-----+-Y'-'3"-
. ----~~ j6726

©
xo
Y2.7!1

... x-1.25 XO X2.25


Y2. Y2.375 Y2 .

X-.70
XO
X- 2.05 Yl. !l
Yl.4
X2 2!:-
·'!_~1.-------... YI.

0
X-1.75
I

0
Xl.75
X I 8598
Y.6098
+X 2 125
y 3447

Y.!l ... xo Y.3447


YO
X 1.75
Y-.6875

0 0 :,~,.
0 X2.0625
Y- I .
+X 2 0625
y - .6875
X 2 25
y- I .

xo + )(.1.25 X2.25

©
X-1.75 Y-2. Y-2 . Y- 2.
Y-2.134
xo
Y-2.375

X - I. 25 X 1.25
y- 3. y -3.

Figure 4-2: Example Part Coordinates

4.1.2 TOOLING

Once the tools that will be used to machine the part have been
determined, tool length offsets and cutter diameter values can
be entered. These values are specified for a particular tool on
the Tool Offsets pages of the control in Job Set-up mode (see
section 4.3.2).

Tool length offsets are used by the control to automatically


postion tools of different lengths to identical Z axis positions.
These z axis positions are typically clearance planes (R-planes
or rapid planes) established at an arbi tra·r y distance above the
work piece. The actual height of a clearance plane is a matter of
personal preference by the programmer, out is typically between
0.05 and 0.1 inch above the part. If the clearance plane is too
high, time will be wasted when feeding the tool from the
clearance plane to the work. If the clearance plane is too low,
the.re may not be enough room to adjust the tool, if necessary.

4.4
Figure 4-3 shows typical tools and tool holders and the d imen-
sions associated with them.

l
A

j__U
c
. ..
. :::::: : ~ .~ ~ : : :. ::
Figure 4-3: Tool Length Dimensions

Dimension "A" is the tool length, the distance from the gage line
on the holder taper to the tip of the tool.

Dimension "B" is the tool length offset , the distance from the
tip of the tool to the clearance plane.

Dimension "C" is the clearance plane distance above the work


piece.

Dimension "D" 1s the sum of "A" and "B " for the longest tool
used. (Measured with Z at tool change position, for example) .
The tool length offset, dimension "B," for each tool is usuallly
determined by subtracting the "A" dimension of each tool from
dimension "D."

Once each tool's length offset has been determined , it is ente red
at a corresponding location on the Tool Offsets pages. If cutter
radius compensation is programmed, then each tool's diameter
should be entered at the same T # location.

4. 5
When the program is run, an appropriate T command will call for a
specific tool. This command has the format Tttoo where "tt" is
the tool number of the tool in an Automatic Toolchanger, and "oo"
is the tool offset entry number from the Tool Offsets pages. The
control can automatically change the tool and apply its corres-
ponding offsets. If an Automatic Toolchanger is not incorporated,
the T command has the format Too where "oo" is the desired entry
from the Tool Offsets pages.

4.1.3 FIXTURE OFFSETS

Fixture offsets can be used to machine several parts, perform


given operations at different locations with only one job set-up
or offset programmed moves by given amounts. Suppose that three
identical parts are to be milled. The stock for these parts can
be mounted to a multiple part fixture, or several vices can be
employed.

Fixture offsets can be used to move the tool between the indivi-
dual parts before performing identical machining operations.
Fixture offsets are specified with appropriate X, Y, Z or W axis
dimensions and are entered at given locations on the Fixture
Offsets page of the control in Job Set-up mode (see section
4.3.2). Figure 4-4 shows a three part job set-up for the pro-
grammeo example part. Note the specified XY dimensions.

......- - - 6 . 0 " - - - - 1 4 - - - - - 6 . 0 II

El X-16. E2 X -IQ E3 X-4.


Y-1. y- I.
Y- I.

@ @ @

000
0
0

0
000
0
0

0
000
0
0

0
a 0 0

@ @ @

Figure 4-4: Fixture Offsets Example

Fixture offsets are programmed using a code in the range El-E8,


where the number corresponds to a particular offset entry. When
programmed, axis movements associated with fixture offsets will
occur with the next programmed move of a program. Any active
fixture offsets are cancelled by programming EO, and removed with
the next programmed axis moves. Fixture offsets are also can-
celled and removed by a Machine Home operation .
. 4.6
4.2 EXAMPLE PROGRAM

This section gives one possible program that will produce the
part shown in figures 4-1, 4-2, and 4-4. It is assumed that the
part contour will be finish milled with a 5/8 inch diameter end
mill cutter. This cutter will also be used to mill the counter-
bores, and rough-out and finish the rectangular pocket. A ~
inch diameter drill will be used to drill (and peck-drill) the
required holes through the part. Fixture offsets will be uti-
lized to machine three identical parts with one job set-up.
The entire program consists of a main program (Pl) and three
subprograms (P2-P4). The main program Pl-FIXTURES invokes fix-
ture offsets for moving between parts, performs tool changes,
controls the spindle and coolant, and calls the major subprograms
which actually produce the parts.

Subprogram P2-CONTOUR util1zes the 5/8." end mill to perform


contouring operations at each part. It also calls subprogram
P3-INC_C-BORE as part of a programmable autocycle (G79).

Subprogram P4-DRILL uses the ~" drill to perform the various


drilling operations required at each part location.

This part program is intended only for example purposes, and tlie
experienced programmer should examin~ it for possible improve-
ments. The beginning programmer should use this example to
become familiar with programming features. After studying the
word descriptions in section 3, experiment (safely) with oper-
ating and programming features. Refer to section 4.4 for Pro-
gram Entry procedures.

4.2.1 MAIN PROGRAM Pl - FIXTURES

The main program, designated Pl, is used to invoke fixture off-


sets that position the tools to the start point of each example
part. (The relative start point of each example part is shown
in figure 4-4. The coordinates of these start points become the
fixture offset values used in the example program. Fixture off-
sets are entered on the Fixure Offsets page of the control. See
section 4.3.2.) Pl calls subprogram P2 (section 4.2.2) three
times to perform contouring operations with a 5/8" diameter end
mill. It also calls subprogram P4 (section 4.2.4) three times
to perform drilling operations at each part with a ~~~ drill.
Additionally, Pl controls tool changes, . spindle speed, and cool-
ant. The following programming features are illustrated.

1. Cancel position (G99)


2. Rapid mode (GOO)
3. Tool Offsets and tool change (T)
4. Spindle speed (S)
5. M functions (M)
6. Fixture offsets (E)
7. Subprogram call (P)

4.7
DATA BLOCK COMMENT

;FIXTURES # Comnent block designating program name

NlOlO G99 # Cautionary cancel of any previous posi-


tion preset.
Nl020 G90 # Establish Absolute mode as a precaution.
(The control is generally in Absolute
mode at the start of a program.)

Nl030 GOO XO YO ZO # Rapid movement to Machine Home (tool


change location) in preparation for
tool change.

Nl040 T0101 # Calls for tool # 01 (end mill) from


toolchanger with offset compensation
values 01 from Tool Offsets · Tables
(see sec. 4.3.2)·.

Nl050 El # Calls for fixture offset l; offset will


result in positioning with next pro-
grammed move.

Nl060 XO YO # Rapid positioning move referenced to


Machine Zero (a dummy move since it is
at XO YO); causes rapid move to El spe-
cified Absolute location.

Nl070 zo # Rapid z axis move with no Absolute move-


ment (dummy move) to invoke tool offset;
since tool offset is interpolated into
next Z move, this command will rapid
the tool tip to the clearance plane --
0 . 1 " above the part surface.

Nl080 M03 S75 # M03 turns the spindle on clockwise; S75


Nl090 MOB # calls for finish mill spindle speed; MOB
turns on flood coolant .

NllOO P2 # Calls subprogram P2 to produce first


part contours (see sec. 4 . 2.2).

NlllO G99 # Cancels G92 Absolute Position Preset


(from P2) in preparation for next fix-
ture offset move ..

Nll20 E2 # Calls for fixture offset 2 .

Nll30 XO YO # Rapids to E2 location referenced to


Machine Zero (dummy move).

Nll40 P2 # Second part performed.

. 4. 8
-
DATA BLOCK COMMENT

Nll50 G99 # Cancels G92 from P2.

Nll60 E3 # Third fixture offset.

Nll70 xo YO # Rapid to E3.

Nll80 P2 # Produces last of three part contours.

Nll90 SO M09 # Home sp1ndle speed, turn off coolant


Nl200 M05 # and stop spindle for tool change.

Nl210 TO # Cancel tool offset.

Nl220 G99 xo YO zo # Cancel G92 preset from P2; remove fix-


ture and tool offset and return at
rapid to Machine Zero in preparation
for tool change.

Nl230 T0202 # Tool change command calling for tool 02


(drill) from the toolchanger; also calls
offset value 02 from Tool Offsets Tables
(see sec. 4.3.2) .

Nl240 El # Calls fixtur-e offset 1 to go to part l


and perform drilling subprogram P4.

Nl250 xo YO # Dummy move to Bl location.


~
Nl260 zo # Dummy move to invoke tool offset.

Nl270 M03 sso # M03 turns spindle on clockwise, S50


Nl2BO MOB # sets drilling speed. MOB turns on
coolant.

Nl290 P4 # Calls subprogram P4, for drilling holes


in parts (see sec. 4.2.4).
,.. , Nl300 G99 # Cancel position preset from P4.

Nl310 E2 # Call fixture offset 2 for drilling at


part 2 .

Nl320 xo YO # Dummy move to go to E2 location refer-


enced from Mach,ine Zero.

Nl330 P4 # Call P4 for drilling operations at part


2.

Nl340 G99 # Cancel position preset from P4.

Nl350 E3 # Call fixture offset 3 to drill at part


3.
~
'--

4.9
DATA BLOCK COMMENT
Nl360 xo YO # Dummy mov e to c ause rapid movement to
E3 location.

Nl370 P4 # Call P4 for drilling at part 3.

Nl380 SO M09 # Home spind le speed, turn off spindle


Nl390 M05 # and coolant .

Nl400 TO # Cancel tool offset.

Nl410 EO # Cancel fixture offset.

Nl420 G99 xo YO zo # Cancel position preset, remove tool and


fixture offset and return at rapid to
Machine Zero.

Nl430 M02 # End of program t

4.2.2 SUBPROGRAM P2 - CONTOUR

This subprogram, designated P2, contains commands to machine the -


example part with a 5/8" diameter end mill. It is called three
times by the main program, Pl , to produce identical operations
at different locations. Figure 4-5 shows a single example part
and the corresponding moves specified in P2 (and P4, see section
4 . 2.4). This subprogram illustrates the followin g programming
features:

1. Absolute mod e (G90)


2. Absolute position preset (G92)
3. Rapid positioning mode (GOO)
4. Cutter radius compensation (G40 - G42)
5. Circular interpolation (G02/G03)
6. Rectangular pocket clearance autoroutine (G26)
7. Programmable auto cycle (G79)
8. Cancel autocycle (G80)

4 . 10
N201
N202
N218
N217

N200
N400

N223
N224
N430 N204

N216
0 N410
N420

0 0
N221
N222

0 0 N210

0 N211

~
N223
N-225
N214 N430

N213 N212

Figure 4-5: Programmed Part

..

4.11
DATA BLOCK COMMENT

;CONTOUR # Comment block designating subprogram


name.

N200 G92 XO Y3. Z.l # Sets present location of tool to Abso-


lute XO. Y3. Z.l; the program's start
position. {The tip of the tool is 0.1"
above the part's surface; at the clear-
ance plane.) The work should have been
positioned correctly with respect to
the tool before this command is exe-
cuted {see main program, section
4.2.3). This command sets Program Zero
for subsequent moves.

N201 G41 X-1. # Invokes cutter dimeter compensation,


left with look-ahead start move of X-1.;
prepares for XY inoves to finish outside
part contour.

N202 GOl Z-1.1 FlO. # Establishes linear interpolation mode


at feedrate of 10 ipm; downfeed to out-
side contour finish depth.

N203 Xl.6726 # First outside contour move.

N204 X2.25 Y2. # Second move.

N205 Yl. # Third move.

N206 X1.8598 Y.6098# Fourth move.

N207 G03 Xl.75 Y.3447 Sets circular interpolation, counter-


I2.125 J.3447 # clockwise; arc end point is specified
with X and Y, arc center with I and J;
vector feedrate is 10 ipm.

N208 Y-.6875 #

N209 G03 X2.0625 Y-1. Counter-clockwise circular arc {actual


I2.0625 J-.6875 # move is a sharp corner since the cutter
radius equals the part radius).

N210 X2.25 Y-1. #

N211 Y-2. #

N212 G02 X 1.25 Y-3. Clockwise circular arc; arc end point,
!1.25 J-2. # X and Y; arc center, I and J

4.12
DATA BLOCK COMMENT

N213 X-1. 25 #

N214 X-1.75 Y-2.134 #

N215 Y. 5 #

N216 G03 X-2.05 Yl.4 I-3.25 ·J.5 #

N217 G02 X-1. 25 Y3. I-1. 25 J2. #

N218 xo # tast outside contour move.

N219 G40 Xl. # Cancels and removes cutter diameter


compensation with look ahead finish
move of X.

N220 GOO Z.l# Establishes rapid positioning mode


and moves Z up to clearance plane
· (0.1 inch above part surface).

N221 X. 75 Y-1. · # Rap~ds to start point of retangular


pocket.

N222 G26 X-.75 Yl. Defines the ~actangular pocket auto-


z-.5 R. l w.2 u.2 routine: X andY specify the pocket's
!.01 J.Ol K.Ol opposite corner: Z defines pocket bot-
FlO. V5. H30. PO # tom: R is the clearance plane position :
W is the rough cut in X and Y : U is the
rough cut in Z: I is the finish cut in
X: J is the finish cut in Y: K is the
finish cut in Z: F is the roughing feed-
rate: V is the plunging feedrate; H is
the finish feedrate: PO defines climb
milling. (See section 3.5.13).

N223 G79 P3 # Define Programmable autocycle (see sec-


tion 3.5.28) as code contained in P3 .
Program P3 contains moves for milling
counter-bores and will be executed
after the following rapid moves .

N224 XO Y2.375 # .Rapids to first counter-bore start point


in X and Y and performs G79 autocycle
( p 3) •

N225 XO Y-2.375 # Rapids to second start point for


counter-bore and performs P3.

N226 G80 # Cancel G79 autocycle.

N227 M02 # End of subprogram P2 and return execu-


tion to main program Pl.

4.13
4.2.3 SUBPROGRAM P3 - INC C-BORE

This subprogram, designated P3, is called by subprogram P2


through a Programmable autocycle (G79) and is used to mill the
example part's counter-bores. This subprogram is written in
incremental mode so that identical operations can occur at dif-
fering Absolute positions. P3 presents the following program-
ming features:

1. Incremental mode (G91)


2. Circular inte~polation (G02/G03)
3. Cutter radius · compensation (G40-G42)

DATA BLOCK COMMENT

~INC_C-BORE # Comment block; desi~nates subprogram


name .

N300 G91 # Establishes Incremental mode for moves


in P3.

N310 GOl z-.6 F5. # Sets linear interpolation mode at 5 ipm;


down-feed from clearance plane to .5
inch depth.

N320 G42 # Defines cutter radius compensation ,


r \ ght, in preparation for machining
counter-bore; compensation value is 01
from main program Pl .

N330 Y. 375 # In-feed to edge of counter-bore at


5 ipm.

_N340 G02 XO YO IO J- . 375#Incremental clockwise circular arc that


mills a full circle for the counter-
bore .

N350 GOO Z.6 # Rapids up from depth to clearance plane


after completing counter-bore.

N360 G40 XO YO # Cancels and removes cutter radius com-


pensation before return to P2.

N370 .M02 # Ends subprogram and returns to relevant


data block in P2 .

4.14
4.2.4 SUBPROGRAM P4 -DRILL

This subprogram, designated P4, is called by the main program,


Pl, to produce the required drilling operations at each example
part location. It presents the following programming features:

1. Absolute position preset (G92)


2. Peck-drill autocycle (G83)
3. Bolt-hole circle autoroutine (G24)
4. Drill autocycle (G81)
5. Rapid positioning mode (GOO)
6. Cancel autocycle (G80)

DATA BLOCK COMMENT

7DRILL # Comment block designat1ng name of sub-


progran.

N400 G92 XO Y3. Z.l # Preset absolute position for start point
of P4.

N410 G83 Z-1.1 R.l I.25 Establishes peck-drill autocycle for


W.05 Dl. U.7 PO# Bolt-hole pattern. Z specifies total -
d epth to drihl, R is the clearance
plane height7 W is the chip break
retract increment7 I is the peck magni-
tude7 D defines · a dwell after movement
to chip break increment position7 U is
the depth drilled between retracts to
R-plane7 PO specifies retract to the
R-plane between moves. (See section
3.5.32)

N420 G24 IO JO XO Yl.5 Bolt-hole pattern autoroutine, I and J


L6 W6 # specify pattern center7 X and Y program
start reference position. L is the
number of execution poipts7 W is the
number of points in the entire circular
pattern. (See section 3.5.11)

N430 G81 Z-1.1 R-.4 Pl # Drill autocycle which cancels peck


drill7 z is the final depth7 R is the
clearance plane height (.1 inch from
bottom of counter-bore)7 Pl defines
retract to position at cycle definition
• (.1 inch above part surface) after
cycle is completed. (See section 3.5.30)

N440 XO Y2.375 # Rapids to first counter-bore position.

4.15
DATA BLOCK COMMENT

N450 XO Y-2.375 # Rapids to second counter-bore and per-


forms drill autocycle .
N460 G80 # Cancels drill autocyc le .
N470 M02 # End of subprogram P4 (return to Pl).

4.3 JOB PREPARATION

The Bandit III CNC provides extensive facilities that allow the
operator to prepare the machine and the contro l for a particular
job. The machine is prepared with Jog, MDI, and Machine Home
operations. The control is prepared by entry of job related data
and parameters such as tool offsets, fixture offsets, inch/metric
selection, block delete, and optional stop. The following sec-
tions briefly describe machine and control preparation
facilities.

4.3.1 MANUAL OPERATE

The Manual Operate mode is selected, initially, b y pressing the


Fl soft-key while the Mode Select page is displayed on the CRT .
The control will then show the Manual . Operate page, which is
shown in figure 4-6.

The Manual Operate mode allows the operator to "manually" mov e


the axes and perform other functions by usi n g either the jog
capabilities, MDI (Manual Data Input), or Machine ·~Bome. These
operations prepare the machine physically for a particular job.

!MANUAL OPERATE ! JOG: HANDWHEEL

CONTI NUOUS 1--- - -

MDI

MACHINE HOME

Figure 4-6: Manual Operate Page

4.16
MACHINE HOME

The Bandit III CNC keeps constant track of axis position as


refe renced to Machine Home (or Machine Zero). A Machine Home
operation can be performed at any time while the control is in
the Manual Operate mode. When power is initially applied to the
control, the operator should perform a Machine Home to allow the
control to establish its position reference. This is accom-
plished by moving the machine's axes to switch set "home" loca-
tions.

NOTE: MDI, Dry Run and Auto Operate will not


function unless the machine has been homed.
A message to this effect is displayed to
the operator. Jog , Check Run, Test Run,
Program Entry and Program Output do not
require Machine Home to be performed. The
Machine Home also must be performed if a
change in inch/metric selection is made.

The Machine Home operation is selected by pressing the F8 soft-


key on the Manual Operate page . The Machine Home page is then
displayed, showing the currently assumed axis positions . A
message, "Awaiting ~startcyc1e, • is shown to the operator, and
when the START CYCLE button is pressed, the axes will move one -at
a time to their home positions. Typ~~al installations will have
the Z axis homing first, followed by the Y and then the X axis.
An "H," following each -.xis position d isplay, is highlighted as
each axis is homed. When the Machine Home sequence is completed,
all axis positions will be zeroed and the CRT will display
"Machine Homed.• The Bandit III CNC will now -use these zero axis
positions as Absolute XO YO ZO, i.e., Machine Zero.

MDI

The MDI (Manual Data Input) mode is acessed by pressing the F7


soft-key on the Manual Operate page . MDI allows the user to
enter a desired data block for immediate execution by the
control.

1~en MDI is selected, a page that is similar to the Prompt Edit


pag·~ is displayed. (Refer to section 4. 4. 3 for features and use
of the Prompt Edit page.) The user simply keys-in a single data
block and then presses the START CYCLE or SINGLE CYCLE buttons to
initiate its execution (no EOB or ENTER is required) . For
example, the user may wish to establish the Incremental mode by
keying-in G9l and pressing START CYCLE. · He could then enter GOl
X-2. FlO. to move 2 inches along the negative X axis at 10 ipm .
If the user wishes to be prompted for particular G codes
available for use, these are listed under general catagories, and
addressed with the soft-keys on the right side of the MDI page .

4.17
MACHINE HOME

The Bandit III CNC keeps constant track of a x is position as


referenced to Machine Home (or Machine Zero). A Machine Home
operation can be performed at any time while the control is in
the Manual Operate mode . When power is initially applied to the
control, the operator should perform a Machine Home to allow the
control to establish its position reference. This is accom-
plished by moving the machine's axes to switch set "home" loca-
tions.

NOTE: MDI , Dry Run and Auto Operate will not


function unless the machine has been homed.
A message to this effect is d isplayed to
the operator . Jog, Check Run, Test Run,
Program Entry and Program Output do not
require Machine Home to be performed . The
Machine Home also must be performed if a
change in inch/metric selection is made.

The Machine Home operation is selected by pressing the F8 soft-


key on the Manual Operate page . The Machine Home page is then
displayed, showing the currently assumed axis positions . A
message, "Awaiting ··Startcycle, • is shown to the operator, and
when the START CYCLE button is pressed, the a x es will move one -at
a time to their home positions. Typi-cal installations will have
the Z axis homing first, followed by the Y and then the X axis.
An "H," following each . xis position d isplay , is highlighted as
each axis is homed. When the Machine Home sequence is completed,
all axis positions will be zeroed and the CRT will display
"'Machine Homed. • The Bandit III CNC will now ··use these zero axis
positions as Absolute XO YO ZO, i . e., Machine Zero .

MDI

The MDI (Manual Data Input) mode is acessed by pressing the F7


soft- key on the Manual Operate page. MDI allows the user to
enter a desired data block for immediate execution by the
control.

Nhen MDI is selected, a page that is similar to the Prompt Edit


page is di s played. (Refer to section 4.4.3 for features and use
of the Prompt Edit page . ) The user simply keys-in a single d ata
block and then presses the START CYCLE or SINGLE CYCLE buttons to
initiate its execution (no EOB or ENTER is required) . For
example, the user may wish to establish the Incremental mode by
keying-in G91 and pressing START CYCLE. He could then enter GOl
X-2 . FlO. to move 2 inches along the negative X axis at 10 ipm .
If the user wishes to be prompted for particular G codes
available for use, these are listed under general catagories, arid
addressed with the soft-keys on the right side of the MDI page.

4.17
Before the user presses START CYCLE (or SINGLE CYCLE) the control
will display the IDLE state . When START CYCLE is pressed, the
control will display RUNNING until the command is completed. If
the CNC detects an error in coding of the data block, FAULT will
be displayed along with an appropriate flashing error message.
The data block should be examined for erroneous coding. (Refer
to Appnedix A for a summary of system messages and error
diagnosis.) At this time the system will s how "EXIT to Clear
Error, 11 and pressing the EXIT key will remove the FAULT state and
the error message.

The Status page of the control can be selected at any time by


pressing the F7 soft-key on the MDI page (see section 4.5.1).
This page shows the operator pertinent data concerning the
current state of the control.

If the execution of a command results in a violation of axis tra-


vel limits, the control will suspend execution in a HALTED
state, and display a message denoting the particular limit on the
axis. To remove the limit condition, press SHIFT and HALT CYCLE
at the same time. This will re-initialize the CNC, stop MDI exe-
cution and "ABORTED BY OPERATOR" will be shown on the screen.
The user should press EXIT to clear this message, then select
Jog Continuous or Jog Mandwheel (see below) to jog off the limit.

If the Feedrate Override Switch is set t~ 0%, FEEDHOLD will be


displayed and no axis movements will be allowed until a different
setting has been selected.

MDI command execution is not limited to axis movement


instructions. Any valid data block can be entered and executed.

JOG INCREMENTAL

The Jog Incremental mode is made active by pressing the F3 soft-


key on the Manual Operate page. Jog Incremental provides the
capability of specifying an increment of axis movement, and then
applying this increment to any direction of the axes.

When the Jog Incremental page is displayed, "JI" (for jog


increment) is shown in the lower left portion of the CRT, imme-
diately followed by the cursor. The user enters a jog increment
by keying-in a numeric value and pressing ENTER. If an erroneous
increment has been keyed-in, but ENTER has not yet been pressed,
pressing one of the cursor keys will restore the previous
increment and a correct entry can then be made. Once the incre-
ment has been specif1ed, pressing one of the soft-keys will move
an axis this amount in the + or - axis directions. For example,
if 0.5000 is entered as the jog increment, and the X- (F4) soft-
key is pressed, the X axis will move in the negative direction
0.5 inch.

4.18
NOTE: Entering a negative jog increment and
then pressing a positive axis soft-key
will move the axis in the negative direc-
tion. Pressing a negative axis soft-key
with a negative increment moves the axis
in the positive direction.
A display of axis position is shown next to each set of + and
- axis soft-keys. The numeric display usually shows axis posi-
tion referenced to Machine Zero. However, the user can change
the function of the displays by pressing and holding the SHIFT
key and then pressing the ENTER key. The user can select:
l. MACHINE ZERO -the position of the axes as referenced to
Machine Home, the default mode of the displays.

2. LAG ERROR - the 11 following error 11 developed by the system


due to velocity control; the amount that actual position
lags commanded position, useful in system installation.

3. PROGRAM ZERO - the position of the axes as referenced to


an established zero coordinate within a program.

*4. DISTANCE TO GO - the distance to reach the final destina-


tion of the axis; always a positive number that counts~
down to zero. '
*5. TARGET - the d~ired end position in terms of the Program
Zero coordinate system.

*NOTE: DISTANCE TO GO and TARGET displays are not


applicable in the Jog Continuous or Jog
Handwheel modes. They are selectable for
position displays on the Jog Incremental
page, the Status page, the Check Out pages,
and the Auto Operate page.

The displays will sequence through these modes as SHIFT and ENTER
are pressed.

The user can also select whether to display the XYZ or the UVW
axes by pressing the F2 soft-key. A change between inch and
metric operation can be made by pressing the Fl soft-key.

NOTE: If a change in inch/metric mode has been


selected, a Machine Home ope~ation will be
required before certain modes of execution
are allowed. A message to this effect is
displayed to the operator.

JOG CONTINUOUS

The Jog Continuous mode is selected by pressing the F2 soft-key


on the Manual Operate page. Jog Continuous will move the axes in
+or- directions, .. continuously, .. for as long as an associated
soft-key is pressed.

4.19
The facilities for choice of d~splay mode, axis selection (XYZ or
UVW), and inch/metric operation are similar to those mentioned
above for Jog Incremental.

To move the axes to precise positions , Jog Continuous can be used


to roughly locate the axes, and Jog Incremental or ,Jog Handwheel
can be used to reach the exact position desired.
JOG HANDWHEEL

Jog Handwheel is activated by pressing the Fl soft-key on the


Manual Operate page. Selecting the Jog Han9wheel mode allows the
user to move selected axes with the handwheel on the front panel.

An axis is chosen to respond to the handwheel by pressing an


associated soft-key. For example, pressing F7 selects the Y
axis, and subsequent rotation of the handwheel will move the Y
axis in + or - directions. Clockwise rotation results in
positive axis movement, counterclockwise rotation gives negative
movement. The handwheel is "detented" so that an incremental
movement of the handwheel will move the axis a certain amount
depending on the setting of the Feedrate Override Switch.

FEEDRATE OVERRIDE SETTING JOG HANDWHEEL INCREMENT


inch metric

0% FEEDHOLD
" FEEDHOLD
10% 0.0001 " O,OOlmm
20% 0 . 0002" 0,002mm
30% 0.0005" 0,005mm
40% 0.001" O,Olmm
50% 0 . 002" 0,02mm
60% -o. oos " 0,05mm
70% 0.01" O,lmm
80% to 150% 0.02 " 0,2mm

Note that settings between 80% and 150% result in an increment of


0.02 " (0,2mm). This produces linch (10 mm) of travel for each
full revolution of the handwheel .

The operator has the capability of choosing display mode, and


inch/metric operation in Jog Handwheel (see Jog Incremental
above).

4.3 . 2 JOB SET-UP

The Job Set-up page, accessed by pressing F4 on the Mode Select


page, gives a number of features that prepare the control for
part production . The Job Set-up page is shown in figure 4-7.

4.20
!JOB SETU~ liNCH!
BLOCK DELETE
OPTIONAL STOP
TOOL
FIXTURE
DIRECTORY
CONTOUR
IL!Program 2 NEXT PROG

Figure 4-7: Job Set-up Page


"
The Job Set-up page provides inch/metric selection, choice of
BLOCK DELETE and OPTION~L STOP functions, entry of tool and fix-
ture offset values, examination of the program directory, and
selection of programs in storage .

INCH/METRIC

Pressing the Fl soft-key on the Job Set-up page will change the
control's definition of dimensional units between inch and metric
(mm). The current state, whether inch or metric, is displayed ln
highlighted video.

When a change is made in dimensional units, all dimensional para-


meters (axis displays, feedrates, offsets, etc.) are displayed in
terms of the chosen units. Note that a comma(,) replaces the
decimal point for metric entries. Any subsequent entry of data
should correspond to these units; e.g., if the current units are
metric, tool offsets should be entered with metric values.

A change between inch and metric will r~quire the operator to


perform a Machine Home. This requirement is displayed to the
user on the CRT.

4.21
BLOCK DELETE

The BLOCK DELETE feature is activated by pressing the F2 key on


the Job Set-up page. When BLOCK DELETE facility is active, it is
displayed on this page in highlighted video .

BLOCK DELETE operation of the CNC causes the control to ignore


any programmed data block during execution whose initial charac-
ter is a (/). If BLOCK DELETE is not selected, the control will
execute the block normally.

OPTIONAL STOP

Selection of the OPTIONAL STOP feature, by pressing F3 on the Job


Set-up page, allows the control to respond to an MOl Program Stop
command .

If OPTIONAL STOP is active, it is displayed in highlighted video,


and an MOl command in a program will have the same effect as an
MOO Program Stop . The messages "HALTED" and "Awaiting start -
cycle" are displayed on the CRT and axes will be held in position
until the START CYCLE button is pressed to resume program
execution . Whether MOl (and MOO) cause any other machine
functions, such as turning the coolant of.f, depends on the
detailed implementation of the I/O ladder ·.
'
If the OPTIONAL STOP feature is inactive, then any MOl command
occurring in a program is ignored by the control. MOO and MOl
are not active during a Check Run of a program .

TOOL OFFSETS

Pressing the F4 soft- key while the Job Set-up page is displayed
will access the Tool Offsets page shown in figure 4-8. The
values used in the example program are shown.

This i s one of two Tool Offsets pages. The one shown in figure
4-8 is designated for tools 1 through 24. The second page is
displayed when the Fl key is pressed , and handles tools 25
through 48 .

4.22
TOOL OFFSETS

T* LENGTH DIAM HF LENGTH DIAM T# 2


I -I .2500 0 .6250 13 0.0000 00000
21-0 7500j l0 5000j 14 0 0QJ0QJ 0 0000 L EN
3 0 . 0000 0 0000 ~ 5 0.0000 0 0000
4 00000 00000 16 0 . 0000 0 0000
5 0 000QJ 0 0000 17 0 0000 0 0000
6 0 .000QJ 00000 18 0 . 0000 0 0000 DIGITIZE LENGTH
7 0 . 0000 0 0000 19 0 0000 0 0000
8 0 0000 0 0000 20 0 . 0000 0 0000
9 0 . iJ00QJ 0.0000 21 0. ~ 0 0000
10 0 0000 0 0000 22 0. 0QJ0QJ 0 0000
II 0 0000 00000 23 0 0QJ0QJ 0 0000
12 0 0000 0 0000 24 0 0000 0 0000 JOG Z-

Figure 4-8: Tool Offsets Page

The Tool Offsets pages allow entry of tool length and diameter
data for use in length offset and cutter diameter compensation
programming. A particular set of values is applied in a program
by specifying a data block containing an appropriate T command.
The T command should have the format Too where "oo" corresponds
to the number of the tool offset entr~. If a toolchanger is -
interfaced to the control, the T command will have the format
Tttoo where "tt" corresQonds to the number of the tool in the
toolchanger, and "oo" i~ the number from the Tool Offsets pages.

Tool dimensional data can be entered and edited in a number of


ways using the facilities of the Tool Offsets pages.

1. DIRECT CURSOR ENTRY -- The CRT cursor can be positioned to


any length or diameter entry using the cursor control keys.
An appropriate value is specified for the entry by keying-in a
number, and then pressing EN·T ER. For example, if the cursor
is positioned immediately to the left of the length value for
T#l, pressing -1.25 ENTER will call for a 1.25 inch offset in
the negative Z ax is when TOl (no ATC) is programmed.
Diameter values for given tools are entered in the same
manner, and call for appropriate offsets in the X and Y axes.
(As a general rule, length offsets are negative values and
diameter offsets are positive values.) While a number is
being entered, the value is displayed in highlighted video.
The new entry is displayed normally when ENTER is pressed.
Moving the cursor away from its posi·t ion during entry will
restore any previous value.

2. SOFT-KEY ENTRY AND EDIT -- The soft-keys can be used to edit


(increment or decrement) any length or diameter value. To
edit a length or diameter value, the user first presses the
F2 soft-key. This positions the cursor to the right of T#
displayed at the right of the screen. He then keys-in the
number of the tool whose associated offsets require changing.
After pressing ENTER, these values will be shown as in high-

4.23
lighted video. If the diameter value requires a change,
pressing F4 moves the cursor to the "INCREMENT DIA" position.
At this point, a positive or negative number can be keyed-in.
When ENTER is pressed, the diameter of the selected tool will
be changed by the specified amount. If ENTER is pressed
again, the value will change once more. Length offsets can
be edited in the same way by pressing the F3 soft-key.

NOTE: A special case occurs when a given offset


value is originally zero . This allows any
desired value to be specified with one soft-
key entry sequence .

3. LENGTH OFFSET DIGITIZING -- The soft-keys can also be used to


"digitize" a length offset . When digitizing a tool length
offset, the Z axis (with tool) is jogged to a given position
from Machine Zero. Typica~ly , the tip of the tool is posi-
tioned at a clearance plane (R- plane) height above the work-
piece. To digitize a tool length offset, first select the
method of jogging desired from the Manual Operate page. Jog
the Z axis to the desired height using the method selected
in Manual Operate. Then, return to the Tool Offsets page
and press T# , F2, key-in a tool number, and press ENTER.
Press DIGITIZE LENGTH, FS, and the digitized Z axis position
will appear in the length display for the specified tool.

NOTE: JOG Z+ , F7, and JOG Z-, F8, can be used


to roughly pos i tion the Z axis . They
jog the axis continuously when the Tool
Offsets pages are access from Job Set-up.
When the Tool Offsets pages are accessed
directly from a Jog page (with SHIFT T),
the JOG Z+ and z- keys respond to the jog
method and active axis of the previous Jog
page. (If Jog Incremental is selected
make sure that the jog increment is not
too large.)

FIXTURE OFFSETS

The Fixture Offsets page is accessed by pressing F5 on the Job


Set-up page. (It can also be called by pressing SHIFT and F
simultaneously.) Figure 4-9 shows the Fixture Offsets page, with
the values used in the example program correctly entered.

4.24
FI XTURE OFFSETS

E'+t X y z w

I ~-1 6 0000 - 1.0000 0.0000 0000


2 -10 .0000 -1.0000 0.0000 0 .000
3 -4.0000 - I .0000 0.0000 0 000
4 0 .0000 0.0000 0 .0000 0000
5 0 .0000 0.0000 0.0000 0.000
6 0.0000 0.0000 0.0000 0.000
7 0 .0000 0 .0000 0 .0000 0.000
8 0.0000 0.0000 0.0000 0.000
BACKLASH COMPENSATION
INCH 0.0000 0.0000 0 .0000 0 .000
MM 0 .0000 0 .0000 0.0000 0.000

Figure 4-9: Fixture Offsets Page

Fixture offsets are used to move specific axes by predetermined


amounts as the program requires. They ' are
. generally useful for
positioning between mu~tiple part fixtures (performing opera-
tions in more than two LOcations) or offsetting the part by
certain values before machining. In a program, a particular
offset is invoked by programming El-E8. Any movements associated
with fixture offsets are applied with the next associated axis
moves of the program . Offsets are cancelled by programming EO,
and are removed with the nex·t programmed moves or by performing
a Machine Home.

To enter fixture offset values, position the cursor to the left of


the desired entry, key-in a numeric value, and press ENTER.
While the entry is being made, the value is displayed in high-
lighted video . When ENTER is pressed, the new entry is shown
normally. Moving the cursor away from its position during entry
will restore any previous value .

BACKLASH COMPENSATION

As shown in figure 4-9, the Fixture Offsets page provides space


for entering backlash compensation values. Compensation entries
may be made with either inch or metric values depending upon the
mode that is currently active.

Backlash compensation values are applied to the relevent axes in


a positive direction when entered • . The sign of the entry is
immaterial. Compensation is applied for each change of axis
direction that occurs and will not affect the Axis Position
Displays.

4.25
When entering backlash compensation v alues, first establish the
inch or metric modes used for the particular operation. Then,
pos i tion the cursor to the left of the desired location. Key-in
an appropriate numeric value and press ENTER to c omplete the
entry. If the cursor is moved away from its position during
entry, any previous value is restored. (See also section 2.8).
DIRECTORY

Pressing F6 on the Job Set-up page will display a directory of


programs that are currently in storage. There are three direc-
tory pages containing storage space for 39 part programs and
subprograms. If a comment block (preceded by(;)) is the first
occuring in a program, any characters in the block are displayed
as the program name. The P number of the program and the number
of characters in the program (corresponding to one line of tape
format) are also shown. The directory is listed according to
which programs have been placed in memo ry first, and not
according to P numbers .

NEXT PROGRAM

The NEXT PROGRAM soft-key , F7, allows the user to sequence


through the directory and bring a program from storage for
editing or execution . The program that is currently accessed has
its P number displayed on the Job Set-Up page. Pressing F7 will
cause the P number of the next program, as listed in the
directory, to be displaye~ .

4.4 PROGRAM ENTRY

This section describ es methods of entering, e d iting and managing


part programs using the Bandit III CNC front panel keys.
Programs a r e entered into the control ' s program memory using the
Program Entry page. This page is accessed by pressing the F3
soft-key while the Mode Select pag e is display ed. The Program
Entry page is shown in figure 4-10 .

!PROGRAM ENTRYI

CONTOUR DIRECTORY
~?]Program 2
Characters 708

Available 13141 SERIAL LOAD


Renumber To 0 PARALLEL
CASSETTE

Figure 4-10: Program Entry Page


4.26
Accessing this page puts the control in the external input and
program enit modes of operation. The user can enter part
programs in memory using the edit mode to key-in commands from
the keyboard, or by loading programs from an external device.
Loading a program from an external device is niscussed 1n section
5. 2.

Any program that is entered into memory must have a number desig-
nation, or P number. The P number is used by the CNC to identify
programs internally. When a P number appears in a data block of
program (not having the same P number) the control executes a
subprogram.
Entering a part program begins by specifying its P number on the
Program Entry page. A program is considered to be in edit mode,
or "in the editor," when its number is displayed on the this page.
It also becomes the currently active program for Check Out (see
section 4.5) and actual execution (se~ section 4.6).

4.4.1 PROGRAM NUMBER AND MEMORY DISPLAY

The Program Entry page displays information regarding the con-


trol's memory capacity, and the program that is currently in toe
editor. It also allows the programm~r ~o number or renumber a
program.

PROGRAM NAME

A program name is displayed if the first data block of the pro-


gram in the editor begins with a comment code(;). This space
on the Program Entry page will be blank if the program begins
with any character or code other than(;). If power is ini-
tially applied to the CNC, (e.g., via the power switch on the
Drive Enclosure) *NO PROG* will appear in this space. However,
if programs are in memory under battery back-up, pressing NEXT
PROG, F4, or entering a resident P number, will access a program
in memory and clear the *NO PROG* message. Specifying a program
number that is not in memory will also clear this message, and
*NEW PROG* will appear in this space.

PROGRAM NUMBER

The P number of a program or sub-program called from memory is


shown below the program name space. A P number is specified for
a new part program by moving the cursor · to "Program," keying-in a
number up to two digits in length, and pressing ENTER. This will
cause *NEW PROG* to be displayed on the CRT. If the user keys-in
the P number of a program already in memory, this program will be
called from memory to the editor. Up to 13 different P numbers
(programs) are allowed in memory at one time.

4.27
CHARACTERS

This space shows the number of characters that make up the


program currently in the editor. One character is equivalent to
one line of NC tape.

AVAILABLE

Un-filled program memory is shown in in terms of the number of


characters available for storage. The storage capacity of
program memory is 14669 characters, or roughly 120 feet of NC
tape. If an attempt is made to exceed the available memory space
during input, a message, "NO ROOM, DELETE!!," will be displayed,
indicating that the loading program requires more than the
available memory. If desired, unwanted characters can be deleted
to make room for the loading program. Other editing facilities
will be inactive (except delete) when this message appears .
RENUMBER TO

Any program that is called to the editor can have its associated
P number changed to a new value, provided that the new value dif-
fers from any already in storage. To renumber a progra~ move the
cursor to "Program,• specify the number of the program to be
renumbered, and press ENTER. Then move the cursor to "Renumber To,•
key-in a new P number and press ENTER. ' The program's P number
will now assume the new value. If the user attempts to renumber
a program with a P value ~lready in memory, a flashing error
message, "INVALID PROGRAM NO" will appear along with "EXIT to
Clear Error. •• When the EXIT key is pressed, the program whose ('
number was specified (inadvertantly) will be in the editor.

When a sub-program is renumbered, its associated P value will


not be updated automatically for programs that call for its
execution. The programmer should make sure that sub-program calls
(P blocks) in main programs are changed accordingly.

4.4.2 PROGRAM ENTRY SOFT-KEYS

The soft-keys on the Program Entry page are used to call for
input from an external device, manage program memory, call a
program from memory, or begin entry of a program from the
keyboard.

EDIT

Pressing the Fl soft-key puts the control in the Prompt Edit


mode. Prompt Edit allows program data blocks to be entered,
altered, or deleted using the keyboard. Refer to section 4.4.3
for Prompt Edit features and use .

4.28
DELETE

The DELETE soft-key, F2, allows the user to delete an entire


program from storage. When F2 is pressed, the control will
display the Program Delete page and ask whether or not to delete
the program in the editor. Pressing the YES soft-key will erase
the program from memory. Pressing the NO soft-key will return
the control to the Program Entry page without affecting the
program in the editor.

DIRECTORY

A directory of programs in storage is displayed when the F3 key


is pressed. There are three directory pages and each one is
accessed sequentially by pressing FB from the directory pages.
The directory lists each program's name (if any), its P number,
and number of characters. Up to 39 programs or subprograms are
allowed in storage at one time. Programs are listed according
to order of entry, and not according to P number.

NEXT PROG

Pressing F4 will call the next program, as listed in the


directory, and place it in the editor. The program's P number _
will be displayed, and the program can be edited or renumbered
as required. ' .
Pressing NEXT PROG repeatedly will sequence
through the directory a~cording to the order in which programs
are entered, and not according to p numbers.

4.4.3 PROMPT EDIT FEATURES

This section describes features for entering and editing part


programs using the Bandit III CNC front panel.
To enter or edit a program, first specify the program's P number
on the Program Entry page (see section 4.4.1). Once an appro-
priate P number is specified, pressing the EDIT soft-key, Fl,
puts the control in program entry and edit mode and the Prompt
Edit page will be displayed. The Prompt Edit page is shown in
figure 4-ll.

4.29
a b
Fl

c CONTOUR LIST EDIT


d \ N400 F2
e
DRILL - ---- - - G~ POSITIONING
DEPTH - --- - -- Ztll l
F3
RAPID PLANE- R- .4 AUTO ROUTINES
RETRACT CODE -_ P I ')- . _____,

INFEED RATE- F AUTO CYCLES F4


)----- ~
X PRE MOVE- -X
Y PRE MOVE- -Y AXIS MODES F5

\f COORD CTRL
F6

l
F7

-
DIRE CTORY
FB

Figure 4-11: Prompt Edit Page

The purpose of the Prompt Edit mode is to format a programmer's


data entry so that excessive keystrokes and movements of the cur-
sor are not required . It also provides prompts for certain
positioning, autocycle and autoroutine parameters, and gives a
selection of G codes as listed under general soft-key addressed
catagories. The programmer can choose to list the current
program on the CRT, search the program for specific characters or
data blocks, and examine the program directory.

PROMPT EDIT CHARACTER SPACE FORMAT

The Prompt Edit page is divided into a number of spaces, or


fields, where only specific sets of characters are allowed.
These spaces are indicated in figure 4-ll . .
a. 11
I
SPACE -- This is a sing.le space designated for a I
11 11 11

character. A 1 is a block delete code that must precede


11 11

any data block that the programmer may wish to have ignored
by the control during program execution . Pressing SHIFT and
7 at the same time will put a 1 in this position, followed 11 11

by cursor. Entering a 1 N, or G followed by CURSOR UP are


11 11
,

the sole ways of moving the cursor to this line of the CRT.
To remove a I character, position the cursor over the I and
press DELETE.

4.30
b. N SPACE -- The N space begins immediately following the " / "
space. It is designated for a sequence n umber entry,
programmed as N and up to four digits . Sequence numb ers are
completely optional within a program and need not be
specified. They are useful for program documentation and
program search purposes. Pressing N will enter it in this
position followed by the cursor. A number can then be
keyed-in. To delete an entire sequence number entry, move
the cursor over ~ and press DELETE.

c. G SPACE -- When a G is specified in a data block (other than a


comment) it will always appear in this position. After full
entry of a G code, G8l for example, its associated name and
prompts (if any) will appear on the CRT. The cursor will
move beneath the G space, and subsequent data are entered
simply by pressing the required keys. It is not necessary to
move the cursor to make normal entries. The G ~ once entered,
cannot be removed except by pressing SHIFT and DELETE
simultaneously. This will erase the entire data block. If a
G code number is changed after letter addresses have been
specified, the new G code will appear, but the existing
letter addresses will remain unchanged.

d. PROMPT COMMENT SPACE -- The prompt comment space is intended


for display of the G code name an~ p~ompt comments (if any).
This space cannot be entered by the cursor, and thus cannot
be altered by the u \ er.

NOTE: The Rectangular Pocket Clearance Auto-


routine (G26) and the Peck Drill Autocycle
(G83) have prompt comment spaces larger
than screen capacity. If it is desired to
examine these prompts, press and hold the
CURSOR DOWN key to scroll the prompts into
v1.ew. An "#" character appears at the
lower right portion of the screen when the
last prompts are display ed.

e. LETTER ADDRESS SPACE -- If letters, other than N or G, appear


in a data block (that is not a comment), they will be listed
vertically in this space. Any associated numeric value is
entered following the letter address. After entry of a
letter, any re-entry of the same letter will position the
cursor to its right . This allows the numeric value to be
changed, if desired. If the cursor is positioned over an
entered letter, and DELETE is pressed, the entire letter and
numeric value are deleted. Required parameters for certain
positioning codes, autoroutines and autocycles will have
appropriate letter addresses in these spaces. In this case,
positioning the cursor over the letter and pressing DELETE
will remove only the numeric value. Moving the cursor over a
specified letter address and pressing INSERT will allow one
line to be inserted above the previous line .

4.31
f. OPTIONAL PARAMETER SPACE --When prompts are displayed for
autoroutines or autocycles, several letter addresses may be
considered optional. These letters will be listed vertically
in this space, and will "flash" to indicate that they are not
required. If the programmer specifies an optional letter in
the data block, it will stop flashing and move over one
space, immediately followed by the cursor. A numeric value
can then be specified. Positioning the cursor over a spe-
cified optional parameter letter and pressing DELETE will
remove any numeric value and return the letter to its
flashing state.

g. COMMENT SPACE-- Entry of a comment code(;) will move the


cursor to the bottom of the Prompt Edit page. The control
will assume that characters should follow the comment code,
and the cursor will remain in this space until EOB is
pressed. Entering a (;) is the only way of moving the cursor
to this portion of the CRT.

The remaining area of the Prompt Edit page has the full range of
the cursor, and thus any character that is not a letter address,
";"or"/" can occupy this space. The DELETE key is used in this
field to erase individual characters (single press) or entire
lines of code (press and hold). Simply position the cursor over
the unwanted character or to the left of the unwanted line.
Positioning the cursor over a character ahd pressing INSERT will
allow one character to be inserted to the left of the cursor.

Part program data blocks are entered and displayed one at a time
in Prompt Edit mode. The programmer can simply key-in a valid
data block and let the control format the block on the CRT. The
control considers a data block to be completely entered when EOB
is pressed. At this point, the command will be placed in program
memory and the CRT screen will empty, leaving the cursor in the
first letter address position. The next data block in the
program can now be keyed-in.

The programmer may choose to remind himself of the particular G


codes available for programming. All valid G codes are listed
under general catagories, and are available for display by
pressing an appropriate soft-key, F2-F6. For example, if an
autocycle is desirable at a given point in a program, pressing
F4 will display the Autocycles page where G80-G85 are listed
along with their associated names. To call for a Drill
autocycle, the cursor is positioned to G81 and then ENTER is
pressed. This will return the control to the Prompt Ed1t page
with G81 and its prompts listed. After entering the desired
letter addresses and numeric values, pressing EOB stores the data
block.

To examine a data block preceding one that is current use a SHIFT


CURSOR UP (the SHIFT and CURSOR UP keys pressed simultaneously).
This displays the preceding block in a program (if any) making it
available for editing.

4.32
f. OPTIONAL PARAMETER SPACE --When prompts are displayed for
autoroutines or autocycles, several letter addresses may be
considered optional. These letters will be listed vertically
in this space, and will "flash" to indicate that they are not
required. If the programmer specifies an optional letter in
the data block, it will stop flashing and move over one
space, immediately followed by the cursor. A numeric value
can then be specified. Positioning the cursor over a spe-
cified optional parameter letter and pressing DELETE will
remove any numeric value and return the letter to its
flashing state.

g. COMMENT SPACE-- Entry of a comment code(;) will move the


cursor to the bottom of the Prompt Edit page. The control
will assume that characters should follow the comment code,
and the cursor will remain in this space until EOB is
pressed. Entering a(;) is the only way of movin~ the cursor
to this portion of the CRT.

The remaining area of the Prompt Edit page has the full range of
the cursor, and thus any character that is not a letter address,
";"or"/" can occupy this space. The DELETE key is used in this
field to erase individual characters (single press) or entire
lines of code (press and hold). Simply position the cursor over
the unwanted character or to the left of the unwanted line.
Positioning the cursor over a character and pressing INSERT will
allow one character to be inserted to the left of the cursor.

Part program data blocks are entered and displayed one at a time
in Prompt Edit mode. The programmer can simply key-in a valid
data block and let the control format the block on the CRT. The
control considers a data block to be completely entered when EOB
is pressed. At this point, the command will be placed in program
memory and the CRT screen will empty, leaving the cursor in the
first letter address position. The next data block in the
program can now be keyed-in.

The programmer may choose to remind himself of the particular G


codes available for programming. All valid G codes are listed
under general catagories, and are available for display by
pressing an appropriate soft-key, F2-F6. For example, if an
autocycle is desirable at a given point in a program, pressing
F4 will display the Autocycles page where G80-G85 are listed
along with their associated names. To call for a Drill
autocycle, the cursor is positioned to G8l and then ENTER is
pressed. This will return the control to the Prompt Ed1t page
with G81 and its prompts listed. After entering the desired
letter addresses and numeric values, pressing EOB stores the data
block.

To examine a data block preceding one that is current use a SHIFT


CURSOR UP (the SHIFT and CURSOR UP keys pressed simultaneously).
This displays the preceding block in a program (if any) making it
available for editing.

4.32
SHIFT CURSOR DOWN (SHIFT with CURSOR DOWN) will display a sub-
sequent block in a program .

SHIFT INSERT allows the insertion of any number of data blocks


preceding the currently displayed block . The insertion process
ceases when SHIFT CURSOR UP or SHIFT CURSOR DOWN is used.
SHIFT DELETE erases the currently displayed data block and the
next block in the program will be displayed.
NOTE: SHIFT CURSOR UP, SHIFT CURSOR DOWN , SHIFT
INSERT or pressing EXIT while a data block
is being entered in Prompt Edit will func-
tion as an EOB and store the data block
from which these operations were performed.

LIST EDIT

Pressing LIST EDIT, Fl, puts the control in List Edit mode where
program data blocks are shown sequentially. List Edit possesses
all of the editing capabilities of Prompt Edit , but more cursor
movement is required when altering data blocks.
-
If the last block of a program has been entered in Prompt Edi~
and List Edit is then selected, noth~ng, will appear on the List
Edit page except the cursor . The cursor will be positioned in
the upper left corner ' f the screen. The listed program is above
the cursor, off the screen. To view the program in this case,
press and hold the CURSOR UP key to scroll the program down into
view . To scroll the program up, press and hold the CURSOR DOWN
key when the cursor is at the bottom of the screen.

The cursor may be positioned anywhere on the List Edit page using
the cursor control keys. Thus, any portion of a program can be
entered or changed at will.
Moving the cursor to a particular data block and entering charac-
ters at any point in the block will change the program. To
change a particular character in a data block, simply move the
cursor over the erroneous entry and key- in a new one.

To delete a character , position the cursor o v er the character and


press the DELETE key. Pressing and holding the DELETE key will
scroll characters on a given line into the cursor, erasing them
from memory.
Pressing INSERT with the cursor at the first character positon of
a data block will move the cursor up one line and the data block
down one line. Characters may now be entered until CURSOR UP or
CURSOR DOWN is pressed. If the cursor is somewhere in the middle
of a data block and INSERT is pressed, the subsequent characters
in the block move down one line, and entry proceeds in the same
way.

4.33
Using a SHIFT INSERT has the same effect as INSERT (leaving a
blank line for entry of characters), except that the cursor is
positioned to the first position of the blank line. The
inserting process is terminated by CURSOR UP or CURSOR DOWN.

A SHIFT DELETE with the cursor at any point in a data block will
delete the entire block. If the cursor is to the right of an EOB
on a line, the next listed block is erased.

Even though data blocks are listed on lines in vertical order,


the control considers the next block of a program to begin
following the EOB (#) character of the preceding block. If the
cursor is positioned at a point following an EOB on a line, and
characters are entered, they become part of the next listed data
block.

Data that are entered in List Edit do not need to correspond to


the control's data block formatting in List Edit (character and
data block spacing, etc.) If List Edit i ·s exited then
re-accessed, any entered data is automatically reformatted by the
control. Reformatting will also occur for all data blocks after
the cursor if INSERT is followed by ENTER.

The programmer may swi£ch between List Edit and Prompt Edit modes
as required. Pressing the Fl soft-key on the List Edit page
brings the control back to Prompt Edit mode. If the cursor is at
some position in a data bl~ck under List Edit, pressing Fl will
display the block in Promp~ Edit format. The cursor will be at a
position just below the G character space of the data block.

SEARCH

The Block Search page is accessed by pressing F7 on the Prompt


Edit page. Block Search allows any program in the editor to be
scanned for a particular character, or sequence of code.

In Block Search, the control requests the entry of the


character(s) it must find. The user keys-in a desired sequence
and presses ENTER. Pressing the Fl soft-key starts the control's
scan through the program. If corresponding code is found, the
message "Match Found" is shown, as well as the data block con-
taining the matching characters .

NOTE: The entire data block may not be displayed


due to the limits of the screen . This may
mean that the search character(s) cannot
be viewed. Press EXIT to return to Prompt
Edit and examine the data block.

The control stops its search when the first match is found . To
resume search, press START again.

Programmed data blocks are examined sequentially in a forward


direction. When the control reaches the end of the program, "No
Match Found" will be displayed. To resume search from the
beginning of the program, simply press START once more.

4.34
4. 5 CHECK OUT

The Check Out modes of program execution prov i d e a means o f


thoroughly testing a program before putting it in product1on.
The operator can select to run a program at the control's inter-
nal processing speed, and rapidly search for programming errors.
This, combined with Prompt Edit facilties, provides an extensive
and versatile programming system.

The Check Out mode is activated by pressing the F6 soft-key on


the Mode Select page. The control then gives a choice of Check
Run, Test Run, and Dry Run.

4.5.1 CHECK RUN

Check Run is selected by pressing F3 on the Check Out page. In


this mode, a specified program is executed by the control as
rapidly as possible. All axis movements and M function are
suppressed in Check Run, and front panel override switches are
inactive. This provides a _rapid way of checking a program for
major errors. By using the Status and Graphics pages (see
sections 4.5.1 and 4.5.2) a programmer can quickly track down
errors in coding and positioning.

The Check Run page is shown in figure' 4-12. Since Check Run 1s a
program execution mode, this page has the same general format as
the Test Run, Dry Run, and Auto Operate pages.

!CHECK -HAL TED JOB

N 100 PROG ZERO -

u 00000 X 0 0000
v 0.0000 y - 3 3125

A 0 . 000 z - 1 1000

STATUS
[2jp I FIXTURES
GRAPHICS

Figure 4-12: Check Run Page

The Check Run page (and other program execution pages) displays
the current program's P number, and the sequence number of the
last executed command. Axis position displays are also shown,
and the function of the display can be changed by pressing SHIFT

4.35
and ENTER simultaneously. (See Test Run, below). Note that the
cursor is positioned just below the axis displays and to the left
of the program's P number. The user can select a given program
for Check Run (Test Run, Dry Run or Auto Operate) by keying-in
the desired P number and pressing ENTER.

The Graphics and Status pages are active in Check Run. Job Set-
up, Jog and MDI capabilites mentioned below for Test Run also
apply. If errors are detected during execution, the program will
be stopped in a FAULT state and appropriate flashing error messa-
ges will be displayed. To remove the FAULT condition press EXIT.
Access the Status page to examine the error producing code.

If an error produces a violation of axis travel limits, the run


is terminated in a HALTED state. There are two methods of
removing the axis limit condition. The operator can select Jog
(F2) and jog away from the limit. (Select PROG ZERO for axis
displays in Check Run and Test Run to observe the jog · move.) On
returning to the Check Run page, the message "Return Jog on
START" will appear on the screen. This indicates that the
control will return to the position it had before jogging when
START CYCLE is pressed (referred to as Jog-and-Return). To avoid
this, since it would return the control to the limit, press SHIFT
START CYCLE. The message will disappear, and execution will
resume. The other method of removing the limit condition is to
press SHIFT HALT CYCLE. This aborts the ' current operation and
re-initializes the control. Note that using SHIFT HALT CYCLE
will affect the status of ~he control, eliminating most
established parameters except for a G92 preset .

The Check Run facility allows a program to be quickly scanned for


gross errors in programming. It does not guarantee that if
errors are not detected, the program is correct. The programmer
or operator should perform additional tests to insure proper
execution.

4.5.2 TEST RUN

The Test Run mode, selected by pressing F2 on the Check Out page,
also runs a program without axis movement or M functions.
However, programmed commands are executed at specified feedrates,
and the front panel override switches are active.

The function of the axis position displays can be changed with


SHIFT ENTER. Each time a SHIFT ENTER is performed, the position
display will sequence through the following modes:

1. MACHINE ZERO - the position of the axes as referenced to


Machine Home, the default mode of the displays.

2. LAG ERROR - the "following error" developed by the system


due to velocity control; the amount that actual position
lags commanded position; useful in system installation.

4.36
3. PROGRAM ZERO - the position of the axes as referenced to
an established zero coordinate within a program.

4. DISTANCE TO GO - the distance to reach the final destina-


tion of the axis~ always a positive number that counts
down to zero.

5. TARGET - the desired end position in terms of the Program


Zero coordinate system.

Note that the Job Set-up, Jog and MDI modes are selectable from
the Test Run page . (See sections 4.3.1 and 4.3.2). The user can
also select which program to run, as shown by the position of the
cursor.

Prior to execution, the user has full use of the machine's Jog
and MDI capabilities. No machine movement will occur, but the
position displays and the Graphics and Status pages will respond
as if actual movement has taken place.

If the user initiates program execution using START CYCLE and


then presses HALT CYCLE before completion, Jog is still active.
If the user jogs tp some arbitrary position and wishes to resume
program execution from this point, he presses SHIFT START CYC~E.
On the other hand, if he wishes to {e t~rn to the location left in
the program, and resume execution, START CYCLE is pressed twice.
This is referred to a\ the Jog-in-Auto and Jog-and-Return
features (see section ~.6).

The Test Run mode posesses all of the capablities of Check Run
with regard to error detection .

4.5.3 DRY RUN

When Dry Run is chosen by pressing Fl on the Check Out page, the
program is executable with X and Y movement, and M functions (but
not coolant flow) active. No Z axis movement is allowed but
spindle rotation will occur with a programmed spindle command.
Maximum feedrate for XY moves performed in Dry Run is limited by
firmware to 50 ipm. Jogging the X and Y axes is allowed, with
Jog-in-Auto and Jog-and-Return features active. The rules
applying to Check and Test Run Job Set-up also apply to Dry Run.

4.5.4 STATUS PAGE

The Status page is called from the Check Out and Auto Operate
pages by pressing the F7 soft-key.

The purpose of the Status page is to list pertinent data con-


cerning the control's current state. The Status page is shown ~n
figure 4-13.

4.37
..-- .
ABS/1nc XYZUVWIJKABCR FIXTURES P I
Dimensions ENGLISH Program L I
Interp Mode' RAPID G 99 M 2 E 0
Auto Routine' T elF 3 00. 0
Auto Cycle' N 4 30 D 0. e>e>
C:irc Plane' XY
Cutter Comp' RPM% e>
I /0 Mode'
TOOL 'It 0 r-----..J
u 0 0000 M I H 1---------,

Program Completed

NI430M0 2 #

Figure 4-13: Status Page

The left portion of this page displays the control's operating


state , whether RUNNING, ID\R, FEEDHOLD , FAULT or HALTED.
Operator messages , (including error messages) are displayed imme-
diately below this field . Messages concerning the ope r ation o f
the system's Programmable Controller are shown immediately above
this field.
Two lines on the bottom of the page display program data blocks
during executio n . The top most of these lines will show the
data block that is currently being executed. If an error occurs
during execution, the offending block is shown in this position.
The bottom most line shows data blocks that are next in line for
execution.

The middle portion of the screen shows features of the control's


programmed state . The top line displays Absolute (G90) and
incremental (G91) parameters. Uppercase letters are Absolute,
lower case are increnental. Dimensions will either be English
(inch) or metric~ the interpolation mode will be rapid (GOO),
linear (GOl), position (G73) , helical (G22, G23) or circular
(G02, G03). The names of any current autoroutines or autocycles
are listed as well as the circular interpolation plane. Cutter
comp will show right or left . Any I/O mode currently ac t ive is
also given .
The upper right area of the CRT will show the program name and
abreviated program parameters . These show the current prog r am
number, a sub-program number, P (if any) , and the number of
repeats , L . The present G code numbe r, M code and fixture

4.38
offset, E, are shown on the next line . Moving down one line, the
current T offset number and feedrate are shown. The next line
gives the sequence number of the last executed data block having
a sequence number, and the dwell time read-out. If a spindle
speed has been programmed, this is shown at the next line down
with the current tool number from an automatic tool changer shown
below the spindle speed.

The lower right portion of the CRT is dedicated to axis position


displays. If a particular axis is mirrored, in position, or
homed, this is indicated in highlighted video. The read-out
function of the displays can be changed with a SHIFT ENTER (see
Test Run, above.)

4.5.5 GRAPHICS

The Bandit® III CNC provides a versatile graphic display of axis


movments . This can be used to check details of axis moves in a
program, or manual operate moves, if desired.

The Graphics page is shown in figure 4-14 with the example


program's moves drawn on the CRT.

!Program Completed I

0 0 0

0 0 0
0 0 0

X 00000i2!ERASE GRID RAPID LEFT - 20 .3 RIGHT -0. 2 r - - -


y 0 0000 RESTART AUTO LIM ITS SOFT LIMITS BOTTOM-9 .2

Figure 4-14: Graphics Page

The Graphics page is accessed from the Check Out or Auto Operate
pages by pressing the FB soft-key. In Check Run, the graphics
display is drawn as rapidly as possible. All other program exe-
cution modes trace moves at specified feedrates.

4.39
Options listed at the bottom of the screen provide control of the
way in which the graphics display is drawn. These options are
cursor selectable. The cursor is positioned to the left of a
desired feature when activating or changing an option.

NOTE: It may be noticed that small portions of


the Graphics page are blank and do not
show a trace. These areas are reserved
for display of operator messages.

LEFT, RIGHT AND BOTTOM LIMITS

Graphics are drawn according to specified LEFT, RIGHT, and BOTTOM


limits displayed at the bottom right of the CRT. LEFT and RIGHT
limits correspond to theoretical travel of the axis shown on the
top line of options (X, as shown in figure 4-14). This travel
is referenced to Machine Home. The BOTTOM limit corresponds to
travel of the axis listed on the bottom option line. · Changing
the viewing limits is essentially like positioning a camera at
various positions within the machine's travel.

The user can change these limits by positioning the cursor to the
left of each option, keying-in a number, and pressing ENTER. If
the cursor is moved away from the option during entry, the origi-
nal value is restored. By specifying appropriate limit values,
the user can examine any portion of the ' graphic display, in any
required detail. Any time a limit is changed, the ERASE option
will flash, indicating tha~ what is drawn on the screen no
longer corresponds to the chosen limits and should be erased.

NOTE: The precise limits for the Graphics display


should be established first by running the
program in Check Run (or , perhaps, Test Run).
Once the proper limits have been set, they
should be retained for running the program in
Dry Run or Auto Operate .

SOFT LIMITS

The graphics picture can be drawn with respect to the soft limits
of machine axis travel. (Soft limits on the axes are determined
in firmware, and are typically located just within any
established hard travel limits.) This will display the trace as
it occurs when viewed in the full range of axis motion, and give
an indication of the part's position with respect to travel
limits.

To select SOFT LIMITS, move the cursor to the left of this option
and press ENTER. SOFT LIMITS will be displayed in highlighted
video and the LEFT, RIGHT and BOTTOM LIMITS will assume soft tra-
vel limit values. ERASE will flash to call for deleting the
currently displayed picture.

4.40
RAPID

When the user selects the RAPID option, all rapid moves are
displayed on the Graphics page in addition to the usual feed
moves. RAPID is displayed in highlighted video when selected.
To remove the RAPID option once selected, place the cursor to the
left of the option and press ENTER once more.
GRID

The GRID option, when selected, will place a grid on the screen.
The grid is composed of 10 horizontal by 6 vertical squares .
The GRID option is used by the programmer to locate features on
the graphics picture more precisely in relation to established
LEFT, RIGHT and BOTTOM limits. It provides a roughly scaled view
of any displayed pattern. For example, with GRID and SOFT LH1ITS
active the distance between each vertical and horizontal line is
about 3 inches. The graphics limits can be changed accordingly
to focus-in on a particular portion of the display. When the
limits are changed the grid will correspond to a new set of
dimensions. The displayed size of the grid never changes.

Once the GRID option is activated, it is displayed in highlighted


video. The grid cannot be erased while it is active. The option
must be removed before the grid can be erased.

AUTO LIMITS AND RESTART


"

The graphic picture can be automatically scaled for a particular


~ program by selecting the AUTO LIMITS option. This option is cho-
sen by moving the cursor to RESTART and pressing ENTER. This
will set the LEFT, RIGHT, and BOTTOM limits to zero, and display
RESTART and AUTO LIMITS in highlighted video. ERASE will flash,
reflecting the change in limits.

When the program is run, the limits on the screen will be "pushed
out" according to the moves in the program. After execution is
completed, the screen will be properly scaled to display all of
the moves in the program. The LEFT, RIGHT, and BOTTOM limits
will have assumed new values. However, the picture may be un-
recognizable due to the limit expansion process. All that is
required is to erase the picture and re-run the program. This
should display the pattern correctly.

Selecting RESTART at any time begins the AUTO LIMITS process


again . The AUTO LIMITS feature is removed by positioning the
cursor to the highlighted AUTO LIMITS and pressing ENTER, by
establishing new limits for LEFT, RIGHT, or BOTTOM, or by
selecting SOFT LIMITS.

4.41
ERASE

Placing the cursor at ERASE and pressing ENTER will remove a


currently shown pattern from the screen. The grid cannot be
erased when the GRID option is selected.

PLANE SELECTION AND POSITION DISPLAY

The user can select to display movements in the XY, YZ, or XZ


planes. Plane selection is performed by moving the cursor to the
extreme left of the screen and pressing ENTER. This will change
the axis designation to another plane. l~en a change in plane
designation is performed, the Graphics Page will assume that SOFT
LIMITS are required. The SOFT LIMITS option will be highlighted
and the LEFT, RIGHT and BOTTOM screen limits will assume the soft
limits values corresponding to the selected plane. To avoid
this, if desired, select AUTO LIMITS (but not RESTART) before
changing the plane designation. With AUTO LIMITS seiected, the
LEFT, RIGHT and BOTTOM limits selected for one .plane will be
retained for the next selected plane.

NOTE: This is not true for Graphics used in the


Auto Operat~ mode. Auto Operate will not
allow the selection of AUTO LIMITS since the
control assumes that screen ~im~ts have been
properly established before the use of Auto
Operate.
The Graphics axis position displays (immediately to the right of
the plane designation) correspond to those in the current plane.
They reflect Absolute axis positions referenced to Machine Home
and this mode cannot be changed with SHIFT ENTER (which is nor-
mally used to change the function of Axis Position Displays on
other pages.)

4.6 PROGRAM EXECUTION

After a part program has been thoroughly entered, tested and


de-bugged, it is ready for implementation with the mill. It is
assumed, of course, that al l necessary machine preparations will
have been made.
Program execution begins by selecting Auto Operate, F7, on the
Mode Select page. The Auto Operate page is illustrated in figure
4-15.

4.42
AUTO-HALTED JOB
.... ~
......

N 1050 MACH ZERO: MDI


u 0 . 0002> X -1 0 .0000
v 0 . 0000 y - i .0000

A 0 .00 0 z 0 .0000

[2JP I: FIXTURES STATUS


GRAPHI CS

Figure 4-15: Auto Operate Page

The Auto Operate page is identical in format to the Check Out -


pages discussed in the previous sect~on . It provides all Job
Set-up, Jog and MDI facilities prior to execution (see section
4.3 . 1 and 4 . 3.2). The Status and Graphics pages are accessible
at all times (see sections 4.5 . 4 and 4.5.5).

The page displays the a xi s position read-out (whose function can


be changed using SHIFT ENTER, see section 4.5.2), current sequence
number, N, and current program number, P. The number of the
program required for execution can be specified by keying-in the
number and pressing ENTER.

The program run is initiated by pressing START CYCLE if con-


tinous execution is desired, or SINGLE CYCLE if the operator
wishes to step through the program. Movements of the axes and
rotation of the spindle respond to the settings of the front
panel ' s override switches.

Program execution is suspended if the operator:

1. Presses HALT CYCLE .


2. Moves the Feedrate Override switch to 0% (spindle rota-
tion continues).
3. Pushes the EMERGENCY STOP button.

or if MO, MOl (optional stop), M02 is executed .

Program execution is stopped and the control is re-initialized if


the operator presses SHIFT HALT CYCLE.

4.43
JOG-IN-AUTO AND JOG- AND-RETURN

If the operator wishes to pause in the middle of a program, move


the tool away from the part and examine results, he should first
press HALT CYCLE. This will put the control in a HALTED state.

Selecting Jog from the Auto Operate page allows the axes to be
jogged in appropriate directions . (Refered to as Jog-in-Auto.)

If the operator wishes to return to the position left when the


program was halted, he should press START CYCLE twice. This will
rapid the Z axis up to its home position and move the X and Y
axes to their previous locations at 20 ipm. The Z axis then feeds
to its proper position and the program proceeds accordingly.
This is referred to as Jog-and-Return.

If the operator wishes to resume execution at the jog position,


he should press SHIFT START CYCLE . The program will continue
from the new locaiton, but the operator should be aware that this
may violate machine limits due to the requirements of the
program.

4.44
5. INPUT/OUTPUT

This section describes the program input and output capabilities


of the Bandit III® CNC when it is properly interfaced to an
external data storage device. The external device may be one
which receives or transmits data in serial or parallel fashion.
The mode of transmi~sion may be RS232 or 20 rnA current loop
depending on system configuration at installation. The baud rate
of transmission is also set at the time of system installation.

Input/output coding may be in one of two international standards;


EIA RS 244-A (standard EIA code), or in RS 358 (ASCII code).

Each character in EIA code has odd parity; that is, it has an odd
number of positions representing each character. ASCII, on the
other hand has even parity. The control uses this parity dif-
ference initially to determine the code type during input, and
subsequently to check for parity errors, errors in coding, inva-
lid characters, or damaged media.

All part programs prepared externally on tape should begin with


a (%) character immediately followed by a carriage return
(treated internally as {#)). The control will read this initial
sequence to determine the code type, whether ElA or ASCII. Sub-
sequent coding on tape should conform to the characters, word
addresses, and data block formats pr~sented in this manual.

The following sections ~ill briefly describe input/output proce-


dures using the Danetics Cassette Interface with the Bandit® III
CNC.

PRELIMINARY CONNECTIONS - CASSETTE INTERFACE

Make the following cable and power cord connections:

1. Connect the I/O cable from the Cassette Interface to the RS


232 series D port at the rear of the Pendant Module.
2. Connect the MIC output of the Cassette Interface to the MIC
input of the cassette recorder.

3. Connect the EAR output on the Cassette Interface to the EAR


(or AUX) output on the cassette recorder.

4. Plug the Cassette Interface power cord into a power outlet


and plug the cassette recorder into . the,outlet of the rear
of the Cassette Interface.

Here are a few helpful guidelines for recording an output program


with a cassette recorder.

a. Use only high quality digital or audio cassettes; shorter


tapes are better, digitally certified C-10 tapes are ideal.

5.1
r
I

b. Always record at least a few seconds of leader i n front of


any program to allow the Cassette Interface to synchronize
itself. This will avoid noise associated with turning the
the recorder on and off.

c. Use tape well into the cassette . The tape at the ends of the
cassette is subject to more stress and wear.

d. Since recording times are generally short, it is good prac-


tice to make several back-up copies of the program on the
tape as a precaution.

5.1 PROGRAM OUTPUT

To output a program from Bandit III CNC memory , the Program


Output page must first be selected by pressing the F5 soft-key on
the Mode Select page . The Program Output page is shown in figure
5-l.

IPROGRAM OUTPUT I EIA IASCI I I

CONTOUR DIRECTORY
~Program 2 NEXT PROG
Characters 708 SERI AL PUNCH
PARALLEL PU NCH
CASSETTE

Figure 5-l: Program Output Page

The process of output beg i ns with the specification ' of the P


number of the desired program. The cursor is shown to the left
of Program, and the appropriate P number is keyed-in from the
keyboard f o llowed by ENTER. When the P number is given, the
program name (if any} will appear along with the number of
characters in the program.

The user may examine the program directory by pressing the F4


soft-key. Programs in memory can be sequentially accessed by
pressing the F5 soft-key, NEXT PROG.

5. 2
Prior to output, the user should spec1fy the output code, either
EIA or ASCII, with the Fl soft-key. The code that is currently
selected is shown in highlighted video.

After selection of the required code, the method of output is


chosen by pressing F6 (SERIAL PUNCH-PAPER TAPE), F7 (PARALLEL
PUNCH-PAPER TAPE), or FB (CASSETTE). When one of- these methods
is selected, an output page will be displayed. Assuming that
CASSETTE, FB, has been pressed the Cassette output page will be
shown (see figure 5-2).

!CASSETTE! START

CONTOUR
[21 Program 2

Characters 708

Figure 5-2: Cassette Output Page

Before beginning output, manually advance the cassette tape to


about 3 counts before the position at which you wish to have the
program recorded. Then press RECORD and PLAY on the cassette
recorder and allow the tape to advance to the desired position .
At the appropriate time, press the START soft-key, Fl on the
Cassette Output page. The message "Outputting Program" will
appear while output is in progress. Output proceeds at 240
characters/sec. When finished the message "Output Completed'"
will be displayed. A back-up copy of the program can be made by
pressing the START soft-key once more. Push the STOP button on
the cassette recorder when sufficient copies of the program have
been made.

If errors are encountered during the output process, the system


will show flashing messages regarding the type of error detected.
Press the EXIT key to clear the error message and take
appropriate action to remove the error producing condition.
(Appendix A contains system messages and their meanings.) Begin
the output process again by properly setting up the cassette
recorder.

5.3
5.2 PROGRAM INPUT

Program input from an external device is effected from the


Program Entry page discussed in section 4.4 . The Program Entry
page is accessed by pressing the F3 soft-key on the Mode Select
page and is shown in figure 4-10 .

The Program Entry page offers a selection of SERIAL LOAD (F6),


PARALLEL LOAD (F7), and CASSETTE (F8).

Before beginning a program input , select a P number for the


program that is to load . This may require the previous program
in memory to be deleted~ otherwise the loading program may "load
over" the old program with adverse results in coding .

Prior to starting the loading process from a cassette recorder ,


advance the cassette tape to slightly before the recorded posi-
tion of the program on tape. Press the PLAY button on the cas-
sette recorder, then immediately press F8 , CASSETTE followed by
the START soft- key on the Cassette In p ut page. During input the
message "Loadi ng Program• wi l l be shown. When loading 1s suc-
cessfully completed "Load Complet e " is displayed.

The Cassette Input page will be shown as illustrated i n figure


5-3 .

!CASSETTE I START

*NEW PROG *
[2] Program 2

Characters 0

Available 13131

Figure 5-3: Cassette Input Page

The Cassette input page shows the number of characters available


f o r storage in memory . It is important that the loading program
not exceed this capacity. *NEW PROG* is shown when loading a
program into memory along with the P number selected on the
Program Entry page.

5.4

.........
~--

If errors are detected during input the control will show


appropriate error messages, one of which may be "BAD LOAD, RETRY""
(Appendix A gives error messages and their meanings). In this
case, the load should be re-initiated. It may be necessary to
return to the Program Entry page to delete a partially loaded
program. If the second attempt also results in an error, try
setting the tone and volume controls on the cassette recorder to
their maximum settings.

5.5
6. ADVANCED PROGRAMMING

This section presents some advanced programming concepts derived


from the features implemented within the Bandit® III CNC. Using
these concepts is not essential to correctly program a part, but
once they are understood the task of programming can be greatly
simplified in certain circumstances.

6.1 POLAR COORDINATE PROGRAMMING

Polar Coordinate Programming is useful when positioning is


required to or along known angles. Angles are defined with
respect to known locations, such as the current position of the
tool, or some locatable center point. Polar positioning is valid
within the XY plane of movement only.

The movement of the machine axes to or along an angle is deter-


mined by a "vector". A vector has direction and magnitude. Its
direction is its angular orientation in space combined with the
sign of its length. Its magnitude is simply its length. To des-
cribe a vector, and program a move, the control must be given an
angle, and a length. The result depends on the way in which the
vector is describe~ within the polar positioning system.

The polar positioning sy&tem is showrt ih figure 6-1. The control


allows the programmer ~o "mix" a mathematic polar system with a
rectilinear system of ~oordinates. Thus, angles and lengths can
be described with XY coordinate values, with angular values and/
or with radial length values.

UPPER CASE = ABSOLUTE


lower case :: incremental

+ CENTER, VECTOR ORIGIN

0 INITIAL TOOL POSITION


q.X
e END POINT
/~

cct,c+
/
/
/ IF I,J:: XO, YO
~RI.5 C30.
R-1.5 C-150.- Xl.299 Y.75
R 1.5 c- 330.
R-1.5 C210.
CW A-,C-
1J
/
,-/' I
..,."' I
~"" I .... .....
~... ·I ..... .....
J I
....
I
I
I
L ___ - - - - - - - - - - ---or------'L---4•~ X+

- Figure 6-1: Polar Positioning System

6.1
Note in figure 6-1 that the description of a point with polar
coordinate values (R and C) can be accomplished in four different
ways, where as the rectilinear system defines this point in only
one way.

In general, coordinates of center points are described with I


and J. These values in X andY locate the origin of a vector
that is not at the initial tool position. (A vector may also
originate at the current tool position with the RA polar command.
See section 6.1 . 3.) The mode of positioning for I or J may be
Absolute (G90) or incremental (G91), describing coordinates in X
and Y or positions from the current tool position, respectively.
NOTE: In figures throughout this section, when
an Absolute parameter is indicated, it
will be shown with an upper case letter.
If the parameter is incremental, it will
be shown with a lower case letter.
The angle of a vector is described ·with C or A values. The C
value describes an angle that originates at an IJ point~ a center
location that is not the current tool position. The A value des-
cribes the angle of a vector originating at the current tool
position. Angular values that are measured counterclockwise are
considered positive, those measured clockwise
.... . are negative. The
range of angular measure is± 360.000°.

c and A may be Absolute or incremental. When c is Absolute, the


angle is measured with respect to the positive X axis extending
from the IJ center point. When C is incremental, the angle is
measured from an imaginary line extending from the IJ center
point to the initial tool position . When A is Absolute, it is
measured from the positive X axis extending from the initial tool
position. When A is incremental, the angle is measured from an
imaginary line that is the extension of the previous move passing
through the initial tool position.
R describes a radial length value which can be positive or nega-
tive, Absolute or incremental. When R is positive, it describes
a radial length along the specified angle. When R is negative
it describes a radial length extending 180° from the specified
angle. An Absolute R value is one extending from the IJ center
point to the desired end position. An incremental R extends from
the initial tool position (or .·its rotated angular position) to
the desired end position.

There are four basic polar positioning commands provided with Cl


firmware. Each command is discussed separately in the subsec-
tions that follow.

6.2
6.1.1 CIJ COMMAND

The CIJ polar command is used to position the XY axes from an


initial tool position to a point of intersection with an angle.
The intersection point on the angle is one which equals a radial
length from the angle origin to the initial tool position. The
angle is specified with a C value and the origin of the angle is
specified with I and J. C, I, and J may be defined as Absolute
or incremental. The positioning codes that can be used are:

GOO - Rapid positioning mode


GOl - Linear positioning mode
G02 - Circular interpolation clockwise
G03 - Circular interpolation counterclockwise
G73 - Point-to-point positioning
The parameters of the CIJ command are illustrated in figure 6-2.

+ CENTER
0 INITIAL POSITION

• END POINT
"G02

/
' / ./ '

/
/
/
/

~'
\:/
/
\ GOO
GOt
"
"~ c• G73
/ \ G03
I,J~ - - • x+
' c•
I ',j
I , r,
i I ':!J
I ' ',
''
I ''
L-- -- --- -- - - ~
i
/
~ G02

Figure 6-2: CIJ Polar Command

The CIJ command 1s programmed as :

G CIJ

where:

C- programs an angle measured from the . positive X axis extending


from the angle origin in Absolute (G90), or the angle as
measured from an imaginary line extending from the angle
origin to the initial tool position in incremental (G91).

I - specifies the X coordinate of the angle origin in Absolute


(G90), or the X axis direction and distance from the initial
tool position to the angle origin in incremental (G91).

6.3
J - specifies the Y coordinate of the angle origin in Absolute
(G90), or theY direction and distance from the initial tool
position to the angle origin in incremental (G91).

Figure 6-3 gives a few examples of CIJ polar programming.

/
/
X2 .7906
/ V3.7906
il.
XI. ::::-----,
V3.5
5 /

'?';2~'t
,.(, GOI
J J:2 . . . C4~'
\ J3. \ J 3 · 1' '!c75.565
cl46.565 \ C-60. . 51
J. I
~ ......_ ......_

~ L __ - - -
i-1.
X3.
V2.5

G90# G90#
G02 C-60. I2. J3.
(ABSOLUTE)
'**- GOI C45. I2. J3. #
(ABSOLUTE)
OR ·, OR
G91 # G91 #
G02 cl46 .565 il. j -.5# GOI c75.565 i-1. j.5 #
(incremental) (incremental)

L9
X2 .1414
Y4 .3435

L3

L2

G90#
G91 C#-
GOI c-15. I2. J3. L9 #
(incremental c with repeat)

Figure 6-3: CIJ Command Examples

6.4
6.1.2 RIJ COMMAND

The RIJ polar command positions the XY axes along an angle


defined by a line extending from the angle origin (an IJ center
position) to the initial tool position. It essentially sub-
tracts from or adds to the line defined by these two points.
R, I, and J can be individually defined as Absolute or incremen-
tal. The positioning codes used with the RIJ command are:

GOO - Rapid positioning mode


GOl - Linear positioning mode
G73 - Point-to-point positioning

The RIJ command parameters are illustrated in figure 6-4.

Figure 6-4: RIJ Polar Command

The RIJ command is programmed as:

G RIJ

where:
R - specifies a radial length value measured from the angle ori-
gin to the desired end point in Absolute (G90), or measured
from the initial tool position to the desired end point in
incremental (G9l).

I - specifies the X coordinate of the angle origin in Absolute


(G90), or the X axis direction and distance from the initial
tool position to the angle origin in incremental (G9l).

J - specifies the Y coordinate of the a.n gle origin in Absolute


(G90), or theY direction and distance from the initial tool
position to the angle origin in incremental (G9l).

Figure 6-5 shows examples of RIJ programming.

6.5
X3.5251
Y4.41149

I
'2 l
J 'I
I
X6.
Y2.

G90 # G91#
GOI R-3.5 I4. J4. # GOI r-3.5 i-2. j2.**-
(ABSOLUTE) ( incremental)
OR OR
G90 # G90 #
G91 I J # G91 R #
GOI R-3.5 i-2. j2. # GOI r -3.5 I4. J4. #
(incremental i, j) (incremental r)

~ _AX7.
r-1.~
/ \ , j Y5.7
R 2. 4482 .,.- ...- _,XS.I 3 :
/ Y5.207 I j-1.7
// I
I4.¥-------J
J4. i-3.

G90 # G90 #
GOI R5. I4. J4. # GOI R2.4482 I4. J4. #
(ABSOLUTE) (ABSOLUTE)
OR OR
G91# G91#
GOI r 1.5518 i -3. j -1.7 # GOI r-1. i-3. j-1.7 #
(incremental) (incremental)

Figure 6-5: RIJ Command Examples

6.6
6.1.3 RA COMMAND

The RA polar command positions the XY axes from the initial tool
position along a straight line to an end point defined by an
incremental radial length and an angle. The R radial length
should always be defined as incremental prior to execution of
the RA block. The angle A can be defined as either Absolute or
incremental. When A is Absolute, the angle is measured from the
positive X axis extending from the initial tool position. When
A is incremental, the angle is measured from an imaginary exten-
sion of the previous move passing through the current tool posi-
tion. Thus, if A is incremental, movement must be programmed
prior to execution of the RA block.

Positioning codes which are valid for the RA command are:

GOO - Rapid positioning mode


GOl Linear positioning mode
G73 - Point-to-point positioning

Figure 6-6 gives a representation of RA command parameters.

Figure 6-6: RA Polar Command

The RA command is programmed as

G RA

where:

R - programs a radial length from the initial tool position to


the desired end point. R is always established as incremen-
tal {G91) prior to execution of the. RA block.

A - specifies the angle from the initial tool position to the


desired end point. In ~bsolute {G90) mode, A is measured
from the positive X axis extending from the initial tool
position. When incremental {G91), A is measured from an
imaginary extension of the move preceeding the RA block .

Figure 6-7 gives several examples of the RA polar command.

6.7
X 1°8660
y 2°5000
XI. 0
Y20 ~-150

G91 R # r<o X2o9319


y 1.4824
f
~
G90 A# ----- G91 RA'#
GOI r2.0 A-l 5 o# GOI rl. a 45
(ABSOLUTE A) (incremental a)
0

f\
r2 o a60. \
Ll

r2o r 20
L2

'

L3
r 20

L4
r 20
\
\ a600
G91# '{
GOI XI. #
r2o al20o#
r 2° a 60
0 L50
(incrementa I r 'a # repeat)
weth

RA C .
Figure 6-7: ommand Examples

6.8
6.1.4 RCIJ COMMAND

The RCIJ polar command moves the XY axes from the init1al tool
position along a straight line to an intersection with an angle.
The angle is defined with a C word and is measured from the ini-
tial tool position in incremental (G91) or from the positive X
axis extending from the angle origin in Absolute (G90). The
origin of the angle is defined with I and J values. The inter-
section point with the angle is defined with an R word which
represents an offset value from an imaginary intersection point.
The imaginary intersection on the angle is equal to the length
of a radius extending from the angle origin to the initial tool
position . When R is Absolute, the real intersection with the
angle is measured from the angle origin. When R is incremental
it is measured from the imaginary intersection point. R, C, I,
and J can be individually defined as Absolute or incremental.
Positioning codes that are valid for the RCIJ command are:

GOO - Rapid positioning mode


GOl Linear positioning mode
G73 - Point-to-point positioning

Figure 6-8 graphicaLly presents the parameters of the RCIJ com-


mand.
+ CENTER
0 INITIAL TO OL POSITION

Figure 6-8: RCIJ Polar Command

The RCIJ command is programmed as:

G RCIJ

where:
R - programs a radial length from the angle origin (IJ defined
center point) to the end point in Absolute (G90) or a radial
length from the imaginary intersection with the angle to the
end point in incremental (G91).

C - programs an angle measured from the positive axis extend1ng


from the angle origin in Absolute (G90), or the angle as
measured from an imaginary line extending from the angle
origin to the initial tool position in incremental (G91).

6.9
I - specifies the X coordinate of the angle origin in Absolute
(G90), or the X axis direction and distance from the initial
tool position to the angle origin in incremental (G91).

J - specifies the Y coordinate of the angle origin in Absolute


(G90), or the Y direction and d1stance from the initial tool
position to the angle origin in incremental (G9l).
RCIJ command examples are given in figure 6 - 9.

;--·
.._
"' .,..,
I '-

~ 1x3.7016 '--,
X-2. , 1 Y6.6792 \
Y4.
,------ -, i3. Q>l \
I '~Jtol \
~-
I ', I ~~ \

I""__L_J \
I ' lj - 2 .
', I
I /', I II. / ' c98.660 I
I I ' I J2. I I C60.
c78.690 Jt-~-- 1.~'
J2. I
I
\ \/~C-135 . I ', I
/
I ...._' I
\ / j4.1 , , I
~./
\ ~/
I .....
\
/ L ___·,._ _ _ _ _ _:: ::: I X6.
/

X-1. 8284
' / /
i - 5. Y-2 .

Y-.8284 /'-.{
~r . 3944

G90# G90.#
GOI R4. C-135. II. J2 GOI R5.4031 C60 . II. J2.#
(ABSOLUTE) (ABSOLUTE)
OR OR
G91 # G90 #
GOI r.3944 c 78. 69 i3. j-2. G91 R#
GOI r-1. C60. II. J2.
(incremental) (i ncremental r)

~30.
A

G91 #
G90 IJ #
GOI X. 6 #
GOI r. 05 c30. IO JO L 36 #
(incremental rand c with repeat)

Figure 6-9: RCIJ Command Examples

6.10
6.1.5 POLAR PROGRAMMING EXAMPLES

Most parts can be programmed using polar techniques, but it is


adv isable to use polar programming only when it is convenient or
yields better results than conventional ~ethods.

Polar programming is most useful when working with known radii


and angles. For example, the following program generates the
part path shown in figure 6-10.

DATA BLOCK COMMENT

:POLAR# Comment block designating program name

G99 # Cancel any previous position preset.

G90 # Establish Absolute mode


GOO X-10 . Y-4 . Z-.5 # Rapid to program start point from
Machine Zero (point A).
G92 X2. YO ZO # Preset position of point A and establish
Program Zero .

GOl Z-1. FlO . # Feed to depth


.,
C45. IO JO # Move A to B at 10 ipm

Rl. 5 IO JO # B to C

Rl.625 Cl20. IO JO# c to D

G03 Cl80. IO JO # D to E

C-135. IO JO # E to F

Rl. 5 C-45. IO JO # F to G

R2. IO JO # G to H

G03 co IO JO # H ·to A

GOO zo # Rapid Z up

G99 xo YO zo # Cancel position preset and return at


rapid to Machine Zero.

M02 # End of program

6.11
/
1.5 R

I. 625 R

E START

2.0 R

0 = XO YO
A= X2. YO

Figure 6-10: Polar Programming Example

It can be readily seen that us1ng polar programming for the pre-
ceeding example results in a short and simple program. The pro-
gramming process itself was shortened by not having to calculate
part coordinates. The part was programmed by knowing angles
radii n.nd the center of the part. This was, of course, an over
simplified example but the advantages of polar programming in
certain situations should be clear.

CIRCULAR SHAPES USING POLAR LINE SEGMENTS

It is poss1ble to generate a c1rcular shape using a series of


small linear moves. In fact, this is the method a CNC uses to
make arcs . The separate linear moves are generally so small
that they are not apparent. The result is "circular interpola-
tion."

_In figure 6-11 , a typical c1rcle is shown and a distorted enlarge-


ment of a 4° sector is given. In general terms, if R is the
radius of an arc, and C is the interior angle of a sector of the
arc, L 1s the length of the chord within the sector.

6.12
When an arc is generated with a series of chords having length
L, the amount by which the chord approximation differs from the
true arc is represented by the chordal error, e.

e = R - l R2 - (L/2) 2

Figure 6-11 gives the chord length, L, and the chordal error, e,
for the circle radius and sector angle shown. The value for e
given by the above equation is a "worst case" approximation.
Since the control uses continuous path motion (G01-G03) the
resulting chordal error will be somewhat less as the arc is
generated.

1.5 R

'-SECTOR DISTORTED
BELOW

R = CIRCLE RADIUS
C = SECTOR ANGLE
L = CHORD LENGTH
CHORDAL ERROR, e

L= 2Rsin(f) = 2(1.5)sin ( : ) = 0 . 1047

e=R-~R 2 -(~) 2 = 1.5~1.5 2 -( 0 ·~47) 2 =0.0009

Figure 6-11: Circle Generation with Line Segments

The following program generates the circle shown in figure 6 - 11


using 4° sectors and linear moves.

6.13
DATA BLOCK COMMENT

;LIN CIRC# Program name

G99 # Cancel any previous position preset

G90 # Establish Absolute mode

GOO X-10. Y-4. z- . s # Rapid to start point (point A)

G92 Xl. 5 YO ZO # Preset Absolute pos1tion and establish


Program Zero

G91 c # Set C to incremental

GOl Z-1. FlO. Feed to depth

C4. IO JO L90 # Generate circle with linear -moves at 10


ipm; 4° sector angle, center at XO YO,
execute move 90 times (4° x 90 = 360°
for full circle)

GOO ZO # Rapid Z up

G99 XO YO ZO # Cancel preset ~nd rap1d to Machine Zero

M02 # E\lld of program

Note in figure 6-11 that the chordal error for the example circle
is 0.0009". A typical value for maximum chordal error used by
the control for its circular interpolation routine is 0.0002".
So, why use this method? There are se v eral reasons:

1. With proper programming, the maximum chordal error, e, and


segment length, L, can be control and varied.

2. In some situations, a better surface finish can be obtained


using the line segment method versus circular interpolat1on.

3. Arcs generated with the line segment method can be scaled


differently in the X and Y axes to yield elliptical shapes.
Circular interpolation arcs cannot be scaled differently
in X and Y.

Suppose that a 4 inch radius circle is to be milled. Us1ng cir-


cular interpolation w1th the control's maximum chordal error set
to 0.0002" each chord length, L, will be:

(R

= 2 42 - (4 .0002)2

= 0. 08" (max)

6.14
NOTE: The control actually generates a fixed
number of chords for a given range of
radius values using binary man1pulations.
The number of chords in this range is
805 resulting in a chord length of approx-
imately 0.06" with execution at a maximum
possible feedrate of roughly 400 ipm.

Assuming that 0.08" chord length is undes1rable, the alternative


is to choose an appropriate chord length and use the polar line
segment method.

Choosing a maximum chord length of 0.02", the following values


are obtained:

C = 2 sin-1 (L/2R) e = R (L/2)2

= 2 sin-1 (0 . 02/2(4)) =4 (0.02/2)2

= 0.0000125" ( 1)

To program the arc, C multiplied by an integer must equal 360°.


So, for this example , choose c less than 0.286°, e.g. 0.24°,
resulting - in 360°/0 . 24° = 1500 executions around the circle. A
repeat loop with a subprogram call w~ ll deliver the required
number of exe-cutions . The resulting program might be:

Pl

G9l C # incremental C
P2 L6 # executes P2 si x times

NOTE: P2

GOl C.24 IO JO L250 # does 1 / 6 of


the circle

M02 #

GOO ZO #
G99 XO YO ZO #
M02 #

The maximum feedrate for execution of this circle is roughly


20-25 ipm due to required processor time. A trade-off 1s evident:
accuracy versus speed. It also may not be possible to use cutter
radius compensation on a line segment arc, so the programmer must
weigh the options available.

6.15
ELLIPTICAL SHAPES WITH SCALING

Elliptical shapes can be generated by scaling polar line segment


arcs differently in X and Y. Arcs programmed with circular
interpolation, on the other hand, must be scaled identically in
X and Y for correct execution.

Suppose that a 3 inch minor axis ellipse with its center at XO


YO and foci at X-2. and X2. 1s desired as shown in figure 6-12.

1
b=l.5

2.0

--~~-------------- 4-
2.0

--------------~~-­
j_
'START
xo
YO X2.5
YO

a= 2.5 ---~..

Figure 6-12: Ellipse Programming Example

By properly scaling the X axis for the circle in figure 6-11,


this ellipse can be produced.

First of all, the correct amount of scaling for X must be found.
The following equations are found in most good reference books.

minor axis = 2b

major axis = 2a

d1stance from center to focus = a2 b:2 = 2

2 a2 L s:2

2.5 =a

•. the ratio of a to b gives the scaling necessary on the X axis if


the Y axis is scaled as 1.0000.

6.16
a = 2.5 = 1.6667
b 1.5

The program to generate the ellipse in figure 6-12 might be:

DATA BLOCK COMMENT


;ELLIPSE# Program name
G99 # Cancel previous position preset

G90 # Establish absolute mode


GOO X-10. Y-4. z-.5 # Rapid to start point of ellipse from
Machine Zero
G92 X2.5 YO ZO # Preset pos1tion and set Program Zero
GOl Z-1. FlO. Feed to depth at 10 ipm.

G91 c # Set C incremental

G72 Xl.6667 # Set required scaling on X

C4. IO JO L90 # Produce ellipse at 10 ipm; center at


XO YO; 90 11ne segments in 4 degree
increments

G72 # Turn scaling off

GOO ZO # Rapid Z up

G99 XO YO ZO # Cancel position preset and return to


Machine Zero at rapid.

M02 # End of program

Of course, many more possibilit1es exist for producing various


shapes by scaling line segment arcs.

SPIRALS

Spiral patterns can be easily produced using polar line segment


arcs in conjunction with RCIJ programming.

To produce a spiral using RCIJ, define R and C as incremental


and repeat the block any desired number of times. The value
programmed for R times the number of executions in one revolution
equals the lead of the spiral:

spiral lead =R x L per rev

C is programmed in degrees for one revolution so:

360/C = L per rev

6.17
C should be chosen so that when execut1on is at the spiral's
largest radius, movement is still approximating a circle to the
desired degree of prec1sion. A subprogram call may be need to
achieve the total required number of spiral revolutions. (See
the discussion of polar l1ne segment arcs, above.)

I and J should be defined as Absolute and locate the sp1ral


center.

The following example program produces the spiral in figure 6-13.

DATA BLOCK COMMENT

;SPIRAL# Program name

G99 # Cancel any previous position preset

G90 # Establish Absolute mode

GOO X-10. Y-4. z-.s # Rapid to the spiral center

G92 XO YO zo # Preset Absolute posit1on and set Program


Zero

GOO X.4 # Rapid to spiral start point


'
GOl Z-1. FlO. # F~ed to depth at 10 ipm

G91 RC # Set R and C incremental

P2 L6 # Call P2 to produce one sp1ral revolution


and execute 6 revolutions (see P2 below)

GOO zo # Rapid up from work

G99 xo YO zo # Cancel position preset and rapid to


Machine Zero

M02 # End of program

P2

;ONE REV# Program name

GOl R.004 C3.6 IO JO Produce one spiral revolution at 10


LlOO # ipm; lead 0.4" (RxL), 3.6° per l1ne
segment, 100 segments per revolution

M02 # End of subprogram

6.18
END
X2.8
YO

SPIRAL - 0 .4" CONSTANT LEAD

Figure 6-13: Constant Lead Spiral

NOTE: The programmer should be aware of possible accumula-


tive error in position due to round-off when producing
polar spirals.

Several methods can be used to alter the shape of a constant


lead spiral . By scaling the X and Y axes differently, the spiral
can be made eliptical in shape. Also, with appropriate scaling
in a subprogram (such as P2 above) spirals with constantly
increasing or decreasing lead can be produced. And , of course,
spirals can be formed from the outside toward the center by
programming a negative R and starting at an appropriate point.

CONCLUSION

This discussion has only briefly touched on some of the aspects


of polar programming. There are many other situations in which
the programmer can take advantage of this capability. Polar
programming is not for every situation, but is a handy and simple
solution for special cases .

6.19

You might also like