1.无条件跳转指令(也称绝对跳转指令)
格式:GOTO n(n为标号,n的范围为:1~99999,不在这个范围内,系统会自动报警,报警号No.128)。
语义:跳转到标号为n的程序段。
注意:使用该跳转语句时,必须要有跳转语句使程序跳转到GOTO 20后面程序段处执行后面的程序,否则会执行无限循环(死循环),在程序设计中要尽量避免使用该类语句。
一般用法是:GOTO语句和IF[条件表达式]GOTO n([ ]中为条件判断语句)配合使用,实现程序适合精加工场合,在后面通过实例来说明这一用法。
2.条件转移语句
格式:IF[条件表达式]GOTOn; (n为程序的标号)
语义:指定表达式满足时,转移到标有顺序号n的程序段执行;指定的条件表达式不满足,则执行下一个程序段。
如果[]中表达式成立,则跳转到程序号为20处执行,否则执行下一个程序段,其流程框图如图1-1所示。
注意:在FANUC系统输入时,IF和[条件表达式]之间必须有空格隔开,[条件表达式]和GOTO 20之间必须有空格来隔开。其中条件表达式必须包含运算符(见后面详细说明)。运算符插在两个变量中间或变量和常量之间,必须加[]。
图1-1 条件转移语句的流程框图
3.条件赋值语句
格式:IF[条件表达式]THEN语句;
语义:条件表达式满足时,执行THEN后面的语句;如果不满足,顺序执行IF程序段的下一条语句,则该语句相当于对变量的有条件赋值。
如果[ ]中表达式描述的条件成立,则执行#100=0的语句,否则执行下一个程序段。
注意:IF语句可以嵌套IF语句,如下所示:
IF语句也可以互相交叉,如下所示:
这和后面的WHILE语句有所不同,在实际应用中要注意区别,否则达不到程序设计预期的目标。
4.循环语句(WHILE语句)
格式:WHILE[条件表达式]DO m;
循环体;
END m;(m为取值的标号)
语义:在WHILE后面指定了一个条件表达式,当条件表达式值为TRUE时,则执行WHILE到END之间的循环体的程序段;当条件表达式的值为FALSE时,则执行END后面的程序段。循环语句流程框图如图1-2所示。
图1-2 循环语句流程框图
关于WHILE语句的几点说明如下:
1)DO m和END m必须成对使用,而且DOm必须在ENDm之前使用,是用识别号m来寻找和DO相配对的END语句,下面是错误的用法:(www.xing528.com)
WHILE[条件表达式]DO 1;
循环体;
END2;
2)m的取值只能为1、2、3,如果使用1、2、3以外的数值,系统会报警,报警号为No.126。
3)[]中的语句为条件表达式,循环的次数根据条件表达式来决定,如果条件表达式的值永远为True时,则会无限次执行循环体,即出现死循环的现象。在进行程序设计时,要先设计好算法,避免出现死循环的现象。
例如:
WHILE[1 GT 0]DO1;
循环体;
END1;
因为1永远大于0,所以此语句会无限次地执行循环体中的程序段。
4)条件判断语句(IF[条件表达式]GOTOn)和循环语句(WHILE)的区别:两者的区别在于判断的先后顺序不同,本质没有太大区别,但在实际应用中要注意它们微小的区别。一般能用IF[条件表达式]GOTO n的语句都可以用循环语句(WHILE)来替代。
这两个程序的运行结果完全一样。关于两个语句处理的时间,以前的教材中认为循环语句(WHILE)比IF[条件表达式]GOTO n处理得快些。事实上,它们只是循环搜索方式不一样,随着数控系统功能的增强、计算机CPU处理速度越来越快,这些处理时间已微不足道了。
再看下面的程序:
通过这两个简单程序的比较,不难发现它们的不同点,在实际使用的时候要理解和区分(初学者容易在这出错),应用不当会影响加工零件的尺寸精度。
5)关于WHILE语句的嵌套。WHILE语句提供嵌套的功能,包括以下几种类型:
①两层嵌套如下所示:
②FANUC系统提供的嵌套最多为三层嵌套,如下所示:
③嵌套不能互相交叉,这和IF[条件表达式1]GOTO n之间的嵌套有区别。
注意:上面语句的交叉嵌套是错误的。
④IF[条件表达式1]GOTO n和WHILE[条件表达式2] DOm…END m组合可实现更为强大的功能,格式如下:
WHILE[条件表达式2] DO m;
程序段;
这里的IF[条件表达式1]GOTO n,相当于计算机编程C语言中Break语句的功能,这就避免了语句会出现无限次执行下去的情况。
⑤条件转移语句不能转移到循环的里面,这样会导致死循环,在程序设计中一定要避免此类情况发生。
最后说明一点:在SINUMERIK系统中没有提供WHILE语句的功能,因此不能用该语句进行SINUMERIK系统R参数程序的编制,在实际编程中要以机床提供的操作手册和参数说明书为准。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。