最近在调试一套飞锯追剪系统,用的 S7-200 SMART 全家桶——CPU 选的是 ST40,配一个 AB 相增量编码器、一台伺服驱动器和一块触摸屏。产线上是一根连续挤出的管材,要求按 6 米定长切断,材料速度大概 25 米/分钟。原理听起来就三句话:材料连续走,锯车追上去,同步切一刀再回来。可真到现场才发现,编码器信号、同步区规划、返程时序、锯缝补偿,随便拎出来一个细节都能让人折腾一整天。这篇就把我调试飞锯追剪这阵子的实战心得和踩过的坑一次性写出来,给正准备上飞锯或者正在跟飞锯参数较劲的朋友做个参考。
1. 飞锯追剪到底在追什么:工艺逻辑与同步切割的难点
1.1 一套飞锯系统的完整动作时序
飞锯要解决的核心问题很简单:材料始终在运动,而我们想按固定长度把它切成段。停剪当然最省事,材料停住再切,但节拍完全顶不上,大线速下根本没法用。飞锯的思路就是材料不停,锯车带着锯片跟着材料同步跑,在相对静止的情况下完成切割,然后再快速返回原点,等待下一段。
完整动作时序可以拆成四个阶段。第一阶段是等待,锯车停在原点,锯片抬起,材料正常走,编码器持续累计长度。第二阶段是追赶,当材料走到我们设定的同步区起点时,PLC 启动伺服,让锯车从原点往前进方向加速。第三阶段是同步切割,锯车追上材料速度后保持同步,等编码器计数值到达设定长度,触发锯片下落完成切断。第四阶段是返回,切完抬锯,锯车减速、反向回到原点,为下一段做准备。
用一张表来看会更直观:
| 阶段 | 锯车状态 | 材料状态 | 触发条件 |
|---|---|---|---|
| 等待 | 停在原点,锯片抬起 | 连续运动,编码器计数 | 材料位移未达启动点 |
| 追赶 | 加速前进,速度向材料速度靠近 | 连续运动 | 材料位移到达同步区起点 |
| 同步切割 | 与材料同速,锯片下压切断 | 连续运动 | 材料计数值到达设定长度 |
| 返回 | 减速后反向回原点 | 连续运动 | 切割完成,锯片抬起 |
同步区起点设在哪里,直接决定锯车能不能在切割点之前把速度追上来。起点太靠后,锯车还没加到材料速度就到切割位置了;起点太靠前,同步区拉长,返程时间又被压缩。这之间的平衡就是飞锯调试的核心。
1.2 为什么"追得上"不等于"切得准"
这个道理我第一天调试就想明白了,但真正让它刻进脑子的是后来连续切废了好几根料。飞锯不是单纯让锯车能跟上材料速度就行,它要同时满足三个条件。
第一是位置准。锯车必须在切割点附近、以正确的相位切入。如果锯车超前或者滞后,切口就会偏移,定长自然偏。即使触发信号在设定长度处给出,只要锯车相对材料有位差,切出来的管子头尾就不对。
第二是速度同步。切割过程不是一瞬间完成的,锯片从下落、接触材料到切透,至少要几百毫秒。在这几百毫秒里,锯车和材料的相对速度如果太大,材料会被锯片顶着弯,切面出现斜口、毛刺,严重时直接崩锯片。所以同步段的精度比"追得上"更关键。
第三是返回及时。切完这一刀,锯车必须在下一段材料到达启动点之前回到原点。返回太慢,下一段的同步区起点已经被材料越过了,锯车就算拼命追也追不上,只能废一刀。材料速度越快、定长越短,这个窗口越紧张。
这三个条件互相牵制。同步区拉长,位置和速度精度好做,但返程时间被压缩;加速度调大,同步区可以缩短,但机械冲击大,伺服也容易报警。整个调试过程就是在这堆互相矛盾的目标里找平衡点。
2. 用200 SMART搭出追剪的硬件骨架:编码器、高速计数器与脉冲输出的配合
2.1 硬件选型与接线里容易栽跟头的点
先讲选型。CPU 一定要选晶体管输出的型号,比如 ST40。很多人第一次选型就栽在这里:继电器输出的 CPU 没法输出高速脉冲,PTO 能力是零,程序写得再好,锯车也只能慢吞吞地走。而且 S7-200 SMART 的高速输出点通常就集中在 Q0.0 和 Q0.1,接线前务必对着手册把端子号确认清楚。
编码器建议选 AB 相增量式,最低 1000 线。为什么用 AB 相而不是单相?因为 AB 相能判断方向,还能做四倍频,分辨率直接翻四倍。比如 1000 线的编码器,四倍频后是 4000 脉冲/转。如果测长轮直径 125mm,周长约 393mm,每个脉冲对应约 0.098mm。对 6 米定长、正负 3mm 误差的工艺要求来说,这个分辨率已经非常宽裕。
有变频器、伺服驱动的现场,编码器尽量选差分输出(RS422)类型。我这次一开始用集电极开路输出的编码器,变频器一启动,计数信号就毛刺不断,长度忽长忽短。差分输出抗干扰能力强太多,接线虽然多两根线,但值得。
接线方面,编码器的 A、B 相要接到 PLC 的高速计数输入点,以 HSC0 为例,对应 I0.0 和 I0.1。这里必须强调:普通输入点带数字滤波,会把高频脉冲直接滤掉,高速计数信号绝对不能走普通 I/O。测长轮安装时让轮轴和材料运动方向严格垂直,轮面压在材料上不能打滑,有油污或者水膜的地方要避开,否则后患无穷。
2.2 脉冲频率怎么算:一个必须提前核对的数量级问题
飞锯同步速度对应的 PTO 频率,必须在设计阶段就算清楚。S7-200 SMART 的 PTO 上限一般是 100kHz,实际使用建议留出 20% 以上的余量,也就是按 80kHz 以内去规划。算不明白的话,上了设备才会发现脉冲频率不够,到时候改机械比改程序痛苦得多。
举一个实际计算例子。假设锯车用齿轮齿条驱动,驱动小齿轮分度圆直径 80mm,周长约 251mm。减速机减速比 5:1,电机转一圈,小齿轮转五分之一圈,齿条移动约 50.2mm。伺服驱动器按每转 10000 脉冲设置电子齿轮,也就是电机转一圈需要 PLC 发 10000 个脉冲。
那么机械每移动 1mm 需要的 PLC 脉冲数就是 10000 ÷ 50.2 ≈ 199 个脉冲/mm。材料速度 25 米/分钟约等于 416.7mm/s,同步时锯车做同样的速度,对应 PTO 频率约 416.7 × 199 ≈ 82900Hz,也就是 83kHz,已经超过 80kHz 的余量线。
如果材料速度提到 30 米/分钟,同步频率约 99.6kHz,基本顶到 PTO 上限。这时候要么把减速比调小,要么让伺服电子齿轮每毫米对应更少的脉冲数,要么换更高频率输出的 PLC。这步乘法必须在选型阶段就做,别等接线都完成了才发现频率不够。
2.3 伺服驱动、步进和电子齿轮的准备工作
飞锯对动态响应要求很高,能用伺服尽量别用步进。步进电机在高速段扭矩掉得快,一旦丢步就是切歪一根料。我就见过同行用步进做飞锯,空跑时一切正常,线速一加快就周期性偏长,排查到最后发现是步进丢步。
伺服驱动器侧要设置电子齿轮,让 PLC 发来的每个脉冲对应一个好算的机械位移。我习惯设成每毫米 200 或 500 个脉冲,方便 PLC 里做整数运算。脉冲当量越多分辨率越高,但也会吃掉 PTO 频率,要跟前面的频率计算一起权衡。电子齿轮设完必须实际验证:PLC 发 1000 个脉冲,量锯车实际移动距离,方向和偏差都记录下来再下结论。
原点开关也不能省。锯车每次返回要碰一下原点开关,PLC 把累计位置清零或者记录基准值。别只用伺服内部的 Z 信号当原点,调试时逻辑不好解释,排查问题也不直观。安全上再加一个硬限位,防止原点开关失效时锯车冲出去。
3. 追剪算法的落地:主位置触发、同步区规划与返回曲线
3.1 从"材料位移"到"锯车目标位置"的映射
做飞锯算法之前,先建立一个核心概念:材料位移是主轴位置,锯车位移是从轴位置。整个飞锯周期可以看成锯车跟着材料位置"走一段、停一段、再走一段"的循环。
设材料当前位置是 M,单位是编码器脉冲数;锯车目标位置是 C。每个周期开始时,我们已经知道上一刀切完时的材料位置 M_prev,以及设定长度对应的脉冲数 N_set,那么下一刀触发切割的位置就是 M_next = M_prev + N_set。锯车不能等材料走到 M_next 才启动,那样绝对来不及,它必须提前在某个启动点 M_start 就开始跑。
同步区的核心设计就是:保证在材料从 M_start 走到 M_sync_end 这段位移内,锯车从原点走到切割点,速度从 0 加到材料速度。这样当材料真正到达 M_next 时,锯车刚好停在切割位置、速度也同步,立刻可以执行切割。
如果材料速度恒定,那材料位移和时间就是一一对应的,锯车位置随时间的变化关系也就等价于随材料位置的变化关系。于是我们可以按时间轴规划锯车加减速曲线,加速到材料速度,保持同步切割,减速,反向返回。这就是飞锯算法的标准框架。
3.2 用梯形速度还是S曲线:一个关系到切面质量的取舍
梯形速度曲线最简单,启动后以恒定加速度加到材料速度,保持一段,再以恒定减速度停住。但它有两个痛点:加速结束那一刻和减速开始那一刻,加速度都是突变的。对应到机械上就是硬冲击,锯车带着几十公斤的切割机构,冲击会通过导轨和材料传导到切面上,产生振纹。
S 曲线能让加速度连续变化,机械冲击小很多,但 S7-200 SMART 的 PTO 加减速本身是按梯形规律处理的,想要真正的 S 曲线得靠伺服驱动器自己整形,比如驱动器的速度环滤波、加速度前馈功能,或者干脆换更高一级的 PLC 做电子凸轮。
我的建议是先别在曲线上耗太多时间。第一步用梯形曲线把系统完整跑通,优先确保位置精度和时序正确。然后再看切面质量,如果振纹明显,加伺服速度环滤波参数或者调软加速度,一般能压下去。等这些手段都不够了,再考虑上 S 曲线或者升级硬件。一上来就追求 S 曲线会让调试复杂度翻倍,现场反而不容易定位问题。
3.3 中断里更新目标位置:位置触发优先于定时触发
同步算法的实现关键,是在正确的时刻更新锯车目标位置。用 S7-200 SMART 做追剪,我强烈建议用主位置等距触发中断,而不是固定时间中断。
具体思路是:用高速计数器的"当前值等于预设值"中断事件,每次进入中断后把预设值加上一个固定步长,比如每 1mm 触发一次,然后在这个中断里按曲线函数更新锯车目标位置,再调用轴指令修改 PTO 的频率或目标位置。为什么要用位置触发而不是时间触发?因为材料走得快时中断来得快,材料走得慢时中断自然变慢,锯车的更新始终和材料位移绑定,不会出现"这 1ms 里材料多走了 2mm 但 PLC 每 5ms 才算一次"的尴尬。
中断服务程序要尽量短。S7-200 SMART 的中断处理能力有限,绝对不要在中断里做大量浮点运算和除法。我的做法是把同步区按固定步长提前算成一张曲线表,存到 V 区数组里,中断里只做整数查表和简单的加减法,把计算量压到最低。这套方法在现场跑起来非常稳。
3.4 返回时序到底够不够:一个必做的算例
返回时序常常被轻视,但它是飞锯能不能连续跑起来的关键。切割结束后,锯车要从同步速度减速到 0,再反向加速回原点。这个过程里材料一直在走,如果材料走过的距离超过了下一段同步区的起点,那下一刀就废了。
举个例子。假设同步速度 25 米/分钟,也就是 416.7mm/s。切割完成后锯车减速到 0 需要 0.3 秒,反向加速回原点需要 0.8 秒,加速和减速期间平均速度大致是同步速度的一半,所以减速阶段材料走了约 62.5mm,反向加速阶段走了约 166.7mm,再加上匀速返程段,整个返回过程材料可能要走出 800mm 到 1000mm。
如果定长 6 米,同步区起点设在 5 米位置,那么上一刀切完之后,材料从 6 米位置继续走到下一段的 5 米启动点,中间留给锯车返回的距离只有 1000mm 上下。跟返程需要的材料位移一对比,余量很紧张。这时候只能提高返程加速度,或者把同步区起点往后移,或者接受更高的返程峰值速度。这个算例必须在调试前做出来,否则到现场才知道返程超时,就得推倒重来。
4. 现场调试的完整迭代链路:空跑模拟、单动验证到联动切割
4.1 参数先做成表,别写死在程序里
飞锯调试中几乎每个参数都要反复调。如果不开放给触摸屏,每改一次就重新下载程序,效率太低。我建议把参数全部做成 HMI 可调,至少包括以下这些:
设定长度、编码器脉冲当量、同步区长度、最大加速度/减速度、返程速度、锯缝补偿值、原点偏移量。PLC 内部统一用脉冲数做运算,触摸屏上只显示毫米和米,参数单位千万别混。触摸屏上单独做一个参数页面,调试时可以实时修改,还能观察当前材料计数值、锯车位置、运行速度、当前阶段,这些信息在现场排查问题时太重要了。
调试开始前,把所有参数列成一张表,每调一个参数就记录一次。现场几个月后再回去看,这张表就是最宝贵的排障数据。
4.2 调试顺序:从低速到高速,从模拟到实切
具体调试步骤我建议按下面这个顺序来,跳一步都容易出怪问题。
第一步验证编码器测长。手动牵引材料走过已知距离,比如在地上量好一米,看 PLC 累计脉冲和理论值是否一致。这一步能暴露机械打滑、方向接反、脉冲当量错误等基础问题。编码器方向反了,后面所有逻辑全乱套。
第二步验证锯车轴。PLC 发固定数量脉冲给伺服,量锯车实际位移,确认方向、电子齿轮、原点开关逻辑都正确。方向必须确认,飞锯锯车方向搞错,启动就是直接撞材料的事故。
第三步空跑模拟。不装锯片或者让锯片不接触材料,用一个手摇编码器模拟材料运动,看锯车能不能按预定时序走完追赶、同步、切割信号、返回整个周期。这一步能完整暴露同步区太短、返回超时、切割信号时序不对这些逻辑问题。
第四步低速试切。把材料速度降到设计速度的一半以下,切三到五段,检查定长和切面。低速时问题更容易观察,比如切割瞬间有没有冲击、切口是否平直。低速都切不好,高速只会更差。
第五步逐步提速。每次提高设计速度的 10% 到 20%,重新观察同步区和返程时序。提速过程中一旦发现切割长度漂移,优先检查同步区长度是否足够、锯车跟随是否稳定,而不是先怀疑编码器。
4.3 精度统计:连续切20根才有效
切一根看长度没有任何说服力,机械的随机误差和累积误差会交叉影响判断。建议连续切 20 根,每根用游标卡尺量长度,记录数据,再看三个指标。
平均偏差是所有实测长度与设定值差值的平均值。如果平均偏差稳定在某个固定值附近,优先查锯缝补偿和触发点设置。最大偏差是单根与设定值的最大差,直接反映设备稳定性。极差是最大减最小,反映重复一致性。如果极差大但平均偏差小,问题多半出在同步不稳定或者编码器打滑,而不是定长基准不对。
调试记录表建议做成这样:
| 序号 | 设定长度(mm) | 实测长度(mm) | 偏差(mm) | 备注 |
|---|---|---|---|---|
| 1 | 6000 | 6002 | +2 | 切面正常 |
| 2 | 6000 | 5998 | -2 | 切面轻微振纹 |
| 3 | 6000 | 6001 | +1 | 正常 |
| ... | ... | ... | ... | ... |
连续 20 根下来,数据自己会说话。很多现场疑难杂症,其实就是没做这个统计,靠一两次试切就下结论,结果被随机误差带偏了。
5. 实战踩坑合集:干扰导致的忽长忽短、返回抖动与锯缝补偿
5.1 编码器信号受变频器干扰:一次间歇性不定长的排查过程
那天现象特别典型:切割长度有时候 6.00 米,有时候 5.97 米,完全没有规律。我首先怀疑编码器打滑,但检查测长轮和材料表面都很干净,没有明显打滑迹象。于是把高速计数器当前值实时显示到触摸屏上,发现材料速度稳定,但计数值会有瞬时跳变,跳变幅度是个几十到几百个脉冲。
再把编码器线从动力电缆槽里单独拉出来走线,屏蔽层接到控制柜的接地排,跳变明显减少。最后把编码器换成差分输出,又做了信号隔离,问题才彻底解决。变频器一启动,整个动力线缆就成了辐射天线,集电极单端信号特别容易被污染。
如果现场条件不允许换编码器,至少要做到:编码器线走独立线槽,屏蔽层单端接地,编码器电源用单独一路开关电源供电,信号线远离变频器输出端子。这一套组合拳做完,大部分干扰问题都能压住。
5.2 同步切换点的加速度突变:切面振纹与伺服过载
切面出现细密振纹,是飞锯最头疼的问题之一。低速试切时切面还能看,线速提到 20 米/分钟以上,振纹开始明显,偶尔伺服还报过载。
排查过程是这样的:先用手机慢动作视频拍锯车,发现快到同步点时锯车有明显一顿的感觉。理论上速度曲线是平滑上升然后进入同步段的,顿挫感来自 PTO 在加速结束进入匀速那一刻的加速度突变,叠加机械间隙后,被切割张力放大,最后表现在切面上。
我把同步区长度加长了 20%,让加速度峰值降下来,同时把伺服速度环滤波参数调软了一些,振纹明显减轻。这里有个教训:同步区不是越长越好,但它确实是最该优先调整的参数。拉长同步区还解决不了问题,再考虑换 S 曲线或者升级硬件方案。
5.3 锯缝补偿方向搞反:越切越短的经典乌龙
这个坑几乎每个做飞锯的人都会踩一次。设定 6 米,切出来平均 6.03 米,想都没想就在锯缝补偿里填了一个正方向的值,结果下一批切出来 6.01 米,补偿方向反了,越改越乱。
锯缝补偿的方向和触发点定义是绑在一起的。切割瞬间锯片会吃掉一小段材料,这相当于把实际成品拉短或者拉长,具体要看触发点定义在刀口中心还是刀口前沿,以及切割时机是按下落瞬间还是切透瞬间。所以我不会建议死记公式,每个现场的机械结构不同,触发定义也可能不同。
最稳妥的办法是:先用一个小补偿值试切几根,观察长度变化方向,再去确定正负号。先试探一棒再定参数,比纯靠理论推导靠谱得多。现场设备差异太大,数据比公式可信。
5.4 原点漂移和断电恢复:容易被忽略的最后一公里
飞锯还有一个隐蔽的坑,就是原点漂移。增量式伺服断电后位置会丢失,如果上电不重新回原点,锯车位置基准就错了,切出来的长度会整体偏移。
解决思路是每次上电强制执行回原点动作。回原点方向先低速找近原点开关,碰到开关后减速停止,再慢速向切割方向退出一点,把位置基准修正到机械零位。如果有 Z 相脉冲,可以在原点开关信号有效后继续慢速找 Z 相上升沿,这样基准可以更精确。
另一个隐蔽问题是原点开关装得太靠近机械硬限位。返程速度高的时候,如果减速点计算错误,锯车可能直接撞硬限位。所以原点开关和硬限位之间要留足够的安全距离,程序里还应该加一个软件限位,万一伺服实际位置越过软限位,立即停止输出并且报警。
调试飞锯系统这段时间,我最大的体会就是:这类设备看起来简单,实际上是一个机械、电气、算法三者耦合的系统工程。把参数全部做成 HMI 可调、把调试数据记录下来、按顺序从低速到高速逐步逼近设计速度,这三个习惯比任何技巧都管用。如果你正在调飞锯,建议先别急着优化曲线和精度,把测长、方向、返程时序这些基础环节全部确认到位,再做精细化调整,剩下的问题就能一个一个拆解掉。