我接手飞锯追剪这类项目的时候,第一反应不是看程序,而是先看它的动作时序和机械结构。材料一刻不停地在往前跑,锯片要在材料“奔跑”的过程中完成切断,切完还要迅速回到起点等下一刀,整个过程中材料不能停,这就是飞锯追剪最核心的工艺逻辑。这次的项目用的是西门子200smart PLC加同系列触摸屏,整套交付内容包括电气图纸、触摸屏程序和PLC程序。文章我会按项目落地的顺序来讲:从工艺原理、硬件图纸、程序逻辑到触摸屏设计,最后是调试阶段最容易踩的坑,给正在做同类设备或者准备用200smart做运动控制的工程师一个完整的参考。
1. 为什么飞锯一定要“追”着材料切:工艺原理与同步目标
1.1 材料不停,切口如何保证垂直
管材、型材、棒材在线切断的时候,生产线不会因为切断动作而停下来。省去启停时间,产能能提升一大截,但代价是切断这件事变得复杂了:材料一直在走,锯片如果不跟着材料走就硬切,切口就是斜的,严重的时候锯片会被材料别断。
飞锯小车的核心任务就是:在切断前的某一刻开始加速,追到和材料速度一致,然后在“相对静止”的窗口里完成进刀、切割、退刀,再快速返回起点。这个“相对静止”不需要绝对速度为0,只要小车速度等于材料速度,两者就没有相对位移,切口才能垂直,锯片磨损也均匀。
很多第一次接触这个工艺的工程师会把注意力全放在PLC程序上,但我不建议这么做。机械结构决定了你能不能追得上、停得住、退得回。小车导轨的平行度、伺服或变频减速机的间隙、锯片进给机构的刚性,任何一个环节有问题,程序写得再完美也切不出合格品。
1.2 三阶段动作循环:同步跟切、快速回退、等待下一刀
一套完整的飞锯追剪动作,按时间轴拆开是三个阶段:
- 等待与定位阶段:材料编码器持续计数,小车停在起始位等待。PLC实时计算材料已走过的长度,当剩余长度接近设定成品长度时,开始进入准备状态。
- 同步跟切阶段:PLC向驱动系统发出加速指令,小车从静止加速到与材料同步的速度,然后进刀切割,切完后退刀。
- 快速回退阶段:退刀到位后,小车以较高的速度反向回到起始位,等待下一个触发点。
切割长度这个参数不需要像普通定长切断那样单独给一个“执行剩余距离”,只要编码器计数值到了预设位置就触发动作。市面上有些设备把这个逻辑写得很绕,我习惯直接把“触发点位置”算成一个可以下发的参数,HMI上留给操作员的,就是成品长度、材料速度上限、进刀延时、退刀延时这几个最直观的数字。
1.3 精度瓶颈在哪里:扫描周期、编码器分辨率、机械间隙
飞锯的精度受三个因素制约,按影响大小排序:
第一是PLC对材料长度的检测响应速度。200smart的普通扫描周期在几毫秒到十几毫秒之间,如果材料速度是120米/分钟,每毫秒材料走2毫米,一个扫描周期就是几十毫米的长度误差累积。所以不能用“扫描里比较长度到了没有”这种办法,必须用高速计数器的值到达中断或者硬件比较输出来锁住动作触发点。
第二是编码器分辨率和打滑。编码器装在测量轮上,靠接触摩擦测量材料位移,一旦材料表面有油污或者压紧弹簧力量不够,编码器就会打滑丢脉冲,累计误差会直接反映在成品长度上。
第三是机械间隙和加速度能力。同步建立和快速回退都需要驱动系统有足够的加速能力,减速机间隙大,小车速度就会有波动,切出来的端面会有振纹。
2. 项目硬件搭建与图纸阅读顺序:从选型到接线避坑
2.1 为什么CPU必须选晶体管型:高速脉冲与高速计数
这个项目最容易被忽略的选型点,是CPU输出类型。S7-200 SMART的CPU分SR(继电器输出)和ST(晶体管输出)两个系列,SR系列输出点是继电器,无法输出高速脉冲,运动控制向导里的PTO功能在SR系列上基本废掉。飞锯小车如果是伺服驱动,就必须用ST系列。
晶体管输出型CPU(比如ST40、ST60)的Q0.0/Q0.1可以输出高速脉冲和方向信号,给到伺服驱动器做位置或速度给定。同时输入点I0.0/I0.1可以作为高速计数器输入,接材料编码器的A相、B相。这两个功能是飞锯追剪的硬件基础,缺一个都做不了。
电源方面,控制回路我用的是单独的24V开关电源,和伺服、变频器的主回路供电分开。PLC本体供电、传感器供电、伺服控制信号供电虽然都是24V,但最好从开关电源的不同端子引,避免地线干扰串到高速脉冲上去。
2.2 编码器、伺服驱动与电气图纸的关键节点
项目交付的电气图纸一般分为主回路图、控制回路图、PLC I/O接线图、端子排图和柜内布置图这几部分。拿到图纸,我的阅读顺序是先看主回路,再看PLC I/O,最后看控制回路细节。
主回路上要重点关注:总进线断路器容量是否覆盖所有电机同时启动;伺服驱动器或变频器的输入侧有没有接进线电抗器;锯片电机如果是大功率异步电机,启动方式是什么,有没有星三角切换或变频器控制。这些细节直接关系到设备调试时会不会跳闸、会不会干扰。
PLC I/O表是本项目的核心,我列一个典型分配表供参考:
| 信号类型 | 地址 | 功能说明 |
|---|---|---|
| 高速计数输入 | I0.0 / I0.1 | 材料编码器A相/B相 |
| 数字量输入 | I0.2 | 小车原位(起点)检测 |
| 数字量输入 | I0.3 | 进刀到位检测 |
| 数字量输入 | I0.4 | 退刀到位检测 |
| 数字量输入 | I0.5 | 急停按钮 |
| 数字量输入 | I0.6 | 启动按钮 |
| 数字量输入 | I0.7 | 手动/自动切换 |
| 高速脉冲输出 | Q0.0 | 小车伺服脉冲 |
| 方向输出 | Q0.1 | 小车伺服方向 |
| 数字量输出 | Q0.2 | 锯片电机启动 |
| 数字量输出 | Q0.3 | 进刀电磁阀 |
| 数字量输出 | Q0.4 | 退刀电磁阀 |
| 数字量输出 | Q0.5 | 报警指示灯 |
2.3 图纸拿到手,应该按什么顺序去读
一份完整的飞锯电气图纸,几十页很正常,真到了现场不可能从头到尾慢慢看。我自己的习惯是三步:
第一步,只看主回路和多级断路器,搞清楚整个柜子有哪些负载、每个负载的供电来自哪里。这一步的目的是建立“哪些东西带电、哪些东西是控制电”的边界意识。
第二步,看PLC I/O表,把每个输入输出对应的现场设备在图纸上圈出来。对着I/O表去查编码器、限位、电磁阀的接线,项目调试时90%的问题都发生在这一层。
第三步,看触摸屏和PLC之间的通信连接。200smart和触摸屏之间用的通常是以太网S7协议,图纸上会标注两个设备的IP地址规划。我会特别检查IP是否在同一网段、有没有和现场其他设备冲突。
图纸里还有一个容易忽略的图:柜内元件布置图和接线工艺要求。有些图纸不是简单画线,而是标注了“编码器线必须单独穿管”“变频器输出线不得与控制线同槽”这样的工艺要求。这些东西乍看像废话,实际调试时才发现,线槽里编码器线和变频器输出线并排走10厘米,高速计数就开始跳数,现场查干扰能查到你怀疑人生。
3. PLC程序核心拆解:高速计数中断与三段式追剪逻辑
3.1 用高速计数中断锁住切点,而不是依赖扫描周期
200smart的高速计数器(HSC)有个很关键的用法:可以设定一个目标值,当计数器的当前值到达这个目标值时,CPU会触发硬件中断,直接进入中断程序。这个过程不依赖扫描周期对长度的轮询,响应时间通常在微秒级,这才是飞锯定长切断精度能控制在毫米级的原因。
程序里我组态了HSC0作为材料编码器的计数器,工作模式是带方向的正交计数,A相接I0.0,B相接I0.1。每个扫描周期,主程序只做一件事:把HSC0的当前值读出来,刷新到触摸屏的“当前材料长度”显示和状态判断里。而真正到了切割位置的动作,是在“当前值到达目标值”的中断程序里触发的。
中断程序里做的事情尽量少:把小车同步请求标志位置1、记录当前计数值、复位计数器或者装载下一个目标值,然后返回。剩下的加速、进刀、退刀这些动作,在主程序的状态机里按顺序执行。这样设计的好处是,中断程序占用时间极短,不会影响PLC其他扫描逻辑,即使有多个中断同时出现也不会乱。
3.2 启动同步的计算:几个“提前量”必须算清楚
飞锯程序里最核心的计算,不是切割本身,而是“小车什么时候开始追”。如果等到材料长度正好等于成品长度才让小车启动,那一刀肯定切晚了,因为小车加速需要时间,材料还在往前走。
我实际的算法是这样的,设定成品长度为L,小车从静止加速到同步速度需要的时间为T_acc,T_acc时间内材料走过的距离就是加速提前量。那么小车的启动触发点应该是:L - T_acc × V_material,再减去一个安全余量。安全余量我习惯取20~30毫米,用于补偿伺服响应延迟和机械间隙。
当HSC计数值到达启动触发点,中断触发,主程序给小车伺服下发一个目标速度。目标速度不等于材料速度,而要稍微高一点,通常是材料速度的1.0到1.03倍。为什么?因为小车在加速过程中,如果目标速度等于材料速度,等它真正追上时已经是临界状态,T_acc这一段的速度差会导致小车相对材料落后一个距离;目标速度略高,小车才能在加速结束后保持在“略微超前”的同步位置,随后系统按实际编码器速度做微调,吃平超前量。这个超前量调得好不好,直接决定切口是否垂直。
另一个容易算错的是进刀位置。进刀动作本身也需要时间,从进刀电磁阀得电到锯片真正接触材料,气缸动作加锯片切入,可能要0.3到0.8秒,这段时间材料也在走。所以进刀信号要比“切割位置”再提前一个进刀时间对应的材料行程。这部分我建议做成HMI可调参数,因为不同材质、不同锯片磨损程度下,进刀时间是不一样的,现场标定比理论计算靠谱得多。
3.3 切割完成的信号链:进刀、退刀、快速回退的状态切换
程序主体我用一个状态字来管理整套流程,状态机的转移条件写清楚,后续排查逻辑就非常快:
- S0 待机:小车停在起始位,等待启动信号。启动信号是材料编码器计数值到达“启动追剪位置”,由HSC中断置位。
- S1 同步跟随:下发小车速度给定,开始加速。这个阶段进刀电磁阀不得电,锯片保持在上位。
- S2 进刀切割:当条件满足“材料长度到达切割位置”且“小车同步建立完成”(速度差小于允许范围),置位进刀电磁阀,锯片开始下降切割。切割完成后由进刀到位传感器反馈。
- S3 退刀:进刀到位后,延时一小段时间(保证切口完全切断),置位退刀电磁阀,锯片抬起到位。
- S4 快速回退:退刀到位后,下发反向速度给定,小车回退到起始位,碰到起始位传感器后停住,回到S0状态,同时复位计数器目标值,等待下一刀。
这里有两个细节经常出问题。第一个是进刀切割阶段,小车的速度同步不能丢。很多设备在进刀时把小车切到位置模式或者发固定频率,一旦材料速度波动,小车速度跟不上,锯片就会在切口中被“卡”住。所以我在S2阶段仍然保持速度跟随,根据编码器频率实时更新小车速度给定,只是修正系数收小,避免过冲。
第二个是回退动作必须在退刀彻底到位之后再启动。如果退刀还没到位就回退,锯片还处在材料附近,快速回退会把锯片带歪,严重时整根锯片报废。回退速度我给定为材料速度的1.5到2倍,但加速度要设得柔和一点,避免小车到位时冲击太大,把导轨或编码器支架振松。
4. 触摸屏程序的设计思路:让操作员只设置四个数字
4.1 画面分组:监控、手动、参数、报警
飞锯设备在产线上天天被人操作,触摸屏界面越直观越好。我给这套项目规划了四个主画面,每个画面对应一类使用场景:
- 主监控画面:设备运行状态、当前材料长度、小车当前位置、当前切割数量、设定长度和实际长度的偏差值。投产时把主监控画面放在开机首屏,操作工扫一眼就知道设备正不正常。
- 手动操作画面:小车的点动前进/后退、锯片的升降手动控制、夹紧/松开、各电磁阀的手动得电。这个画面是检修用的,不熟练的操作工可能会误操作,所以手动画面里每个动作按钮我都设置了单独的确认提示,并且和自动模式互锁。
- 参数设置画面:成品长度、切头长度、同步速度系数、进刀延时、退刀延时、回退速度、小车加速度等。这些参数按重要性分成两页,常用参数和高级参数分开,避免操作工误改不常动的参数。
- 报警画面:当前报警和报警历史记录,每条报警附带简要的处理建议。
4.2 参数设置与PLC数据块的映射关系
触摸屏和200smart通过以太网通信,变量映射直接在触摸屏组态软件里关联到PLC的V存储区。我的习惯是专门规划一段V区给HMI参数使用,每类参数中间预留扩展空间,不要全挤在一起。
例如:VW100区域存设定长度(毫米)、VW102存切头长度、VW104存同步速度修正系数(放大100倍存储,显示为百分数)、VW106存进刀延时、VW108存退刀延时、VW110存回退速度、VW112存加速度。这样做的原因是:200smart很多计算指令默认处理整数,长度用毫米单位、速度用毫米/秒单位,触摸屏上显示的就是直观的数字,PLC内部不用做单位的反复换算。
需要提醒的是,参数写入PLC后,一定要有一个“确认保存”机制。操作员在触摸屏上改参数,不会立即生效,而是先写入一个待定缓冲区,点“写入”按钮后才把数据块整体传到PLC运行区。这样可以防止误触触摸屏导致参数被意外修改,生产线正在跑的时候参数变了,切出来的整批管子长度都会错。
4.3 报警不是只给文字,要给出处理建议
很多设备的触摸屏报警只显示“同步失败”“回退超时”这种干巴巴的文字,现场电工看见了等于没看见,还要翻说明书。我的做法是报警文本里直接带处理建议。
比如“同步失败”这个报警,PLC里写了两个失败条件:小车速度同步超时和同步偏差过大。触摸屏报警文本我会写成“小车同步超时,请检查伺服报警状态、编码器信号和同步速度系数”,这样维修人员一眼就知道该往哪个方向查。
报警还应该分等级:紧急报警(急停、伺服过载)需要红色背景闪烁,并且和设备的急停回路联动;一般报警(长度偏差超限、同步超时)用黄色提示,设备可以继续低速运行用于排查;提示信息(切割计数清零、参数已修改)只要在信息区滚一条就可以了,不用弹窗打断操作。
报警历史记录我建议存在触摸屏内部,至少保留最近100条,每条带时间戳。设备出了问题,翻报警历史往往比现场复现更高效。
5. 调试验收与常见问题:我在这类项目上踩过的坑
5.1 空跑验证:先不装锯片把同步跑稳
飞锯项目调试的第一步,永远不是装锯片切料试机,而是空跑。空跑的意思是把锯片拆掉,甚至可以把进刀机构脱开,只让小车来回跑,验证同步逻辑是否稳定。
空跑阶段主要测三项:第一,小车从静止加速到材料同步速度的曲线是否平稳,有没有过冲;第二,在同步跟随阶段,小车的实际速度和材料速度的偏差是否能稳定在一个范围内;第三,回退动作是否干脆利落,到位停止是否准确。
空跑时我把材料速度设成几个不同的值,从低速30米/分钟到高速120米/分钟,分别观察同步速度系数需要怎么修正。如果低速时同步正常、高速时小车跟不上,问题多半出在驱动系统的加速能力上,程序怎么调都没用。如果低速高速都跟随,但切出来的成品长度忽长忽短,就要去查编码器安装和测量轮压紧情况了。
空跑还有一个好处:可以在不切料的情况下验证各个限位开关的位置是否合理,特别是回退起始位和进刀到位位,位置感不对,直接在空跑时就能看出来。
5.2 斜切与长度漂移:编码器打滑和剔除余料的处理
空跑通过后,第一次装锯片试切,最常见的问题是切口斜和长度漂移。
切口斜的本质是同步偏差,但引起同步偏差的原因很多。我的排查顺序是:先看编码器信号波形和计数稳定性,再看伺服驱动器的实际转速和给定转速是否有偏差,最后看机械连接间隙。如果在触摸屏监控画面上看到小车当前位置的数字在同步阶段抖动明显,那基本可以定位到机械间隙问题,而不是程序问题。
长度漂移则多半是编码器打滑。管材表面如果有冷却液或油膜,编码器测量轮容易瞬时打滑,单个脉冲的丢失看不出来,但切了几十根之后累计误差就出来了。解决办法不是调程序,而是从机械上解决:增加测量轮的压紧力、改用齿形测量轮、定期清理测量轮表面的油污,必要时在程序里加一个“材料停止时编码器不应有计数”的防呆判断。
余料处理是另一个我容易忽略的地方。生产线启动时,材料头部往往有一截不规则料头要切掉,程序和HMI上必须有一个“切头长度”参数,并且这刀切完不算入成品计数。很多设备调试时的第一根料就是料头没处理好,跟着整条线乱切,现场一堆废料,然后才被人想起来还有料头这回事。
5.3 掉电重启后的位置记忆与安全联锁
飞锯项目还有一个跑不掉的问题:断电重启以后,小车怎么知道自己在哪里?
如果伺服电机带绝对值编码器,驱动器可以记住绝对位置,PLC通过通信读回来就行,这个方案成本高但省事。如果用增量编码器,那断电重启后第一次开机必须先做回零动作:小车先低速向起始位方向运行,碰到原位开关后停止,把这个位置设为坐标0点。
我在程序里把回零逻辑放在自动运行之前。设备一上电,如果检测到“未回零”标志,自动模式不允许启动,触摸屏上提示“请先回零”。这个标志存在PLC的断电保持区(V区带保持属性),断电重启后不会丢。
安全联锁方面,我的原则是“宁可停机不可伤人”。锯片电机运行时,进刀和退刀电磁阀不能同时得电;小车在同步切割过程中,任何情况下按急停,小车必须立即停下来,锯片抬起到位,防止锯片卡在材料里;手动模式下,如果小车不在起始位,自动模式不能一键切换。这些逻辑听起来是常识,但我见过不止一台设备,因为急停只断了锯片电机电源,没有停小车,材料还在走,锯片留在切口里,整个治具被扯坏。
调试到最后,我习惯把整套项目的PLC程序、触摸屏程序、电气图纸和一份调试记录打成压缩包存档。调试记录里写清楚每一版参数改了什么、为什么改,这个习惯救过我很多次,设备过一两年再出问题,翻开记录能最快定位是参数被改坏了还是硬件老化了。飞锯追剪这个东西,工艺看着简单,真正做稳了需要机械、电气、调试三方面配合,程序只是其中一环,但也是最容易标准化、最容易复制的一环。希望这篇分享能帮你在做同类项目时少走几步弯路。