资源描述
浅 析 宏 程 序
引言:在数控程序的编制中,宏程序是含有变量的程序。因为它允许使用变量、运算以及条件功能,则使程序顺序结构更加合理。宏程序编制方便、简单易学,是手工编程的一部分,多用于零件形状有一定规律的情况下。
关键词: 运算 变量 宏程序
1. 1.算术运算、逻辑运算与条件
1.1 算术运算
算术运算主要是指加、减、乘、除、乘方、函数等。在宏程序中经常使用的
算术运算有:
+ (加)
― (减)
* (乘)
∕ (除)
SIN (正弦)
ASIN (反正弦)
COS (余弦)
ACOS (反余弦)
TAN (正切)
ATAN (反正切)
SQRT (平方根)
ABS (绝对值)
ROUND (舍入)
EXP (指数)
LN (对数)
FIX (上取整)
FUP (下取整)
MOD (取余)
1.2 逻辑运算
逻辑运算可以理解为比较运算,它通常是指两个数值的比较或者关系。在宏程序中,主要是对两个数值的大小进行比较,常用的运算有:
EQ (等于)
NE (不等于)
GT (大于)
GE (大于且等于)
LT (小于)
LE (小于且等于)
AND (与)
OR (或)
NOT (非)
(注:根据数控系统不同,它的表示方法可能有差别)
1.3 条件
条件是指程序中的条件语句,通常与转移语句同用,在宏程序中的常用条件语句有:
GOTO 无条件跳转
IF 条件转移
WHILE 当型循环
2、赋值与变量
2.1 赋值
赋值是指将一个数据赋予给一个变量。如:#1=0,则表示#1的值是0。其中#1代表变量,“#”是变量符号(注:根据数控系统不同,它的表示方法可能有差别),0就是给变量#1赋的值。这里的“=”号是赋值符号,起语句定义作用。赋值的规律有:
(1) (1) 赋值号两边内容不能随意互换,左边只能是变量,右边只能是表达式。
(2) (2) 一个赋值语句只能给一个变量赋值。
(3) (3) 可以多次向同一个变量赋值,新变量值取代原变量值。
(4) (4) 赋值语句具有运算功能,它的一般形式为:变量=表达式。
(5) (5) 在赋值运算中,表达式可以是变量自身与其它数据的运算结果,如:
#1=#1+1,则表示#1的值为#1+1,这一点与数学运算是有所不同的。
(6) (6) 赋值表达式的运算顺序与数学运算顺序相同。
(7) 角度的单位要用浮点表示法。如:30o30’用30.5来表示。
(8) 不能用变量代表的地址符有:O、N、:、/。其次,辅助功能的变量有最大值限制,比如将M30赋值=300显然是不合理的。
2.2 变量
变量是指在一个程序运行期间其值可以变化的量。变量可以是常数或者表达式,也可以是系统内部变量,变量在程序运行时参加运算,在程序结束时释放为空。其中内部变量称为系统变量,是系统自带,也可以人为的为其中一些变量赋值,内部变量主要分为四种类型:
(1) 空变量 指永远为空的变量。
(2) (2) 局部变量 用于存放宏程序中的数据,断电时丢失为空。
(3) (3) 公共变量 可以人工赋值,有断电为空与断电记忆两种。
(4) (4) 系统变量 用于读写CNC数据变化。
3、宏程序的应用
3.1 通过下边的程序来看宏程序的应用方法
主程序:O0001 G40 G90 G92 X0 Y0 Z0 ; 确定坐标系;
N10 G65 P0002 A100 B120 C150 ; 调用宏程序并赋初值;
N20 M30 ; 程序结束;
子程序:O0002 G01 X#1 Y#2 F[#3+#1] ; 子程序运行;
N10 M99 ; 返回主程序;
上边的程序是将宏程序以调用子程序的方式来实现。在主程序第N10段使用调用宏程序指令G65,并为变量赋初值。A、B、C都是子程序中的变量,A代表子程序中的变量#1,#1赋值为100,B代表子程序中的变量#2,#2赋值为120,C为子程序中的变量#3,#3赋值为150。当程序执行到主程序中G65时,会自动执行子程序,当执行到子程序中X#1时,为自动调用主程序中为其赋的值100,X#1也就相当于X100,Y和F也同样。
在使用表达式代表变量时,要用括号将表达式括起来,如以上程序中的F[#3+#1]。
3.2 用自变量的自加功能实现循环
对于一个程序中某些程序段,因需要进行循环时,只用一个自变量自加功能及IF语句配合跳转语句即可完成。比如下边的程序:
N10 G90 G01 X10 ;
N20 G91 Y10 ;
N30 X15 Y50 ;
N40 G90 X0 Y0 ;
如果想要将第N20和N30段作为循环体进行循环,只用在第N30段与第N40段加入以下程序段:
#1=#1+1 ;
IF[#1LT2]GOTO20 ;
即可实现循环。如果要循环5次,只用更改IF语句为:
IF[#1LT5]GOTO20
就可以轻松的实现循环5次,其中#1的初值可以省略。IF的意思为“如果”。上面IF语句的中文意思为:‘如果变量#1的值小于5,那么跳转到第N20段程序’,如果不小于5,那么程序向下执行。
3.3 加工一椭圆,来说明宏程序的优越性。椭圆长轴为100,短轴为50(如图1)。
图1
加工路线为O → X → Y → -X → -Y → X → O,假如现在要加工内形,它的刀具轨迹如下图(图2)
图2
用普通算点的方法来加工这个椭圆显然是不科学的,如果采用编程软件(如MASTERCAM)来生成这个程序的话(设使用Φ10的铣刀,步距取1mm),那么程序长度将在400段左右,对于程序本身的阅读和修改都不是很方便 ,而且也会过多的占用计算机的内存。使用宏程序的话,那么很轻意的就可以解决这个问题,程序如下:
O0001 G92 X0 Y0 Z0 S1200 M03 ; 确定坐标系;
N10 G01 G41 X50 ; 图1中OX距离;
N20 #1=0 ; 将角度设为自变量,赋初值为0;
N30 X[50*COS[#1]] Y[25*SIN[#1]] F200 ;
XY轴联动的步距;
N40 #1=#1+1 ; 自变量每次自加1O;
N50 IF[#1LT360]GOTO30 ; 如果变量自加后不足360度,则
转到第30段执行,否则执行下一
段;(30前不用加行号N)
N60 GO G40 X0 ; 撤消刀补,回到起点
N70 M30 ; 程序结束。
只用很简单的几段程序就可以完成椭圆的加工,在程序中第N20段其实也可以省略,通过上例可以看出,改变刀具流向的程序只有第N30段,这一段也就是椭圆的参数方程。在这个程序中,角度是自变量,每执行到第N40段时,角度自加一度,直至到达360度自动跳转到第N60段。如果我们将自变量的角度改变为0.1度,那么只用改变第N40段为:#1= #1+0.1,椭圆的精度提高了很多,步距减小了很多,可它的程序长度并没有因此而改变。即使要将此椭圆轮廓加工多次,至多也只用加两循环语句而已。
上面的程序是依照椭圆的标准参数方程得到,如果依照标准参数方程编写宏程序,那么同样只用短短的几段程序即可以加工出另外的一些曲线。比如:正圆、渐开线、摆线等。有一些非圆曲线虽然没有标准的参数方程,但我们仍可以利用作图法的规律很容易的求出最接近它们的形状,如抛物线,阿基米德螺旋线、正弦曲线等。还有,比如加工圆球类、锥台类、大面积渐近去余量等等都可以使用宏程序,这里不再一一举出。特别值得一提的是,目前有许多回转工作台不支持刀具补偿功能,但是如果运用宏程序,很轻松的就可以弥补这个制造缺陷。
总结:宏程序的最大特点就是将有规律的形状或尺寸用最短的程序段表示出来,极具有易读性和易修改性,熟练的掌握宏程序,才能使一个程序更加合理完善。随着数控技术的发展,计算机自动编程逐渐会取代手工编程,但宏程序的简捷,依然具有实用价值。不论使用什么方法,最短时间内,编制出合格的程序,加工出合格的零件,这才是我们所要追求的。
(未完待续)
专业文档供参考,如有帮助请下载。
展开阅读全文