简介本资源是一套基于西门子SIMATIC S7-1500 PLC开发的单部六层电梯控制系统完整工程包面向自动化控制专业学生、PLC初学者及工业控制实践者解决电梯逻辑控制核心功能落地难题。内容涵盖电梯初始化、集选调度、开关门联动、启停平层、超重报警、上下限位保护及层门联锁等关键控制逻辑并配套WINCC上位机监控界面组态与PLC-WINCC通讯配置具备完整软硬件协同验证能力。压缩包共206个文件30.37MB含23个XML项目配置、18个CFS系统文件、15个DEL日志、11个PNG界面截图及多个DB数据库、AP15_1/ AP17工程文件、TVX/TVD变量表等结构清晰便于分模块学习与调试。目前已有218人下载学习读者可直接导入TIA Portal V17及以上版本运行调试获取可实操的PLC程序框架、WINCC画面源工程、通讯连接配置范例及典型故障处理提示。1. 单部六层电梯PLC控制程序不是“跑通就行”而是把初始化、集选逻辑、开关门时序、启停动态全压进一个循环周期里你写过电梯控制程序吗不是仿真动画不是按钮点灯演示而是真接PLC——IO点一接断电重启后电梯能自动归零、响应召唤、精准平层、不卡顿、不飞车、不撞顶冲底。很多初学者卡在“能动”和“可靠动”之间按下2楼召唤轿厢来了却停不准集选记忆了3个指令到第2个就漏掉开门按钮按下去门只开一半又缩回断电再上电轿厢停在3楼却报“未初始化”死锁。这不是逻辑错是状态机没闭环、定时器没对齐、初始化没兜底、启停斜坡没约束。这份单部六层电梯PLC程序核心就四件事电梯上电后强制回零并校验限位有效性初始化→ 按楼层召唤和轿内指令合并为集选队列集选控制→ 开关门动作必须满足安全光幕超时力矩反馈三重判据开关门控制→ 启动加速度斜坡与停车减速度斜坡全程受速度曲线约束启停控制。它适合正在调试真实电梯实训台的高职学生、刚接手老旧楼宇改造的现场工程师以及想把PLC状态机从“if-else堆叠”升级到“事件驱动时间片调度”的自学者。程序用梯形图实现兼容主流品牌三菱FX3U、西门子S7-1200、欧姆龙CP1E所有功能模块可独立测试、参数可调、故障点可注入。2. 初始化不是清寄存器而是建立电梯的“可信坐标系”电梯上电第一件事不是响应呼叫而是重建自身位置基准。很多程序把“初始化”简单理解为“M8000置位后清所有M、D”结果断电重启后轿厢停在4楼PLC却认为在1楼一启动就撞限位。真正的初始化是让PLC通过物理信号确认轿厢当前绝对位置并校验传感器有效性形成后续所有控制的可信起点。2.1 初始化流程回零 限位自检 位置同步三步不可省初始化不是单次动作而是一个带超时保护的状态机。典型流程如下强制低速下行至下极限SQ0输出下行指令以5Hz脉冲驱动变频器同时监控SQ0输入。若3秒内未触发报“下极限故障”停止初始化。触发SQ0后计数器清零开始向上慢速运行以10Hz脉冲上行每经过一个楼层光电开关SQ1~SQ6对应D寄存器如D100加1。当D1006时说明已越过6楼平层位置。减速停稳后反向下行至1楼平层开关SQ1此时D100应为1将D100值写入“当前楼层寄存器D200”并置位“初始化完成标志M100”。提示SQ0下极限、SQ1~SQ61~6楼平层、SQ7上极限必须是机械式硬限位开关不能仅依赖编码器计数。PLC初始化阶段严禁使用编码器值作为唯一位置依据——编码器断线或丢脉冲会导致灾难性定位错误。2.2 关键参数配置为什么必须设“慢速运行频率”和“超时阈值”初始化过程中的两个核心参数直接决定系统鲁棒性参数名寄存器/地址推荐值作用说明下行慢速频率D10005Hz防止轿厢因惯性冲过SQ0确保可靠触发。过高易跳过过低延长初始化时间。上行慢速频率D100110Hz平衡响应速度与定位精度。10Hz对应约0.15m/s足够让光电开关稳定触发。初始化超时时间D10023000ms全程最大允许耗时。超时即停机并点亮故障灯避免电机堵转。// 三菱FX系列梯形图逻辑片段关键段 // 初始化状态机S0等待启动S1下行找SQ0S2上行计数S3下行找SQ1S4完成 LD M8000 // PLC运行标志 AND M101 // 初始化请求如急停复位后首周期 ORF M102 // 手动初始化按钮 ANF M100 // 未完成标志 OUT S0 LD S0 OUT Y0 // 下行输出接变频器DIR SET M103 // 启动定时器T03s超时 LD X0 // SQ0输入 ANDF M103 OUT S1 LD S1 OUT Y1 // 上行输出 MOV K0, D100 // 清计数器 LD X1 // SQ1触发 INC D100 LD X2 // SQ2触发 INC D100 // ... SQ3~SQ6同理 LD D100 CMP K6, D100, M104 // 计数到6 LD M104 OUT S2这段逻辑的关键在于所有动作都绑定在状态继电器S0-S4上而非简单用M触点串联。状态机保证每一步执行完毕才进入下一步避免因扫描周期抖动导致步骤跳过。例如若不用S1而直接用X0常开触点控制Y1当X0因振动短暂断开Y1会立即关闭上行中断初始化失败。2.3 初始化失败的三种典型现象与根因初始化失败不是“没反应”而是有迹可循。以下是现场最常遇到的三个坑附带诊断路径现象上电后轿厢不动HMI显示“初始化超时”原因SQ0接线松动或触点氧化导致X0信号无法闭合或变频器未使能Y0输出但电机不转。解决用万用表测X0对COM电压上电瞬间应为DC24V检查变频器“RUN”端子是否接入参数P01.01是否设为1外部端子控制。现象初始化过程中轿厢冲过SQ0撞到缓冲器原因D1000设定值过大如设为20Hz下行速度过快SQ0来不及响应或SQ0安装位置偏移实际触发点已过最低安全位置。解决将D1000降至3Hz实测用游标卡尺复测SQ0滚轮中心距导轨底部距离标准值应为±1mm。现象初始化完成后按1楼召唤轿厢却上行到2楼才停原因SQ1光电开关被灰尘覆盖信号延迟或D100计数逻辑中SQ1触发条件写成“X1常闭”误将遮挡当有效。解决用棉签清洁SQ1透镜在梯形图中检查所有楼层开关触点类型——平层开关必须用常开X1非“X1常闭”。3. 集选控制不是“谁按得早谁先服务”而是按优先级方向距离动态生成服务序列集选控制是电梯的大脑。很多人以为就是“把所有召唤按钮按下后存进队列FIFO执行”结果出现3楼有人按上行4楼有人按下行轿厢却先去3楼再折返4楼空跑一程或者满载时还响应新召唤导致超载报警后反复启停。真正的集选必须实时计算当前运行方向、轿厢负载、各召唤与当前位置的距离、以及指令的紧急程度如消防迫降动态生成最优服务序列。3.1 集选逻辑核心方向判断 距离计算 队列重组三要素集选不是静态队列而是每100ms扫描一次所有输入重新评估服务顺序。其决策树如下确定当前方向由Y0下行、Y1上行输出状态及D200当前楼层与D201目标楼层大小关系共同判定。若Y0ON且D200D201则为下行中。收集有效召唤扫描X10~X151~6楼外召上行、X20~X251~6楼外召下行、X30~X35轿内指令。剔除无效项① 当前楼层外召如轿厢在3楼X12按下无效② 与当前方向相反的外召如上行中X24按下无效③ 超载时屏蔽所有新召唤X40ON。生成服务序列对剩余召唤按“同向最近优先”排序。例如轿厢在2楼上行中有效召唤为X133楼、X144楼、X155楼则序列[3,4,5]若此时X233楼下行也按下因方向相反暂存“反向队列”待上行结束再处理。// 西门子S7-1200 STL片段简化版集选队列生成 // 假设MW100当前楼层MW102目标楼层MB10运行方向(0停,1上,2下) // 步骤1清空服务队列MB20~MB29 L 0 T MB20 T MB21 // ... T MB29 // 步骤2扫描同向上行召唤X10~X15 A I0.0 // X10 (1楼上行) JNB _next1 L MW100 I 1 JN _next1 // 当前楼层≤1楼且X10按下 → 有效 L 1 T MB20 // 写入队列首 _next1: A I0.1 // X11 (2楼上行) JNB _next2 L MW100 I 2 JN _next2 L 2 T MB21 _next2: // ... 继续X12~X15 // 步骤3按MB20~MB29值升序排列冒泡法此处略这段代码的关键在于所有召唤判断都嵌入“当前楼层 ≤ 召唤楼层”条件。这是防止“上行中响应下方楼层”的核心约束。若漏掉此条件X101楼上行在轿厢位于5楼时也会被加入队列导致错误折返。3.2 集选队列的边界处理满载、反向、消防迫降如何介入真实场景中集选必须让位于安全与法规。以下三个边界条件会强制中断当前队列条件触发信号队列处理方式说明满载X40ON称重传感器清空所有新召唤仅执行已入队指令防止超载运行X40需接硬件常闭触点断线即报故障。反向召唤当前上行中X256楼下行按下将X25存入“反向队列MB30~MB39”上行结束后再处理避免频繁换向提升效率。消防迫降X50ON消防开关立即清空所有队列运行至1楼开门禁用所有外召符合GB7588-2003第14.2.2条必须硬线接入不可软件屏蔽。注意消防迫降信号X50必须采用双通道输入如X50与X51同时为ON才生效防止单点故障误动作。这是验收必查项。3.3 集选控制常见问题排查为什么“明明按了按钮电梯却不来”集选失效往往不是逻辑错而是信号链断裂。以下是三个高频故障点现象某楼层外召按钮按下对应输入X13无反应但其他楼层正常原因该楼层召唤盒接线端子氧化接触电阻增大PLC输入模块无法识别24V信号或按钮内部弹簧疲劳触点压力不足。解决用万用表测X13端子对COM电压按下按钮时应≥20V拆下按钮用砂纸打磨触点。现象轿厢上行至4楼X144楼上行已亮但轿厢不停直冲5楼原因SQ44楼平层开关信号延迟超过PLC扫描周期如10ms导致D200未及时更新或D200更新逻辑中SQ4触发后未清“运行中”标志M200。解决在SQ4输入端并联0.1μF陶瓷电容滤波检查D200赋值后是否执行RST M200。现象满载后X40ON但电梯仍响应新召唤原因X40信号接入PLC时未做硬件滤波存在尖峰干扰导致M40满载标志频繁通断或程序中X40判断写在集选逻辑之后扫描顺序导致本周期仍处理新召唤。解决X40输入端加RC滤波电路1kΩ0.1μF将X40判断提前至主循环首行用LD X40 OUT M40单独一行。4. 开关门控制不是“Y2ON就开门”而是用三重安全判据锁死每一个动作周期开门关门看着简单却是电梯事故高发区。很多程序只用一个输出点控制门机结果出现开门中途遇人阻挡门不反弹反而夹人关门时安全光幕被遮挡门却继续关闭停电后再来电门机失控猛关。真正的开关门控制必须集成安全光幕反馈、关门力矩监测、超时保护三大判据任一条件不满足立即中止动作。4.1 开门流程光幕释放 力矩允许 时间窗三重校验开门不是“按下按钮就开”而是分阶段验证预开门条件检查M100初始化完成ON且M200运行中OFF且X30~X35轿内指令或X10~X25外召有有效信号。开门执行Y2ON开门输出同时启动T0开门超时定时器设为3s。实时监控若X60开门到位开关在3s内闭合 → 成功置位M300门开到位若X61安全光幕报警在开门过程中闭合 → 立即Y2OFF启动T1再开门延时1s若T0超时且X60未闭合 → 报“开门故障”Y2OFFM301ON。// 欧姆龙CP1E梯形图逻辑开门控制核心 // 输入X60开门到位X61安全光幕报警X62关门到位 // 输出Y2开门Y3关门 LD M100 // 初始化完成 AND NOT M200 // 非运行中 AND (X30 OR X31 OR ... OR X25) // 有有效召唤 ANDF M300 // 门未开到位 OUT Y2 // 启动开门 // 超时保护 LD Y2 OUT T0 // T0K30 (3s) LD T0 ANDF X60 // 超时且未到位 OUT M301 // 开门故障 // 光幕干预 LD Y2 AND X61 // 开门中光幕报警 OUT Y2 // 立即关断Y2注意此处用ANDF会更安全但需考虑PLC扫描特性 OUT T1 // 启动再开门延时这段逻辑的精妙在于Y2的关断条件有两个独立路径——T0超时 和 X61报警且都直接切断Y2输出。这比“用M中间继电器汇总条件再控Y2”更可靠避免M触点粘连导致Y2失控。4.2 关门流程力矩反馈 光幕二次扫描 防夹重试机制关门比开门更危险必须增加力矩反馈。标准做法是变频器输出关门指令后实时读取电机电流值模拟量AI0当电流突增超过阈值如1.5A立即反转开门。阶段判据动作初始关门Y3ONT2启动关门总时限5s门机以低速关闭中途检测AI0 D300力矩阈值Y3OFFY2ON开门0.5s光幕扫描X61ON任何时刻立即Y3OFFY2ON重试机制连续3次关门失败T2超时报“关门故障”保持开门禁止新召唤提示力矩阈值D300必须现场标定。空载时设为0.8A满载时设为1.2A程序中取两者平均值1.0A。切勿直接用变频器默认值否则空载时易误判。4.3 开关门控制避坑指南那些让你半夜被叫去现场的玄学问题开关门问题最折磨人因为现象随机、复现难。以下是血泪经验总结的三条铁律现象开门到位后Y2已OFF但门缓慢回退2cm原因门机变频器“刹车时间”参数如P10.03设为0机械惯性导致过冲或门导靴润滑过度摩擦力不足。解决将P10.03设为0.3s用WD-40清洁导靴再涂少量锂基脂。现象关门时X61光幕明明没遮挡却频繁报警原因光幕发射器与接收器未严格对齐环境光如阳光直射干扰或X61输入端未接24V滤波电容。解决用激光笔校准光轴在X61端子并联100nF电容。现象断电再上电门机自动关门夹住维修人员原因PLC程序未在初始化流程中强制置位M300门开到位导致上电后Y3ON或变频器“断电保持”功能开启记忆上次输出。解决初始化最后一步增加SET M300变频器参数P00.02设为0断电清除输出。5. 启停控制不是“Y0/Y1通断”而是用S曲线速度规划约束加减速全过程电梯舒适感的核心在于加速度变化率jerk可控。很多程序用“Y0ON→电机全速→Y0OFF→急停”模式结果乘客眩晕、钢丝绳抖动、导靴异常磨损。真正的启停控制必须生成平滑的S型速度曲线让加速度从0线性上升到最大值再线性下降至0全程受变频器能力约束。5.1 S曲线生成原理用查表法实现PLC可算的加减速包络PLC算不了实时微积分但可以用查表法逼近S曲线。核心思想将整个启停过程分为100个时间片每个片输出一个速度给定值0~50Hz这些值预先存入D400~D499寄存器。加速段0~30片D400~D429 0, 0.5, 1.0, ..., 14.5 线性升速匀速段31~70片D430~D469 15.0 保持额定速度减速段71~100片D470~D499 14.5, 14.0, ..., 0 线性降速PLC每10ms读取一个D值通过模拟量输出AO0送给变频器。// 三菱FX3U查表法S曲线关键循环 // D500当前片索引0~99D501速度给定值 LD M200 // 运行中 ANDF M201 // 非加速中用于切换状态 OUT M202 // 启动加速 LD M202 INC D500 // 片索引1 LD D500 CMP K100, D500, M203 // 是否到100片 LD M203 OUT M201 // 加速结束 // 查表D5000→D400, D5001→D401... MOV D500, D502 // 复制索引 ADD K400, D502, D503 // D503 D400 D500 DMOV D[D503], D501 // 读取对应速度值这段代码的可靠性在于用D500作为唯一索引避免多处修改导致错位。若用“D500400”直接计算地址一旦D500溢出如到101地址错乱速度突变。5.2 启停参数整定加速度、减速度、匀速段时长如何协同S曲线三段参数不是孤立的必须满足物理约束参数寄存器推荐值约束关系加速时间D6001.2s对应30片×10ms300ms但实际需留余量故设1.2s减速时间D6011.0s通常略短于加速因制动扭矩更大匀速速度D6021.0m/s对应变频器50Hz需根据曳引机速比折算最大加速度D6030.8m/s²GB7588规定≤1.5m/s²取0.8留安全裕度注意D600与D601必须与D400~D499查表数据严格匹配。若D6001.2s但D400~D429只有30个值则每片时间1.2s/3040ms需将PLC定时器设为40ms而非10ms。5.3 启停控制常见故障排查为什么“启动时抖一下”或“停车冲过头”启停异常往往源于参数与机械不匹配现象启动瞬间轿厢明显“咯噔”一下原因D603最大加速度设得过大电机扭矩突增曳引轮与钢丝绳间产生微滑移或变频器“转矩提升”参数如P7.01设为0低频转矩不足。解决D603降至0.6m/s²P7.01设为3%。现象停车时轿厢冲过平层位置5cm才停原因D601减速时间设得太短减速度过大制动器响应滞后或SQ1~SQ6安装位置偏高实际平层点在开关触发前。解决D601增至1.3s用激光测距仪复测SQ1中心距地高度调整至标准值±2mm。现象满载时启动无力爬行速度上不去原因D602匀速速度设为1.0m/s但变频器“额定频率”参数P1.01仍为50Hz未按实际电机铭牌设置或称重传感器X40未接入变频器“转矩补偿”端子。解决P1.01设为电机实际额定频率如48Hz将X40信号接入变频器AI2端子启用转矩补偿功能。6. 实战验证技巧用“三阶注入法”快速定位90%的电梯控制故障我带徒弟调试电梯时从不一上来就看梯形图。而是用一套固化流程先注入电源级故障再注入信号级故障最后注入逻辑级故障。这套“三阶注入法”能在15分钟内定位绝大多数问题比盲查逻辑高效十倍。它不依赖HMI报警只靠PLC输入输出点的物理响应是现场工程师的后悔药。6.1 第一阶电源与驱动级注入——验证“电有没有送到执行器”目标确认PLC输出、变频器、门机、抱闸等强电环节工作正常。操作极简只需万用表注入点操作预期响应故障定位Y0/Y1输出端PLC运行中强制M200ON上行测Y0对COM电压应为DC24VPLC侧或AC220V经继电器后若无电压 → PLC输出模块坏或保险熔断若有电压但电机不转 → 继电器触点烧蚀或变频器未使能变频器UVW端子Y0ON时测U-V间电压应有0~220V交流随S曲线变化若无电压 → 变频器故障或参数P01.010本地控制抱闸线圈上电瞬间测抱闸线圈两端应有DC24V且能听到“咔嗒”吸合声若无声 → 抱闸电源保险熔断或线圈断路提示抱闸测试必须在轿厢空载、检修模式下进行带载测试可能溜车。6.2 第二阶信号级注入——验证“传感器有没有正确说话”目标绕过PLC程序直接激励传感器看PLC输入点是否响应。这是查“按钮失灵、开关不触发”的最快方法传感器注入方法预期PLC响应常见陷阱外召按钮X10用导线短接X10与COM端子X10对应LED灯亮M1000按钮按下标志ON短接时勿碰相邻端子X10与X11间距仅2.54mm平层开关SQ1用磁铁靠近SQ1感应面X1对应LED灯亮D200值变为1磁铁必须N/S极正确部分SQ1只认S极安全光幕X61用手遮挡光幕任意一束X61 LED灯亮Y2/Y3立即OFF遮挡时观察所有光束指示灯单束失效即不合格6.3 第三阶逻辑级注入——验证“程序有没有按预期思考”目标在PLC中强制置位关键中间变量观察输出行为隔离逻辑错误变量强制值观察点诊断结论M100初始化完成ONY0/Y1是否仍为OFF若ON → 初始化逻辑未清空运行标志初始化流程未闭环M200运行中OND200是否随Y0/Y1变化若不变 → 平层开关计数逻辑缺失位置反馈未接入主循环M300门开到位ON按X301楼指令Y2是否OFF、Y0是否ON若Y2仍ON → 开门锁定逻辑错误门状态与运行状态互锁失效从那以后我每次接到新电梯项目都会在第一次上电前用三阶注入法把电源、信号、逻辑链过一遍。不是为了炫技而是因为90%的“程序跑不通”根源都在物理层——一根虚接的线、一个氧化的端子、一个装反的开关。程序永远是对的错的只是我们没看清它面对的真实世界。希望帮到你。本文还有配套的精品资源点击获取