数控宏程序是什么样的?

技术小编 2531 0

\

宏程序简单来说分两部分


 一是:宏程序的格式

           主要是变量和循环体

变量属于硬性的规定,每个系统都有自己的规定,

根据自己的系统去了解,不需要都理解的特别多

只要会运用就可以


这里以发那科系统为例


在发那科系统中,变量是以#键开始的后面跟数字

(变量的格式即#1 #2)

例如 #1  这个时候考虑这个#1的时候,可以

把他想象成1号仓库,这里的存储物品是数据

和运算的公式

在这个仓库中所以的运算时直接进行的,是可以

直接通过如X#1这样的形式直接调用里面的数据

也可以通过#29=#30/COS[15]*[SIN[15]+COS[15]-1]]

#16=0.5*[#11-#3]+#12+#13+#29-0.5

运算公式,直接代入数据参与运算后再调用


简单来说变量就直接理解为一个存储单元

#1 #2 #3这些,就直接理解为1号仓库2好仓库3号仓库

变量符号后面的数值没有特殊的含义,他所代表的就是

一个变量的具体地址,这些是发那科系统中的变量

西门子系统中R1 R2 R3(变量的格式)


在任何的宏程序,思路只要你会,其他的都简单,可能

3、5天格式就完全会了,所以宏程序具体的格式,不重

要,重要的是思路,是方法,用什么系统到时候在看下

具体的格式就可以了


变量一般分为3种:局部变量(只在当前程序中有效,包括

所在的主程序和子程序,断电后数据会清零,一般如果去

编写通用宏程序尽量使用局部变量)(#1到#33)


全局变量(在所有的程序中都有效,断电后也不会清零)


系统变量(与系统参数绑定到一块的变量,一般不是

厂家或是非常了解参数的人尽量不要改)


初期只需要把局部变量用好就行了,变量不用刻意的

去研究或是理解,没有必要,也没有太大的意义



在发那科系统中循环语句就两个:while和if


循环控制语句


WHILE[] DO1


WHILE[]DO3


WHILE[]DO2


END2


WHILE[]DO2


END2


END3


END1(1.2.3只能是这三个数值,但是没有顺序之分)


这里是一个多重嵌套,具体的直播的时候也给大家讲了


(IF[ ]GOTO30

N+数字n

条件跳转)


往前跳这叫循环体

N30


IF[判定条件]GOTO30

IF[]GOTO30

往后跳条件跳转

N30

这些直播的时候也讲的挺详细的了


WHILE语句更像是用苹果系统

(封闭但是效率高)

IF语句更像是用安卓系统

(开发兼容但是效率较低)


IF和WHILE可以相互嵌套,也可以单独嵌套

也可以单独使用


N+数字m

当我们想用IF循环的时候,一定要前置跳转程序段


例如:

#1=10

N10

G0 X[#1+10] 20 19 ...10

G1 Z-20 F0.2

G0 X22

Z2

#1=#1-1  9 8 7...0

IF[#1 GE 0]GOTO10

G0 X200

Z200




最简单的车个螺纹,如果只有一个车削动作的话,只要

一层循环

深度循环就好

WHILE[]DO1



IF[]GOTOn

变量运算

IF[]THEN运算

END1

Nn


WHILE语句在实际用的时候,他是一个封闭的整体,相当于

一个通道,这个通道只有一个入口那就WHILE[]DO

任何的跳转语句都不能跳转进入,出口可以有两个或是多个

这个时候可以直接结束循环,也可以通过跳转语句来跳转


下面的这个格式是错误的,GOTO是跳不进循环去的

GOTO20

WHILE[]DO1

N20


IF[]GOTOn

变量运算

IF[]THEN运算


END1

Nn


GOTOn(强制跳转) GOTO2     N2


N5



IF[]GOTO5(有条件跳转)一是循环体(往前跳) 

二是跳转(往后跳)


N5


IF[]THEN(有条件运算)

THEN后面一般都赋值或是运算

IF[]成立的时候,执行

THEN后面的语句

(这个语句为我们简化程序或是增加程序的功能

提供了很大的方便)



N3

T101

程序段

GOTO3

(GOTO语句后的程序段号一定不能出现在GOTO前,否则

就是死循环)

T202

程序段

T303

程序段

N3

T404

程序段


T101

M03 S2000

N2

G0 X-200

Z-200

X0

Z0

GOTO2

M99



宏程序的语句和变量,大概这个意思都讲清楚



循环体之间可以通过GOTO 与条件跳转或IF[]THEN

之间的搭配来完成强大功能,这个就需要具体的

情况具体搭配

#1=1

IF[#1 EQ -1]GOTO20

WHILE[]DO1



END1

GOTO30

N20

WHILE[]DO1



END1

N30



标签: 数控宏程序

抱歉,评论功能暂时关闭!