上个月接了个管材切割机的改造项目,让我把搞不定的电子凸轮啃了个透。写下来给兄弟们参考,免得你们也走我趟过的浑水。
先说说背景。这是个做不锈钢管材的厂子,他们的切割工序是这样的:管材从成型机里连续挤出来,后面跟着一个飞锯,要在管子不停的情况下把它切成固定长度。老设备用的是机械凸轮——一个电机带动一个物理凸轮盘旋转,靠凸轮轮廓的机械曲线去推着锯片做同步运动。听着就笨重,而且精度差,切3米长的管子误差能有正负5毫米。关键是机械凸轮磨损特别快,基本三个月就要换一套,每次换还要停机小半天。
厂长找到我:”能不能用伺服电机加PLC把这个机械凸轮换掉?”我说能搞,电子凸轮这技术出来好多年了。当时拍着胸脯说的,后来打脸打得啪啪响。
我选的是三菱FX5U加MR-JE伺服。FX5U自带了电子凸轮功能,支持凸轮表格和电子齿轮,理论上完全能搞定。讲一下我的思路:进给轴上装一个编码器,实时检测管材的移动速度和位置,飞锯的伺服跟着这个编码器的信号做同步运动。切割的动作分为四个阶段:加速追上管材、保持同步切割、完成切割后退回原点、等待下一个触发信号。
听起来是不是很简单?把速度跟上不就行了?天真了。
第一个坑是凸轮表的编制。用FX5U的凸轮功能,你得先建一张凸轮表,定义好从动轴(飞锯伺服)相对主轴(管材编码器)的位置关系。一个完整的切割周期,飞锯的位置曲线是:从起始位开始加速追上管材速度→保持同步前进→快速返回起始位→等待。这个曲线在凸轮表里要分很多个点去定义,每个点的位置和速度都要对。一开始我是手算的点,写在程序里,试机的时候伺服电机咔咔响,像是要散架了一样。
后来查资料才知道,凸轮表的曲线平滑度至关重要。相邻两个点的位置差和速度差不能突变太大,不然伺服电机的加速度会突变,物理上表现出来就是”顿挫”——轻则切面不平整,重则伺服报警过载。我后来专门用了一个叫Cam Curve Fitting的小软件,把曲线做了样条插值平滑处理,才稳下来。
第二个坑,也是最要命的——电子凸轮的同步不是”跟上速度”就完了,而是要”匹位置”同步。什么意思呢?就是飞锯追上管材的时候,不光速度要一样,飞锯的位置也要和管材上要切的那个点对齐。如果只同步速度不同步位置,锯片下去的时候位置对不上,切出来的管子长短不一。
这里要用到电子凸轮的”相位同步”功能。FX5U的凸轮支持主轴相位锁定,就是飞锯从起始位出发的时候,会计算主轴编码器的当前位置和”虚拟零点”之间的偏差,然后自动在做凸轮运动的时候把这个偏差补偿掉。这个功能默认是开启的,但如果你没搞明白它的逻辑,反而会出问题——编码器每转一圈,相位同步就会重新算一次,结果就是第一根管子切出来的长度是准的,第二根就跑了。后来我在程序中加了个”首次同步完成后锁定相位偏移量”的逻辑,才根治了这个问题。
第三个坑是原点回归。飞锯每次切割完要回到起始位等待下一个触发。问题在于,不同速度下返回的路径长度不一样——管子跑得快,飞锯追出去的位置就更远,回来的路也更长。如果按固定时间返回,要么等太久影响下一个周期,要么太快造成机械冲击。我最终的方案是把返回段的凸轮曲线也做成动态的:根据此次切割的行程长度,自动调整返回曲线的加速率,让飞锯刚好在下一个触发信号到来前回到位,不早不晚。
调试阶段还有个小插曲。厂里现有的管子规格有十几种,从直径12毫米到89毫米,壁厚也不一样。不同规格的管子同样的切割长度,凸轮曲线需要微调吗?一开始我以为不用管,后来发现切厚壁管的时候,锯片进刀阻力大,飞锯在同步段的实际速度会稍微偏慢,切出来的管子长度就偏长了。解决办法是在程序中给不同管径和壁厚配了不同的PID速度补偿参数,切厚管的时候加一点前馈补偿。
前前后后调试了差不多五天,终于跑稳定了。最终效果咋样?切割长度误差从原来的正负5毫米降到了正负0.3毫米以内。原来切完还要人工打磨端面,现在基本不用了。厂长算了笔账:一套机械凸轮要三千多,一年换四套就是一万二,三台设备一年能省三万六。加上不用停机换凸轮,产能还能提15%。
说实话,如果重新让我选一次,我可能会直接用带电子凸轮功能的专用运动控制器——比如基恩士的KV系列或者欧姆龙的NJ系列,它们的凸轮功能更成熟,调试工具也更友好。FX5U虽然能做,但过程和坑确实多了一些。如果预算允许,不要为了省几万块钱把自己坑进一周的调试里。
对了,还有一点提醒:电子凸轮搞定了不要急着走,一定要做”无产品空跑测试”——就是不用切管子,让飞锯在空气中跑完整个动作周期,观察有没有异常。再然后是一定要在最高速度下测试,因为很多问题低速跑看不出来,一加速就现原形。我最后就是在满速测试的时候发现了一个相位漂移的问题,好在及时发现补上了。
你们做过电子凸轮的项目吗?遇到过什么奇葩的问题?来评论区唠唠。