1. 项目背景与核心挑战
在工业卷取设备领域,双轴卷取分切机的张力控制一直是个让人头疼的技术难点。我去年接手的一个项目就遇到了典型问题——客户抱怨他们现有的分切机在高速运行时,料卷经常出现"喇叭口"(边缘松垮)或"腰鼓形"(中间凸起)等不良现象。这直接导致后续工序的废品率飙升,操作工不得不频繁停机调整。
经过现场诊断,发现问题的核心在于前后卷取轴的张力平衡算法过于简单。传统PID控制虽然能维持基本张力,但在卷径快速变化时(特别是不同材质切换时),系统响应滞后导致张力波动明显。更麻烦的是,当操作工试图通过触摸屏手动干预时,经常因为看不到双轴张力对比而调过头,反而加剧了问题。
2. 系统架构设计
2.1 硬件配置方案
基于成本控制和性能需求的平衡,我们选用了以下硬件组合:
- PLC核心:西门子S7-200 SMART SR60
- 自带24DI/16DO
- 扩展2个EM AE04模拟量输入模块(用于张力传感器)
- 扩展1个EM AQ02模拟量输出模块(控制变频器)
- 驱动系统:安川GA700变频器+SGMAH伺服电机
- 前卷取轴:7.5kW电机,配1000线增量编码器
- 后牵引轴:5.5kW电机,配500线编码器
- 人机界面:西门子Smart 700 IE V3触摸屏
关键设计考量:选择SR60 PLC是因为其自带的高速计数器(100kHz)能精准捕捉编码器信号,而AE04模块的16位分辨率(±10V量程)可确保张力传感器的微小变化不被噪声淹没。
2.2 软件控制框架
整个程序采用模块化设计,核心控制逻辑分布在三个关键部分:
-
主循环程序(OB1):
- 处理HMI交互指令
- 执行状态监控和故障处理
- 更新工艺参数数据库
-
定时中断(OB35):
- 每20ms执行一次张力闭环计算
- 动态调整卷径补偿系数
- 模拟量输出滤波处理
-
高速计数器中断(OB38):
- 实时捕获编码器脉冲
- 计算实际线速度
- 检测超速/堵转异常
3. 张力控制算法解析
3.1 基础张力模型
卷取张力的理论计算公式为:
code复制T = (F × D)/(2 × μ × r)
其中:
- T:目标张力(N)
- F:材料弹性系数(N/mm²)
- D:当前卷径(mm)
- μ:摩擦系数(0.1~0.3)
- r:卷轴半径(mm)
在实际编程中,我们将其转化为PLC可执行的离散化算法:
code复制// 张力基准值计算
MOVR 材料弹性系数, VD100
MUL VD100, 当前卷径, VD104
DIV VD104, 摩擦系数补偿值, VD108
DIV VD108, 机械常数, VD112
MOVR VD112, 张力基准值
3.2 动态补偿算法
为解决卷径变化时的张力波动,开发了梯度补偿算法。其核心思想是通过监测卷径变化率来预判张力趋势:
code复制// 梯度补偿计算(OB35中断执行)
MOVW 当前卷径值, VW100 // 读取实时卷径
SUBW VW100, 上次卷径值, VW102 // 计算变化量
ITD VW102, VD104 // 整数转双字
MULR 0.05, VD104 // 乘以敏感系数
DIVR VD104, 线速度设定值, VD108 // 速度归一化
ADDR VD108, 张力基准值, VD112 // 动态补偿
LIMIT 最小张力, 最大张力, VD112 // 限幅保护
算法精要:当检测到卷径快速增大时(dD/dt>0),系统会提前增加张力设定值,抵消因转动惯量增加导致的张力衰减。0.05的敏感系数是通过多次现场试验得出的经验值。
3.3 抗干扰措施
针对模拟量信号干扰问题,设计了二阶滤波算法:
code复制// 模拟量输出滤波(OB1循环执行)
MOVR 目标输出值, VD200 // 原始指令值
SUB VD200, 当前输出值, VD204 // 计算差值
LIMIT -0.5, 0.5, VD204 // 限制最大变化率
MUL VD204, 0.2, VD208 // 一阶衰减系数
ADD VD208, 当前输出值, VD212 // 生成过渡值
MOVR VD212, AQW0 // 输出到变频器
MOVR VD212, 当前输出值 // 更新状态
实测表明,这种渐变式输出可使变频器转速变化更加平滑,避免了因信号突变导致的电机抖动。
4. HMI界面设计要点
4.1 双轴监控视图
在触摸屏主界面采用左右分屏设计:
- 左侧:前卷取轴参数
- 实时张力曲线(红色)
- 设定/实际转速显示
- 卷径动态进度条
- 右侧:后牵引轴参数
- 实时张力曲线(蓝色)
- 张力偏差百分比
- 累计米数统计
关键技巧是将两个张力曲线叠加在同一个坐标系中,通过颜色对比直观反映同步状态。在WinCC Flexible中实现方法:
- 创建XY曲线控件
- 添加两个数据源:%MW100(前轴)、%MW200(后轴)
- 设置曲线属性:红色实线(前轴)、蓝色虚线(后轴)
- 配置时间轴范围为最近30秒
4.2 参数设置优化
为避免操作工误调关键参数,采用分级权限设计:
- 操作员级:仅可调整张力设定值(±10%范围)
- 工程师级:可修改PID参数、卷径算法系数
- 管理员级:可访问所有参数,包括机械常数
特别在张力设定界面添加了"专家模式"按钮,长按3秒后显示高级选项,既保证了安全性又不影响调试效率。
5. 调试经验与故障排除
5.1 典型问题速查表
| 故障现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| 启动时张力震荡 | PID参数过激 | 观察曲线波动频率 | 减小比例增益P |
| 高速运行时张力漂移 | 卷径计算误差 | 检查编码器信号 | 校准编码器分辨率 |
| 模拟量输出抖动 | 信号干扰 | 测量输出端电压 | 加装信号隔离器 |
| 双轴不同步 | 机械传动间隙 | 做空载运行测试 | 调整联轴器预紧力 |
5.2 宝贵教训
-
编码器安装细节:
曾因编码器联轴器未锁紧导致脉冲丢失,表现为周期性张力波动。后来改用双重锁紧螺母并点胶固定,问题彻底解决。 -
接地处理:
模拟量信号线最初与电机动力线平行走线,导致随机干扰。重新布线并采用屏蔽线单端接地后,信号质量显著提升。 -
参数备份:
遇到过一次因电池失效导致参数丢失。现在强制要求:- 每周备份PLC程序到触摸屏
- 关键参数另存为CSV文件
- 在HMI界面添加"参数导出"功能
6. 程序优化技巧
6.1 内存管理
Smart200的内存资源有限,采用以下策略提高效率:
- 将频繁访问的数据(如张力设定值)存放在V区
- 历史数据记录用M区+指针寻址
- 在OB35中断中使用局部变量(L区)
6.2 注释规范
编写了300+条中文注释,主要遵循以下原则:
- 关键算法块:说明物理意义和计算公式
code复制// 卷径计算(mm)=脉冲数×周长/编码器分辨率 // D=(NW×π×R)/2000, R:辊径 - 复杂逻辑:标注真值表或状态转换图
code复制// 状态机转换条件: // 00→01:启动按钮按下且无故障 // 01→10:速度达到设定值80% - 接口信号:注明来源和用途
code复制// I0.3=前轴急停信号(常闭) // Q1.2=后轴制动器输出(高有效)
6.3 扩展接口
为后续升级预留了接口:
- 通过Modbus RTU预留了与MES系统通信的接口(VB1000~VB1099)
- 在数据块中定义了工艺配方结构体(最大20组)
- HMI界面隐藏了"以太网配置"页面(需密码进入)
这套系统经过半年生产验证,卷取整齐度从原来的85%提升到98%以上,操作工干预次数减少70%。最让我欣慰的是,客户后来反馈说新来的电工仅用两天就看懂了全部程序逻辑——这或许就是工业自动化程序最好的评价标准。
