1. 首页
  2. 技术文章
  3. 其它数控

新代宏程序入门基础知识

新代宏程序入门基础知识

文件格式

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,显而易见,条件是满足的,所以IFEND_IF之间的内容会被执行,X轴向正向移动10mm#3-1.=4.,再次判断#3是否大于0,若条件成立则会再次执行IFEND_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度一个。

 

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

  使用宏程序可以实现智能加工、自动分中、开发G代码、开发M代码等功能,后续我们会逐步去讲解宏程序在加工中的实际运用。

 
问答社区  发起问答  报警查询  技术文章  维修服务  资料下载  加交流群  申请 VIP   

本文转载来自【网络】,仅供大家学习交流,如侵权请联系站长删文。

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

联系微信:QQ594673193

联系邮箱:594673193@qq.com

工作时间:08:00~20:00

QR code