1. 项目概述:当PLC遇上红绿灯
交通信号灯控制系统是工业自动化领域最经典的PLC实训项目之一。我十年前第一次接触三菱FX系列PLC时,就是用这个案例练手。看似简单的红绿灯交替闪烁,实际上涵盖了时序控制、状态转换、安全互锁等核心工业控制思想。
这个项目的本质是通过可编程逻辑控制器(PLC)模拟真实十字路口的交通灯控制逻辑。不同于单片机开发需要从底层写代码,PLC采用梯形图编程,更贴近电气工程师的思维习惯。在实际教学中,它既能演示PLC的基础功能,又能延伸出复杂的控制策略,比如夜间模式、紧急车辆优先、行人过街联动等扩展功能。
2. 系统需求分析
2.1 基本控制要求
一个标准的十字路口交通灯系统需要满足以下基本逻辑:
- 东西方向与南北方向信号灯交替亮起
- 每个周期包含绿灯、黄灯、红灯三种状态
- 绿灯时长通常为30秒,黄灯3秒作为缓冲
- 两个方向的信号灯必须严格互锁,防止同时出现绿灯
2.2 硬件配置方案
根据路口规模不同,PLC的选型也有差异:
- 小型实训项目:三菱FX3U-16MR(16点继电器输出)
- 真实路口控制:西门子S7-1200系列(需扩展数字量模块)
- 信号灯负载:LED信号灯组(单路功耗约10W)
- 紧急按钮:常开触点接入PLC输入点
实际工程中,信号灯必须通过中间继电器驱动,PLC输出端口不能直接带大功率负载。我曾见过学员烧毁输出端口的案例,就是因为省略了继电器隔离。
3. 梯形图程序设计
3.1 基础时序控制逻辑
采用顺序控制设计法(SFC)最直观。以下是核心程序段:
ladder复制|--[M8002]--[MOV K300 D0]--| // 上电初始化,设置绿灯时长30秒
|--[X000]---[RST C0]-------| // 启动按钮复位计时器
|--[T0 K300]--[SET Y000]---| // 东西绿灯亮(Y0),计时30秒
|--[T0]-----[RST Y000]-----|
| [SET Y001]-----| // 东西黄灯亮(Y1)
|--[T1 K30]--[RST Y001]----| // 黄灯3秒
| [SET Y002]-----| // 东西红灯亮(Y2)
|--[T2 K300]--[SET Y003]---| // 南北绿灯亮(Y3)
3.2 状态互锁实现
安全互锁是交通控制的核心,必须确保:
- 使用常闭触点实现硬件级互锁
ladder复制|--[Y000]--[NC]--[Y003线圈]--| // Y0接通时禁止Y3输出
- 在程序中添加软件互锁
ladder复制|--[Y000]--[RST Y003]--------|
|--[Y003]--[RST Y000]--------|
3.3 时间参数优化技巧
通过数据寄存器实现时长可调:
- 创建HMI界面设置D0-D2寄存器值
- 程序中使用MOV指令动态加载时间参数
ladder复制|--[MOV D0 T0]--------------| // 绿灯时长
|--[MOV D1 T1]--------------| // 黄灯时长
4. 功能扩展实践
4.1 夜间模式实现
增加时间判断指令:
ladder复制|--[CMP K22 D10]--[<=]--[M0]--| // 22点后激活夜间模式
|--[M0]-----[ALT Y004]--------| // 黄灯闪烁输出
4.2 紧急车辆优先
采用中断处理方式:
- 将紧急按钮接入X10(中断输入)
- 编写中断子程序强制切换绿灯方向
ladder复制|--[I101]--[SET Y003]-------| // 强制南北绿灯
| [RST Y000]--------|
5. 调试与故障排查
5.1 常见问题速查表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 信号灯全灭 | PLC未运行 | 检查RUN指示灯,重新下载程序 |
| 单方向常亮 | 互锁失效 | 检查互锁触点连接,确认无硬件短路 |
| 时间错乱 | 定时器被复位 | 排查是否有多个T0线圈输出 |
5.2 在线监控技巧
- 使用GX Works2的监控功能观察定时器当前值
- 强制ON/OFF测试输出点前,务必确认不会引发危险状态
- 记录信号灯切换时的扫描周期,优化程序结构
6. 工程实践要点
- 电磁兼容处理:信号灯线缆需与PLC通信线分开布线,避免干扰
- 接地规范:PLC接地电阻应小于4Ω,信号灯金属外壳需重复接地
- 维护模式:在控制柜增加"手动/自动"切换开关,方便检修
- 备用电源:配置UPS保证停电时黄灯能持续闪烁警示
这个项目最让我印象深刻的是时序控制的精确性要求。有次现场调试时发现黄灯时长飘移,最后发现是扫描周期影响定时精度。后来改用中断+高速定时器才解决问题。建议在重要交通节点采用S7-1500等支持精确时间戳的高性能PLC。