如何用宏程序找正坐标?

2022-03-30 14:33:00 浏览数 (2)

这是一个利用分中棒或寻边器自动找正工件坐标的程序,共有9种常用的取数模式,该程序拥有较好的程序架构及算法,有需求的朋友可以参考一下。

使用方法:

将程序修改好后,保证”单节跳跃“为关闭状态,将分中棒移动至工件左下角,启动程序后将“单节跳跃”“选择性停止”键开启,此时程序自动读取了坐标,将自动移动至正确的取数位置,当执行刀M1处机床会停止,此时就是手动操作的时候了,将分中棒摇正后后就可以打到自动运行启动程序了,如此循环即可,程序执行完后#601为工件X宽度尺寸,#602为工件Y长度尺寸,需求FANUC系统变量支持为#500-#999,如果不支持,需要修改系统保密参数,该程序谨为参考,没有完全读懂的情况下请不要拿到机床测试,否则,可能将对你或你的机床造成痛苦的当机,谢谢!

程序参考:

O140 #100=58(COORDINATE) 坐标号G54-G59 #1=350.(WIDTH) 工件宽度 #2=350.(LENGTH) 工件长度 #5=15.(Z-DEPTH) 分中棒或寻边器下刀深度 #6=0(0=X/2Y/2 1=X-Y- 2=X Y- 3=X-Y 4=X Y 5=X-Y/2 6=X Y/2 7=X/2Y- 8=X/2Y )

=0 四边分中

=1 X-方向Y-方向基准角取数

=2 X 方向Y-方向基准角取数

=3 X-方向Y 方向基准角取数

=4 X 方向Y 方向基准角取数

=5 X-方向基准角取数Y分中取数

=6 X 方向基准角取数Y分中取数

=7 X分中取数Y-方向基准角取数

=8 X分中取数Y 方向基准角取数

#7=150 (DATUM-X-LENGTH) X方向基准角取数据

#8=150 (DATUM-Y-LENGTH) Y方向基准角取数据

#9=0 (OFFSET-X-LENGTH) 分中棒或寻边器的X偏移数据

#10=-120. (OFFSET-Y-LENGTH) 分中棒或寻边器的Y偏移数据

M98P9142

M30

O9142

/#611=#5021

/#612=#5022

/#613=#5023

#11=5 (D)

#12=20 (A)

#13=200 (Z)

(********)

G80M5

M9

G69

G52X0Y0Z0

G91G28G0Z0

#14=15

IF[#6EQ0]GOTO1

#14=3

IF[#6EQ1]GOTO1

#14=10

IF[#6EQ2]GOTO1

#14=5

IF[#6EQ3]GOTO1

#14=12

IF[#6EQ4]GOTO1

#14=7

IF[#6EQ5]GOTO1

#14=14

IF[#6EQ6]GOTO1

#14=11

IF[#6EQ7]GOTO1

#14=13

IF[#6EQ8]GOTO1

GOTO3001

N1

#100=FIX[#100]

#15=1

WHILE[#15LE6]DO1

IF[#15 53EQ#100]GOTO2

#15=#15 1

END1

GOTO3002

N2

G90G53X[#611 #1/2]Y[#612 #2/2]

G90G53Z[#613 #13]

M0

N10

M3S500

IF[[#14AND1]EQ0]GOTO20

G90G53X[#611-#12]Y[#612 #2/2 #10]

G90G53Z[#613-#5]

#15=#5021

M1

(*MOVE X *)

(*MOVE X *)

IF[#5021LE#15]GOTO3003

#501=#5021

G90G53Z[#613 #13]

N20

IF[[#14AND2]EQ0]GOTO30

G90G53X[#611 #1/2 #9]Y[#612-#12]

G90G53Z[#613-#5]

#15=#5022

M1

(*MOVE Y *)

(*MOVE Y *)

IF[#5022LE#15]GOTO3003

#502=#5022

G90G53Z[#613 #13]

N30

IF[[#14AND4]EQ0]GOTO40

G90G53X[#611 #1/2 #9]Y[#612 #2 #12]

G90G53Z[#613-#5]

#15=#5022

M1

(*MOVE Y-*)

(*MOVE Y-*)

IF[#5022GE#15]GOTO3003

#503=#5022

G90G53Z[#613 #13]

N40

IF[[#14AND8]EQ0]GOTO50

G90G53X[#611 #1 #12]Y[#612 #2/2 #10]

G90G53Z[#613-#5]

#15=#5021

M1

(*MOVE X-*)

(*MOVE X-*)

IF[#5021GE#15]GOTO3003

#504=#5021

G90G53Z[#613 #13]

N50

#601=#0

#602=#0

GOTO[#6 100]

N100

#601=#504-#501-#11*2

#602=#503-#502-#11*2

#801=[#501 #504]/2

#802=[#502 #503]/2

GOTO200

N101

#801=#501 #11 #7

#802=#502 #11 #8

GOTO200

N102

#801=#504-#11-#7

#802=#502 #11 #8

GOTO200

N103

#801=#501 #11 #7

#802=#503-#11-#8

GOTO200

N104

#801=#504-#11-#7

#802=#503-#11-#8

GOTO200

N105

#602=#503-#502-#11*2

#801=#501 #11 #7

#802=[#502 #503]/2

GOTO200

N106

#602=#503-#502-#11*2

#801=#504-#11-#7

#802=[#502 #503]/2

GOTO200

N107

#601=#504-#501-#11*2

#801=[#501 #504]/2

#802=#502 #11 #8

GOTO200

N108

#601=#504-#501-#11*2

#801=[#501 #504]/2

#802=#503-#11-#8

GOTO200

N200

#[4141 #100*20]=#801

#[4142 #100*20]=#802

#128=1

M5

G91G28G0Z0

M99

N3001

#3000=1 (#6-MODE-ERROR)

N3002

#3000=2 (#100-ERROR)

N3003

#3000=3 (OPERATION-ERROR)

0 人点赞