嘉坤机械

宏程序的类型和应用

数控宏程序

宏程序的类型和应用

宏程序在数控系统中的意义

数控系统中的宏程序或用户宏程序是一种功能强大的功能,允许用户使用变量、算术和逻辑运算、条件分支(IF...THEN...ELSE)、循环(WHILE...DO...END)等编程结构编写更灵活、更通用和可参数化的加工程序。.

根据宏程序的编写和使用方式区分宏程序

A 型:

特点

宏调用时使用特定的 G 代码(通常为 G65)或 M 代码,后面直接跟一个宏命令字(以字母 H 开头)和参数(变量地址)。算术和逻辑运算使用特定的 H 代码实现。.

优势

作为早期标准,一些旧系统或特定功能可能只支持 A 级。.

不足之处

其语法不够直观,可读性较差,功能相对有限(尤其是逻辑控制能力较弱)。以下是 A 类宏程序的操作指令(不同数控系统对操作指令的定义不同,下表仅供参考)

B 型:

特点

宏主体本身的写法类似于子程序 ( Oxxxx ),使用标准算术运算符(+、-、*、/、=)、逻辑运算符(EQ、NE、GT、GE、LT、LE、AND、OR、NOT)和流程控制语句(IF、GOTO、WHILE)。.

优势

其语法直观、可读性强、功能强大(支持复杂逻辑和循环),编程风格更接近高级语言。它是目前最常用、最值得推荐的宏程序类型。.

不足之处

需要更新的系统支持

编程

以下是 B 级宏程序的操作指令(不同 CNC 系统对操作指令的定义不同,下表仅供参考)

实际计划对比

我们使用相同的工具处理相同的梯形线程,并比较宏程序 A 和 B 在编程方面的差异。.

A 型

O1000 (主节目)
G54 G99 G21 G40
T0101 (梯形螺纹车刀)
G97 S500 M03
G00 X100.0 Z10.0 M08

(设置基本参数)
#100 = 50.0 (大直径 D)
#101 = 5.0 (音调 P)
#102 = 30.0 (长度 L)
#103 = 0.0 (Z 起始点)
#104 = 0.1 (完工津贴)
#105 = 0.2 (切割深度)
#106 = 0.05 (刀具宽度 K)

(计算齿高 H=0.5P)
G65 H02 P#107 Q#101 R#101 (P+Q→R)
G65 H11 P#107 Q#107 R2.0 (P÷Q→R)
G65 H11 P#107 Q#107 R2.0 (再除以 2)

(计算小直径 d=D-2H)
G65 H02 P#108 Q#107 R#107 (2H)
G65 H02 P#108 Q#108 R#108 (4H)
G65 H03 P#109 Q#100 R#108 (D-2H)

(计算粗加工深度)
G65 H03 P#110 Q#107 R#104 (H-残基)
G65 H11 P#111 Q#110 R#105 (粗加工层数)

(计算波峰宽度 W1=0.366P)
G65 H04 P#112 Q#101 R366 (P×366)
G65 H11 P#112 Q#112 R1000 (÷1000)

(计算齿底宽度 W2 = W1-0.13)
G65 H03 P#113 Q#112 R13 (W1-0.13)
G65 H11 P#113 Q#113 R100 (÷100)

(验证工具宽度)
G65 H84 P1000 Q#106 R#113 (如果 K>W2)

(粗加工周期)
#114 = 1 (计数器)
N10 (循环启动)

(计算当前切割深度)
G65 H02 P#115 Q#114 R#114 (2n)
G65 H04 P#115 Q#115 R#105 (n× 切割深度)

(限制最大切割深度)
G65 H85 P20 Q#115 R#110 (IF> 通过深度)
#115 = #110
N20

(计算电流 X 直径)
G65 H02 P#116 Q#115 R#115 (2 倍当前切割深度)
G65 H03 P#117 Q#100 R#116 (D-2× 切割深度)

(计算 Z 借款金额)
G65 H11 P#118 Q#115 R#107 (切削深度/H)
G65 H03 P#119 Q100 R#118 (百分之百)
G65 H11 P#119 Q#119 R100 (÷100)
G65 H04 P#120 Q#119 R30 (×0.3)

(左侧切割)
G65 H02 P#121 Q#103 R#120 (Z 起点 + 工具借用金额)
G00 Z#121
G76 P020030 Q50 R0.05
G76 X#117 Z[#102] P[#107*1000] Q[#105*1000] F#101

(右侧借用刀具切割)
G65 H03 P#122 Q#103 R#120 (Z 起点 - 工具借贷金额)
G00 Z#122
G76 X#117 Z[#102] P[#107*1000] Q[#105*1000] F#101

(计数器增量)
G65 H02 P#114 Q#114 R1
G65 H86 P10 Q#114 R#111 (循环判断)

(精加工齿形的右侧)
G65 H11 P#123 Q#113 R2 (W2/2)
G65 H03 P#124 Q#123 R2 (Z 偏移 = W2/2-0.02)
G00 Z[#103 + #124]
G76 P020030 Q20 R0.02
G76 X#109 Z[#102] P[#107*1000] Q[#105*1000] F#101

(精加工齿形的左侧)
G00 Z[#103 - #124]
G76 X#109 Z[#102] P[#107*1000] Q[#105*1000] F#101

(完成齿底)
G00 Z#103
G76 P000030 Q10
G76 X#109 Z[#102] P[#107*1000] Q50 F#101

G00 X100.0 Z50.0
M30

(刀具过宽报警子程序)
n1000 #3000=1 (工具太宽)
M99

B 型

O1000 (梯形螺纹车削的主程序)
G54 G99 G21 G40 (安全设置)
T0101 (梯形螺纹车刀)
G97 S500 M03 恒速
G00 X100.0 Z10.0 M08 (安全位置,开启冷却液)

(设置基本参数)
#100 = 50.0 (大直径 D)
#101 = 5.0 (音调 P)
#102 = 30.0 (长度 L)
#103 = 0.0 (Z 起始点)
#104 = 0.1 (完工津贴)
#105 = 0.2 (切割深度)
#106 = 0.05 (刀具宽度 K)

(计算齿高 H=0.5P)
#107 = 0.5 * #101 齿高

(计算小直径 d=D-2H)
#109 = #100 - 2 * #107 (小径)

(计算粗加工深度)
#110 = #107 - #104 (粗加工深度)
#111 = fix[#110/#105] + 1 (粗加工层数)

(计算波峰宽度 W1=0.366P)
#112 = 0.366 * #101 (齿嵴宽度)

(计算齿底宽度 W2 = W1-0.13)
#113 = #112 - 0.13 (齿基宽度)

(验证工具宽度)
if [#106 gt #113] then #3000=1 (工具超宽报警)

(粗加工周期)
#114 = 1 (计数器)
while [#114 le #111] do1

(计算当前切割深度)
#115 = #114 * #105
如果 [#115 gt #110] 则 #115 = #110

(计算电流 X 直径)
#117 = #100 - 2 * #115

(计算 Z 借款金额)
#118 = #115 / #107 (切割深度百分比)
#119 = 1 - #118 (剩余百分比)
#120 = 0.3 * #119 (借款金额)

(左侧切割)
#121 = #103 + #120 (Z 位置)
G00 Z#121
G76 P020030 Q50 R0.05
G76 X#117 Z[#102] P[#107*1000] Q[#105*1000] F#101

(右侧借用刀具切割)
#122 = #103 - #120
G00 Z#122
G76 X#117 Z[#102] P[#107*1000] Q[#105*1000] F#101

#114 = #114 + 1
结束语1

(精加工齿形的右侧)
#123 = #113 / 2 半宽
#124 = #123 - 0.02 (Z 偏移)
G00 Z[#103 + #124]
G76 P020030 Q20 R0.02
G76 X#109 Z[#102] P[#107*1000] Q[#105*1000] F#101

(精加工齿形的左侧)
G00 Z[#103 - #124]
G76 X#109 Z[#102] P[#107*1000] Q[#105*1000] F#101

(完成牙齿底部)
G00 Z#103
G76 P000030 Q10
G76 X#109 Z[#102] P[#107*1000] Q50 F#101

(撤回)
G00 X100.0 Z50.0
M30

结论

通过以上的程序对比,相信大家可以更直观地看出A型宏程序与B型宏程序在编写上的区别。虽然 A 型宏程序诞生较早,缺乏简洁性和易用性,但在数控加工中,A 型宏程序和 B 型宏程序都能帮助你更高效地完成加工,这是有道理的。.

在 JIA KUN 的所有车床产品中、, SyntecFanuc 所有系统都支持 A 类宏程序和 B 类宏程序。如果您想知道哪种系统的宏程序更适合您的使用需求,请给我们发信息,我们的工程师会根据您的使用需求为您推荐更合适的解决方案。.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注