★ 先看懂这 7 个名字:PL / RP / SC / F / Z0 / Z1 / DT
828D 让人混乱的第一件事,是同一个参数有两套名字。
你在图形化编程画面(ShopMill / 循环支持)里看到的是 PL、RP、SC、Z0、Z1、DT;而它生成出来的 G 代码里写的是 RTP、SDIS、DP、DPR、DTB。这两套是一一对应的,只是显示层不同。先把画面上的 7 个搞懂,G 代码里那一长串英文缩写就不再是天书。
| 画面参数 | 中文含义 | 对应 G 代码参数 | 说明 |
|---|---|---|---|
| PL | 加工平面 | G17 / G18 / G19 | 通常选 G17(XY)。即使是在车床端面钻孔,只要刀具轴线与 Z 轴平行,也必须选 G17 |
| RP | 退回平面 | RTP | 钻孔完成后刀具轴退到的高度(绝对值) |
| SC | 安全间隙 | SDIS | 相对钻孔平面的距离,不输入符号(只填正数) |
| Z0 | 孔上表面坐标 | RFP | 参考平面 / 基准面(绝对) |
| Z1 | 钻孔深度 | DP(绝对)或 DPR(相对) | 可用 inc 增量或 abs 绝对;也可用”直径”间接表示(系统按钻尖角自动换算) |
| DT | 孔底停留时间 | DTB | 单位秒 |
| F | 进给 | F(模态) | 注意先确定 G94(mm/min)还是 G95(mm/rev) |

两个立刻能用上的结论:
- RFP + SDIS 就是 FANUC 里的”R 点”。FANUC 的
R2.0表示快速下到 Z2.0 再转为切削进给;在 828D 里拆成了”参考平面 Z0(RFP=0)+ 安全间隙 2(SDIS=2)”,实际下刀转换位置同样是 Z2.0。迁移时别只搬一个数。 - DP 和 DPR 二选一,同时填则以 DPR 为准(西门子手册明确说明)。DPR 相对参考平面、不填符号;DP 是绝对坐标。多把刀、刀长不一致时,用 DPR 更省心——每把刀都以各自的参考平面为深度基准,不会因为刀长补偿变化而钻穿或钻浅。
还有个容易被吓到的点:图形化画面生成的循环调用往往带一长串参数,比如
CYCLE81(100,0,1,,25,0.6,0,1,11),看着比手册上的 6 个参数多。多出来的都是下划线开头的可选参数(工具轴、刀尖角、工艺方式等)。手工编程时只写前面几个就够了,系统剩下的按默认值处理。
G 代码手编:五个循环共用的核心参数
CYCLE81 到 CYCLE86 共用同一套基础参数名,先记住这 6 个,后面每个循环只是在它后面追加几个专用参数:
| 参数 | 类型 | 中文 | 注意 |
|---|---|---|---|
| RTP | Real | 退回平面(绝对) | 循环结束后退到的高度 |
| RFP | Real | 参考平面 / 基准面(绝对) | 通常是工件上表面 |
| SDIS | Real | 安全间隙 | 不输入符号,只填正数 |
| DP | Real | 最后钻孔深度(绝对) | 与 DPR 二选一 |
| DPR | Real | 相对参考平面的钻孔深度 | 不输入符号;同时填则以此为准 |
| DTB | Real | 孔底停留时间 | >0 单位秒;<0 单位转 |
CYCLE81 钻中心孔:参数表与最小调用
用途:钻中心孔 / 定心。深孔钻之前先打定心孔,是防止钻头引偏最有效的手段,通常用 90° 定心钻。
CYCLE81 (RTP, RFP, SDIS, DP, DPR, DTB)
官方手册给出的三种等价写法(同一个 35mm 深的孔):
CYCLE81 (110, 100, 2, 35) ; 绝对深度,带安全间隙
CYCLE81 (110, 102, , 35) ; 不写安全间隙(省略 SDIS)
CYCLE81 (110, 100, 2, , 65) ; 用相对深度 DPR=65 → DP = RFP - DPR = 35
最小可运行示例:
G17 G90 G94
T1 D1
M6
G0 X40 Y120 Z110
S1200 M3
F200
CYCLE81 (110, 100, 2, 35) ; 在当前位置钻一次
M30
用”直径”方式表示深度时,系统会按钻尖角度自动换算成深度,你只需填钻尖直径。想直接控制深度就选”刀尖”方式并在 Z1 里填数。
CYCLE82 带停留的钻削(锪孔 / 沉孔)
用途:钻到深度后允许停留,常用于锪平面、沉孔、需要孔底光整的场合。
CYCLE82 (RTP, RFP, SDIS, DP, DPR, DTB)
比 CYCLE81 只多了一个 DTB,但它是”停留”这件事的唯一入口:CYCLE81 也有 DTB 位,通常默认 0;CYCLE82 的设计意图就是让你填停留时间。
官方示例(XY 平面 X24 Y15,孔深 27mm,停留 2 秒,安全间隙 4mm):
N10 G0 G90 F200 S300 M3
N20 D1 T3 Z110
N21 M6
N30 X24 Y15
N40 CYCLE82 (110, 102, 4, 75, , 2)
N50 M30
多把刀时的深度写法建议:同一道工序用好几种长度的刀(中心钻、钻头、铰刀),尽量统一用 DPR(相对深度)而不是 DP(绝对深度)。DP 是绝对坐标,刀长补偿一变,孔底就跟着漂;DPR 以参考平面为基准,跟刀长解耦,改刀不用重算深度。
CYCLE83 深孔钻削 ★
这是最常用也最容易填错的一个。
CYCLE83 (RTP, RFP, SDIS, DP, DPR, FDEP, FDPR, DAM, DTB, DTS,
FRF, VARI, _AXN, _MDEP, _VRT, _DTD, _DIS1)
VARI=0 断屑 vs VARI=1 退刀排屑
VARI 是本循环最核心的开关,两种加工方式的动作完全不同:
- VARI = 0(断屑):每钻进一个深度,只退回一个很小的量(
_VRT,默认 1mm)把切屑折断,然后继续钻。效率高,适合切屑好断的材料(钢件常见)。 - VARI = 1(退刀排屑):每钻进一个深度,一路退回到”参考平面 + 安全间隙” 把切屑彻底带出孔外,再快速下到接近深度继续钻。排屑可靠,适合深孔、切屑不易断的材料。
对应到 FANUC 就是:G73(断屑)→ VARI=0;G83(排屑)→ VARI=1。
参数表
| 参数 | 中文 | 取值与说明 |
|---|---|---|
| RTP | 退回平面(绝对) | 每次退刀排屑退回的高度 |
| RFP | 参考平面 / 基准面(绝对) | 通常工件上表面 |
| SDIS | 安全间隙 | 不输入符号 |
| DP | 孔底深度(绝对) | 与 DPR 二选一 |
| DPR | 相对基准面的孔底深度 | 不输入符号 |
| FDEP | 第一个钻削深度(绝对) | 第一次啄钻下到哪 |
| FDPR | 相对基准面的第一个钻削深度 | 不输入符号 |
| DAM | 递减 | >0 递减量;<0 递减系数;=0 不递减 |
| DTB | 孔底停留时间(断屑) | >0 秒;<0 转 |
| DTS | 起始点停留时间(用于退刀排屑) | >0 秒;<0 转 |
| FRF | 第一个钻削深度的进给系数 | 范围 0.001…1,不输入符号;通常填 1(100%) |
| VARI | 加工方式 | 0 = 断屑;1 = 退刀排屑 |
| _AXN | 工具轴 | 1=第1几何轴,2=第2几何轴,其它=第3几何轴 |
| _MDEP | 最小孔深 | 啄钻深度的下限 |
| _VRT | 断屑时可变退回量 | >0 为退回量;=0 时按 1mm |
| _DTD | 孔底停留时间 | 规则同 DTB;=0 时取 DTB 的值 |
| _DIS1 | 再次进入钻孔时的提前停止距离 | >0 为编程值;=0 由系统自动计算 |
DAM 是最容易理解反的一个:它填 0 不代表每次钻 0,而是”不递减”——也就是每次啄钻深度都一样(都等于第一个钻削深度 FDEP)。想让后面每一刀逐渐变浅,才填一个正的递减量。

从 FANUC G83 R2 Q5 F0.05 迁移
FANUC 一行搞定:G99 G83 R2.0 Z-25.0 Q5.0 F0.05
拆成 828D 的做法:
| FANUC | 含义 | 828D 对应 |
|---|---|---|
R2.0 | R 点(快进转工进的位置) | RFP=0(工件面)+ SDIS=2 —— 合起来就是 Z2.0 |
Z-25.0 | 孔底(绝对) | DP=-25(或用 DPR=25 相对写法) |
Q5.0 | 每次啄钻深度 | FDEP=-5(第一钻深)+ DAM=0(不递减,每刀都是 5mm) |
F0.05 | 进给 | F 模态 + FRF=1(第一钻深按 100% 进给) |
| 退刀排屑行为 | 每刀退到 R 点 | VARI=1;若改为断屑则 VARI=0 |
迁移后的最小调用:
G17 G90 G95
T1 D1
M6
S800 M3
F0.05
CYCLE83 (50, 0, 2, -25, 0, -5, 0, 0, 0, 0, 1, 1)
; ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
; RTP RFP SDIS DP DPR FDEP FDPR DAM DTB DTS FRF VARI
M30
两个细节:① FDEP 是绝对坐标(官方定义”第一个钻削深度(绝对)”),所以参考平面为 0 时第一钻深写 -5;② FANUC 的
G99(返回 R 点)在 828D 里由 RTP 决定退回高度——RTP 填多少就退到多少,没有 G98/G99 的切换概念。
CYCLE84 / CYCLE840 攻丝:刚性攻丝 vs 浮动夹头
这是另一个高频踩坑点:用错循环不会报错,但螺纹会烂。
| CYCLE84 | CYCLE840 | |
|---|---|---|
| 中文 | 刚性攻丝 | 带补偿夹头(浮动丝锥)攻丝 |
| 前提 | 主轴必须能工作在位置控制主轴模式 | 无编码器也能用 |
| 同步方式 | 主轴与进给轴位置闭环同步 | 靠夹头轴向补偿吸收同步误差 |
| 什么时候用 | 主轴支持刚性攻丝时(首选) | 主轴不支持位置控制、或用浮动夹头时 |
CYCLE84 (RTP, RFP, SDIS, DP, DPR, DTB, SDAC, MPIT, PIT, POSS, SST, SST1)
CYCLE840 (RTP, RFP, SDIS, DP, DPR, DTB, SDR, SDAC, ENC, MPIT, PIT)
专用参数含义:
| 参数 | 循环 | 含义 |
|---|---|---|
| MPIT | 84 / 840 | 螺距作为螺纹尺寸:3(M3)… 48(M48),系统按标准螺纹表自动算螺距 |
| PIT | 84 / 840 | 螺距直接给:0.001 … 2000.000 mm |
| SDAC | 84 / 840 | 循环结束后的旋转方向:3 / 4 / 5(默认 3) |
| SDR | 840 | 返回时的旋转方向:0 = 自动反转,3 或 4 = 对应 M3 / M4 |
| ENC | 840 | 0 = 带编码器;1 = 不带编码器 |
| POSS | 84 | 循环内定向主轴停止的主轴位置(度) |
| SST | 84 | 攻丝转速 |
| SST1 | 84 | 返回转速 |
MPIT 与 PIT 的关系(必看):这两个是”二选一”的关系——MPIT 填了非零值(比如 M6 填 6),系统就从标准螺纹表里查螺距,此时 PIT 不用给;只有非标准螺纹才把 MPIT 设为 0、直接给 PIT。两个都填非零值,或者该填 MPIT 的地方填了螺距数值(M6x1 却填 1),螺纹就会做错。
车床上的额外注意:在车床上用 CYCLE84 攻丝,主轴必须处于 C 轴模式且为位置控制模式(伺服主轴,不是 V/f 控制),并且调用前最好先用 SPOS=0 把主轴停到一个已知角度再进循环。

CYCLE85 铰孔 / CYCLE86 精镗孔
CYCLE85 (RTP, RFP, SDIS, DP, DPR, DTB, FFR, RFF)
CYCLE86 (RTP, RFP, SDIS, DP, DPR, DTB, SDIR, RPA, RPO, RPAP, POSS)
CYCLE85(官方归类是”镗孔 1″,铰孔同样用它):特点是进刀和退刀都用指定的进给率,而不是 G0 快速退回。这对铰孔很关键——快速退回会把刀刃在孔壁上刮出螺旋纹。
- FFR = 进给速率(进刀)
- RFF = 退回进给速率(退刀)
CYCLE86(精镗 / 镗孔 2):这是”消除喇叭口和退刀划伤”的标准做法,动作顺序是:
- 以进给钻到孔底;
- 到深度后定向主轴停止(SPOS),刀尖停在一个固定的角度;
- 按 RPA / RPO / RPAP 指定的偏移量让刀(刀尖离开孔壁);
- 快速退回。
因为刀尖在退回前已经让开孔壁,所以不会在孔壁上留下退刀痕,也不会把孔口刮成喇叭口。
- SDIR = 旋转方向;RPA = 平面内第一轴的返回位移;RPO = 平面内第二轴的返回位移;RPAP = 钻孔轴方向的返回位移;POSS = 定向停止的主轴位置(度)
CYCLE86 只适用于具备位置控制模式的主轴(官方明确说明)。主轴不支持定向停止,就退而用 CYCLE85。
CYCLE62 轮廓切削 + CYCLE952 粗精加工
这两个是车床 / 内孔轮廓加工的常用组合,官方示例里是这样配合的:
CYCLE62 (, 2, "CC", "DD") ; 轮廓切削:调用轮廓子程序 CC / DD
CYCLE952 ("123", , "", 2102331, 0.3, 0, 0, 1, 0.1, ...) ; 粗-精加工
- CYCLE62:轮廓切削循环,后面跟的是轮廓子程序名(上例中的 CC 为轮廓、DD 为返回轮廓),循环负责按轮廓走刀。
- CYCLE952:粗精加工循环,官方说明它分成 3 种工艺方式——切削、槽式切削、往复切削,用参数中的加工方式位来选。
老实说:CYCLE952 的参数有两个以上十几个,手工编写不现实,也不应该手编。上面那串官方示例的调用就是图形化编程生成的。正确用法是在 ShopTurn 画面里把工艺、余量、进刀方式选好让它自动生成,需要改的时候回画面里改,而不是在 G 代码里手改那一长串数字。
循环调用三形态:最容易踩的坑
同一个循环,调用方式不同,行为差得很远。828D 里有三种:
| 形态 | 写法 | 什么时候执行 |
|---|---|---|
| 单次调用 | CYCLE81(...) | 只在当前刀具位置执行一次,后面的定位不会钻孔 |
| MCALL 模态调用 | MCALL CYCLE81(...) … MCALL | 之后每个含坐标移动的程序段都执行一次,直到遇到不带参数的 MCALL 取消 |
| 位置模式 / 孔排列 | MCALL CYCLE81(...) + HOLES2(...) | 由孔排列循环生成一系列位置,逐点执行 |
配合孔排列循环的典型写法(圆周等分钻孔):
G54 G17 G90 G0 F30 Z100 S300 M3
MCALL CYCLE81 (100, 0, 1, -3) ; 进入模态:点孔循环
HOLES2 (0, 0, 100, 15, , 4) ; 半径100圆周,起始角15°,分4份
MCALL ; ← 取消模态,必须有
M30
最常出事的三个点:
- 忘了写不带参数的
MCALL取消模态。只要没取消,后面任何一段写了坐标的程序(包括你想”只是移动过去”的定位)都会在到达后钻一次孔。这是现场撞刀和废件的高频原因。 - 以为”写了循环就有孔”。单次调用只在当前位置执行一次——如果循环之前没有定位到孔位,孔就打在刀具当前所在的地方。
- 在子程序里开了模态没关。子程序结束返回主程序后,模态仍然生效,主程序里的定位会继续钻孔。所以MCALL 的取消要和循环写在同一个程序层级里。
补充:程序结束(M30 / M02)、复位、急停都会清掉模态。但别依赖这个——显式写 MCALL 取消。
常见报警与”循环写了却不执行”的原因
SINUMERIK 的循环报警区间是 61000–62999,看到这个区间的报警号,基本可以直接锁定是循环参数问题。
| 报警号 | 含义 | 处理 |
|---|---|---|
| 61116 | 逼近或退回路径 = 0 | 检查参数 _LP1 / _LP2 |
| 61117 | 当前刀具半径小于等于零 | 修改刀具半径(多半是刀补表里半径没填) |
| 61118 | 长度或宽度 = 0 | 检查 _LENG / _WID |
| 61119 | 公称直径或底径编程错误 | 检查螺纹几何 |
| 61120 | 未定义内螺纹 / 外螺纹类型 | 攻丝相关,检查循环里的螺纹类型参数 |
| 61126 | 螺纹长度过短 | 攻丝相关 |
| 61127 | 攻丝轴变速比(机床数据)定义错误 | 攻丝相关,属机床数据配置问题 |
循环”写了却不执行”,通常不是循环本身坏了,而是下面的准备条件没满足:
- 没给进给 F,或者 G94 / G95 没定义清楚;
- 主轴没转(缺 M3 / S 值);
- 刀具或刀补没激活(T / D 没给,或 D 号不存在);
- 加工平面选错:PL 选的平面和钻孔轴不匹配(比如实际要沿 Z 钻却选了非 G17);
- 安全间隙 SDIS 与安全高度冲突,导致系统判定无法安全接近;
- 模态没取消,导致动作发生在你意想不到的位置;
- 主轴不支持该循环要求的工作模式(如 CYCLE84 / CYCLE86 需要位置控制主轴)。
★ FANUC G 循环 → SINUMERIK CYCLE 迁移对照总表
从 FANUC 转 828D 时,这张表能省掉大量试错:
| FANUC | 说明 | 828D 对应 | 关键点 |
|---|---|---|---|
| G81 | 钻孔 | CYCLE81 | R 点 → RFP + SDIS;Z → DP / DPR |
| G82 | 钻孔 + 孔底停留 | CYCLE82 | 停留写入 DTB |
| G73 | 断屑钻 | CYCLE83,VARI=0 | 退回量由 _VRT 控制(默认 1mm) |
| G83 | 深孔排屑钻 | CYCLE83,VARI=1 | Q → FDEP + DAM(DAM=0 即等深) |
| G84 | 刚性攻丝 | CYCLE84 | 螺距走 MPIT(标准螺纹)或 PIT(非标) |
| (浮动夹头攻丝) | — | CYCLE840 | ENC 选带/不带编码器 |
| G85 | 铰 / 镗,工进退回 | CYCLE85 | 进退都用进给:FFR / RFF |
| G76 | 精镗(定向让刀) | CYCLE86 | 定向停止 + RPA/RPO/RPAP 让刀后再退 |
| G80 | 取消固定循环 | MCALL(不带参数) | 不是 G80,别写成 G80 |
| G98 / G99 | 返回初始平面 / R 点 | 由 RTP 决定 | 828D 没有这个切换,退到哪由 RTP 填多少决定 |

一句提醒:828D 支持 ISO 方言模式(G291),可以让一部分 FANUC 风格代码直接跑起来,但循环参数含义并不完全等价,且依赖具体选项配置。正式生产用的程序,建议按上表改写成原生 CYCLE 调用,别指望方言模式兜底——具体是否支持请先在机床上确认选项。
延伸阅读:SINUMERIK 828D 中文手册下载(2026 最新)— 版本对应表 + 官方直链 · SINUMERIK 828D 报警代码一览表(中文) · SINUMERIK 828D 参数与程序备份恢复完整教程 · SINUMERIK 840D PLC 用户报警详解
常见问题
828D 的 CYCLE81 参数怎么填?PL / RP / SC 分别是什么?
PL / RP / SC 是图形化编程画面上的参数名,对应到 G 代码是:
- PL = 加工平面,选 G17 / G18 / G19,通常 G17(XY)。注意即使是在车床端面钻孔,只要刀具轴线与 Z 轴平行,也必须选 G17。
- RP = 退回平面,对应 G 代码的 RTP,即钻孔完成后刀具退到的高度(绝对值)。
- SC = 安全间隙,对应 SDIS,相对钻孔平面的距离,只填正数不填符号。
CYCLE81 (RTP, RFP, SDIS, DP, DPR, DTB) 六个参数依次是:退回平面、参考平面、安全间隙、最后钻孔深度(绝对)、相对参考平面的深度、孔底停留时间。最小可运行写法如 CYCLE81 (110, 100, 2, 35)。DP 和 DPR 二选一,同时填则以 DPR 为准。
CYCLE83 深孔钻怎么实现断屑?VARI 该填 0 还是 1?
VARI 就是断屑与排屑的开关:
- VARI = 0 = 断屑:每钻进一个深度只退回很小一段(由
_VRT控制,默认 1mm)把切屑折断后继续钻。效率高,适合切屑易断的钢件。 - VARI = 1 = 退刀排屑:每钻进一个深度就一路退回到「参考平面 + 安全间隙」,把切屑彻底带出孔外再重新下钻。排屑更可靠,适合深孔和不易断屑的材料。
对应 FANUC 就是 G73 → VARI=0,G83 → VARI=1。另外别把 DAM 理解反了:DAM=0 是”不递减”(每次啄钻深度都等于第一钻深 FDEP),想要后面每刀变浅才填正的递减量。
FANUC 的 G83 在 828D 上对应什么写法?
对应 CYCLE83。以 G99 G83 R2.0 Z-25.0 Q5.0 F0.05 为例逐项映射:
R2.0(R 点)→ RFP=0 + SDIS=2,合起来同样从 Z2.0 转为切削进给;Z-25.0(孔底)→ DP=-25,或用相对写法 DPR=25;Q5.0(每次啄钻深度)→ FDEP=-5(第一钻深)+ DAM=0(不递减,每刀都 5mm);F0.05→ F 模态 + FRF=1(第一钻深按 100% 进给);- 每刀退到 R 点排屑 → VARI=1。
合起来:CYCLE83 (50, 0, 2, -25, 0, -5, 0, 0, 0, 0, 1, 1)。另外 FANUC 的 G98 / G99(返回初始平面还是 R 点)在 828D 里没有对应切换,退回高度完全由 RTP 填多少决定。
MCALL 调用的循环什么时候失效?
模态调用在以下情况失效或被覆盖:
- 遇到不带参数的
MCALL—— 这是唯一的正规取消方式,必须显式写; - 程序结束(M30 / M02)、复位、急停 —— 会被清掉,但别依赖这个;
- 被新的
MCALL循环覆盖 —— 后一个模态循环接管后续定位。
反过来,它”不失效”的情况才是真正的坑:只要没取消,后面任何含坐标移动的程序段都会在到达后执行一次循环。所以写模态调用时有三条铁律:① 用 MCALL 开头就一定要有一个不带参数的 MCALL 收尾;② 收尾要和循环写在同一个程序层级(子程序里开的模态要在子程序里关,别带到主程序);③ 单次调用(不带 MCALL)只在当前位置执行一次,循环前没定位,孔就打在刀具当时所在的位置。

























暂无评论内容