变量可以进行加、减、乘、除运算。运算功能和格式如下表所示。举
举例: G00 X[#1+#2]
X坐标的值是变量1与变量2之和。
标量算术运算功能表
类型 | 功能 | 运算符 | 格式 | 举例 | 备注 |
---|---|---|---|---|---|
算数运算 | 加法 | + | #i=#j+#k | #1=#2+#5 |
常熟可以代替变量,如 #1=#2+#4 |
减法 | - | #i=#j-#k | #1=#2+#3 | ||
乘法 | × | #i=#j×#k | #1=#2×#3 | ||
除法 | / | #i=#j/#k | #1=#2/#3 |
对宏程序中的变量可进行与、成、异或逻辑运算。逻辑运算是孩位进行的。运算功能和格式如下表所示。
变量逻辑运算功能表
类型 | 功能 | 运算符 | 格式 | 举例 | 备注 |
---|---|---|---|---|---|
逻辑运算 | 与 | AND | #i=#jAND#k | #1=#2AND#5 | 按位运算 |
或 | OR | #i=#j OR #k | #1=#2OR #3 | ||
异或 | XOR | #i=#j XOR #k | #1=#2XOR #3 |
类型 | 功能 | 运算符 | 格式 | 举例 | 备注 |
---|---|---|---|---|---|
关系运算 | 等于 | EQ | #i EQ #j | IF[#1 EQ 30] |
条件成立 结果为真 |
不等于 | NE | #i NE #j | IF[#1 NE 30] | ||
大于或等于 | GE | #i GE #j | IF[#1 GE 30] | ||
大于 | GT | #i GT #j | IF[#1 GT 30] | ||
小于或等于 | LE | #i LE #j | IF[#1 LE 30] | ||
小于 | LT | #i LT #j | IF[#1 LT 30] |
类型 | 功能 | 格式 | 举例 | 备注 |
---|---|---|---|---|
三角函数运算 | 正弦 | #i=SIN[#j] | #3=#2×SIN[#1] | 角度以度为单位指定,如30°30‘表示为30.5,常数可以代替变量 |
反正弦 | #i=ASIN[#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] |
(1)反正弦(ASIN)的取值范围如下:
●当参数(No.6004#0)NAT位设为0时为90°~270°;
●当参数(No.6004#0)NAT位设为1时为-90°~90°;
●当#J超出-1~1时发出P/S报警No.ll1。
(2)反余弦(ACOS)的取值范围如下:
●取值范围为0°~180°;
●当荆超出-1~1时发出P/S报警No.111。
(3)反正切(ATAN)的取值范围如下:
●当参数(No.6004#0)NAT位设为0时为0°~360°;
●当参数(No.6004#0)NAT位设为1时为-180°~ 180°。
举例: G01 X#1*COS[#3] Y#1*SIN[#3]。
类型 | 功能 | 格式 | 举例 | 备注 |
---|---|---|---|---|
其他函数运算 | 平方根 | #i=SORT[#j] | #1=SORT[#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] |
对于自然对数LN[#j]相对误差可能大于10-8当#j≤0时,发出P/S报警No.111。
对于指数对数EXP[#j]相对误差可能大于10-8。当运算结果大于3.65x1047(#j>110)时,出现溢出并发出P/S报警No.111。
对于含入ROUN[#j],根据最小设定单位四舍五入。
例如,假设最小设定单位为1/1000mm #1=1.2345, 则#2=ROUN[#1]的值是1.235。一般系统会自动根据设定单位舍入。例如,#1=1.2345,#2=2.3456,对于
G91 G01 X-#1;
X-#2;
X[#1+#2];
此程序回不到起点,若将上一行改为X[ROUN[#1]+RONN[#2]],则能回到起点。
对于上取整FIX[#j],绝对值大于原数的绝对值;对于下取整FUP[#j]绝对值小于原数的绝对值。
例如,假设#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。
类型 | 功能 | 格式 | 举例 | 备注 |
---|---|---|---|---|
转换运算 | BCD转BIN | #i=BIN[#j] | #1=BIN[#2] | |
BIN转BCD | #i=BCD[#j] | #1=BCD[#2] |
(1)函数。函数的优先级最高。
(2)乘、除、与运算。乘、除、与运算的优先级次于函数的优先级。
(3)加减、或异或运算。加、减或、异或运算的优先级次于来、除、与运算。
(4)关系运算。关系运算的优先级最低。
用方括号可以改变优先级,括号不能超过5层。超过5层时,发出P/S报警No.111。
变量值的精度为8位十进制数。
例如,用赋值语句#1=9876543210123.456时,实际上#1=9876543200000.000。
用赋值语句#2=9876543277777.456时,实际上#2=9876543300000.000。
知识点词条:变量的运算