(免费下载)宏程序编程实例与技巧方法
(数控CNC宏程吧)宏程序编程实例与技巧方法

自变量指定Ⅱ
•根据使用的字母,系统自动决定自变量指定的类型。 •自变量指定Ⅱ用于传递诸如三维坐标值的变量。 •I,J,K 的下标用于确定自变量指定的顺序,在实际编程 中不写。
如果自变量指定Ⅰ和自变量指定Ⅱ混合指定的话,后指定 的自变量类型有效。
六、 FANUC宏程序的调用
2. 模态调用(G66): G66 Pp Ll <自变量指定>; 程序点 G67;(取消模态)
2、 运算符与表达式
(1) 算术运算符:+,-,*,/ (2) 条件运算符:EQ(=),NE(≠),GT(>),GE (≥),LT(<=),LE(≤) (3) 逻辑运算符:AND,OR,NOT (4) 函 数 : SIN,COS,TAN,ATAN,ATAN2,ABS,INT ,SIGN,SQRT,EXP (5) 表达式:用运算符连接起来的常数,宏变量构成 表达式。 例如:175/SQRT[2] * COS[55 * PI/180 ];#3*6 GT 14
#10=#10+1;
ENDW
END 1
X45 Y15;
X45 Y15;
G00 Z30
G00 Z30
X0 Y0 M05
X0 Y0 M05
M30
M30
•SIEMENS数控系统参数编程
与FANUC类似,但功能要弱一些。变量以“R” 开始,如:R0、R1、R99。不包含系统变量,系 统变量以 “$”开头。 一、格式:Rn (n的缺省取值范围为0-99)
5、 循环语句WHILE,ENDW
格式:WHILE 条件表达式 … ENDW
6、 宏程序/子程序调用的参数传递规则
G 代码在调用宏(子程序或固定循环 ,下同)时,系统会将当前程序段各 字段(A~Z共26个字段,如果没有定 义则为零)的内容拷贝到宏执行时的 局部变量#0 ~ #25,同时拷贝调用宏 时当前通道九个轴(轴0~轴8)的绝 对位置(机床绝对坐标)到宏执行时的 局部变量#30 ~ #38。
宏程序编程实例与技巧方法

数 控 加 工 编 程 及 操 作
变量号 单 元 宏 变量类型 功能
二、FANUC宏程序的变量 二、FANUC宏程序的变量
下午1时 分 下午 时38分
FANUC数控系统变量表示形式为# 后跟1~4位 数字,变量种类有四种:
用 户 宏 程 序 编 程
空变量该变 没有任何值能赋给该变量 量总是空, #1— 局部变量 #1— 局部变量只能用在宏程序中存储 —#33 数据,例如运算结果。当断电时 局部变量被初始化为空,调用宏 程序时自变量对局部变量赋值。 #0
用 户 宏 程 序 编 程
21
数 控 加 工 编 程 及 操 作
单 元 宏
方法二: 方法二:复合循环法
O0110 G00 X100 Z100; T0101 M03 S800; G00G40 X30 Z2; G73 U15 W0R7.0; G71 P10Q20 X0.6 Z0.2 F0.2; N10 G00 G42 X0; G01 Z0 F0.1 S1000; #1=0; #2=0; WHILE #2LE 20; 判定z轴是否到终点; 判定z #2=[#1]*[#1]/24.2; Z轴变量 Z轴变量 G01 X[#1] Z[-[#2]] 抛物线插补 Z[#1=#1+0.06; 设定x轴的步距为0.06; 设定x轴的步距为0.06; ENDW G01 Z-25; ZX25;
下午1时 分 下午 时38分
用 户 宏 程 序 编 程
20
数 控 加 工 编 程 及 操 作
单 元 宏 O0009 #1=0; #1=0; #2=0; #2=0; WHILE #2 LE 20;判定z轴是否到终点 20;判定z #2=[#1]* #2=[#1]*[#1]/24.2; z轴变量 z轴变量 G01 X[#1+#60]Z[-[#2]] F0.2;抛物线插补; X[#1+#60]Z[F0.2;抛物线插补; #1=#1+0.06;设定x轴的步距为0.06; #1=#1+0.06;设定x轴的步距为0.06; ENDW; G01 W-5; WU3; W-10; U5; G00 Z0; M99; 下午1时 分 下午 时38分
宏程序编程实例与技巧方法PPT课件

编 X[#1+#1]F#3” 程
15
.
2021/3/23
单 元 宏
用 户 宏 程 序 编 程
16
.
2021/3/23
单 元 宏
用 户 宏 程 序 编 程
17
.
2021/3/23
单 元 宏
用 户 宏 程 序 编 程
18
.
宏程序零件编制实例
1.抛物线宏程序的应用
如图所示。已知前端椭 圆的方程为抛物线,Z=X2/24.2。
户
宏
程
序
编
程
6
2021/3/23
.
2)IF [条件表达式] THEN 当指定的条件表达式满足时,执行预先决定的宏程序语句。 例:IF [#1EQ #2] THEN #3=0;
单 3. WHILE [条件表达式] DO m;
元 宏
条件
用
不满
户
足
宏
(m=1,2,3)
条件满足
…… ……
程
序
编
ENDm
程 注:循环允许嵌套,最多3层,但不允许交叉
.
(2)特点:1)可以进行变量的算术运算、
逻辑运算和函数的混合运算。还可以使用循
环语句、分支语句和子程序调用语句。2)
宏程序能依据变量,用事先指定的变量代替
单 元 宏
直接给出的数值,在调用宏程序或宏程序本 身执行时,得到计算好的变量值。3)宏程
用 序通用性强,灵活方便,一个宏程序可以描
户 宏
述一种曲线,曲线的各种参数用变量表示。
.
1. 概念:
“宏程序”一般指含有变量的程序。由宏程
序体和程序中调用宏程序的指令。即宏指令
宏程序编程实例与技巧方法ppt课件

#0=18
#0=18
N10 #1=80*COS#0
IF [#0 LT 360]
#2=80*SIN#0
#1=80*COS#0
G41 X#1 Y#2 D01
#2=80*SIN#0
#0=#0+72
G41 X#1 Y#2 D01
IF [#0 LT 360] GOTO 10
#0=#0+72
G40 X70 Y70
3π/
2 π
第三象限
π/ 2 第一象限
0
第二象限 第四象限
π
π/2
0
第一象限
-π/2
第三象限
-π
28
④ROUND函数 ●在逻辑运算指令IF、WHILE中,ROUND函数在第一个小数位四舍五入。
例如 #2=1.2345; #1=ROUND[#2]; 变量1的值是1.0
●在NC语句地址中,ROUND函数根据地值得最小设定单位指定四舍五入。 例如 #1=1.2345; #2=2.3456; G00 G91 X-#1; G01 X-#2 F300; G00 X[#1+#2]; 1.2345+2.3456=3.5801=3.580不返回到初始位置
13
宏程序编程实例
O5000;FANUC
O5000;HNC-21M
%1000
G54 G90 G00 Z40
G54 G90 G00 Z40
X70 Y20 M08
X70 Y20 M08
M03 S600
M03 S600
G43 Z3 H01
G43 Z3 H01
G01 Z-5 F100
G01 Z-5 F100
9
二、 数控铣床用户宏程序编程
(数控CNC宏程吧)宏程序编程实例与技巧方法

数控加工技术
2)IF [条件表达式] THEN 当指定的条件表达式满足时,执行预先决定的宏程序语句。 例:IF [#1EQ #2] THEN #3=0;
3. WHILE [条件表达式] DO m;
条件 不满 足
(m=1,2,3) 条件满足 ……
……
单元宏 用户宏程序编程
ENDm
注:循环允许嵌套,最多3层,但不允许交叉
32
数控加工技术
单元宏 用户宏程序编程
六、 FANUC宏程序的调用
2. 模态调用(G66): G66 Pp Ll <自变量指定>; 程序点 G67;(取消模态)
例:G66 P8000 L2 A10. B2.; G00 G90 Z-10. X-5. G67 一旦发出G66 则指定模态调用,即指定沿移动轴移动的程 序段后调用宏程序。移动到Z-10,调用2次程序号8000,移 动到X-5,再调用2次程序号8000 。
9
数控加工技术
二、 数控铣床用户宏程序编程
单元宏 用户宏程序编程
%1000;长半轴、短半轴分别为40、30的椭圆
G92 X0 Y0 Z30
M03 S800
G00 X45 Y-15 M08;快速定位至A点
Z3
G01 Z-5 F100
#2=0;给角度赋0初值 WHILE #2 LE 360;当角度≤360度时,执行循环体内容
②全局变量:用户可以自由使用#50~#199,它对于由主程序调用的各子程序及 各宏程序来说是可以公用的,可以人工赋值。HNC-21/22T子程序嵌套调用的深度 最多可以有8层,每一层子程序都有自己独立的局部变量(变量个数为50)。
③系统变量:系统变量为#1000~#1199,它能获取包含在机床处理器或NC内存中 的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、 加工参数等系统信息。
(免费下载)宏程序编程实例与技巧方法(1)剖析.

程 及 操
,下同)时,系统会将当前程序段各 字段(A~Z共26个字段,如果没有定
作 义则为零)的内容拷贝到宏执行时的
局部变量#0 ~ #25,同时拷贝调用宏
单 时当前通道九个轴(轴0~轴8)的绝
元 宏
对位置(机床绝对坐标)到宏执行时的
用 局部变量#30 ~ #38。
户 宏
宏程序的调用格式为:
程 M98 P(宏程序名)<变量赋值>或
序 编
G65 P(宏程序名)<变量赋值>。
……
程
#25
Z
8
数 控
7、用户宏程序编程思路
下午7时13分
加
工 编 %1000;长半轴、短半轴分别为40、30的椭圆 程 G54 G90 G00 Z30 及 M03 S800 操 G00 X45 Y-15 ;快速定位至下刀点 作 Z3
G01 Z-5 F100
加
工
用 户 宏 程 序 编 程
11
数 控
下午7时13分
加
工
编
程
及
操
作
单 元 宏
用 户 宏 程 序 编 程
12
数 控
宏程序编程实下午例7时13分
加
工
编
ZH7640立式加工中心由北京第
程
三机床厂产生,采用华中铣床、加
及
工中心数控系统。加工范围
操 作
例如: #2 = 175/SQRT[2] * COS[55 * PI/180;
#3 = 124.0
单 元 宏
用 户 宏 程 序 编 程
5
数 控
4、 条件判别语句IF, ELSE,ENDI下F午7时13分
数控宏程序编程方法技巧与实例

数控宏程序编程方法技巧与实例一、数控宏程序编程的基本方法:1.定义宏变量:宏变量是宏程序中使用的变量,用于传递参数或保存临时数据。
定义宏变量可以使用#VAR指令,例如“#VARx=10”表示定义一个宏变量x并赋值为10。
2. 定义宏:宏是一个带有参数的程序段,可以通过调用宏来实现一系列操作。
定义宏可以使用#MACRO指令,例如“#MACRO move(x,y) G0Xx Yy”表示定义一个名为move的宏,参数为x和y,宏体为“G0 Xx Yy”。
3. 调用宏:调用宏可以使用#CALL指令,例如“#CALLmove(100,200)”表示调用名为move的宏,并传递参数为100和200。
4.结束宏程序:使用#END指令结束宏程序的编写。
二、数控宏程序编程的技巧:1.使用循环结构:可以使用循环结构来简化重复性的操作,提高程序的效率。
例如,使用FOR循环可以实现多次重复执行同样的操作。
2.使用条件判断:在宏程序中可以使用条件判断来根据不同的情况执行不同的操作。
例如,使用IF-THEN-ELSE语句可以根据条件的结果选择执行不同的指令。
3.使用局部变量:在宏程序中可以定义局部变量,用于保存临时数据。
使用局部变量可以减少全局变量的使用,提高程序的可读性和可维护性。
4.通过参数传递数据:宏程序可以通过参数来传递数据,使得宏的使用更加灵活。
在调用宏时,可以传递不同的参数来实现不同的操作。
三、数控宏程序编程的实例:以制作一个矩形的宏程序为例,实现自动绘制不同尺寸的矩形。
```#VAR width=100#VAR height=200#MACRO rectangle(x,y)G0XxYyG1 X(x+width) YyG1 X(x+width) Y(y+height)G1 Xx Y(y+height)G1XxYy#END#CALL rectangle(0,0)```上述的宏程序定义了一个名为rectangle的宏,参数为x和y,表示矩形的左上角坐标。
(数控CNC宏程吧)宏程序编程实例与技巧方法

局部变量只能用在宏程序中存储 数据,例如运算结果。当断电时 局部变量被初始化为空,调用宏 程序时自变量对局部变量赋值。
21
数 控
*
加
工
编
程
变量号
变量类型
功能
及 操
#100— 公共变量
公共变量在不同的宏程序中的
作 #199
意义相同当断电时变量#100
#500—
#199初始化为空变量
#999
#500 #999 的数据保存即使断
G00 G90 Z-10.
X-5.
G67 一旦发出G66 则指定模态调用,即指定沿移动轴移动的程 序段后调用宏程序。移动到Z-10,调用2次程序号8000,移 动到X-5,再调用2次程序号8000 。
33
数 控 加
七、FANUC与华中系统用户宏程序*编 程对照
工 编 程 及 操 作
%1000;长半轴40、短半轴30的椭圆
O5000;HNC-21M %1000
编 程 G54 G90 G00 Z40 及 X70 Y20 M08
G54 G90 G00 Z40 X70 Y20 M08
操 M03 S600
M03 S600
作 G43 Z3 H01
G43 Z3 H01
G01 Z-5 F100
G01 Z-5 F100
#0=18
#0=18
数 控
用户宏程序编程
*
加
工
编
在数控编程中,宏程序编程灵活、高效、快捷,是
程 及
加工编程的重要补充。宏程序不仅可以实现象子程序那
操 样,例如,型腔加工宏程序、固定加工循环宏程序、球 作
面加工宏程序、锥面加工宏程序等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
数 控 加 工 编 程 及 操 作
单 元 宏
二、 数控铣床用户宏程序编程
下午3时26分
用 户 宏 程 序 编 程
%1000;长半轴、短半轴分别为40、30的椭圆 G92 X0 Y0 Z30 M03 S800 G00 X45 Y-15 M08;快速定位至A点 Z3 G01 Z-5 F100 #2=0;给角度赋0初值 WHILE #2 LE 360;当角度≤360度时,执行循环体内容 #11=40*COS[#2*PI/180];用椭圆的标准参数方程求动点M的X坐标值 #12=30*SIN[#2*PI/180];用椭圆的标准参数方程求动点M的Y坐标值 G42 G64 G01 X[#11] Y[#12] D01;用直线插补指令加工至M点,即用 直线段逼近椭圆 #2=#2+1;角度的递增步长取1度 ENDW G40 G01 X45 Y15;切出椭圆至C点 Z3 M09 G00 Z30 X0 Y0 M05 10 M30
宏
一、基础知识
用 1. 宏变量及常量 户 宏 (1) 宏变量 程 HNC-21/22T华中世纪星数控系统变量表示形式为# 后跟1~4位数字,变量种类 序 有三种: 编 ①局部变量:#0~#49是在宏程序中局部使用的变量,用于存放宏程序中的数据 程 ,断电时丢失为空。
2
数 下午3时26分 一、基础知识 控 1、 宏变量及常量 加 工 ②全局变量:用户可以自由使用#50~#199,它对于由主程序调用的各子程序及 编 各宏程序来说是可以公用的,可以人工赋值。HNC-21/22T子程序嵌套调用的深度 程 及 最多可以有8层,每一层子程序都有自己独立的局部变量(变量个数为50)。 操 作
20
数 下午3时26分 控 二、FANUC宏程序的变量 加 工 编 FANUC数控系统变量表示形式为# 后跟1~4位 程 及 数字,变量种类有四种: 操 作 变量号 变量类型 功能
单 元 宏
#0
用 户 宏 程 序 编 程
空变量该变 没有任何值能赋给该变量 量总是空, #1— 局部变量 局部变量只能用在宏程序中存储 —#33 数据,例如运算结果。当断电时 局部变量被初始化为空,调用宏 程序时自变量对局部变量赋值。
#3 = 124.0
用 户 宏 程 序 作
单 元 宏
4、 条件判别语句IF, ELSE,ENDIF
格式(i): IF 条件表达式 格式(ii) : IF 条件表达式
下午3时26分
…
ELSE … ENDIF
…
ENDIF
用 户 宏 程 序 编 程
6
数 控 加 工 编 程 及 操 作
用 户 宏 程 序 编 程
13
数 控 加 工 编 程 及 操 作
单 元 宏
宏程序编程实例
O5000;FANUC G54 G90 G00 Z40 X70 Y20 M08 M03 S600 G43 Z3 H01 G01 Z-5 F100 #0=18 N10 #1=80*COS#0 #2=80*SIN#0 G41 X#1 Y#2 D01 #0=#0+72 IF [#0 LT 360] GOTO 10 G40 X70 Y70 Z40 M05 M30 O5000;HNC-21M %1000 G54 G90 G00 Z40 X70 Y20 M08 M03 S600 G43 Z3 H01 G01 Z-5 F100 #0=18 IF [#0 LT 360] #1=80*COS#0 #2=80*SIN#0 G41 X#1 Y#2 D01 #0=#0+72 ENDIF G40 X70 Y70 Z40 M05 M30
SIEMENS数控参数编程
1
数 下午3时26分 控 •华中数控用户宏程序 加 工 HNC-21/22T 、HNC-21M为用户配备了强有力的类似于高 编 程 级语言的宏程序功能,用户可以使用变量进行算术运算、逻 及 操 辑运算和函数的混合运算,此外宏程序还提供了循环语句、 作 分支语句和子程序调用语句,利于编制各种复杂的零件加工 程序,减少乃至免除手工编程时进行繁琐的数值计算,以及 单 精简程序量。 元
21
数 控 加 工 编 程 及 操 作
单 元 宏
下午3时26分
变量号
变量类型
功能
#100— #199
#500— #999
公共变量
公共变量在不同的宏程序中的 意义相同当断电时变量#100 #199初始化为空变量
用 户 宏 程 序 编 程
#1000 ——
#500 #999 的数据保存即使断 电也不丢失 系统变量 系统变量用于读和写CNC 运行 时各种数据的变化例如刀具的当 前位置和补偿值等
数 控 加 工 编 程 及 操 作
单 元 宏
下午3时26分
用 户 宏 程 序 编 程
11
数 控 加 工 编 程 及 操 作
单 元 宏
下午3时26分
用 户 宏 程 序 编 程
12
数 控 加 工 编 程 及 操 作
单 元 宏
宏程序编程实例
下午3时26分
ZH7640立式加工中心由北京第 三机床厂产生,采用华中铣床、加 工中心数控系统。加工范围 600mm×400mm×500mm。刀库可容 纳20把刀。可用于镗、铣、钻、铰、 攻丝等各种加工。实例为在预先处 理好的100mm×100mm×80mm合金铝 锭毛坯上加工如图所示的零件,其 中正五边形外接圆直径为80mm。
单 元 宏
5、 循环语句WHILE,ENDW
格式:WHILE 条件表达式 …
下午3时26分
ENDW
用 户 宏 程 序 编 程
7
数 控 加 工 编 程 及 操 作
6、 宏程序/子程序调用的参数传递规则
G 代码在调用宏(子程序或固定循环 ,下同)时,系统会将当前程序段各 字段(A~Z共26个字段,如果没有定 义则为零)的内容拷贝到宏执行时的 局部变量#0 ~ #25,同时拷贝调用宏
下午3时26分
用 户 宏程序的调用格式为: 宏 程 M98 P(宏程序名)<变量赋值>或 序 G65 P(宏程序名)<变量赋值>。 编 程
单 时当前通道九个轴(轴0~轴8)的绝 元 对位置(机床绝对坐标)到宏执行时的 宏 局部变量#30 ~ #38。
…… #25 Z
8
数 控 加 工 编 程 及 操 作
单 元 宏
1)IF [条件表达式] GOTOn 当指定的条件表达式满足时,转移到标有顺序号n的程序 段,如果指定的条件表达式不满足时,执行下个程序段。
用 户 宏 程 序 编 程
24
数 控 加 工 编 程 及 操 作
单 元 宏
下午3时26分
2)IF [条件表达式] THEN 当指定的条件表达式满足时,执行预先决定的宏程序语句。 例:IF [#1EQ #2] THEN #3=0; 3. WHILE [条件表达式] DO m;
单 元 宏
用 户 宏 程 序 编 程
③系统变量:系统变量为#1000~#1199,它能获取包含在机床处理器或NC内存中 的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、 加工参数等系统信息。 (2) 常量 PI:圆周率π ;TRUE:条件成立(真);FALSE:条件不成立(假) 3
下午3时26分
用 户 宏 程 序 编 程
16
数 控 加 工 编 程 及 操 作
单 元 宏
用户宏程序训练
下午3时26分
用 户 宏 程 序 编 程
17
数 控 加 工 编 程 及 操 作
单 元 宏
下午3时26分
用 户 宏 程 序 编 程
18
数 控 加 工 编 程 及 操 作
单 元 宏
下午3时26分
用 户 宏 程 序 编 程
数 控 加 工 编 程 及 操 作
单 元 宏
2、 运算符与表达式
(1) 算术运算符:+,-,*,/
下午3时26分
(2) 条件运算符:EQ(=),NE(≠),GT(>),GE (≥),LT(<=),LE(≤) (3) 逻辑运算符:AND,OR,NOT (4) 函 数 : SIN,COS,TAN,ATAN,ATAN2,ABS,INT ,SIGN,SQRT,EXP (5) 表达式:用运算符连接起来的常数,宏变量构成 表达式。
22
数 控 加 工 编 程 及 操 作
单 元 宏
三、刀具补偿存储器C用G10 指令进行设定
H代码的几何补偿值
D代码的几何补偿值 H代码的磨损补偿值
下午3时26分
G10L10P R
G10L12P R G10L11P R
;
; ;
D代码的磨损补偿值
P:刀具补偿号
G10L13P R
;
用 户 宏 程 序 编 程
用 户 宏 程 序 编 程
条件 不满 足
(m=1,2,3) …… 条件满足 ……
下午3时26分
用 户 宏 程 序 编 程
15
数 控 加 工 编 程 及 操 作
单 元 宏
用宏指令编制椭圆部分的精加工程序。
%3016;精加工椭圆程序 T0101 M03 S800 G00 X39 Z22 #1=60;A点的角度 #2=0;X坐标 #3=0;Z坐标 WHILE #1 LE 120;120是通过计算得来的B点角度 #2=2*23*SIN[#1*PI/180];直径编程 #3=40*COS[#1*PI/180] G64 G01 X[#2] Z[#3] F100 #1=#1+1;步长取1度 ENDW G00 X100 Z100 M05 M30
R:绝对值指令(G90)方式时的刀具补偿值。增量值 指令(G91)方式时的刀具补偿值为该值与指定的刀 具补偿号的值相加。
23
数 下午3时26分 控 四、 FANUC宏程序的转移和循环 加 工 编 1. 无条件转移:GOTOn (n为顺序号,1——99999) 程 及 例:GOTO10为转移到N10程序段。 操 作 2. 条件转移:(IF语句)