ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

基于PLC的校园照明控制系统设计与实践全解析

基于PLC的校园照明控制系统设计与实践全解析 又到毕业设计季在众多电气自动化专业的选题里基于PLC的校园照明控制系统绝对算得上经典中的经典。这个题目看着不难但真正做起来却能串起一整套完整的技术链路传感器信号采集、PLC点位分配、梯形图逻辑设计、电气接线图绘制、甚至触摸屏组态都有涉及。我当时选这个题目就是看中它的实用性——校园路灯、教学楼走廊灯这些场景每个人都能理解答辩时不用费劲解释背景还能用实物演示提高说服力。做完整个项目我不仅把PLC从入门到熟练练了一遍还顺手整理出了完整的设计源文件、一份接近万字的说明书和配套讲解视频给自己的毕设画上了一个踏实的句号。这篇文章就把我实操过程中的完整思路和细节全部梳理出来从方案比选、硬件选型、I/O分配、梯形图编写到调试排查和答辩准备一步步还原实际做法希望能给正在做或准备做这个题目的同学一份直接能参考的干货。1. 项目背景与需求拆解1.1 校园照明场景的真实痛点很多同学看到校园照明四个字第一反应是不就是路灯开关嘛但实际深入项目后你会发现需求远不止天黑开灯、天亮关灯这么简单。以我调研的某高校校区为例照明设备分布在教学楼、宿舍区、主干道、体育场周边等区域设备数量多、位置分散如果全靠人工巡检和手动开关不仅效率极低还容易因为忘记关灯造成巨大浪费。校园照明还有一个特殊之处作息规律具有明显的时段性。比如早晨6点到7点宿舍区和食堂附近需要照明晚上19点到23点主干道需要亮灯而23点之后只有部分区域需要留基础照明。这些需求如果用时间继电器做设备繁多且调整时间困难如果用单片机做又需要额外处理抗干扰和信号隔离问题。这时PLC作为工业级控制器在可靠性和扩展性上的优势就体现出来了——它既能通过内置实时时钟实现精确的定时控制又能接收光敏传感器信号实现天黑自动亮灯的补充控制还能通过手动/自动切换满足检修和应急需求。1.2 核心需求提炼与功能定位在设计前我按照工程惯用的需求分析法把系统要解决的问题梳理成了四个核心维度控制对象需要控制的照明回路数量比如主干道路灯、教学楼走廊灯、广场照明灯等每个回路可能对应一个或多个接触器/继电器输出。控制模式这是项目的灵魂。至少要具备自动模式按照时间表光照强度自动投切和手动模式用于检修或特殊情况强制开关。时间与节能要求能够根据不同季节日升日落时间调整开灯关灯时间甚至能够区分工作日和节假日执行不同的定时方案。安全可靠性系统发生传感器故障或电源波动时不能出现照明灯持续闪烁、不能全部熄灭造成安全隐患要具备基本的过载保护和控制互锁。这些需求最终转化成了我的设计指标输入信号包括光敏传感器信号、手动/自动切换开关、各回路状态反馈输出信号包括各照明回路的接通/断开指令控制方式以内部时钟定时为主、光敏信号辅助校验并预留组态监控接口。定下这个框架之后后面所有的硬件选型和程序结构都有了明确的依据。2. PLC选型与硬件方案设计2.1 PLC品牌与型号的选择考量做这个选题PLC选型是避不开的第一道坎。市场上主流品牌有三菱FX系列、西门子S7系列、台达、汇川等。我当时综合考虑了以下几点最终选定了西门子S7-200 SMART SR40作为主控制器。第一是学校实验室和指导老师的熟悉程度。很多高校实验室配备的正是S7-200 SMART资料多遇到问题容易找到人请教。第二是性价比——这个项目I/O点数大约在20点以内小型PLC完全够用SR40自带24路输入和16路晶体管输出配合扩展的继电器板可以满足绝大部分照明控制场景。第三是编程软件生态成熟STEP 7-Micro/WIN SMART软件操作友好模拟仿真功能强大调试时可以先离线模拟再在线监控降低了出错概率。如果你的学校主用三菱PLC比如FX3U或FX5U那么这个方案同样适用只需要把程序指令转换成三菱的LD和功能指令硬件接线方式基本一致。关键不是纠结哪个品牌更高级而是要看哪个型号能在你的环境下更快上手、更好调试。2.2 I/O点位计算与分配表硬件设计的起点是点位计算。我按照控制4路照明回路、传感器采集和手动操作的规模做了初步估算然后预留了约20%的余量避免后期增加功能时点位不够。具体分配时我会尽量把输入和输出分开规划保证程序可读性。我当时的I/O分配表如下信号类型PLC地址功能描述输入信号I0.0光敏传感器信号光电开关有光时通输入信号I0.1手动/自动模式切换开关输入信号I0.2手动开灯按钮检修用输入信号I0.3手动关灯按钮检修用输入信号I0.4回路1反馈信号可选输出信号Q0.0路灯回路1接触器控制输出信号Q0.1路灯回路2接触器控制输出信号Q0.2教学楼走廊灯接触器控制输出信号Q0.3广场照明灯接触器控制输出信号Q0.4运行指示灯可选这个表看起来简单但实际设计时有两个容易被忽略的坑。第一个是晶体管输出和继电器输出的区别S7-200 SMART SR40是晶体管输出只能驱动直流小电流负载不能直接接220V交流接触器线圈所以中间必须要加中间继电器或固态继电器隔离转换。第二个是光敏传感器的常开常闭逻辑我选用的光电开关在有光照时输出低电平也就是无光照时高电平有效这样编程时逻辑更直观还能在传感器故障时让系统倾向于开灯而不是关灯属于安全侧设计。2.3 外围硬件选型与接线设计除了PLC本体这套系统还需要配置配电部分和控制部分。我用到的关键外围器件包括断路器空气开关每一路线路都要有独立的过载和短路保护我选了4个单极C型1A断路器分别保护PLC电源、照明回路1、照明回路2和内部信号回路。这里有一个我踩过的坑照明回路功率不能用简单公式估算实际校园路灯很多用的是LED灯具启动电流不大但我最初选0.5A的断路器稳定性不够后来换成了1A就正常了。交流接触器用于控制大功率照明回路。根据路灯总功率计算我选了额定电流10A的接触器线圈电压220V。属于感性负载在PLC输出和接触器线圈之间我加装了RC阻容吸收器用来抑制线圈断电时的反向电动势保护PLC晶体管输出点。中间继电器因为我用的是晶体管输出所以PLC每个输出点都先驱动一个DC24V中间继电器再由中间继电器的触点去控制交流接触器线圈形成光电隔离这样即使接触器部分短路也不会损坏PLC。光敏传感器选用工业级光电开关量程和灵敏度可调输出隔离型信号直接接入PLC的I0.0。安装时要避免受路灯灯光直射否则天黑了传感器还认为有光导致照明不启动。接线时还要注意电源的处理。PLC电源、传感器电源、控制回路电源三者最好分路供电共用一个零线容易产生干扰。配电箱内部走线遵循强电和弱电分开、信号线和动力线分开的规则我用线槽把24V信号线和220V动力线隔开之后调试时几乎没有遇到干扰问题。3. 控制系统总体方案与工作模式3.1 工作模式设计与切换逻辑系统必须支持三种核心工作模式手动模式、自动定时模式和光控模式。手动模式用于检修或应急这时候PLC直接根据按钮状态控制输出不执行自动判断自动定时模式是主用模式按照设定的时间表执行开关灯光控模式作为辅助校验当光线传感器检测到环境照度低于阈值时即使时间表还没有到开灯时刻也允许提前开灯。我用一个旋转式的手动/自动/光控档位开关作为模型切换。在自动模式下定时条件是主控制条件光敏信号作为互斥补入条件在光控模式下光敏信号是主要条件定时条件被旁路手动模式下所有自动判断都被旁路输出直接受按钮控制。这里有个经验切换模式前一定要确保所有输出处于停止状态否则切换瞬间容易出现跳跃现象我的解决方案是程序里做了一小段模式切换的过渡逻辑切换时先关掉所有输出延时200ms后再执行新模式的输出计算。3.2 自动控制的状态流转逻辑虽然这里不画流程图但可以用文字描述一下自动模式下的控制逻辑状态1待机。系统上电自检读取当前时钟和时间表配置所有输出关闭。状态2启动准备。当实时时钟到达设定的开灯时间或者光敏信号持续有效超过10秒防抖动系统进入开灯确认状态。状态3照明开启。依次接通各照明回路接触器每组之间设置0.5秒的间隔避免多个大功率灯具同时启动产生过大的冲击电流。状态4持续照明。保持输出状态同时周期检测故障信号和手动干预信号。状态5关灯执行。到达关灯时间且光敏信号消失后先断开非重要回路如广场灯再延时断开主干道灯实现先关次要、后关重点的分组关闭策略。这套逻辑最核心的好处是加入了防抖和顺序启动直接解决了接触器频繁吸合和启动电流冲击两个现场实际问题。在纯时间继电器方案里这两个问题几乎是无法彻底解决的而PLC程序只需简单几行延时指令就能搞定这也是PLC控制方案相比传统控制的优势。3.3 安全性与抗干扰细节校园照明系统直接接触220V交流电安全性必须放在第一位。我在设计时做重点做了以下几项电气互锁手动控制回路与自动控制回路之间要有电气互锁尤其是手动模式时PLC输出必须被强制置0不能出现手动和自动同时输出导致接触器抖动。传感器逻辑防护如果在自动模式下光敏传感器故障比如损坏后一直输出有光信号系统不能因此误判为白天而不开灯。我的处理方法是在传感器信号进入PLC后加了一个信号有效性判断只有光敏信号连续有效超过30秒才被认为是真正的夜晚信息否则视为干扰并维持上一次状态。这条逻辑虽然只占几个网络但大大提高了系统可靠性。断电记忆与来电恢复照明控制系统不允许断电后丢失时间设定。我用S7-200 SMART的保持存储区功能把定时参数表存储在VB区域并设置为断电保持。PLC重新上电后自动恢复运行不需要重新设置时间。除了这些浪涌保护器也不能省。我在配电箱进线端安装了一组一级浪涌保护器防止雷击或电网波动损伤PLC模块。虽然成本只增加几十块钱但在厂区和校园这类场景下非常值得。4. PLC程序设计与梯形图实现4.1 程序框架与模块划分程序结构决定了后期维护调试的难度。我这里按照主程序子程序中断程序的三层结构来组织。主程序负责调用各子程序并执行模式切换逻辑子程序包括定时控制子程序、光控子程序、手动控制子程序、输出刷新子程序中断程序用于处理高速计数或紧急停止这类实时性要求高的信号照明控制中用得不多更多是预留接口。这种模块化设计和高级语言的函数封装思想一样好处非常明显调试时单独监控某个子程序出问题定位速度快。我见过一些同学的毕设把几百行程序全塞在一个主程序里看起来效率高实际上可读性极差稍有改动就容易互相影响。4.2 实时时钟读取与定时判断S7-200 SMART自带实时时钟功能通过读取系统时钟可以精确到秒。我在程序中首先建立了一个时间读取网络用READ_RTC指令获取年、月、日、时、分、秒数据存放到一个8字节缓冲区。然后比较判断// 伪代码思路实际梯形图用比较指令实现 IF 当前时间 开启时间1 AND 当前时间 开启时间2 THEN 照明回路1需求 ON ELSE 照明回路1需求 OFF END_IF梯形图实现时用到比较指令块比如LD和LD配合起来做时间区间判断。需要注意时和分要分别比较或者把时分组合成一个整数比较更方便。我当时使用了一个简单的编码时间码值 小时 * 60 分钟这样只要比较一个整数区间程序简洁很多。这里给新手一个提示S7-200 SMART在首次通电后时钟可能没有校准必须先用软件中的设置时钟功能把PLC时钟设为当前时间否则定时功能会完全失效。这也是一个非常典型的现场故障点后面会提到。4.3 光控逻辑与自动模式切换的梯形图设计光控逻辑是整个程序中我认为最有设计感的部分。它需要解决的核心问题是怎样判断天黑了——单纯靠传感器瞬时值是不够的。我用的方案是用定时中断每100ms检测一次光敏信号连续10次1秒都为无光状态就判定为天黑把标志位置ON同样连续10次都为有光状态才判定为天亮。这个逻辑叫信号确认滤波能有效避免飞鸟、车灯、云层遮挡等短暂干扰造成误动作。在自动模式下照明回路输出的逻辑为定时开灯条件 OR 光控开灯条件 AND 未到关灯时间其中定时开灯条件包含上下午多个时间点光控开灯条件作为补充。如果条件满足输出置1否则输出置0。梯形图的核心部分大致如下Network 1 // 光照确认 LD I0.0 A T37 TON T37, 20 // 连续20个扫描周期后完成判断实际上我会用两个定时器组成延时接通和延时断开分别给无光信号和有光信号做滤波。这种处理方式在工业现场非常常见和电机启动时的防抖逻辑是一样的。4.4 I/O输出刷新与状态指示编程输出刷新子程序主要解决输出加入手动禁止和互锁的问题。我定义了一个中间变量M0.0表示系统允许自动输出手动模式下M0.00那么无论逻辑计算结果如何最终输出Q都会被强制为OFF。输出强制逻辑可以在梯形图末尾统一处理把所有输出点的最终值合并计算后再刷新。为了调试方便我在面板上接了几个指示灯电源运行灯、PLC运行灯、自动模式灯、报警灯。这几个灯对应内部状态位程序里用置位/复位指令维护。报警灯在传感器故障、接触器反馈异常时点亮并伴随声光报警器。报警逻辑必须放在扫描周期内不能放在子程序中否则可能被跳过。5. 组态与触摸屏监控可选扩展5.1 组态软件选型与画面设计很多同学的毕设只停留在PLC硬件和程序层面但如果你能增加一个上位机监控画面整个项目的完成度会瞬间提升一个档次。我用的组态软件是WinCC Flexible因为它和S7-200 SMART一样出自西门子兼容性最好。如果学校常用组态王、力控也同样可行原理都是通过S7通信协议或OPC方式读写PLC变量。组态画面我设计了三个页面主监控页显示各照明回路的运行状态、当前时间、工作模式参数设置页用于修改定时时间表报警记录页显示历史报警信息。主监控页上放置了4个照明回路的指示灯和控制按钮按钮通过M区位变量控制PLC内部软继电器的置位和复位进而影响输出。这个设计不仅美观答辩时观众一眼就能看懂系统在干什么。5.2 触摸屏与PLC联动调试触摸屏和PLC联调时必须先设置好通信参数。S7-200 SMART本体自带以太网口触摸屏通过以太网连接PLC通信参数使用S7协议IP地址要和PLC在同一网段。我第一次调试时卡了很久原因就是电脑、PLC、触摸屏三个设备的IP地址不在同一网段导致变量连接总是失败。解决办法是单独使用一个工业交换机给三个设备设置好固定IP。联调中还有一个细节触摸屏上的按钮要操作瞬时有效不能一直按住才有效这需要组态中把按钮属性设置为按一下置位、再按一下复位或者使用切换功能。PLC侧则需要对触摸屏写入的置位指令做短脉冲处理防止误触发。6. 调试过程与常见问题排查6.1 现场调试的正确步骤调试环节是毕设最容易翻车的地方最忌讳一上来就接强电、乱点按钮。我总结了一套不会出大问题的调试顺序第一步离线模拟。在STEP 7-Micro/WIN SMART软件里用仿真功能手动给I点和设置V存储器值检查程序逻辑是否符合预期。第二步空载输出测试。断开接触器主回路只给PLC供电强制输出Q点测量PLC输出端子的电压是否正常同时确认中间继电器是否动作。第三步接部分负载测试。只接通一个照明回路确认接触器吸合、灯具点亮正常检查有无异响或抖动。第四步全系统联调。接入所有回路和传感器切换各工作模式运行至少8小时观察稳定性。第五步参数优化。根据现场实测调整定时时间和光敏阈值记录最终参数。6.2 典型问题与解决实录我在整个调试过程中遇到的问题不算多但个个经典这里挑三个重点分享。第一个是接触器吸合后抖动。最初我直接让PLC输出驱动中间继电器中间继电器再驱动接触器结果发现某些回路接触器吸合不实灯光明灭闪烁。排查后原因是接触器线圈回路的电源变压器容量不足导致带载后电压跌落接触器无法保持吸合。这个问题在不增加硬件的情况下可以通过减小接触器型号、增大变压器容量或者换成直流保持的接触器改善我最终选择换了一个稍大容量的控制变压器解决了。第二个是定时开关时间错乱。有一天学生宿舍的照明灯下午四点就亮了检查发现PLC的实时时钟被误改原因是程序中某个变量地址和时钟缓冲区地址重叠导致数据被覆盖。我在读取时钟的指令中把一个无关的VW地址误写到了时间缓冲区产生了覆盖。后来规范地址分配把所有时钟相关数据集中放到VB3000开始的一个段再没有出现过类似问题。第三个是传感器信号不稳定表现为傍晚时灯光忽亮忽灭。经过示波器查看波形发现光敏传感器的信号线上串入了交流接触器吸合时的浪涌干扰。解决办法是信号线改用屏蔽双绞线屏蔽层单端接地同时PLC输入回路并联一个RC滤波电路电阻1kΩ、电容0.1μF把高频噪声滤除。这些做法在工业现场属于常规抗干扰手段但在学生毕设里很少有人主动做恰恰体现了工程思维。6.3 问题排查速查表为了方便快速定位故障我整理了一张简单的速查表分享给需要的同学现象可能原因排查方向PLC不运行电源未接通、CPU开关未置RUN检查24V电源、切换运行模式定时不动作时钟未校准、时间缓冲区被覆盖重新设置PLC时钟检查变量地址光控不灵敏传感器安装位置遮挡、灵敏度低调整安装角度调节灵敏度旋钮输出Q点烧毁没有加中间继电器过载更换输出点加装继电器隔离接触器抖动控制电压下降、线路压降检查变压器容量增大线径受干扰误动作信号线未屏蔽、强弱电交叉加屏蔽线、强电弱电分开走线这张表其实不只适用于照明控制做其他PLC项目也完全可以用同一种排查思路。7. 报告撰写、答辩要点与配套资源7.1 万字报告怎么写才有含金量很多同学把毕业设计报告写成了说明书流水账一样罗列硬件清单这是大忌。我的报告结构是按照课题背景→需求分析→方案设计→硬件设计→软件设计→系统调试→总结展望的顺序写的其中重点放在了方案论证和调试分析两个部分。方案论证要写成我为什么选这个方案要对比PLC控制、单片机控制、继电器控制的优劣给出定量和定性的理由这部分最能体现你的思考深度。调试分析部分要放真实数据比如控制的时间精度测试记录、不同回路启动间隔的波形截图、系统连续运行24小时是否有误动作等。这些数据能证明你的系统确实可靠也最容易拿到高分。我在报告最后还附上了梯形图程序的关键网络截图和I/O分配总表方便评审老师快速抓重点。关于万字这个要求其实不难做到。硬件设计部分把每个器件的选型依据、参数计算写清楚就有几千字了。比如接触器选型我计算了照明回路总电流给出公式和裕量系数这个计算过程不仅让报告显得专业答辩时老师也喜欢追问。7.2 答辩常见提问与回答思路我参加过几次答辩也旁听过其他组归纳了几个被问频率极高的问题为什么用PLC而不用单片机——答PLC可靠性高、抗干扰能力强适合工业环境编程维护方便模块化扩展能力强。如果只是单纯做定时开关单片机成本更低但考虑到系统的稳定性和未来扩展PLC更适合。你的光敏传感器和定时控制优先级怎么处理——答定时是主控制光敏作为辅助条件当定时未到但光线确实很暗时光控可以提前开灯反过来如果定时到了但传感器仍检测到足够光照程序会等待传感器状态确认避免开灯浪费。要现场用程序逻辑说明。系统断电后怎么办——答PLC有断电保护功能时间参数存储在保持区重新上电后自动恢复另外设计了手动应急回路检修人员可以手动强制开关。如果你控制的是交流接触器PLC的输出点能直接接吗——答不能我用的是PLC晶体管输出输出点先接中间继电器再由继电器触点带接触器线圈实现电平隔离和功率放大。这些问题只要真正动手做过基本都能答出来。怕的是照着别人程序抄自己不懂原理被问几句就露馅了。7.3 源文件、报告和讲解视频怎么搭配使用我最终交付的项目包里包含了完整的设计源文件PLC程序工程文件.smart后缀、电气原理图PDF版本、触摸屏组态文件、示例报告文档。这些文件在复现项目时缺一不可。程序源文件需要用STEP 7-Micro/WIN SMART软件打开版本不同可能提示升级下载到PLC前记得先重新编译并设定好PLC型号。电气原理图我用的是CAD软件绘制的两次保存PDF方便老师直接查看。讲解视频比较重要我录了两部分第一部分是硬件演示展示配电箱接线和灯光动作效果第二部分是软件仿真展示程序结构和修改方法。视频总时长大约30分钟配合文档观看即使是零基础的同学也能复现整个设计。如果你是准备毕业答辩建议把视频中涉及调试的片段在答辩现场播放比单纯讲PPT更有说服力。8. 个人经验与扩展建议做完了整套系统我最有感触的一点就是毕设不是把老师给的要求做完就够了而是要把它当成一个真正的工程项目来思考。比如我在做光控逻辑时原本只是简单判断传感器信号但后来考虑到了传感器损坏、信号抖动、安全侧设计这些细节这才是工程思维和课程作业的区别。如果时间允许我强烈建议在这个题目上做一些扩展哪怕只有一个小点都能成为亮点。可以加远程监控功能用物联网网关把PLC数据上传到云平台通过手机APP查看和远程控制照明状态现在很多智慧校园项目都在做这个方向也可以加人流量检测根据人流密度自动调节照明亮度实现二次节能还可以引入PID调节来稳定照度不过这个有点超出毕设范围了。最后再分享一个我忘不了的教训第一次把程序下载到PLC后准备实际控制灯泡时我图省事跳过了中间继电器直接想把220V接触器线圈接到PLC输出端上结果PLC输出点当场冒烟白白报废了一个输出点。那几分钟的教训让我从此把电气隔离、功率匹配这两个词刻在了脑子里之后的任何接线上手前都会先画简图和计算负载。做这个项目的同学不管前面的知识学得多好一定记住PLC输出点是非常金贵的小信号设备去驱动强电负载时必须加中继隔离。这条铁律比任何一条程序指令都重要。
RELATED READING

延伸阅读

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