登录【网站注册】点击左边“微信账号登陆”图标,微信扫描即自动注册并登陆
搜索
查看: 928|回复: 2

[交流分享] 宏程序

[复制链接]
发表于 2019-7-30 17:29:35 | 显示全部楼层 |阅读模式
用户宏功能是提高数控机床性能的一种特殊功能。使用中,通常把能完成某一功能的一系列指令像子程序一样存入存储器,然后用一个总指令代表它们,使用时只需给出这个总指令就能执行其功能。

用户宏功能主体是一系列指令,相当于子程序体。既可以由机床生产厂提供,也可以由机床用户自己编制。

宏指令是代表一系列指令的总指令,相当于子程序调用指令。

用户宏功能的最大特点是,可以对变量进行运算,使程序应用更加灵活、方便。



fanuc宏程序实例

用户宏功能有A、B两类。

在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址。为了使程序更具通用性、更加灵活,在宏程序中设置了变量,即将变量赋给一个地址。



(1)变量的表示

变量可以用“#”号和跟随其后的变量序号来表示:#i(i=1,2,3......)
例:#5, #109, #501。



(2)变量的引用

将跟随在一个地址后的数值用一个变量来代替,即引入了变量。

例:对于F#103,若#103=50时,则为F50;

对于Z-#110,若#110=100时,则Z为-100;

对于G#130,若#130=3时,则为G03。



(3)变量的类型

0MC系统的变量分为公共变量和系统变量两类。

1)公共变量

公共变量是在主程序和主程序调用的各用户宏程序内公用的变量。也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的。

公共变量的序号为:#100~#131;#500~#531。其中#100~#131公共变量在电源断电后即清零,重新开机时被设置为“0”;#500~#531公共变量即使断电后,它们的值也保持不变,因此也称为保持型变量。



2)系统变量

系统变量定义为:有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置变量,接口的输入/输出信号变量,位置信息变量等。

系统变量的序号与系统的某种状态有严格的对应关系。例如,刀具偏置变量序号为#01~#99,这些值可以用变量替换的方法加以改变,在序号1~99中,不用作刀偏量的变量可用作保持型公共变量#500~#531。

接口输入信号#1000~#1015,#1032。通过阅读这些系统变量,可以知道各输入口的情况。当变量值为“1”时,说明接点闭合;当变量值为“0”时,表明接点断开。这些变量的数值不能被替换。阅读变量#1032,所有输入信号一次读入



用户宏程序应用举例 FANUC-0MC
例1:用宏程序和子程序功能顺序加工圆周等分孔。设圆心在O点,它在机床坐标系中的坐标为(X0,Y0),在半径为r的圆周上均匀地钻几个等分孔,起始角度为α,孔数为n。以零件上表面为Z向零点。见图4.35。

使用以下保持型变量:

#502:半径r;

#503:起始角度α;

#504:孔数n,当n>0时,按逆时针方向加工,当n<0时,按顺时针方向加工;

#505:孔底Z坐标值;

#506:R平面Z坐标值;

#507:F进给量。

使用以下变量进行操作运算:

#100:表示第i步钻第i孔的记数器;

#101:记数器的最终值(为n 的绝对值);

#102:第i个孔的角度位置θi的值;

#103:第i个孔的X坐标值;

#104:第i个孔的Y坐标值;



用用户宏程序编制的钻孔子程序如下:

O9010
N110 G65 H01 P#100 Q0  //#100 = 0
N120 G65 H22 P#101 Q#504 //#101 = │#504│

N130 G65 H04 P#102 Q#100 R360//#102 =#100 ×360
N140 G65 H05 P#102 Q#102 R#504 //#102 =#102 / #504
N150 G65 H02 P#102 Q#503 R#102 //#102 =#503 + #102当前孔角度位置θi =α+ (360×i) / n
N160 G65 H32 P#103 Q#502 R#102 //#103 =#502 ×COS(#102)当前孔的 X坐标

N170 G65 H31 P#104 Q#502 R#102 //#104 =#502 ×SIN(#102) 当前孔的Y坐标

N180 G90 G00 X#103 Y#104 //定位到当前孔(返回开始平面)

N190 G00 Z#506 //快速进到R平面

N200 G01 Z#505 F#507 //加工当前孔

N210 G00 Z#506 //快速退到R平面

N220 G65 H02 P#100 Q#100 R1  //#100 =#100+1孔计数

N230 G65 H84 P-130 Q#100 R#101 //当#100 <#101时,向上返回到130程序段

N240 M99 //子程序结束



调用上述子程序的主程序如下:

O0010
N10 G54 G90 G00 X0 Y0 Z20 //进入加工坐标系

N20 M98 P9010 //调用钻孔子程序,加工圆周等分孔

N30 Z20 //抬刀

N40 G00 G90 X0 Y0 //返回加工坐标系零点

N50 M30 程序结束

设置G54:X=-400,Y=-100,Z=-50。

变量#500~#507可在程序中赋值,也可由MDI方式设定。


全站免回复看隐藏内容

谢谢略览

【温馨提示】技术问题请优先发到问答专栏,优胜教师团队将及时回复,谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表