这是一个利用分中棒或寻边器自动找正工件坐标的程序,共有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)