简介一套基于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 计时到达后去启动 T38T38 计时到达后再把 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 为 1M1.0 得电松开后由自保持支路维持。按下停止时 I0.1 变 0串联的常开触点断开M1.0 释放。这里有个现场经验值得多说一句停止按钮通常接常闭输入而不是常开。原因是常闭输入在断线时信号会变成断开状态程序判断为停止系统自动停机符合故障安全的原则。如果接成常开一旦线断了按停止按钮根本没反应只能等操作工拉总闸。这个细节在毕设答辩里经常被问到答上来很加分。3.2 0.5 秒闪烁网络T37/T38 互锁振荡第二个网络生成四个字的 0.5 秒闪烁信号。T37 和 T38 都是 TON 定时器100ms 分辨率PT 值设 5 就是 0.5 秒。T37 到达后启动 T38T38 到达后断开 T37 的使能让 T37 复位形成互锁振荡。LD M1.0 // 总启动标志 AN T38 // T38 未到达时 T37 使能 TON T37, 5 // 100ms 分辨率PT5即 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 分辨率下 PT2 是 0.2 秒、PT3 是 0.3 秒做不到 0.25 秒。要 0.25 秒就得换 10ms 分辨率的定时器区间比如 T33~T36PT 设 25。这是选定时器时最容易踩的坑。3.3 序列状态生成SHRB 一条指令替代 14 个定时器第三部分生成六彩灯的 14 拍序列。前面说过M2.0 到 M3.5 是连续的 14 个位用 S7-200 的移位寄存器指令 SHRB一个 1 秒节拍移一位14 拍刚好一轮。SHRB 的格式是SHRB DATA, S_BIT, NDATA 是要移入最低位的值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.5S_BITM2.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.0M4.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.5Q0.5BM2.0 M2.2 M2.7 M3.4Q0.6CM2.0 M2.3 M2.7 M3.3Q0.7DM2.0 M2.4 M2.7 M3.2Q1.0EM2.0 M2.5 M2.7 M3.1Q1.1FM2.0 M2.6 M2.7 M3.0每个 Q 点只出现在一个网络里后面的现场改线只动这张映射表序列部分完全不用碰。上下五灯更简单Q1.4 接 M4.0Q1.3 和 Q1.5 接 M4.1Q1.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-200PPI。通信参数按下面这张表设置。参数值通信协议PPI串口COM1 或 USB 虚拟串口号波特率9600数据位8校验位偶校验停止位1PLC 站地址2PLC 站地址默认是 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 改成 10.5 秒变成 0.1 秒把 1 秒节拍定时器的 PT 值从 10 改成 21 秒变成 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 为 1Q0.4 单独亮直到 M2.6 为 1F 灯单独亮M2.7 为 1 时六灯同时亮M3.0 开始 F 单独亮倒着往回走M3.5 为 1 时 A 单独亮下一拍回到 M2.0。上下五灯这边M4.0→M4.1→M4.2 三拍循环任何时刻只有一个为 1。任意时刻按下停止M1.0 归零所有状态位清零所有 Q 点归零。这套双通道核对做完时序逻辑才算真正验收通过。从那以后我每次做完一套 PLC 时序程序都先压缩定时器跑一遍快进再在状态图表里确认每一步的跳转位最后才接实物灯箱。这个习惯帮我省掉了好几次半夜去现场改程序的折腾文档里没写这一步但它是整套设计最值得学走的部分。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?