§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,当出
现 这种情况时也是间接的递归调用。
数控机床标准G代码 准备功能字是使数控机床建立起某种加工方式的指令,如插补、刀具补偿、固定循环等。G功能字由地址符G和其后的两位数字组成,从G00—G99共100种功能。JB3208-83标准中规定如下表:G00 点定位 G50 * 刀具偏置0/- G01 直线插补 G51 * 刀具偏置+/0 G02 顺时针圆弧插补 G52 * 刀具偏置-/0 G03 逆时针圆弧插补 G53 直线偏移注销 G04 * 暂停 G54 直线偏移X G05 * 不指定 G55 直线偏移Y G06 抛物线插补 G56 直线偏移Z G07 * 不指定 G57 直线偏移XY G08 * 加速 G58 直线偏移XZ G09 * 减速 G59 直线偏移YZ G10-G16 * 不指定 G60 准确定位(精) G17 XY平面选择 G61 准确定位(中) G18 ZX平面选择 G62 准确定位(粗) G19 YZ平面选择 G63 * 攻丝 G20-G32 * 不指定 G64-G67 * 不指定 G33 螺纹切削,等螺距 G68 * 刀具偏置,内角 G34 螺纹切削,增螺距 G69 * 刀具偏置,外角 G35 螺纹切削,减螺距 G70-G79 * 不指定 G36-G39 * 不指定 G80 固定循环注销 G40 刀具补偿/刀具偏置注销 G81-G89 固定循环 G41 刀具补偿--左 G90 绝对尺寸 G42 刀具补偿--右 G91 增量尺寸 G43 * 刀具偏置--左 G92 * 预置寄存 G44 * 刀具偏置--右 G93 进给率,时间倒数 G45 * 刀具偏置+/+ G94 每分钟进给 G46 * 刀具偏置+/- G95 主轴每转进给 G47 * 刀具偏置-/- G96 恒线速度 G48 * 刀具偏置-/+ G97 每分钟转数(主轴) G49 * 刀具偏置0/+ G98-G99 * 不指定 注:*表示如作特殊用途,必须在程序格式中说明 数控机床标准M代码辅助功能字是用于指定主轴的旋转方向、启动、停止、冷却液的开关,工件或刀具的夹紧和松开,刀具的更换等功能。辅助功能字由地址符M和其后的两位数字组成。JB3208-83标准中规定如下表:表 辅助功能字M 代码 功能作用范围 功能 代码 功能作用范围 功能 M00 * 程序停止 M36 * 进给范围1 M01 * 计划结束 M37 * 进给范围2 M02 * 程序结束 M38 * 主轴速度范围1 M03 主轴顺时针转动 M39 * 主轴速度范围2 M04 主轴逆时针转动 M40-M45 * 齿轮换档 M05 主轴停止 M46-M47 * 不指定 M06 * 换刀 M48 * 注销M49 M07 2号冷却液开 M49 * 进给率修正旁路 M08 1号冷却液开 M50 * 3号冷却液开 M09 冷却液关 M51 * 4号冷却液开 M10 夹紧 M52-M54 * 不指定 M11 松开 M55 * 刀具直线位移,位置1 M12 * 不指定 M56 * 刀具直线位移,位置2 M13 主轴顺时针,冷却液开 M57-M59 * 不指定 M14 主轴逆时针,冷却液开 M60 更换工作 M15 * 正运动 M61 工件直线位移,位置1 M16 * 负运动 M62 * 工件直线位移,位置2 M17-M18 * 不指定 M63-M70 * 不指定 M19 主轴定向停止 M71 *
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la
FANUC系统,M98子程序调用指令,格式为M98 P(循环次数) O(子程序名)M99子程序取消指令(返回主程序)
FANUC系统,M98子程序调用指令,格式为M98 P(循环次数) O(子程序名)M99子程序取消指令(返回主程序