当前位置:文档之家› 浅谈数控编程中的宏程序

浅谈数控编程中的宏程序

浅谈数控编程中的宏程序
浅谈数控编程中的宏程序

浅谈数控编程中的宏程序

[摘要] 随着现代制造技术的发展和数控机床的日益普及,数控加工在我国得到广泛的应用,数控加工中很重要的一部分就是编程,从CAD/CAM软件出现以后,人们过分依赖CAD/CAM软件,使得无论程序大小,加工难易编程人员习惯使用各种CAD/CAM软件,而把手工编程遗忘了,尤其是博大精深的宏程序。宏程序在数控编程中不应该被遗忘,而是应该很好的使用,它有着自动编程软件不可取代的优势。

[关键词] 数控编程宏程序CAD/CAM 数控加工

一.引言

在CAD/CAM软件普遍存在的今天,手工编程的应用空间日趋减小,数控世界有一种说法很流行“宏程序已经没有什么用”,其实任何数控系统都有很多指令在一般情况下用不着,那他们是否也没有用呢?这显然不对,对宏程序也是如此,原因只是大家对宏程序不熟悉,往往误以为宏程序深不可测而已,在实际工作中,宏程序确实也有广泛的应用空间,并且能够方便手工编程,锻炼操作者的编程能力,帮助操作者更加深入的了解自动编程的本质。

二.认识宏程序

在一般的程序编制中程序字为常量,一个程序只能描述一个几何形状,当工件形状没有发生改变但是尺寸发生改变时,就没有办法了,只能重新进行编程,缺乏灵活性和适用性。当我们所要加工的零件如果形状没有发生变化只是尺寸发生了一定的变化的情况时,我们只需要在程序中给要发生变化的尺寸加上几个变量再加上必要的计算公式就可以了,当尺寸发生变化时只要改变这几个变量的赋值参数就可以了。

它是利用对变量的赋值和表达式来进行对程序的编辑的,这种有变量的程序叫宏程序。

三.宏程序与自动编程的比较

自动编程有自动编程的好处,但是自动编程也有其不利于加工方面的问题,在加工不规律的曲面时利用自动编程确实是很好,但是在加工有规律的曲面时就不见得了,加工有规律的工件的时候用宏程序加工要比用自动编程软件要强的

多,而且宏程序比较精练,不象宏程序那么烦琐,而且比较长,看起来比较麻烦。下文将对CAD/CAM生成的程序与宏程序进行比较:

1.宏程序与普通程序的对比

普通编程是利用每个指令代码的功能,按照规定进行编程即可,有的时候这些简单的指令不能满足加工要求,因此系统提供了用户宏程序功能,使用户可以对数控系统进行一定功能的扩展,普通程序只能使用常量进行编程而且常量之间不可以进行计算,而宏程序则可以使用变量进行编程,并可以给变量进行赋值,变量之间可以根据程序中给出表达式进行计算。

当工件形状没有变化,但尺寸发生变化时,只需改变变量中几个与尺寸有关的值,其他的表达式无须改变。同时在控制工件尺寸时也很方便,只要将跟刀具有关的变量改变其值就可以。

2.宏程序编程比较简短

宏程序是程序编制的高级形式,程序编制的质量与编程人员的素质息息相关,宏程序里应用了大量的编程技巧。它利用数学关系的表达,加工刀具的选择,走刀方式的取舍等等,这些都使得宏程序的精度很高,特别是对于中等难度的零件,使用宏程序加工要比自动编程加工快的多。

另外很重要的一点,CAD/CAM所生成的程序很多,而且非常的烦琐,有的时候自动编程的程序长度可能是宏程序长度几十倍,甚至几百倍,加工时间也会大大增加。

加工一个半径为25的半球的程序同时采用自动编程和手工编程,采用同样的刀具同样的加工参数,宏程序只有20几行,而进行自动编程软件编制的程序则多达2000多行,而且自动编程所生成的程序几乎是G01,G02,G03等简单的指令组成,但是后面的数字全部是小数,采用的直线逼近圆或直线逼近曲线组成的,修改很麻烦,有的时候可以说是无从下手。从此可以看出宏程序是很精练的程序。宏程序是手工编程,CAD/CAM是自动编程,手工编程是自动编程的基础在任何时候手工编程都是必须掌握的。

3.影响自动编程的加工精度的因素

自动编程产生的加工程序的精度受多方面因素的影响,,首先它受CAD/CAM 软件建模时的计算精度,不同软件之间CAD图档的转换精度的影响,其次受自动

编程软件在生成NC刀具轨迹是的计算精度影响,再者就是后处理环节有时也会对其有影响。

上面说过,自动编程生成的程序多数采用的直线逼近曲线,表面看上去是圆或曲线,而实际上是很多的台阶或者是N边形,只不过是这个台阶很小或者N 边形的N很大而已。在加工圆时走的轨迹不是一个整圆,精度可想而知不如轨迹为整圆。如下图示:

4.自动编程与宏程序的加工速度的区别

因为自动编程生成的程序比较烦琐,可能加工一个简单的东西,就会有几千乃至上万行的程序,而机床内部程序的存储空间是有限的,FANUC 0I 系统的标准配置一般为128K或256K,这上千乃至上万行的程序不止128K或256K,这就需要DNC方式在线加工,此时机床与电脑之间的传输速度成了影响加工速度的关键,目前的机床大多数采用的是R232口的串口通信来实现在线加工,大多数系统所支持的R232口最大的传输波特率为19200bit/s,即使是在最大的传输速度下,当计算精度较高,进给速度较快时,程序的传输速度就跟不上,出现进给运动有明显的断续的现象,采用其他方法也不会太大的改观。

使用宏程序加工时由于计算的速度较快,不会出现加工中断续的现象。

四.编制宏程序的步骤及宏程序常出现的问题

1.宏程序编程的步骤:

(1).确定走刀轨迹,确定加工工件时的走刀轨迹,刀具如何运动,确定程序中有几个变量值。需要几个变量号。

(2).由动作可知道有几层变量,确定每层的计算表达式,一层变量为一个循环。确定这曾循环之间的关系及数学表达式。

(3).将变量的初始值放在此层循环的外边,不可放在此层循环内,否则,

没有计算结果,永远执行初始值。执行死循环。将计算表达式放在循环内,以便刀具按照计算的轨迹进行运动。

2.例:半球的加工

思路:从下往上进行加工,在当前角度时进行加工,铣一个整圆,之后改变上升的高度和加工当前角度的圆半径。

首先按照上面的步骤进行分析,本例采用球刀从下往上进行加工。先在半球底部铣整圆,之后Z轴进行抬高并改变上升后整圆的半径。半球的加工主要控制的是每次Z轴的上升的尺寸,这里同过控制半球的角度来进行控制Z轴的变化,即每变化一个角度半径的变化量(主要控制#4就可以了)。由此可见,我们加工半球的宏程序只需要一层表达式,就是每次角度变化后的Z轴的高度,以及X 方向的尺寸(半球的半径从下往上逐渐减小),X为7号变量,Z为8号变量,7号8号变量都可以根据4号的变量值进行计算,因此只要控制4号变量就可以了,控制每次的递增量。

球加工的宏程序采用一层循环,控制角度的变化,角度从0度增加到90度一个半球即加工好,每次增加2度。每层上升的距离采用圆弧加工,较直线进刀准确一些。

半球加工的宏程序

O0001;程序号

#1= 球半径

#2= 刀具半径

#12=#1+#2 刀具中心的走刀轨迹

#4=0 起始角度

#17=2 角度每次的变化量

#5=90 角度变化的终止值

G90G54G40G49; 对加工进行设置,绝对坐标编程,取消补偿G00X0Y0Z30; 主轴到达要求位置

S500M03; 主轴正转,500r/min

X#12; X向到达加工位置

Z10; Z轴快速下刀

G01Z-#1F80; Z轴下到Z向加工开始位置

WHILE[#4LE#5]DO1; 判断角度如果没有达到90度,执行循环一#6=#2*COS[#4]; 当前角度的X向尺寸,即该角度时的圆半径G90G17G03I-#6F150; 用该角度时的半径进行加工圆

#7=#12*[COS[#4+#7]-COS[#4]; 计算增加角度后的X向增量

#8=#12*[SIN[#4+#7]-SIN[#4]; 计算增加角度后的Z向增量

G91G18G02X#7Y#8R#12; 用相对坐标移动刀具至增加后的坐标值

#4=#4+#17; 计算角度

END1; 循环结束

G00Z50; Z轴抬刀

M30; 程序结束

上述程序已经在FANUC 0I系统上验证过,能够正常运行。但是有的时候理论上没有任何问题的宏程序到机床不一定能够正常运行的。哪怕是有一点的小问题也是不行的。有的时候变量赋值错了,不执行循环而是只执行一个次。这些都是常见的问题。下面是在执行宏程序时常见的几种报警信息以及解决方法:

3.宏程序常出现的问题及解决方法

(1). FORMAT ERROR IN MACRO

检查:查看程序的格式,如:

#1=30*COS[#3] 输成 #1=30*COS#3(错误)

(2). NC MACRO STATEMENT IN SAME BLOOK 检查:①.#3=30*COS[#5] #3=30*COS[#5]

#4=30*SIN[#5] G41#4=30*SIN[#5]D01(错误,半径补偿不

能在这建立)

G41 G01 X#3 Y#4D01 G01 X#3 Y#4

②.#1=10 #2=20 #1=10 #2=20

G01 X#1 Y#2 G01 #1 Y#2

(3). ADDRES NOT FOUND

检查:(1).G01 X[#5-1] G01[#5-1]

(4). 走刀轨迹错误

检查:各个变量的赋值有没有错误

五:小结

宏程序在现在的加工中都能用到,而且在加工有规律的工件时无论是加工速度还是加工精度都比自动编程来得好,手工编程是基本工,任何时候都是必须掌握的。不能落在一边,要利用起来,不能单纯的依赖自动编程,现在的全国数控大赛只允许手工编程,而且国外的一些数控相关的考试都是采用手工编程,不允许使用CAD/CAM软件进行编程,可见宏程序是很重要的。在能用手工编程的工件尽量用手工编程,我们在平时就应该在能用宏程序加工时把宏程序用上,以锻炼操作者的编程能力,经过一定的努力宏程序一定能应用得很够熟练。

参考文献:

1. 方沂主编. 数控机床编程与操作[M]. 北京:国防工业出版社,1999.

2. 北京FANUC机电有限公司. BEIJIN-FANUC OI-MB系统操作说明书.

3. 孙德茂. 数控机床铣削加工直接编程技术[M]. 北京:机械工业出版社,200

4.

新代数控车床宏程序说明

一.用户宏程序的基本概念 用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。 在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。其代表指令称为用户宏命令,也称作宏程序调用指令。 用户宏有以下四个主要特征: 1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式; 2)能够进行变量之间的各种运算; 3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参; 4)容易实现程序流程的控制。 使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。 二.基本书写格式 数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。“@MACRO”关键词必须是大写字母。 对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。 例一:MACRO格式文档 % @MACRO //用户宏程序文档,必须包含“@MACRO”关键词 IF @1 = 1 THEN G00 X100.; ELSE G00 Z100.; END_IF; M99; 例二:ISO格式文档 % 这是标题行,可当作档案用途说明,此行可有可无 G00 X100.; G00 Z100.; G00 X0; G00 Z0; M99;

数控宏程序的使用方法

数控宏程序的使用方法 Document serial number【KK89K-LLS98YT-SS8CB-SSUT-SST108】

数控宏程序的使用方法一、A类宏程序 1)变量的定义和替换 #i=#j 编程格式 G65 H01 P#i Q#j 例 G65 H01 P#101 Q1005; (#101=1005) G65 H01 P#101 Q-#112;(#101=-#112) 2)加法 #i=#j+#k 编程格式 G65 H02 P#i Q#j R#k 例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103) 3)减法 #i=#j-#k 编程格式 G65 H03 P#i Q#j R#k 例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103) 4)乘法#i=#j×#k 编程格式 G65 H04 P#i Q#j R#k 例 G65 H04 P#101 Q#102 R#103;(#101=#102×#103) 5)除法 #i=#j / #k 编程格式 G65 H05 P#i Q#j R#k 例 G65 H05 P#101 Q#102 R#103;(#101=#102/#103) 6)平方根 #i= 编程格式 G65 H21 P#i Q#j 例 G65 H21 P#101 Q#102;(#101= ) 7)#i=│#j│ 编程格式 G65 H22 P#i Q#j 例 G65 H22 P#101 Q#102;(#101=│#102│) 8)复合平方根1 #i= 编程格式 G65 H27 P#i Q#j R#k 例 G65 H27 P#101 Q#102 R#103;( #101= 9)复合平方根2 #i= 编程格式 G65 H28 P#i Q#j R#k 例 G65 H28 P#101 Q#102 R#103 1)逻辑或 #i=#j OR #k 编程格式 G65 H11 P#i Q#j R#k 例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103) 2)逻辑与 #i=#j AND #k

浅谈数控编程中的宏程序

浅谈数控编程中的宏程序 江苏经贸技师学院王军歌 [摘要] 随着现代制造技术的发展和数控机床的日益普及,数控加工在我国得到广泛的应用,数控加工中很重要的一部分就是编程,从CAD/CAM软件出现以后,人们过分依赖CAD/CAM软件,使得无论程序大小,加工难易编程人员习惯使用各种CAD/CAM软件,而把手工编程遗忘了,尤其是博大精深的宏程序。宏程序在数控编程中不应该被遗忘,而是应该很好的使用,它有着自动编程软件不可取代的优势。 [关键词] 数控编程宏程序CAD/CAM 数控加工 一.引言 在CAD/CAM软件普遍存在的今天,手工编程的应用空间日趋减小,数控世界有一种说法很流行“宏程序已经没有什么用”,其实任何数控系统都有很多指令在一般情况下用不着,那他们是否也没有用呢?这显然不对,对宏程序也是如此,原因只是大家对宏程序不熟悉,往往误以为宏程序深不可测而已,在实际工作中,宏程序确实也有广泛的应用空间,并且能够方便手工编程,锻炼操作者的编程能力,帮助操作者更加深入的了解自动编程的本质。 二.认识宏程序 在一般的程序编制中程序字为常量,一个程序只能描述一个几何形状,当工件形状没有发生改变但是尺寸发生改变时,就没有办法了,只能重新进行编程,缺乏灵活性和适用性。当我们所要加工的零件如果形状没有发生变化只是尺寸发生了一定的变化的情况时,我们只需要在程序中给要发生变化的尺寸加上几个变量再加上必要的计算公式就可以了,当尺寸发生变化时只要改变这几个变量的赋值参数就可以了。 它是利用对变量的赋值和表达式来进行对程序的编辑的,这种有变量的程序叫宏程序。 三.宏程序与自动编程的比较 自动编程有自动编程的好处,但是自动编程也有其不利于加工方面的问题,在加工不规律的曲面时利用自动编程确实是很好,但是在加工有规律的曲面时就不见得了,加工有规律的工件的时候用宏程序加工要比用自动编程软件要强的

数控宏程序的使用方法

数控宏程序的使用方法 一、A类宏程序 1)变量的定义和替换#i=#j 编程格式G65 H01 P#i Q#j 例G65 H01 P#101 Q1005;(#101=1005) G65 H01 P#101 Q-#112;(#101=-#112) 2)加法#i=#j+#k 编程格式G65 H02 P#i Q#j R#k 例G65 H02 P#101 Q#102 R#103;(#101=#102+#103) 3)减法#i=#j-#k 编程格式G65 H03 P#i Q#j R#k 例G65 H03 P#101 Q#102 R#103;(#101=#102-#103) 4)乘法#i=#j×#k 编程格式G65 H04 P#i Q#j R#k 例G65 H04 P#101 Q#102 R#103;(#101=#102×#103) 5)除法#i=#j / #k 编程格式G65 H05 P#i Q#j R#k 例G65 H05 P#101 Q#102 R#103;(#101=#102/#103) 6)平方根#i= 编程格式G65 H21 P#i Q#j 例G65 H21 P#101 Q#102;(#101= ) 7)绝对值#i=│#j│ 编程格式G65 H22 P#i Q#j 例G65 H22 P#101 Q#102;(#101=│#102│) 8)复合平方根1 #i= 编程格式G65 H27 P#i Q#j R#k 例G65 H27 P#101 Q#102 R#103;( #101= 9)复合平方根2 #i= 编程格式G65 H28 P#i Q#j R#k 例G65 H28 P#101 Q#102 R#103 1)逻辑或#i=#j OR #k 编程格式G65 H11 P#i Q#j R#k 例G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103) 2)逻辑与#i=#j AND #k 编程格式G65 H12 P#i Q#j R#k 例G65 H12 P#101 Q#102 R#103;#101=#102 AND #103 (3)三角函数指令 1)正弦函数#i=#j×SIN(#k) 编程格式G65 H31 P#i Q#j R#k (单位:度) . 例G65 H31 P#101 Q#102 R#103;(#101=#102×SIN(#103)) 2)余弦函数#i=#j×COS(#k) 编程格式G65 H32 P#i Q#j R#k (单位:度) 例G65 H32 P#101 Q#102 R#103;(#101=#102×COS(#103)) 3)正切函数#i=#j×TAN#k 编程格式G65 H33 P#i Q#j R#k (单位:度) 例G65 H33 P#101 Q#102 R#103;(#101=#102×TAN(#103)) 4)反正切#i=A TAN(#j/#k) 编程格式G65 H34 P#i Q#j R#k (单位:度,0o≤ #j ≤360o) 例G65 H34 P#101 Q#102 R#103;(#101=A TAN(#102/#103) (4)控制类指令 编程格式G65 H80 Pn (n为程序段号) 例G65 H80 P120;(转移到N120) 2)条件转移1 #j EQ #k(=) 编程格式G65 H81 Pn Q#j R#k (n为程序段号) 例G65 H81 P1000 Q#101 R#102 当#101=#102,转移到N1000程序段;若#101≠ #102,执行下一程序段。 3)条件转移2 #j NE #k(≠) 编程格式G65 H82 Pn Q#j R#k (n为程序段号) 例G65 H82 P1000 Q#101 R#102 当#101≠ #102,转移到N1000程序段;若#101=#102,执行下一程序段。 4)条件转移3 #j GT #k (> ) 编程格式G65 H83 Pn Q#j R#k (n为程序段号) 例G65 H83 P1000 Q#101 R#102 当#101 > #102,转移到N1000程序段;若#101 ≤#102,执行下一程序段。 5)条件转移4 #j LT #k(<) 编程格式G65 H84 Pn Q#j R#k (n为程序段号) 例G65 H84 P1000 Q#101 R#102 当#101 < #102,转移到N1000;若#101 ≥ #102,执行下一程序段。 6)条件转移5 #j GE #k(≥) 编程格式G65 H85 Pn Q#j R#k (n为程序段号) 例G65 H85 P1000 Q#101 R#102 当#101≥ #102,转移到N1000;若#101<#102,执行下一程序段。 7)条件转移6 #j LE #k(≤) 编程格式G65 H86 Pn Q#j Q#k (n为程序段号) 例G65 H86 P1000 Q#101 R#102 当#101≤#102,转移到N1000;若#101>#102,执行下一程序段。 二、B类宏程序 1.定义 #I=#j 2.算术运算 #I=#j+#k (加) #I=#j-#k (减) #I=#j×#k (乘) #I=#j/#k (除) 3.1 逻辑函数之布尔函数 =EQ等于 ≠NE不等于 >GT大于 ]GOTO n 条件式:例:#j=#k用#j EQ #k 表示,即IF[#j EQ #k] GOTO n 3〉.条件转移2格式:IF[<条件式>]THEN #I 例:IF[#j EQ #k] THEN #a=#b 4〉.循环格式:WHILE [<条件式>] DOm ,(m=1、2、3) N10~~~~~~~~~ N20~~~~~~~~~~~~ ENDm (上下两个m只能为1、2、3且必须相 同,这样才能够成一段程序的循环) 1.说明1) 角度单位为度例:90度30分为90.5度 2) A TAN函数后的两个边长要用“1”隔开例:#1=A TAN[1]/[-1]时,#1为了35.0 3) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入 例:设#1=1.2345,#2=2.3456,设定单位1μm G91X-#1;X-1.235 X-#2F300;X-2.346 X[#1+#2];X3.580 未返回原处,应改为X[ROUND[#1]+ROUND[#2]]; 4) 取整后的绝对值比原值大为上取整,反之为下取整例:设#1=1.2,#2=-1.2时若#3=FUP[#1]时,则#3=2.0 若#3=FIX[#1]时,则#3=1.0 若#3=FUP[#2]时,则#3=-2.0 若#3=FIX[#2]时,则#3=-1.0 5) 简写函数时,可只写开头2个字母例:ROUND→RO FIX→FI GOT O→GO 6) 优先级函数→乘除(*,1,AND)→加减(+,-,OR,XOR)例:#1=#2+#3*SIN[#4]; 7) 括号为中括号,最多5重,园括号用于注释语句例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重) 转移与循环指令

(整理)数控宏程序教程(车床篇)1(经典)

由浅入深宏程序1-宏程序入门基础之销轴加工对于没有接触过宏程序 人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。 对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。 下面大家先看一个简单的车床的程序,图纸如下: 要求用外圆刀切削一个短轴,这里只列举程序的前几步: O0001 T0101; M3S800; G0X82Z5; G0X76; G1Z-40F0.2; X82; G0Z5; G0X72; G1Z-40F0.2; X82; G0Z5;

G0X68; G1Z-40F0.2; X82; G0Z5; G0X68; G1Z-40F0.2; X82; G0Z5; ........ G0X40; G1Z-40F0.2; X82; G0Z5; G0X150Z150; M5; M30; 从上面程序可以看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。因此可以将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。 T0101; M3S800; G0X82Z5; #1=76;赋初始值,即第一次切削直径 N10 G0X[#1] ;将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。N10是程序 G1Z-40F0.2;段的编号,用来标识本段,为后面循环跳转所用。 X82; G0Z5; #1=#1-4;每行切深为2mm,直径方向递减4mm IF [#1GE40] GOTO 10如果#1 >= 40,即此表达式满足条件,则程序跳转到N10继续执行。G0X150Z150;当不满足#1 >= 40,即#1<40,则跳过循环判断语句,由此句继续向后执行。M5; M30;

数控宏程序实例

第7章宏程序 7.3 宏程序调用 7.3.1 宏程序调用指令(G65) 在主程序中可以用G65调用宏程序。指令格式如下: G65 P L 〈自变量赋值〉; 其中:P指定宏程序号:L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。 例如: 主程序: O7002 ... G65 P7100 L2 A1.0 B2.0 ... M30 宏程序: #3=#1+#2; IF [#3 GT 360] GOTO 9; G00 G91 X#3 N9 M99 7.3.2 自变量赋值 自变量赋值有两种类型。自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十次作为地址。表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系: 表7—3 自变量赋值的地址和变量号码之间的对应关系

时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算 在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。

运算的优先顺序如下: 1)函数。 2)乘除,逻辑与。 3)加减,逻辑或,逻辑异或。 可以用[ ]来改变顺序 7.4.2 控制指令 1.无条件转移(GOTO语句) 语句格式为: GOTO n 其中n为顺序号(1—9999),可用变量表示。例如: GOTO 1; GOTO #10; 2. 条件转移(IF 语句) 语句格式为: IF [条件式] GOTO n 条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序段。 条件式有以下几类: # j EQ # K # j NE # K # j GT # K # j LT # K # j GE # K # j LE # K 条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。下面的程序可以得到1到10的和: O7100 #1=0 #2=1 N1 IF [#2 GT 10] GOTO 2 #1=#1+#2 #2=#2+1 GOTO 1 N2 M30 3循环语句(WHILE 语句) 语句格式为: WHILE [条件式] DO m (m=1,2,3) … END m 当条件语句成立时,程序执行从DO m到END m之间的程序段;如果条件不成立,则执行

数控宏程序编程方法、技巧与实例

本书简介 本书围绕当前常见的HNC-21/22M华中世纪星、西门子802D和FANUC 0i 三种数控系统的宏程序编程设计展开。全书共分4章,第1章介绍HNC- 21/22M华中世纪星、西门子802D和FANUC 0i三种数控系统的用户宏程序基础理论知识及宏指令调用格式和特点;第2章介绍在数控车床上进行典型零件和非圆曲线零件的宏程序编程技巧和编程实例;第3章介绍在数控铣床和加工中心上进行典型零件和非圆曲线零件的宏程序编程技巧和大量的编程实例;第4章详细讲述了实例零件的工艺分析和程序设计。 本书是一本实用性非常强的数控技术用书,特别适合高技能数控人才使用,并可供数控行业的工程技术人员、从事数控加工编程及操作人员的参考,也可供各类大中专院校、技工学校机电一体化专业、数控专业及相关专业的师生使用。本书可作为各类竞赛和国家职业技能鉴定数控高级工、数控技师、高级技师的参考书。 目录

前言 第1章 用户宏程序  1.1 HNC-21/22M华中世纪星数控系统宏指令编程 1.1.1 宏变量及常量 1.1.2 运算符与表达式 1.1.3 语句表达式 1.1.4 调用方式 1.1.5 用户宏程序的结构及用户宏功能  1.2 SIEMENS 802D数控系统R参数指令编程 1.2.1 计算参数R 1.2.2 程序跳转 1.2.3 子程序 1.2.4 R参数编程的结构及R参数功能  1.3 FANUC 0i-MC数控系统用户宏程序 1.3.1 变量 1.3.2 系统变量 1.3.3 算术和逻辑运算 1.3.4 宏程序语句和NC语句 1.3.5 转移和循环 1.3.6 宏程序调用 1.3.7 用户宏程序的结构及用户宏功能 第2章 数控车床的宏程序编程  2.1 数控车床宏程序编程特征 2.1.1 在宏程序主体中使用变量 2.1.2 变量之间的演算 2.1.3 用宏程序命令对变量进行赋值  2.2 数控车床宏程序编程技巧 2.2.1 用宏程序和R参数编程实现规格不同的轴加工 2.2.2 用宏程序和R参数编程实现螺纹的粗、精加工 2.2.3 用宏程序和R参数编制孔加工钻削循环  2.3 非圆锥曲线类零件数控车削的宏程序编程实例 2.3.1 椭圆类零件的宏程序和R参数编程 2.3.2 双曲线过渡类零件的宏程序和R参数编程 2.3.3 抛物线类零件的宏程序和R参数编程 第3章 数控铣床、加工中心的宏程序编程  3.1 数控铣床、加工中心宏程序编程特征 3.1.1 在宏程序主体中使用变量 3.1.2 变量之间的演算 3.1.3 用宏程序命令对变量进行赋值  3.2 数控铣床、加工中心宏(参数)程序编程技巧 3.2.1 根据不同类型的零件进行程序设计及加工方法的选择 3.2.2 设计程序流程结构框图 3.2.3 合理选择图形的数学处理方法 3.2.4 非圆曲线轮廓零件编程实例  3.3 数控铣床、加工中心宏程序编程实例 3.3.1 零件平面铣削宏程序编程实例 3.3.1.1 长方形零件平面同向铣削宏程序编程

G54数控宏程序教程(车床篇)讲解

由浅入深宏程序1-宏程序入门基础之销轴加工 对于没有接触过宏程序人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。 对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。 下面大家先看一个简单的车床的程序,图纸如下: 要求用外圆刀切削一个短轴,这里只列举程序的前几步: T0101 M3S800 G0X82Z5 G0X76 G1Z-40F0.2 X82 G0Z5 G0X72 G1Z-40F0.2 X82 G0Z5 G0X68

G1Z-40F0.2 X82 G0Z5 G0X68 G1Z-40F0.2 X82 G0Z5 ........ G0X40 G1Z-40F0.2 X82 G0Z5 G0X150Z150 M5 M30 从上面程序可以看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。因此可以将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。 T0101 M3S800 G0X82Z5 #1=76赋初始值,即第一次切削直径 N10 G0X[#1] 将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。N10是程序G1Z-40F0.2 段的编号,用来标识本段,为后面循环跳转所用。 X82 G0Z5 #1=#1-4每行切深为2mm,直径方向递减4mm IF [#1GE40] GOGO 10如果#1 >= 40,即此表达式满足条件,则程序跳转到N10继续执行。G0X150Z150 当不满足#1 >= 40,即#1<40,则跳过循环判断语句,由此句继续向后执行。M5 M30

数控车床宏程序编程

数控宏程序 一.什么是宏程序 什么是数控加工宏程序简单地说,宏程序是一种具有计算能力和决策能力的数控程序。宏程序具有如下些特点: 1.使用了变量或表达式(计算能力),例如: (1)G01 X[3+5] ;有表达式3+5 (2)G00 X4 F[#1] ;有变量#1 (3)G01 Y[50*SIN[3]] ;有函数运算 2.使用了程序流程控制(决策能力),例如: (1)IF #3 GE 9 ;有选择执行命令 …… ENDIF (2)WHILE #1 LT #4*5 ;有条件循环命令 …… ENDW 二.用宏程编程有什么好处 1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等; 2.宏程序可以完成图形一样,尺寸不同的系列零件加工; 3.宏程序可以完成工艺路径一样,位置不同的系列零件加工; 4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;

5.使用宏程序能极大地简化编程,精简程序。适合于复杂零件加工的编程。 一.宏变量及宏常量 1.宏变量 先看一段简单的程序: G00 上面的程序在X轴作一个快速定位。其中数据是固定的,引入变量后可以写成: #1= ;#1是一个变量 G00 X[#1] ;#1就是一个变量 宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。变量有什么用呢变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。 使用变量前,变量必需带有正确的值。如 #1=25 G01 X[#1] ;表示G01 X25 #1=-10 ;运行过程中可以随时改变#1的值 G01 X[#1] ;表示G01 X-10 用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。如: #2=3 G[#2] X30 ;表示G03 X30

相关主题
文本预览
相关文档 最新文档