宏程序基础
![宏程序基础](https://img.360docs.net/img16/12muo1fs00yji85b1j9gr7og7guk1fnp-61.webp)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1概述
1.2
1.3
1.4一、宏程序的分类
1.5首先我们来讲一下宏程序的分类,A类和B类。
首先在数控车系统比较老的时候,我们系统里
面有A类宏,A类宏格式为G65格式,现在已
经基本淘汰。随着科技发达,系统的升级优化,现在的数控系统大多支持B类宏程序,总体而
言,现在B类宏是一个主流发展趋势,所以接
下来我们的实例讲解都以B类宏程序为例。1.6
1.7
1.8二、宏程序的概念
1.9
1.10简单来理解宏程序是什么可以这样理解,宏程
序就是利用数学公式,函数等计算方式,配合
数控系统中的G代码编制出的一种程序,主要
加工一些像椭圆,曲线,各类大螺距螺纹和刀
具路线相识的一些零件。随着科技发达,像椭
圆,抛物线,等线性零件,用软件或则系统自
代G代码可以完成加工,而大螺距异型螺纹这
类零件,软件还没达到成熟,所以我们学会宏
程序在加工中可以起到一个非常大的作用。可
以弥补多年来数控车对大螺距螺纹的编程难的
一个提高。
1.11
1.12
1.13三、宏程序的特征
1.14
1.151.赋值
1.16在宏程序中我们通常用法最多的就是变量,比
如:
1.17#1=1 它就是一个变量。我们把这一过程,称为
赋值。也就是说,我们把等号后面的数值1,赋
值给#1。而现在#1的值就等于1,也可以理解
为#1就是一个代号,用来代替数值1。
1.18
1.19
2.变量和应用
1.20比如:#1=2(把数值2赋值给#1)
1.21#2=1(把数值1赋值给#2)1.22#2=#1(程序从上往下执行,思考一下现在#2的
值等于多少)
1.23
1.24解:当程序执行第一步的时候#1的值等于2,
当执行第二步的时候#2的值等于1,当执行第
三步的时候这里要注意了,刚才讲过赋值过程,是等号后面的值赋值给等号前面,所以当#1在
第一步赋值以后,#1已经等于2了,所以在执
行第三步的时候#2的值应该等于2,不在是第
二步的1了。从这里我们可以看出,当程序中
有相同的变量#的时候,后面的#号代替前面的#
号。
1.25比如:#1=2
1.26#1=3
1.27
1.28最后结果#1的值因该是等于3的。所以说后面
的代替前面的。
1.29
1.30
1.31四、变量的取值范围
1.32
1.331.局部变量(#1-#33)
1.34什么叫局部变量,局部变量就是在局部或则可
以理解为在单个程序中有效。断电以后系统自
动清零。
1.35
1.36
2.公共变量(#100-#199,#500-#999)
1.37公共变量和局部变量的区别在于,局部变量是
在局部,或则单个程序中有效,而公共变量是
指如果一个程序同时拥有主程序和子程序的情
况下,在主程序中如果已经赋值,在子程序中
可以不用从新赋值,可以共用。而#100-#199和
#500-#999的区别在于,前者断电清零,而后者
不会清零会一直保存在系统内部。比如:
1.38#500=TAN[15]
1.39
1.40#500一旦赋值就将保存在系统内部,下次可以
直接调用#500使用。
1.41
1.423.系统变量(#1000-#17200)
1.43系统变量是用于我们机床系统储存一些刀补数
据参数等等的东西,我们可以不用管它,不会
用的,慎用)
1.44
1.45总结:一般情况下我们写程序用#1-#33,当有子
程序的时候我们用#100-#199.
1.46
1.47
1.48五、宏程序中常用的计算
1.49
1.501.加法运算
1.51例如:#1=2
1.52#1=#1+3 那么#1的值等于2+3=5
1.53
1.54
2.减法运算
1.55例如:#1=3
1.56#1=#1-1 那么经过计算我们的#1的值等于3-1=2 1.57
1.583.乘法运算
1.59程序中用*号来代替乘法
1.60例如:#1=5
1.61#2=#1*2 那么计算出来#2的值等于5*2=10
1.62
1.634.除法运算
1.64程序中用/ 号来代替除法运算
1.65例如:#1=10
1.66#1=#1/2 那么经过计算#1的值等于10/2=5
1.67
1.68
1.69六、常用三角函数运算
1.70(正切)
1.71例如#1=2*TAN[20] 中括号里面是角度
1.72
1.73(正玄)
1.74例如#1=3*SIN[3] 同上
1.75
1.76(余玄)
1.77例如#1=COS[15]
1.78
1.79、ACOS、ATAN(反三角)
1.80
1.81(数学中的开平方的意思,和数学中根号一样)1.82例如#1=SQRT[9] 那么计算出来#1的值等于3 1.83
1.84
1.85七、宏程序的常用符号和含义
1.86G T(大于)
1.87G E(大于或等于)1.88L T(小于)
1.89L E(小于或等于)
1.90E Q(等于)
1.91N E(不等于)
1.92A BS(绝对值)
1.93A ND(与)
1.94O R(或者)
1.95
1.96八、常用的语法和应用
1.971.无条件转移GOTO n(n表示数值)
1.98例如:GOTO01 此程序段的意思是当程序中执行
到这一程序段的时候无条件跳转到程序段中N1的地方,执行N1后面的程序段。
1.99M3 S500 G99
1.100
1.101T101 M08
1.102
1.103GOTO 10 (当程序执行到这里的时候,直
接跳转到N10那个程序段执行M30,跳过了G0那一步,所以这叫做无条件跳转,和我们一般程序中跳段功能一样)
1.104
1.105G0 X100. Z100.
1.106
1.107N10 M30
1.108
1.109
2.有条件跳转IF[条件表达式] GOTO n
1.110例如:IF[#1 GT 15] GOTO 10 从这段程序当
中,我们这样理解,如果中括号里面的条件满足,那么就执行后面的GOTO跳转语句,如果中括号里面条件不满足,那么不执行后面的GOTO 跳转,执行后面一个程序段。
1.111我们简单来写一个程序:
1.112M3 S500 G99
1.113
1.114T101 M08
1.115
1.116N10#1=30(把数值30赋值给#1)
1.117
1.118IF[#1 LT 50] GOTO 10(首先判断中括号是不
是满足条件,如果满足执行跳转,不满足执行下一步)
1.119M30
1.120