FANUC 为什么有的M代码一直执行不结束


M代码一直执行

在我们为设备新增一个M代码时,有时需要修改设备原有的PMC程序,添加相应的M代码控制程序,但添加完M代码相关程序后,会发现M代码可以执行,M代码控制的动作也可以实现,但是M代码会一直执行不结束,或者设备某个M代码之前都是一直正常使用且执行的,但是有些时候M代码会一直执行不结束,如下图,执行M50指令一直执行不结束;遇到这类问题该如何进行处理呢?

在梯形图中增加M代码的控制程序时,首先需要对M代码的源地址进行译码处理,译码出来的地址就可以直接使用了。如下图,当程序中执行M50指令时,通过梯形图中的DECB译码指令,对M代码的源地址F10进行译码处理,并将译码结果存放在R560地址中,当执行M50时,对应R560.0输出,当执行M51时,对应R560.1输出。R560.0直接控制信号Y10.0输出,此时检查M代码译码及输出均正常,那么为什么却执行不结束呢?

这是因为辅助功能的执行,系统无法自主进行功能的完成,需要PMC向系统发送辅助功能完成信号,系统才会结束当前的辅助功能指令,其中就包含M代码指令,而地址G4.3(FIN)就是控制辅助功能的完成信号。

M代码一直执行不完成就是因为未触发M代码完成信号G4.3导致,在梯形图程序中查找G4.3所在程序段,找到有关M代码的控制条件,如下图中的F7.0与R6000.0的程序,其中R6000.0就为M代码的完成条件触发地址。

将M50的完成条件添加到R6000.0所在程序段中后,即实现了M50代码的完成触发条件,此时再次执行M50时,M代码就不会一直执行了。

若是正常使用的设备M代码一直执行不结束,也可以通过本文方法,在梯形图中查找该M代码未完成的原因,从而解决问题。

发表回复

登录... 后才能评论