Macro " B " Programming: Makino Asia Pte LTD Application Department [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Macro “ B ” Programming Makino Asia Pte Ltd Application Department

1

Description This course is designed to enable the programmer to use the control’s powerful Macro programming feature on milling machines Students will lean to read and write repetitive machining cycle Will understand the components of the macro body and the meaning of the macro call command like G65, G66 and G67 2

Back to basic = Speed & Feed The consideration for determining speeds and feed are changing The charts provided are based on actual machining experience utilizing cutting techniques

3

Spee =

V * 318 Dia

or

V * 1000 Dia * π

( 3.1412 )

End Feed = Speed * no of tooth * Feed per tooth Drill Feed = Speed * Feed per Revolution Tap Feed = Speed * Pitch 4

Chip Thickness Feed per tooth

Diameter of cutter

Chip Thickness depend on Ad = depth of cut, Rd = width of cut, Sz = feed per tooth

Depth of cut Chip Thickness 5

Feed Per Tooth & Feed Per Revolution

6

Calculation of Speed & Feed If Ball nose

Cutting speed Feed per tooth Answer is Speed

= 10 mm ( 2 teeth ) = 200 m/min ( V ) = 0.1 mm ( Sz ) = 200 * 318 / 10

= 6360 ( rpm ) Feed = 6360 * 2 * 0.1 = 1272 mm/min if feed reduce to 50% mean F636, Sz = 0.05 7

Up Cut & Down Cut

No M

e g a m I irror 8

GROUP PROGRAM Example O3200 ( Main Program ) like O1000, O100 O3201 ( Sub Program ) O3202 ( Sub Program ) O3203 ( Sub Program ) Use O3200,O3203 Delete Use O3200,O3203 Punch 9

Statement Example #1 = 123.

Answer

#2 = #1

123.

#3 = #2 + 10

133.

G01 X10. F#3

F133.

#4 = 123.4567 G00 X#4

123.457

G04 P#4

123.

G04 X#4

123.457 sec alarm occur 133.

G#3

sec

10

Arithmetic Expression Answer

if #1 = 8. # [ #1 ]

#8

if #1 = 10. # [ 100 + #1 ] = 123.

#110

= 123.

# [ 10 + #110 ] = #1

#133

= 10.

#100 = #133 + #110

#100

= 133.

#[ #133 ] = #[ #100 ] + #1

#10

= 20.

11

Arithmetic Operation Commands I #1 = 123. #1 = #2 + 10. #1 = #2 - 10. #1 = #2 * 10. #1 = #2 / 10. #1 = SIN [ 90 ] #1 = COS [ 90 ] #1 = TAN [ 90 ] #1 = ATAN [ 1 ] / [ 1 ]

#1 = #2 #1 = #2 + #3 #1 = #2 - #3 #1 = #2 * #3 #1 = #2 / #3 #1 = SIN [ #2 ] #1 = COS [ #2 ] #1 = TAN [ #2 ] #1 = ATAN [ #1 ] / [ #2 ]

12

Differ Control For ATAN

( unit = degree )

#i = ATAN [b] / [a] #1 = ATAN [1] / [1] #2 = ATAN [-1] / [-1]

Y 45. ( 0M-15M ) 225. ( 0M ) -135. ( 15M )

#2 = ATAN [-1] / [1]

315. ( 0M )

#2 = ATAN [1] / [-1]

135. ( 0M-15M )

#2

#1

a

b X

-45. ( 15M )

13

Arithmetic Operation Commands II #1 = SQRT [ #2 ]

If #2 = 2

#1 =

Answer 1.4142

#1 = ABS [ #2 ]

#2 = -1.23

#1 =

1.23

#1 = ROUND [#2]

#2 = 1.234 #2 = 1.5436

#1 =

1.0

#1 =

2.0

#1 = FIX [#2]

#2 = 1.234 #2 = -1.634

#1 =

1.0

#2 = 1.234 #2 = -1.634

#1 =

#1 = FUP [#2]

#1 = - 1.0 2.0

#1 = - 2.0 14

Case function of “ROUND” If #1 = 12.3456

Case

X[ ROUND[#1] ]

#12 = 5.1236

or

G91 G00 X#10

X#1

X#12

= 12.376 = 5.124

Answer is

X[ #10 + #12 ]

= 17.499

Axis move X12.346

#10 = 12.3758

Answer

12.3758 + 5.1236 = 17.4994 15

Example function of “ROUND” Example #10 = 12.3758 #12 = 5.1236 X-[ ROUND[#10] + ROUND[#12] ] or #10 = ROUND [ #10 * 1000 ] / 1000 #12 = ROUND [ #12 * 1000 ] / 1000 X-[ #10 + #12 ]

Answer X -17.50

X -17.50

16

Learning Activity If #100 = 11. #101 = 25. #102 = -1.2345 #103 = 2.3456 #104 = ABS [#102] #105 = ROUND [#103] #106 = FIX [#102] #107 = FUP [#102] #108 = #100 + #101 #109 = #101 - #102 G91 G00 X#102 X#103 X- [#102 + #103]

Answer = 1.2345 = 2.0 = - 1.0 = - 2.0 = 36.0 = 26.2345 move X-1.234 move X 2.346 move X-1.111 17

Empty Variable “ #0 “ “ #0 ” mean Empty or Vacant “0”

is a Value

Example :#100 = #0 #102 = 0

Answer

G90 G1 X#100 F500

Axis no move

G90 G1 X#102 F500

Axis move X0

18

Repeat Function ( IF ) IF / GOTO Statement N1 IF [ #1 GT #2 ] GOTO 2 Not OK #1 = #1 + 1

Condition EQ NE

GT

GE

LE

LT

OK

GOTO 1 N2 M99

19

Repeat Function ( WHILE ) WHILE / DO / END Statement WHILE [ #1 LT #2 ] DO1 OK #1 = #1 + 1

Not OK

END1 M99 20

Rules For DO and END DO 1

DO 1

GOTO 1

GOTO 10

DO 2

DO 1

END 1

END 2

N1

N 10

END 1

END 1

Use Do / END without condition 21

Exercises 1 ( IF condition ) #1 = 1 N1 IF [ #1

Answer GT what happen GE

10 ] GOTO 2

Process

#1 = #1 + 1 GOTO 1 N2 M30 22

Exercises 2 ( WHILE condition ) #1 = 0 WHILE [ #1

Answer LT

10 ] DO 2

Process

#1 = #1 + 1 END 2 M30 23

Exercises 3 ( Clear by IF ) % O100 ( IF ) #1 = 100. ( START ) #2 = 110. ( END ) N3 IF [ #1 GT #2 ] GOTO 7 # [ #1 ] = #0 #1 = #1 +1 GOTO 3 N7 M30 %

#100 = #0 #101 = #0 #102 = #0 #103 = #0 #104 = #0 #105 = #0 #106 = #0 #107 = #0 #108 = #0 #109 = #0 #110 = #0 24

Exercises 4 ( Clear by WHILE ) % O100 ( WHILE ) #1 = 100. ( START ) #2 = 110. ( END ) WHILE [ #1 LE #2 ] DO1 # [ #1 ] = #0 #1 = #1 +1 END1 M30 %

#100 = #0 #101 = #0 #102 = #0 #103 = #0 #104 = #0 #105 = #0 #106 = #0 #107 = #0 #108 = #0 #109 = #0 #110 = #0 25

Exercises 5 ( Rewrite Tool Pot ) O100 ( REWRITE TOOL POT NUMBER ) / M57 ( TOOL NUMBER WRITR) / T00 ( CLEARING TOOL NUMBER ) / M30 M57 #1 = 1 WHILE [ #1 LT 60 ] DO1 T#1 #1 = #1 + 1 END1 M30

Pot 1 = T1 Pot 2 = T2 Pot 3 = T3 Pot 4 = T4 . . . . . Pot 60 = T60 26

Exercises 6 #101 #102 #103 #104 #105 #106 #107 #108 #109 #110

= 1.000 = 1.414 = 1.732 = 2.000 = 2.236 = 2.449 = 2.646 = 2.828 = 3.000 = 3.162

(1) (2) (3) (4) (5) (6) (7) (8) (9) ( 10 )

Using WHILE condition and ROUND + SQRT command

27

Exercises 6 ( ROUND + SQRT ) #101 = 1.000 (1) #102 = 1.414 (2) #103 = 1.732 (3) #104 = 2.000 (4) #105 = 2.236 (5) #106 = 2.449 (6) #107 = 2.646 (7) #108 = 2.828 (8) #109 = 3.000 (9) #110 = 3.162 (10)

O100 ( SQRT ) #1 = 101. ( START ) #2 = 110. ( END ) #3 = 1. ( SQRT [ #3 ] ) WHILE [ #1 LE #2 ] DO1 # [ #1 ] = ROUND [ SQRT [#3] * 1000 ] / 1000 #1 = #1 + 1 #3 = #3 + 1 END1 M30

28

Exercise 7 ( Positioning ) O800 ( MAIN PROGRAM ) G90 G0 G54 X0 Y0 G43 H1 Z50. S1200 M3 G81 Z-1.5 R2. F100 L0 K0 M98 P801 G80 G91 G0 G28 Z0 M30 O801 ( LINE BOLT HOLE ) M99 29

# 21 * #

O801 ( LINER BOLT HOLE ) #24 = 50. ( X Position ) #25 = 30. ( Y Position ) #1 = 30. ( Angle ) #21 = 20. ( Distance ) #11 = 4. ( No Of Hole ) #30 = 0 ( Counter ) WHILE [ #30 LT #11 ] DO1 #4 = [#21* #30] * COS [#1] + #24 #5 = [#21* #30] * SIN [#1] + #25 G90 X#4 Y#5 #30 = #30 +1 END1 M99

30

Illustration ( Positioning cycle )

#5 ( Y )

#1 #4 ( X ) 30

Exercise 8 ( Drill Depth Cycle ) O800 ( MAIN PROGRAM ) G90 G0 G54 X0 Y0 G43 H1 Z50. S1200 M3 G0 X10. Y-10. M98 P803 G91 G0 G28 Z0 M30

R point Z0

Q

O803 ( DRILL DEPTH CYCLE )

d

M99 d = 1mm

Depth Z 31

Illustration ( Drill Depth Cycle ) O803 ( DRILL DEPTH CYCLE ) #26 = 20. ( Z = Depth ) #18 = 2. ( R = R Point ) #9 = 100. ( F = Feed Rate ) #17 = 1.5 ( Q = Depth Of Cut ) #33=0 ( Set ) G90 G0 Z#18 DO1 #33 = #33 + ABS[#17] IF [ #33 LT ABS[#26] ] GOTO 11 #33 = ABS[#26] N11 G90 G1 Z-#33 F#9 G0 Z#18 IF [ #33 EQ #26 ] GOTO99 G0 Z [ 1-#33 ] END1 N99 M99

R point Z0

Q

d

Depth Z

32

Type System Variable Tool Compensation Work Offset Macro Alarm Clock Information Auto operation control Model Information Position Information

#2001 ~ #2200 #5201 ~ #5328 #3000 #3001, #3002 #3003, #3004 #4000 ~ #4120 #5001 ~ #5065

33

Tool Offset ( Type A ) Offset 1 2

Variable No #2001 #2002 -

> 200 #10001 #10002

99 200

#2099 #2200

#10099 #10200

-

If Tool Number > 200 Use #10000 + offset no 34

Example Tool Offset ( A ) Use “ D “ Offset G90 G10 P31 R10. same #2032 = 5.2

Offset Page H16 H17

H31 H32

10.0 5.2

35

Tool Offset ( Type C ) Offset

H

D

Geometry

Wear

Geometry

Wear

1

#2001

#2201

#2401

#2601

2

#2002

#2202

#2402

#2602

200

#2200

#2400

#2600

#2800

999

#10999

#11999

#12999

#13999

( H ) G90 G10 L10 P2 R5. same #2002 = 5. ( D ) G90 G10 L11 P2 R4. same #2402 = 4. 36

Work Zero Offset G54 ( P1 )

#5221 ~ #5226

X, Y, Z, 4, 5, 6

G55 ( P2 )

#5241 ~ #5246

X, Y, Z, 4, 5, 6

G56 ( P3 )

#5261 ~ #5266

X, Y, Z, 4, 5, 6

G57 ( P4 )

#5281 ~ #5286

X, Y, Z, 4, 5, 6

G58 ( P5 )

#5301 ~ #5306

X, Y, Z, 4, 5, 6

G59 ( P6 )

#5321 ~ #5326

X, Y, Z, 4, 5, 6

External ( P0 ) #5201 ~ #5206

X, Y, Z, 4, 5, 6

37

Example Work Offset G90 G10 L2 P1 X- 230.0 Y- 452.032 Z- 450.123 same #5221 = - 230.0

(X)

P0

X 0.000 Y 0.000 Z 0.000

P1

X - 230.000 Y - 452.032 Z - 450.123

#5222 = - 452.032 ( Y ) #5223 = - 450.123 ( Z ) P1=G54, P2=G55, P3=G56 P4=G57, P5=G58, P6=G59

38

Model Information Variable

Code

Variable

Code

#4000~21 G code

#4113

M code

#4102

B code

#4114

Sequence no

#4107

D code

#4115

Program no

#4108

E code

#4119

S code

#4109

F code

#4120

T code

#4111

H code

#4130

G54.1 P1~48

Refer to Manual

39

G Code List Refer to Manual

Code

Group

Variable

G00, G01, G02, G03

01

#4001

G90, G91

03

#4003

G54, G55, G56 ~G59

14

#4014

G73, G76, G81~G89

09

#4009

G98, G99

10

#4010

Example : #27 = #4003 ( store G90/G91 Group 03 ) = 90 or 91 40

Position Information #5001 ~ #5066

Read during movement

Work coord.

Possible

#5001~

ABSIO

#5006

End block pos System

#5021~

ABSMT

Machine coord. Impossible

#5026

Current pos

System

#5041~

ABSOT

Work coord.

#5046

Current pos

System

#5061~

Skip Signal

Work coord.

#5066

G31

System

Impossible Possible

Refer to Manual 41

Example Machine Position G54

Machine Position

#5221

= #5021 ( X )

#5222

= #5022 ( Y )

#5223

= #5023 ( Z )

Machine Position X - 230.000 Y - 452.032 Z - 450.123

Transfer Machine Position Into Work Offset G54 WCS

42

Alarm Message #3000 #100 = #0 IF [ #100 NE #0 ] GOTO 100 #3000 = 140 ( DATA ERROR ) N100 M99 Less than 26 character n = 1 ~ 999

43

Clock #3001~#3002 Clock 1 Clock 2

#3001 #3002

Example 1 G65 P9010 T20. O9010 #3001 = 0 ( initial ) #20 = #20 * 1000 WHILE [ #3001 LE #20 ] DO1 END1 M99

1 msec. ( unit ) 1 hour ( unit ) Example 2 O1000 #3002 = 0 ( initial ) G0 X10. Y10. G1 X100 F500

#100 = #3002 * 60 ( min ) M99 44

Date / Time #3011~#3012 #3011 #3012

Year / Month / Day Hour / Minute / Second Example Date : 1987.5.20 #3011 = 19870520 Time : 4 : 17 : 05 PM #3012 = 161705

45

Parts Counting #3901~#3902 #3901 #3902

Total number of parts Required number of parts

O1000 #3902 = 50. ( required parts ) IF [ #3901 EQ #3902 ] GOTO 3000

GOTO 99 N3000 #3000 = 140 ( PART FINISH ) N99 M30 ( Initial Total part = 0 and the counter execution when M30 occurs ) 46

Single Block #3003 #3003 0 1 2 3

Single block Not suppressed Suppressed Not suppressed Suppressed

Function Awaited Awaited Not Awaited Not Awaited

#3003 = 1 ----- Deactivate single block stop control on panel G0 X10. Y10. G1 X100 F500 #3003 = 0 ----- Reactivate single block stop control on panel M99 47

Feed hold, Override, Exact stop #3004 #3004

Feed hold

Feed rate override

Exact stop check

0 1 2 3 4 5 6 7 : Effective 48

Model Call A ( G66, G67 )

O1000 ( MAIN PROGRAM ) G90 G54 G0 X0 Y0 G43 H1 Z50. S1000 M3 G0 Z5. G66 P1001 X80. Y60. Z5. F500 G0 X-150. Y35. G0 X100. Y70. 60 G0 X-30. Y-140. G67 G91 G0 G28 Z0 M30

X-150. Y35. 5 80 56

Sequence of G66, G67 G66 P1001 X80. Y60. Z5. F500 G0 X-150. Y35. G0 X100. Y70. G0 X-30. Y-140. G67 1 - read variable G66 P1001 X Y Z F 2 3 4 5 6 7 8

-

move position G0 X-150. Y35. call macro program O1001 back to and move G0 X100. Y70. call macro program O1001 back to and move G0 X-30. Y-140. call macro program O1001 back to G67 cancelled macro

#1 #2 #3 #4 #5 #6 #7 #8 #9 500. #10 #11 #12 #13 #14 #15 #16

#17 #18 #19 #20 #21 #22 #23 #24 80. #25 60. #26 5. #27 #28 #29 #30 #31 #32

57

Sample for Macro Body

O1001 ( SUB MACRO ) IF [ #24 * #25 * #9 * #26 NE 0 ] GOTO 10 #3000 = 140 ( DATA ERROR ) N10 #31 = #4003 ( G90,G91 ) G90 G1 Z - [ ABS [ #26 ] ] F#9 G91 G1 X #24 Y #25 X- #24 Y- #25 G90 G0 Z5. G#31 M99 58

Macro Call with “G” code Set parameter

☯ G65 P9011 X10. Y10. Z5. F500 same ☯ G102 X10. Y10. Z5. F500

O9010 -- #6050 O9011 -- #6051 -- 102 O9012 -- #6052 O9013 -- #6053 O9014 -- #6054 O9015 -- #6055 O9016 -- #6056 O9017 -- #6057 O9018 -- #6058 O9019 -- #6059

59

Macro call with “M” code Create O9020 program and use M6 to call tool change program ☯ G65 P9021 X10. Y10. M8. same ☯ M90 X10. Y10. M8.

Set parameter

O9020 -- #6080 -- 6 O9021 -- #6081 -- 90 O9022 -- #6082 -- 91 O9023 -- #6083 -- 60 O9024 -- #6084 O9025 -- #6085 O9026 -- #6086 O9027 -- #6087 O9028 -- #6088 O9029 -- #6089 60

External Output Command POPEN ( connection to I/O ) BPRNT ( output binary ) DPRNT ( output EIA or ISO codes ) PCLOS ( disconnection from I/O ) Command format POPEN DPRNT [ a #b [ c d ] ...] PCLOS No of digits below decimal point

No of digits above decimal point Variable Character

Refer to Manual 61

Printout Layout --- MAKINO --CIRCLE NO 12 +X 0.123 +Y 0.213 --- OK ---

-X 0.321 -Y 0.132

When #18 = 12 #120 = 0.123 #121 = 0.123 #122 = 0.213 #123 = 0.132 when #120 LE #1

62

Model Call A ( G66, G67 )

O1000 ( MAIN PROGRAM ) G90 G54 G0 X0 Y0 G43 H1 Z50. S1000 M3 G0 Z5. G66 P1001 X80. Y60. Z5. F500 G0 X-150. Y35. G0 X100. Y70. 60 G0 X-30. Y-140. G67 G91 G0 G28 Z0 M30

X-150. Y35. 5 80 56

Sequence of G66, G67 G66 P1001 X80. Y60. Z5. F500 G0 X-150. Y35. G0 X100. Y70. G0 X-30. Y-140. G67 1 - read variable G66 P1001 X Y Z F 2 3 4 5 6 7 8

-

move position G0 X-150. Y35. call macro program O1001 back to and move G0 X100. Y70. call macro program O1001 back to and move G0 X-30. Y-140. call macro program O1001 back to G67 cancelled macro

#1 #2 #3 #4 #5 #6 #7 #8 #9 500. #10 #11 #12 #13 #14 #15 #16

#17 #18 #19 #20 #21 #22 #23 #24 80. #25 60. #26 5. #27 #28 #29 #30 #31 #32

57

Sample for Macro Body

O1001 ( SUB MACRO ) IF [ #24 * #25 * #9 * #26 NE 0 ] GOTO 10 #3000 = 140 ( DATA ERROR ) N10 #31 = #4003 ( G90,G91 ) G90 G1 Z - [ ABS [ #26 ] ] F#9 G91 G1 X #24 Y #25 X- #24 Y- #25 G90 G0 Z5. G#31 M99 58

Macro Call with “G” code Set parameter

☯ G65 P9011 X10. Y10. Z5. F500 same ☯ G102 X10. Y10. Z5. F500

O9010 -- #6050 O9011 -- #6051 -- 102 O9012 -- #6052 O9013 -- #6053 O9014 -- #6054 O9015 -- #6055 O9016 -- #6056 O9017 -- #6057 O9018 -- #6058 O9019 -- #6059

59

Macro call with “M” code Create O9020 program and use M6 to call tool change program ☯ G65 P9021 X10. Y10. M8. same ☯ M90 X10. Y10. M8.

Set parameter

O9020 -- #6080 -- 6 O9021 -- #6081 -- 90 O9022 -- #6082 -- 91 O9023 -- #6083 -- 60 O9024 -- #6084 O9025 -- #6085 O9026 -- #6086 O9027 -- #6087 O9028 -- #6088 O9029 -- #6089 60

External Output Command POPEN ( connection to I/O ) BPRNT ( output binary ) DPRNT ( output EIA or ISO codes ) PCLOS ( disconnection from I/O ) Command format POPEN DPRNT [ a #b [ c d ] ...] PCLOS No of digits below decimal point

No of digits above decimal point Variable Character

Refer to Manual 61

Printout Layout --- MAKINO --CIRCLE NO 12 +X 0.123 +Y 0.213 --- OK ---

-X 0.321 -Y 0.132

When #18 = 12 #120 = 0.123 #121 = 0.123 #122 = 0.213 #123 = 0.132 when #120 LE #1

62

Printout Program

POPEN DPRNT [ --- MAKINO --- ] DPRNT [ * ] DPRNT [ *** CIRCLE *** NO #18 [40]] DPRNT [ * ] DPRNT [*** +X * #120[43] *** -X * #121[43]] DPRNT [*** +Y * #122[43] *** -Y * #123[43]] DPRNT [ * ] IF [#120 LE #1 ] GOTO1 DPRNT [ *** -- NOT OK -- *** ] GOTO2 N1 DPRNT [ *** -- OK -- *** ] N2 PCLOS

--- MAKINO --CIRCLE NO 12 +X 0.123 +Y 0.213

-X 0.321 -Y 0.132

--- OK ---

When #18 = 12 #120 = 0.123 #121 = 0.123 #122 = 0.213 #123 = 0.132 when #120 LE #1

63

Create M90 for Tool Approach O9021 ( M90 TOOL APPROACH ) ( M90 X Y Z M ) M9 G91 G0 G28 Z0 M5 G49 IF [#26 NE #0] GOTO 10 #26 = 100. ( Z ) N10 IF [#24 NE #0] GOTO 11 #24 = 0 ( X ) N11 IF [#25 NE #0]GOTO 12 #25 = 0 ( Y )

N12 IF [#13 NE #0] GOTO13 #13 = 8 ( M ) N13 G90 G0 G#4014 X#24 Y#25 G43 H#4111 Z#26 M1 M3 M#13 G98 M99

64

Create M91 for Tool Home O9022 ( M91 TOOL HOME #6082 ) G80 G40 M5 G91 G0 G28 Z0 M9 G49 G90 G0 G53 X-320.0 Y0 M99

65

Create M6 for Tool Change O9020 ( M6 TOOL CHANGE #6080 ) G80 G40 M5 G91 G0 G28 Z0 M9 G49 G90 M464 ( read spindle tool number ) G04 P1 IF [ #1032 EQ #4120 ] GOTO99 T#4120 G90 G0 G53 X-600.0 Y0 M1 M6 N99 M99 66

Program Layout O1000 ( Main Program ) T1 M6 G54 H1 S1000 T2 ( CEN DR ) M90 G81 Z-1.5 R2. F100 L0 K0 M98 P1001

T3 M6 G54 H3 S500 T1 ( TAP M6 ) M90 M135 S500 ( Rigid Tap ) G84 Z-8. R7. F500 L0 K0 M98 P1001

T2 M6 G54 H2 S1500 T3 ( DR 5 ) M90 G83 Z-15. R2. Q1.5 F100 L0 K0 M98 P1001

M91 M30

Q = Dia * 0.3 or 0.15

O1001 ( Sub-Program ) X50. Y50. X-50. Y-50. M99 67

Learning Activity ( 1 )

#111 = #5021 ( X2 ) M00

Y4

X1

M30

X2

Touch sensor

O1000 ( MANUAL SET WCS ) #110 = #5021 ( X1 ) M00

G54 Y3

68

Answer ( 1 ) O1000 ( MANUAL SET WCS ) #110 = #5021 ( X1 ) M00 #111 = #5021 ( X2 ) M00 #112 = #5022 ( Y3 ) M00 #113 = #5022 ( Y4 ) #5221 = [ #110 + #111 ] / 2 #5222 = [ #112 + #113 ] / 2 M30

Y4

X1

X2

G54 Y3

If G54 change to G55 or G59 How to mark the program better

69

Answer ( 1.1 ) O1000 ( MANUAL SET WCS ) #100 = 55. ( WCS )

#4 = 5221. ( M/C X ) #5 = 5222. ( M/C Y )

#110 = #5021 ( X1 )

#8 = 20.

M00

#10 = #100 - 54.

#111 = #5021 ( X2 )

#[ #4 + #8 * #10 ] = [#110+#112] / 2

M00

#[ #5 + #8 * #10 ] = [#112+#113] / 2

#112 = #5022 ( Y3 )

G91 G0 Z100.

M00 #113 = #5022 ( Y4 )

G90 G#100 X0 Y0 M30 70

DIAGRAM - II Repeat Depth Cycle G65 P7000 T B S - Q R

R Point

T ( #2O ) = Top B ( #2 ) = Bottom S ( #19 ) = Sub-Program

Q

Profile B

Q ( #17 ) = Depth Of Cut R ( #18 ) = R Point

T

Sub-Program 71

Program Layout O1000 ( MAIN PROGRAM ) T1 M6 G54 H1 S1000 ( END 10 ) M90 #2032 = 5.5 G65 P7000 T0 B-8.2 S1001. Q2. T2 M6 G54 H2 S1500 ( END 8 ) M90 #2032 = 4. G65 P7000 T0 B-8.2 S1001. M91 M30

O1001 ( SUB-PROGRAM ) G0 X40. Y-40. Z#33 G1 G41 Y-25. D32 F1000 X-25. Y 25. X 25. Y -40. G1 G40 X40. Y-40. M99

72

Macro Program ( Repeat Cycle ) O7004 ( REPEAT CYCLE ) ( G65 P7000 T B S -- Q R ) #27 = #4003 ( G90, G91 ) #26 = ABS [#26] ( Z ) IF [ #19 NE #0 ] GOTO 10 #3000 = 10 ( S MISSING ) N10 IF [ #17 NE #0 ] GOTO 11 #17 = 1000. ( Q ) N11 #33 = #20 ( T )

DO1 #33 = #33 - ABS[#17] IF [ #33 GT #2 ] GOTO 21 #33 = #2 N21 M98 P#19 IF [ #33 EQ #2 ] GOTO 98 END1 N98 IF [ #18 NE #0 ] GOTO 99 #18 = 50. ( R ) N99 G90 G0 Z [ ABS [ #18 ] ] G#27 M99

73

Learning Activity ( 2 ) O800 ( MAIN PROGRAM ) G54 H1 S2000 F140 M90 G66 P805 T10. Z10. D5. R2. A2000. B140. I1400. J98. X10. Y-10. X-10. Y10. G67 M91 M30 O805 ( STEP DRILL CYCLE )

I = RPM J = Feed rate

1

T

2 Z0

R point

Z

3

D

A = RPM B = Feed rate

M99 74

Answer 2 O805 ( DRILL DEPTH CYCLE ) IF [#1*#2*#4*#5*#7*#18*#20*#26 NE 0 ] GOTO111 #3000 = 140 ( DATA ERROR ) N111 #33 = #4003 G90 G0 Z#18 S#1 M3 I = RPM J = Feed rate G1 Z-[ #26+#20+1 ] F#2 1 S#4 T G1 Z-[ #26+#20+#7 ] F#5 2 G0 Z#18 R point Z0 3 G#33 M99 D Z

A = #1,, B = #2,, I = #4,, J = #5 D = #7,,R = #18,, T = #20,,Z = #26

A = RPM B = Feed rate 75

Learning Activity ( 3 ) O1000 ( MAIN PROGRAM ) T1 M6 G54 H1 S2000 F140 M90 G65 P8001 U54. V56. S1001. G65 P8001 U57. V59. S1001. K21.

U = Start WCS V = End WCS S = Sub Program K = Mirror 21 or 22 Z = Refer Point 100.

M91 M30

76

Change Parameter #7

#3202 #3104.6 = 1 ( DAL ) #3202.0 = 0 ( NE8 ) #3202.4 = 1 ( NE9 ) #3402.6 = 1 ( CLR ) #3406.3 = 1 ( C03 ) #3407.6 = 1 ( C14 ) #3409.7 = 1 ( CFH ) #6001.6 = 1 ( CCV ) #6080 = 6 #6081 = 90 #6082 = 91 #6083 = 60

#6

#5

#4

PSR

NE9

1

1

#3

#2

#1

#0

NE8

( *soft key ) MDI OFFSET SETTING * SETTING PARAMETER WRITE = 1 INPUT ( display alarm 100 ) SYSTEM * PARA Key in 3202 * NO SCH ( change if necessary NE9 ) OFFSET SETTING * SETTING PARAMETER WRITE = 0 INPUT RESET (alarm clear) 78