1. 项目背景与需求分析
去年接手了一条电子开关装配线的自动化改造项目,产线需要完成物料传送、精确定位、装配检测等工序。作为主控设备,我们选用了西门子S7-200 SMART PLC搭配组态王6.55监控系统。这个组合在中小型产线中很常见——PLC负责实时控制,组态王做人机交互,性价比和稳定性都经过市场验证。
核心控制需求可以分解为三个层次:
- 基础动作控制:传送带启停、气缸升降等执行机构驱动
- 安全保护:急停触发、设备互锁等安全逻辑
- 过程监控:运行状态显示、故障报警等可视化功能
特别说明下选型考量:S7-200系列虽然已停产,但市面上存量大、资料多,对于这种不需要复杂运动控制的场合完全够用。新版S7-200 SMART在编程软件和通讯功能上有升级,但基础指令集保持兼容,老程序员可以无缝切换。
2. 电气控制系统设计
2.1 硬件配置清单
先看下主要硬件组成:
- 控制器:S7-200 SMART CPU SR20(12DI/8DO)
- 人机界面:组态王6.55运行版(授权点数128)
- 传感器:欧姆龙E3Z-T61光电开关(检测距离0.1-3m可调)
- 执行器:亚德客气缸CDQ2B50-50D(带磁性开关)
- 变频器:三菱FR-D720(控制传送带电机)
这里有个选型细节:光电开关选用漫反射型而非对射型,因为产线上物料尺寸不一,对射式安装调试更麻烦。虽然漫反射型受物体表面反光率影响大,但通过调节检测距离和安装角度,在成本和维护性上更有优势。
2.2 IO分配实战技巧
IO分配表看似简单,实则暗藏玄机。分享几个实用原则:
-
安全回路独立原则:急停、安全门等涉及人身安全的信号,必须使用硬件回路直接切断动力电源,不能仅靠PLC程序处理。我们的接线方案是:
- 急停按钮常闭触点串联在控制回路中
- PLC程序里再做一次软件急停判断
- 变频器启用STO安全转矩关断功能
-
地址预留技巧:
markdown复制| 类型 | 地址范围 | 用途 | 预留策略 |
|------|-------------|----------------|-------------------|
| DI | I0.0-I0.7 | 关键操作信号 | 每8点留1个备用 |
| DI | I1.0-I1.3 | 传感器信号 | 集中预留I1.4-I1.7 |
| DO | Q0.0-Q0.3 | 重要执行机构 | 不预留 |
| DO | Q0.4-Q0.7 | 次要输出 | 全预留 |
- 信号抗干扰处理:
- 电磁阀线圈必须并联续流二极管(如1N4007)
- 长距离传感器信号采用屏蔽双绞线,屏蔽层单端接地
- 模拟量信号线避免与动力线平行走线
特别注意:曾经有个项目因电磁阀未加保护电路,反电动势导致PLC输出点损坏率高达30%。后来在每组电磁阀上都加了RC吸收回路(100Ω+0.1μF),再没出现过类似问题。
3. PLC程序设计详解
3.1 程序架构设计
采用模块化编程结构,主要分为:
- OB1:主循环组织块
- SBR0:初始化子程序
- SBR1:传送带控制
- SBR2:气缸控制
- SBR3:报警处理
关键技巧:在OB1开头先处理急停和安全逻辑,确保无论后续程序如何复杂,安全功能始终优先响应。典型代码如下:
code复制Network1 // 急停处理
LD SM0.0 // 始终导通
AN I0.1 // 急停按钮(常闭)
= M0.0 // 安全使能标志
Network2 // 安全联锁
LD M0.0
A I0.2 // 防护门状态
= M0.1 // 系统允许运行
3.2 防抖算法优化
原始方案使用单个定时器防抖,但在实际调试中发现不同工位的抖动特性不同。最终改进为三级滤波方案:
- 硬件滤波:在传感器信号输入端并联104电容
- 软件初级滤波:10ms定时器消除触点抖动
- 软件高级滤波:移动窗口计数法,连续5次检测到信号才判定为有效
梯形图实现:
code复制Network3 // 光电信号滤波
LD I0.2 // 原始信号
TON T37, 10 // 10ms防抖
LD T37
MOVB 0, VB100 // 清空计数器
Network4
LD T37
EU // 上升沿触发
INCB VB100 // 计数器+1
Network5
LDW>= VB100, 5
= M1.0 // 有效信号输出
3.3 气缸控制逻辑
气缸动作需要处理两个关键问题:
- 动作超时保护
- 双线圈问题避免
解决方案:
code复制Network6 // 气缸伸出控制
LD M1.1 // 允许伸出条件
A M1.2 // 未超时标志
AN Q0.1 // 互锁:确保缩回线圈未得电
TON T38, 200 // 2秒超时计时
= Q0.0 // 伸出电磁阀
Network7 // 超时处理
LD T38
= M1.3 // 超时报警标志
R Q0.0, 1 // 强制复位电磁阀
4. 组态王监控系统开发
4.1 画面设计规范
遵循工业HMI设计三原则:
- 关键信息突出:用红黄绿三色区分状态
- 操作便捷:常用按钮放在触手可及位置
- 报警分级:普通报警黄色闪烁,紧急报警红色常亮+声音
动态元素实现技巧:
- 电机旋转动画:关联PLC的Q0.0寄存器,设置Bitmap动画属性
- 气缸伸缩动画:使用Slider控件,绑定PLC的VD100数据块(存储气缸位置)
4.2 报警功能实现
改进后的报警方案:
-
PLC侧预处理:
- 使用S7-200的定时中断(OB35)每100ms检测一次报警条件
- 报警状态存入VB200开始的报警寄存器区
-
组态王侧配置:
vbscript复制// 数据改变脚本
Select Case \\本站点\报警代码
Case 1: AlarmSet("E001","传送带运行超时")
Case 2: AlarmSet("E002","气缸未到位")
End Select
性能对比:
| 方案 | CPU占用率 | 响应延迟 | 稳定性 |
|---|---|---|---|
| 纯脚本方案 | 25% | 1-2秒 | 差 |
| PLC预处理方案 | <5% | <100ms | 优 |
4.3 数据记录优化
原始方案直接用组态王的历史数据记录,发现以下问题:
- 数据文件增长过快(1天产生500MB数据)
- 查询速度随数据量增加明显下降
改进措施:
- 使用PLC的RAM区做数据缓存(VB300-VB500)
- 组态王每小时将数据转存到SQLite数据库
- 增加数据压缩功能(去除连续重复值)
5. 系统调试与问题排查
5.1 典型故障案例
-
案例:传送带偶尔无故停止
- 现象:正常运行中突然停止,无报警信息
- 排查:
- 检查程序逻辑未发现异常
- 用万用表监测控制回路电压,发现瞬间跌落
- 最终发现是24V电源功率不足(额定5A,实测峰值7A)
- 解决:更换10A开关电源并增加稳压电容
-
案例:组态王画面卡顿
- 现象:操作界面响应延迟,有时卡死
- 排查:
- 任务管理器显示内存占用持续增长
- 发现未释放的GDI对象累计超过5000个
- 定位到自定义控件存在资源泄漏
- 解决:重写控件代码,增加Dispose方法
5.2 接地问题专题
工业现场常见接地问题及解决方案:
| 问题现象 | 可能原因 | 解决措施 |
|---|---|---|
| 模拟量信号波动 | 地环路干扰 | 改用隔离变送器 |
| 通讯端口损坏 | 静电积累 | 增加防雷保护器 |
| 触摸屏误触发 | 接地不良引入高频噪声 | 单独敷设接地铜排 |
| PLC输入点误动作 | 动力线与信号线并行 | 重新布线,保持30cm以上间距 |
实测数据:在同一个车间内,不同设备的接地端子之间可能存在0.5-2V的电位差。我们最终采用截面积16mm²的铜缆做等电位连接,将电位差控制在50mV以内。
6. 系统扩展与升级
6.1 ModbusTCP通讯实现
老系统升级通讯功能的要点:
-
硬件改造:
- 增加CP243-1以太网模块
- 交换机选用工业级环网设备(如赫斯曼MICE)
-
软件配置:
- PLC侧设置IP地址和保持寄存器区
- 组态王添加ModbusTCP驱动
- 测试通讯时先用Modscan32工具验证基础通讯
关键参数设置:
ini复制[PLC_Network]
IP=192.168.1.10
Subnet=255.255.255.0
Port=502
Timeout=3000
6.2 数据对接方案
与MES系统的三种对接方式对比:
| 方式 | 实施难度 | 实时性 | 成本 | 适用场景 |
|---|---|---|---|---|
| OPC DA | 低 | 秒级 | 低 | 小型系统 |
| 数据库中间表 | 中 | 分钟级 | 中 | 已有IT基础设施 |
| WebAPI | 高 | 秒级 | 高 | 云平台对接 |
我们最终选择OPC+中间数据库的混合方案:
- 实时数据通过OPC上传
- 历史数据和报表写入SQL Server
- 每天凌晨同步到MES主数据库
7. 维护经验与建议
7.1 日常维护要点
建立预防性维护计划:
- 每月:
- 检查接线端子紧固情况
- 备份PLC程序和组态王工程
- 每季度:
- 清洁PLC散热风扇
- 测试UPS电池续航
- 每年:
- 更换老化电缆
- 校准传感器
7.2 故障快速定位法
总结的"三看"排障流程:
- 看指示灯:
- PLC RUN/STOP状态
- 输入输出点LED指示
- 看数据流:
- 监控关键寄存器值
- 检查通讯连接状态
- 看趋势图:
- 分析模拟量变化曲线
- 对比正常/异常时的波形差异
这套系统稳定运行两年多,最大的体会是:前期把硬件选型、程序架构、接地处理这些基础工作做扎实,后期维护成本能降低70%以上。最近在给另一条产线做升级,准备尝试用TIA Portal+WinCC方案,到时候再和大家分享新一代控制系统的实战经验。