news 2026/4/23 11:35:11

交通灯模拟PLC程序控制(S7 - 1200 博图V15.1)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
交通灯模拟PLC程序控制(S7 - 1200 博图V15.1)

交通灯模拟plc程序控制(s7-1200 博图v15.1 带讲解ppt ) 起动后,南北红灯亮并维持25s。 在南北红灯亮的同时,东西绿灯也亮,1s后,东西车灯即甲亮。 到20s时,东西绿灯闪亮,3s后熄灭,在东西绿灯熄灭后东西黄灯亮,同时甲灭。 黄灯亮2s后灭东西红灯亮。 与此同时,南北红灯灭,南北绿灯亮。 1s后,南北车灯即乙亮。 南北绿灯亮了25s后闪亮,3s后熄灭,同时乙灭,黄灯亮2s后熄灭,南北红灯亮,东西绿灯亮,循环。

最近做了一个交通灯模拟的PLC程序控制项目,基于S7 - 1200和博图V15.1,还做了个带讲解的PPT,今天就在这跟大家分享分享。

整体逻辑梳理

整个交通灯的控制逻辑其实就是按照一定的时间顺序和规则,循环切换各个方向的信号灯状态。启动后,南北红灯先亮25秒,同时东西绿灯亮起,1秒后东西方向的车灯甲亮。到20秒时,东西绿灯开始闪亮,3秒后熄灭,接着黄灯亮2秒,之后东西红灯亮,同时南北红灯灭,南北绿灯亮。南北绿灯亮1秒后,南北方向的车灯乙亮。南北绿灯亮25秒后闪亮,3秒后熄灭,乙也跟着灭,然后黄灯亮2秒,最后南北红灯亮,又回到东西绿灯亮的状态,如此循环。

PLC程序实现

在博图V15.1中,我们先创建一个新项目,选择S7 - 1200系列的PLC。下面看看关键部分的代码实现(这里以LAD语言为例):

定义变量

我们需要定义一些变量来表示各个信号灯以及时间计数等。

// 定义南北方向信号灯变量 Bool SouthNorthRed; Bool SouthNorthGreen; Bool SouthNorthYellow; Bool SouthNorthCarLightY; // 定义东西方向信号灯变量 Bool EastWestRed; Bool EastWestGreen; Bool EastWestYellow; Bool EastWestCarLightX; // 时间计数变量 Int TimerValue;

这里定义了南北和东西方向的红、绿、黄灯以及对应方向的车灯变量,还有一个时间计数变量TimerValue

主程序逻辑

// 启动程序 If StartButton Then // 南北红灯亮 SouthNorthRed := True; // 东西绿灯亮 EastWestGreen := True; // 开启定时器 TimerValue := 0; TimerEnable := True; End_If; // 定时器逻辑 If TimerEnable Then // 每1秒定时器值加1 If Rising_Edge(Clock1s) Then TimerValue := TimerValue + 1; End_If; End_If;

启动按钮按下后,南北红灯和东西绿灯亮起,同时开启定时器,每1秒TimerValue加1 。

// 东西方向绿灯逻辑 If TimerValue >= 0 And TimerValue < 20 Then EastWestCarLightX := True; End_If; If TimerValue >= 20 And TimerValue < 23 Then // 绿灯闪烁逻辑,假设闪烁频率为1Hz If Rising_Edge(Clock1s) Then EastWestGreen := NOT EastWestGreen; End_If; EastWestCarLightX := EastWestGreen; End_If; If TimerValue >= 23 And TimerValue < 25 Then EastWestGreen := False; EastWestYellow := True; EastWestCarLightX := False; End_If; If TimerValue >= 25 Then EastWestRed := True; EastWestYellow := False; EastWestCarLightX := False; SouthNorthRed := False; SouthNorthGreen := True; TimerValue := 0; End_If;

这段代码实现了东西方向信号灯和车灯的逻辑控制。在0 - 20秒,东西绿灯常亮且车灯甲亮;20 - 23秒,绿灯闪烁且车灯跟着闪烁;23 - 25秒,绿灯灭黄灯亮,车灯灭;25秒后,东西红灯亮,南北红灯灭,南北绿灯亮,同时重置定时器。

// 南北方向绿灯逻辑 If TimerValue >= 0 And TimerValue < 25 Then SouthNorthCarLightY := True; End_If; If TimerValue >= 25 And TimerValue < 28 Then // 绿灯闪烁逻辑,假设闪烁频率为1Hz If Rising_Edge(Clock1s) Then SouthNorthGreen := NOT SouthNorthGreen; End_If; SouthNorthCarLightY := SouthNorthGreen; End_If; If TimerValue >= 28 And TimerValue < 30 Then SouthNorthGreen := False; SouthNorthYellow := True; SouthNorthCarLightY := False; End_If; If TimerValue >= 30 Then SouthNorthRed := True; SouthNorthYellow := False; SouthNorthCarLightY := False; EastWestRed := False; EastWestGreen := True; TimerValue := 0; End_If;

这部分是南北方向信号灯和车灯的逻辑,和东西方向类似,按照设定的时间进行状态切换。

总结

通过这样的PLC程序编写,我们就实现了交通灯的模拟控制。这个项目对于理解PLC的时间控制、逻辑判断等基本功能很有帮助。配合PPT讲解,无论是学习PLC编程的新手,还是想要深入了解交通灯控制逻辑的朋友,都能从中获取不少知识。大家要是有兴趣可以自己动手在博图V15.1里实践一下,说不定还能发现一些优化的思路呢。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 17:32:46

基于stm32芯片仿真的倒车测距提示系统开发记录

基于stm32芯片仿真的倒车测距提示系统 包含演示视频 报告 proteus仿真 keil代码 以stm32为最小系统电路进行连接&#xff0c;按钮控制系统开关&#xff0c;使用SRF04采集倒车&#xff0c;LM016L液晶显示屏显示汽车距离障碍物的实时距离。 当距离障碍物大于100cm时&#xff0c;小…

作者头像 李华
网站建设 2026/4/19 20:37:16

探索灰色预测 DNGM(1,1)模型:突破传统局限的预测利器

灰色预测DNGM(1,1)模型 &#xff08;1&#xff09;灰色GM(1,1)模型和离散GM(1,1)模型的实质都是对原始数据建立近似的指数规律,如果原始数据不具有近似指数规律,那么按照灰色GM(1,1)模型就会出现比较大的误差&#xff1b; &#xff08;2&#xff09;在经济和社会现象中存在着很…

作者头像 李华
网站建设 2026/4/19 17:59:49

无人驾驶车辆运动学与动力学模型准确度对比验证

无人驾驶的车辆运动学模型&#xff0c;动力学模型准确度对比验证。涉及对比&#xff0c;该程序包含运动学和动力学两个部分&#xff0c;需要单独动力学验证&#xff0c;运动学验证&#xff0c;组合一起对比情况在无人驾驶领域&#xff0c;车辆的运动学模型和动力学模型就像两把…

作者头像 李华
网站建设 2026/4/20 13:50:19

Docker镜像优化:精简TensorFlow运行环境

Docker镜像优化&#xff1a;精简TensorFlow运行环境 在现代AI工程实践中&#xff0c;一个常见的痛点是&#xff1a;明明只是部署一个推理服务&#xff0c;结果拉取的Docker镜像却动辄超过1GB。这种“重型”镜像不仅拖慢了CI/CD流程&#xff0c;在边缘设备或微服务架构中更是寸土…

作者头像 李华
网站建设 2026/4/20 15:09:11

springboot个性化服装搭配推荐小程序 穿搭_93n6ts16

目录已开发项目效果实现截图开发技术介绍核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果…

作者头像 李华
网站建设 2026/4/20 23:45:56

AI智能体开发框架LangChain LangGraph快速入门实战(包含LangSmith)

最近乱七八糟的事太多&#xff0c;有半个月没更新公众号了&#xff0c;今天来点偏技术实战的&#xff0c;带大家用LangChain & LangGraph快速入门用编程创建智能体&#xff0c;用LangSmith进行追踪&#xff0c;Agent-Chat构建Agent UI。 基本概念 相信大家相比于LangGraph&…

作者头像 李华