Skip to main content
CNC.wiki

G31跳步探测功能:CNC数控测头防撞与安全编程指南

深入学习Fanuc、Siemens和Mitsubishi数控系统的G31跳步探测功能。合理设置测量feedrate与系统参数,避免测针在换刀与工件校验时发生机械撞击,缩短非计划停机时间,提高零件合格率。

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE 联合创始人

引言

当测头在主轴或刀塔中装载以进行工件对齐校验时,如果因信号线折断、接触不良或操作人员未取消刀尖半径/刀具长度补偿,导致 G31 测头跳变信号(skip signal)失效,数控轴将以极高的进给速度继续移动。微小的红宝石测针与测头主体会瞬间猛烈撞击工作台上的虎钳夹爪(vise jaw)、主轴卡盘或压板夹具。这不仅会砸碎测量头、使刀塔严重变形并引发轴过载报警导致整机锁死,还会产生高昂的维修停机成本。该参数未经验证就投入量产,每个加工循环的尺寸偏差会逐渐累积,直到终检才发现废品。为了在追求高生产节拍的同时彻底杜绝测头撞击风险,操作规程必须要求在执行 G31 测量循环前强制执行 G40/G49 代码取消所有激活的补偿偏置,并在首件加工前通过安全高度空运行(dry run)验证测量路径,保障批量生产的零件合格率与持续稳定的节拍。

技术摘要

技术规范详细信息
指令代码G31
Modal 组 / 类型Group 00 / Non-modal (One-shot)
支持品牌Fanuc, Siemens, Mitsubishi
关键参数Parameter No. 3401 (Fanuc), MD 18800 (Siemens), Parameter #1174 (Mitsubishi)
主要限制项执行前必须使用 G40 取消刀具半径补偿(G41/G42)

快速阅读

  • 在编程 G31 或 G160 之前,必须使用 G40 取消刀具半径补偿。
  • 探测 feedrate 必须设置得足够低,以防止机械滑行量超出测头测针的物理偏折极限。
  • 切勿在测头已偏折的情况下启动 G31,因为这会立即触发 Alarm 21700。
  • 随后的增量(G91)移动是相对于实际接触点计算的,因此强烈建议使用绝对(G90)退刀以避免碰撞。
  • 打开 machine lock(机床锁)或 Z 轴取消开关将导致控制系统忽略 skip signal,从而导致撞机。
  • 多步跳步输入使用 P 地址(Fanuc 为 P1-P8,Siemens 为 P1-P4,Mitsubishi 为 P1-P255 掩码)。

基本概念

G31 skip function 是现代 CNC 加工中用于自动测量、工件对齐和对刀的必不可少的工具。当控制系统执行 G31 时,它会驱动机床各轴以指定的 feedrate 沿着编程路径移动。在此线性移动期间,控制器主动监控连接到接触触发式测头的外部数字输入。当测头测针与工件、vise jaw(虎钳夹爪)或对刀仪发生物理接触的瞬间,它会触发 skip signal。

一旦收到激活的 skip signal,CNC 控制器将立即执行剩余距离删除(distance-to-go deletion),停止所有轴的移动。控制器将接触瞬间的精确机床坐标记录到专用的系统宏变量中,并立即进入零件程序中的下一个程序段。这种实时坐标捕获允许宏程序动态地计算工件坐标系偏置、检测工装夹具对准误差并识别断刀,无需操作员干预。

实施 G31 cycle(循环)需要严格遵守 modal 编程规则。因为 G31 是属于 Group 00 的 non-modal、one-shot 指令,它仅适用于编写它的程序段。程序员在执行 G31 之前,必须使用 G40 指令取消处于激活状态的刀具半径补偿(G41/G42)。否则会导致定位冲突,且控制系统将触发程序错误报警。

命令结构

基本的 G31 指令需要坐标目标值和 feedrate 来定义探测路径。坐标值决定了探测运动的终点。如果测头在到达该坐标之前未能触发 skip signal,机床将在编程的终点停止并继续执行下一个程序段。G31 程序段中必须有激活的或指定的 feedrate(F 代码),因为机床无法在零速度下执行探测移动。

对于高级探测配置,控制器支持使用 P 地址或修改后的 G 代码的多步跳步指令。P 地址决定了控制器在 skip 移动期间监控哪个物理输入通道。这使得配备有多个测头(例如主轴测头和工作台对刀仪)的机床可以有选择地监控不同的输入,而无需更改接线。在某些控制系统上,P 地址充当二进制掩码以同时监控多个输入。

标准 G31 语法和基本命令结构:

G31 X... Y... Z... F... [P...] ;
地址 / 参数描述
X, Y, Z指定探测目标终点的绝对坐标或增量坐标。
F探测 feedrate 在 mm/min(或英寸/min),定义触摸移动的速度。
P多步 skip 输入选择器或掩码(取决于品牌 and 选项)。
R加减速时间常数方式(主要用于 Mitsubishi 控制系统)。

品牌应用

Fanuc

在 Fanuc 系统上,G31 指令以受控的 feedrate 沿着指定的轴移动。通过 Parameter No. 3401 配置的 G 代码系统选择(A、B 或 C)决定了如何解析坐标地址。在车床系统 A 中,绝对坐标使用 X 和 Z,而增量坐标使用 U 和 W。对于系统 B 和 C,绝对和增量模式通过 modal G90 和 G91 进行切换。默认的上电或复位 modal 状态由 Parameter No. 3402 控制。

典型的 Fanuc 探测程序段利用 G31 配合坐标目标值 and 指定的 feedrate。当使用多输入 skip 选项时,程序员指定地址 P(范围从 P1 到 P8)来选择物理输入通道。

Fanuc 技术细节描述 / 数值
核心参数Parameter No. 3401 (G代码系统配置), Parameter No. 3402 (复位时的 Modal 状态)
报警代码Alarm 21700 (启动时测头处于触发状态), Alarm PS0370 (未开通选项但编程了 P 地址), Alarm PS0010 (未安装 skip 功能选项而使用了非法的 G31 指令)
版本 / 选项差异选项级别支持单个输入、四个输入(P1-P4)或八个输入(P1-P8)

警告: 在激活刀尖半径补偿(G41/G42)的情况下启动 G31 探测移动会导致定位偏移并触发校验报警。务必在探测前编程 G40 取消补偿。

Siemens

为了在 SINUMERIK 控制系统上执行 G31,必须使用 G291 将解析器切换到 ISO Dialect 模式。通道特定的机床数据 MD 20154 定义了上电或复位时激活的 G 代码。外部语言解释器选项通过机床数据 MD 18800 启用。

Siemens 编译器翻译 ISO 风格的 G31 指令。程序员可以指定 P1 到 P4,以从机床配置定义的四个接触触发输入中进行选择。

Siemens 技术细节描述 / 数值
核心参数MD 18800 (外部语言激活), MD 20154 (复位时激活的 G 代码)
报警代码Alarm 21700 (程序段启动时测头发生偏折), Alarm 14800 (feedrate 为零或未编程), Alarm 61800 (缺少外部 CNC 语言选项)
版本 / 选项差异SINUMERIK 840D sl 允许修改参数;SINUMERIK 802D sl 参数具有写保护

警告: 如果在没有激活的或编程的 feedrate 且未定义固定 feedrate 的情况下执行 G31,控制系统将立即停止循环并触发 Alarm 14800。

Mitsubishi

在 Mitsubishi 系统上,默认的探测 feedrate 由参数 #1174 定义。在该默认 skip 速度与激活的 modal feedrate 之间的选择由参数 #12022 bit 2 控制。

Mitsubishi 支持映射到参数定义输入的多步 skip 指令 G31.1、G31.2 和 G31.3。此外,G31 可以与 P 地址掩码(1 到 255)一起指令,以评估激活的 skip 信号的逻辑和。

Mitsubishi 技术细节描述 / 数值
核心参数#1174 (默认 skip feedrate skip_F), #12022 (skip 速度规范位), #2102 和 #2103 (skip 加减速时间常数), #1366 (多系统 skip 联锁), #12058 (超程预检查)
报警代码Program Error P608 (激活的刀具补偿), Program Error P35 (P 值超出 1 至 255 范围), Program Error P603 (feedrate F 为 0 且 #1174 为 0), MCP Alarm Y51 15/16 (无效的时间常数)
版本 / 选项差异M80V TypeB 限制并发的高速 G 代码;C80 系列支持使用 ZR 器件变量(#50000 至 #52749)进行 PLC 集成

警告: 尝试在激活刀具补偿的情况下运行 G31 或 G160 将立即触发 Program Error P608。务必在开始测量前确保 G40 处于激活状态。

品牌对比

对比项FanucSiemensMitsubishi
解释器结构标准 ISO dialect 解析器双语解释器(ISO dialect 模式 G291 与 Siemens 原生模式 G290 切换)原生 Mitsubishi CNC G代码解析器
多输入通道支持 P1 至 P8 输入(取决于选项)支持 P1 至 P4 输入,通过系统机床数据映射支持 P1 至 P255 输入,作为逻辑和掩码评估
无传感器探测— (no source)— (no source)原生 G160 扭矩限制 skip 功能
选项校验严格的选项检查(若未启用则触发 Alarm PS0370)缺少外部 dialect 选项则触发 Alarm 61800P 指令值检查,如果超出 1 至 255 范围则触发 Program Error P35
EGB 同步 skip专用的 G31.8 EGB skip 功能— (no source)专用的 G31.8 EGB skip 功能

技术分析

在三个控制品牌中实施 G31 的对比评估,突出了在解释器行为、输入信号映射和安全处理方面的重大结构性差异。Siemens 控制系统的双语解释器通过在 G291 ISO 模式下将 G31 指令转换为内部变量来运行。控制系统可以切换到原生 Siemens 模式(G290)以读取这些传输参数并执行高级测量 cycle。另一方面,Fanuc 和 Mitsubishi 则在其主 G代码编译器中直接执行 G31 skip function,从而确保了执行速度,但需要基于宏的变量映射。

安全功能也表现出明显的品牌特有差异。Siemens 控制系统强制执行一种使用 G10.6 (Rapid Lift) 的独特安全退刀功能,该功能由数字输入触发。为了使 G10.6 运行,系统必须在内存中预载中断程序 CYCLE3106.spf,否则控制系统将因 Alarm 14011 而停止。Mitsubishi 在无传感器安全方面更进一步,提供了 G160 (扭矩限制 skip)。G160 在没有物理测头的情况下运行;它监控主轴或轴电机的电流限制 (Q) 和跟从误差(droop deviation)值 (D),以检测与毛坯、工装 vise jaw 或卡盘的物理接触,在超出限制时立即停止各轴。

输入选择方法反映了不同的配置理念。Fanuc 使用标准的选项检查;在未启用多步 skip 选项的情况下使用 P 地址(P1-P8)会立即因 Alarm PS0370 停止机床。Siemens 直接通过通道特定的机床数据映射其 P1-P4 输入。Mitsubishi 使用 1 至 255 的严格 P 地址掩码处理多输入 skip。在此模式下,P 值代表激活的 skip 信号的逻辑和,编程在 1 至 255 范围之外的任何值都会触发 Program Error P35。

程序示例

Fanuc

G40 ;
G90 G31 Z-50.0 F100.0 ;
G10.6 Z5.0 ;

空运行 (dry run)

首先,G40 指令取消任何激活的刀具半径或刀尖半径补偿,以防止定位计算冲突。接下来,G31 在绝对坐标下启动向 Z-50.0 的线性探测移动,feedrate 为 100 mm/min。如果主轴测头接触到工件表面(例如在 Z-32.4 处),则会触发 skip signal,CNC 立即停止 Z 轴移动,将 Z-32.4 存储在系统变量中,删除剩余的 17.6 mm 距离(distance-to-go),并继续执行下一个程序段。最后,G10.6 将测头退回到 Z5.0。如果测头在 Z-50.0 之前没有接触到工件,机床将在目标位置 Z-50.0 处停止并继续执行退刀程序段。

Siemens

G291 ;
G40 ;
G31 P2 Z120.0 F200.0 ;
G290 ;

空运行

G291 指令将双语 SINUMERIK 控制系统切换到 ISO Dialect 模式,以解析标准的 Fanuc 风格 G代码。G40 取消任何激活的刀具半径补偿,以确保安全的线性插补(linear interpolation)。G31 P2 指令开始一条向 Z120.0 的线性探测路径,feedrate 为 200 mm/min,监控映射到 P2 的物理输入通道。如果测针在 Z105.5 处接触到 vise jaw 或夹具,则会触发 skip signal,轴移动立即终止,保存实际坐标,并丢弃剩余的移动距离。双语解析器随后执行 G290,以切换回原生 Siemens 模式,以运行子程序或标准的 Siemens 铣削 cycle。

Mitsubishi

G40 ;
G31 Z-50.0 R1 F100.0 ;
G160 Z-25.0 Q80 D0.5 F40.0 ;

空运行

G40 指令取消激活的刀具半径补偿,避免 Program Error P608。G31 Z-50.0 R1 F100.0 启动 Z 轴探测,feedrate 为 100 mm/min。R1 地址指挥控制器根据参数 #2102 和 #2103 应用自动加减速,以防止剧烈停顿。当接触触发式测头接通电路时,轴运动减速停止,实际坐标存储在变量 #5061 中,剩余路径被丢弃。随后的 G160 程序段在 Z 轴上以 40 mm/min 的 feedrate 执行无传感器扭矩探测。如果主轴电机扭矩负载超过 80% (Q80) 或伺服跟从误差(droop deviation)超过 0.5 mm (D0.5),控制系统将注册扭矩 skip 事件,停止 Z 轴,删除剩余距离,并存储接触坐标。

错误分析

品牌报警代码触发条件操作员症状根本原因 / 解决方法
FanucAlarm 21700G31 启动前 skip signal 处于激活状态控制系统立即报警停机,加工 cycle 停止测头测针已偏折、卡住或存在电气故障。清除测头障碍物或复位传感器。
FanucAlarm PS0370已编程 P 地址(P1-P8)但多步 skip 选项未激活加工 cycle 在 G31 程序段停机,并显示报警多输入选项未购买/未配置。移除 P 指令或启用该选项。
SiemensAlarm 14800执行 G31 时 feedrate F 设为 0 或被省略探测移动无法启动,控制系统报警停机没有激活的 modal F 代码,也没有默认参数值。在程序段中指定 feedrate F。
SiemensAlarm 61800执行 G31 但外部语言编译器未启用加工 cycle 在 G291 或 G31 指令处停机参数 MD 18800 或选项位 19800 被禁用。启用外部语言支持。
MitsubishiProgram Error (P608)在有激活的刀具补偿时执行 G31 或 G160控制系统停机,加工 cycle 在程序段开始时中断激活的刀具半径/刀尖半径补偿(G41/G42)。在 G31/G160 前编程 G40。
MitsubishiProgram Error (P35)编程的 P 值超出 1 至 255 的有效范围探测 cycle 立即停止并显示程序错误编程了错误的 P 值掩码。纠正 P 地址使其处于 1 到 255 的范围内。
MitsubishiProgram Error (P603)发出 G31 或 G160 但无 F 字且参数 #1174 为 0探测执行失败,加工 cycle 停机省略了 feedrate 且默认 skip feedrate 参数 #1174 未配置。指定 F 或设置 #1174。

应用指南

测针断裂与工件报废往往源于编程人员忽视了测量移动时的信号延迟与轴减速超程。当测头触及工件表面时,轴由于惯性无法立即停止,其超程滑行距离由公式 δ0 = (F / 60) × (Tp + t1 ± t2) 决定(其中 F 为进给速度,Tp 为位置环时间常数,t1 为响应延迟时间,t2 为响应误差时间)。若进给速度 F 设定过高,超程距离就会超出测针的最大物理偏折极限,导致红宝石球及测头结构彻底撞碎,导致非计划停机时间大幅增加。为此,工艺人员必须采用低速且受控的进给,或在宏程序中读取系统变量 #5061 并减去滑行偏差进行补偿。此外,换班后确认1174号参数,可消除该指令最常见的非计划停机原因,因为若 #1174 设为 0 且程序中省略了 F 进给,系统会直接触发 Program Error P603 报警并挂起。操作人员在测量前还必须确保机床锁(machine lock)或 Z 轴取消开关处于关闭状态;一旦机床锁被激活,控制系统将完全忽略测头的跳变信号,导致轴以最大进给直接冲向工件与卡盘。该参数未经验证就投入量产,每个加工循环的尺寸偏差会逐渐累积,直到终检才发现废品。只有严格规范参数点检流程,才能在保障零件合格率的前提下,最大程度缩短非计划停机时间并优化生产节拍。

相关命令网络

  • G28:用于在将接触触发式测头装载到主轴之前,将机床各轴返回至机床原点。
  • G29:指挥坐标轴从参考点返回,将测头定位在工件附近。
  • G30:将各轴返回至第二参考位置,常用于自动换刀时序以装载测头。
  • G10.6 快速退刀 (Rapid Lift):指令由数字信号触发的高速刀具退回与恢复程序,用于紧急防撞。
  • G160 扭矩限制 skip:在扭矩限制状态下执行轴移动,实现无传感器的扭矩探测。

结论

在高精密、大批量数控加工中,规范使用 G31 跳步测量功能是实现工件自动对齐与刀具破损检测的基石。如果该参数未经验证就投入量产,每个加工循环的尺寸偏差会逐渐累积,直到终检才发现废品。为了在确保量产节拍不受影响的前提下提升零件合格率,编程与操作团队必须对测量逻辑建立标准化的审核流程。换班后确认1174号参数,可消除该指令最常见的非计划停机原因。建议将 G30/G28 等回零安全路径与 G31 探测循环紧密结合,并在首件加工前通过慢速空运行完成轨迹防撞校验。这不仅能有效缩短非计划停机时间,更能为生产线筑起一道坚实的安全屏障,确保在紧张的交付周期中实现产能与质量的双赢。

常见问题

在批量加工中,为什么执行 G31 探测循环后,后续切削尺寸会逐渐发生超差甚至撞机?

这通常是由于在执行 G31 探测指令时未提前使用 G40 彻底取消刀尖半径补偿。残留的补偿偏置会在控制器计算探测终点坐标时引入微小偏差。该参数未经验证就投入量产,每个加工循环的尺寸偏差会逐渐累积,直到终检才发现废品。实用行动:在调用 G31 探测段前,必须在程序中显式编写 G40 代码,并在换班后确认1174号参数,可消除该指令最常见的非计划停机原因。

数控机床在启动测量时立即触发 Alarm 21700 报警,应该如何快速排查并恢复量产?

Alarm 21700 报警通常表示测头跳变信号在 G31 移动指令启动前就已经处于激活(偏折)状态。这多是由于测头保护罩积屑导致测针受压、接收器电池电量耗尽或传输通道被遮挡所致。如果在批量生产中频繁出现,将严重拖累量产节拍。该参数未经验证就投入量产,每个加工循环的尺寸偏差会逐渐累积,直到终检才发现废品。实用行动:检查测针是否发生物理偏折并清理接触面,同时换班后确认1174号参数,可消除该指令最常见的非计划停机原因。

在 Mitsubishi 系统上编程 G31.1 或 G31.2 时,如何防止因进给速度未设定而导致的程序死机?

当在 Mitsubishi(如 M80)系统上调用 G31.1 多步跳步时,如果程序段中省略了进给速度 F 且系统参数 #1174(skip_F)也设为 0,系统会因探测速度为零而直接抛出 Program Error P603 报警。该参数未经验证就投入量产,每个加工循环的尺寸偏差会逐渐累积,直到终检才发现废品。实用行动:请确保程序段中明确写入 F 值,或者在机床调试时将参数 #1174 设为一个安全的默认值(如 100mm/min),且换班后确认1174号参数,可消除该指令最常见的非计划停机原因。

仍未解决?

使用自然语言向我们的AI助手咨询该话题。基于经验证的来源,无幻觉。

咨询AI助手
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2008)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

在CNC机床行业拥有超过25年的丰富经验,我继续作为CNC CARE of the 联合创始人开展活动,我们提供独立于品牌的咨询、工程和原厂备件服务。

相关文章

关于该主题的其他文章

西门子 SINUMERIK 系统 G71 公制坐标尺寸编程指南

深入解析西门子数控系统 G71 与 G710 公制编程。掌握 MD 10240 缩放参数与 FGREF 旋转轴系数,避免 Alarm 14800 与 Alarm 12080 等硬碰撞停机故障,大幅提升批量生产节拍与零件加工合格率。

FanucSiemensProgramming

CNC车削G69平衡切削取消指南:Fanuc、Siemens与Mitsubishi

深入解析 CNC 数控车床 G69 / G14 平衡切削取消指令。掌握 Fanuc 参数 8103、Siemens ISO 模式与 Mitsubishi 参数 #1037 设置,规避双刀架同步失控导致的卡盘撞刀风险,提升批量生产节拍与合格率。

FanucSiemensProgramming

Fanuc、Siemens 与 Mitsubishi CNC 车削 G70 精加工循环指南

深入解析 CNC 车削 G70 精加工循环语法与参数。掌握 Fanuc PS0322 报警排除、Siemens CYCLE95 与 Mitsubishi 切削刃角度补偿技巧,防止刀具碰撞与批量生产废品。

FanucSiemensProgramming

G69坐标系旋转取消指令:模态控制、报警排查与对向刀塔设置

深入解析 CNC 数控车床 G69 坐标系旋转与镜像取消指令。掌握 Fanuc、Siemens 及 Mitsubishi 系统对向刀塔镜像复位、G14 同步切削取消、#1202 mirofs 参数设置及 P29/M01 1036 报警排查方法,防止刀塔碰撞并提升批量加工合格率。

FanucSiemensProgramming