数控车床a类宏程序讲解?
1.1概述
(1)宏程序的分类
首先,让我们下面说说宏程序的分类,A类和b类,首先在数控车床系统比较老的时候,我们的系统中就有A类宏,A类宏的格式是G65,现在已经基本淘汰了。随着科技的发展和系统的升级优化,目前的数控系统大多支持B类宏程序。一般来说,B类宏程序是现在的一个主流发展趋势,所以我们接下来的例子都是基于B类宏程序。
(2)宏程序的概念
简单理解一下什么是宏程序。可以理解为宏程序是在数控系统中利用数学公式、函数等计算方法结合g代码编制的程序,主要加工椭圆、曲线、各种大螺距螺纹、刀具轨迹等部分零件。随着科学技术的发展,线性零件如椭圆、抛物线等。可以通过使用软件或系统生成g代码进行加工,而对于大螺距异形螺纹等零件的软件还没有达到成熟,所以我们可以了解到宏程序在加工中可以起到非常大的作用。可以弥补多年来数控车床编程大螺距螺纹的困难。
(3)宏程序的特点
赋予价值
在宏程序中,我们通常使用变量最多,例如:
#11它是一个变量。我们称这个过程为赋值。换句话说,我们将等号后面的值1赋给#1。现在#1的值等于1,也可以理解为#1是代替值1的代号。
2.变量和应用
例如:#12(将值2赋给#1)
#21(将值1分配给#2)
#2#1(程序从上到下执行。想想现在#2的价值是多少?)
解决方法:程序执行第一步时,#1的值等于2,执行第二步时,#2的值等于1。执行第三步时,这里要注意。刚才在赋值过程中,等号后面的值赋给了等号前面,所以第一步赋值#1的时候,#1已经等于2了,所以执行第三步的时候,#2的值应该等于2,不是第二步。从这里我们可以看到,当程序中有相同的变量#时,后面的#代替了前面的#。
比如:#12
#13
最终结果#1的值应该等于3。所以后面代替了前面。
(4)变量的范围
1.局部变量(#1-#33)
什么是局部变量?局部变量是局部的,或者可以理解为在单个程序中有效。断电后,系统会自动复位。
2.公共变量(#100-#199,#500-#999)
公共变量和局部变量的区别在于,局部变量在局部或单个程序中有效,而公共变量是指如果一个程序既有主程序又有子程序,如果已经在主程序中赋值了,就可以在子程序享,不需要新赋值。和#100-#199与#500-#999的区别在于,前者断电清零,后者不会清零,会一直保留在系统中。例如:
#500坦[15]
一旦赋值,#500会保存在系统中,下次可以直接调用使用。
3.系统变量(#1000-#17200)
系统变量在我们的机床系统中是用来存储一些刀具补偿数据参数之类的,可以不去管它,慎用。
总结:一般情况下,我们用#1-#33写程序,有子程序的时候用#100-#199。
(5)宏程序中常用的计算
1.加法运算
示例:#12
#1#1^3那么#1的值等于2^35。
2.减法运算
示例:#13
#1#1-1然后经过计算,我们的值#1等于3-12。
3.乘法运算
在程序中用*代替乘法。
示例:#15
#2#1*2那么#2的计算值等于5*210。
4.除法运算
在程序中用/号代替除法。
例如:#110
#1#1/2,则#1的计算值等于10/25。
(6)常见的三角函数运算
1.正切值
例如#12*TAN[20]中,角在括号内。
(郑玄)
例如,#13*SIN[3]同上
(宇轩)
例如,#1COS[15]
、ACOS、ATAN(倒三角形)
5.SQRT(数学中平方根的意思和数学中的根号一样)
例如,#1SQRT[9],则#1的计算值等于3。
(7)宏程序的常用符号和含义
GT(大于)
GE(大于或等于)
LT(小于)
LE(小于或等于)
EQ(等于)
NE(不等于)
绝对值
和(和)
或(或)
(8)常用语法及应用
1.无条件跃迁GOTOn(n代表数值)
比如GOTO01这个程序段是指当程序执行到这个程序段时,无条件跳转到程序段中的N1,执行N1之后的程序段。
M3S500G99
T101M08
GOTO10(这里执行程序时,直接跳转到N10执行M30,跳过G0,所以这叫无条件跳转,就像我们一般程序中的跳转函数一样)。
G0X100.Z100。
N10M30
2.条件跳转IF[条件表达式]GOTOn
比如从这个程序中[#1GT15]GOTO10,我们理解如果满足括号中的条件,就会执行下面的GOTOjump语句;如果不满足括号中的条件,将不执行下面的GOTO跳转,而执行下面的程序段。
让让我们简单地写一个程序:
M3S500G99
T101M08N10#130(将值30分配给#1)
IF[#1LT50]GOTO10(先判断括号是否满足条件,如果满足执行跳转,则不满足执行下一步)。
M30
从这个程序中我们可以发现,当#130时,我们执行的是条件判断。让s判断#1现在等于30,那么在双括号里可以理解为30小于50,现在条件满足。所以他会执行GOTO跳转语句,跳转到N10继续执行)
3.强制赋值语句IF[条件表达式]THEN(执行语句)
例如,如果[#1gt20]那么#120(让让我们这样理解这句话。如果#1大于20,那么#1等于20,这意味着,如上所述,如果满足括号中的条件,将执行下面的THEN语句;否则,将不会执行下面的then语句。)
写一个简单的程序:
#13(将值3分配给#1)
#1#1-5(将计算值从#1-5重新分配到#1,即3-5-2,现在为#1-2)。
IF[#1LT0]THEN#10(强制赋值,如果#1小于0,则#强制等于0)
M30
让让我们分析一下上面的程序段。当我们完成减法运算时,#1的值已经等于-2,所以当我们执行强制赋值语句时,让让我们判断括号中的条件是否满足。如果-2小于0,则满足条件,因此执行THEN语句,如果不满足,则不执行THEN语句。)
4.条件判断语句WHILE[expression]DOn(n是范围为1-99的数值)
ENDn(n对应于初始n的值)
例如:WHILE[#12GT50]DO1
END1
在下面写一段程序:
#160
WHILE[#1GT50]DO1
G0X#1
G1Z-20。F0.2
G0U1.Z1。
END1
M30
当条件判断语句中括号内的条件满足时,该程序执行DO1和END1之间的程序段,如果条件不满足,则执行END1之后的程序段M30。
以上介绍的语法格式的用法以FANUCoi系列、广都和三菱系统为例。西门子、宝源、新一代等系统以说明书为准!!
新代系统h代表什么?
新一代系统H代表H0010:调用子程序0010(该子程序应放在主程序后面,序号前有N:N0010)。
l调用子程序的次数
把这个子程序和主程序打包在一个程序里的好处是:子程序是特定的,特殊的,只在这个主程序里有效,安全性高,修改子程序方便。