一种追加M代码案例方法 数控驿站 • 2022-04-09 11:44 • FANUC, 技术文章, 网络转载 • 阅读 8582 三菱重工机床使用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表示译码结果输出地址. 举例说明:当程序执行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,设定00或01默认连续译码8个数字与第一种写法相同。 下面来看三菱滚齿机床梯形图中的M代码译码指令,如图所示 A代表译码2个字节长度数据,一次译码25×8=200个数字, B代表需要译码地址 C代表译码从M0~M199 D代表输出地址为R125.0~149.7 例如二轴三线自动线三菱滚齿机在智能生产线改造过程中自编M代码,将M80定义为设备呼叫机器人指令,当机床执行M80时R110.0接通。如果按照图三中显示,M代码M00~M199译码输出的地址范围应该为R125.0~149.7之间,为什么执行M80时,R110.0会接通呢? 这是因为三菱机床在处理M代码译码时还有个特殊地方,在DECB译码指令下面的梯形图中还运用了另一个功能指令代码,SUB61 缩写OR 意义是逻辑或,将指定的的 2 种数据进行 OR 操作,输出。如图所示: 三菱机床将M代码译码后输出的R地址通过OR运算转换到其他R地址输出。如图所示 图中 R9091.1为FANUC 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=1与R160.0进行“或”运算,输出结果为R110.0=1(无论R160.0=0还是=1) 其他M代码译码输出的地址可根据以上内容推导。以上就是三菱重工机床M代码译码原理简述。 问答社区 发起问答 报警查询 技术文章 维修服务 资料下载 加交流群 申请 VIP 本文转载来自【公众号:屹高CNC】,仅供大家学习交流,如侵权请联系站长删文。 发表评论 取消回复请登录后评论...登录后才能评论