一个陌生换刀宏程序以及PMC程序的解读过程

一个陌生换刀宏程序以及PMC程序的解读过程

 说明:换刀类型:机械手随机换刀

不同厂家不同人编写的程序是不同的,我们不可能对程序全部理解,但是我们可以利用自己的知识去把握一些关键的信息,对于维修以及遇到问题的解除都是有帮助的,以下是个人关于这个PMC和宏程序的阅读过程,希望学习的人可以看下我解读的步骤和应用到知识,关键是将知识应用起来。

1、换刀宏程序

N1 #1103=0
N2 IF[#1002EQ1]GOTO19
N3 G91 G30 02 Z0
N4 M19
N5 N1100=1
N6 IF[#1000EQ1]GOTO8
N7 GOTO4
N8 M93
N9 M95
N10 M91
N11 M96
N12 M92
N13 M97
N14 #1102=1
N15 M94
N16 #1101=1

N17 IF[#1001EQ1]GOTO 19
N18 GOTO15
N19 #1100=0
N20 #1101=0
N21 #1102=0
N22 #1103=1
G90
N23 M99

因为此换刀是PMC与换刀宏程序结合用的,宏程序有很多M代码,拿到一个陌生的PMC和宏程序,我们要明白程序表达什么意思,需要明白M代码的意思。

根据机械手换刀步骤是  倒刀–第一次扣刀–主轴松刀—第二次扣刀—主轴拉刀–机械手返回原点—回刀

如果使用M代码控制以上动作,需要7个M代码,根据以上信息我们大概可以推测以下信息:

N8 M93  //倒刀
N9 M95  //第一次扣刀
N10 M91  //主轴松刀
N11 M96  //第二次扣刀
N12 M92  // 主轴拉刀
N13 M97   //机械手返回原点
N14 #1102=1
N15 M94   // 回刀
N16 #1101=1

具体是否正确,我们可以结合梯形图的逻辑进行确认即可。

其次我们需要理理解#1001  这样的信号到底起到什么作用?  #1101=1 是 干啥用的?这些事PMC中的信号,所以要明白它们什么作用,只能够看PMC程序。不过通过阅读宏程序,此宏程序有一个很大的BUG,就是程序的结尾使用了G90。

更多详细内容,请付费后查阅分享解读知识:

 

 

假如换刀前的系统模态是G91,换完刀系统的模态编程G90,这样的话会引起撞刀,如何解决此类问题呢?我们需要在换刀前将G90 G91的模态保存下来,然后在换刀宏程序结束时恢复即可。那么如何通过程序实现呢?

保存G90 G91模态:#3=#4003

恢复模态:G#3

修改宏程序如下:

#3=#4003   // 增加
N1 #1103=0
N2 IF[#1002EQ1]GOTO19
N3 G91 G30 02 Z0
N4 M19
N5 N1100=1
N6 IF[#1000EQ1]GOTO8
N7 GOTO4
N8 M93
N9 M95
N10 M91
N11 M96
N12 M92
N13 M97
N14 #1102=1
N15 M94
N16 #1101=1

N17 IF[#1001EQ1]GOTO 19
N18 GOTO15
N19 #1100=0
N20 #1101=0
N21 #1102=0
N22 #1103=1
G90   //修改成G#3
N23 M99

 

 

2、PMC程序M代码解读

如果我们对M代码的意义推测是正确的话,我们可以通过这么M代码推测出很多东西,让我们对这个PMC换刀程序部分有更好的理解。

对于如何查看梯形图的M代码可以参考如下文章:如何查看FANUC  PMC梯形图中对应的M代码

在梯形图中搜索F10,找到如下梯形图:

1556714975 4

通过以上指令,我们得出如下结论:

M90 R40.0 M91 R40.1
M92 R40.2 M93 R40.3
M94 R40.4 M95 R40.5
M96 R40.6 M97 R40.7

因为梯形图中没有任何注释,不方便搜索,所以我们先将我们知道的信号注释下:

1556715838 5

 

3、宏变量的解读

10#

简单的说就是G54.0 对应#1000  G54.1对应#1001 #1100 对应F54.0 #1101对应F54.1 以此类推。

 

(1)#1103对应的PMC信号为F54.2 宏变量用在宏程序的开始和结尾,可以作为换刀宏程序的开始和结尾的标识使用,当然也可以通过2个M代码实现。

 

IF[#1002EQ1]GOTO19
 #1002 对应的信号为G54.2 ,如果该信号为1,跳转换刀结束,所以该信号应该为判断选的刀是否在主轴上,如果在主轴上直接结束。

1556719505 6

 

1556719604 7

 

N5 #1100=1对应F54.0 结合PMC程序 应该为倒刀使能条件。

1556719987 10

 

IF[#1000EQ1]GOTO8  对应G54.0 判断是否选刀到位

1556720336 15

N14 #1102=1 对应F54.2 为回刀使能
N15 M94

1556720686 17

 

N16 #1101=1 对应F54.1 为数据交换条件

1556720807 18

1556720849 19

 

IF[#1001EQ1]GOTO 19 对应G54.1 判断是否执行数据交换。

 

N19 #1100=0
N20 #1101=0
N21 #1102=0
N22 #1103=1

信号清零,恢复换到前状态。

4、刀库目前问题

(1)开机刀库计数自动+1,修改刀库计数部分,需要实际测试

1556721204 20

(2)执行的刀在主轴上时,第一次跳过,第二次又交换一次。需要检查G54.2的信号状态,在出现换刀的时候监控该信号是否变为1了?或者在判断语句前增加G31测试下。

G31
N2 IF[#1002EQ1]GOTO19

(3)执行M70刷刀表:

此部分需要另外增加PMC程序,需要刀库有原点信号开关,如果没有,需要手动移动到1号到位执行刷刀表程序。

修改后的程序如下:1556723029-8

 

 

共享屋个人能力提升群:

序号群名称
1快速掌握数控技术 – 数控学习网站简介
2秒懂FANUC PMC入门基础课程介绍
3咨询报名参加学习PMC课程必看

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容