1. 项目背景与硬件配置
两年前接手这个贴膜机项目时,客户要求用最经济的方案实现自动化贴膜。最终选型S7-1215C DC/DC/DC PLC搭配KTP700触摸屏,这套组合在中小型设备上性价比极高。PLC自带16DI/16DO,通过SB1221模块扩展了32点IO,完全满足这个项目的信号需求。
伺服系统选用V90系列,配套1FL6电机。这里有个选型细节:贴膜工艺要求重复定位精度±0.1mm,V90的17位绝对值编码器完全够用,比用脉冲型伺服省了电池盒和维护成本。气动元件全部采用Festo标准缸,电磁阀组用CPV10系列,这种模块化设计方便后期增减工位。
关键提示:DC/DC/DC型号的PLC注意供电范围是20.4-28.8V,现场调试时遇到过因为用24V开关电源电压波动导致PLC重启的情况,后来换了稳压电源才解决。
2. 程序架构设计
2.1 模块化编程结构
整个程序采用TIA Portal典型的模块化设计,分为三个功能块:
- FB10(主逻辑):处理气缸时序和输送带控制
- FB11(运动控制):封装所有伺服相关功能
- FB12(HMI交互):处理触摸屏数据交换
pascal复制// OB1中的调用示例
CALL "FB10_贴膜机主程序" , DB10
CALL "FB11_伺服控制" , DB11
CALL "FB12_HMI交互" , DB12
这种结构的优势在于:
- 故障排查时能快速定位问题模块
- 不同工程师可以并行开发
- 功能变更时影响范围可控
2.2 数据块规划技巧
为每个FB分配独立的DB,变量命名采用"模块名_功能"的格式,例如:
- DB10中:"气缸_夹紧到位"(Bool)
- DB11中:"伺服_当前速度"(Real)
- DB12中:"HMI_设定长度"(Real)
实测发现,这种命名方式在在线监控时效率提升至少30%,特别是有多个类似变量时(比如多个气缸的到位信号),不会出现混淆。
3. 核心功能实现细节
3.1 气缸控制逻辑
贴膜工艺包含三个关键气缸:
- 升降气缸(控制膜卷上下)
- 夹紧气缸(固定材料)
- 压合气缸(完成贴膜)
以夹紧气缸为例,完整控制逻辑需要考虑:
- 互锁条件(升降气缸未到位时禁止动作)
- 动作超时保护(2秒未到位报错)
- 手动/自动模式切换
ladder复制// 梯形图实现示例
Network 1: 夹紧启动条件
M2.0(启动信号) I0.2(升降到位) M10.0(无报警)
---| |-----------| |--------------| |----(S)
Network 2: 夹紧输出
M10.1(夹紧命令) T1(延时定时器) Q0.3
---| |-----------|/|--------------( )
调试心得:气缸动作间隔建议至少200ms,我们最初设的50ms导致电磁阀频繁切换,一个月就出现了触点粘连。
3.2 伺服运动控制
贴膜伺服需要完成三个核心动作:
- 回原点(每次启动时执行)
- 定长送膜(根据HMI设定值)
- 纠偏调整(通过光电传感器反馈)
SCL实现的回零程序:
scl复制// 伺服回原点功能
IF #启动回零 AND NOT #回零完成 THEN
MC_Home(
Axis := "贴膜伺服轴",
Execute := TRUE,
Position := 0.0,
Done => #回零完成,
Error => #错误代码);
IF #错误代码 <> 0 THEN
#报警代码 := 403;
END_IF;
END_IF;
常见故障处理:
- 403错误:检查驱动器使能信号和电源
- 252错误:检查编码器接线
- 85错误:降低回零速度参数
3.3 触摸屏组态要点
KTP700界面设计遵循几个原则:
- 关键操作元素大小至少15mm×15mm
- 急停按钮固定右下角
- 运行状态用颜色区分(绿色-运行,红色-停止)
- 参数设置界面增加数值限制
动画实现技巧:
- 贴膜角度显示用矢量图旋转动画,绑定DB12中的角度变量
- 产量计数器用滑入动画效果,每完成100件触发一次特效
- 报警信息采用弹出式窗口,需操作员确认才能关闭
4. 安全与异常处理
4.1 安全回路设计
独立于PLC的安全回路包含:
- 急停按钮(常闭触点串联)
- 安全门开关
- 过载保护继电器
PLC程序中的软安全措施:
pascal复制// 安全条件检查
IF NOT "安全回路_OK" THEN
"所有输出" := FALSE;
"报警代码" := 1001;
END_IF;
4.2 堵料检测方案
在OB35循环中断(默认100ms)中实现:
scl复制// 输送带堵料检测
IF "运行模式" = 自动 THEN
IF "输送带运行" AND NOT "物料检测" THEN
"堵料计时" := "堵料计时" + 1;
IF "堵料计时" > 50 THEN // 5秒超时
"报警代码" := 2001;
END_IF;
ELSE
"堵料计时" := 0;
END_IF;
END_IF;
4.3 生产数据记录
通过S7-1200的数据日志功能:
- 创建DataLog数据块
- 配置触发条件(每完成一件产品)
- 记录关键参数:
- 生产时间戳
- 操作员ID
- 贴膜长度
- 循环时间
5. 调试与优化经验
5.1 伺服参数整定
最优参数组合经过多次测试得出:
markdown复制| 参数 | 初始值 | 优化值 | 效果 |
|---------------|--------|--------|--------------------|
| 位置环增益 | 35 | 28 | 减少末端抖动 |
| 速度前馈 | 0 | 85% | 改善跟踪精度 |
| 加速度时间 | 100ms | 150ms | 降低机械冲击 |
调试方法:
- 先用Trace功能录制运动曲线
- 观察位置偏差和速度波动
- 逐步调整参数并验证效果
5.2 时序优化技巧
原始时序存在的问题:
- 夹紧气缸动作时输送带已停止,导致产能下降
- 贴膜完成后延迟500ms才允许下一循环
优化后的重叠控制:
pascal复制// 改进后的时序控制
IF "贴膜完成" THEN
"输送带启动" := TRUE; // 提前启动输送带
"夹紧释放" := TRUE;
"压合收回" := TRUE;
END_IF;
优化效果:循环时间从3.2秒降至2.7秒,产能提升15%
5.3 电磁阀寿命延长措施
- 所有气缸输出增加灭弧电路
- 电磁阀负载并联续流二极管
- 程序中设置最小动作间隔200ms
- 每月定期检查阀芯动作情况
实施后电磁阀平均寿命从80万次提升到200万次以上
6. 项目升级建议
后续改进方向:
- 增加视觉定位系统替代光电传感器
- 改用Profinet总线型伺服驱动器
- 集成MES系统接口
- 添加振动抑制算法改善高速运行稳定性
特别提醒:若需要源代码参考,建议在工控论坛搜索时注意:
- 确认TIA Portal版本兼容性
- 检查IO配置是否匹配
- 先用PLCSIM Advanced仿真测试
- 关键参数务必重新校准
