ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PLC智能交通灯控制系统:基于光电传感器的自适应绿灯时长设计

PLC智能交通灯控制系统:基于光电传感器的自适应绿灯时长设计

简介:城市交通拥堵日益严重,如何利用PLC实现智能交通灯自适应控制,已成为自动化与交通工程领域的热点。《PLC智能交通灯控制系统设计》docx文档围绕该课题展开,面向电气自动化、机电一体化专业学生及PLC初学者,系统梳理了课题来源、国内外技术现状、系统总体方案以及软硬件设计思路。文档提出了一种基于传感器与PLC的车辆滞留数检测方法,通过比较南北与东西方向的滞留量差值,动态调整直行、左转及红灯时长,从而减少空等、提升路口通行效率;同时还对比了传统固定配时控制与自适应控制的优劣,并介绍了智能交通系统(ITS)的发展背景。整套资料共1个文件,为docx格式,压缩包大小约528KB,内容结构清晰,包含绪论、控制原理、检测器布置、参数调整策略等完整章节。已有2150人学习下载,适合用于课程设计、毕业设计参考或PLC应用开发入门。

1. PLC 智能交通灯控制系统:从固定时序到传感器自适应的落地设计

做过城市路口信号方案的人大概都有同感:固定时序的交通灯是最省事但也最容易被骂的。绿灯方向空无一车、红灯方向排队百米的场景,几乎每个早晚高峰都在上演。这份 PLC 智能交通灯控制系统设计资料,解决的正是这个问题。它没有去碰视频识别、云端调度那套重方案,而是用光电传感器检测车辆进入和驶出路口的脉冲数,算出各方向滞留车辆数,再让 PLC 根据南北与东西的滞留差动态调整绿灯时长。整套思路对自动化、电气工程专业的课程设计来说足够完整,对现场工程师做小型路口改造也有直接参考价值,从检测器布置、I/O 分配、选型到梯形图和语句表一应俱全。

2. 滞留数算法与检测器布置:Z1-Z2 为什么比简单计数更可靠

2.1 四检测器差分计数原理

资料里给出了一种很有意思的车辆滞留数计算方法,不是直接数等红灯的车,而是用进出口脉冲差去推。以南北方向为例,路口的四个方向各布置两组光电检测器:一组在入口侧,一组在出口侧。车辆进入十字路口前先经过检测器 1 和 3,PLC 收到两个脉冲,记作进入总量 Y;车辆继续往前驶出路口时经过检测器 2 和 4,又产生两个脉冲,记作驶出总量 X。那么南北方向的滞留数 Z1 = Y - X。

这个思路的精妙之处在于,它把「数路口停了多少车」转化为「数一段时间内进多少、出多少」,从而绕开了对静止车辆的识别难题。光电传感器检测的是动态通过的车辆,脉冲天然带时序信息,PLC 只需要做加减法,不需要处理图像或测距。

东西方向同理,用另一组检测器得到滞留量 Z2。系统每个周期在绿灯亮起之前,都会重新计算一次 Z1 和 Z2,然后根据两者的差值决定本周期绿灯要不要加时。

// 滞留数计算与方向繁忙判定逻辑(结构化文本风格示意) // 检测器脉冲累计:每来一个脉冲,对应计数器 +1 C1 := C1 + 1; // 南北入口检测器1,车辆进入 C3 := C3 + 1; // 南北入口检测器3,车辆进入 Y := C1 + C3; // 南北进入总量 C2 := C2 + 1; // 南北出口检测器2,车辆驶出 C4 := C4 + 1; // 南北出口检测器4,车辆驶出 X := C2 + C4; // 南北驶出总量 Z1 := Y - X; // 南北向滞留数 Z2 := 东西同理; // 由另一组检测器得到 IF (Z1 - Z2) > 20 THEN // 南北繁忙:南北直行绿灯 +5s,南北左转绿灯 +5s,东西红灯 +10s ELSIF (Z1 - Z2) < -20 THEN // 东西繁忙:东西直行绿灯 +5s,东西左转绿灯 +5s,南北红灯 +10s ELSE // 流量均衡:按正常时序运行 END_IF

这段逻辑的要点在于 Y 和 X 必须在一个红绿灯周期内同步清零重新计数,否则滞留数会无限累加。我一般在每个周期绿灯点亮前用 PLC 的定时器触发一次计数复位,保证 Z1 和 Z2 反映的是「即将到来的这个绿灯周期」的排队状态,而不是从开机到现在的累计值。另一点要注意的是阈值 20 这个数字,它是车辆数,不是时间,整定依据是路口车道数和平均车长,不是拍脑袋定的。

2.2 Z1-Z2 判定表与绿灯时长调整

资料给出了非常明确的调整规则,按差值分成三档,我整理成参数表方便复现时对照:

条件判断结果调整动作
Z1 - Z2 > 20南北繁忙,东西一般南北直行绿灯加 5s,南北左转绿灯加 5s,东西红灯加 10s
Z1 - Z2 < -20东西繁忙,南北一般东西直行绿灯加 5s,东西左转绿灯加 5s,南北红灯加 10s
-20 ≤ Z1 - Z2 ≤ 20双向流量均衡各方向绿灯时长保持默认值

注意红灯加时是绿灯加时的两倍关系。直行和左转各加 5s,意味着该方向多放行了 10s 的车流,而另一个方向的红灯要同步延长 10s,这样才能保证两个方向的周期起点始终对齐。如果只加绿灯不加红灯,运行几个周期后南北和东西的相位关系就会错乱,这是做自适应控制时最容易忽略的连带参数。

实际做参数整定时,如果路口车道少、单车道通行能力有限,这 5s 可以改成 3s;如果路口排队经常溢出到上游,那阈值 20 就要调小。资料里默认的 20 和 5 是通用基准值,现场以「绿灯末期排队车辆能清空」为调整目标。

2.3 为什么用差值而不是单向流量

如果只看南北方向的滞留量 Z1 来决定南北绿灯时长,会有一个问题:早晚高峰时所有方向都繁忙,Z1 大、Z2 也大,每个方向都要求加时,系统会无所适从。用差值 Z1 - Z2 做判断,本质上是比较两个方向的拥挤程度,把绿灯时间向更拥堵的一侧倾斜。当地两个方向都忙时差值小,系统保持默认时序,至少不会因为反复调整造成周期抖动。

这个设计思路和交通工程里的「绿信比分配」是同一个逻辑,只是用 PLC 的算术指令把它落到现场了。差值判定的另一个好处是对检测器误差不敏感:如果某个检测器因为安装松动导致计数偏差,只要南北和东西的偏差方向一致,差值仍然可信。这一点在实际调试中非常实用,也是我认为这份方案比单纯依赖某个方向绝对车流量更稳的原因。

3. 硬件选型与 I/O 分配:光电传感器与 FX2-32MR 的匹配

3.1 传感器选型:为什么光电检测器最适合这个场景

车辆检测器的可选类型很多,压力检测器要埋路基,破坏路面且维护困难;磁感应式(环形线圈)精度高但施工要切割路面,成本不低;超声波和雷达检测器对环境适应性好但单价偏高,调试复杂。资料里最终选了光电传感器,理由是三点:高准确率、低成本、高可靠性。

光电开关的工作原理是利用被检测物对光束的遮挡或反射,由同步回路选通电路来检测物体有无。它不限于检测金属,凡是能反射光线的物体都能被检测到,这就意味着对车型没有要求,小轿车、公交车、电动车都能触发脉冲。安装时发射器和接收器分别装在路面两侧或单侧反射式安装,车辆经过时遮挡光束,接收器输出一个开关信号,PLC 通过这个信号的电平跳变来计数。

从工程角度看,光电传感器还有一个隐性优势:响应速度快,毫秒级输出,不会漏掉连续通行的车辆。这一点在高峰期间断性排队通过时尤其重要。我一般会在安装时把传感器略微朝来车方向倾斜 10 到 15 度,减少相邻车道车辆误触发的概率。

3.2 输入输出点数估算与 I/O 分配表

资料的 I/O 分配表非常完整,这是整份文档里含金量最高的部分之一。输入侧有启动按钮、停止按钮、两个自动开关(分别对应南北繁忙和东西繁忙的信号)、两个强通开关(东西强通和南北强通),共 6 个输入点。输出侧按灯色和方向拆分,共 14 个输出点。

输入信号输入端子输出设备输出端子
启动按钮 SB1X0南北红灯Y0
停止按钮 SB2X1南北绿灯Y1
自动开关 SB3X2南北黄灯Y2
自动开关 SB4X3南北左转红灯Y3
东西强通开关 SB5X4南北左转绿灯Y4
南北强通开关 SB6X5南北左转黄灯Y5
东西红灯Y6
东西绿灯Y7
东西黄灯Y10
东西左转红灯Y11
东西左转绿灯Y12
东西左转黄灯Y13
报警灯Y14

注意输出端子的编号跳过了 Y8 和 Y9,直接用了 Y10 到 Y14,这是三菱 FX 系列的实际编址规则,Y7 之后是 Y10,不是 Y8。照着 I/O 表接线时别按十进制连续编号往端子排上对,否则会把灯接错位。点数估算上,输入按 6 点再加 2 个备用点共 8 点,输出按 13 点加 2 个备用点共 15 点,为后续加功能留了余量,这种做法在课程设计和实际项目中都值得沿用。

3.3 主机选型与硬件接线要点

资料选用了 FX2-32MR 机型,16 个输入点和 16 个输出点,输入输出余量刚好覆盖上述 I/O 表。该机型基本指令执行速度 0.48μs/步,程序存储器容量可扩展至 8K 步,循环扫描方式。对交通灯这种逻辑密集型程序,扫描周期的实时性不是瓶颈,这套配置是完全够用的。

接线时需要注意光电传感器的输出信号类型。NPN 常开型传感器输出低电平有效,要接 PLC 输入端的公共端;PNP 型则相反。选型时最好和 PLC 输入端统一用漏型接法(NPN),避免混用导致信号电平不匹配。另一个要点是,检测器脉冲如果频率较高或者现场干扰较强,建议把传感器信号接入 PLC 的高速计数器输入端,而不是普通输入点,这样计数不会丢脉冲。资料里没有明确指定高速计数器通道,但这是合格工程师在现场通常会做的调整,因为普通输入点靠扫描周期采样,脉冲宽度小于一个扫描周期就可能漏计。

4. GX Developer 编程:时序拆解、梯形图结构与参数设定

4.1 正常时序拆解:75 秒周期是怎么排出来的

资料第 2 章给出了完整的正常控制时序,这是整套程序的时间基准。理解这个时序是读懂后续梯形图和语句表的前提。我按时间顺序把它拆开:

时间段南北方向东西方向
0~20s南北直行绿灯(20s)东西直行红灯(等待)
20~23s南北直行绿灯闪烁(3s)东西直行红灯
23~25s南北直行黄灯(2s)东西直行红灯
25~45s南北左转绿灯(20s)东西左转红灯(25s,与南北左转同步启动)
45~48s南北左转绿灯闪烁(3s)东西左转红灯
48~50s南北左转黄灯(2s)东西左转红灯
50~75s南北红灯(含直行和左转)东西直行绿灯(20s + 闪 3s + 黄 2s + 红灯 25s 的变体)

综合来看,一个完整周期约 75 秒。南北方向先放直行再放左转,东西方向与之交替,南北左转绿灯亮起时东西左转红灯保持,等到东西左转放行时南北方向已经进入全红状态。这个时序保证了任意时刻最多只有一个方向的直行和左转同时放行,冲突点只剩下左转车流与对向直行车流交汇,这是标准的四相位控制思路。

4.2 梯形图功能块划分与编程思路

资料用的是 GX Developer 编程软件,支持梯形图、指令表、SFC 等多种编程方式。交通灯程序看着复杂,但拆成功能块后结构非常清晰:

启动停止块负责 SB1 启动后让系统进入运行状态,SB2 停止时所有输出复位。基本时序块是最核心的部分,用定时器链产生 75 秒周期内的各时间节点,每个灯具的输出状态由对应的定时器触点组合驱动。智能调整块在绿灯亮起前根据 Z1-Z2 的值修改定时器预设值,实现绿灯加时。急车强通块优先级别最高,一旦强通开关接通,不管当前处于哪个相位,直接强制目标方向绿灯。互锁报警块监视南北绿灯和东西绿灯的输出状态,一旦同时为 ON 就触发报警并切断输出。

// 基本时序块的核心逻辑示意(以南北直行绿灯为例) // T0 为周期定时器,预设 75s,循环启动 // 南北直行绿灯 = 周期 0~20s 区间 + 智能加时,且与东西直行绿灯互锁 IF T0_运行 AND (T0_当前值 <= 20 + 南北加时) THEN IF NOT 南北绿灯互锁条件 AND NOT 东西绿灯已亮 THEN 南北直行绿灯_Y1 := ON; ELSE 南北直行绿灯_Y1 := OFF; 报警灯_Y14 := ON; END_IF END_IF

互锁不能只靠程序里的软互锁。我一般在输出端还会串一组硬互锁触点,也就是把南北绿灯的常闭触点和东西绿灯的线圈串在同一回路里。这样即使 PLC 程序被干扰改写,硬件层面也不可能两个绿灯同时亮。资料里明确写了「南北绿灯和东西绿灯不能同时亮,如果同时亮则报警并关闭系统」,这就是双保险的体现。

4.3 智能调整与定时器预设值刷新的编程细节

智能调整看起来只是把定时器预设值从 20 改成 25,但实际编程时有个容易翻车的细节:定时器的预设值修改必须在定时器启动之前完成,一旦定时器开始计时,中途改预设值是无效的。资料里对这点的表述是「在绿灯亮之前,PLC 都要依据脉冲的计数判定车流规模,然后调整绿灯时长」,这个顺序是保证调整生效的关键。

实际我用过两种实现方式。第一种是每个周期开始阶段先执行检测器脉冲计数和差值计算,把计算结果存入数据寄存器,然后用 MOV 指令把「20 + 加时量」传送到定时器预设值地址,最后启动定时器。第二种是采用两个定时器接力:基础定时器计时 20s 不变,加时定时器根据繁忙状态决定是否再计 5s。第二种的好处是基础时序完全不受影响,加时失败也不会导致整个周期崩溃,我个人的习惯是方案二优先。

闪烁灯的控制也有讲究,3 秒闪烁不是简单的定时器延时,而是用 PLC 的特殊辅助继电器产生 1Hz 脉冲,让灯具按 0.5 秒亮、0.5 秒灭的频率闪烁。这样闪烁效果稳定,不会因为扫描周期波动出现肉眼可见的忽快忽慢。

5. 调试避坑:检测器脉冲计数、时序搭接与急车强通的常见问题

5.1 计数器漏计导致滞留数虚高

现象:某个方向红灯方向明明排着长队,Z1-Z2 算出来的差值却很小,绿灯没加时,车越堵越多。

原因:光电传感器安装角度不对,车头较高的小型车经过时被检测到,但底盘较低或车尾经过时反射信号弱,脉冲没有正常触发。另一个常见原因是传感器响应时间与 PLC 扫描周期不匹配,脉冲宽度小于一个扫描周期时被漏采。

解决:重新调整传感器俯仰角,让光束对准车身中部而不是车底;同时把计数输入改接到高速计数器通道,确保每个脉冲都被 PLC 锁存。我在现场调试时会带一个小的脉冲发生器做信号源,直接给 PLC 输入端子打脉冲,先验证计数通道本身没问题,再接入传感器信号,这样能快速区分是 PLC 侧还是传感器侧的问题。

5.2 南北绿灯和东西绿灯同时亮

现象:调试时用强制功能置位输出,发现南北绿灯 Y1 和东西绿灯 Y7 可以同时为 ON,报警灯被触发,系统停机。

原因:梯形图里只用了常闭触点做互锁,但强制输出时软件互锁被绕过,或者程序扫描顺序是先输出 Y1 再输出 Y7,中间没有做输出刷新前的最后检查。

解决:把互锁做在输出刷新之前,用 PLC 的中间继电器保存最终输出状态,最后一排梯形图统一从中间继电器到输出端子。这样即使调试时强制了某个输出,只要中间继电器逻辑不允许,最终输出也不会同时接通。这个教训之后,我每次写梯形图最后一排都会刻意和输出点之间加一道「总闸」中间继电器,相当于给输出又上了一道锁。

5.3 智能加时后整个周期越走越乱

现象:南北繁忙时绿灯加 5s,运行几个周期后,东西方向的绿灯和南北方向的绿灯出现重叠,系统报警。

原因:修改定时器预设值时,只改了当前这一路绿灯的定时器,没有同步修改对面红灯的定时器。资料里的规则是「南北绿灯加 5s 的同时东西红灯加 10s」,如果只改了一半,两个方向的相位差就会逐渐累积漂移。

解决:把南北方向的加时量和东西方向的加时量放到同一个数据寄存器组里,每次加时同时对两个方向更新。我在程序里用一个「周期扩展量」寄存器,南北繁忙时它等于 10s,东西繁忙时它等于 -10s,所有红灯和绿灯的定时器预设值都从它派生,这样无论如何调整,两个方向的周期始终同步。

5.4 急车强通后恢复正常时序时相位错位

现象:按下南北强通开关强制南北绿灯,之后断开强通开关,信号灯从强通状态恢复到正常时序,但东西方向绿灯立即亮起,和刚放行完的南北绿灯形成冲突。

原因:强通破坏了定时器链的进度,恢复时定时器还停留在强通前的计数值,或者已经超时溢出,梯形图没有对相位做重新同步。

解决:急车强通功能要设计成「快照恢复」模式。强通接通瞬间,先把当前定时器剩余时间锁存到数据寄存器;强通断开后,定时器从锁存值继续计时,而不是从零重新开始。如果强通时间太长导致锁存值超时,就强制系统复位到周期起点,从南北红灯 50s 开始重新执行。等于是给程序加了一颗后悔药,保证任何时刻退出强通,时序都能接回原轨道。

5.5 绿灯闪烁被误判成绿灯常亮

现象:监控梯形图时发现 3 秒闪烁阶段的输出状态不稳定,用在线监控看触点状态时好时坏,但现场灯组实际没有闪烁。

原因:闪烁控制用了定时器产生的单次脉冲,而不是持续闪烁的方波信号。单次脉冲只在定时器到点的瞬间输出一个扫描周期宽度的 ON 信号,肉眼根本看不到灯闪。

解决:检查闪烁程序是否接入了特殊辅助继电器做 1Hz 时钟源,而不是用定时器。如果 PLC 型号不支持特殊继电器,可以用两个定时器交替触发组成方波振荡回路,但注意两个定时器的预设值要相等,否则闪烁占空比不对称。这是我早期调试时踩过的坑,后来凡是涉及闪烁控制的项目,我第一件事就是确认时钟源类型。

6. 扩展应用:急车强通优先级、多阈值分级与验证方法

6.1 急车强通优先级怎么设计才稳妥

资料里规定急车强通只能响应一路方向的急车:两个方向先后来车,先来先响应;同时来车按东西、南北顺序依次响应。这个逻辑用梯形图实现时要注意优先级的嵌套,东西强通优先于南北强通,可以在南北强通回路上串联东西强通的常闭触点,形成硬件级别的优先级锁定。强通开关接通后要把定时器链暂停或锁存,不能让底层时序在强通期间偷偷走完,否则退出强通时周期已经跳到下一个相位。

6.2 从单阈值到多时段多阈值的扩展

资料里的智能控制是单阈值方案:差值超过 20 就加 5s。实际路口往往有凌晨低峰、早晚高峰、平峰三个典型时段,我一般会做成时段表驱动:6 点到 9 点阈值降到 15,加时 8s;9 点到 17 点维持原参数;23 点到次日 6 点关闭智能调整,直接跑最短周期。这样能减少夜间空放时间,也让白天的响应更灵敏。PLC 内部时钟或外部时钟模块都能实现时段判断,改的只是比较指令的上下限,梯形图主体不用重写。

6.3 用强制置位做全时段模拟验证

接手这类资料后,我建议大家不要直接上真路调试,先在 GX Developer 里把程序下载到 PLC,用在线监控功能配合强制置位模拟检测器脉冲。做法是:手动给输入端子 X0 加启动信号,然后用强制功能以固定间隔置位 X2(南北繁忙自动开关),观察南北绿灯是否比正常时序多亮了 5 秒,同时确认东西红灯延长 10 秒。再强制置位 X5(南北强通),确认无论当前处于哪个相位,南北绿灯都会被锁定点亮。整个验证过程不需要路口,一张 I/O 模拟接线板就能跑完所有分支,等逻辑验证没问题再考虑现场安装。

从那以后我每次拿到这种 PLC 时序控制资料,都会强制走一遍「先画时序表 → 再核对互锁条件 → 最后做全分支模拟」的流程。交通灯程序的逻辑分支不算复杂,但时序搭接和互锁这两道坎,跳过哪一步都会在真路上翻车。希望这份资料的拆解过程能帮到你,少走我当年走过的弯路。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进