1. 定长切纸机PLC控制方案概述
在印刷包装行业,定长切纸机是最基础的加工设备之一。它的核心功能是根据预设长度精确裁切卷筒纸或板材,精度通常要求控制在±0.5mm以内。这种设备看似简单,但要实现稳定可靠的自动控制,需要解决送料速度匹配、切割时机计算、安全联锁等一系列工程问题。
我最近拆解了一套基于西门子S7-200 PLC的成熟切纸机控制程序,这套系统已经在多家印刷厂稳定运行多年。作为PLC初学者入门的经典案例,它包含了以下几个典型要素:
- 高速计数器应用(编码器脉冲采集)
- 人机界面交互(触摸屏参数设置)
- 时序逻辑控制(气缸动作序列)
- 故障安全处理(急停、报警机制)
这套方案选用S7-200 SMART CPU SR20作为主控制器,搭配TD400C文本显示器实现基本的人机交互。虽然硬件平台现在看来有些陈旧,但其控制逻辑的设计思路至今仍具有参考价值,特别适合初学者理解PLC在自动化设备中的实际应用模式。
2. 控制系统硬件架构解析
2.1 核心部件选型依据
主控PLC选择西门子S7-200系列主要基于以下考量:
- 经济性:相比S7-300/400系列,S7-200成本更低,满足基础控制需求
- 高速计数能力:内置6路高速计数器(最高30kHz),足以处理普通编码器信号
- 可靠性:工业级设计,适应车间环境中的振动、粉尘等恶劣条件
编码器选用欧姆龙E6B2-CWZ6C增量式旋转编码器,分辨率为500P/R(每转500个脉冲)。通过齿轮组与送料辊轴连接,传动比设计为1:1,即送料辊每转一圈对应100mm进给量,因此脉冲当量计算为:
code复制脉冲当量 = 送料长度/每转脉冲数 = 100mm/500 = 0.2mm/脉冲
这个分辨率完全满足±0.5mm的精度要求。
2.2 I/O分配策略
PLC的I/O点分配体现了实际工程中的典型规划思路:
数字量输入(DI)
- I0.0:编码器A相脉冲输入(连接HC0)
- I0.1:编码器B相脉冲输入(方向判断)
- I0.2:手动模式按钮
- I0.3:自动启动按钮
- I0.4:复位按钮
- I0.5:急停按钮(常闭触点)
数字量输出(DO)
- Q0.0:切刀电磁阀控制
- Q0.1:送料电机接触器
- Q0.2:报警指示灯
- Q0.3:就绪状态灯
模拟量使用
- AIW0:连接气压传感器(0-10Bar对应0-10V)
- 用于监测气动系统压力,当压力低于5Bar时触发报警
3. PLC程序结构深度解析
3.1 程序组织架构
程序采用经典的模块化设计,主要包含以下功能块:
- 主程序(OB1):循环执行的调度中枢
- 初始化子程序(SBR_0):上电参数配置
- 自动模式子程序(SBR_1):核心控制逻辑
- 手动模式子程序(SBR_2):调试维护功能
- 报警处理子程序(SBR_3):故障检测与响应
这种结构划分清晰,各模块职责单一,便于后期维护和功能扩展。特别值得注意的是,所有子程序都通过主程序统一调用,避免了复杂的跳转关系,这对新手理解程序流程非常友好。
3.2 关键代码段详解
初始化子程序(SBR_0)
STL复制LD SM0.1 // 首次扫描标志
MOVW 500, VW100 // 默认切纸长度500mm
MOVB 0, QB0 // 清空所有输出
MOVB 16#FF, SMB37 // 高速计数器0配置:
// 允许计数、正交4x模式
HDEF 0, 0 // 定义HC0为模式0
HSC 0 // 启动高速计数器
这段代码有三个技术要点:
SM0.1是特殊的系统状态位,仅在PLC首次扫描时为ON,确保初始化只执行一次SMB37是高速计数器0的控制字节,16#FF表示启用所有功能HDEF指令将HC0配置为模式0(正交计数,带方向信号)
自动切纸逻辑(SBR_1)
STL复制LD M0.0 // 自动模式使能
AW>= HC0, VW100 // 当前长度>=设定值
EU // 上升沿检测
S Q0.0, 1 // 触发切刀
TON T37, 50 // 保持0.5秒
LD T37
R Q0.0, 1 // 复位切刀
MOVW 0, HC0 // 计数器清零
这里有几个新手容易忽视的细节:
AW>=指令用于32位比较(HC0是32位寄存器)EU(上升沿检测)确保每次条件满足只执行一次切割- 定时器T37的预设值50表示50×10ms=0.5秒,这个时间需要根据气缸实际响应调整
3.3 高速计数器应用技巧
编码器信号处理是定长控制的核心。程序中采用HC0(高速计数器0)来累计编码器脉冲,其工作模式配置为:
- 模式0:正交计数(A/B相90°相位差)
- 4倍频:同时检测A/B相的上升沿和下降沿,提高分辨率
脉冲当量换算公式:
code复制实际长度(mm) = 累计脉冲数 × 脉冲当量(0.2mm)
例如设定切纸长度为500mm时,程序比较的是:
code复制500mm / 0.2mm = 2500个脉冲
调试经验:实际安装时发现机械传动存在约0.3%的误差,通过修改脉冲当量参数为0.1994mm进行补偿。这种微调必须在现场实测后进行。
4. 触摸屏程序设计要点
4.1 人机界面布局设计
TD400C文本显示器虽然只有两行显示,但通过巧妙的页面设计实现了完整的功能交互:
主界面
code复制[1]设定长度:500mm
[2]启动 [3]停止
当前长度: 0mm
参数设置界面
code复制长度设定(100-999):
[▲][500][▼]
[ENT]确认 [ESC]返回
报警界面
code复制!!气压不足!!
请检查气源
[ENT]确认
这种设计充分利用了有限显示区域,操作逻辑符合设备操作人员的习惯。
4.2 变量关联与脚本编写
触摸屏与PLC的数据交换通过变量映射实现:
| 触摸屏元件 | PLC地址 | 功能描述 |
|---|---|---|
| 数值输入框 | VW100 | 切纸长度设定值 |
| 启动按钮 | M0.0 | 自动模式使能信号 |
| 报警文本 | VB200 | 故障代码显示 |
报警提示脚本示例:
STL复制IF VB200 == 1 THEN
Text = "气压不足!"
ELSEIF VB200 == 2 THEN
Text = "送纸超时!"
ENDIF
5. 实战调试经验分享
5.1 机械与电气的协同调整
在调试过程中发现几个典型问题及解决方案:
-
切刀位置偏差
- 现象:实际切纸长度比设定值长3-5mm
- 原因:电磁阀响应延迟导致切刀动作滞后
- 解决:程序中加入5mm提前量补偿
STL复制MOVW VW100, VW110 SUBW 5, VW110 // 提前5mm触发 AW>= HC0, VW110 -
送料打滑
- 现象:长距离送料时累计误差增大
- 原因:送料辊压力不足
- 解决:调整气缸压力至0.4MPa,并在程序中加入定期清零补偿
STL复制LD SM0.5 // 1Hz时钟脉冲 MOVW 0, HC0 // 每小时清零一次
5.2 安全功能实现
急停处理采用分级响应策略:
- 一级响应(立即执行):
- 切断所有输出(Q区)
- 保存当前位置到VD50
- 二级响应(恢复生产时):
- 检查各部件状态
- 可选择继续未完成裁切
STL复制LD I0.5 // 急停按钮 EU MOVD HC0, VD50 // 保存当前位置 R Q区, 16 // 复位所有输出
6. 程序优化建议
对于希望进一步改进的开发者,可以考虑以下增强功能:
-
动态补偿算法
通过记录最近10次切割误差,自动计算补偿值:STL复制MOVW HC0, VW[n] // 记录实际值 SUBW VW100, VW[n] // 计算误差 MOVW VW[n], VW120 // 存入误差队列 -
设备健康监测
- 切刀寿命计数(VW200)
- 气缸动作次数统计(VW202)
- 电机运行时间累计(VD300)
STL复制LD Q0.0 // 切刀动作信号 EU INCW VW200 // 切割次数+1 -
配方功能扩展
增加V区存储多个常用长度预设值,通过触摸屏快速调用:STL复制MOVW VW150, VW100 // 调用配方1 MOVW VW152, VW100 // 调用配方2
这套定长切纸机控制程序虽然简单,但包含了PLC应用的诸多核心要素。对于初学者而言,重点应该理解其设计思路而非简单复制代码。建议按照以下步骤深入学习:
- 使用S7-200仿真软件逐步调试每个功能块
- 尝试修改参数观察系统响应变化
- 增加简单的功能扩展如手动微调模式
- 最后再移植到实际设备验证