ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

西门子S7-200 PLC霓虹灯控制系统设计与梯形图实现详解

西门子S7-200 PLC霓虹灯控制系统设计与梯形图实现详解

简介:一套基于PLC的霓虹灯控制系统毕业设计文档,面向自动化、电气工程等专业学生及PLC初学者,系统梳理霓虹灯控制从需求分析、硬件选型、程序编写到系统调试的完整流程。文档以西门子S7-200 PLC为控制器,围绕“节日快乐”字型霓虹灯场景,重点介绍多组绿色与黄色霓虹灯按顺序闪烁的控制效果,并结合梯形图语言说明程序实现方式,同时分析了该方案在可编程性、灵活性、可靠性方面的优势及其成本、技术门槛等局限,可帮助读者直观理解PLC在广告照明工程中的实际应用。资源共1个文件,采用doc格式,包体大小1.36MB,内含中英文摘要、目录、正文章节及参考文献,结构完整,可作为课程设计或毕业设计参考模板。已有106人学习下载,内容兼顾理论原理与设计实例,适合需要快速掌握PLC霓虹灯控制思路的读者。

1. 一份 S7-200 霓虹灯控制毕业设计,为什么现在还值得照着拆

做 PLC 霓虹灯控制系统的毕设,十个里有八个做完就躺在硬盘里吃灰。原因不是方案不行,而是文档里通常只有一张梯形图截图和一句“调试通过”,I/O 为什么这么分、定时器为什么选 T37、组态王连不上应该查哪里,全得读者自己猜。这份用西门子 S7-200 做的霓虹灯控制系统设计,恰好把三个环节都走完了:3 个输入点、15 个输出点,控制“节日快乐”四个字、每字周边 6 个彩灯、上下各 5 个黄灯的完整闪烁时序,最后还加了组态王上位机画面。适合两类人——做 PLC 毕业设计的学生,以及接楼宇亮化、广告牌小项目的现场调试工程师。照着拆一遍,能带走一套可改写的梯形图思路、一张能直接套用的 I/O 分配表,还有五个文档里没写的翻车现场。

2. 控制对象拆解:3 个输入、15 个输出,三种灯组时序完全不同

整套系统只有 1 秒这一个基准节拍,0.5 秒只是它的分频。搞清楚这个前提,再看“节日快乐”四个字、周围 6 个彩灯、上下 5 个黄灯,其实都是同一套时钟框架下的三种动作组合。下面按灯组逐个拆。

2.1 四个大字:0.5 秒亮灭由一组振荡定时器给出

“节日快乐”四个字各做成一个霓虹灯字,按下启动按钮后每 0.5 秒亮、0.5 秒灭,交替进行。这个 0.5 秒不是随便定的,它和彩灯的 1 秒节拍正好是倍数关系,程序设计时只要生成一路 1 秒节拍,再用辅助继电器分频出 0.5 秒,整份程序就不会出现多个互相打架的时基。

实现上最常见的做法是用两个 TON 定时器互锁成振荡器。S7-200 里 T37 到 T63 这一组定时器分辨率是 100ms,所以 T37 的 PT 值设成 5,就是 0.5 秒。T37 计时到达后去启动 T38,T38 计时到达后再把 T37 的使能断掉,让 T37 复位重新开始。输出端取 T37 的常闭状态:T37 正在计时的时候灯亮,T37 到达后灯灭,这样天然得到 0.5 秒亮灭交替的波形。

四个字用同一个振荡器信号驱动,Q0.0 到 Q0.3 四个输出点并在一起输出即可。这也是这套设计最值得学的地方——四个字不需要四组定时器,一组振荡器带四个输出,程序长度直接砍掉一大截。

2.2 六彩灯:全亮-顺闪-全亮-逆闪的 14 拍循环

每个字周边有 6 个彩灯,编号 A 到 F。从启动开始,时序分成两轮:第一轮先全部同时亮 1 秒,然后 A、B、C、D、E、F 按顺时针方向各亮 1 秒;第二轮再全部同时亮 1 秒,然后 F、E、D、C、B、A 按逆时针方向各亮 1 秒。两轮合起来正好 14 拍,每一拍 1 秒。

如果按惯性思维给每一拍配一个定时器,程序里要堆 14 个 TON,网络数量直接翻倍,调试时改一个时间要翻半天。这套设计选择的是另一种做法:把 14 拍对应成 14 个连续的辅助继电器状态位,M2.0 到 M3.5,某一拍轮到谁,谁就是 1,其余都是 0,然后用 1 秒节拍脉冲把“1”往后移一位。

这 14 个状态位在地址上是连续的,M2.0 到 M2.7 是 8 位,M3.0 到 M3.5 是 6 位,合起来正好 14 位。这个连续性不是巧合,而是特意为移位寄存器指令选的内存区间,后面写梯形图时一条 SHRB 就能搞定整条时序链。

2.3 上下五灯:3 相循环与红绿灯程序同款套路

每个字的上方和下方各有 5 个灯,上下对应位置的灯接在同一个输出点上,也就是说一组上下对称的灯在 PLC 里只占一个 Q 点,整个系统 15 个输出点有一半是这么省出来的。这组灯的时序非常简单,只有三拍:先 ③ 亮 1 秒灭,然后 ②④ 亮 1 秒灭,再 ①⑤ 亮 1 秒灭,接着回到 ③ 重新开始,如此循环。

这个三拍循环和十字路口红绿灯的相位切换是同一个套路:三个状态按固定顺序轮转。区别只在于红绿灯程序通常用时间片轮询,这里用计数器加比较指令,VW2 存当前拍号,计数到 3 就把它清零回绕。也可以像六彩灯那样做 3 位移位寄存器,两条路都能走通,看个人习惯。

2.4 单步/连续:一个 I0.2 决定程序是否自动循环

系统还有一个单步/连续选择开关,接在 I0.2 上。连续模式下,1 秒节拍自动循环,14 拍走完自动回到第一拍,整个过程不需要人为干预。单步模式下,每个状态位只保持一拍,拍结束就停在当前位置,等下一次启动信号再走下一步。这个功能在调试时特别有用——可以一拍拍地核对顺序。

单步/连续的切换点在节拍脉冲的生成环节:连续模式用振荡器自动产生时钟,单步模式改成用启动信号的上升沿产生单拍时钟。S7-200 里取上升沿用 EU 指令,一个网络就能完成切换。需要特别注意 I0.2 的通断时机,程序运行中切换可能导致当前拍丢失,实际使用建议在停止状态下切换。

下表是这套系统的完整 I/O 分配,照着这张表接线基本不会错。

类型地址对应对象
输入I0.0启动按钮 SB1
输入I0.1停止按钮 SB2
输入I0.2单步/连续选择 SB3
输出Q0.0~Q0.3“节”“日”“快”“乐”四字
输出Q0.4~Q1.1每个字周边彩灯 A~F
输出Q1.2~Q1.6上下五灯 ①~⑤

辅助继电器方面,M1.0 做总启动标志,M2.0~M3.5 做六彩灯 14 拍状态位,M4.0~M4.2 做上下五灯三拍状态位,VW0 和 VW2 分别做彩灯和五灯的计数用字。

3. 梯形图落地:启保停、振荡器与 SHRB 移位序列

这一章是把上一章的时序翻译成梯形图网络。整份程序按功能拆成四个部分:启保停总闸、0.5 秒振荡器、序列状态生成、输出映射。下面按网络顺序逐个讲,关键网络给出 STL 指令写法,方便在 STEP 7-Micro/WIN 里对照输入。

3.1 启保停网络与停止按钮的常闭输入

第一个网络是整份程序的总闸。M1.0 作为总启动标志,后面所有定时器和序列的使能条件都从它引出,这样做的好处是停止时只要把 M1.0 清掉,所有分支全部断掉,不会出现某个定时器还挂在那里继续跑的怪现象。

STL 写法如下:

LD I0.0 // 启动按钮,常开触点,按下为 1 O M1.0 // 自保持:M1.0 一旦为 1 就保持住 A I0.1 // 停止按钮,常闭输入,正常为 1,按下为 0 = M1.0 // 输出到总启动标志

这段的逻辑是三段式:LD 把启动按钮的常开触点作为第一个条件,O 把自保持位并联进来,A 把停止按钮的常闭输入串联在回路里。按下启动后 I0.0 为 1,M1.0 得电,松开后由自保持支路维持。按下停止时 I0.1 变 0,串联的常开触点断开,M1.0 释放。

这里有个现场经验值得多说一句:停止按钮通常接常闭输入,而不是常开。原因是常闭输入在断线时信号会变成断开状态,程序判断为停止,系统自动停机,符合故障安全的原则。如果接成常开,一旦线断了,按停止按钮根本没反应,只能等操作工拉总闸。这个细节在毕设答辩里经常被问到,答上来很加分。

3.2 0.5 秒闪烁网络:T37/T38 互锁振荡

第二个网络生成四个字的 0.5 秒闪烁信号。T37 和 T38 都是 TON 定时器,100ms 分辨率,PT 值设 5 就是 0.5 秒。T37 到达后启动 T38,T38 到达后断开 T37 的使能,让 T37 复位,形成互锁振荡。

LD M1.0 // 总启动标志 AN T38 // T38 未到达时 T37 使能 TON T37, +5 // 100ms 分辨率,PT=5,即 0.5 秒 LD M1.0 // 总启动标志 A T37 // T37 到达后 T38 开始计时 TON T38, +5 // 同样 0.5 秒 LD M1.0 // 总启动标志 AN T37 // T37 未到达时输出为 1 = Q0.0 // “节” = Q0.1 // “日” = Q0.2 // “快” = Q0.3 // “乐”

时间轴推演一遍:M1.0 为 1 时,T37 开始计时,此时 T37 常闭位导通,Q0.0~Q0.3 全部输出 1,字灯亮;0.5 秒后 T37 到达,常闭位断开,字灯灭,同时 T38 开始计时;再过 0.5 秒,T38 到达,T37 的使能被 AN T38 断掉,T37 复位,字灯重新亮,T38 也跟着复位,进入下一轮。输出的 ON/OFF 时间都是 0.5 秒,不偏不倚。

参数上,如果想要 0.25 秒闪烁,把 PT 改成 3 不行,因为 100ms 分辨率下 PT=2 是 0.2 秒、PT=3 是 0.3 秒,做不到 0.25 秒。要 0.25 秒就得换 10ms 分辨率的定时器区间,比如 T33~T36,PT 设 25。这是选定时器时最容易踩的坑。

3.3 序列状态生成:SHRB 一条指令替代 14 个定时器

第三部分生成六彩灯的 14 拍序列。前面说过,M2.0 到 M3.5 是连续的 14 个位,用 S7-200 的移位寄存器指令 SHRB,一个 1 秒节拍移一位,14 拍刚好一轮。

SHRB 的格式是SHRB DATA, S_BIT, N,DATA 是要移入最低位的值,S_BIT 是移位寄存器的最低位,N 是长度和方向,正数向左移。要让序列循环起来,关键是把最高位 M3.5 的值接到 DATA 上:当 M3.5 为 1(即最后一拍 A 逆时针亮)时,下一个节拍把 1 送回 M2.0,正好回到全亮那一拍。

LD 时钟脉冲 // 1 秒节拍,取自 3.2 节 T38 的上升沿 EU // 上升沿检测,确保每个节拍只移一位 SHRB M3.5, M2.0, +14 // DATA=最高位 M3.5,S_BIT=M2.0,长度 14

初始状态要把 M2.0 置 1,其余 13 位清 0,否则整个移位寄存器都是空的,怎么移都不会亮。常见做法是用 SM0.1(首次扫描周期为 1)置位 M2.0,或者用 M1.0 的上升沿统一初始化。这个初始化网络必须放在移位网络之前,顺序错了第一轮就会跳拍。

上下五灯同理,用 3 位循环:

LD 时钟脉冲 EU SHRB M4.2, M4.0, +3 // 3 位循环:M4.0 → M4.1 → M4.2 → 回 M4.0

M4.0 对应 ③ 亮,M4.1 对应 ②④ 亮,M4.2 对应 ①⑤ 亮,DATA 接 M4.2,三拍一循环。这套写法的好处是加拍子只改长度 N,不需要新增定时器网络,后期想加第四种灯型组合非常方便。

3.4 输出映射:最后一级统一驱动 Q 点,杜绝双线圈

序列生成完之后,M2.0~M3.5 只是状态位,不能直接接到输出点上,因为 B 灯除了在顺时针第二拍亮,还可能在逆时针第二拍、两轮全亮时亮。如果每个亮灯条件都写一个 Q0.5 输出网络,就会出现同一个线圈被赋值多次的情况,这在 PLC 里叫双线圈输出,轻则程序报警,重则输出乱跳。

正确做法是最后单独开一组输出映射网络,把每个 Q 点的所有亮灯条件用 M 位组合出来。下面这张表是对照表。

输出点灯亮灯条件(M 位组合)
Q0.4AM2.0 + M2.1 + M2.7 + M3.5
Q0.5BM2.0 + M2.2 + M2.7 + M3.4
Q0.6CM2.0 + M2.3 + M2.7 + M3.3
Q0.7DM2.0 + M2.4 + M2.7 + M3.2
Q1.0EM2.0 + M2.5 + M2.7 + M3.1
Q1.1FM2.0 + M2.6 + M2.7 + M3.0

每个 Q 点只出现在一个网络里,后面的现场改线只动这张映射表,序列部分完全不用碰。上下五灯更简单:Q1.4 接 M4.0,Q1.3 和 Q1.5 接 M4.1,Q1.2 和 Q1.6 接 M4.2。四字灯在振荡器网络已经直接输出,不参与映射。

这一章的编程习惯值得记下来:中间过程全部用 M 位,Q 点只在最后一级出现。这套设计把 14 个定时器压成 14 个状态位加一条移位指令,程序量少了三分之二,排查时序问题也只需要盯状态位的变化,不用一个个定时器去查。

4. 组态王画面:PPI 串口连上 CPU226,变量绑动画

硬件和梯形图调通之后,这套设计还做了一层组态王上位机画面,用来在电脑上直观看到霓虹灯的闪烁效果,也可以远程操作启动和停止。对毕设来说,这一章是加分项,放在答辩演示时比直接搬一台实物灯箱到现场省事得多。

4.1 PPI 通信参数:9600 波特率与站地址 2

组态王连接 S7-200 走的是 PPI 协议,这是西门子 S7-200 系列默认的串行通信协议,不需要额外授权。硬件上用一条 USB-PPI 编程电缆把 CPU226 的编程口和电脑串口连起来。如果电脑没有物理 COM 口,USB 转出来的虚拟串口一样能用,但要去设备管理器里确认它被分配成了哪个 COM 号。

在组态王工程浏览器里新建设备,路径是:设备 → 新建 → PLC → 西门子 → S7-200(PPI)。通信参数按下面这张表设置。

参数值
通信协议PPI
串口COM1 或 USB 虚拟串口号
波特率9600
数据位8
校验位偶校验
停止位1
PLC 站地址2

PLC 站地址默认是 2,这个在组态王设备配置里要填对。S7-200 的站地址存在系统块里,如果之前被改过,先用 STEP 7-Micro/WIN 的通信设置看一眼,别想当然。波特率 9600 是 PPI 的默认值,除非 PLC 系统块里被改过,否则不用动。

这里有个容易忽略的环节:组态王和 STEP 7-Micro/WIN 不能同时占用同一个串口。调试梯形图的时候把 Micro/WIN 开着,再切到组态王运行系统,串口会被占用,设备状态直接变成“打开失败”。习惯做法是把梯形图下载完、关闭 Micro/WIN 的通信对话框,再启动组态王。

4.2 数据词典:I/O 变量与中间变量怎么建

组态王的变量分内存变量和 I/O 变量两类。I/O 变量要和 PLC 的寄存器地址绑定,画面上的图元才能实时反映 PLC 内部状态。数据词典里新建 I/O 变量时,寄存器类型选 Q 或 M,数据类型选 Bit,地址写 Q0.0 或 M1.0 这种格式,连接设备选上一步建好的 PLC 设备。

本系统建议建的变量如下表。

变量名寄存器说明
字灯_节Q0.0只读,画面闪烁用
彩灯_AQ0.4只读
黄灯_3Q1.4只读
软启动M0.0可写,画面按钮控制
软停止M0.1可写,画面按钮控制

这里的软启动和软停止是组态画面操作的关键。直接让画面按钮去写 I0.0 和 I0.1 在 PPI 通信下不一定可靠,因为 I 区是输入映像区,有些驱动不支持直接写。稳妥做法是在程序里加两个中间位 M0.0 和 M0.1,把 I0.0 的启动条件和 M0.0 并联,把 I0.1 的停止条件改成同时受 M0.1 控制,画面按钮置位和复位这两个 M 位,软硬件都能启停。

数据词典里变量的读写属性要设置正确,字灯和彩灯变量是只读,软启动和软停止是可写。读属性设错了,画面上可能不刷新;写属性设错了,按钮点了没反应。

4.3 画面动画:闪烁属性绑定 Q 点,按钮绑 M 点

画面布局可以做得和实物一致:中间放“节日快乐”四个字,每个字周围放 6 个圆形图元代表彩灯,上下放两排小椭圆代表黄灯。文字图元的动画连接里选“闪烁”属性,表达式绑定对应的 Q0.0~Q0.3 变量,变量为 1 时图元按设定频率闪烁。彩灯图元用“填充颜色”属性,绑定 Q0.4 等变量,值为 1 时显示亮色,为 0 时显示暗灰。这样运行起来画面上就是一套虚拟霓虹灯,和实物动作一一对应。

按钮部分,启动按钮的“弹起时”动作脚本写软启动=1;,停止按钮写软停止=1;。单步/连续切换用画面上的选择开关,绑定 I0.2 变量,勾选“值改变时”动作。

全部建完进入运行系统,点启动按钮,画面上四个字开始闪,彩灯按顺时针推进,和实物完全同步。做毕设答辩演示时,投影仪上放组态王画面,桌子上放实物灯箱,两边一起跑,效果直接拉满。

组态王这层有一个原则要记住:画面永远只反映 PLC 的真实状态,不要在组态王里用脚本自己去模拟时序。脚本模拟做出来的画面跑得再花哨,一旦和 PLC 程序对不上,答辩老师问一句“PLC 断电之后画面还在闪,你的 I/O 变量是真的绑上了吗”就露馅了。

5. 调试避坑:双线圈、序列错位与组态王连不上的处理

这一章写调试过程中最容易翻车的五个问题。每一条都是实际项目中会遇到的场景,按“现象 → 原因 → 解决”的顺序写,方便对照排查。

5.1 第二轮彩灯从 B 开始:序列状态没有复位

现象:第一轮顺时针闪完,进入第二轮逆时针时,不是从 F 开始,而是从 B 或 C 开始,整个顺序错位。

原因:14 拍序列跑完一轮后,M2.0~M3.5 里残留了上一轮的状态位。SHRB 移位没错,但初始状态只在首次扫描时置了一次 M2.0,第二轮开头没有把中间状态清干净。单步模式尤其容易出现,因为停下时状态位停在某一拍,再次启动时从那个位置继续移,而不是从全亮那拍重新开始。

解决:在移位网络的使能条件上加一个周期复位逻辑。当最高位 M3.5 到达后,下一个节拍先把 M2.0~M3.5 全部复位,再置位 M2.0,然后再开始移位。简单做法是用 M3.5 的上升沿触发一次批量复位网络,或者把 SHRB 的长度改成 15,多移一位把旧状态推出寄存器,但这样会多占一个 M 位,不推荐。我一般习惯用 SM0.1 做初次初始化,再用 M3.5 上升沿做每轮初始化,两个网络都放在移位网络之前。

5.2 同一个 Q 点被赋值两次:双线圈的排查方法

现象:程序下载后 Micro/WIN 提示“重复线圈”,或者运行后某个灯该亮时不亮、该灭时不灭,输出点状态乱跳。

原因:双线圈输出。典型场景是彩灯 B 在顺时针第二拍写了一次 Q0.5,逆时针倒数第二拍又写了第二次 Q0.5。PLC 扫描时同一个输出点被赋值两次,以最后一次扫描的结果为准,前一次赋值完全失效,表现就是时序错乱。

解决:把 Q 点的赋值全部收口到输出映射网络里,用 M 位做中间状态,Q 点只出现在最后的组合逻辑中。排查时在 Micro/WIN 里用交叉引用功能,输入 Q0.5,列出所有出现该地址的网络,凡是超过一个的就是双线圈候选。规范的程序里一个 Q 点只允许出现一次赋值,这是硬规矩。

5.3 急停之后彩灯还在闪:总闸与分支使能没有统一

现象:按下停止按钮,四个字灭了,但周边彩灯还在继续按逆时针闪,过了好一阵才停。

原因:停止按钮只断掉了 M1.0 总启动标志,但彩灯序列的使能条件是从 M1.0 前面的某个中间位取的,或者 T38 的上升沿还在继续触发移位。急停只是关了主回路,分支回路还挂在暂停状态,没有真正停下来。

解决:把所有定时器、序列移位、输出映射的使能条件全部统一从 M1.0 引出,M1.0 一掉,后面所有网络全部失能,状态位保持但不再演进。同时把停止逻辑做成“立即停止”——用 M1.0 的下降沿把所有状态位 M2.0~M3.5、M4.0~M4.2 和定时器全部复位,这样即使重新启动也是从第一拍开始。这个复位网络在急停场合比单纯断使能可靠得多。

5.4 组态王打开设备失败:COM 口与波特率的隐形不一致

现象:组态王运行系统启动后,设备状态显示“打开设备失败”或“通信超时”,画面上的变量全部显示无效状态。

原因:COM 口号选错或者波特率不一致。USB-PPI 电缆每次插拔后分配的虚拟 COM 号可能变化,而组态王设备配置还停留在上一次的 COM3;或者 PLC 系统块里的波特率被改过,组态王里还是默认的 9600,两边对不上,通信自然建立不起来。

解决:先打开设备管理器确认当前虚拟串口号,再进组态王设备配置把串口改过来。波特率确认方法是用 STEP 7-Micro/WIN 通信对话框搜索 CPU,能看到当前站地址和波特率,把组态王参数调成一致。如果用的是原装 PC/PPI 电缆,还要检查电缆上的 DIP 开关是不是设在 PC 模式,设错位置通信也会失败。

5.5 五灯卡在①⑤不回③:计数器越界没有回绕

现象:上下五灯执行完 ①⑤ 亮 1 秒灭之后,所有灯全灭,不再回到 ③ 开始下一轮,一定要再按一次启动才继续。

原因:VW2 计数到 3 之后没有回写 0,或者比较指令用的是等于比较而不是大于等于比较。VW2 继续累加变成 4、5、6,永远不等于 3,等于比较条件再也满足不了,回绕逻辑失效。

解决:计数器到达上限后用 MOV_W 指令把 0 写回 VW2,或者用置位复位配合 M4.0~M4.2 做三拍状态机,根本不用计数器。对三拍循环这种固定节拍,置位复位状态机更直观:M4.0 到达后复位 M4.0、置位 M4.1,依次类推,最后一位复位后置位 M4.0,不存在越界问题。计数器方案适合拍数不确定的场景,固定三拍我建议直接用状态位互锁。

6. 把时序压缩五倍再验收:0.1 秒快进验证法

整套程序写完之后,最担心的是时序顺序对不对。如果按真实的 0.5 秒和 1 秒节拍跑,完整看完一轮 14 拍彩灯加三拍黄灯,至少要 17 秒,顺序错在哪一拍很不容易抓。我习惯在验收前先做一次时间压缩,把整套时序的快进版跑一遍。

6.1 批量改 PT 值把 0.5 秒变成 0.1 秒

把 T37、T38 的 PT 值从 5 改成 1,0.5 秒变成 0.1 秒;把 1 秒节拍定时器的 PT 值从 10 改成 2,1 秒变成 0.2 秒。这样整套时序压缩到原来的五分之一,一轮 14 拍只要 3 秒出头,肉眼盯着状态位也能看清楚每一步。

修改时可以直接在 Micro/WIN 的状态图表里改,也可以打开梯形图网络改立即数后重新下载。改完注意检查有没有别的地方也在用同一个定时器——T37 如果既做振荡器又被别处引用,压缩验证就会失真。所有定时器编号只在固定功能里出现一次,这也是从双线圈那条教训延伸出来的习惯。

验证完成后再把 PT 值改回去,这一步别忘。我见过有人压缩测试做完忘了恢复,第二天上电调试,霓虹灯闪得跟跑马灯一样快,还以为 PLC 坏了。

6.2 状态图表与组态王双通道核对

压缩完之后,开 Micro/WIN 状态图表,把 M2.0~M3.5、M4.0~M4.2、VW0、VW2 全部拖进去,选“按需采集”模式,每拍刷新一次。同时启动组态王画面,两个画面并排观察。

核对清单按顺序来:启动后 M2.0 为 1,此时六个彩灯同时亮;一拍后 M2.1 为 1,Q0.4 单独亮;直到 M2.6 为 1,F 灯单独亮;M2.7 为 1 时六灯同时亮;M3.0 开始 F 单独亮,倒着往回走;M3.5 为 1 时 A 单独亮,下一拍回到 M2.0。上下五灯这边,M4.0→M4.1→M4.2 三拍循环,任何时刻只有一个为 1。任意时刻按下停止,M1.0 归零,所有状态位清零,所有 Q 点归零。

这套双通道核对做完,时序逻辑才算真正验收通过。从那以后,我每次做完一套 PLC 时序程序,都先压缩定时器跑一遍快进,再在状态图表里确认每一步的跳转位,最后才接实物灯箱。这个习惯帮我省掉了好几次半夜去现场改程序的折腾,文档里没写这一步,但它是整套设计最值得学走的部分。希望帮到你。

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

RELATED READING

延伸阅读

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