分享

数控宏程序知识讲解,看完你也牛逼了

 谁是谁的谁337 2016-12-01


01
何为宏程序


用变量的方式进行数控编程的方法就叫做数控宏程序编程。



我们普通程序(如G01X100.Y100.F200X,Y地址后面都是些常量,如果我们把这些常量用变量来编写如G01X#1 Y#2 F200,这就是我们所谓的宏程序。

 

备注:FUNC系统是用#1#2等等来表示变量的。

*(机床系统不同表示的方式也不同,在这以FUNC系统为例)FUNC系统是用#1#2等等来表示变量的。即“#”和“数字”组成的。如#1#2……#33等。这些#后面的数子1,2,3等等有什么含义吗?其实它只是宏变量的代号而已。

举个最简单的例子:如果有三个人,他们的名字叫小李、小李、小李。那么当你呼叫小李的时候,会发生一个问题,这三个人都会回答,但你其实只想喊其中的一个。这就分不清了。同理,#1 #1 #1 ,如果后面的数字都是一样,当系统使用#1的时候,它也会发生糊涂,到底让我用哪个呢?所以为了区分它们,就把后面的数字写成不同的,比如#1#2#3。此时如果系统使用#1,就不会发生混乱了。


02
何为变量


变量是一个会变化的量,与之对应的是常量。(常量比如:12,2265等等阿拉伯数字。变量比如:#1#2#5等等,#1#2的值到底是多少??因为它是变量,一个会变化量)。

 

03
变量是多少?


比如把#1#2等变量当做的银行卡,你往这些卡里存了多钱,那么这些卡里就有多钱(比如:往#1里面存了500元,此时#1就相当于500,又取走了300此时#1里面就有200

 

04
变量的赋值


#1里面存了500元等这么一个过程就叫变量赋值。如果你不在往“#1“里面存钱,或取钱,那么#1就相当于500.也就是说#1不发生运算的情况下就是500.如果有这么一个程序段G0X#1,也就等同于此程序段G0X500.

那么变量在数控机床中是怎么赋值的呢?

        格式如下:

机床中的赋值中文解释备注
#5=100100这个数值赋给变量#5把常量赋给了#5
#1=#1-1#1-1这个运算结果赋值给#1把表达式结果赋值给了#1
#6= [#11 #15 3][#11 #15 3]这个表达式的运算结果赋值给#6把表达式结果赋值给了#6

        

05
宏程序IF…GOTO语句


直观意思是:如果...就跳转到哪(或者是做什么事)

那么我们用一个小程序来详细的解释下这语句。

       

%

O0001

#1 = 10

N10 #2 = 20

IF[#2 EQ 20] GOTO10

G0 X100.

Z100.

.......

M30

%


 上面这个IF语句是什么意思呢? 它表示:如果#2这个变量的值等于20的话,就跳转到第10号程序段。可能有人会问“GOTO10 后面的10表示什么意思。其实这个10表示行号。

数控的程序一般都有行号的,如果没有,那是系统参数设定的事,不过你只要知道有行号就行。还有人会问 EQ 是什么意思,这个是英文EQUAL的简写,含义是等于的意思。

对于新手,建议掌握以下几个常用的符号(如下表):

 

运算符含义英文注释
EQ等于(=Equal
NE不等于(≠)Not Equal
GT 大于(>)Great Than
GE大于或等于(≧)Great than or Equal
LT  小于(﹤)Less Than
LE小于或等于(≦)Less than or Equal


所以都这里我们不难理解上面判断语句的意思了:如果#2等于20,就跳转到第10号段。

由于#2是等于20(因为在赋值的时候,#2=20),所以条件成立,就跳到了第10号段执行。我们都知道数控程序一般是从上往下执行的,那么我们这跳到了第10行,接着往下执行时又遇到了IF判断语句,于是有开始判断#2是不是等于20,结果等于!于是又成立了,继续跳到第10行。所以,这个程序是死循环,永远不会结束。 

说到这,细心人会发现一个问题:条件成立了,会执行GOTO语句,那要是不成立,程序会怎么办? 其实很简单,不成立就往下面走。也就是说如果不成立,就执行G0X100. 的程序段,直到程序运行至M30结束!


总结:如果条件成立,就执行GOTO语句,你写的行号是多少,它就跳到那个行;要是条件不成立,那么就执行IF下面的语句,不执行GOTO语句!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多