首页 理论教育 算术和逻辑运算解析

算术和逻辑运算解析

时间:2023-06-25 理论教育 版权反馈
【摘要】:表1-20 算术和逻辑运算1.角度单位函数SIN、COS、ASIN、ACOS、TAN和ATAN中所用的角度单位是度(°)。

算术和逻辑运算解析

表1-20列出的运算可以在变量中执行。运算符右边的表达式可包含常量和/,或由函数、运算符组成的变量。表达式中的变量#j和#k可以用常数替换。左边的变量也可以用表达式赋值

表1-20 算术和逻辑运算

978-7-111-33271-8-Chapter01-34.jpg

1.角度单位

函数SIN、COS、ASIN、ACOS、TAN和ATAN中所用的角度单位是度(°)。

2.ARCSIN#i=ASIN[#j]

1)取值范围如下:

a)当参数(No.6004#0)NAT位设为0时,取值范围为90°~270°。

b)当参数(No.6004#0)NAT位设为1时,取值范围为-90°~90°。

2)当#j超出-1~+1的范围时,发出P/S报警No.111。

3)常数可替代变量#j。

3.ARCCOS#i=ACOS[#j]

1)取值范围从0°~180°。

2)当#j超出-1~+1的范围时,发出P/S报警No.111。

3)常数可以代替变量#j。

4.ARCTAN

指定两个边的长度,并用斜杠(/)分开。

5.#i=ATAN[#j]/[#k]

1)取值范围如下:

a)当NAT位(参数No.6004,#0)设为0时,取值范围为0°~360°。

例如:当指定#1=ATAN[-1]/[1]时,#1=225°。

b)当NAT位(参数No.6004,#0)设为1时,取值范围为-180°~180°。

例如:当指定#1=ATAN[-1]/[1]时,#1=-135.0°。

2)常数可以代替变量#j。

6.自然对数#i=LN[#j]

1)注意,相对误差可能大于10-8

2)当反对数(#j)为0或小于0时,发出P/S报警No.111。

3)常数可以代替变量#j。

7.指数函数#i=EXP[#j]

1)注意,相对误差可能大于10-8

2)当运算结果超过3.65×1047(j大约是110)时,出现溢出并发出P/S报警No.111。

3)常数可以代替变量#j。

8.ROUND(舍入)函数

1)当算术运算或逻辑运算指令IF或WHILE中包含ROUND函数时,则ROUND函数在第1个小数位置四舍五入

例如:当执行#1=ROUND[#2]时,此处#2=1.2345,变量1的值是1.0。

2)当在NC语句地址中使用ROUND函数时,ROUND函数根据地址的最小设定单位将指定值四舍五入。

例如:编制一个钻削加工程序,按变量#1、#2的值进行切削,然后返回到初始位置。假定最小设定单位是1/1000mm,变量#1=1.2345,变量#2=2.3456,则

G00 G91 X-#1;移动1.235mm

G01 X-#2 F300;移动2.346mm

G00 X[#1+#2];由于1.2345+2.3456=3.5801,移动距离为3.580mm,刀具不能返回到初始位置。而换成G00 X[ROUND[#1]+ROUND[#2]],则能返回到初始点。

该误差来自在钻入时,钻入深度是分别按变量#1和#2的舍入值钻削的,而返回时是按变量#1和#2的和舍入的,所以刀具不会返回到初始值;如果要使刀具返回初始值,则必须在返回程序段(G00 X[#1+#2])之前,指定钻削程序段中的变量#2为函数(G00 X-[ROUND[#2]]。

9.上取整和下取整

CNC处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时,为上取整;若小于原数的绝对值时,为下取整。对于负数的处理应小心。

例如:假设#1=1.2、#2=-1.2。

当执行#3=FUP[#1]时,2.0赋给#3。

当执行#3=FIX[#1]时,1.0赋给#3。(www.xing528.com)

当执行#3=FUP[#2]时,-2.0赋给#3。

当执行#3=FIX[#2]时,-1.0赋给#3。

10.算术与逻辑运算指令的缩写

程序中指定函数时,函数名的前两个字符可以用于指定该函数。

例如:ROUND→RO

FIX→FI

11.运算次序

运算次序为

1)函数。

2)乘和除运算(*、/、AND)。

3)加和减运算(+、-、OR、XOR)。

978-7-111-33271-8-Chapter01-35.jpg

1、2和3表示运算次序

12.括号嵌套

括号用于改变运算次序。括号可以使用5级,包括函数内部使用的括号。当超过5级时,出现P/S报警No.118。

978-7-111-33271-8-Chapter01-36.jpg

1~5表示运算次序

注意:

1)方括号用于封闭表达式,圆括号用于注释。

2)运算时,可能出现误差,见表1-21。

表1-21 运算中的误差

978-7-111-33271-8-Chapter01-37.jpg

注:如果SIN、COS或TAN函数的运算结果小于1.0×10-8,或由于运算精度的限制不为0的话,设定参数No.6004#1为1,则运算结果可以推算为0。

① 相对误差取决于运算结果。

② 使用两类误差的较小者。

绝对误差是常数,而不管运算结果。

④ 函数TAN执行SIN/COS。

3)变量值的精度约为8位十进制数。当在加/减运算中处理非常大的数时,将得不到期望的结果。

例如:当试图把下面的值赋给变量#1和#2时,

#1=9876543210123.456

#2=9876543277777.777

变量值变成:

#1=9876543200000.000

#2=9876543300000.000

此时,当计算#3=#2-#1时,结果为#3=100000.000。(该计算的实际结果稍有误差,因为是以二进制执行的。)

4)还应该意识到,使用条件表达式EQ、NE、GE、GT、LE和LT时可能造成误差。

例如:IF[#1EQ#2]的运算会受#1和#2误差的影响,由此会造成错误的判断。因此,应该用IF[ABS[#1-#2]LT0.001]代替上述语句,以避免两个变量的误差。

当两个变量的差值未超过允许极限(此处为0.001)时,则认为两个变量的值是相等的。

5)使用下取整指令时应小心。

例如:当计算#2=#1*1000,式中#1=0.002时,变量#2的结果不是准确的2,可能是1.99999997。

这里,当指定#3=FIX[#2]时,变量3的结果不是2,而是1.0。此时,可先纠正误差,再执行下取整;或是用如下的四舍五入操作,即可得到正确结果。

#3=FIX[#2+0.001]

#3=ROUND[#2]

13.除数

当在除法或TAN[90]中指定为0的除数时,出现P/S报警No.112。

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

我要反馈