1. 首页
  2. 技术文章
  3. FANUC

一种追加M代码案例方法

三菱重工机床使用FANUC 31i系统,译码原理如下:
FANUC系统F7.0信号定义为“辅助功能选通脉冲信号”,符号为MF,当执行M指令时,F7.0接通,SUB25为功能指令,缩写为DECB,意义是 二进制译码,可对1,2,4个字节的二进制代码数据译码。指定的八位连续数据之一与代码数据相同,则对应的输出数据位为1.
如图1所示,DECB译码指令中 A表示数据类型:可设定为1/2/4 分别对应1字节/2字节/4字节数据类型;B表示需要译码的数据地址;C表示译码连续8个数字的起始数字地址;D表示译码结果输出地址.

一种追加M代码案例方法

举例说明:当程序执行M50,此时F10=50,更具上述译码指令,M48对应译码输出R746.0;M49对应译码输出R746.1;M50对应译码输出R746.2,以此类推连续8个数字;因为当前程序执行M50,故输出R746.2线圈.
因一个译码功能指令只能连续译码8个数字,所以对于译码比较多的就需要编写多个译码指令.但是DECB译码指令有更加简便的方法,可以一次完成全部译码输出.即将译码的数据类型进行更改,由原来的1/2/4更改为XX1/XX2/XX4,可以批量执行译码指令,其中个位数仍然表示数据的字节长度,XX表示连续译码8个数字的数量,如图2,设定50即认定连续译码50×8=400个数字,下图中设定起始数字为0,则可一次性译码M0~M399.对应译码输出结果为R800.0~R849.7  XX可以设定范围为02~99,设定0001默认连续译码8个数字与第一种写法相同。

一种追加M代码案例方法

下面来看三菱滚齿机床梯形图中的M代码译码指令,如图所示

一种追加M代码案例方法

A代表译码2个字节长度数据,一次译码25×8=200个数字,
B代表需要译码地址
C代表译码从M0~M199
D代表输出地址为R125.0~149.7
例如二轴三线自动线三菱滚齿机在智能生产线改造过程中自编M代码,将M80定义为设备呼叫机器人指令,当机床执行M80R110.0接通。如果按照图三中显示,M代码M00~M199译码输出的地址范围应该为R125.0~149.7之间,为什么执行M80时,R110.0会接通呢?
    这是因为三菱机床在处理M代码译码时还有个特殊地方,在DECB译码指令下面的梯形图中还运用了另一个功能指令代码,SUB61 缩写OR 意义是逻辑或,将指定的的 2 种数据进行 OR 操作,输出。如图所示:

一种追加M代码案例方法

三菱机床将M代码译码后输出的R地址通过OR运算转换到其他R地址输出。如图所示一种追加M代码案例方法

 

中  R9091.1FANUC PMC 中的“始终接通”地址,常为1  
A代表用地址指定运算长度为4个字节的数据
B,C代表将R133.0~R136.7之间的所有数据与R158.0~R161.7之间所有的数据进行“或”运算
D代表将运算结果输出到R108.0~R111.7之中
举个例子  :R133=00001111
                 OR                那么输出结果为 R108=11111111
             R158=11110000
             
             R134=01010101
                 OR                那么输出结果为 R109=01010101
             R159=01010101
这样的话,当机床执行M80时,通过“DECB”译码,输出结果为R135.0=1,然后将R135.0=1R160.0进行“或”运算,输出结果为R110.0=1(无论R160.0=0还是=1
其他M代码译码输出的地址可根据以上内容推导。以上就是三菱重工机床M代码译码原理简述。

 
问答社区  发起问答  报警查询  技术文章  维修服务  资料下载  加交流群  申请 VIP   

本文转载来自【公众号:屹高CNC】,仅供大家学习交流,如侵权请联系站长删文。

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

联系微信:QQ594673193

工作时间:08:00~20:00

QR code