变量的表示:
1.用“#”号表示,如——#1;
2.含有表达式的必须在封闭括号中,如——#[#1+#2-12];
变量的类型变量号
变量类型
功能
#0
空变量
该变量总是空的,没有值能赋给该变量
#1~#33
局部变量
局部变量只能用在宏程序中存储数据,例如:运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。局部变量分为5级,每级之间互不相同。
#100~#199
#500~#999
公共变量
公共变量在不同的宏程序中的意义相同。当断电时,变量#100~#199初始化为空,而#500~#999的数据则保存,不会丢失。
#1000~
系统变量
系统变量用于读和写CNC运行时的各种数据,例如:刀具的当前位置和补偿值等。
变量的引用例如:G01X[#1+#2]F#3;
G01X-#1;(有符号,记住格式)
未定义的变量当变量值未定义时,这样的变量称为“空”变量。主意——变量值为零不完全等于“空”变量。
例如;当#1=(空)时——G90X2000Y#1→G01X100;
当#1=0时——C90X2000Y#1→G01X100Y0;
算术和逻辑运算用户宏程序中的变量可以进行算术和逻辑运算,运算按[]——函数——乘除——(×、÷、AND、MOD)——加减(+,-、OR、XOR)顺序进行。
功能
格式
备注
定义
#i=#j
加法
减法
乘法
除法
#i=#j+#k
#i=#j-#k
#i=#j×#k
#i=#j÷#k
正弦
反正弦
余弦
反余弦
正切
反正切
#i=SIN[#j]
#i=ASIN[#j]
#i=COS[#j]
#i=ACOS[#j]
#i=TAN[#j]
#i=ATAN[#j]
角度已度为单位,如90°30′
表示为90.5°。
平方根
绝对值
舍入
上取值
下取值
自然对数
指数函数
#i=SQRT[#j]
#i=ABS[#j]
#i=ROUND[#j]
#i=FIX[#j]
#i=FUP[#j]
#i=LN[#j]
#i=EXP[#j]
或
异或
与
#i=#jOR#k
#i=#jXOR#k
#i=#jAND#k
逻辑运算一位一位地按二进制数执行。
从BCD转为BIN
从BIN转为BCD
#i=BIN#j
#i=BCD#j
用于与PMC的数据交换
转移与循环1.无条件转移(GOTO语句)——GOTON;N程序段号(1~99999)
2.条件转移(IF语句)——IF[条件表达式]GOTON
如果变量#1的值大于10,转移到N2的程序段号。
IF[#1GT10]GOTO2;
条件不满足运行→程序
条件满足运行→
3.条件转移(IF语句)——IF[条件表达式]THEN
例如;IF[#1EQ#2]THEN#3=0;如果#1和#2的值相等,将0赋给#3。
4.运算符含义
EQ——等于(=);
NE——不等于(≠);
GT——大于(>);
GE——大于或等于(≥);
LT——小于(<);
LE——小于或等于(≤);
5.循环(WHILE语句)
WHILE[条件表达式]DOm:(m=1,2,3…)
条件满足→↓程序
m:条件不满足→↓
例如;计算数值1~10的总和。
N10#1=0;和的变量初值
N20#2=1;被加数的变量初值
N30WHILE[#2LE10]DO1;当被加数小于等于10时执行DO1到END1间的程序段
N40#1=#1+#2;计算和
N50#2=#2+#1;下一个被加数
N60END1;
N70M30;程序结束返回程序头
编程格式G66PL;
字母含义P——要调用的程序号;
L——重复的次数;
编程实例如下图程序如下O0001
;工件坐标系设定
N20G30U0W0;返回第二参考点准备换粗车刀
N30T0101;调用1号刀1号刀补
N40M03S1000;主轴正转,1000转/min
N50G96S100;设定粗车恒线速度100M/min
N60G50S2000;最高转速限制2000转/min
;快速定位至循环起点
;宏程序调用
N82Z60;切第一槽
;切第二槽
;切第三槽
N110G67;取消宏程序调用
;
;
N140G30U0W0;返回第二参考点
N150M05;主轴停止
N160M30;程序停止并返回程序头
(下面宏程序)
O0002
N10G1U-9;径向切入
N20U#21;径向退出
N30M99;返回主程序