1. 项目背景与系统架构
这套邮件分拣系统是我为本地物流中心设计的自动化升级方案,核心需求是在有限预算下实现每小时3600件(60件/分钟)的分拣能力。经过多方案对比,最终选择了组态王6.55+西门子S7-200 PLC的组合,主要原因有三:
- 硬件成本可控(整套系统含传感器约2.5万元)
- 开发周期短(从设计到调试完成仅3周)
- 维护门槛低(厂内电工可独立处理大部分故障)
系统架构分为三个层级:
- 传感层:8个欧姆龙EE-SX671光电传感器组成包裹检测阵列
- 控制层:S7-200 PLC(CPU 224XP)负责实时逻辑处理
- 监控层:组态王6.55实现人机交互和数据记录
关键设计原则:在确保可靠性的前提下,尽可能利用现有设备。比如继续使用客户原有的传送带电机,仅加装变频器实现调速功能。
2. PLC程序设计详解
2.1 核心控制逻辑实现
分拣系统的核心是包裹计数与分流控制,下面这段改进后的程序相比初版增加了防抖处理:
stl复制NETWORK 1 // 光电信号滤波
LD I0.0
TON T37, 50 // 50ms防抖延时
LD T37
= M0.0 // 有效检测信号
NETWORK 2 // 动态阈值比较
LD SM0.0
MOVW VW100, VW200
AENO
CMP= VW200, 10
S Q0.0, 1 // 触发分流机构
改进点说明:
- 增加TON定时器消除传感器抖动(实测可减少5%误触发)
- 使用AENO指令确保MOVW执行成功后再比较
- 分流信号采用置位指令(S)而非直接输出,避免扫描周期影响
2.2 通信保活机制
针对早期版本通信不稳定的问题,设计了双保险机制:
- PLC端心跳包:
stl复制LD SM0.5 // 0.5Hz时钟脉冲
EU // 上升沿检测
INCW VW500 // 心跳计数器
- 组态王端检测脚本:
vb复制Function CheckHeartbeat()
Static OldValue As Integer
NewValue = ReadDevice("PLC", "VW500")
If NewValue = OldValue Then
ReconnectDevice "PLC"
WriteLog "通信异常已恢复", 2
End If
OldValue = NewValue
End Function
实测这套方案可将通信中断恢复时间从原来的30秒缩短到5秒内。
3. 组态王高级功能开发
3.1 动态分拣策略实现
通过时间策略和负载检测自动调整分拣参数:
vb复制Sub OnTimer()
' 时段策略
If Hour(Now()) >= 8 And Hour(Now()) < 20 Then
WriteDevice "PLC", "VW110", 1 ' 日间模式
WriteDevice "PLC", "VD200", 1000 ' 传送带速度1000rpm
Else
WriteDevice "PLC", "VW110", 2 ' 夜间模式
WriteDevice "PLC", "VD200", 700 ' 降速至700rpm
End If
' 动态负载调整
CurrentCount = ReadDevice("PLC", "VW202")
If CurrentCount > 15 Then
WriteDevice "PLC", "VD200", ReadDevice("PLC","VD200")+50
End If
End Sub
3.2 异常处理看板设计
在组态王界面集成了三维可视化监控:
- 红色闪烁:传感器故障(持续2秒无信号变化)
- 黄色预警:分流机构动作超时
- 绿色流水线:正常运行状态
通过ODBC连接Access数据库记录所有异常事件,支持按时间/类型筛选查询。
4. 关键硬件配置与IO规划
4.1 数字量IO分配表
| PLC地址 | 设备类型 | 型号 | 安装位置 | 备注 |
|---|---|---|---|---|
| I0.0 | 光电传感器 | EE-SX671 | 入口处 | 检测距离10cm |
| I0.1 | 光电传感器 | EE-SX671 | 第一段皮带 | 间距30cm |
| ... | ... | ... | ... | ... |
| I1.3 | 旋钮开关 | LA38 | 控制柜 | 手动/自动切换 |
| Q0.0 | 继电器 | MY4N | 推杆电机 | 需加续流二极管 |
| Q0.5 | 蜂鸣器 | AD16 | 分拣台 | 声压级80dB |
4.2 模拟量信号处理
使用EM231模块采集传送带编码器信号:
- 接线方式:差分输入(A+、A-、B+、B-)
- 参数设置:4倍频计数模式
- 滤波常数:设置为3(对应20ms滤波时间)
速度计算公式:
code复制实际转速(rpm) = (采样周期内脉冲数 × 60) / (编码器线数 × 采样时间(s))
5. 调试经验与故障排除
5.1 典型问题处理记录
-
问题现象:夜间模式频繁误触发
- 排查过程:
- 检查光电传感器灵敏度(正常)
- 测量环境照度(发现月光直射检测区域)
- 查看PLC输入指示灯(I0.2间歇闪烁)
- 解决方案:
- 给传感器加装遮光罩
- 在程序中增加滤波时间至100ms
- 排查过程:
-
问题现象:通信时断时续
- 排查过程:
- 更换通信电缆(问题依旧)
2 测量端口电压(发现PLC侧RS485终端电阻未启用)
- 更换通信电缆(问题依旧)
- 解决方案:
- 启用S7-200的终端电阻跳线
- 在组态王中设置通信超时为300ms
- 排查过程:
5.2 机械结构优化建议
通过三个月运行数据统计,给出以下改进方案:
-
推杆机构:
- 原行程:50mm → 建议改为80mm
- 原动作时间:0.5s → 优化至0.3s
- 改进方法:更换为SMC CJ2系列气缸
-
传送带:
- 原皮带:PVC平面带 → 建议改用花纹皮带
- 驱动轮:增加聚氨酯包胶层
6. 系统性能实测数据
经过72小时连续运行测试,关键指标如下:
| 指标项 | 设计要求 | 实测结果 |
|---|---|---|
| 分拣速度 | 60件/分钟 | 63件/分钟 |
| 误分率 | ≤0.5% | 0.32% |
| 响应延迟 | ≤200ms | 平均185ms |
| 通信恢复 | ≤10s | 平均4.7s |
| 功耗 | ≤3kW | 日间2.8kW/夜间1.9kW |
特别说明:夜间模式通过以下措施实现节能:
- 传送带速度降低30%
- 关闭非必要区域的照明
- 延长待机时的休眠间隔
这套系统目前已在客户现场稳定运行超过2000小时,期间仅更换过1个光电传感器(因粉尘污染导致灵敏度下降)。实践证明,即便使用"过时"的组态王6.55和S7-200 PLC,只要设计合理,依然可以构建出满足现代物流需求的可靠分拣系统。