宏程序入门基础知识

​文件格式

1、程序第一行需使用'%’宣告为标题行,并加入关键词'@MACRO’,否则将按ISO格式文档处理,从而导致部分功能无法使用。

2、每一行结束需加分号';’。

变量

宏程序使用的变量可分为三种

局部变量(Local variable, #1~#400)

系统变量(System variable, #1000~#31986)

公用变量(Global variable, @1~@165535)

不同型态的变量有不同的生命周期,以及读写规则。

在入门阶段我们只使用局部变量#1—#26,在宏程序中使用的局部变量,其生命周期只在当前宏程序执行时有效,当执行完毕离开时,相应局部变量将自动恢复成空白状态。

变量可以进行赋值

#3=15.;

#5=10.;

可以进行运算(支持+、-、*、/、()、[ ] 等)

#5=#5+1.;

#6=#3+#5;

#6的值等于26.

函数

GOTO

语法:GOTO  n

说明:跳转到指定的N行号执行,如果程序中同时存在两个相同的N行号,则以该程序中第一个N行号为准。

% @MACRO

#2 = 10;  //#2初始赋值为10.

GOTO 2;  //跳转到行号2,注意GOTO后面的行号不需要写N。

#2=15;  //#2第二次赋值为15.

N2     //行号2所在位置

.....

M30;

#2的最终值是10.,因为第二次赋值被跳过了,没有被执行。

IF

语法:

IF <条件> THEN

<陈述列表>

ELSEIF <条件> THEN

<陈述列表>

ELSE

<陈述列表>

END_IF;

说明:IF条件判断,可通过结合比较运算(> 大于、< 小于、= 等于、<> 不等于、<=小于等于、>=大于等于)、布尔运算(AND且、XOR互斥、OR或)判断条件是否成立,从而决定是否执行相应内容。

范例:

% @MACRO

#1 = 3.0;       //#1赋值为3.

G01 G90 X0. Y0. F1000;

IF #1 = 1 THEN    //如果#1等于1,则执行N1,否则不执行。

N1  X(1.0*#1) Y(1.0*#1);

ELSEIF #1 = 2 THEN  //再如果#1等于2,则执行N2,否则不执行。

N2  X(2.0*#1) Y(2.0*#1);

ELSEIF #1 = 3 THEN   //再如果#1等于3,则执行N3,否则不执行。

N3  X(3.0*#1) Y(3.0*#1);

ELSE           //如果以上条件都不成立,则执行N4

N4  X(4.0*#1) Y(4.0*#1);

END_IF;         //结束IF语句。

M30;

以上范例是多重条件判断,由于#1=3.,最终被执行的只有行号3的内容。

注释

语法:

(* <陈述列表> *)

// <陈述列表>

说明:'(* ’,' *)’需要成对出现,可注释多行;'//’仅能注释位于其后的内容,作用于单行。程序注释内容不会被系统执行,程序注释主要是为了让宏程序易于阅读。

范例一:单行注释

% @MACRO

G00 G90 X0. Y0.; // 移动回原点

M30;

范例二:区块注释

% @MACRO

(*

此区块为注释区,

不管内容为何并不会影响以下程序执行。

*)

G00 G90 X0. Y0.;

G00 G90 X10. Y0.;

G00 G90 X10. Y10.;

G00 G90 X0. Y10.;

G00 G90 X0. Y0.;

M30;

自增自减

% @MACRO

G71

#3=5.

IF #3>0 THEN

G0 G91 X10.;

#3=#3-1.

END_IF;

M30;

以上程序#3被初始赋值为5.,再使用判断语句判断#3是否大于0,显而易见,条件是满足的,所以IF和END_IF之间的内容会被执行,X轴向正向移动10mm,#3-1.=4.,再次判断#3是否大于0,若条件成立则会再次执行IF和END_IF之间的内容,如次往复循环,直到#3<=0为止,所以X轴总共会向正向移动50mm。在以上程序中,#3=#3-1.,每被执行一次,#3自身减1,这就是变量的自减;如#5=#5+2.5,这是变量的自增。

实例

原程序:

%

O0001

G90 G00 G40 G49 G80 G69

G91 G28 Z0

G90 G71 G00 G17

T1 M6

( Taper flat end [锥度平底]A10-0.20 )

G90 G00 G54 X0.0 Y-15.315 B-104.481 C-90.0 S25000 M03 M08

G43 H1 Z33.

G01 Z30.219 F600

Y-15.265 Z30.263 B-104.315 C-89.906 F1000

//此处为程序主体,由CAM软件生成,在此省略。

G00 Z35.219

G40 G49

M05 M09

G91 G28 Z0.

G28 X0 Y0 B0 C0

M30

%

*原程序只会在手镯表面加工一个心形图案。

修改后的程序:

%

O0001

G90 G00 G40 G49 G80 G69

G91 G28 Z0

G90 G71 G00 G17

T1 M6

#2=0.;

N2

( Taper flat end [锥度平底]A10-0.20 )

G90 G00 G54 X0.0 Y-15.315 B-104.481 C-90.0 S25000 M03 M08

G43 H1 Z33.

G01 Z30.219 F600

Y-15.265 Z30.263 B-104.315 C-89.906 F1000

//此处为程序主体,由CAM软件生成,在此省略。

G00 Z33.

#2=#2+18.;

G52 C#2;

IF #2<360 THEN

GOTO 2;

END_IF;

G40 G49

M05 M09

G91 G28 Z0.

G28 X0 Y0 B0 C0

M30

%

*通过使用宏程序将心形图案在手镯圆周陈列了19个,共20个图形,每18度一个。

以上是一个宏程序的简单实例,虽然实现同样的功能还有其它简便的方法,在这里我们也只是通过这样的方式去学习宏程序的用法。

(0)

相关推荐