欢迎光临散文网 会员登陆 & 注册

数控宏程序入门----宏程序调用

2023-04-11 19:09 作者:我在即墨看花灯  | 我要投稿

   宏程序可以和普通程序一样被其他程序当做子程序调用(M98),也可以通过宏程序专用调用指令(G65,G66)进行带变量数据的传递调用。


使用M98调用时用法与调用普通程序相同,具体用法参考M98调用子程序


非模态调用 G65


代码格式:G65 P_ L_  变量数据。


其中P后面为被调用的程序号(完整程序号0不可省略)


L后面为调用次数(省略不写默认一次)


同子程序调用一样,宏程序调用也可进行嵌套调用(嵌套层级根据系统有所不同),我感觉日常加工中也不一定用得到多级嵌套,就不说了


变量数据对应的变量号有下面两种方式传递


示例:G65 P0110 A1 B2 C3 F4

调用0110的程序一次,同时为0110程序中的变量赋值#1=1  #2=2 #3=3 #9=4


FANUC系统方式二是否有效由参数决定,所以无特殊需求建议使用方式一


在车床加工中的应用举例


车床中进行深孔钻孔

以端面Z0为基准,钻孔深度50,单次钻深3MM,钻孔提前量0.5MM


主程序

O0002

T0101 G99 M3 S500

G0 X0

Z1  

G65 P0001 Z-50 Q3 R0.5 F0.1 (调用0001号程序一次 ZQRF对应变量传递方式一)

G0 X100 Z100 M5

M30


子程序

O0001

#1=#5043 (记录当前Z轴坐标值)

#2=#1 

N1 #2=#2-#17 (每次钻孔终点Z值)

IF[#2LE#26]THEN #2=#26(防止Z过切)

#3=#2+#18 (下次钻孔起点Z值)

G1 Z#2 F#9 (钻孔)

G0 Z#1 (退回钻孔起点)

IF[#2EQ#26]GOTO 2(判断钻孔深度达到后跳转N2)

G0 Z#3 (定位到下次钻孔起点)

IF[#2GT#26]GOTO 1(判断钻孔深度不够后跳转N1)

N2 G0 Z#1 (退回钻孔起点)

M99


模态调用 G66

代码格式:G66 P_ L_  变量数据。(各项含义同G65)

代码说明:G66执行后一直有效,直到G67执行取消。

G66模式下,当系统执行移动完指令(G01,G02,G03,G05)后都会自动调用G66指定的宏程序,执行M代码不会调用子程序,不能使用G71等循环指令。


G66也可进行多级嵌套,但是我个人不推荐使用,因为多级嵌套对于大部分人都容易搞混淆程序的执行顺序(非要来杠说你能搞清楚,那你就用,我也不拦着)


G66在车床加工中的应用举例


车床中在不同的位置加工槽

大概画了个示意图,将就看一下吧

假设切刀2.5MM宽,编辑文档的时候发现忘记标注槽深了,就当是5MM深吧


主程序

O0002

T0101 G99 M3 S500

G0 X50

Z5

G66 P0001 U10 W-1.5 F0.1(进入G66模式,并设定变量数值,刀宽2.5分两次切槽,借刀宽度1.5MM)

G0 Z-13.5 (调用0001一次)

Z-21.5(调用0001一次)

Z-33.5(调用0001一次)

G67(取消G66模式)

G0 X100 Z100 M5(本段不再调用子程序)

M30


子程序

O0001

G1 U-#21 F#9(接收变量数值#21=10,#9=0.1)

G0 U#21

W#23(接收变量数值#23=-1.5)

G1 U-#21

G0 U#21

M99



 

数控宏程序入门----宏程序调用的评论 (共 条)

分享到微博请遵守国家法律