分享

Marposs探头内部宏程序分析

 yllxd9999 2019-06-24

实例七:加工中心产品加工探头宏应用

Marposs探头宏程序融合了所有宏程序命令的精髓所在,其严谨的逻辑关系都是我们学习宏程序人员所应该研究探讨的。(当然不仅仅只有Marposs一家而言,我们只是选择其一作为探讨)对于有基础知识的技术人员从看懂到理解,再到实际应用都需要大量的基础知识做铺垫,都需要在实践中多次模拟验证以达到自己脑海中所想象的运算模式从而运用在实际生产工作中,学习任何知识都需要从点滴做起,一步一步非跳跃式的学习最终“聚沙成塔”。

“工欲善其事必先利其器”学习之前我们必须先了解必要的代码含义,基本所有内容都围绕这一核心组成,其余都是作为辅助保护行作用。

一、跳跃功能:G31

在G31的直线插补期间,当有外部跳跃信号被输入时,进给将停止,所有剩余的指令都将被取消,并且程序跳至下一个程序段。

有了跳跃那么我们就要有读取当前跳跃位置的指令参数,具体如

注意:1、终点坐标和跳跃坐标是在工件坐标系的位置

2、终点坐标、跳跃坐标和伺服偏差量即使在轴移动期间也可以被读取,但机械坐标、工件坐标和刀具位置补偿坐标是在确认到轴移动停止后,才可以被读取。

3、跳跃坐标表示在G31程序段跳跃信号接通的位置。如若跳跃信号没有接通,跳跃坐标终点位置一致。

4、终点位置表示没有任何刀具补偿的刀尖位置,而机械坐标、工件坐标和跳跃坐标是带有刀具补偿的参考位置

必须仔细理解这些含义,我们就进入到分解探头内部的宏的部分如下:

上节的讲述内容我们讲到探测都要设置主程序,以下均为内部子程序,本节只针对重点宏程序内容进行解析

O8311(MARPOSS V3.0)

G65P8360

G65P8300X#24Y#25Z#26F#9

M99

O8360(MARPOSS V3.0)

#8=1

IF[#4006EQ20]GOTO100 (预读程序段确保采用公制单位)

IF[#4006EQ70]GOTO100

#8=25.4

N100IF[#500NE#8]GOTO200(如果不是公制则报警)

#100=200*#8

#101=100.

#102=13000

#103=11000

#104=5200

M99

N200#3000=166(INCH/METRIC CONFLICT)(显示报警内容“公英制冲突”)

O8300(MARPOSS V3.0)

G04X0.02

G10L52 (参数输入模式打开)

N6200R10000000 (确保6200参数第八位为“1”使用高速跳转)

G11 (参数输入模式关)

#11=#5041(读取当前探头在XYZ三个方向所处位置)

#12=#5042

#13=#5043

#18=0.0

IF[#9NE#0]GOTO100(上节内容所讲的“#9”代表“F”进给)

#9=#100(由上程序知#100=200*25.4)

N100IF[#9LE0]GOTO210 (探头进给速度不能小于0,反之报警)

IF[#2EQ#0]GOTO110   (主程序中B未赋值)

#25=#5+#24*ROUND[SIN[#2]*10000]/10000

#24=#4+#24*ROUND[COS[#2]*10000]/10000

N110

#18=#18+1.0

F#9

#2=.0002*#500

IF[#26EQ#0]GOTO120 (此处往下全部在自动识别XYZ有无赋值,如若有坐标值在进入到探测阶段,并且判断有无达到探测的有效距离条件,未达到则报警)

IF[#26LT[#5043-#5083]]GOTO120

G90G31Z#26

G10L52

N6200R00000000

G11

G04X0.01

IF[#18GT5.0]GOTO240

IF[ABS[#5063-#5083-#26]GT#2]GOTO250

#26=#0

N120IF[#24NE#0]GOTO125

IF[#25EQ#0]GOTO140

N125G90G31X#24Y#25

G10L52

N6200R00000000

G11

G04X0.01

IF[#24EQ#0]GOTO130

IF[#18GT5.0]GOTO220

IF[ABS[#5061-#24]GT#2]GOTO260

N130IF[#25EQ#0]GOTO140

IF[#18GT5.0]GOTO230

IF[ABS[#5062-#25]GT#2]GOTO270

N140IF[#26EQ#0]GOTO200

G90G31Z#26

G04X0.01

G10L52

N6200R00000000

G11

IF[#18GT5.0]GOTO240

IF[ABS[#5063-#5083-#26]GT#2]GOTO250

 GOTO200

N250

#14=[#13-#26]/ABS[#13-#26]

G91G01Z[#14/#18*0.6]F[#9*3]

GOTO280

N260

#15=[#11-#24]/ABS[#11-#24]

G91G01X[#15/#18*0.6]F[#9*3]

GOTO280

N270

#16=[#12-#25]/ABS[#12-#25]

G91G01Y[#16/#18*0.6]F[#9*3]

N280

M19S180G04X0.1

M19G04X0.1

G04X1.0

GOTO110

N200M99

N210#3000=136(INVALID F)

N220#3000=161(PREMATURE X TOUCH)

N230#3000=162(PREMATURE Y TOUCH)

N240#3000=163(PREMATURE Z TOUCH)

O8314(MARPOSS V3.0)

G65P8360

IF[#3NE#0]GOTO110

#3=1

N110IF[#3LT1]GOTO910

IF[#3GT3]GOTO910

IF[#13NE#0]GOTO120

#13=.1*#500

N120IF[#18NE#0]GOTO130

#18=#5043-#5083

N130#4=0

IF[#24EQ#0]GOTO200

#4=#4+1

#8=#5041

#1=1

#2=#24

N200IF[#25EQ#0]GOTO210

#4=#4+1

#8=#5042

#1=2

#2=#25

N210IF[#26EQ#0]GOTO220

#4=#4+1

#8=#5043-#5083

#1=3

#2=#26

N220IF[#4EQ0]GOTO920

IF[#4NE1]GOTO930

G65P8300Z#6

#5=501+[#1-1]*2+[#3-1]*6 (还记得当初探头标定#501~#506吗?此处就是将探头误差值计算到探测值中)

IF[#8GT#2]GOTO230

#13=-#13

GOTO240

N230#5=#5+1

N240#7=#[#5] (#7代表#501~#506某一个值)

GOTO[240+#1]

N241G65P8300X[#24+#13-#7]

G65P8361X[#24-#13+#7]   (此处识别探测X向则调用O8361程序)

GOTO250

N242G65P8300Y[#25+#13-#7]

G65P8362Y[#25-#13+#7](此处识别探测Y向则调用O8362程序)

GOTO250

N243G65P8300Z[#26+#13-#7]

G65P8363Z[#26-#13+#7](此处识别探测Z向则调用O8363程序)

N250#106=#106+#7

#107=#105+#7

#108=#107-#2

(以上N250处很重要,此处就是我们在探测结束时所看到的真实值,代入到公共变量中进行数值计算,在O8061~O8063中仔细分析观察)

GOTO[260+#1] (识别探测完后往哪个方向定位)

N261G0X#8

GOTO263

N262G0Y#8

N263G0Z#18

IF[#21EQ#0]GOTO790

IF[ABS[#108]GT#21]GOTO940

N790IF[#23EQ#0]GOTO830

IF[#104EQ5200]GOTO800

IF[#23LT54]GOTO950

IF[#23GT59]GOTO950

#3=#104+[#1-1]*100+#23-53

GOTO820

N800IF[#23LT54]GOTO810 (我们知道坐标系是G54~G59,超出范围则报警)

IF[#23GT59]GOTO950

#3=#104+#1+[#23-53]*20

GOTO820

N810IF[#23LT1]GOTO950

IF[#23GT48]GOTO950 (扩展坐标系只有48个,大于则报警)

#3=6980+#1+#23*20(还记得扩展坐标系的计算吗?)

N820#[#3]=#106-#107+#108

GOTO860

N830IF[#20EQ#0]GOTO850

#3=#102+#20

IF[#1NE3]GOTO840

#3=#103+#20

N840#[#3]=#[#3]+#108

GOTO860

N850IF[#9EQ#0]GOTO860

IF[#9NE1]GOTO960

#[#5]=#2-#105

N860IF[#17EQ#0]GOTO900

G65P8364Q#17X#2Y#107Z#108(此处为输出文本内容)

N900M99

N910#3000=133(INVALID C)

N920#3000=128(NO AXIS)

N930#3000=164(MULTI AXIS)

N940#3000=170(OUT OF TOERANCE)

N950#3000=153(INVALID W)

N960#3000=136(INVALID F)

O8361(MARPOSS V3.0)

G04X0.05

#8=#5041

#3=.0002*#500

#3004=2

IF[#2EQ#0]GOTO100

#9=#5042

#25=#5+#24*ROUND[SIN[#2]*10000]/10000

#24=#4+#24*ROUND[COS[#2]*10000]/10000

N100G31X#24Y#25F#101

G04X0.05

#105=#5061

#106=#5021-#5041+#105(X向计算  机械坐标值-当前工件位置坐标+探头接触工件跳转时的坐标)

#3004=0(进给暂停与进给倍率有效,如果处于攻丝阶段则内部宏#3004=3 两者均无效)

IF[#2EQ#0]GOTO120

#107=#5062

#108=#5022-#5042+#107

IF[#9EQ#25]GOTO120

IF[ABS[#107-#9]LT#3]GOTO910

IF[ABS[#107-#25]LT#3]GOTO920

IF[#8EQ#24]GOTO130

N120IF[ABS[#105-#8]LT#3]GOTO910

IF[ABS[#105-#24]LT#3]GOTO920

N130G01X#8Y#9F#100

M99

N910#3000=167(NO PROBE MOVEMENT)

N920#3000=168(NO WORKPIECE)

O8362(MARPOSS V3.0)

G04X0.05

#8=#5042

#3=.0002*#500

#3004=2

G31Y#25F#101

G04X0.05

#105=#5062

#106=#5022-#5042+#5062 (Y向计算)

#3004=0

IF[ABS[#105-#8]LT#3]GOTO910

IF[ABS[#105-#25]LT#3]GOTO920

G01Y#8F#100

M99

N910#3000=167(NO PROBE MOVEMENT)

N920#3000=168(NO WORKPIECE)

O8363(MARPOSS V3.0)

G04X0.05

#8=#5043-#5083

#3=.0002*#500

#3004=2

G31Z#26F#101

G04X0.05

#105=#5063-#5083

#106=#5023-#5043+#105(Z向计算)

#3004=0

IF[ABS[#105-#8]LT#3]GOTO910

IF[ABS[#105-#26]LT#3]GOTO920

G01Z#8F#100

M99

N910#3000=167(NO PROBE MOVEMENT)

N920#3000=168(NO WORKPIECE)

O8364(MARPOSS V3.0)

IF[#24EQ#0]GOTO220 (所调用的程序中涉及的XYZ不能为空值)

IF[#25EQ#0]GOTO230

IF[#26EQ#0]GOTO240

IF[#17EQ2]GOTO100

IF[#17NE1]GOTO210

DPRNT[](数据输出指令)

DPRNT[*NOMINAL***ACTUAL****ERROR]

DPRNT[---------*---------*---------]

N100

DPRNT[#24[44]**#25[44]**#26[44]]

DPRNT[]

M99

N210#3000=147(INVALID Q)

N220#3000=124(NO X)

N230#3000=125(NO Y)

N240#3000=126(NO Z)

注意事项及说明:

1、本程序仅适用于Fanuc数控系统,供数控编程技术人员使用,使用前必须先行验证后方可使用。

2、严禁生搬硬套到加工中心使用,不同加工中心虽为FANUC系统但个别代码不一样,需要与加工中心代码识别保持一致,(例如兄弟机的主轴定位旋转则采用M19 R0~R270).

2、严禁将本程序适用于商业用途,带来的一切不良后果由使用者自行负担,编写过程中难免存在错误,还望指正。

相关资料 


宏程序加工应用实战案例讲解高级篇(一),基础知

宏程序加工应用实战案例讲解高级篇(二),初级

应用宏程序加工应用实战案例讲解高级篇(三),中级应用

宏程序加工应用实战案例讲解高级篇(三),中级应用续

宏程序加工应用实战案例讲解高级篇(四),高级应用



著者二维码


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多