空气中的小鱼 发表于 2011-6-11 08:49:25

找正坐标宏程序

最近看到论坛很多朋友讨论关于自动找坐标的程序,下面这个程序是我前几年为一家公司开发一套宏程序中的其中一个,是一个利用分中棒或寻边器自动找正工件坐标的程序,共有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
#=#801
#=#802
#128=1
M5
G91G28G0Z0
M99
N3001
#3000=1(#6-MODE-ERROR)
N3002
#3000=2(#100-ERROR)
N3003
#3000=3(OPERATION-ERROR)

空气中的小鱼 发表于 2011-6-11 09:02:25

呵呵,过奖了,我只是前几年在LKM负责开发宏程序的
现在几乎没有做宏程序了,很多都忘记了。。。

jiangssli 发表于 2011-6-11 14:27:08

楼主是宏高手是莫庸质疑的事实!!!!!:lol他的同事给他取的外号是<<宏疯子>>!!哈哈哈!!

空气中的小鱼 发表于 2011-6-11 14:39:03

{:4_94:}
不是吧,晕倒了,我也就前几年有点疯狂

jiangssli 发表于 2011-6-11 15:08:38

你为宏疯狂!估计你老婆就是爱上了你的这份执着!!哈哈哈!!!!

879862859 发表于 2011-6-12 09:43:25

楼主好留呀

若枫 发表于 2011-6-12 15:07:27

前无古人,后无来者.
楼主已经到了无人可以超越的高度.

空气中的小鱼 发表于 2011-6-12 21:39:30

本帖最后由 wmj820303 于 2011-6-12 21:40 编辑

若枫坛主过奖了,不好意思,我白天也没有多少时间光顾论坛,趁早上发点贴,支持下论坛,希望论坛越来越好。
我只能说我对宏程序比较熟悉而已,
况且现在我很少搞了,算算也有两三年之久了
现在翻出来温习一下也不错,呵呵

梦妮 发表于 2011-6-15 18:27:56

是很好的,宏我不能镶嵌变数多的 ,简单的还行

chenjun 发表于 2011-6-16 12:37:35

:( 仰望楼主的高度。 努力学习中。。。。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 找正坐标宏程序