1. 项目概述
在工业自动化控制领域,PLC(可编程逻辑控制器)与上位机软件的配合使用是实现复杂控制系统的经典方案。这个项目展示了如何利用西门子S7-200 PLC与组态王软件构建一个带倒计时显示的智能交通灯控制系统。相比传统PLC控制的交通灯,增加倒计时功能不仅提升了系统的实用性,也为后续的车流量统计、智能调度等扩展功能奠定了基础。
我在实际工业项目中多次实施过类似方案,发现这种组合特别适合中小型交通控制场景。S7-200 PLC虽然属于西门子的入门级产品,但其稳定性和性价比在简单控制场景中表现优异;而组态王作为国产组态软件的代表,在人机交互和数据显示方面有着明显的优势。
2. 系统架构设计
2.1 硬件组成
核心硬件采用西门子S7-200 CPU224XP,这是该系列中带模拟量输入输出和高速计数功能的型号。具体配置如下:
- 数字量输入:用于接收急停按钮、手动控制等信号
- 数字量输出:驱动红绿灯信号灯(每组灯需2个输出点)
- 通信端口:通过PPI电缆与上位机连接
- 扩展模块:如需控制更多路口,可增加EM223数字量模块
实际项目中常犯的错误是输出点负载能力估算不足。交通信号灯虽然功率不大,但长期运行需要考虑接触器或中间继电器的配合使用。
2.2 软件环境
- 编程软件:STEP 7-Micro/WIN V4.0 SP9
- 组态软件:组态王6.55版本
- 通信驱动:PC/PPI电缆驱动或CP5611卡(推荐)
2.3 控制逻辑设计
交通灯控制采用经典的时序控制方式,通过PLC内部的定时器实现各相位切换。典型四相位控制的时间分配如下:
| 相位 | 南北红灯 | 南北绿灯 | 东西红灯 | 东西绿灯 | 持续时间(s) |
|---|---|---|---|---|---|
| 1 | 亮 | 灭 | 灭 | 亮 | 30 |
| 2 | 亮 | 灭 | 亮 | 灭 | 5 |
| 3 | 灭 | 亮 | 亮 | 灭 | 30 |
| 4 | 亮 | 亮 | 亮 | 灭 | 5 |
3. PLC程序设计详解
3.1 定时器网络设计
在S7-200中采用TON定时器构建时间基准,典型程序段如下:
code复制NETWORK 1
LD SM0.0 // 常ON信号
TON T37, +300 // 相位1定时30秒
NETWORK 2
LD T37 // 定时器T37完成
TON T38, +50 // 相位2定时5秒
NETWORK 3
LD T38
TON T39, +300 // 相位3定时30秒
NETWORK 4
LD T39
TON T40, +50 // 相位4定时5秒
3.2 输出控制逻辑
通过定时器状态组合控制输出点:
code复制NETWORK 5
LD T37 // 相位1激活
AN T38
= Q0.0 // 东西绿灯
NETWORK 6
LD T39 // 相位3激活
AN T40
= Q0.1 // 南北绿灯
NETWORK 7
LD T37
O T38
O T40
= Q0.2 // 南北红灯
NETWORK 8
LD T39
O T40
= Q0.3 // 东西红灯
3.3 倒计时计算
倒计时值通过简单数学运算实现:
code复制NETWORK 9
LD SM0.0
MOVW 30, VW100 // 相位1初始值
NETWORK 10
LD T37
EU // 上升沿检测
MOVW 5, VW100 // 相位2初始值
NETWORK 11
LD T38
EU
MOVW 30, VW100 // 相位3初始值
NETWORK 12
LD T39
EU
MOVW 5, VW100 // 相位4初始值
NETWORK 13
LD SM0.5 // 1Hz时钟脉冲
EU
DECW VW100 // 每秒减1
4. 组态王界面开发
4.1 通信配置
- 在组态王中新建设备,选择"PLC"→"西门子"→"S7-200系列(PPI)"
- 设置通信参数:波特率9.6kbps,地址2(PLC默认地址)
- 测试通信状态,确保数据读取正常
4.2 画面设计要点
- 交通灯元素:使用组态王内置的指示灯控件,绑定对应PLC输出点
- 倒计时显示:添加"数值显示"控件,变量链接VW100
- 状态指示:添加文字标签显示当前相位
- 参数设置:添加输入框用于修改各相位时间
4.3 数据关联技巧
在组态王变量管理中定义与PLC的对应关系:
| 变量名 | 寄存器地址 | 数据类型 | 备注 |
|---|---|---|---|
| PhaseTime | VW100 | INT | 当前相位剩余时间 |
| NS_Red | Q0.2 | BOOL | 南北红灯状态 |
| NS_Green | Q0.1 | BOOL | 南北绿灯状态 |
| EW_Red | Q0.3 | BOOL | 东西红灯状态 |
| EW_Green | Q0.0 | BOOL | 东西绿灯状态 |
5. 系统调试与优化
5.1 常见问题排查
-
通信失败检查清单:
- 确认PC/PPI电缆拨码开关设置正确(通常设为0)
- 检查PLC通信口波特率设置(需与组态王一致)
- 确保没有其他软件占用通信端口
-
倒计时显示异常:
- 检查VW100在PLC中的值是否正确变化
- 确认组态王变量类型设置为有符号16位整数
- 验证时钟脉冲SM0.5是否正常工作
5.2 性能优化建议
- 增加看门狗复位逻辑,防止程序跑飞
- 对输出点增加互锁保护,避免误动作
- 添加手动控制模式,便于维护调试
- 使用S7-200的时钟指令实现时段控制(如夜间模式)
6. 扩展功能实现
6.1 多路口协调控制
通过增加PLC的I/O模块,可以扩展为十字路口的完整控制:
- 增加行人通行按钮及指示灯
- 添加左转专用信号相位
- 实现感应控制(通过车辆检测器)
6.2 数据记录与分析
利用组态王的历史数据记录功能:
- 记录各相位实际通行时间
- 统计车流量变化趋势
- 生成运行报表
6.3 远程监控实现
- 通过组态王的Web发布功能实现浏览器访问
- 添加短信报警功能(需GSM模块)
- 与SCADA系统集成
在实际项目中,这种基础控制系统往往需要根据现场需求进行定制。我曾在一个工业园区项目中,基于这个框架增加了应急车辆优先通行功能,通过RFID识别特种车辆并自动调整信号相位。PLC的稳定性和组态王的灵活性在这种应用场景中得到了充分体现。
