首页 理论教育 变量间的演算:深度剖析

变量间的演算:深度剖析

时间:2026-01-23 理论教育 Jonker 版权反馈
【摘要】:不用变量,也可用运算式。表3-3 条件表达式种类例:编写求1~10之和的数控程序。说明:1)在条件成立期间,HNC—21/22M数控系统执行WHILE之后到ENDW间的程序,FANUC 0i数控系统执行ENDm后的程序;条件不成立时,HNC—21/22M数控系统执行ENDW的下一个程序段,FANUC 0i数控系统执行WHILE之后的DO到ENDm间的程序。FANUC 0i数控系统中的DO和END后的m数值是指定执行范围的识别符,可使用1、2、3;非1、2、3时,报警。

宏程序的运算指令类似于数学运算,它包括算术运算指令、逻辑运算指令、函数运算指令、控制转移指令等。

1.运算指令

常见的运算指令见表3-2。

表3-2 运算指令

图示

(1)运算的优先级 宏程序数学运算的优先次序为:函数(SIN、COS、ATAN等)→乘、除类运算(*、÷、AND等)→加、减类运算(+、-、OR、XOR等)。

例如:#1=#2+#3*SIN[#4]或R1=R2+R3*SIN[R4];运算顺序为:函数SIN[#4]→乘#3*…→加#2+…。

(2)括号的嵌套 当要变更运算的优先顺序时,使用括号。包括函数的括号在内,括号最多可用到5重,超过5重时则出现报警。

例如:#1=SIN[[[#2+#3]*#4+#5]*#6]。

(3)角度单位 在FANUC数控系统和SIEMENS数控系统中,角度以度(°)为单位,如:90°30′表示成90.5°;而在HNC—21/22M数控系统中角度以弧度(rad)为单位,因此在进行三角函数运算时,应将角度转换为弧度,如计算正弦30°的值,应书写成SIN[30*PI/180](PI=π)。

2.控制语句

在程序中使用GOTO、IF语句(条件转移,如果…)、WHILE语句(循环,当…)。

(1)HNC—21/22M数控系统

1)条件判别语句:IF ELSE ENDIF。

格式(i):IF条件表达式

…条件成立(真)

ELSE

…条件不成立(假)

ENDIF

格式(ii):IF条件表达式

…条件成立(真)

ENDIF

2)循环语句:WHILE ENDW。

格式:WHILE条件表达式

…条件成立(真)

ENDW

(2)SIEMENS数控系统

1)绝对跳转。

指令格式:GOTOF Label(标记符);向前跳转

GOTOB Label(标记符);向后跳转

图示

2)有条件跳转。

指令格式:IF条件GOTOF Label;向前跳转

IF条件GOTOB Label;向后跳转

图示

(3)FANUC数控系统(https://www.xing528.com)

1)无条件转移(GOTO语句):无条件转移到顺序号为n的程序段。

指令格式:GOTO n;

其中:n为顺序号,可取1~99999;顺序号也可用表达式表示。

例:GOTO 1;

GOTO#10;

2)条件转移(IF语句):IF后面是条件式,如果条件成立,则转移到顺序号为n的程序段语句,否则,执行下一个程序段。

例如:如果#1值比10大,则转移到顺序号N60的程序段。

指令格式:IF[#1GT 10]GOTO 60;

条件不成立→按程序顺序执行;条件成立→执行N60程序段。

说明:

a)条件式是在比较的两个变量之间,或一个常量与一个变量之间,写上比较运算符,然后再用方括号[]全部括起来而构成的。不用变量,也可用运算式。

b)运算符由两个英文字母构成,用来判断大、小或相等,见表3-3。

表3-3 条件表达式种类

图示

例:编写求1~10之和的数控程序。

用FANUC 0i和SIEMENS系统编程,为

图示

3.循环语句

(1)HNC—21/22M数控系统 循环语句WHILE ENDW

指令格式:WHILE条件表达式

…条件成立(真)

ENDW

(2)FANUC数控系统 在WHILE语句后指定一个条件表达式。

指令格式:WHILE[条件式]DOm(m=1,2,3)

…条件不成立(假)

END m;

说明:

1)在条件成立期间,HNC—21/22M数控系统执行WHILE之后到ENDW间的程序,FANUC 0i数控系统执行ENDm后的程序;条件不成立时,HNC—21/22M数控系统执行ENDW的下一个程序段,FANUC 0i数控系统执行WHILE之后的DO到ENDm间的程序。条件式和运算符与IF语句相同。FANUC 0i数控系统中的DO和END后的m数值是指定执行范围的识别符,可使用1、2、3;非1、2、3时,报警。

2)嵌套。在DO~END之间的循环识别号(1~3)可使用任意次,但是不能执行交叉循环,否则报警。见表1-23。

注意:如果省略WHILE语句,只指令了DO m,则从DO~END之间形成无限循环。

例:使用WHILE循环语句编写求1~10之和的数控程序。

用HNC—21/22M和FANUC 0i系统编程,为

图示

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈