首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

纯干货!教你数控宏程序编程

一. 什么是宏程序?

用变量的方式进行数控编程

二. 宏程序与普通程序的区别。

普通程序: 只能使用常量

宏程序: 可以使用变量,并给变量赋值

普通程序: 常量之间不可以运算

宏程序: 变量之间可以运算

普通程序: 程序只能顺序执行,不能跳转

宏程序: 程序可以跳转

三. 变量

#1~#33

在宏程序中储存数据,在程序中对其赋值。赋值是将一个数据赋予一个变量。例如#1=0,表示#1的值就是0,其中#1代表变量,#是变量符号,0就是给变量#1赋的值。

例如

G0 X0 Y0;

G01 X100 F500 ;

#1=100 ;

#2=50 ;

G0 X0 Y0;

G01 X#1F500;

G01 X[#1+#2]F500;

四. 变量之间的运算

变量之间可以进行加,减,乘,除函数等各种运算

例如

#1=60;

#2=SIN#1;

运算顺序和一般数学上的定义相同

例如

#1=#2+3*SIN#4

括号嵌套

最里层的括号优先

例如

#6=COS[[[#5+#4]*#3+#2]*#1]

比较难理解的一种情况

#1=10;

G0 X#1 Y0;

#1=#1+1;

G0 X#1 Y0;

五. 转移和循环

在程序中使用GOTO和IF可以改变程序执行顺序

1. GOTO 语句—--无条件转移

例如

G0 X0 Y0;

G01 X100 Y100 F100;

X500;

GOTO 01;

Y500;

N01 X550;

Y550;

G0 Z200;

2. IF语句

1).IF[条件表达式]GOTO n

如果指定的表达式满足,则转移到标有顺序号n 的程序段,如果不满足指定的条件表达式,则顺序执行下一个程序段。

例如

IF[#1 GT 100] GOTO 01;

G0 X0 Y0;

N01 X200;

运算符 含义

EQ 等于 =

NE 不等于 ≠

GT 大于 >

GE 大于或等于 ≥

LT 小于

LE 小于或等于 ≤

典型例子

#1=0;

#2=1;

N1;

IF[#2 GT 100] GOTO 02;

#1= #1+#2;

#2= #2+#1;

GOTO 01;

N2 M30;

3.循环(WHILE语句)

在WHILE后制定一个条件表达式,当指定条件满足时,则执行从DO到END之间的程序,否则,转到END后的程序段

例如

#2=10;

#3=20;

WHILE[#2 LT #3]DO01;

#2=#2-1;

END01;

实例运用

O2012(螺旋铣孔)

#1=50;圆孔直径

#2=40;圆孔深度

#3=30;刀具直径

#4=0;Z坐标设为自变量,赋值为0

#10=1;Z坐标每次递增量

#5=[#1-#3]/2;刀具回转直径

S1000 M3;

G54 G90 G00 X0 Y0 Z30;

G00 X#5

Z[-#4+1];

G01 Z-#4 F200;

WHILE[#4 LT #2]DO01;

#4= #4+#10;

G03 I-#5 Z-#4 F1000;

END 01;

G03 I-#5;

G01 X[#5-1];

G0 Z100;

M30;

O2013(群孔)

#1=40;最内圈孔圆心所在直径

#2=30;每列孔间隔

#3=12;孔的列数

#4=10; 空间隔

#5=6;每列孔个数

S1000 M3;

G54 G90 G00 X0 Y0 Z30

G16;

#6=1;

WHILE[#6 LE #3]DO 01;

#7=1;

WHILE[#7 LE #5]DO 02;

#8= #1/2+[#7-1]*#4

#9= [#6-1]*#2;

G98 G81 X#8 Y#9 Z-60 R3 F100;

#7=#7+1;

END 02;

#6=#6+1;

END 01;

G80 Z30;

G15;

M30;

O2013(可变式深孔钻)

#1=3;每次进给钱的缓冲高度

#2=20;第一次钻深

#3=0.5;递减比例

#4=35;孔总深的

#5=5.;R点

M3 S1000;

G54 X0 Y0;

G0 Z#5;

WHILE[#4 GT 0] DO 01;

G01 Z-#2 F1000;

G0 Z#5;

Z[-#2+#1];

#7=#2*#3;

#2=#2+#7;

#4=#4-#2;

END 01;

G0 Z100;

M30;

O2014(铣平面)

#1=1000;工件长度

#2=1000;工件宽度

#3=10;刀具直径

#4=-#2/2;Y设为自变量,初始值赋值为-#2/2

#14=0.8*#3;递增量

#5=[#1+#3]/2+2.;开始X坐标

S1000 M3;

G54 G90 G00 X0 Y0 Z30;

X#5 Y#4;

Z0;

WHILE[#4 LT #2/2] DO01;

G01 X-#5 F1000;

#4= #4+#14;

Y#4;

X#5;

#4= #4+#14;

Y#4;

END 01;

G0 Z30;

M30;

另一种编程方式

#1=1000;工件长度

#2=1000;工件宽度

#3=10;刀具直径

#4=-#2/2;Y设为自变量,初始值赋值为-#2/2

#14=0.8*#3;递增量

#5=[#1+#3]/2+2.;开始X坐标

S1000 M3;

G54 G90 G00 X0 Y0 Z30;

X#5 Y#4;

Z0;

N01 G01 X-#5 F1000;

#4= #4+#14;

Y#4;

X#5;

#4= #4+#14;

Y#4;

IF [#4 LT #2/2] GOTO 01;

G0 Z30;

M30,

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171216G0CCC000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券