M98是调用子程序,M99是子程序返回
拓展资料:
如果在地址M后面指令了2位数值,那就把对应的信号送给机床,用来控制机床的ON/OFF。M代码在一个程序段中只允许一个有效,M代码信号为电平输出,保持信号。
M代码说明M03主轴正转M04主轴反转M05主轴停止M08冷却液开M09冷却液关(不输出信号)M32润滑开M33润滑关(不输出信号)M10备用M11备用尖(不输出信号)M00程序暂停,按‘循环起动’程序继续执行M30程序结束,程序返回开始
除M00,M30外,其它M代码的执行时间(不是脉冲宽度)可由诊断号№80设定。
设定值:0~255(128毫秒~32.640毫秒)
设定时间=设定值×128毫秒。
注1:当在程序中指定了上述以外的M代码系统将产生以下报警并停止执行。
01:M代码错
注2:M,S,T起动后,即使方式改变,也仍然保持,可按‘RESET’关闭(由参数009BIT3设置是否有效)。
下面的M代码规定了特殊的使用意义。
(1)M30(程序结束)
1) 表示主程序结束。
2) 停止自动运转,处于复位状态。
3) 返回到主程序开头。
4) 加工件数1。
(2)M00:程序停
当执行了M00的程序段后,停止自动运转。与单程序段停同样,把其前面的模态信息全部保存起来。CNC开始转后,再开始自动运转。
(3)M98/M99(调用子程序/子程序返回)
用于调用子程序。或程序结尾为M99时,程序可重复执行。详细情况情参照了程序控制一节。
注1:M00,M30的下一个程序段即使存在,也存不进缓冲存储器中去。
注2:执行M98和M99时,代码号不送出。
§2.18 子程序(M98、M99)
当一个主程序内,有一些固定的程序指令组,它们须时常重复执行,这时可将它们编成子程序,而在主程序中可对它们进行调用,如此可简化程序,使主程序的结构更简洁、清楚。一个子程序亦可调用另一子程序,这种情况称之谓子程序嵌套。
下图表示两层嵌套的子程序调用:
1.子程序的结构
子程序的组成,依下列格式编程:
O05…………… 子程序编号
N1………………指令内容
N2………………指令内容
........
Nn M99…………子程序结束
即子程序以字母O(注意不是数字零0)为开始,其后跟数字,为子程序名编号。在上例中即为05。子程序的结束以M99为结束符。
2.子程序的执行
子程序必须在主程序调用时才能被执行。子程序的调用格式如下:
M98 P_________L_________
字母P后所跟的数字就是子程序编号,L后的数据是子程序调用次数,若L没有被指定时,子程序仅执行一次。
例:
M98 P05……… 执行05子程序一次。
M98 P05 L8……执行05子程序八次。
在主程序里,子程序的调用与执行顺序如下:
3.子程序的位置
在编写加工程序时,如需要用子程序调用功能,则子程序一般写在主程序之后,两者在一个加工文件里。如下图所示:
如在一个加工程序中有多个子程序,则子程序必须都在主程序之后,而子程序之间的前后位置可以是任意的。
4.子程序编程时的注意事项
[1]在子程序中可以调用其它子程序,既子程序可以嵌套调用。
系统规定子程序嵌套调用最多为十层。
[2]子程序不能递归调用。所谓递归调用就是在子程序中有自己调用自己的
语句,或者是子程序1调用子程序2,在子程序2中又调用子程序1,当出
现 这种情况时也是间接的递归调用。
FANUC系统,M98子程序调用指令,格式为M98 P(循环次数) O(子程序名)M99子程序取消指令(返回主程序