图20 刀具半径补偿的应用实例
4.6.2、刀具长度补偿
使用刀具长度补偿,在编程时就不必考虑刀具的实际长度及各把刀具
不同的长度尺寸。加工时,用MDI方式输入刀具的长度尺寸,即可正确加工。当由于刀具磨损、更换刀具等原因引起刀具长度尺寸变化时,只要修正刀具长度补偿量,而不必调整程序或刀具。
D为刀具半径补偿代号地址字,一般用D1?D9数字表示代号,代号与刀具半径值一一对应。刀具半径值可用CRT/MDI方式输入,即在设置时刀具半径补偿和刀具长度补偿共同输入,。
带不同刀具补偿块的 1-9 号刀尖可以配置给专门的刀具。调用 D时,专用刀尖的刀具长度补偿生效。
随着 T 编程,刀具激活,如果 D号编程,刀具长度补偿立即生效。 随着相关刀具长度补偿轴的初次编程移动,进行补偿。 D0 编程时,刀具长度补偿无效。
你可以指派 9 个补偿块—D号 D1 至 D9 给一个 T 号。这样允许使用为一把刀定义的不同刀尖,这些可根据需要在 NC 块中调用。不同的补偿值可使用,例如:供切槽刀的左、右切削刃使用。
一个 D号只有在相应的 T 号被激活时才被激活。换刀之后,系统设定值为 D1。 你不送入 D号,工作就不带刀具补偿。
T 或 D号不再次编程之前,被修改的值无效。
31
编程示例:
N10 T1 D1 刀 1 和相关的 D1 激活 N11 G0 X?Z? 刀具长度补偿在这里重叠 N50 T4 D2 从 T4 装入刀具 4,D2 激活
4.7 参数变量与程序跳转 六、 计算参数和程序跳转 1、 计算参数 R
编程 Rn=... 说明
R 计算参数
n 计算参数个数,n= 0至最大值。
最大值参见机床数据或者机床制造商资料,缺省设定为:最大值 = 0-99 功能
如果一个 NC程序不仅仅适用于所确定的值,或者您必须计算值,则可以使用计算参数。在程序运行时,所需要的值可以通过控制系统计算或者设置。另一个方法就是通过操作设定计算参数值。如果计算参数赋值,它们可以在程序中赋值其它数值可设定的NC地址。 赋值
计算参数有以下的赋值范围: ±(0.000 0001 ... 9999 9999)
(8位数字,加符号和小数点)。 * 在整数值中小数点可以取消 * 正号可以不用写 赋值到其它地址
一个NC程序的灵活性主要体现在:把这些计算参数或者计算表达式用计算参数赋值到其它的NC地址。
值、计算表达式或者计算参数可以赋值到所有的地址;例外:地址 N, G 和 L.
在赋值时,在地址符之后写符号“=”。也可以带一个负号赋值。 如果给一个轴地址赋值(运行指令),则需要一个独立的程序段。 举例:
N10 G0 X=R2 ;赋值到 X轴 算术运算和功能
32
在使用运算符/计算功能时,必须要遵守通常的数学运算规则。优先执行的过程通过园括号设置。其它情况下,按照先乘除后加减运算。在三角函数中单位使用度。
编程举例:R参数
N10 R1= R1+1 新的R1等于旧的R1加 1
N20 R1=R2+R3 R4=R5-R6 R7=R8* R9 R10=R11/R12
N30 R13=SIN(25.3) R13等同于正弦 25.3度
N40 R14=R1*R2+R3 先乘除后加减 R14=(R1*R2)+R3 N50 R14=R3+R2*R1 结果,与程序段 N40相同
N60 R15=SQRT(R1*R1+R2*R2) 意义:R15= R1 +R2 的平方根 编程举例: 赋值轴数值
N10 G1 G91 X=R1 Z=R2 F300 N20 Z=R3 N30 X=-R4 N40 Z=-R5
2、绝对程序跳转 编程
GOTOB LABLE<跳转目标> GOTOF LABLE<跳转目标> 说明
GOTOB \跳转指令\跳转目标向后 (方向:程序起始) GOTOF 跳转指令,跳转目标向前(方向:程序结束)
LABLE <跳转目标> 跳转目标参数,用于标签、程序段号,或者字符串变量 功能
正常情况下,主程序、子程序、循环和中断程序均按照编程的顺序执行。
通过程序跳转可以改变此顺序。 编程举例 N10 …
N20 GOTOF MARKE_0 ;向前跳转到 MARKE_0 N30 …
N40 MARKE_1: R1=R2+R3 ;跳转目标 MARKE_1 N50 …
N60 MARKE_0: ;跳转目标 MARKE_0 N70 …
N80 GOTOB MARKE_1 ;向后跳转到 MARKE_1 N90 …
3、有条件程序跳转 编程
33
IF 表达式 GOTOB LABLE <跳转目标说明> IF 表达式 GOTOF LABLE <跳转目标说明> 指令说明
IF 条件关键字
GOTOB \跳转指令\跳转目标向后 (方向:程序起始) GOTOF 跳转指令,跳转目标向前(方向:程序结束)
LABLE <跳转目标> 跳转目标参数,用于标签、程序段号,或者字符串变量
标签 跳转指令时的跳转目标
标签: 在一个程序之内标记跳转目标
程序段号 主程序段号或者副程序段号作为跳转目标(比如:200, N300)
字符串变量 类型字符串变量,包括一个标签或者一个程序段号。 比较运算和逻辑运算
== 等于 <> 不等于 > 大于 < 小于
>= 大于或者等于 <= 小于或者等于 功能
可以用 IF指令表明跳转条件。只有当跳转条件满足后,才可以跳转到编程的跳转目标。
编程举例
N40 R1=30 R2=60 R3=10 R4=11 R5=50 R6=20 初始值分配 N41 MA1: G0 X=R2*COS(R1)+R5 -> 计算和轴地址赋值 -> Y=R2*SIN(R1)+R6
N42 R1=R1+R3 R4=R4-1 变量说明
N43 IF R4>0 GOTOB MA1 跳转指令,带标签 N44 M30 程序结束
在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址。为了使程序更具通用性、更加灵活,在宏程序中设置了变量,即将变量赋给一个地址。
(1)变量的表示与引用
变量可以用“R”号和跟随其后的变量序号来表示:Ri(i=1,2,3......) 例:R5, R19, R51。
将跟随在一个地址后的数值用一个变量来代替,即引入了变量。 例:对于F=R1,若R1=50时,则为F50;
对于Z=R10,若R10=-100时,则Z为-100; (2)变量的定义和替换 Ri=Rj
例R1 =R5 3)变量的算数运算
34
加法 Ri=Rj+Rk 例: R1 =R2+R3 减法Ri=Rj-Rk 例: R1 =R2-R3 乘法Ri=Rj×Rk 例: R1 =R2×R3 除法Ri=Rj/Rk 例: R1 =R2/R3 平方根Ri=SQRT Rj 例: R1 = SQRT R2 绝对值
2. 逻辑运算指令(是否有)
3. 三角函数指令 (表7.3)
表7.3 三角函数指令 功 能 正弦 余弦 正切 反正切 4. 控制类指令
1)无条件转移
编程格式GOTOB(F) LABEL LABEL 2)条件转移
编程格式 例 当 转移到N1000程序段;若R1≠ R2,执行下一程序段。
3)条件转移2
定 义 R i=Rj · SIN ﹙R k﹚ R i=R j · COS ﹙R k﹚ R i=R j · TAN﹙R k﹚ R i=ATAN﹙Rj/R k﹚ 4.8子程序的调用
七、 子程序调用和程序部分重复
1、 子程序
原则上讲,一个子程序的结构与一个零件程序一样。它 由带运行指令和开关指令的 NC程序段组成。
从本质上说,主程序与子程序没有区别。子程序中包含 了要多次运行的工作过程或者工作步骤。
总是反复出现的加工步骤在子程序中仅编程一次。比如 说某个确定的轮廓,它们总是反复出现,或者是一个加 工循环。
子程序可以在任意一个主程序中调用和执行。
嵌套深度
35