资讯动态

PLC实现十字路口倒计时红绿灯:梯形图与数码管显示

发布时间:2026/10/21 18:47:11 来源:尧图企业网站定制
简介这份文档面向自动化、电气工程及单片机方向的课程设计学生与指导教师围绕十字路口带倒计时显示的交通红绿灯控制系统展开完整设计说明帮助读者理解智能信号灯从需求分析到落地调试的全过程。资源包内含1个doc文件约720KB按目录组织为系统概述、方案论证、硬件设计、软件设计、系统调试及设计心得等章节并附程序指令附录。硬件部分涵盖I/O分配、接线图、元件选型与电气安装布置图软件部分给出主流程与梯形图调试章节则区分软件与硬件调试思路便于对照复现。目前已有204人学习下载适合需要撰写同类课程设计报告、准备答辩或借鉴信号灯控制逻辑的读者参考可快速获取方案比较、设计任务与要求、程序结构等关键内容。1. 十字路口倒计时红绿灯的 PLC 实现从方案选型到梯形图落地城市路口最让人焦虑的不是红灯本身而是不知道还要等多久。倒计时显示牌把这段等待变成可预期的时间司机能提前决定熄火还是挂挡行人也能判断是否值得抢那几步。这份资源就是围绕这个场景展开的用 PLC 搭建一套十字路口交通信号灯控制系统南北向和东西向各配两位数码管实时显示当前相位的剩余秒数。它适合正在做电气控制课程设计的学生、需要快速搭一套信号灯演示装置的工程师以及想搞明白 PLC 定时器加数码管译码怎么配合的从业者。整套方案的核心不是堆硬件而是把时序逻辑用梯形图写清楚再用 BCD 变换和七段译码把倒计时送到数码管上。2. 方案论证为什么选 PLC 而不是数字电路或单片机2.1 三种技术路线的实际差异交通灯控制这个需求看起来简单但真动手做选型阶段就能分出高下。常见做法有三种纯数字电路搭、单片机方案、PLC 方案。数字电路方案用 74 系列芯片加定时器构成优点是原理直观缺点是电路一旦焊好时序参数就锁死了。想改个绿灯时长得重新算电阻电容甚至重新画板。移植性差、体积大、成本也不低做一次课程设计还行真上路口不现实。单片机方案灵活得多程序改一改就能调时序。但它有个绕不开的问题工业现场的电磁干扰。路口机柜里有变频器、接触器、大功率 LED 驱动单片机系统如果没有完善的隔离和看门狗设计跑着跑着就死机。而且维修门槛高设备坏了得找会写代码的人来查普通电工搞不定。A 同学之前用某款单片机做过一个演示板实验室里跑得好好的搬到走廊尽头接上真实灯组不到两小时就复位了三次后来查出来是电源纹波耦合进了复位引脚。PLC 方案的优势在于它本身就是为工业环境设计的。输入输出有光耦隔离电源有滤波程序跑在实时操作系统上抗干扰能力不是一个量级。梯形图编程对电气人员友好看懂继电器逻辑就能看懂梯形图。FX 系列 PLC 体积小可以直接装在控制箱里扩展也方便。这份资源选的就是三菱 FX2N 系列具体型号是 FX2N-80MR-00140 点输入输出继电器输出型内置 8K RAM够用且留有余量。2.2 I/O 分配与硬件接线逻辑选型定了之后第一件事是把输入输出点分配清楚。这份资源的 I/O 分配表是这样的I/O 地址名称功能说明备注X000SB1交通灯系统总开关常开X001SA1-1正常工作控制开关常开X002SA1-2南北绿灯常亮控制常开X003SA1-3东西绿灯常亮控制常开Y000H1南北向绿灯指示通有效Y001H2南北向黄灯指示通有效Y002H3南北向红灯指示通有效Y003H4东西向绿灯指示通有效Y004H5东西向黄灯指示通有效Y005H6东西向红灯指示通有效Y010-Y017H11南北向个位七段数码管通有效Y020-Y027H12南北向十位七段数码管通有效Y030-Y037H13东西向个位七段数码管通有效Y040-Y047H14东西向十位七段数码管通有效输入只有四个点但输出占了 38 个点其中 32 个点给了四组数码管。这里有个容易翻车的地方FX2N-80MR-001 标称 40 点但实际输入和输出是分开算的40 点指的是总点数输入 24 点、输出 16 点不够用。所以资源里提到需要扩展到 80 点或者选 FX2N-80MR 这种输入输出各 40 点的型号。如果手头只有 40 点的机器数码管就得用动态扫描或者外挂译码芯片那是另一套做法了。接线方面输入端接 24V 直流电源转换开关 SA1 的三个触点分别对应 X001、X002、X003。SA1 手柄指向左 45° 时 X001 接通系统进入正常循环指向中间 0° 时 X002 接通南北绿灯常亮、东西红灯常亮指向右 45° 时 X003 接通东西绿灯常亮、南北红灯常亮。三个状态之间用常闭触点互锁保证不会同时接通。输出端每个 Y 点驱动一个 LED 指示灯或数码管段数码管是共阳还是共阴要看具体型号资源里用的是共阳接法Y 点输出低电平时段点亮。限流电阻的选择有个计算过程电源 24V红色 LED 压降约 1.6V工作电流取 10mA那么 R (24 - 1.6) / 0.01 2240Ω取标准值 2.3KΩ。这个电阻串在数码管公共端或者每个段上看具体驱动方式。如果数码管亮度不够可以把电流提到 15mA电阻换成 1.5KΩ但别超过 LED 的极限电流。2.3 定时器与计数器构成的时序骨架正常工作时序是这样的南北绿灯亮 25 秒然后绿灯闪烁 3 秒同时黄灯亮接着南北红灯亮 30 秒与此同时东西方向红灯亮 30 秒然后东西绿灯亮 25 秒、闪烁 3 秒、黄灯亮 2 秒。整个周期循环往复。用梯形图实现这个时序核心是定时器和计数器的配合。南北绿灯 25 秒用 T0 定时设定值 K250假设 100ms 时基。T0 到点后T1 和 T2 组成 0.5 秒振荡电路T1 设定 K5、T2 设定 K5交替导通驱动绿灯闪烁。同时 C0 对振荡脉冲计数计到 3 次表示闪烁了 3 秒C0 常开触点闭合触发黄灯定时器 T3设定 K20 即 2 秒。T3 到点后南北红灯定时器 T4 启动设定 K300 即 30 秒。东西方向的逻辑对称用 T6、T7、T8、C1、T9 实现。这里有个细节绿灯闪烁 3 秒但倒计时显示的是 28 秒。为什么是 28 而不是 25因为倒计时从绿灯亮就开始25 秒绿灯加 3 秒闪烁总共 28 秒。数码管显示的是这个相位的总剩余时间不是绿灯单独的时间。黄灯 2 秒单独倒计时红灯 30 秒单独倒计时。这个逻辑在写程序时要理清楚否则数码管跳变会很突兀。3. 软件设计梯形图里的倒计时怎么算出来3.1 主流程与状态切换程序上电后PLC 进入 RUN 状态。X000 是总开关接通后系统才可能工作。X001 接通时进入正常循环X002 接通时南北绿灯常亮、东西红灯常亮X003 接通时东西绿灯常亮、南北红灯常亮。三个状态互锁X001 的常闭触点串在 X002 和 X003 的回路里反过来也一样。正常循环的流程是南北绿灯亮 25s → 闪烁 3s → 黄灯 2s → 南北红灯亮 30s同时东西方向红灯亮 30s → 绿灯亮 25s → 闪烁 3s → 黄灯 2s → 回到起点。这个流程用步进指令或者定时器串联都能实现资源里用的是定时器串联加中间继电器的方式逻辑直白调试时容易看状态。3.2 倒计时的 BCD 变换与七段译码倒计时显示是这份资源里最值得细看的部分。PLC 内部的算术运算都是二进制但数码管要的是 BCD 码。所以每秒钟要把数据寄存器里的值减 1然后用 BCD 指令转成 BCD 码再送到七段译码指令 SEGD 驱动数码管。具体做法是在南北绿灯亮的上升沿给数据寄存器 D0 赋值 28。然后每个 1 秒脉冲的下降沿用 DEC 指令让 D0 自减 1。D0 的值通过 BCD 指令转换成 BCD 码存到 K2M0 这个 8 位中间继电器组里。低 4 位 M0-M3 对应个位高 4 位 M4-M7 对应十位。个位经 SEGD 译码后输出到 Y010-Y017十位经 SEGD 译码后输出到 Y020-Y027。这里有个坑SEGD 指令只对低 4 位译码显示范围是 0-F。如果倒计时减到 0 之后没有及时重新赋值下一个脉冲会让它变成 F数码管就显示一个奇怪的字符。所以程序里要在 D0 减到 0 的瞬间或者在下一个相位开始的上升沿重新给 D0 赋初值。资源里用的是上升沿赋值法每个相位的起始信号上升沿触发 MOV 指令把对应的初值写进 D0。1 秒脉冲的来源资源里没有用 M8013 这个系统时钟而是用定时器搭了一个 0.5 秒振荡电路再分频得到 1 秒。原因是 M8013 在 PLC 刚上电的第一个周期可能不准倒计时第一秒会跳变。用定时器搭的振荡电路从第一个周期就是稳定的虽然占用了两个定时器资源但显示效果更干净。3.3 数码管输出的中间继电器映射四组数码管一共占了 32 个输出点如果直接写 Y 点程序会非常冗长。资源里的做法是用中间继电器 K2M 做缓冲先把 BCD 码送到 M 区再用 SEGD 指令把 M 区的值译码到 Y 区。这样程序结构清晰调试时监控 M 区的值就能知道当前显示的数字不用去数 Y 点的通断。南北向和东西向的倒计时逻辑是镜像的但要注意相位差。南北绿灯亮的时候东西红灯亮两边倒计时的初值不一样南北显示 28东西显示 30。南北黄灯亮 2 秒的时候东西还是红灯显示 30 减到 28。南北红灯亮 30 秒的时候东西绿灯亮 25 秒加闪烁 3 秒东西显示 28。这个对应关系在写程序时要列清楚否则数码管会显示错乱。4. 调试与避坑那些让数码管显示 F 的瞬间4.1 常见问题排查现象一数码管显示 F 而不是数字。原因是 SEGD 指令对低 4 位译码如果输入值超过 9就会显示 A-F 中的某个字符。倒计时减到 0 后没有重新赋值下一个脉冲让它变成了 F。解决办法是在倒计时到 0 的下降沿触发重新赋值或者在相位切换的上升沿强制赋值。现象二倒计时跳变不均匀。原因是 1 秒脉冲不稳定。如果用 M8013第一个周期可能偏短或偏长。改用定时器搭的振荡电路后这个问题消失。另外要检查定时器的时基设置100ms 时基的 K10 才是 1 秒设成 K100 就变成 10 秒了。现象三转换开关切换时灯状态不响应。原因是互锁逻辑写反了。X001、X002、X003 三个输入之间要用常闭触点互锁但互锁的串接顺序有讲究。如果 X001 的常闭触点只串在 X002 回路里没串在 X003 回路里切到 X003 时 X001 可能还在接通状态。正确的做法是每个输入的回路里都串上另外两个输入的常闭触点。现象四黄灯不亮或者闪烁频率不对。黄灯是在绿灯闪烁结束后才亮的如果 C0 计数没到 3 就触发黄灯说明振荡电路的周期算错了。T1 和 T2 各设 K5100ms 时基下是 0.5 秒一个完整周期是 1 秒C0 计 3 次就是 3 秒。如果设成 K3周期变成 0.6 秒闪烁会偏快。现象五PLC 运行但所有输出都不动作。先检查 X000 总开关是否接通再检查 PLC 是否在 RUN 模式。FX 系列 PLC 的 RUN/STOP 开关在面板上如果拨到 STOP程序不执行。另外检查输出端的 24V 电源是否正常继电器输出型 PLC 的 COM 点要接对。4.2 软件调试的实操步骤用 GX Developer 调试时按这个顺序走先创建工程PLC 系列选 FXCPU类型选 FX2N(C)程序类型选梯形图。然后输入程序注意梯形图的变换灰色背景表示未变换白色才是已变换。变换前程序不会下载到 PLC。下载程序时用串口线连接 PLC 和电脑在传输设置里选对 COM 口和波特率。FX2N 默认是 9600、7 位数据、偶校验、1 位停止位。如果连不上检查线序三菱的 SC-09 线是交叉的普通直连线不行。下载完成后进入监控模式看 X 点和 Y 点的通断状态。蓝色框表示 ON灰色表示 OFF。调试倒计时的时候重点看 D0 的值是不是每秒减 1M0-M7 的 BCD 码是不是跟着变。如果 D0 不变检查 1 秒脉冲有没有进来如果 M 区变了但数码管不亮检查 SEGD 指令的目标地址和 Y 点的接线。5. 从课程设计到实际装置几个让程序更稳的习惯这套梯形图逻辑跑通之后如果想把它从实验室搬到更接近真实场景的环境有几个地方值得再打磨。第一个是上电初始化。PLC 上电的第一个扫描周期所有定时器和计数器都是复位状态但数据寄存器 D 的值是不确定的。如果不在程序开头用 MOV 指令给 D0 赋一个安全值数码管上电瞬间可能显示乱码。我一般会在 M8002 这个初始脉冲的常开触点后面给所有倒计时寄存器写初值保证上电第一帧就是合法数字。第二个是转换开关的消抖。SA1 是机械开关切换瞬间触点会抖动PLC 的输入滤波时间默认是 10ms一般够用。但如果开关质量差抖动超过 10ms程序可能误判状态。稳妥的做法是在 X001、X002、X003 的输入后面各串一个 0.5 秒的定时器只有输入稳定 0.5 秒后才认为状态切换有效。这样切换时灯不会闪一下数码管也不会跳变。第三个是倒计时的边界处理。南北绿灯 28 秒倒计时减到 0 的时候正好是黄灯结束、红灯开始的瞬间。如果 DEC 指令和相位切换的时序没对齐可能出现显示 0 之后停了一秒才跳红灯或者直接跳到 30 但红灯还没亮。解决办法是用相位切换的上升沿同时做两件事给 D0 赋新值以及复位上一个相位的定时器。这样倒计时和灯状态是严格同步的。第四个是数码管的亮度一致性。四组数码管如果限流电阻取值不同亮度会有差异。我一般会把所有段的限流电阻统一用 2.3KΩ公共端的驱动三极管选同型号保证四组显示亮度一致。如果某个数码管偏暗先量它的段电流再检查接线有没有虚焊。第五个是程序的注释和分段。梯形图写长了之后回头改逻辑很容易看晕。我习惯按功能分段输入处理一段、正常循环定时器一段、倒计时一段、输出映射一段。每段前面用注释标明功能中间继电器用 M100 以后的地址避免和系统保留的 M8000 系列冲突。这样下次打开工程五分钟就能找回思路。从那以后我每次做带倒计时的 PLC 项目都会先把时序表列出来把每个相位的起止时间、倒计时初值、数码管对应关系写在一张纸上再开始画梯形图。纸上的逻辑对了程序基本不会出大问题。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑