网站地图

您好,欢迎进入苏州汉测测量设备有限公司官网!
CNC数控行业在机测量品质服务商

CNC On-machine Measurement Quality Service Provider

全国销售热线:

400-017-9165

行业百科
你当前的位置汉测首页 / 行业百科

数控加工宏程序中变量的表示和使用

发布日期:2022-10-21 09:22:08  点击次数:6726

现在很多数控技术人员不懂宏程序。他们认为有了自动编程软件,就不需要学习宏程序了。其实宏程序是很强大的,比如写一些批量的,重复性的程序。使用宏程序时,只需更改少量数据。不需要做大量的重复编程,可以大大简化操作,大大提高工作效率。


宏可以使用变量进行函数的算术运算、逻辑运算和混合运算,还提供循环语句、分支语句和子程序调用语句。


一般来说,宏程序适用于图形相同但尺寸不同的系列零件的编程;适用于加工路径相同但位置参数不同的系列零件的编程;适用于抛物线、椭圆、双曲线等曲线编程。无插补指令。


01

变量的表示和使用


1.可变表示


#I(I=1,2,3,…)或# []

例如:#5、#109、#501、[# 1+# 2-12]


2.变量的使用


1)在地址字后指定变量编号或公式。

格式:#I

这里的“I”代表变量数。

例:F#103,如果#103=15,则为F15。

Z-#110,其中#110=250是Z-250。

X[#24+#18*COS[#1]]


2)变量数可以用变量代替。

例:#[#30],设#30=3为#3。


3)变量不能使用地址O,N,I。

示例:允许使用以下方法。

o # 1;

I # 2 6.00×100.0;

N # 3 Z200.0


4)对应于变量编号的变量对于每个地址具有特定的数值范围。

例:当#30=1100时,则不允许M#30。


5)#0是空变量,没有定义变量值的变量也是空变量。


6)变量值的定义:

定义程序时可以省略小数点,例如:#123=149


02

变量的类型


1.局部变量#1~#33


宏程序中局部使用的一种变量,其结果不能被其它程序使用。

示例:a宏程序b宏程序

… …

#10=20 X#10不代表X20

… …

断电后会清零,调用宏程序。


2.公共变量#100~#199,#500~#999


每个用户宏程序中的公共变量与任何程序调用具有相同的操作结果。

示例:在上面的示例中,当#10更改为#100时

X#100表示X20。

#100~#149停电后放空

#500~#531保持型变量(断电后不会丢失)


3.系统变量


一种有固定用途的变量,其值取决于系统的状态。

例:#2001的值是1号刀具的X轴补偿值。

#5221值是X轴G54工件原点的偏移值

输入时,必须输入小数点。省略小数点时,单位为μ m。


03

操作指令


公式右边可以是常量,变量,函数,公式。

其中#j和#k也可以是常数。

公式的右边是可变数字和表达式。


1.定义


#I=#j


2.算术运算


#I=#j+#k

#I=#j-#k

#I=#j*#k

#I=#j/#k


3.逻辑运算


#我=#JOK#k

#I=#JXOK#k

#我=#JAND#k


4.功能


正弦,正弦

#I=COS[#j]余弦

#I=TAN[#j]正切

#I=ATAN[#j]反正切

# I = sqrt的平方根[# j]

#I=ABS[#j]绝对值

#I=ROUND[#j]一圈又一圈。

# I =定点舍入[# j]

#I=FUP[#j]舍入

#I=BIN[#j] BCD→BIN(二进制)

#I=BCN[#j] BIN→BCD


1)角度单位是度。

例:90度和30度除以90.5度


atan函数后的两边应该用"/"隔开

例如:当#1=ATAN[1]/[-1]时,#1代表35.0


3) ROUND用于语句中的地址,按照每个地址的最小集合单位进行舍入。

例:设#1=1.2345,#2=2.3456,单位设为1 μ m。

g91 X-# 1;X-1.235

x-# 2 F300;X-2.346

x[# 1+# 2];X3.580

未放回原处的,应改为

x[ROUND[# 1]+ROUND[# 2]];


4)舍入后的绝对值大于原值,所以向上舍入,否则向下舍入。

例如:让#1=1.2,而# 2 =-1.2

如果#3=FUP[#1],#3=2.0

如果#3=固定[#1],则#3=1.0

如果#3=FUP[#2],#3=-2.0

如果#3=固定[#2],则#3=-1.0


5)在指示函数时,只能写前两个字母。

示例:圆形→圆形

修复→FI


6)优先级

函数→乘法和除法(*、1和)→加法和减法(+、-或、异或)

例:# 1 = # 2+# 3 * sin[# 4];


7)括号是中间括号,最多5个权重。括号用于注释语句。

例:# 1 = sin[[# 2+# 3]* # 4+# 5]* # 6];(三倍)


04

和转移循环指令


1.无条件转移


格式:GOTO n;;


无条件转移到程序段n

n:程序段号(1-99999)

n也可以用变量或表达式代替。

GOTO10

转到# 10;


2.有条件转移


IF[]GOTO n;

如果是,下一个操作将转移到程序段号为n的程序段。

如果没有,执行下一个程序段。


如果[]那么……;

如果是,则执行其后的宏程序语句,并且只执行一条语句。

如果[#1EQ #2]那么# 3 = 0;


条件公式:

#j和#k也可以用来代替


示例:if[# 1gt 10]goto 100;

N100 G00 G91 X10

例:求1到10的和。

O9500

#1=0

#2=1

N1 IF [#2 GT10]转到2

#1=#1+#2;

#2=#2+1;

转到1

N2 M30


3.流通


格式:WHILE[]DO m;;(m=1,2,3)

重复块


1.当条件满足时,执行DOm到ENDm,然后从DOm的程序段。

如果没有,执行ENDm后面的程序段。

2.省略WHILE语句只有DOm…ENDm,从DOm到ENDm形成一个无限循环。

3.嵌套

4.当4。EQ NE,null和“0”是不同的。

否则,null和“0”是相同的。


例:求1到10的和。

O0001

#1=0;

#2=1;

而[# 2le 10]DO1;

#1=#1+#2;

#2=#2+#1;

END1

M30

版权所有© 苏州汉测测量设备有限公司 备案号: 苏ICP备19011283号-2