恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
四层电梯PLC项目完整交付:程序逻辑、HMI联动与电气图纸复盘
首页
资讯中心
/
四层电梯PLC项目完整交付:程序逻辑、HMI联动与电气图纸复盘
四层电梯PLC项目完整交付:程序逻辑、HMI联动与电气图纸复盘
发布时间:2026/10/14 13:48:54
双向运行的电梯是很多PLC学习者的第一道分水岭。我手头这套四层电梯PLC设计项目包含S7-1200的博途程序、HMI画面、电气原理图CAD出图以及配套的万字设计报告和讲解视频。这篇就按完整交付物的顺序复盘一遍先聊需求怎么拆再讲程序逻辑和HMI联动最后落到图纸和文档怎么整理。想练PLC、做课程设计或者带学生搞自动化小项目的都可以拿这份作为参考模板尤其适合那些已经会基础指令、但还没完整跑通过一个多输入多输出系统的朋友。1. 四层电梯的需求拆解与I/O分配动手写程序前的定全局1.1 为什么电梯控制是PLC项目的分水岭很多人的PLC入门项目是电机正反转、红绿灯、传送带分拣这些项目教会你指令怎么用但不会逼你思考真正的控制系统该怎么搭。四层电梯不一样它的输入输出点有二十多个信号之间有明确时序关系还有楼层、方向、呼梯记忆这些状态需要管理。从它开始你才算从写一小段梯形图过渡到设计一个完整控制系统。电梯项目的另一个好处是硬件结构直观。传感器、按钮、接触器、电机、指示灯都是真实的电气元件你可以把梯形图和柜子里的元器件一一对应起来。做了这个项目之后再看复杂设备原理图就不会发怵了因为所有控制系统的骨架都长一个样输入采集、逻辑决策、输出执行。1.2 输入输出信号梳理一张表把硬件定死我做项目的习惯是第一件事永远不是打开博途建项目而是把所有输入输出点列成一张表把点位编号、信号类型、接线端子全部定死后续程序和图纸都跟着这张表走。四层电梯的I/O大致可以分成下面这几组我直接以常用配置为例。信号类别具体信号数量说明层站外呼1楼上行按钮、4楼下行按钮、2/3楼上行与下行按钮6每层呼梯1层只有上行4层只有下行轿厢内选1至4层选层按钮4乘客目的楼层楼层检测1至4层限位或接近开关4判断电梯当前所在楼层门系统开门限位、关门限位、开门按钮、关门按钮4门状态反馈与操作安全信号超载信号、急停信号、门锁信号3全部接入安全逻辑不可省略输出执行上行接触器、下行接触器、开门接触器、关门接触器4电机与门机的主执行器件状态指示上下行方向灯、楼层显示BCD码6供乘客观察可作调试反馈把表列出来之后你会发现输入约有21点、输出在10点以上。S7-1200主机的CPU 1214C自带14个数字量输入和10个数字量输出点数刚好不够所以方案里会加一个数字量扩展模块或者用中间继电器把部分安全信号合并处理。我这次选择的是加扩展模块理由很简单输入输出分开程序调试时信号更清晰报告里也更好讲。1.3 控制策略顺向截车与反向呼梯的处理思路四层电梯程序的核心难点不是到几楼停几楼而是电梯运行方向的组织。如果不加约束程序很容易写成哪里呼梯就往哪跑结果电梯在一个方向上来回穿梭既不安全也低效。我用的是经典的顺向截车策略。电梯一旦确定上行就只响应当前楼层以上的同向呼梯每经过一个楼层就查一次该楼层是否有呼梯或内选目标有就停没有就继续走。运行到最远呼梯楼层后如果此时还有反向呼梯程序再切换为下行方向下行过程同样只响应下方同向呼梯。这套策略用程序实现起来很自然不需要维护复杂的队列只需要在每个楼层判断时做一次逻辑查询。反向呼梯也不用立即处理置一个记忆位等电梯折返后再自动响应。这种设计既贴近真实电梯的工作方式又不会让程序结构膨胀初学者在博途里用梯形图完完全全能写出来。2. 博途程序实现顺向截车、到站判断与门控联锁的三层逻辑2.1 S7-1200硬件组态与程序架构设计硬件组态我用的是TIA Portal配合S7-1200平台。版本上注意一点博途软件版本和CPU固件版本要匹配不然下载程序时会报固件不兼容。硬件组态时选好CPU型号和扩展模块后要把PLC和HMI的IP地址设为同一网段比如PLC设192.168.0.1HMI设192.168.0.2后续下载和联调都靠这条以太网链路。程序架构上不要把所有梯形图都堆在OB1里那样后面找问题会想骂人。我按功能拆成几个函数块用一个全局DB做数据交换当前楼层、运行方向、呼梯记录、门控状态、各类定时器值都在DB里。每个功能块只管自己那块逻辑比如楼层检测块负责把传感器信号换算成楼层数字呼梯记录块负责登记和清除呼梯方向决策块负责判断电梯该往哪走。这样写的好处是单个块出问题时能直接定位不用通篇翻梯形图。程序运行逻辑的大致顺序是OB1先调用楼层扫描把当前楼层更新好然后扫描内外呼梯更新呼叫记录接着根据当前楼层和呼叫记录决定方向再根据方向和当前楼层做到站判断最后执行开关门联锁。每一步的数据都写到DBHMI读取和监控也直接对着这个DB整体非常方便。2.2 核心逻辑的落地呼梯记忆、方向决策、到站停车呼梯记忆我用的是S/R置位复位方式而不是自锁线圈。呼梯按钮信号来了之后用上升沿把对应的呼梯记忆位置位到站开门后再用复位信号清除。用S/R的好处是按钮信号只在这里起作用后续所有逻辑都读记忆位不会出现因为扫描顺序导致自锁丢信号的问题。方向决策这块程序里不要急着判断该去几楼而是先判断现在该不该动。电梯停止时如果上层有呼梯就置上行方向下层有呼梯就置下行方向电梯运行中则保持当前方向直到本方向最远呼梯被响应完毕。我实际用了一个简单方法把上行呼梯、下行呼梯、内选记录都转成对应层号数组方向决策时比较当前楼层与这些层号的最高最低值得出该上行、下行还是停止。到站判断的逻辑则是每到一个楼层就做一次条件检查。以上行为例某楼层的条件包括该楼层有上行外呼置位或者轿厢内选正好选的这一层两者满足其一同时电梯当前正处于上行状态且当前楼层与目标楼层一致才触发停车输出。停车输出接通后不是立刻开门还要等电梯平层稳定所以程序中加了一个短延时把停车信号和开门信号隔开防止门机在电梯还没停稳时就动作。这里插一句我的实测经验楼层传感器如果用的是接近开关安装位置直接决定平层精度。传感器稍微装高一点电梯停下来的位置就会整体偏上到站判断看起来正常但门区和平层区对不上。程序中最好把传感器有信号和信号消失后的处理都考虑上有的项目用的是行程开关机械行程本身有死区也需要程序做对应补偿。2.3 开关门联锁与安全回路程序里的防呆设计电梯不允许没平层就开门也不允许门没关好就运行这两个约束必须在程序里做成硬条件不能只靠操作员自觉。我的实现方式是运行条件做与逻辑组合。上行接触器或下行接触器的输出必须同时满足关门限位接通、门锁信号正常、超载信号未触发、急停未按下、方向接触器无互锁。任何一个条件不满足输出都会被切断。互锁放在哪里除了程序里做互锁我还会在实际输出回路的接线里做接触器互锁形成双保险这是电气图纸里必须体现的。开门条件同样严格。程序要求电梯处于停止状态、平层信号有效、门未在动作中三条件都满足时才允许接通开门接触器。正常到站会自动开门手动按开门按钮也可以触发。关门则是开门到位后延时计时到5秒自动关门中间如果有光幕或安全触板信号就复位计时器重新计时。这个延时我用的是TON定时器预设值和当前值都放在DB里方便HMI上显示和调试时直接改。2.4 离线模拟与真机调试的排查要点程序写完先别急着上真机先用PLCSIM把主要场景跑一遍把明显逻辑错误消灭在软件里。我自己习惯列一个调试用例清单大致包括上电初始状态、1楼外呼上行能否正确响应、电梯在2楼时3楼内选能否被优先响应、2楼和4楼同时呼梯时电梯先去哪层、运行中急停是否立即切断输出、超载后电梯是否拒绝关门运行、最远反向呼梯折返是否正确。模拟调试时我强烈建议把PLCSIM里的输入信号按真实外部接线去模拟而不是直接在DB里改数据。比如模拟1楼外呼就当真有一个按钮接到对应输入点用强制功能把它置1再置0。这样连到真机环境时才不会因为输入刷新机制不一样而出问题。真机调试最容易出问题的是传感器接线方向和输入类型。四层电梯的楼层传感器如果用PNP型接近开关公共端接法、输入信号方向都和NPN型不同接反了会导致楼层检测全部乱套。这个环节我在后面图纸小节里会专门再说一遍因为电气图纸和程序在这一点上必须严格一致。3. 用KTP700做HMI画面动态楼层、呼叫队列与报警弹窗3.1 画面布局监控页、操作页和报警页的分工HMI我选的是KTP700 Basic7寸精简面板分辨率足够把电梯画面做得清晰。画面按功能拆成三页避免一屏堆满控件既不好看也不好操作。第一页是主监控页上半部分画一个竖井简图轿厢用小矩形代替旁边标出1到4层下半部分显示当前楼层数字、运行方向箭头、门状态图标。这一页直接对应真实电梯的楼层信息观众看一眼就能明白电梯当前在哪层、往哪走。第二页是操作页放置内外呼按钮的触摸控件也显示当前呼梯队列用于调试和演示时手动触发呼梯。第三页是报警页收集超载、急停、门故障等报警信息。额外加了一页IO状态监控页这也是我的习惯。在画面上把PLC的每一个输入输出点都做成指示灯对应实际点位编号。调试时如果怀疑某一根线没接好直接看这一页就能判断不用抱着笔记本蹲在柜子前面看变量表效率高很多。3.2 变量连接与动画让轿厢位置在画面上动起来HMI变量连接是初学者最容易翻车的地方。我的经验是不要让HMI变量表里手工填地址而是从PLC的程序里把一个变量直接拖到HMI画面控件上让博途自动生成对应HMI变量。手工填地址一旦填错偏移量画面上显示的数据会莫名其妙排查起来非常痛苦。轿厢位置我做了一个动画。把竖井图里的轿厢图形绑定到当前楼层变量设置HMI的移动属性轿厢Y坐标和当前楼层建立线性对应关系。1层在竖井底部4层在顶部楼层越高坐标值越靠上。电梯运行时画面上轿厢图形会平滑移动虽然只是简单动画但演示效果很直观。方向指示箭头则分别绑定到上行接触器和下行接触器的输出反馈变量上方向状态和实际接触器状态严格保持一致。一致性这一点我特别提醒一下。HMI画面上的运行方向最好直接用实际输出反馈信号而不是程序里方向决策块的中间变量。因为中间变量只代表程序想往哪走不代表接触器真的动作了。如果接线有问题画面上方向箭头和接触器实际状态不一致你一眼就能看出来这对排查问题比一个看着正常的画面有用得多。3.3 报警记录的组态细节触发方式与确认机制报警功能我用的WinCC报警组态把超载、急停、门故障等信号全部做成报警条目。每个报警配置好触发变量、报警文本、报警类别触发变量是PLC里的一个位信号。组态时最容易踩坑的是触发方式。很多人在报警触发里选了电平触发结果超载信号一直是1的时候报警窗口弹个不停确认了又弹出来最后只能把报警显示全部停掉。正确做法是把PLC程序里的超载信号做成上升沿置位、故障恢复后复位的一个辅助位或者直接在报警组态里配置沿触发让HMI只在故障发生的瞬间产生一条报警记录方便查询和确认。报警文本要写得对操作员有用不要写故障1这种让人猜的词。比如超载报警文本写轿厢超载请减少载荷急停报警写急停按钮按下检查安全回路。这些文本可以在博途报警编辑器里直接改报告里截图也更专业。3.4 联调中常见的通信问题HMI和PLC的联调绝大多数问题出在通信链路上。我罗列一下自己碰到过的三种典型情况。第一种报无法连接。先查IP地址PLC和HMI的IP必须同一网段Gateway和子网掩码也别乱填。第二种下载时选了错误的接口。笔记本上安装了多个虚拟网卡的话博途下载对话框里要选对物理有线网卡否则数据根本传不过去。第三种HMI程序下载不完整。有时候组态没完全下载到HMI里运行画面看似正常但部分控件没有数据要检查项目树里的HMI运行系统是否完成下载。还有一个冷门但现实的问题HMI的触摸校准。KTP700有时候因为校准数据异常触摸点会偏移点击按钮总点不到。遇到这种问题先做触摸校准不是改程序能解决的。4. 电气原理图与CAD出图从主回路到端子排的校验顺序4.1 四张核心图纸主回路、控制回路、PLC接线、端子排电气图纸是项目交付物里最容易被敷衍的部分但它恰恰是评审专家和现场人员看得最仔细的部分。我的图纸分成四张每张解决一个层面的问题。主回路图画的是动力部分三相电源进线、断路器、主接触器、热继电器、电机。这张图里电流路径要清清楚楚电机正反转由两个接触器切换相序实现热继电器负责过载保护。控制回路图画的是DC24V控制链路PLC输出点、中间继电器线圈、接触器线圈、按钮回路。PLC的晶体管或者继电器输出不能直接驱动大接触器线圈我习惯加中间继电器隔离这样PLC模块和动力回路之间有一个物理断开点后期维修和换件成本都低很多。PLC接线图具体到CPU和扩展模块的每一个端子每一个输入点接到哪一根线、公共端怎么接都要标注到位。端子排图则是把所有外部导线统一编入端子排给每个端子编号并把去向标注清楚。这四张图从供电、控制、接线、现场配线四个角度把系统描述完整现场人员拿着端子排图和PLC接线图就能直接接线。4.2 绘图规范与图层管理让图纸能被现场直接使用CAD出图时我特别强调图层管理。画图不是把所有线条堆在一起而是分层处理。我常用的图层有四个电气符号层、连线层、文字标注层、图框层。连线捕捉和符号插入都在固定图层上进行文字标注单独放一层这样出图之前把文字层关掉就能看到完整的电气路径排查错误非常直观。线号标注是图纸的灵魂。每个信号端子都编一个唯一线号PLC输入公共端、输出公共端、每个传感器信号、每条电源线全部在线号上体现。端子排图直接引用线号控制回路图和端子排图之间用线号相互索引。这样做最大的好处是图纸不用靠猜任何一根线都能在图纸上找到它的起点和终点。项目报告里引用了线号别人也能对得上图纸。图纸符号建议按行业通用的图形符号绘制不要自创符号。接触器、继电器、电机、断路器、传感器这些都有标准图形CAD里可以做成块库后续画同类项目直接调用。块库管理这个细节看起来不起眼但对于要连续画多个项目的人来说省时间效果非常明显。4.3 图纸与程序I/O的交叉校验最容易出错的环节图纸画完以后必须和程序的I/O分配表做一次交叉校验。我见过不少项目程序和图纸各写各的点位编号对不上最后接线混乱调试时烧模块也是常有的事。校验顺序我建议是先把I/O分配表打印出来然后在PLC接线图上逐项核对每个输入输出点编号再回到控制回路图核对中间继电器的编号最后到端子排图核对线号。任何一步出现不一致当场在图纸上标记修改不要拖延。还有一个容易忽略的环节传感器公共端的接线。四层电梯的楼层检测如果用的是PNP型接近开关公共端接法是把传感器的24V正极接PLC传感器电源输出信号接输入点。如果图纸里公共端画错会直接导致楼层检测全部失灵。我建议在这个地方用一个醒目的标注把传感器类型和接线方式写清楚避免现场混淆。5. 报告万字与讲解演示把控制思路变成可评审的交付物5.1 报告的章节设计从哪里切入才能不水项目报告写不到点子上往往不是字数不够而是结构没有围绕设计决策展开。我写这份报告的时候按七章组织任务书与项目概述、方案论证与硬件选型、电气图纸设计、软件总体设计、程序实现说明、HMI设计、调试过程与结论。每章的立意要清楚。方案论证部分不是把硬件参数抄一遍而是要有对比。比如为什么选S7-1200而不是更便宜的200系列要从通信接口、组态软件集成度、扩展能力几个方面说明这才能体现设计思考。硬件选型章节要有清晰的选型依据比如CPU带载能力、扩展模块的点数计算。软件设计章节要配合程序流程图层次清楚。报告里最容易写得水的内容是系统功能概述。有些报告一上来就是一大堆名词堆砌没有一句话落到具体实现上。正确做法是讲功能就说哪个功能由哪段程序实现、哪个输入输出点参与、HMI上怎么体现每个说法都得有项目里的具体支撑。5.2 让程序说明有论据贴段、解释、边界情况程序说明章节的写法直接决定报告是干货还是贴代码。我的写法固定分三步。第一步先文字说明这一段程序要完成什么子功能输入输出关系是什么。第二步贴出关键程序段截图程序段不宜过长一段不超过十行最好。第三步用文字说明程序是怎么实现第一步的要求的并点出边界情况怎么处理。所谓边界情况就是如果信号不正常会发生什么。比如方向判断那一段我会专门写一段当所有呼梯记录同时清零时方向输出必须回到停止状态当电梯正在上行但最远呼梯已经被响应这时如果有反向呼梯程序如何切换方向。这些边界情况的讨论是评审老师最喜欢看到的东西因为它代表你不是机械地照搬逻辑而是真正在思考系统的行为。报告里不要大段贴整个OB1的程序没有任何阅读价值。功能块级别的程序说明就足够了重点放在你觉得最复杂、最能体现设计水平的那几个块上。5.3 演示讲解的节奏10分钟讲完设计亮点讲解演示是最后一个环节很多人项目做得不错一演示就乱原因是没提前规划操作顺序。10分钟讲解我一般这样分配。前两分钟讲项目目标直接亮总体方案图让听众知道这是个什么系统。接下来五分钟是最重要的从I/O分配表讲起讲到软件核心逻辑用一个简单的流程图说明方向控制的过程。这里一定不要对着程序一行行念而是讲思路怎么采集信号、怎么决策方向、怎么到站停车。最后三分钟切到HMI演示按顺序触发几个呼梯场景每触发一个就解释当前程序在做什么让画面和逻辑同步出现在听众面前。演示时建议提前把所有呼梯记录清空把电梯停在1楼然后从1楼外呼上行开始演示。整个过程按时间线推进顺序不要跳这样听众的思路不会乱。5.4 项目验收自查清单交付之前我每次都要过一遍自查表结合这次电梯项目整理成下面这份。程序是否包含急停、超载、门锁联锁处理上行状态下是否不会误响应下行呼梯反向呼梯记忆是否在折返后正确响应内选目标层是否被优先处理HMI报警是否只在故障发生时触发并能确认清除HMI画面变量是否有持续数据无残留报警图纸与I/O分配表是否完全对应图纸上的传感器公共端接法与程序输入方式是否一致报告中的程序截图与最终版本程序是否一致这九条全部通过项目基本就能放心交出去了。最后再分享一个小经验整套文件交付前把博途项目压缩存档CAD图纸导出PDF作为只读备份报告同时保留Word和PDF版本。这样做是为了防止别人拿到工程文件后误改格式也保证任何设备上打开都能正常查看。做自动化项目交付的不只是能跑的程序还是一套别人能接手、能理解、能维护的完整资料。