宏程序编程实例与技巧
变量编程实例与技巧
叶念民
用户 宏程序
HNC-21T 数控系统 宏指令编程
SIEMNS 802D 数控系统
宏指令编程
FANUC0i-MC 数控系统
宏指令编程
变量编程是指在程序中用变量
表述一个地址的数字值。而在程序
变
中对变量赋值,可以在程序几个相 似的地方使用。
量
变量编程与普通编程的区别在
编
用 #101 变 量 表 示 x, 用 #100
变 量 表 示 z. 两 者 的 关 系 用
函 数 哟 表 达 式 y=4*sqrt[x]
确
定
,
即
#101=4*sqrt[#100] 。 程 序
如下:
M8G40
G50S200
T0101 M3
G0X30Z16
#100=14.0625
H
#27
I
#28
J
#29
K
#30
L
#31
M
#32
N
#33
O
#34
PHale Waihona Puke #35Q#36
R
#37
S
#38
T
宏调用时传递的字段名或系统变 量 U V W X Y Z 固定循环指令初始平面Z模态值 不用 不用 不用 调用子程序时轴0的绝对坐标 调用子程序时轴1的绝对坐标 调用子程序时轴2的绝对坐标 调用子程序时轴3的绝对坐标 调用子程序时轴4的绝对坐标 调用子程序时轴5的绝对坐标 调用子程序时轴6的绝对坐标 调用子程序时轴7的绝对坐标 调用子程序时轴8的绝对坐标
1.抛物线类宏程序编 程
例1:在数控车床上加工 如图1示抛物线形状零件, 抛物线的开口为 34.42mm,抛物线的方 程为:X*X=-10Z,试编 制此零件加工程序。
抛
1.工艺设计:
物
(1).工件坐标系建 立在抛物线的顶点,
线
零件的外圆先用复合 循环进行粗、精加工,
类
然后再对抛物线进行 加工。
N44 G03 X94.276 Z32.474 R159.038
N46 G03 X98.624 Z15.571 R191.394
N48 G03 X99.658 Z7.292 R196.930
N50 G03 X100.000 Z-1.000 R201.010
N52 G01 X101.414 Z-0.293 F20.000
ENDW
ENDW 说明:这种循环结构称为嵌套,嵌套调用的深度
最多可以有九层,每一层子程序都有自己独立的 局部变量(变量个数为50)。当前局部变量为#0#49,第一层局部变量为#200-#249,第二层局部变 量为#250-#299,第三层局部变量#300-#349,依此 类推。
HNC
-21T 数控 系统 宏指 令编 程基 础知
程
b.加工效率高
的
特
点
%
O1234
(1111.CUT,08/06/00,00:41:53)
N10 G50 S1000
N12 G00 G97 S600 T0000
N14 M03
N16 M08
N18 G00 X166.009 Z119.476
N20 G00 Z100.707
HNC
-21T 数控 系统 宏指 令编 程基 础知
识
2.循环语句WHILE,ENDW 格式: 1)WHILE <条件表达式> (循环体)
ENDW 说明:在这种循环结构中,当条件成立时,则重
复执行循环体语句,直至条件全部满足后,跳出 循环体。 2)WHILE <条件表达式> (循环体1) WHILE <条件表达式> (循环体2)
识
宏程序调用指令
1.宏程序的调用格式 2. 宏程序/子程序调用的参数传递规则 1. 宏程序的调用格式: M98 P(宏程序名)L(调用次数)<变量赋值>
G65指令的功能和参数与M98相同。 在HNC-21M系统中固定循环指令是采用宏程序方法实现
的,固定循环宏程序定义G73,G74,G76,G80,G81, G82。 2. 宏程序/子程序调用的参数传递规则。 G代码在调用宏(子程序或固定循环,下同)时,系统 会将当前程序段各字段(A~Z共26字段,如果没有定义 则为零)的内容拷贝到宏执行时的局部变量#0-#25,同 时拷贝调用宏时当前通道九个轴的绝对位置(机床绝对 坐标)到宏执行时的局部变量#30-#38。 调用一般子程序时,不保存系统模态值,即子程序可修 改系统模态并保持有效;而调用固定循环时,保存系统 模态值,即固定循环子程序不修改系统模态。 下表列出了宏当前局部变量#0~#38所对应的宏调用者传 递的字段参数名
当前 局部 变量 宏调 用时 所传 递的 字段
宏当前局部变量
#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19
宏调用时传递的字段名或系统变 宏当前局部变量 量
A
#20
B
#21
C
#22
D
#23
E
#24
F
#25
G
#26
N22 G00 X111.414
N24 G01 X-3.414 F5.000
N26 G01 X-2.000 Z100.000
N28 G03 X12.006 Z99.045 R26.148 F100.000
N30 G03 X25.030 Z96.419 R31.380
N32 G03 X37.502 Z92.181 R37.162
格式:宏变量=常数或表达式 把常数 或表达式的值送给一个宏变量称为赋值。
例如: #2=175/SQRT[2]*COS[55*PI180];
#3=124.0;
2、条件判别语句IF ELSE ENDIF
格式(i);IF条件表达式
….条件成立(真)
ELSE
….条件成立(假)
ENDIF
2)、系统变量:有固定用途的变量, 他决定系统的状态。
HNC
-21T 数控 系统 宏指 令编 程基 础知
识
2、常量:PI:圆周率,TRUE:条件 成立,FALSE:条件不成立。
运算符与表达式
1、算术运算符:+,-,*,/。
2、条件运算符:EQ(=)、NE (=/)、GT(〉)、LT(〈)、LE (〈=)。
宏
(2).刀具选择: 1#刀:外圆粗车刀;
程
2#刀:外圆粗车刀;
序
(3).切削用量: 粗加工:S:600r/min
编
F:0.25mm/r; 精加工:S:100r/min
程
F:0.1mm/r;精加工余
量:05mm。
抛 物 线 类 宏 程 序 编 程
加工程序:
O0001 %1 T0101 S600M3 G0X80Z80 G71U1.5P1Q2R1X0.5F130 G0X80Z8080Z80 T0202 S1000 N1G0X34.42Z1 G1Z-29.614F90 X48 X50W-1 Z-47 N2G1X72 G0X80Z80 S600T0101 M98P10X0Z0Q5V17.2K0.1F
抛 物 线 类 宏 程 序 编 程
例3.用宏程序编制如图 所示零件加工程序。
%0342 T0101 M03 S600 G00 X35 Z3 G01 X18 F100 Z-8 #11=12 ;Z坐标初值 #10=SQRT[2*[#11]] G01 X[2*[#10+3]] WHILE #11 LE 32 #10=SQRT[2*[#11]] G90G01X[2*[#10+3]]Z[-
N34 G03 X48.245 Z86.977 R52.737
N36 G03 X59.440 Z79.732 R63.257
N38 G03 X68.724 Z71.890 R89.536
N40 G03 X78.849 Z60.709 R105.053
N42 G03 X86.627 Z49.099 R140.934
N54 G01 X111.414
N56 G00 X166.009
N58 G00 Z119.476
N60 M09
N62 M30
HNC
-21T 数控 系统 宏指 令编 程基 础知 识
1、宏变量与常量.
宏变量
宏变量的表示 :变量可以用“#”号和紧
跟其后的序号来表示:#I(I=1,2, 3,……) 例如:#5,#109,#200
抛物
线顶点到工件右端面的距
离
WHILE#100gT[0.390625]
#101=2*4*sqrt[#100]
G1X[#101]Z[#100]F0.12 切削起点
#100=#100-0.03 每次切削量
ENDW
G0Z20 M9 G40
G0X50Z50
M30
抛 物 线 类 宏 程 序 编 程
宏 程
M98 P(宏程序名)L(调用次数)<变量赋值> M98P0001L0005 A1.0 B2.0 C10 D12 E14 F16G17; #0=1.0 #1=2.0 #2=10.0 #3=12.0
序
#4=14.0
#5=16.0
调
#6=17.0
用
变 量 编 程 实 例
一、非圆锥曲线类零 件数控车削的宏程序 编程实例