1. 项目概述:追剪算法在西门子Smart200与维纶屏的集成应用
追剪控制是包装、印刷、纺织等连续物料加工行业的核心工艺需求。作为从业15年的工业自动化工程师,我经手过数十套追剪系统改造项目。这次要分享的是基于西门子S7-200 SMART PLC和威纶通HMI的经典解决方案,这个组合在中小型追剪设备中占比超过60%,性价比和稳定性经过市场充分验证。
追剪算法的本质是通过PLC精确控制切刀与物料运动的同步。当编码器检测到物料移动特定长度时,切刀需在毫秒级时间内完成加速、同步切割、减速返回的全过程。Smart200虽然属于小型PLC,但其高速计数器(HSC)和脉冲输出功能完全能满足2m/s以下线速度的追剪需求。配合威纶通MT8000系列触摸屏,可实现切割参数设置、生产统计、故障诊断等完整监控功能。
2. 系统架构与硬件配置
2.1 硬件选型要点
- PLC:S7-200 SMART ST40(6路高速计数器/4路脉冲输出)
- HMI:威纶通MT8102IE(10.1寸,支持Modbus RTU主站)
- 伺服驱动:台达ASD-A2系列(2500线编码器反馈)
- 编码器:欧姆龙E6B2-CWZ6C(NPN开路集电极输出)
- 电气柜布局:编码器信号线需采用双绞屏蔽电缆(如BELDEN 8761),与动力线间距>30cm
关键经验:Smart200的HSC0和HSC3支持A/B相正交计数,建议将编码器接入这两个通道,可获得4倍频计数精度(2500线编码器实际分辨率达10000脉冲/转)
2.2 通信拓扑
plaintext复制[威纶屏 MT8102IE] ----(RS485/Modbus RTU)---- [Smart200 PORT0]
|
[台达伺服驱动器] ----(RS485/Modbus RTU)----
通信参数统一设置为:波特率19200、8数据位、1停止位、无校验。实测表明,这个速率下Smart200的PORT0口可稳定处理HMI与伺服的双重通信需求。
3. 追剪算法核心逻辑实现
3.1 运动曲线规划
追剪过程采用梯形速度曲线,需在PLC中计算以下关键参数:
-
同步区计算:
python复制# 伪代码示例 sync_distance = (material_speed * cut_time) / 2 # 同步区长度 max_sync_speed = material_speed * (1 + overshoot_factor) # 最大追踪速度实际STEP7-MicroWIN中使用实数运算指令实现,需注意SM0.0上电初始化时预计算并存入VD存储区
-
电子齿轮比动态调整:
STL复制// 西门子PLC STL语句 LD SM0.0 MOVR VD100, VD200 // VD100=编码器瞬时速度 /R VW210, VD200 // VW210=机械传动比 MOVR VD200, AQW0 // 写入模拟量输出控制伺服速度
3.2 高速计数器配置
在系统块中配置HSC0为模式9(A/B相正交计数),并启用HSC中断:
-
初始化程序:
STL复制LD SM0.1 MOVB 16#F8, SMB37 // 允许HSC、正交x4模式 HDEF 0, 9 // 定义HSC0为模式9 MOVD +0, SMD38 // 初始值清零 HSC 0 // 激活HSC0 -
中断服务程序(INT0):
STL复制LD SM0.0 MOVD HC0, VD500 // 读取当前计数值 -D +10000, VD500 // 提前量补偿(根据机械实际调整) MOVD VD500, SMD42 // 设置比较值 ATCH INT0, 12 // 重新挂接CV=PV中断 ENI // 开中断
4. 威纶屏监控程序设计
4.1 关键画面元素
-
参数设置页:
- 切割长度(浮点数,地址:VW1000)
- 最大线速度(浮点数,地址:VW1004)
- 加速度时间(整数,地址:VW1008)
-
生产监控页:
plaintext复制
| 当前速度 | 设定速度 | 累计产量 | |----------|----------|----------| | [VD200] | [VD204] | [VD208] | -
报警历史:
通过"事件显示"组件关联PLC的MB10(报警代码寄存器)
4.2 通信配置技巧
在EasyBuilder Pro中设置:
- 设备列表添加"Siemens S7-200 SMART PPI"
- 站号设置为2(与PLC系统块一致)
- 数据格式选择"Float IEEE标准"
- 启用"通信心跳检测"功能(地址用M0.5,PLC侧用时钟脉冲SM0.5驱动)
避坑指南:威纶屏对S7-200 SMART的V区访问需采用"4x"寄存器类型,地址填写实际地址+1(如VW1000对应4x1001)
5. 调试实战与问题排查
5.1 伺服刚性调整
遇到切割位置波动时,按以下步骤调整:
- 先将伺服参数P1-37设为5(中刚性)
- 观察实际位置与指令位置的跟随误差
- 逐步提高刚性值,直到切割误差<±0.3mm
- 最后调整速度前馈增益(P2-55)
5.2 典型故障处理
| 故障现象 | 排查步骤 | 解决方案 |
|---|---|---|
| 切刀不同步 | 1. 检查编码器供电电压(24V±10%) | 更换屏蔽电缆或加磁环 |
| HMI数据显示跳动 | 2. 监控VD区数据是否正常 | 修改通信间隔为300ms |
| 高速计数数值异常 | 3. 用示波器检查编码器信号波形 | 调整伺服电子齿轮比参数 |
| Modbus通信超时 | 4. 检测终端电阻是否启用(120Ω) | 在PLC端口并接终端电阻 |
6. 程序优化进阶技巧
-
运动平滑处理:
在速度指令输出前增加一阶低通滤波:STL复制// 滤波系数α=0.2 LD SM0.0 MOVR VD300, VD304 // VD300=原始速度 -R VD304, VD308 // VD308=差值 *R 0.2, VD308 // 滤波系数 +R VD308, VD304 // 新速度值 MOVR VD304, AQW0 // 输出到模拟量 -
双缓冲区技术:
使用VW区交替存储切割参数,避免在线修改时引发运动抖动:plaintext复制
[Active Buffer] VW2000-VW2010 [Edit Buffer] VW2012-VW2022 -
安全保护逻辑:
STL复制LD I0.2 // 急停信号 LPS MOVB 0, QB0 // 立即停止所有输出 LPP R M0.0, 1 // 复位运行标志
