21 单元 4:CNC 语言和结构
目标
完成本单元后,您应该能够:
- 确定程序列表说明。
- 了解节目格式
- 描述字母地址命令代码
- 描述特殊字符代码定义。
- 了解 G &M 代码。
CNC 程序按照编写顺序列出要执行的指令。他们读起来像一本书,从左到右,从上到下。 CNC 程序中的每个语句都写在一个单独的行上,称为 aBlock。块按特定顺序排列,以提高安全性、可预测性和可读性,因此遵守标准程序结构非常重要。
区块排列顺序如下:
- 程序开始
- 加载工具
- 主轴开启
- 冷却液开启
- 快速定位到零件上方
- 机加工操作
- 冷却液关闭
- 主轴关闭
- 移动到安全位置
- 结束程序
上面列出的步骤代表了最简单的 CNC 程序类型,其中只使用一种工具并执行一种操作。使用多个工具的程序对每个重复步骤 2 到 9。
G &M 代码部分中的表 3 和表 4 如果可能的话,显示最常见的 G 和 M 代码。
与任何语言一样,G 代码语言也有规则。例如,一些代码是模态的,这意味着如果它们在块之间没有变化,它们就不必重复。根据使用方式和使用地点的不同,某些代码具有不同的含义。
虽然本章涵盖了这些规则,但不要关心学习语言的每一个细微差别。正确格式化和编写CNC程序是CAD/CAM软件后处理器的工作。
节目格式
表1中的程序:下面加工一个方形轮廓并钻孔。
阻止 | 说明 | 目的 |
% O1234 (T1 0.25立铣刀) G17 G20 G40 G49 G80 G90 | 程序开始。 节目编号(节目名称)。 操作员工具说明。 安全块,确保机器处于安全模式。 | 启动程序 |
T1 M6 S9200 M3 | 加载工具 #1。 主轴转速 9200 RPM,顺时针。 | 更换工具 |
G54 M8 G00 X-0.025 Y-0.275 G43 Z1.H1 Z0.1 G01 Z-0.1 F18. | 使用夹具偏移 #1。 冷却液开启。 快速以上部分。 快速到安全平面,使用 Tool Length Offset #1。 快速进给飞机。 线以 18 IPM 移动到切削深度。 | 移动到位置 |
G41 Y0.1 D1 F36. Y2.025 X2.025 Y-0.025 X-0.025 G40 X-0.4 G00 Z1。 | CDC 左,引线,直径。偏移量 #1,36 IPM。 线移动。 线移动。 线移动。 线移动。 通过导出动作关闭 CDC。 快速安全飞行。 | 机器轮廓 |
M5 M9 (T2 0.25 钻头) T2 M6 S3820 M3 | 主轴关闭。 冷却液关闭。 操作员工具说明。 加载工具 #2。 主轴转速 3820 RPM,顺时针方向。 | 更换工具 |
M8 X1。 Y1. G43 Z1.H2 Z0.25 | 冷却液开启。 快速上洞。 快速到安全平面,使用 Tool Length Offset 2。 快速进给飞机。 | 移动到位置 |
G98 G81 Z-0.325 R0.1 F12. G80 Z1. | 钻孔(固定)循环,深度 Z-.325,F12。 取消钻孔循环。 快速安全飞行。 | 钻孔 |
M5 M9 G91 G28 Z0 G91 G28 X0 Y0 G90 M30 % | 主轴关闭。 冷却液关闭。 在 Z 轴返回机器 Home 位置。 在 XY 中返回机器 Home 位置。 重置为绝对定位模式(安全起见)。 将程序重置为开始。 结束程序。 | 结束程序 |
字母地址命令代码
命令块通过使用字母地址命令来控制机床。有些被多次使用,其含义会根据同一块中出现的 G 代码而变化。
代码要么是模态的,这意味着它们在取消或更改之前一直有效,要么是非模态的,这意味着它们仅在当前块中有效。如您所见,许多字母地址是按逻辑方式选择的(T 代表刀具,S 代表主轴,F 代表进给率等)。
下表列出了最常见的字母地址命令代码。
表 2:字母地址命令代码
变量 | 说明 | 定义 |
一个 | A轴绝对或增量位置(绕X轴的旋转轴) | A,B,C – 4th/5thAxis Rotary Motion
分别绕 X、Y 或 Z 轴旋转。角度以度为单位,精确到小数点后三位。 |
B | B轴绝对或增量位置(绕Y轴旋转) | 和A一样 |
C | C轴绝对或增量位置(绕Z轴旋转) | 和B一样 |
D | 定义用于刀具补偿的直径或径向偏移 |
用于补偿刀具直径磨损和偏斜。D 后面带有一个与刀具编号相同的整数(T5 使用 D5 等)。不使用小数点。它总是与 G41 或 G42 以及 XY 移动(绝不是圆弧)结合使用。调用时,控件读取寄存器并通过寄存器中的值向左(G41)或向右(G42)偏移刀具路径。 |
E | 车床螺纹精密进给速度 |
|
F | 定义进给率 |
设置加工线、圆弧或钻孔循环时的进给率。进给率可以是英寸每分钟(G94 模式)或反时限(G93 模式)。进给率可以精确到小数点后三位(对于攻丝循环)并且需要小数点。 |
G | 预备命令地址 | G 指令通常会告诉控制器想要什么样的运动(例如,快速定位、直线进给、圆周进给、固定循环)或使用什么偏移值。 G02 X2.Y2.I.50J0. |
H | 定义刀具长度偏置; C轴对应的增量轴(如车铣) |
此代码调用控件上的刀具长度偏移 (TLO) 寄存器。该控件结合了 TLO 和夹具偏移 Z 值,以了解刀具相对于零件基准的位置。它总是伴随着一个整数(H1、H2 等)、G43 和 Z 坐标。 |
我 | 为 G02 或 G03 圆弧指令定义 X 轴圆弧尺寸。 也用作一些固定周期内的参数。 |
对于圆弧移动 (G2/G3),这是从圆弧起点到圆弧中心的增量 X 距离。某些钻孔循环也使用 I 作为可选参数。
|
日 | 定义 G02 或 G03 圆弧指令在 Y 轴的圆弧尺寸。 也用作一些固定周期内的参数。 |
对于圆弧移动 (G2/G3),这是从圆弧起点到圆弧中心的增量 Y 距离。某些钻孔循环也使用 J 作为可选参数。
|
K | 为G02或G03圆弧指令定义Z轴圆弧尺寸。 也用作一些固定周期内的参数,等于L地址。 |
对于 anarcmove (G2/G3),这是从圆弧起点到圆弧中心的增量 Z 距离。在 G17 平面中,这是螺旋运动的增量 Z 距离。某些钻孔循环也使用 J 作为可选参数。
|
L | 固定循环循环次数; 使用 G10 指定要编辑的寄存器 | 固定循环循环计数:定义固定循环在每个位置的重复次数(“循环”)。假定为 1,除非使用另一个整数编程。有时使用 K 地址而不是 L。对于增量定位 (G91),一系列等间距的孔可以编程为一个循环而不是单独的位置。G10用途:指定要编辑的寄存器(工件偏置、刀具半径偏置、刀具长度偏置等)。 |
M | 杂项功能 |
总是伴随着一个决定其含义的整数。每个代码块中只允许一个 M 代码。本章后面会出现 M 代码的扩展定义。 |
否 | 程序中的行(块)号; 使用 G10 更改的系统参数号 |
程序段号可以使 CNC 程序更易于阅读。 CAD/CAM 生成的没有子程序的程序很少需要它们。因为它们占用了控制内存,所以大多数 3D 程序不使用块号。块号是最多五个字符的整数,没有小数点。它们不能出现在磁带开始/结束字符 (%) 之前,并且通常不会出现在仅注释块之前。 |
哦 | 节目名称 |
程序按程序编号存储在控制器上。这是一个以字母 O 开头且没有小数位的整数。
|
P | 作为各种G、M代码的参数地址 |
以秒为单位的停顿(延迟)。除非在特定钻孔循环内使用,否则由 G4 陪同。
|
问 | 固定循环中的啄式增量 |
深孔钻循环中每次走刀的增量进给距离。
|
回复 | 定义圆弧半径的大小或定义固定循环中的退回高度 |
可以使用圆弧半径 R 或 I,J,Kvectors 定义圆弧。 IJK 比 R 更可靠,因此建议改用它们。 Ris 也被钻孔循环用作返回平面 Z 值。
|
S | 定义速度,取决于模式的主轴速度或表面速度 |
主轴转速,以每分钟转数 (RPM) 为单位。它是一个没有小数的整数值,总是与M03(主轴顺时针)或M04(主轴逆时针)结合使用。
|
T | 工具选择 |
选择工具。它是一个整数值,总是伴随着M6(换刀代码)。 |
你 | X轴对应的增量轴(一般只有车床A组控制) 还定义了某些机器上的停留时间。 | 在这些控件中,X 和 U 分别排除了 G90 和 G91。在这些车床上,G90 是用于粗加工的固定循环地址。 |
V | Y轴对应的增量轴 | 直到 2000 年代,V 地址很少使用,因为大多数使用 U 和 W 的车床没有 Y 轴,所以他们没有使用 V。(Green et al 1996 甚至没有在他们的地址表中列出 V。 ) 这种情况仍然经常发生,尽管动态车床工具和车铣复合加工的普及使得 V 地址的使用不像以前那么少见(Smid2008 显示了一个例子)。 |
W | Z轴对应的增量轴(一般只有车床A组控制) | 在这些控件中,Z 和 W 分别消除了 G90 和 G91。在这些车床上,G90 是用于粗加工的固定循环地址。 |
X | X轴绝对或增量位置。 |
X 轴的坐标数据。最多允许小数点后四位,不使用尾随零。坐标是模态的,如果没有变化,后续程序段不需要重复。 |
是的 | Y轴绝对或增量位置 | Y轴坐标数据。 G01 Y2.250 F20. |
Z | Z轴绝对或增量位置 | Z轴坐标数据。 |
特殊字符代码定义
下面列出了常用的特殊字符及其含义、用途和限制。
% - 程序开始或结束
所有程序都以 % 单独开始和结束。此代码称为磁带倒带字符(从使用纸带加载程序的日子以来的保留)。
( ) – 评论
对操作员的注释必须全部大写并用括号括起来。评论的最大长度为 40 个字符,所有字符大写。
(T02:5/8 END MILL)
/ – 块删除
如果控件上的 Block Delete 开关打开,则忽略此字符后的代码。
/ M00
; – 区块结束
在文本编辑器(回车)中读取 CNC 程序时,该字符不可见,但当程序显示在机器控制上时,该字符会出现在每个代码块的末尾。
N8 Z0.750;
G &M 代码
G&M 代码构成了 CNC 程序的大部分内容。接下来介绍每一类代码的定义和最重要代码的具体含义。
G-代码
以 G 开头的代码称为预备词,因为它们使机器为某种类型的运动做好准备。
表 3:G 代码
代码 | 说明 |
G00 | 快速运动。用于定位机器以进行非铣削运动。 |
G01 | 以指定的进给速度进行直线运动。 |
G02 | 顺时针圆弧。 |
G03 | 逆时针圆弧。 |
G04 | 住。 |
G28 | 回到机器原位。 |
G40 | 刀具直径补偿 (CDC) 关闭。 |
G41 | 刀具直径补偿(CDC)左。 |
G42 | 刀具直径补偿(CDC)对。 |
G43 | 刀具长度偏置(TLO)。 |
G54 | 夹具偏移 #1。 |
G55 | 夹具偏移 #2。 |
G56 | 夹具偏移 #3。 |
G57 | 夹具偏移 #4。 |
G58 | 夹具偏移 #5。 |
G59 | 夹具偏移 #6。 |
G80 | 取消钻孔循环。 |
G81 | 简单的钻孔循环。 |
G82 | 带停顿的简单钻孔循环。 |
G83 | 啄钻循环。 |
G84 | 点击循环。 |
G90 | 绝对坐标编程方式。 |
G91 | 增量坐标编程方式。 |
G98 | 钻孔循环返回初始点(R)。 |
G99 | 钻孔循环返回参考平面(最后 Z 高度) |
M 代码
以 M 开头的代码称为杂词。它们控制机器辅助选项,如冷却液和主轴方向。每个代码块中只能出现一个M代码。
表 4:M 代码
代码 | 说明 |
M00 | 程序停止。按循环开始按钮继续。 |
M01 | 可选停止。 |
M02 | 程序结束。 |
M03 | 主轴顺时针。 |
M04 | 主轴逆时针转动。 |
M05 | 主轴停止。 |
M06 | 换工具。 |
M08 | 冷却液开启。 |
M09 | 冷却液关闭。 |
M30 | 结束程序并按 Cycle Start 再次运行。 |
选择 G 代码定义(扩展)
G00 – 快速移动
此代码命令机器尽可能快地移动到指定点。它始终与坐标位置一起使用并且是模态的。与 G01 不同,G00 不协调轴沿直线移动。相反,每个轴都以其最大速度移动,直到满足为止。这会产生如下图 18 所示的运动。
G00 X0。 Y0。
图1. G00 MotionCaution:有些机器的快速速度可能会超过1。使机器崩溃的速度快于操作员按下紧急停止的速度。首次运行程序时使用机器上的快速进给倍率。直线运动是直线运动:G 代码是关于运动的,零件程序中最常见的运动是直线或直线运动。 Motion 是 G 代码中模态的另一种东西。你用 G 代码告诉控制器你想要什么样的动作,它会记住总是做出那种动作,直到你用另一个 G 代码告诉它改变。
G00 快速定位; Rapids Motion 与您的机器一样快。用于将刀具通过空气移动到下一个将要切割的位置。
G01 用于较慢的切削运动;进给运动较慢,用于切割。进给速度由“F”G代码设置。
F-word =“F”,如“进给率”。
S-word =“S” 如“Spindle Speed”,地址为rpm。
用 X、Y 和 Z 指定线性运动:
指定 G00 或 G01 不会导致任何运动发生——它们只是在您最终告诉控制器移动到哪里时告诉控制器预期的运动类型。对于实际运动,您需要使用 X、Y 和 Z 字词指定目的地。要移动到零部分,我们可能会发出这样的命令:
G00 X0 Y0 Z0 或者,如果您想慢一点,请使用 G01 G01 X0 Y0 Z0 F40。
插补运动或插补运动,当我们在一条线上指定多个坐标时,意味着机器的多个轴同时在移动。事实上,控制器会以完全正确的速度相对于彼此移动它们,以便刀具沿着直线到达目的地并以进给率移动。
如果我们指定相同的目的地,但将坐标分布在多条线上,则每条线都是一个单独的移动:
G00 X0 Y0(一次移动到X0 Y0,保持Z不变)
Z0(一键移动到Z0,X和Y保持不变)
G00 和 G01 是模态的,所以我们只需要在想改变模式时指定它们。
Z 轴:
插值移动的概念为 Z 轴提出了一个有趣的问题。单独移动切削深度轴通常是一个好主意,而不是与其他轴(X 和 Y)协调运动。当刀具靠近工件和夹具时,您是否会遇到问题(碰撞)。先向 X 和 Y 方向移动,再向 Z 方向移动,更容易判断是否即将发生意外碰撞。如果您将切割器保持在高位,直到您直接到达您想要开始切割的位置,您也不太可能碰到一些随机伸出的物体,例如夹子。
G02 和 G03 圆周运动是一种启动模式:
G02 建立顺时针圆弧模式。
G03 建立逆时针圆弧模式。
建立 G02 或 G03 模式,在 G 代码中通过标识它们的 2 个端点和中心来定义弧,该中心必须与每个端点等距。端点很容易。当前控制点或开始块时的位置建立一个端点。另一个可以通过XYZ坐标建立。圆心最常用的识别方法是使用 I、J 或 K 建立圆弧起点到圆心的相对偏移量。
顺时针圆弧示例:
图 2. 带有 IJK 的 Arc 中心
该弧从 X0Y2 开始。并在 X2.Y0 处结束。它的中心在 X0Y0。我们可以像这样在 G 代码中指定它:
G02(设置顺时针圆弧模式)
X2Y0 I0J-2.0
使用半径“R”的中心。
圆心只需指定圆的半径即可。圆的半径为 2,因此 G 代码可能很简单:
G02 X2Y0 R2
G17/G18/G19 – 平面代号
圆弧必须存在于由命令 G17 (XY)、G18 (XZ) 或 G19 (YZ) 指定的平面上。 G17为机器默认值。
图 3. 平面指定
G40/G41/G42 – 刀具直径补偿(CDC)
CDC 是精密 CNC 加工的关键,允许操作员通过命令机器从编程路径向左 (G41) 或向右 (G42) 转向来补偿刀具磨损和偏转。 G40 取消刀具补偿。偏移量输入到 CNC 控制 D 寄存器中。磨损寄存器可以被认为是一个表格,控件每次移动都会引用它。
表 5:直径偏移寄存器
刀具直径偏移 | 价值 |
D1 | 0.0125 |
D2 | 0.0000 |
D3 | 0.0000 |
D4 | 0.0000 |
D5 | 0.0000 |
D6 | 0.0000 |
D 寄存器中的值由机床操作员计算,他们监控零件特征的最终尺寸,将它们与打印件进行比较,并根据需要在寄存器中输入差异,以使零件保持在规格范围内。如果没有偏差,则寄存器设置为零。
G01 G41 D1 X1.0 Y.25 F40。
G43 – 刀具长度补偿
G43 激活刀具长度补偿。它总是伴随着 H 代码和 Z 移动,其中 H 是要读取的刀具长度偏移 (TLO) 寄存器,Z 是参考零件基准要到达的高度。
(TLO) 可以认为是控件上的一个表:
表 6:工件偏移量
刀具长度电阻器 | Z |
H1 | 10.236 |
H2 | 4.7510 |
H3 | 6.9652 |
H4 | 7.6841 |
H5 | 12.4483 |
H6 | 8.2250 |
TLO 与控件上的活动夹具偏移相结合,因此机器知道刀具尖端相对于零件基准的位置。
G43 H1 Z1。
G54 – 工件偏置
零偏是 CNC 控制系统中的数据寄存器,用于保存从机器原点 X、Y、Z 位置到零件原点的距离。这些偏移量可以认为是控件上的表格:
表 7:零偏
零偏 | X | 是的 | Z |
G54 | 14.2567 | 6.6597 | 0.0000 |
G55 | 0.0000 | 0.0000 | 0.0000 |
G56 | 0.0000 | 0.0000 | 0.0000 |
G57 | 0.0000 | 0.0000 | 0.0000 |
G58 | 0.0000 | 0.0000 | 0.0000 |
G59 | 0.0000 | 0.0000 | 0.0000 |
X 和 Y 值表示从机器原点到零件基准 XY 的距离。 Z 值是刀具参考点(例如 1-2-3 块的顶部)与零件 Z 基准的距离。
G54 X0。 Y0。
单元测试
1.请描述CNC程序列表指令。
2.所有CNC程序以什么开始和结束?
3.描述字母地址命令代码。
4. 请列出三个特殊字符代码。
5.描述G和M代码。
6. 请描述G00 G90 G54 X0 Y0。
7. 请描述G00 G90 G43 H1 Z1。
8. G00和G01有什么区别?
9.解释G02和G03的区别。
10. 请描述F和S字。
工业技术