数车宏程序B及其应用实例16KWord格式文档下载.docx
《数车宏程序B及其应用实例16KWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《数车宏程序B及其应用实例16KWord格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
③系统变量:
#1000以上
系统变量用于读和写CNC运行时各种数据变化。
编程中常用的系统变量,见表1。
表1刀具补偿存贮器C的系统变量
补偿号
X轴
Z轴
刀尖半径R
刀尖位置T
磨损
几何
1
#2001
#2701
#2101
#2801
#2201
#2901
#2301
┇
49
#2049
#2749
#2149
#2849
#2249
#2949
#2349
64
#2064
#2164
#2264
#2364
2)变量的赋值
①直接赋值
变量可在操作面板MACRO内容处直接输入,也可用MDI方式赋值,也可在程序内用以下方式赋值,但等号左边不能用表达式,#_=数值(或表达式)。
如:
#1=20;
G01X#1;
②自变量赋值
宏程序体以子程序方式出现,所用的变量可在宏调用时在主程序中赋值。
如:
G65P9120X100.0Y20.0F20.0;
其中X、Y、F对应于宏程序中的变量号,变量的具体数值由自变量后的数值决定。
自变量与宏程序体中变量的对应关系有2种,2种方法可以混用,其中G、L、N、O、P不能作为自变量为变量赋值。
变量赋值方法Ⅰ、Ⅱ见表2、表3
表2变量赋值方法Ⅰ
自变量
变量
A
#1
H
#11
R
#18
X
#24
B
#2
I
#4
S
#19
Y
#25
C
#3
J
#5
T
#20
Z
#26
D
#7
K
#6
U
#21
E
#8
M
#13
V
#22
F
#9
Q
#17
W
#23
表3变量赋值方法Ⅱ
I3
#10
I6
I9
#28
J3
J6
J9
#29
K3
#12
K6
K9
#30
I1
I4
I7
I10
#31
J1
J4
#14
J7
J10
#32
K1
K4
#15
K7
K10
#33
I2
I5
#16
I8
J2
J5
J8
K2
K5
K8
#27
四、运算指令
宏程序具有赋值、算术运算、逻辑运算等功能,见表4
表4变量的各种运算
形式
意义
具体实例
定义转换
#i=#j
定义、转换
#20=500
#102=#10
算
术
运
#i=#j+#k
和
#5=#10+#102
#i=#j-#k
差
#8=#3+100
#i=#j*#k
积
#120=#1*#24
#20=#7*360
#i=#j/#k
商
#104=#8/#7
#110=#21/12
#i=SIN[#j]
#i=ASIN[#j]
#i=COS[#j]
#i=ACOS[#j]
#i=TAN[#j]
#i=ATAN[#j]
正弦(度)
反正弦(度)
余弦(度)
反余弦(度)
正切
反正切
#10=SIN[#5]
#10=ASIN[#16]
#133=COS[#20]
#10=ACOS[#16]
#30=TAN[#21]
#148=ATAN[#1]/[#2]
#i=SQRT[#j]
#i=ABS[#j]
#i=ROUND[#j]
#i=FIX[#j]
#i=FUP[#j]
#i=LN[#j]
#i=EXP[#j]
平方根
绝对值
四舍五入
上取整
下取整
自然对数
指数ex
#131=SQRT[#10]
#5=ABS[#102]
#112=ROUND[#23]
#115=FIX[#109]
#114=FUP[#33]
#3=LN[#100]
#7=EXP[#9]
逻
辑
#i=#jAND#k
#i=#jOR#k
#i=#jXOR#k
与
或
异或
#11=#1AND#18
#20=#3OR#8
#12=#5XOR25
五、控制指令
控制指令起到控制程序流向的作用。
1)分支语句(GOTO)其格式为:
IF[〈条件表达式〉]GOTOn
IF[〈条件表达式〉]THEN〈表达式〉
若条件表达式为成立则程序转向段号为n的程序段,若条件不满足就继续执行下一句
程序,条件式的种类见表5。
表5条件式种类
条件式
#jEQ#k
=
#jNE#k
≠
#jGT#k
>
#jLT#k
<
#jGE#k
≥
#jLE#k
≤
2)循环指令格式:
WHILE[〈条件式〉]DOm(m=1,2,3);
ENDm;
当条件式满足时,就循环执行WHILE与ENDm之间的程序段,若条件不满足就执行ENDm;
的下一个程序段。
注意:
1)同一识别号可以使用多次,但DOm与ENDm必须成对使用。
例
┇
WHILE[…]DO2;
END2;
WHILE[…]DO2;
END2;
2)循环可以嵌套,但最多嵌套三层。
WHILE[…]DO1;
WHILE[…]DO3;
END3;
END1;
3)循环不可以交叉。
例
END3;
4)可以从循环内向循环外转移。
例
GOTO11;
N11…;
5)不可以从循环外向循环内转移。
6)在循环内可以调用用户宏程序或子程序。
循环在用户宏程序或子程序中嵌套三层。
┇┇
G65…;
M98…;
┇┇
G66…;
G67;
六、宏程序的使用方法
1)宏程序使用格式
宏程序格式与子程序一样,结尾用M99返回主程序。
O1;
主程序O8000;
宏程序
┇┇
G65P8000(自变量赋值);
[变量]
┇[运算指令]宏程序体
┇[控制指令]
M30;
M99;
2)选择程序号
程序在存储器中的位置决定了该程序一些权限,根据程序的重要程度和使用频率,用户可选择合适的程序号(适用于任何程序),具体如表6所示。
表6程序的存储区间
O0001~O7999
程序能自由存储、删除和编辑
O8000~O8999
不经设定,该程序就不能进行存储、删除和编辑
O9000~O9019
用于特殊调用的宏程序
O9020~O9899
如果有设定参数就不能进行存储、删除和编辑
O9900~O9999
用于机器人操作程序
3)宏程序调用方法
①非模态调用(单纯调用):
指一次性调用宏主体,即宏程序只在一个程序段内有效,叫非模态调用。
其格式为:
G65P(宏程序号)L(重复次数)〈自变量赋值〉;
一个自变量是一个字母,对应于宏程序中变量的地址,自变量后边的数值赋给宏程序中与自变量对应的变量。
同一语句中可以有多个自变量。
②模态调用:
模态调用功能近似固定循环的续效作用,在调用宏程序的语句后,机床在指定的多个位置循环执行宏程序。
宏程序工的模态调用要用G67取消,其格式为:
G66P(宏程序号)L(重复次数)〈自变量赋值〉;
G67;
七、常用数学公式
(1)
椭圆的标准方程:
椭圆的参数方程:
(2)
旋转公式:
八、编程举例
例1、利用G73和参数方程编程
参数方程:
O0001;
N1G99S500M3T0101;
G0X100.0Z100.0;
X26.0Z2.0;
G73U16.0R10;
G73P10Q20U0.5W0.2F0.2;
N10G0X0;
G1Z0F0.1;
#1=1.0;
(起始角的每次增量)
#2=0.0;
(θ角的起始值)
#9=90.0;
(θ角的终止值)
#3=10.0;
(椭圆的短半轴b,X向)
#4=20.0;
(椭圆的长半轴a,Z向)
WHILE[#2LE#9]DO1;
(#2值≤#9值时,循环执行)
#5=2*#3*SIN[#2];
(X=2*b*sinθ,X为直径值)
#6=#4*COS[#2];
(Z=a*cosθ)
G1X#5Z[#6-#4]F0.1;
(直线插补,用许多很短直线来拟合椭圆)
#2=#2+#1;
(θ角递增)
(循环结束)
G1W-5.0F0.1;
N20X26.0;
M00;
N2G99S600M3T0101;
G0X26.0Z2.0;
G70P10Q20F0.1;
M5;
M30;
例2、利用宏程序调用方法编程
X56.0Z2.0;
N10G0X50.0;
G1Z-5.0F0.1;
G65P0002;
(宏程序调用)
N20X56.0;
G0X56.0Z2.0;
O0002;
WHILE[#2LE90.]DO1;
(#2值≤90时,循环执行)
M99;
(宏程序调用返回)
例3、
利用标准方程编程
标准方程:
注1:
注2:
注1和注2由标准方程
推导而来!
N10G0X0.0;
G1Z0.0F0.1;
G65P0002A0B0.1C20.0I10.0J10.0;
(宏程序调用同时对自变量赋值)
自变量赋值(详见表2)
A0为#1=0.0(X向的起始值)
B0.1为#2=0.1(X值的每次增量)
C20.0为#3=20.0(椭圆的长半轴a,Z向)
I10.0为#4=10.0(椭圆的短半轴b,X向)
J10.0为#5=10.0(X向的终止值,注:
#5值要≤#4值)
WHILE[#1LE#5]DO1;
(#1值≤#5值时,循环执行)
#7=[1-[#1*#1]/[#4*#4]]*[#3*#3];
(见注1)
#9=SQRT[#7];
(z值)(见注2)
G1X[2*#1]Z[#9-#3]F0.1;
#1=#1+#2;
(X值递增)
例4、数车椭圆旋转
(以a为旋转半径,以椭圆的圆心为原点,旋转α角。
)
G99M3S800T0101;
G0X100.Z100.;
G0X62.Z5.;
#1=0;
(x初值)
#2=10;
(x终值)
#11=0.05;
(步距)
#3=20;
(椭圆的长半轴a)
#4=10;
(椭圆的短半轴b)
#12=45;
(旋转角α)
#15=0;
(椭圆的圆心在x方向上的位置)
WHILE[#1LE#2]DO1;
(#1值≤#2值时,循环执行)
#6=#1;
(x值)
#9=[#3*#3]*[1-[#6*#6]/[#4*#4]];
#5=SQRT[#9];
#7=#5*COS[#12]-#6*SIN[#12];
(z向旋转)
#8=#5*SIN[#12]+#6*COS[#12];
(x向旋转)
G1X[#15+2*#8]Z[#7-#3]F0.1;
#1=#1+#11;
未旋转旋转α角,图中虚线为未旋转
G0X100.Z100.0;
G0X62.Z5.0;
#1=-10;
#2=0;
#12=30;
#15=45;
(x值)
九、结束语
本文中的程序都经过FANUC0iMate系统数控机床的验证。
宏程序是程序编制的高级形式,程序编制的质量与编程人员的素质息息相关,宏程序里应用了大量的编程技巧,如数学模型的建立、数学关系的表达、加工刀具的选择、走刀方式的取舍等,使得宏程序的精度很高。
特别是对于中等难度的零件,使用宏程序进行编程加工要比自动编程加工快,可以简化我们的编程。