宏程序两大主要语句
1,IF…..GOTO语句:
意思是:如果...就跳转到哪(或者是做什么事)。我们不妨用这个格式来造句。
如果 我是大巴,那么 我水经验就不怕小黑屋了;
如果 我是18级了,那么 我就不水经验了!
共同点:“如果”后面会跟一个条件!根据这个条件,决定我做什么事!所以很多书中都这么介绍此语句:IF[条件成立]GOTO?
那么我们用一个小程序来详细的解释下这语句。
O0001
N1 #1 = 20
#2 = 20
IF[#1 EQ #2] GOTO1
G0 X100.
Z100.
.......
M30
上面这个IF语句表示:如果#1这个变量的值等于#2的值,就跳转到第N1号程序段。注意“GOTO”和“1”是两个段组成。GOTO是跳转,1表示程序行号。数控的程序一般都有行号的,如果没有,那是系统参数设定,你可以自己在程序里根据自己需要加上(都来学宏了G71总会用把,一样的道理)。
那么EQ是什么意思,这个是英文EQUAL的简写,含义是等于的意思。
新手,建议掌握以下几个常用的符号:
EQ等于(=)
NE不等于(≠)
GT大于(>)
GE大于或等于(≥)
LT小于(<)
LE小于或等于(≤)
然后理解上面判断语句的意思了:如果#1等于#2,就跳转到第N1号段。
由于#1的值20(因为在赋值的时候,#1=20),同理#2也是20,所以条件成立,就跳到了第N1号段执行。因为数控程序一般是从上往下执行的,那么我们这跳到了第N1行,接着往下执行时又遇到了IF判断语句,于是有开始判断#1是不是等于#2,结果等于!于是又成立了,继续跳到第1行。所以,这个程序是死循环,永远不会结束。
说到这,细心人会发现一个问题:条件成立了,会执行GOTO语句,那要是不成立,程序会怎么办? 其实很简单,不成立就往下面走会忽略这段程序。也就是说如果不成立,就执行IF段下面的G0X100.的程序段,直到程序运行至M30结束!
总结:如果条件成立,就执行GOTO语句,你写的行号是多少,它就跳到那个行;要是条件不成立,那么就执行IF下面的语句,不执行GOTO语句!
1,IF…..GOTO语句:
意思是:如果...就跳转到哪(或者是做什么事)。我们不妨用这个格式来造句。
如果 我是大巴,那么 我水经验就不怕小黑屋了;
如果 我是18级了,那么 我就不水经验了!
共同点:“如果”后面会跟一个条件!根据这个条件,决定我做什么事!所以很多书中都这么介绍此语句:IF[条件成立]GOTO?
那么我们用一个小程序来详细的解释下这语句。
O0001
N1 #1 = 20
#2 = 20
IF[#1 EQ #2] GOTO1
G0 X100.
Z100.
.......
M30
上面这个IF语句表示:如果#1这个变量的值等于#2的值,就跳转到第N1号程序段。注意“GOTO”和“1”是两个段组成。GOTO是跳转,1表示程序行号。数控的程序一般都有行号的,如果没有,那是系统参数设定,你可以自己在程序里根据自己需要加上(都来学宏了G71总会用把,一样的道理)。
那么EQ是什么意思,这个是英文EQUAL的简写,含义是等于的意思。
新手,建议掌握以下几个常用的符号:
EQ等于(=)
NE不等于(≠)
GT大于(>)
GE大于或等于(≥)
LT小于(<)
LE小于或等于(≤)
然后理解上面判断语句的意思了:如果#1等于#2,就跳转到第N1号段。
由于#1的值20(因为在赋值的时候,#1=20),同理#2也是20,所以条件成立,就跳到了第N1号段执行。因为数控程序一般是从上往下执行的,那么我们这跳到了第N1行,接着往下执行时又遇到了IF判断语句,于是有开始判断#1是不是等于#2,结果等于!于是又成立了,继续跳到第1行。所以,这个程序是死循环,永远不会结束。
说到这,细心人会发现一个问题:条件成立了,会执行GOTO语句,那要是不成立,程序会怎么办? 其实很简单,不成立就往下面走会忽略这段程序。也就是说如果不成立,就执行IF段下面的G0X100.的程序段,直到程序运行至M30结束!
总结:如果条件成立,就执行GOTO语句,你写的行号是多少,它就跳到那个行;要是条件不成立,那么就执行IF下面的语句,不执行GOTO语句!