搜索文章与案例

Technical Article

海德汉FMAX之后省略F,为什么又回到原来的进给?

按TNC640 NC34059x-18解释FMAX后的进给恢复,用三段NC对比FMAX与F20000的状态差别,说明后处理怎样检查快速定位后的首段进给。

一段写了 FMAX,下一段只写坐标,刀具却没有继续快速移动。若按“上一行速度会一直保持”去读海德汉程序,就容易把正常的状态恢复误判为后处理漏输出。反过来,把 FMAX 改成一个很大的数值 F,下一段又可能继承这个大数值。两种写法的差别,不在于看起来谁更快,而在于数值进给是否被改写。

这里按 HEIDENHAIN TNC 640、NC 软件 34059x-18 的 Klartext 编程手册 10/2023 第126页说明。例子采用 MM 毫米程序、普通每分钟数值进给,R0 表示没有刀具半径补偿;不讨论 FU 每转进给、FZ 每齿进给、加工循环或其他附加功能对进给的改变。

先分清本段移动方式和保存的数值进给

手册把两件事明确分开:数值 F 会保留,直到出现另一个进给值;FMAX 只在写有它的当前 NC 段生效。FMAX 段结束后,控制器回到之前最后指定的数值进给。

下面三段只用于比较状态。刀具已在允许横移的安全高度,X0 至 X50 的空间和行程均允许移动,工件坐标与刀具长度已正确建立,期间没有调用循环、子程序或其他改变进给的指令。三个 X 都是当前工件坐标中的绝对目标,不是每段再走相同的增量。

10 L X+10 R0 F300
11 L X+40 R0 FMAX
12 L X+50 R0

第10段把数值进给设为300 mm/min。第11段从X10移向X40,用 FMAX 请求快速移动,但不会把保存的数值进给改成某个“快速速度”。第12段从X40移向X50,虽然没有再写F300,却恢复使用300 mm/min。这里恢复的是此前的数值,不是机床某个固定的默认慢速。

TNC640三段状态:F300建立数值进给,FMAX仅当前段快速,下一段省略F恢复300
图1:逐段追踪数值进给。图中没有给FMAX指定一个固定速度。

把FMAX写成F20000,后面的状态就变了

再看独立的对照片段。入口条件和坐标相同,只把第11段改成数值F:

10 L X+10 R0 F300
11 L X+40 R0 F20000
12 L X+50 R0

这次第11段真正更新了保存的数值进给。第12段没有新的F,便继续使用F20000,而不是回到F300。即使两种写法在某一小段上的实际移动时间接近,也不能据此认为它们等价。原厂手册要求快速移动使用 FMAX,而不要靠极大的数值F模拟,理由正包括快速移动的单段作用范围,以及它与加工进给的独立控制。

将FMAX替换成F20000后保存的数值进给变为20000,下一段省略F仍继承20000
图2:另一组独立对照。20000只用于展示错误的状态继承,不是给任何刀具推荐的进给值。

实际速度不能只凭F字推定。各轴最大进给由机床参数限定,行程长度、加减速和倍率等也会影响运动。用X40到X50这一段做纯数值核算,距离为10 mm;假设整段匀速且忽略所有限制,F300对应10÷300×60=2秒,F20000对应0.03秒。这只说明两个请求值相差约66.7倍,不是机床会实现0.03秒的预测,更不是FMAX的速度计算。

后处理要表达运动意图,不能只挑一个很大的数

如果这段确实应该快速定位,输出应明确表达 FMAX,并检查后续第一段恢复的数值F是否仍适用于该工序。如果后续已经换了加工条件,就在进入该工序的位置输出所需数值F,不能因为“会恢复”而继续沿用旧工序的参数。

如果原意是受控进给定位,则保留经过工艺确认的数值F,并在下一段进入不同进给要求时明确更新。不能把全文所有大数值F机械换成FMAX:其中可能有本来就要求按数值进给执行的移动,改成快速会改变操作意图。

排查时截取异常段之前最后一个数值F、FMAX段以及紧接着的第一段运动,一起标注每段目标和有效进给。数值F也可能在 TOOL CALL 中给出,因此不能只向上查一行。若程序从中途开始,入口状态的建立要按本机流程核实,不要拿上述从第10段顺序执行的结果替代中途启动验证。

修改后处理后,对比同一刀路在快速定位前后输出的NC,至少覆盖连续两处定位和进入新工序的边界。先确认该用快速还是数值进给,再确认下一段继承什么。对比方法可参看改Mastercam后处理,先看NC怎么变;涉及机床的速度限制和操作方式,还应结合后处理与具体机床的适配条件核对。

原厂依据

TNC 640 Klartext Programming,NC34059x-18,10/2023,第126页“Feed rate F”:数值F的持续作用、FMAX的单段作用及快速移动的编程要求。本文示例只比较这些规则,没有把它们套用于其他控制系统。