ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Smart200 PLC飞剪与追剪实现:相位同步与电子凸轮实战解析

Smart200 PLC飞剪与追剪实现:相位同步与电子凸轮实战解析 前阵子一个做裁切设备的同行问我说他在 Smart200 上把飞剪程序改成追剪空跑一切正常线速度一提到 40 米/分就开始出现长短料。我让他把同步区的速度曲线抓出来发现他所谓“追剪”还是按飞剪的“定长触发—剪切—返回”那套逻辑写的剪刃和材料在同步区根本没有建立位置跟随关系。这个事让我想把飞剪和追剪放在一起写一篇因为在西门子 Smart200 PLC 这种小型 PLC 上把这两种工艺真正落地不少人卡在同一个地方梯形图能编出来运动关系没想透。这篇文章不谈太多理论就从我做过的电气方案、程序结构和现场调试经验出发说清楚这两种工艺的差异、选型边界、核心代码思路以及那些说明书上不会写的坑。适合正在做切管机、切膜机、板材横切设备的电气工程师也适合设备维护人员拿来排查同步类故障。1. 从一条产线的需求说起飞剪和追剪到底差在哪很多非标设备厂把“飞剪”和“追剪”当成同义词用其实它们是两种完全不同的运动控制模型。如果一开始就搞错了后面编多少梯形图都白搭。我见过一个项目机械结构是连续旋转刀辊工艺要求是定长横切程序却按飞剪的“起停等待”思路写结果刀辊每次都要从静止加速到材料速度再减速停下来伺服每圈都在满负荷加减速最后只能把线速度压在 15 米/分以下产能完全达不到客户要求。1.1 飞剪的作业循环飞剪的核心特征是“间歇剪切”。材料连续往前走剪刀大部分时间停在等待位置等材料走到设定的长度后剪刀启动追上材料在与材料同方向、同速度的瞬间完成剪切然后退回等待位。这个循环里剪刀本身是“走走停停”的它的运动轨迹是一条非连续的往复路径。定长飞剪能不能切准取决于四件事测长轮能不能真实反映材料长度定长信号什么时候触发剪刀剪刀在同步区是否真正与材料同步以及剪完退回后有没有足够的剩余时间准备下一刀。任何一个环节出问题都会直接反映在切长上。举个例子材料速度 0.5 米/秒切长 300mm理论上 0.6 秒剪一刀。如果剪刀从触发到进入同步区需要 0.2 秒材料在这 0.2 秒里又往前走了 100mm那么触发点就必须比理论切断点提前 100mm否则每一刀都会偏长。这个“提前量”不是拍脑袋给的是用时间线性算出来的。1.2 追剪的同步机制追剪则完全不同。追剪的刀辊是连续旋转的至少刀辊在同步区是“带着材料一起走”的。刀刃进入同步区后刀尖的水平线速度必须与材料速度匹配切完这个周期后刀辊继续转在非同步区快速调整相位为下一周期做准备。追剪的数学本质是“相位锁定”。材料每前进一个切长刀辊正好转一圈或一个工作循环。控制目标不再是触发一次剪一次而是让刀辊的旋转角与材料的前进距离始终保持固定比例。材料前进 1mm刀辊应该转多少度这是个比例关系。这也是追剪明显更适合高速和连续裁切的原因。刀辊不需要从零加速到材料速度再减速回零整个周期里它的速度波动理论上可以做到很小。真正要处理的是同步区内刀刃线速度与材料线速度的匹配和非同步区相位调整的加减速规划。两种工艺放在一起对比能看得很清楚对比项飞剪追剪刀具运动特征间歇往复/起停连续旋转/循环控制核心定长计数 触发时序相位同步 周期跟踪切长变更方式修改定长预设值修改虚拟主轴周期长度提速瓶颈回程时间不足同步区速度跟踪误差典型应用型材定长裁切薄膜、纸张、管材连续横切1.3 为什么 Smart200 能做这件事不少人一听 Smart200 就摇头觉得这是入门级 PLC做不了运动控制。实际上 Smart200 有 200kHz 的高速脉冲输出有 6 路高速计数器支持 PTO/PWM还有配套的运动控制向导和高速计数器向导。对单轴飞剪、单轴追剪来说这个硬件能力是绰绰有余的。不过有一点必须清醒Smart200 没有像 S7-1500 那样现成的电子凸轮指令也没有完整的运动控制库可以调用。也就是说追剪中“主轴位置—刀辊相位”的换算关系、凸轮表、同步区判断、相位修正都需要你自己用梯形图或 STL 写出来。S7-1200/1500 的博途里有个MC_CamTable之类的功能可以直接用Smart200 上没有就得把电子凸轮思想翻译成普通的四则运算和比较指令。还有一点要注意Smart200 只有晶体管输出型 CPU 才支持高速脉冲继电器输出型根本做不了这个。选型阶段就得把 CPU 型号定对后面才不会有硬伤。2. 硬件选型与脉冲频率核算先算清楚再动工我接触过的很多飞剪/追剪项目最终问题不是程序写不出来而是机械结构和电气选型没匹配好。追剪主要靠伺服的高速响应能力飞剪主要靠伺服的大扭矩输出。选型的时候只按功率选不按运动周期里的峰值速度、峰值加速度核算后面调试必然要花大量时间补课。2.1 伺服、编码器与 PLC 脉冲输出的搭配先捋一下常见的系统硬件结构。主牵引一般是一台变频电机或普通交流电机带动材料前进测长轮跟随材料转动测长轮轴上装编码器编码器脉冲接入 Smart200 的高速计数器刀辊由伺服电机驱动伺服驱动器工作在位置模式或速度模式接收 Smart200 发出的脉冲方向信号。伺服选型要关注两个指标功率和转动惯量比。飞剪的刀辊每一刀都要快速起停驱动器经常工作在最大扭矩区间建议伺服电机功率比稳态负载大 1.5 到 2 倍。如果刀辊从静止加速到 0.5 米/秒的刀刃线速度只需要 0.1 秒那加速度就是 5 米/秒²折算到电机轴上对应的扭矩要求往往远超匀速运行的扭矩不提前核算峰值扭矩伺服会有很大概率报过载。编码器这里有个容易踩的坑。Smart200 的高速计数器输入的电气接口类型要跟编码器输出匹配差分输出的编码器在很多 Smart200 标准 CPU 上不能直接接或者需要加转换板/专用输入模块。现场没有确认就直接接线结果高速计数器一开机就乱跳。稳妥的做法是选集电极开路OC输出的增量编码器或者干脆用支持 5V 差分输入的 CPU 型号并且编码器线一定要用双绞屏蔽线单独走线。V90 这类伺服在 Smart200 上使用一般走 PTI 脉冲接口支持脉冲/方向或正反转脉冲两种方式。伺服驱动器内部的电子齿轮比需要在调试软件里设置好通常建议把“电机每转对应的用户单位位移”设成一个整数比如 1 个脉冲 0.01mm 或 0.001mm这样后面 PLC 里算长度、算位置会清楚很多。2.2 一个实例同步区脉冲频率核算很多人不知道为什么要核算脉冲频率总觉得 PLC 有 200kHz 输出就一定够。我举一个实际算例你马上就能看到边界在哪里。假设材料线速度 v 0.5 米/秒切长 L 300mm刀具是连续旋转的刀辊刀辊半径 R 100mm。先看几个基础参数刀辊周长 C 2πR ≈ 628.3mm剪切周期 T L / v 0.3m / 0.5m/s 0.6s一个周期里刀辊正好转一圈平均转速 1 / 0.6 ≈ 1.67 转/秒 ≈ 100rpm同步区的长度一般至少是材料方向位移 150mm对应刀辊转角φ_sync 150 / 628.3 × 360° ≈ 85.9°同步区时间t_sync 150 / 1000 / 0.5s 0.3s非同步区剩余 274.1°时间也是 0.3s。所以非同步区刀辊平均转速要达到n_non (274.1 / 360) / 0.3 ≈ 2.54 转/秒 ≈ 152rpm如果刀辊和伺服电机之间是 2:1 减速电机端非同步区平均转速约为 304rpm同步区电机端约 95rpm。对于额定转速 3000rpm 的伺服这个负载是绰绰有余的。再看脉冲频率。如果伺服每转设定为 10000 个脉冲同步区电机的输出频率约为 15.9kHz非同步区平均约 50.8kHz都远低于 200kHz。但如果你把线速度提到 3 米/秒也就是 180 米/分所有转速同步放大 6 倍非同步区平均频率就会冲到约 305kHz超过 200kHz 上限了。到了这个临界点要么降低每转脉冲数要么改减速比要么直接换支持更高输入频率的伺服方案。这就是为什么选型阶段必须动笔算。等你设备都装好了才发现频率不够只能改机械或者换 PLC损失巨大。2.3 接线与抗干扰调试失败的一大半原因都在这就我看到的现场问题来说飞剪追剪类设备调不好至少有一半不是程序问题而是接线和干扰问题。脉冲线必须用双绞屏蔽线屏蔽层单端接地编码器线同样要屏蔽PLC、伺服、变频器的电源尽量独立不要共用一组开关电源动力线与信号线分开走线槽尤其不能把变频器输出线和编码器线绑在一起扎线。有个很典型的现场症状设备空跑正常变频器一启动切长就开始漂移而且有时候切出来的材料长度忽长忽短。最初可能怀疑是编码器或程序问题拿示波器一看编码器 A/B 相脉冲上叠了一堆尖峰。处理方式是给变频器输出加电抗器、把伺服和 PLC 的地线重新处理、编码器线换成屏蔽电缆并且远离变频器输出线问题马上消失。另外如果材料允许建议在测长轮轴上加一个机械原点信号或编码器 Z 相。每转一圈清一次当前计数可以避免高速计数器的微小丢脉冲长期累积成大误差。这个措施成本很低但能显著提高长时间运行时的长度稳定性。3. 飞剪实现定长中断、速度跟随与回零逻辑飞剪的程序框架看起来简单但每一步都藏着细节。这里把从测长到剪切再到返回的完整链路拆开讲。3.1 测长编码器与高速计数器配置测长轮编码器接 Smart200 高速计数器建议使用 A/B 相正交计数模式这样可以通过 4 倍频提高分辨率。比如测长轮直径 100mm编码器 600PPR4 倍频后每转 2400 脉冲每个脉冲对应的材料长度就是pulse_len π × 100 / 2400 ≈ 0.1309mm这个值就是程序的“长度基准”所有长度计算都基于它。在 Micro/WIN SMART 里可以用高速计数器向导生成初始化子程序。使用向导的好处是它会自动帮你配置控制字节、当前值、预设值不用自己去记一堆 SMB/SMD 地址。配置时注意启用“当前值等于预设值”中断并指定一个中断服务程序长度到达的逻辑放在中断里执行。为什么定长触发一定要用高速计数器中断而不是在扫描周期里轮询当前计数因为 Smart200 的扫描周期在程序复杂时可能有几十毫秒在 0.5 米/秒线速度下20ms 的材料移动量就是 10mm这个误差对于 300mm 的切长来说已经是 3.3% 了完全不能接受。高速计数器中断能保证触发时刻的误差只取决于编码器分辨率而不是程序扫描时间。3.2 定长触发与剪切同步的时序关系前面说过触发不能等材料走到理论切断点才发必须提前一个“动作时间”的量。更准确地说高速计数器的预设值应当按下面这个逻辑设置先算剪刀从停止位到达同步区起点并稳定下来所需的时间 t_ready再算材料在这个时间里走掉的距离 Δ v × t_ready高速计数器预设值对应的长度 设定切长 - Δ如果剪刀原地等待的时间固定材料速度是波动的那 Δ 也会跟着波动。所以严谨的方案应该用速度传感器实时测量材料线速度动态计算 Δ。如果材料速度由变频器开环控制、波动不大也可以用固定值补偿现场微调。另外切断点尽量安排在同步区的中间位置不要放在起点或终点。刀尖切入材料那一刻本来就是受力冲击最大的时候如果刚好在同步区边缘速度匹配误差最大切口容易出现毛边或斜口。中断程序里要做的事情也要严格限制。不能把复杂运算全部塞进中断否则中断执行时间过长会影响高速计数器继续计数甚至丢失脉冲。我的习惯是中断里只做标记置位真正的运动控制在主循环或下一个定时中断里处理。3.3 剪刃返回与安全回零剪切完成之后剪刃要从同步区末端快速退回到等待位。这个返回过程如果直接给一个很大的速度阶跃机械冲击会很大刀辊还会抖动。更合理的做法是给返回段做加减速规划先加速到返回速度快接近等待位时再减速停住。回零逻辑是飞剪的另一个关键。建议采用“原点开关 编码器 Z 相”的组合回零方式先以较快速度找原点开关找到后换低速找 Z 相把 Z 相坐标作为绝对原点。这样每次开机的机械参考点都一致。这里有一个我调试中吃过亏的经验不要把同步区起点直接设在机械零点旁边。如果刀尖停在距离材料很近的地方设备启动瞬间或者操作人员误操作时极易发生撞刀。程序里应该单独定义一个“安全等待角”让剪刃停在远离同步区的位置等收到启动信号后再按规划好的路径靠近同步区起点。4. 追剪实现电子凸轮思想在 Smart200 里的落地追剪的难点不在“追”这个动作本身而在于怎样用一台没有电子凸轮指令的小型 PLC把这个相位锁定关系实时跑起来。这一章是全文的核心。4.1 虚轴主从把“追”变成“算”追剪的经典做法是把材料前进方向定义为一个虚拟主轴刀辊是跟随这个虚拟主轴运动的从轴。材料每前进一个切长 L刀辊旋转一圈。所以说白了追剪要算的就是下面这个比例关系θ_ref (L_main mod L) / L × 360°其中 L_main 是材料累计前进长度L 是设定切长θ_ref 是刀辊在这个周期里应该处的角度位置。只要刀辊按这个角度走不管材料速度怎么变切出来的长度都是 L因为刀辊的相位始终由编码器反馈的真实材料位移决定。关键问题在于 Smart200 没有专门的“取余”指令需要用浮点数运算自己处理。而且在进入同步区后如果只做位置跟随刀辊的响应会滞后更可靠的做法是在同步区内把伺服切换成速度模式目标速度就是材料线速度除以刀辊半径再乘以减速比同时用位置信号做相位校准。程序扫描周期是另一个致命细节。如果主循环扫描周期是 10ms在 0.5 米/秒线速度下每次刷新之间材料走了 5mm。对于 300mm 切长这意味着一圈理论相位最多会有约 6° 的滞后折算到切长是 5mm现场根本没法接受。所以追剪的同步计算必须放在定时中断里中断周期建议 1 到 5ms而且中断里的代码要尽量精简。我实践中常用的做法是把编码器当前计数值读到中断里乘以每脉冲长度得到累计长度取余切长后换算成相位再计算出给伺服的频率或位置。中断里只做乘加和比较不调用 HMI 刷新、不处理按钮逻辑保证中断执行时间尽可能短。4.2 切长变化、色标追剪与动态补偿追剪最灵活的地方是改切长不必动机械。只要把程序里的 L 从一个固定值变成一个可写变量HMI 上填多少刀辊就按多少周期转一圈。但要注意切长不能无限调小因为切长越小周期 T 越短非同步区可用的调整时间越少需要的伺服速度越高。选型阶段要按最小切长核算一次非同步区峰值频率。如果材料上有印刷色标要求按色标而不是按编码器长度切断那就需要在色标传感器来一次信号时计算当前刀辊实际相位与期望相位的差值。比如这一刀应该切在色标中心但色标来临时刀辊相位已经晚了 20°程序就在接下来的非同步区加速把相位拉回来修正量就是 20°。如果修正量太大一个周期拉不回来设备应当报警或自动降速而不是强行剪切造成废品。刀具磨损补偿也需要提前考虑。刀辊磨过几次以后实际半径变小了刀刃的线速度也变了。如果不做补偿虽然切长还是设定的 300mm但切口品质会下降甚至同步区内刀刃对材料的拉扯会导致长度漂移。通常做法是在 HMI 上增加一个“刀具直径补偿”输入框程序在同步区速度计算时按实际半径修正目标速度。还有一个很实用的闭环思路如果现场有合格的成品长度检测信号可以用测长轮连续检测实际切长和设定值做差值再把这个差值按比例微调下一刀的裁剪长度或相位偏移。这种办法在材料特性稳定、测长轮精度有保证的前提下非常有效。4.3 程序框架与关键运动控制指令Smart200 追剪的程序框架大致如下主循环 OB1处理启动、停止、故障复位、HMI 数据读写1ms 或 5ms 定时中断读取编码器计数计算虚拟主轴位置输出伺服目标速度/位置高速计数器中断处理定长到达标记、Z 相零点标记原点回归和手动模式用于设备调试和换刀。用 Smart200 的向导生成运动控制指令时一般会得到类似AXIS0_CTRL、AXIS0_GOTO、AXIS0_RUN这样的子程序。不同固件版本生成的接口可能略有差异但思路一致通过AXIS0_GOTO把伺服定位到指定位置或在运行时通过速度指令刷新目标速度。下面是一段简化后的伪代码表达同步计算的核心逻辑// 1ms 定时中断程序 // 读取高速计数器当前值HSC 数量乘以每脉冲长度得到主轴累计长度 L_mm 高速计数器当前值 × 每脉冲长度 // 计算当前周期内的相位 phase_raw L_mm MOD 设定切长 phase_deg phase_raw / 设定切长 × 360 // 判断是否在同步区 IF phase_deg 同步区起点 AND phase_deg 同步区终点 THEN // 同步区目标速度 材料线速度 / 刀辊半径 × 减速比 目标速度 材料线速度 / 刀辊半径 × 减速比 ELSE // 非同步区快速调整到下一个同步区起点 目标速度 快速调整速度 END_IF // 将目标速度写入运动控制指令的速度寄存器 MOV 目标速度, 运动控制速度变量这段逻辑的关键是同步区的判断不能只看时间必须看相位。因为材料速度变化时同样的时间走过的长度不同相位才是真正的基准。色标追剪的修正逻辑也很简单就是在非同步区根据实际相位减期望相位的差值计算需要额外追多少速度。写成程序就是相位修正量除以剩余时间得到速度增量。只要伺服响应跟得上这个方法在 60 米/分以下都很稳。5. 现场调试从空跑齿痕到稳定裁切的完整过程再讲得漂亮的程序不上设备都是零。我在现场调试这类设备时遵循的顺序是先空跑再低速带料最后逐步提速。每一步都有明确的验证目标。5.1 低线速度空跑确认同步区相位空跑阶段不放材料但刀辊正常旋转。此时重点看三样东西原点回零是否每次都停在同一个位置同步区起点角度是否和设定一致刀辊在同步区和非同步区切换时速度是否平滑。我会在 HMI 上把两个实时值放在同一个画面上刀辊实际相位和虚拟主轴相位。在同步区内两者应该基本重合偏差如果稳定在 ±0.5° 以内说明方向、减速比、编码器方向都对了。如果偏差很大或者方向相反首先检查编码器 A/B 相是否接反、伺服脉冲方向是否反了、减速比的正负号是否设置反了。空跑时还有一个特别值得注意的地方听声音。伺服驱动器的电流环响应如果太激进刀辊在相位切换点会有明显的“咯噔”声这个声音说明加速度曲线有突变。处理办法是增加加减速斜坡时间或者降低相位切换时的速度差不要一上来就追求最高效率。5.2 剪切点偏移与切长误差的补偿方向低速带料试切时最容易遇到切长整体偏长或整体偏短。这里给一个方向性判断表现象常见原因处理方向切长整体偏长触发提前量过大减小提前量或减小触发预设长度切长整体偏短触发提前量过小增大提前量或增大触发预设长度切口毛边同步区刀刃线速度与材料速度不匹配微调同步区目标速度/增加同步区长度切长忽长忽短测长轮打滑、编码器联轴器松动检查压紧力、更换联轴器高速时切断点后移伺服加速能力不足调整加减速、检查伺服增益刀辊异响相位切换加速度过大延长加速时间或降低切换速度差有一个我印象很深的案例有个客户设备切长总是偏长 2mm、偏短 1mm 交替出现前后调了两天程序、伺服参数都动过最后发现是编码器联轴器偏心严重每转一圈就会让计数在当前值上出现规律性的偏差。换成刚性联轴器并重新打表找正后切长精度马上恢复到 ±0.5mm 以内。所以查切长误差时先查机械再查编码器最后才查程序。顺序反了大概率白忙一场。5.3 常见故障表与处理方向结合多个现场的共性问题可以整理成一张排查表故障现象可能原因处理方向高速计数器数值乱跳编码器接线受干扰、屏蔽未接地检查屏蔽、动力线与信号线分槽伺服跟随时偶尔报警脉冲频率超限、加减速时间过短核算最高脉冲频率、加长加减速时间修改切长后第一刀不准取余/相位计算没更新、旧相位残留修改切长后清一次虚拟主轴相位长时间运行切长逐渐漂移测长轮打滑、编码器累计丢脉冲增加每圈清零/Z 相校正变频器启动后切长漂移电磁干扰影响编码器或脉冲信号加电抗器、改善接地、换屏蔽线刀辊启动瞬间撞到材料安全等待角设置不当把启动等待位置远离同步区最后说一个我自己调试这类设备的习惯我会把原点开关位置、同步区起始角度、减速比、每脉冲长度这四个参数打印出来贴在电柜门上。设备停机半年再开机或者换维护人员这些看似简单的数据往往能省掉半天返工时间。飞剪和追剪的纸面算法不难真正决定设备稳不稳的是机械公差、装配同心度、编码器联轴器和最后一版调的相位偏移。先保证每个循环的相位可重复再去追求高线速度顺序不能反。你要是在类似项目上也用 Smart200 做同步控制这套思路可以直接套用只是把参数换成你实际设备的数值。
返回列表