上个月接了个让我头疼了两周的活。说出来不怕兄弟们笑话——一个涂布机的多轴同步控制,差点把我整到秃头。
客户是做锂电池隔膜涂覆的,有一条涂布产线要改造。产线结构不复杂:一个放卷轴、一个涂布辊、一个牵引辊、一个收卷轴,另外还有一个背辊,总共五个轴。要求所有轴在运行过程中保持严格的比例同步——也就是说,收卷轴转一圈,涂布辊要转几圈几分之几圈,比例关系不能变,速度变化的时候所有轴同步加减速。
问题出在哪儿
一开始我觉得不难。西门子S7-1200本身支持轴控,用TIA Portal的工艺对象配电子齿轮(Electronic Gear)功能,应该能搞定。
上了项目才发现问题在哪——S7-1200本体最多只有4路高速脉冲输出。
1214C的标配是4路脉冲输出(PTO/PWM),但我需要控制5台伺服。虽说可以用PN通讯(Profinet)带伺服驱动器走速度同步,但客户那边已有的5台伺服全是老款的脉冲型——三菱MR-JE系列,只有位置脉冲和模拟量速度两种接口。换伺服驱动器的话成本太高,客户不同意。
卡在这儿了。要么加一个运动控制模块,要么换PLC方案,要么想办法用4路脉冲控5台伺服。
试了几个方案
方案一:加信号板
S7-1200可以加SB 1222信号板,SB 1222是数字量输出板,不是高速脉冲板。实际上要加高速脉冲得用S7-1200的SM 1223或者再加一个CPU的通信处理器,或者直接用S7-1500。
找了一圈,S7-1200能用的高速脉冲扩展只有S7-1215C以上的型号自带6路,或者加S7-1200的SB 1222 4x24VDC高频数字量输出模块,但它只支持PTO,不能同时做电子齿轮同步。
方案二:换PLC
S7-1215C自带6路高速脉冲输出,刚好够用。但问题在于客户柜子已经按照1214C的尺寸开好了孔、布好了线,而且1215C比1214C贵不少,客户不太想加预算。
方案三:用模拟量做速度同步(最终方案)
这是我最终采用的办法。仔细想了一下,我的需求其实不是5个轴都要精确的位置同步——收卷轴需要精确的线速度匹配和张力控制,但背辊和牵引辊在速度变化时只需要跟得上主速度就行,不需要严格的位置锁定。
所以我这样分:
- 放卷轴和收卷轴用脉冲控制伺服——这两台需要精确的位置控制和张力控制
- 涂布辊用脉冲控制——这是主速度轴,其他轴跟着它跑
- 牵引辊和背辊用模拟量速度控制——从S7-1200的模拟量输出(0-10V)接到伺服的模拟量速度输入端
这样就用掉3路脉冲(放卷、收卷、涂布辊),剩下1路脉冲备用,2路模拟量输出控牵引和背辊。
电子齿轮同步怎么做的
S7-1200的工艺对象里有一个叫”电子齿轮”(Electronic Gear)的功能。简单说就是:一个轴(从轴)的位置或者速度跟着另一个轴(主轴)按比例跑。
我以涂布辊作为主轴,其他四个轴都是从轴。主轴的实际速度作为参考,每个从轴根据自己的速比系数计算目标速度:
- 牵引辊:主轴速度 × 1.05(因为有涂布涂层的厚度增加,牵引速度要略快于涂布速度防止堆料)
- 收卷轴:根据卷径实时计算速度——卷越来越粗,收卷转速越来越慢,但线速度恒定。这个卷径是靠计米器加算法推算的
- 放卷轴:也是根据卷径动态调速,加上张力PID闭环
- 背辊:主轴速度 × 1.0(同步转,辅助涂布)
关键代码逻辑写在OB30(循环中断)里,每10ms执行一次同步计算:
// 伪代码示意
主轴速度 := 涂布辊的实际速度(从伺服反馈读取)
牵引辊目标速度 := 主轴速度 * 1.05
背辊目标速度 := 主轴速度 * 1.0
// 收卷卷径计算
收卷累计长度 := 收卷累计长度 + (收卷辊线速度 * 10ms)
收卷卷径 := 收卷累计长度 / (PI * 当前收卷转数)
收卷目标速度 := (涂布辊线速度 * 1.02) / (PI * 收卷卷径) * 60
// 模拟量输出转换
模拟量输出 := 目标速度 / 伺服最高转速 * 27648
调试中的三个坑
写代码用了一天,调试用了将近一周。说说几个让我记忆深刻的坑:
坑一:加减速时候不同步
第一次试运行,涂布辊从0加速到10m/min的过程中,牵引辊明显先冲出去了。原因很简单——模拟量输出的响应速度比脉冲输出慢。脉冲输出是纳秒级的响应,模拟量输出经过D/A转换、信号传输、伺服驱动器模拟量输入滤波,有个几十毫秒的滞后。
解决办法:在PLC程序里给脉冲控制的轴主动加一个50ms的软延时,让模拟量控制的轴先跑50ms,脉冲轴再跟上。用PLC的TON定时器加了一个启动延时,加速过程就顺了。
坑二:收卷张力忽大忽小
收卷轴用脉冲控制,按理说位置精度够了。但实际跑的时候,收卷的卷越来越粗,我的卷径计算有误差,导致收卷线速度跟涂布线速度不匹配——快了就拉得太紧,慢了就松。
解决办法:加了一个张力传感器,做了一个简单的PID闭环。张力设定值200g,PID输出微调收卷速度的速比系数。P=0.5,I=0.02,D=0,调了大概两小时,张力波动从±50g缩到±5g以内。
坑三:模拟量通道干扰
两条模拟量速度信号线走的跟动力电缆同一个线槽,调试的时候示波器一看,噪声有100多mV。0-10V对应0-1500rpm,100mV的噪声就相当于15rpm的转速波动。
解决办法其实大家都知道——模拟量信号用屏蔽线,屏蔽层单端接地,跟动力线分开走。但现场施工的时候电工图省事给放一起了。重新理线之后噪声降到20mV以下。
项目最终效果
折腾了两周,最终验收的数据:
- 涂布速度:5-20m/min范围内五轴同步误差<0.5%
- 收卷张力控制:±5g(设定200g时)
- 加减速过程:从0到20m/min,同步建立时间约0.5秒
- 连续运行8小时无报警,收卷端面整齐,没有塔形和松卷
一点复盘
做完这个项目,我自己反思了几点:
- 多轴同步不是非得全走脉冲——摸清楚每个轴的实际精度需求,该用模拟量就用模拟量,成本省不少
- 先想清楚再动手——我一开始就硬想用5路脉冲搞死磕,绕了一大圈。其实想清楚需求分层,方案自然就出来了
- S7-1200的工艺对象比想象中好用——电子齿轮、凸轮表、位置控制这些,标准库已经封得很好了,比自己写梯形图省力太多
兄弟们有没有被多轴同步坑过的经历?你们用的是什么方案?欢迎在评论区聊聊。