ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

PLC定长裁断系统:从编码器测长到伺服裁切精度调优

PLC定长裁断系统:从编码器测长到伺服裁切精度调优 简介轮胎生产线胶料定长裁断系统的PLC编程实例面向PLC编程、伺服控制与工业自动化技术人群聚焦子午线轮胎胎面定长裁断工序中精度与效率提升问题。资源包共1个PDF文件大小约97KB以文字配图示方式完整呈现系统机械构成、Profibus单主站网络拓扑、西门子S7-315-2DP与力士乐CLM/DKC伺服控制器的软硬件架构。目前已有317人学习下载。内容涵盖裁断系统运行流程、超声波检测与绝对位移编码器反馈、PLC与位置控制器通信、裁断伺服控制程序及监控界面设计等并给出不低于30m/min运行速度、定长剪切误差小于2‰等关键指标适合从事轮胎设备或类似定长裁切项目开发的工程师参考。1. 定长裁断是轮胎产线里最容易被低估的“卡脖子”工位轮胎生产线上胶料从开炼机或挤出机出来之后第一道考验就是被裁成符合工艺要求的定长胶片。这个动作看起来只是“到了长度就切一刀”但真正跑起来你会发现胶料是弹性体物理上会拉伸和回缩产线速度不是恒定的开炼机出胶速度受前道工序波动影响裁刀的响应时间、编码器的安装偏心、变频器的干扰都会让成品的实际长度漂移。裁短了下一道工序拼接不够裁长了材料浪费和硫化后接头超差一起找上门。这个标题里的“定长裁断系统”就是把测长编码器、高速计数器、裁断执行机构和触摸屏配方参数串成一个闭环的 PLC 控制方案。本文面对的读者是已经有 PLC 基础、想完整走一遍“从测长原理到裁断精度调优”的工程师这比单纯的梯形图例程更有迁移价值因为下一台设备可能不是裁断机而是同样用测长脉冲做定长控制的打孔、切断、叠片设备。2. PLC 测长与裁断执行机构的选型先于程序存在的边界条件2.1 测长脉冲的来源编码器与计米轮怎么选定长裁断的第一前提是“长度怎么变成 PLC 能读的脉冲”。常见做法是安装一个旋转编码器用橡胶轮或齿轮压着胶料表面胶料往前走带动编码器转编码器每转一圈输出固定的脉冲数PLC 用高速计数器数脉冲再用“减速比 × 轮径周长 / 每转脉冲数”换算出当前行进长度。编码器和计米轮选型里有几个容易出问题的点。先说分辨率一个 600 线的增量型编码器经 4 倍频后每转可得 2400 脉冲若计米轮周长是 240mm每个脉冲对应 0.1mm。这个精度对轮胎胶料裁断是够用的但要注意编码器的机械安装——如果用齿轮啮合或者摩擦轮轮径磨损后减速比会变所以多数系统里会把“轮径修正系数”做成触摸屏上可调的参数而不是写死在程序里。然后是编码器类型增量型编码器断电后丢失位置需要找原点和零位绝对值编码器贵一些但在断料、停机、人为转动手轮后不用重新回原点。我的建议是如果整条产线经常有人手动盘车或穿料直接用单圈绝对值编码器省掉后面对原点逻辑的烦琐处理。热词里经常有人搜“plc 伺服电机控制程序”其实定长系统里如果裁断用了伺服追剪那伺服编码器和测长编码器的配合方式也类似只是闭环算法更复杂。2.1.1 干扰与信号类型PLC 高速计数器最怕什么测长脉冲最容易在“干扰”这一环把程序搞崩。千万不能把编码器信号和变频器主回路走同一个线槽这是基本职业道德。信号线必须用双绞屏蔽线屏蔽层单端接地。PLC 端能用高速计数输入就接高速输入端子不少中大型 PLC 的普通输入点也能数脉冲但最高频率只有几百赫兹线速度稍快就丢脉冲。如果编码器信号是 5V 差分而 PLC 高速计数端子支持的是 24V 推挽中间需要加转换板。接线前翻一下所选 CPU 关于“高速计数器计数频率”的手册数据很多紧凑型 PLC 单相高速计数上限只有 100kHz超过这个频率只有选带高速计数功能或硬件中断更丰富的型号。这点在选型表里最先确认后面程序写得再漂亮硬件上限卡死也得改方案。2.2 裁断执行机构气动、液压还是伺服裁断执行机构决定的是“测到达标之后刀要多快落下”。低端方案用普通气缸加电磁阀PLC 在计数到达设定长度时输出一个脉冲给中间继电器电磁阀得电气缸伸出裁断。这里最大的问题是响应延迟从 PLC 输出 DO 到继电器动作、阀芯换向、气缸克服摩擦开始移动总延迟轻轻松松超过 50ms。而胶料线速度只要到 10m/min约 167mm/s50ms 就是 8mm 的长度误差所以低端方案必须靠提前量补偿来救。中端方案用伺服压切或者用伺服电机带动旋转刀PLC 根据测长脉冲实时计算当前位置当进入“减速窗口”时提前降低输送速度或让刀架追踪胶料到精确长度时触发裁切。热词里“plc 伺服电机控制程序”对应的大多是这类应用做法也相对统一测长编码器的主位置进 PLC经过电子齿轮换算成给伺服的虚轴位置裁切由同步位置触发而不是由定时器触发。2.2.1 气动方案要不要保留什么时候够用气动方案在三点上可以站住脚胶料线速度低不超过 5m/min、裁断长度公差允许 ±5mm、设备预算有限。这种情况下做好压缩空气的供气稳定性比换伺服更见效。电磁阀最好选两位五通先导式可以到 10Hz 以上切换频率的气缸加装磁性开关用于确认裁刀退回到位否则连续裁断时第二次切刀可能打到半位的刀位。伺服方案则要注意一个容易误解的点很多人以为把裁刀速度调到最大就能缩短延迟实际过度追求刀速会使机械冲击增大、机架振动反而造成编码器读数偏差。刀速只要保证切料时间小于一条料长度的 10%通常已经够多出来的预算用来做机架刚性和刀隙调整机构更划算。2.3 信号接线与 PLC 资源规划先于编程的动作程序没开写之前先花半小时把 I/O 表和 PLC 资源规划定下来。一般系统里至少需要测长编码器的 A/B 相两个高速输入、裁刀到位和裁刀退回两个接近开关、一个“裁断请求”按钮、一个“系统急停”、一个 DO 用于控制裁刀电磁阀或伺服使能。输出点请务必考虑继电器寿命电磁阀动作频率如果高于每分钟 30 次普通中间继电器寿命很快见底。有些系统会改用固态继电器或直接选带晶体管输出的 PLC。热词里“一个西门子plc与32个变频器modbus通讯控制是否可”反映出有人在追求一个 PLC 管全产线但定长裁断不建议把变频器通讯和高速计数混在同一个中断驱动的程序段里通讯子程序占用的扫描周期抖动很容易影响计数中断的及时响应。3. 定长裁断的 PLC 程序架构从状态机到高速计数器中断3.1 三段式工作周期等待、测长、裁断谁会踩进什么坑程序写得好不好不看梯形图多工整看它能不能在“连续自动裁断”模式里不出状态错乱。常见状态划分如下等待态裁刀退回到底系统待机此时高速计数器清零并保持使能。测长态胶料前进计数器累加PLC 每隔一个扫描周期比较当前计数值与目标值。裁断态到达目标长度发出裁断指令同步停止脉冲计数等待裁刀完成信号。踩坑高发点在于“反弹误计数”。胶料裁断瞬间前端胶料会因弹性回缩带动计米轮轻微反转增量编码器会产生负向脉冲。如果计数方向设置成单向累加这些反向脉冲不会减少数值但会引起位置波动如果用了双向计数回缩脉冲会把计数拉回导致重复裁断或长度变短。所以需要在机械上给计米轮加单向阻尼器或者在程序里做“当裁刀下落开始屏蔽编码器脉冲”的互锁逻辑。3.1.1 状态机用梯形图怎么表达比较稳三菱 FX 系列和西门子 S7-200 SMART 这类小 PLC 用梯形图写状态机常见是给每个状态分配一个 M 或内部位用 SET/RST 切换。步骤是上电初始化时置位等待状态测长状态里把比较结果作为下一个状态的转移条件裁断状态结束时先复位当前状态再置位等待状态。这里最忌讳的就是用步进指令把三段循环写死因为实际运行中操作员可能随时按急停急停恢复后状态机必须回等待态而不是继续走裁断逻辑。// 伪代码用于表示扫描周期中的状态转移逻辑 IF bEStop THEN bStateCut : FALSE; bStateMeasure : FALSE; bStateWait : TRUE; ELSE CASE State OF WAIT: IF bCutRequest THEN State : MEASURE; HSC_Clear(); END_IF MEASURE: ActualLen : HSC_Value * mm_Per_Pulse; IF ActualLen TargetLen THEN State : CUT; bCutOutput : TRUE; END_IF CUT: IF bCutReturned THEN bCutOutput : FALSE; HSC_Clear(); State : WAIT; END_IF END_CASE END_IF逻辑说明每次扫描周期先判断急停急停时无条件回到等待态保证手动重启后的确定性。在 MEASURE 状态里不要用脉冲数直接和目标长度比较而是换算成 mm这是因为触摸屏上显示和设定都直接用 mm避免换算错误。CUT 状态是等待裁刀磁性开关确认后才会清计数并回到等待这样即便胶料在裁断时刻还在轻微移动也不会计入下一段长度。参数说明HSC_Clear()是清空高速计数器当前值不同 PLC 里对应不同专用指令三菱是DHSCS配合DHSCR的使用、西门子是调用CTRL_HSC并把NEW_CV写入 0。mm_Per_Pulse来自系统参数由轮径和编码器分辨率共同换算现场校准时只需微调这一个值。3.2 高速计数器中断装载与提前量计算误差的大半靠这步解决高速计数器的“中断”功能是整个系统精度保证的第一道闸门。如果 PLC 每个扫描周期才去读一次计数值扫描周期按 5ms 算线速度 167mm/s 时一个扫描周期的长度误差就有 0.835mm加上响应延迟整体误差是不可控的。所谓中断装载就是让高速计数器硬件在计数到达某个设定值的那一刻自动触发一次中断事件PLC 直接执行中断例行程序去发裁断信号不再等主程序扫描到这里。三菱 FX5U 的DHSCS指令可以把比较值和某个输出点直接关联硬件上能实现“计数到达即输出”这种模式比中断程序响应还快。西门子 S7-1200 的做法是启用高速计数器匹配事件在事件中断里把输出置位。大部分系统需求到“中断里置位输出”这一层就够用了。提前量补偿的原理是中断触发的位置距离实际到达目标长度还有一段“机械响应距离”。中断响应时间、DO 输出延迟、阀或伺服驱动器响应时间、机构动作时间四者之和乘以胶料当前线速度就得到提前量。提前量(mm) (T_plc T_do T_valve T_cut) × V_mm_per_ms注意这里的线速度不是固定值而是实时从测长编码器的脉冲频率计算出。因为开炼机出胶速度经常有波动固定提前量只能保证一个速度点上精度最优。所以实际有用的程序里会在中断触发的同时计算一次当前速度并动态修正提前量而不是把提前量做成一个恒定常数。3.2.1 提前量在线自动修正的实现思路常用做法是在每一段裁断完成后由操作员或自动测量装置获得实际裁断长度PLC 与设定目标长度比较求差值 P然后按比例修正提前量窗口Correction Kp × (ActualLen - TargetLen) Advance_Compensate Correction其中 Kp 取 0.30.5防止一次修正过头。通道里要加限幅防止操作员误设或测量异常导致提前量跑到不合理区间。修正值需要掉电保存可以用 PLC 的断电保持区或者写入数据块。这样做的好处是下一次裁断在新提前量下自动逼近目标基本不需要人工反复调参数。3.3 一个可直接套用的结构化文本示例含裁断触发逻辑很多入门资料喜欢给梯形图截图但结构化文本能更容易把算法写清楚实际转换到博途 SCL 或 Codesys 平台的时候也更方便。以下代码建议放在一个循环中断或者定时中断里执行周期如 1ms若 PLC 扫描周期大于 1ms就把它放在时间中断事件中保证调用周期稳定。PROGRAM CUT_LENGTH_CONTROL VAR bEnable : BOOL : FALSE; // 系统使能 bCutRequest : BOOL : FALSE; // 启动裁断 bCutPositionOK : BOOL : FALSE; // 到达裁断位置 bCutReturned : BOOL : FALSE; // 裁刀退回磁性开关 nCountNow : DINT : 0; // 当前脉冲计数 rSpeed_mm_ms : REAL : 0.0; // 实时线速度 rAdvance_mm : REAL : 8.0; // 提前量 rTarget_mm : REAL : 1200.0; // 目标长度 rActual_mm : REAL : 0.0; // 测量实际长度 rPulsePerMM : REAL : 10.0; // 每毫米脉冲数 END_VAR // 每1ms中断周期执行一次 IF NOT bEnable THEN bCutPositionOK : FALSE; RETURN; END_IF // 实时长度换算 rActual_mm : DINT_TO_REAL(nCountNow) / rPulsePerMM; // 目标减去提前量的比较 IF (rActual_mm (rTarget_mm - rAdvance_mm)) AND (bCutRequest TRUE) THEN bCutPositionOK : TRUE; END_IF // 裁刀退回后复位 IF bCutReturned THEN bCutPositionOK : FALSE; bCutRequest : FALSE; END_IF逻辑说明程序核心是把“计数到达”的比较放在中断周期里每次比较当前实际长度换算值和“目标长度减去提前量”之间的关系。bCutPositionOK上升沿连接到一个置位指令去接通裁断输出。提前量预设在启动阶段使用后续可以通过自动修正逻辑覆盖。参数说明rPulsePerMM是编码器每毫米对应的脉冲数它由轮径周长和编码器线数共同决定现场首次调试时使用试裁几段测算校准可靠值为 10 时说明编码器每毫米 10 个脉冲对应分辨率 0.1mm。rAdvance_mm默认值根据现场机械响应估算调到偏大裁断长度会变短调小了变长。最终以试裁平均值为准。4. 博途与 Works2 里的组态、实时监控与配方参数4.1 高速计数器组态参数怎么填才不出 Error博途里给 S7-1200 组高速计数器右键 CPU 属性里找到“高速计数器”选择 HSC1把计数类型设为“运动控制”或“计数”操作模式用“计数”。组态最容易出错的地方是两个一个是“初始计数方向”如果编码器接线反了必须先改成反向计数这一步比程序里做取反操作更底层、也更可靠另一个是“参考值”数量博途支持多个参考值对应多个中断事件但同一个计数器上参考值过多会占用更多的 CPU 资源。三菱 Works2/GX Works3 里DHSCS会指定一个比较值和对应中断指针例如DHSCS D0 K2000 M100里的格式是“目标寄存器、比较值、输出或中断号”。注意DHSCS是 32 位指令在 FX5U 上使用时要确保软元件范围能覆盖 32 位否则计数超过 32767 就会溢出这是热词里“fx5u”相关文章常踩的坑。4.1.1 中断例行程序里的输出置位到底是三菱还是西门子习惯三菱的脉冲密度高很多做法是直接在中断子程序里SET Y0主程序再用扫描周期的逻辑去RST Y0。西门子则更习惯在中断里调用CTRL_HSC的NEW_CV和匹配事件触发Output变量。无论哪个平台注意一点中断程序里不要调用延时指令、不要读写通讯指令只做最快速度的输出置位和必要的标志记录其余动作全部放到主循环里完成。我在现场见过一个程序工程师在高速计数中断里调用了触摸屏配方读取指令导致中断执行时间突然从几十微秒跳到几百微秒同等条件下裁断精度反而比不用中断时还差。中断程序里只保留硬触发输出和置一个足够的标志位其他都后置。4.2 触摸屏配方上必须暴露的 4 个数运行与调机两不误定长裁断系统交付给车间之后操作员和调试工程师对参数的需求完全不同。触摸屏画面上我建议至少放下面四个参数且都要带数值显示和修改权限分级。参数名称功能说明典型范围权限目标长度当前生产批次的标准裁断长度单位 mm2005000操作员可改当前线速度显示实时速度 m/min只读供观察030只读长度修正设定了目标长度后的固定补偿值单位 mm-2020工艺员自动修正使能决定是否启用上一章的闭环修正算法0/1工艺员线速度不是操作员设的是系统实时测的但在触摸屏上显示出来很有必要因为现场操作员会通过速度变化预判裁断是否要出问题。修正量单独放在一屏不要和配方主参数混在一起否则操作员按生产习惯改配方时把修正量也清零了。4.3 在线调试时要盯哪些地址判断程序好坏不止看梯形图热词里“博途中查看plc资源使用情况”是被问得很多的操作。在线调试定长系统打开监控表或数据块视图注意力放在以下三类地址上第一类就是高速计数器的当前计数值它必须连续变化且没有跳变。如果看到计数一卡一卡说明高速计数组态有问题或编码器信号接触不良。第二类是中断触发标志位每次裁断前该标志必须稳定由 0 变 1且在下一轮裁断前正确复位。第三类是修正量存储器观察它是否单调收敛如果修正量在两个批次里来回振荡说明Kp系数过大。观察扫描周期也很重要。大部分小 PLC 的监控界面里可以直接看扫描周期最长时间。正常定长程序如果只用高速计数中断主扫描周期应该稳定在 5ms 以内。如果发现周期超过 10ms检查是不是把通讯读写或者配方页面的宏指令放在了主循环里这类隐性耗时最容易拖慢系统。5. 把裁断精度从 ±5mm 压到 ±1mm 的三个现场技巧5.1 技巧一目标长度比较窗口改成“减速窗口 位置锁定”如果裁断动作由气动执行单纯靠提前量在高速下压到 ±1mm 几乎不可能原因是气动回路的重复性太差。常见做法是增加一段“减速接近区”在距离目标还有 50mm 时让输送电机降速到爬行速度再用爬行速度下测长脉冲计数到目标值触发裁断。减速用变频器多段速或伺服速度给定关键在于减速区起点不是时间控制的而是从编码器位置比较得到这样才不受上一段速度波动影响。完成减速后裁断动作期间胶料速度接近匀速缓慢提前量的因速度项变小精度明显上来。5.2 技巧二计米轮打滑补偿用“空载转数”标定很多现场困扰不是编码器和 PLC 的问题而是计米轮与胶料之间的滑动。胶料配方变化导致表面摩擦系数波动时同一套机械结构打滑率和车速不是线性关系。一个可上手的补偿策略是换料卷时裁出前 10 段测量实际长度并计算平均误差然后在触摸屏上修正“轮径系数”。更细的做法是计算滑移率随线速度变化的拟合曲线在 PLC 里用一维查表做补偿。按线速度每 2m/min 为一个区间每个区间的补偿系数单独设。初始系数用空走测试轮径得出来实际生产时再逐步修改使每个区间的裁断平均误差趋近于零。5.3 技巧三裁刀到位硬限位与计数清零互锁防止“多切一刀”“多切一刀”即同一段胶料触发两次裁刀动作原因多数是裁刀在切完回退时胶料仍然拖着计米轮运动而计数还没被清零导致下一轮测长从负值或较小基数继续走。解决办法是把高速计数清除指令与裁刀磁性开关的上升沿绑定只允许在下一次测长真正开始前清零计数。同时把启动主机的联锁条件设为“裁刀必须退回到底”从设备层面禁止在裁刀未退回时启动输送。这三个技巧分别解决的是机械执行、材料特性和程序状态恢复问题。按这个顺序做如果数据仍然达不到指标问题大概率出现在机架刚性或者编码器安装同轴度上再做一遍机械校准。实际产线上做完这三步裁断长度均值基本上能稳定在设定值 ±1mm 范围内波动曲线也在可接受区间。本文还有配套的精品资源点击获取
返回列表