
干过几年非标自动化的老朋友应该都有体会产线上凡是涉及到“切”的环节方案选型没想清楚后面调试就是无底洞。管材、型材、板材、包装、线缆这些行业天天都在和“追剪、定长切割、跟随切割”打交道看着名字相近实际上控制逻辑完全不同。我之前做过一个汇川PLC追剪电子凸轮项目从方案评审到现场调试折腾了大半个月把三种切割方式的原理、选型、凸轮规划、程序实现和踩坑记录整理出来给准备上这类项目的同行做个参考。1. 追剪、定长切割与跟随切割三种方案的本质区别与选型1.1 三种切割方式的原理对比先说定长切割。定长切割的逻辑最直白材料送到设定长度停下来刀具切一刀然后再送料再切。产线上常见的剪板机、裁纸机、型材锯切机很多就是这种模式。优点就是控制简单、精度高、成本低缺点也很致命材料一直走走停停效率上不去而且每次启停对设备和材料都有冲击。对于每分钟几十米的高速产线这种方案基本没办法用。追剪就不一样了。追剪设备上会有一个切割小车小车带着锯片或者刀具。正常生产时材料是不停的每次收到切割信号小车先在原地加速追上材料的运动速度然后在和材料保持同步运动的过程中完成切割。切完以后小车减速停车再快速返回起点等待下一次切割。整个过程材料不用停产线速度能提起来所以焊管、高频焊管、连续挤出这些高速产线基本都是用追剪。跟随切割这个概念稍微有点混不同行业理解不太一样。在我接触的项目里跟随切割通常指刀具在板材运动的同时按照板材的实时位置去切一个轮廓或者斜角而不是简单的横向切断。比如激光切板机上板材一边往前送激光头一边在龙门架上做X轴方向的位置跟随配合Y轴运动切出需要的形状。它和追剪最大的区别是追剪的从轴运动方向几乎和材料方向一致主要是做同步直线切割跟随切割往往是多维运动刀具轨迹相对材料坐标系是预设的轮廓需要实时叠加材料位移。1.2 项目选型什么产线用哪种方案更合理选型这件事我在实际项目里总结了一套比较实用的判断逻辑。如果材料是间断来料的速度又比较低定长切割完全够用这种方案调试周期短现场维护也简单。但如果材料是连续不断进来的先看切割工艺是不是只在横截面上动作只需要一个方向的同步切割那基本就是追剪的范畴。再看切割的轮廓复杂度如果除了横向切断还要在运动过程中切斜口、切孔或者切异形轮廓那就得上跟随切割。还有一个很重要的判断维度是切割长度。定长切割在切短料的时候效率还行但切长料时送料行程长启停时间占比越来越大效率就下来。追剪对这种场景优势明显因为切割周期和机械动作是固定的主要取决于材料速度和切长不需要额外的启停等待时间。我做过一个焊管产线项目管子运行速度60米每分钟切长6米一天要切一万多根。这种情况下如果还用停机切割每根料光停机启动就要一两秒加上刀具动作整线产能直接少掉三成。后来改成追剪材料全程不停产能立刻提上来切割小车往返动作完全不影响产线速度。所以我的建议是凡是连续产线、速度要求高、切长固定的场景优先考虑追剪。2. 电子凸轮规划追剪项目真正的核心引擎2.1 为什么追剪必须用电子凸轮很多刚接触追剪的朋友会想我直接用伺服的位置跟随功能让切割小车跟着材料速度走行不行原理上可以但实际上很难把同步精度做好。材料速度会波动伺服响应有滞后切割负载变化又会造成速度扰动单纯靠速度跟随切出来的端面很容易出现斜口或者毛刺。现代追剪基本都采用电子凸轮方案把材料的主轴位置和切割小车的从轴位置建立一张凸轮曲线表所有运动和速度关系都预先规划好PLC只需要在正确的时机去啮合和脱离凸轮就行。电子凸轮的好处是位置关系是确定的重复精度高。凸轮表将主轴的一个运动周期映射到从轴的位置变化同步段从轴和主轴的位移关系是固定的1:1或者其他比例主轴跑多快从轴就跟着跑多快理论上没有速度跟随误差。而且凸轮曲线可以选择五次多项式之类的平滑曲线速度加速度连续机械冲击小这对高速重载的切割小车来说非常重要。汇川的PLC无论是早期的H系列还是现在的H5U、AM系列对电子凸轮的支持都比较成熟。InoProShop软件里可以很方便地编辑凸轮表支持线性、多项式、修正梯形等多种曲线类型现场改曲线参数不用改PLC程序下载配置就能生效调试起来省了很多事。2.2 追剪凸轮表的四段式设计思路追剪的凸轮表设计我习惯分成四段来规划追赶段、同步切割段、减速停止段、回程段。追赶段是小车从静止加速到材料速度的过程。这一段凸轮曲线的主轴位移和从轴位移不是线性关系从轴速度从0逐渐上升到与主轴速度一致同时要完成与切割线的对齐。如果追赶段设计得太长同步开始得太晚会导致整个切割周期变长影响切长范围如果设计得太短加速度过大机械冲击和伺服负载都会超标。同步切割段是决定切割质量的关键。这一段凸轮曲线要求从轴速度与主轴速度严格一致在凸轮表上表现为一条斜率恒定的直线段。如果斜率有波动小车速度和材料速度就有偏差切割时刀具与材料产生相对运动端面质量直接崩。现场调试追剪大部分时间都在打磨这一段。减速停止段是在切割完成后小车从同步速度安全减速到零的过渡段。这一段速度是下降的但材料还在走所以从轴和主轴的相对位置关系已经从同步段脱离刀具抬起小车准备返回。回程段是切割小车从切割终点快速返回起始位置。这一段的方向和主轴运动方向相反凸轮表斜率为负。回程速度不能太快也不能太慢太快了机械冲击大而且回程时间短下一刀准备时间充裕但伺服电流容易报警太慢了占用周期时间影响极限切长。2.3 一个具体案例焊管产线6米切长的凸轮参数计算拿我曾经做过的项目举例。产线材料速度V60米每分钟也就是1000毫米每秒定长6米切一根圆盘锯切割时间大约0.8秒这个时间是从锯片接触管材到完全切断并抬起的时间。首先算同步切割段需要的主轴位移。同步距离等于材料速度乘以切割时间1000乘以0.8等于800毫米。也就是说在小车带着锯片与管材同步前进的这800毫米内必须完成切割动作。追赶段我留了500毫米的主轴距离。按照匀加速的粗略估算小车从0加速到1000毫米每秒平均速度500毫米每秒时间0.5秒从轴位移250毫米。所以追赶段凸轮表的主轴坐标是0到500从轴坐标是0到250末端速度正好等于主轴速度位置差也刚好抹平锯片对准切割线。减速段主轴距离300毫米时间0.3秒从轴从1000毫米每秒减速到0平均速度500毫米每秒从轴位移150毫米。所以这一段从轴从250增加到250加150等于400毫米不对减速段的起点是同步段结束点。同步段主轴从500到1300从轴从250到1050。减速段主轴从1300到1600从轴从1050增加到1200。回程段需要把切割小车从1200毫米的位置送回原点0。回程距离1200毫米主轴距离我留了1400毫米也就是1.4秒的时间。平均回程速度约857毫米每秒峰值速度控制在1200以下曲线采用五次多项式平滑过渡。整张凸轮表汇总如下阶段主轴起止(mm)从轴起止(mm)主轴距离(mm)从轴位移(mm)说明追赶段0 → 5000 → 250500250加速至与材料同步同步切割段500 → 1300250 → 1050800800与材料同步完成切割减速停止段1300 → 16001050 → 1200300150切完减速至零回程段1600 → 30001200 → 01400-1200快速返回原点从凸轮啮合到小车回原点主轴一共走了3000毫米对应时间3秒。切长6米材料走完6米需要6秒所以小车在3秒完成动作后还有3秒的等待时间。等待时间内凸轮表已经结束我从程序里做CamOut退出小车停在原点待命等下一个切割信号。注意这个案例里我把追赶段主轴位移设成500回程段主轴位移设成1400是为了让加减速曲线留有余量。实际调试中如果你发现加速度不够用可以适当回缩这两个段的长度但不要低于机械允许的极限值。3. 汇川PLC追剪项目实操从凸轮配置到程序框架3.1 InoProShop工程与轴配置这个项目我用的汇川AM系列的PLC搭配SV660N伺服总线走EtherCAT。打开InoProShop新建工程以后先做硬件组态把伺服驱动挂在EtherCAT总线上。主轴我这边没有用实际的伺服轴而是用编码器输入模块接了一个测速编码器压在管材表面测实际材料速度在程序里把这个编码器配置成一个虚拟主轴。从轴就是切割小车的伺服轴。轴配置有几个细节需要注意。主轴和从轴的脉冲当量必须统一尽量都换算成毫米和毫米每秒这样凸轮表里的数值直接对应物理长度调试时看着直观。伺服轴的电子齿轮比、加减速时间也要提前设置好SV660N的刚性参数建议先做一次在线惯量辨识否则追剪小车带着锯片和支架惯量比大了之后动态响应跟不上同步段会抖。3.2 建立凸轮表的具体操作在InoProShop的运动控制树形菜单里面右键凸轮表新建一张凸轮表。凸轮表编辑器里可以添加多个凸轮段每个凸轮段需要指定主轴起点、主轴终点、从轴起点、从轴终点和曲线类型。我按上面计算的参数建了四段。追赶段选择五次多项式保证起始点速度为零、终点速度等于主轴速度加速度连续同步切割段选择线性插值因为这一段必须要保证主从轴速度比为1比1线性段斜率就是1减速停止段同样用五次多项式让速度平滑降到零回程段也是五次多项式但方向为负。特别注意同步切割段的曲线类型不要用多项式直接选线性或者直线段。多项式的中间过程会产生速度波动虽然数值不大但切割时任何一点速度波动都会在端面上留下痕迹。我见过有人用修正梯形曲线做同步段做出来的管材端面有细微波纹最后改成线性段才解决。凸轮表的X轴和Y轴范围不一定要从0开始可以根据机械结构设定。如果切割小车的原点和凸轮起点不重合可以在凸轮啮合指令里通过从轴起始位置参数做补偿不一定非要去改凸轮表本身。3.3 追剪逻辑程序框架程序部分我用结构文本ST语言写。主流程就是一个状态机待机、等待触发、凸轮啮合、切割完成凸轮退出、回程完成复位。核心逻辑如下// 假轴定义AS_Material为材料虚拟主轴AS_Cutter为切割小车从轴 // 凸轮表编号CAM_TABLE_CUTLEN_6M // 状态等待切割触发 IF stMain WAIT_TRIGGER THEN bCamIn : FALSE; // 收到切割信号可以是近接开关、编码器计数或者是上位机指令 IF bCutTrigger THEN stMain : CUTTING_RUN; // 记录当前主轴位置用于凸轮啮合相位 rMasterStartPos : MC_ReadActualPosition_AS_Material.fb; rSlaveStartPos : 0; // 小车从原点开始 END_IF END_IF // 状态切割运行 IF stMain CUTTING_RUN THEN // 执行凸轮啮合 MC_CAM_IN_0.Execute : NOT bCamInDone; MC_CAM_IN_0.Master : AS_Material; MC_CAM_IN_0.Slave : AS_Cutter; MC_CAM_IN_0.CamTable : CAM_TABLE_CUTLEN_6M; MC_CAM_IN_0.MasterStartPos : rMasterStartPos; MC_CAM_IN_0.SlaveStartPos : rSlaveStartPos; MC_CAM_IN_0.ExecutionMode : MC_EXECUTION_MODE_SINGLE; MC_CAM_IN_0(); IF MC_CAM_IN_0.InSync THEN bInSync : TRUE; END_IF // 当小车回到原点附近退出凸轮 IF MC_ReadActualPosition_AS_Cutter.fb 5 AND bInSync THEN MC_CAM_OUT_0.Execute : TRUE; MC_CAM_OUT_0.Slave : AS_Cutter; MC_CAM_OUT_0(); IF MC_CAM_OUT_0.Done THEN bCamInDone : TRUE; stMain : WAIT_TRIGGER; END_IF END_IF END_IF这个框架是简化版但核心逻辑都在。这里有个关键点MC_CamIn的MasterStartPos我记录的是收到触发信号那一刻主轴的位置。因为材料一直在走凸轮啮合是从当前位置开始的相对运动而不是让主轴回到某个绝对位置去对表。如果不做这个相位记录直接把MasterStartPos填0凸轮啮合瞬间会出现一个位置阶跃小车猛冲一下很危险。退出凸轮的时机我放在小车位置小于5毫米的地方加了一个bInSync标志位防止切割中途误触发退出。实际项目里还可能要根据锯片是否抬起、夹紧是否松开来判断能否退出这些联锁信号可以加进去。3.4 联调步骤整个项目联调我按三步走。第一步是空跑测试先把管材停了给主轴一个模拟速度信号让凸轮表在无料状态下空跑观察切割小车的位置曲线、速度曲线和加速度曲线是否平滑有没有过冲或者震荡。这一步能发现曲线参数设得合不合理比直接带料去试安全得多。第二步是低速带料测试把产线速度降到30米每分钟切短料比如切2米左右验证触发信号、凸轮啮合、切割完成、凸轮退出整个流程是否顺畅。这个阶段切出来的管材端面会暴露很多问题比如同步段有偏差、锯片进给时序不对等等。第三步再恢复到全速60米每分钟重点观察满速状态下的同步精度、伺服电流和回程是否稳定。高速下的问题通常是机械振动和伺服刚性不足引出来的如果出现抖动优先调伺服刚性和凸轮曲线的拐角平滑度。4. 定长切割与跟随切割的落地思路4.1 定长切割伺服送料加静止裁切的经典方案虽然追剪效率高但定长切割在低速多规格场景依然不可替代。我之前做过一个铝型材的定长切割设备结构就是伺服带送料辊编码器装在送料辊末端PLC输出脉冲控制伺服材料输送到位后压紧气缸动作锯片气缸下压切割。这种方案的关键在于送料长度的精度控制。伺服驱动送料辊脉冲当量的计算要细致。假设送料辊直径80毫米减速比1比5伺服编码器2500线那么电机转一圈的机械位移是80毫米乘以π再除以5约50.3毫米对应脉冲数2500乘以4等于10000脉冲当量就是50.3除以10000等于0.005毫米。每次送料6米理论脉冲数是120万实际运行时还要考虑加减速段的脉冲补偿否则长距离送料容易出现累计误差。定长切割最怕的就是机械打滑。送料辊和材料之间必须有足够的压紧力材料表面如果有油污或者氧化皮摩擦力变化会导致实际送料距离和理论值偏差这种误差不是靠程序能补回来的。我一般会加装一个测量轮编码器装在材料表面直接测实际移动距离送料伺服作为主驱动测量轮编码器作为反馈形成一个闭环这样切长精度能稳定控制在正负0.5毫米以内。4.2 跟随切割叠加运动配合外部编码器跟随切割这类的核心是“叠加”。材料和刀具之间有相对运动刀具本身又要在材料坐标系里切出轮廓所以控制上一般是做一个X轴的位置叠加把材料位移实时叠加到刀具X轴指令上Y轴独立走轮廓轨迹。汇川的AM系列支持MC_MoveSuperImposed这个指令意思是在原有运动指令上叠加一个外部信号衍生的位置偏移。实际使用中我把材料编码器的位置通过比例换算后作为叠加量加到激光头的X轴指令上。这样即使材料速度有波动激光头的X轴也能跟着材料走切出来的轮廓不会拉伸变形。跟随切割对通讯周期和伺服响应要求很高。如果用的是EtherCAT总线同步周期尽量设1毫秒伺服驱动模式用周期同步位置模式确保位置指令及时下发。另外材料编码器的安装位置尽可能靠近切割区域因为传输链板或者皮带中间会有弹性变形编码器装得越远位置延迟越大轮廓偏差就越明显。提醒一下跟随切割项目里主轴材料编码器到PLC的延迟也要评估。现场如果材料速度很快比如每秒两三米编码器信号晚到几个毫秒位置偏差就好几个毫米这种问题排查起来非常隐蔽。5. 现场常见问题与排查技巧实录5.1 切割端面不齐的排查路径端面不齐是我调试追剪时最常遇到的问题而且原因往往不止一个。第一次遇到这种情况我先查了同步段凸轮曲线的斜率确认从轴和主轴的位置比例确实是1比1。然后在InoProShop的示波器里同时抓主从轴的速度曲线发现在同步段里从轴速度有轻微的周期性波动峰值差大约2%。这个波动来源有两个可能一个是伺服刚性不够切割负载变化引起了速度波动另一个是主轴编码器本身有机械振动比如编码器轮压在管材上管材焊缝处有跳动编码器瞬时速度测量值就会波动进而通过凸轮关系传递到从轴。排查顺序建议先看伺服电流如果电流在切割时波动很大先调刚性参数做一次惯量辨识把速度环增益提上去如果伺服电流稳定再检查编码器安装看编码器轮是否磨损、压紧弹簧是否老化。我那个项目最后换了新的测量轮在编码器支架上加了一个阻尼器端面质量立刻稳定下来。5.2 切长波动编码器与触发信号两个嫌疑切长忽长忽短排查的时候先区分是触发抖动还是编码器测量不准。我在一个客户现场遇到过切长每次偏差十几毫米的情况一开始以为是定位精度问题查了一大圈最后发现是切割信号用的是普通接近开关安装位置离锯片太近锯切时的振动导致接近开关误触发切割计划提前启动。这种情况把接近开关换成光纤传感器或者把触发信号改为伺服主轴编码器计数比较判断问题就消失了。逻辑上更稳的方案是不要依赖外界的边沿信号而是PLC内部用编码器位置的和比较指令当材料位移累计到设定切长时自动触发切割外界信号只做辅助校验。用这种方式切长波动的问题基本可以消除。5.3 凸轮啮合与脱离瞬间的抖动凸轮啮合瞬间的冲击多半是啮合时的从轴速度与凸轮表起点速度不一致造成的。我的凸轮表追赶段起点速度是0但从轴在等待的时候如果有微小的漂移或者受到外力实际速度不是0强行啮合就会产生速度突变。解决办法是啮合之前先把从轴回零并做一个位置锁定的使能确保从轴静止且位置在原点。如果现场机械结构导致小车在等待时有下滑或前窜的趋势要么加机械制动要么在等待状态给伺服一个保持力矩。凸轮脱离瞬间的抖动则常见于小车还没完全停稳就强行退出。我在程序里加了速度判断只有当小车速度小于50毫米每秒时才允许执行CamOut这样退出时位置环接管不会产生阶跃。实测这个方法很管用。5.4 伺服过载与报警处理追剪小车来回跑加减速频繁伺服过载报警算是家常便饭。第一次出现这个报警我先查了伺服驱动面板显示的电流波形发现在回程段末端电流冲得很高说明回程速度设定得太快刹不住车。当时我把回程段的主轴距离从1400加到1700给小车的回程时间和刹车距离适当放宽同时把五次多项式的拐角处理调得更平滑。改完之后过载报警基本不再出现。另外一个容易忽视的点是锯片切割负载如果锯片钝了或者进给速度太快切割扭矩会突然增大影响传动链上的所有环节。遇到随机性过载报警先检查刀具状态再调运动参数顺序别搞反。常见问题可能原因解决方向端面不齐同步段斜率不精确、伺服刚性不足核对凸轮表线性段、惯量辨识、调速度环切长波动十几毫米触发信号受振动干扰、编码器打滑改为内部位置比较触发、检查测量轮凸轮啮合冲击从轴起点速度不为0啮合前回零并锁定、增加速度判断回程过载报警回程速度太快、刹车距离不足延长回程主轴距离、平滑曲线拐角跟随切割轮廓变形编码器安装位置离切割区太远、通讯周期过大缩短测距、EtherCAT周期设1毫秒做追剪这类项目我个人的体会是方案阶段把凸轮曲线算清楚后面能省一半的调试时间。很多人一上来就写程序调参数结果凸轮表本身设计得不合理怎么调都是白费功夫。另外给曲线参数留余量这件事特别重要把加速度用到极限的产品短期看着效率高长期机械和伺服都会提前疲劳。先这样希望对正在搞切割产线项目的你有帮助。