正文
对宏程序中的变量可以可以进行算术运算和逻辑运算。
1. 算术运算
可以进行加、减、乘、除运算。运算功能和格式如表12-3所示。
举例:G00X[#1+#2]
X坐标的值是变量1与变量2之和。
2. 三角函数计算
对宏程序中的变量可进行正弦(SIN)、反正弦(ASIN)、余弦(COS)、反余弦(ACOS)、正切(TAN)、反正切(ATAN)函数运算。三角函数中的角度以度为单位。运算功能和格式如表12-3所示。
表12-3 变量运算功能表
类型 |
功能 |
格式 |
举例 |
备注 |
算 术 运 算 |
加法 |
#i=#j+#k |
#1=#2+#3 |
常数可以代替变量 |
减法 |
#i=#j-#k |
#1=#2-#3 |
||
乘法 |
#i=#j*#k |
#1=#2*#3 |
||
除法 |
#I=#j*#k |
#1=#2/#3 |
||
三 角 函 数 运 算 |
正弦 |
#i=SIN[#j] |
#1=SIN[#2] |
角度以度指定35°30’ 表示为35.5 常数可以代替变量 |
反正弦 |
#i=ASI[#j] |
#1=ASIN[#2] |
||
余弦 |
#i=COS[#j] |
#1=COS[#2] |
||
反余弦 |
#i=ACOS[#j] |
#1=ACOS[#2] |
||
正切 |
#i=TAN[#j] |
#1=TAN[#2] |
||
反正切 |
#i=ATAN[#j] |
#1=ATAN[#2] |
||
其 它 函 数 运 算 |
平方根 |
#i=SQRT[#j] |
#1=SQRT[#2] |
常数可以代替变量 |
绝对值 |
#i=ABS[#j] |
#1=ABS[#2] |
||
舍入 |
#i=ROUN[#j] |
#1=ROUN[#2] |
||
上取整 |
#i=FIX[#j] |
#1=FIX[#2] |
||
下取整 |
#i=FUP[#j] |
#1=FUP[#2] |
||
自然对数 |
#i=LN[#j] |
#1=LN[#2] |
||
指数对数 |
#i=EXP[#j] |
#1=EXP[#2] |
||
逻辑 运算 |
与 |
#i=#jAND#k |
#1=#2AND#2 |
按位运算 |
或 |
#i=#j OR #k |
#1=#2OR#2 |
||
异或 |
#i=#j XOR #k |
#1=#2XOR#2 |
||
转换运算 |
BCD转BIN |
#i=BIN[#j] |
#1=BIN[#2] |
|
BIN转BCD |
#i=BCD[#j] |
#1=BCD[#2] |
对于反反正弦(ASIN)取值范围如下:
当参数(No.6004#0)NAT位设为0时:270°~90°
当参数(No.6004#0)NAT位设为1时:-90°~90°
当#j超出-1~1时发出P/S报警No.111。
对于反余弦(ACOS)的取值范围如下:
取值范围180°~0°
当#j超出-1~1时发出P/S报警No.111。
对于反正切(ATAN)的取值范围如下:
当参数(No.6004#0)NAT位设为0时:0°~360°
当参数(No.6004#0)NAT位设为1时:-180°~180°
3. 其它函数计算
对宏程序中的变量还可以进行平方根(SQRT)、绝对值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然对数(LN)、指数(EXP)运算。运算功能和格式如表12-3所示。
向上取整:比自己大的最小整数;
向下取整:比自己小的最大整数;
对于自然对数LN[#j],相对误差可能大于10-8。当#j≤0时,发出P/S报警No.111。
对于批数函数EXP[#j],相对误差可能大于10-8。当运算结果大于3。65×1047(j大约110)时,出现溢出并发出P/S报警No.111。
对于取整函数ROUN[#j],根据最小设定单位四舍五入。
例如,假设最小设定单位为1/1000mm,#1=1.2345,则#2=ROUN[#1]的值是1.0。
对于上取整FIF[#j],绝对值值大于原数的绝对值。对于下取整FUP绝对值小于原数的绝对值。
例如,假设#1=1.2,则#2=FIX[#1]的值是2.0。
假设#1=1.2,则#2=FUP[#1]的值是1.0。
假设#1=-1.2,则#2=FIX[#1]的值是-2.0。
假设#1=-1.2,则#2=FUP[#1]的值是-1.0。
4. 逻辑运算
对宏程序中的变量可进行与、或、异或逻辑运算。逻辑运算是按位进行。运算功能和格式如表12-3所示。
5. 数制转换
变量可以在BCD码与二进制之间转换。
6. 关系运算
由关系运算符和变量(或表达式)组成表达式。系统中使用的关系运算符如下。
(1)等于(EQ)
用EQ与两个变量(或表达式)组成表达式,当运算符EQ两边的变量(或表达式)相等时,表达式的值为真,否则为假。
例如,#1EQ#2,当#1与#2相等时,表达式的值为真。
(2)不等于(NE)
用NE与两个变量或表达式组成表达式,当运算符NE两边的变量(或表达式)不相等时,表达式的值为真,否则为假。
例如,#1NE#2,当#1与#2不相等时,表达式的值为真。
(3)大于等于(GE)
用GE与两个变量或表达式组成表达式,当左边的变量(或表达式)大于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。
例如,#1GE#2,当#1大于或等于#2时,表达式的值为真。否则为假。
(4)大于(GT)
用GT与两个变量或表达式组成表达式,当左边的变量(或表达式)大于右边的变量(或表达式)时,表达式的值为真,否则为假。
例如,#1GT#2,当#1大于#2时,表达式的值为真。否则为假。
(5)小于等于(LE)
用LE与两个变量或表达式组成表达式,当左边的变量(或表达式)小于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。
例如,#1LE#2,当#1小于或等于#2时,表达式的值为真。否则为假。
(6)小于(LT)
用LT与两个变量或表达式组成表达式,当左边的变量(或表达式)小于右边的变量(或表达式)时,表达式的值为真,否则为假。
例如,#1GE#2,当#1大于#2时,表达式的值为真。否则为假。
7. 运算优先级
运算符的优先顺序是
(1)函数。函数的优先级最高。
(2)乘、除、与运算。乘、除、与运算的优先级次于函数的优先级。
(3)加、减、或、异或运算。加、减、或、异或运算的优先级次于乘、除、与运算。乘、除、与运算的优先级。
(4)关系运算。关系运算的优先级最低。
用方括号可以改变优先级,括号不能超过5层。超过5层时,发出P/S报警No.111。
8. 变量值的精度
变量值的精度为8位十进制数。
例如:用赋值语句#1=9876543210123.456时,实际上#1=9876543200000.000。
用赋值语句#2=9876543277777.456时,实际上#2=9876543300000.000。