简介:欧姆龙PLC四层电梯控制系统设计资料,是一份面向自动化、电气工程及计算机科学方向学习者的完整课程设计方案,适合PLC入门者、职校/高校学生及参加自动化实训的读者参考。资料以电梯垂直运输设备为对象,先概述电梯的定义、用途分类(客梯、货梯、病床电梯等)和曳引、导向、轿厢、门机等主要机械部件;随后切入PLC控制原理,详细讲解设计要求、变频调速回路、输入输出回路、IO点分配以及控制系统程序设计的梯形图逻辑,并配有参考总梯形图与总接线图,便于读者从电气接线到程序逻辑进行整体理解。系统调试部分覆盖硬件安装、软件调试和系统联动结果分析,能够帮助读者快速把握PLC电梯控制项目的完整实施流程。资源包为单个PDF文件,大小2.92MB,内容结构清晰,按章节组织,适合在课程设计、毕业设计或自学PLC控制时对照查阅;目前已有159人学习浏览,对于想通过具体案例掌握PLC编程与调试方法的读者来说,这份资料具有较高的参考价值。
1. 四层电梯控制:比三十层更容易翻车的地方
四层电梯的梯形图看起来不过几百条指令,真正动手调的时候,你会发现难点根本不在楼层计数,而在方向判断和反向记忆。电梯停在 3F,2F 有人向上呼、4F 有人向下呼,轿厢该往哪走?按"先来先服务"还是"同向优先",两个方案跑出来的效果完全不同。这篇欧姆龙 PLC 四层电梯控制方案把变频调速、I/O 分配、梯形图分块、整机调试串成了一条完整链路,适合刚接触 PLC 电梯控制的工程师照着搭一套最小可运行系统,也适合做课程设计时直接拿 I/O 表和程序框架去改。
2. 欧姆龙PLC的I/O分配与控制回路构成
2.1 变频调速主回路怎么搭
电梯的调速核心是变频器驱动曳引电机。三相电源 R、S、T 进变频器主回路,输出端接电动机的快速绕组,制动单元外接在变频器直流母线上,用来缩短停车时的制动时间。旋转编码器装在电机轴端,把实际速度反馈给变频器,变频器内部将给定速度与实际速度做比较,调整输出频率和电压,实现平滑启动和停止。
这里有个容易被忽略的细节:变频器的输入信号不只是"上行""下行"两个方向,还要区分低速、高速和检修速度。低速对应平层前的爬行段,检修速度是维护人员轿顶操作时的慢速运行。速度编码通常用 PLC 的输出点组合给定,比如两个输出点组合出四种速度状态,00 停止、01 低速、10 高速、11 检修。这个编码方式直接决定了后续梯形图里输出点的分配数量。
2.2 输入输出回路与I/O分配表
输入输出回路按功能可以分成六类:厅外呼叫、轿内选层、楼层与方向指示、开关门、平层与强迫换速、安全保护。厅外呼叫负责登记和消除各层站的召唤信号,轿内选层记录乘客按下的目标楼层,上下平层开关保证轿厢停靠时与楼层地面齐平,上下强迫换速开关则防止电梯冲顶或蹲底。
安全回路是整套系统里优先级最高的一组输入,包括轿内急停、轿顶急停、安全钳开关、限速器断绳开关、限速器超速开关、底坑急停、相序保护和上下极限开关。任意一个信号断开,PLC 应该立即切断运行输出。这也是为什么 I/O 里要单独留出安全回路的公共输入点,而不是让程序里每个输出都去检测所有安全条件。
I/O 分配是这套方案里可以直接抄的表格,以下是精简后的关键地址:
| 类型 | 名称 | 地址 |
|---|---|---|
| 输入 | 启动/停止 | 0.00 / 0.01 |
| 输入 | 一楼限位开关 | 0.02 |
| 输入 | 二楼限位开关 | 0.03 |
| 输入 | 三楼限位开关 | 0.04 |
| 输入 | 四楼限位开关 | 0.05 |
| 输入 | 外呼信号(1F上、2F上、2F下、3F上、3F下、4F下) | 0.06 ~ 0.11 |
| 输入 | 轿内选层(1F~4F) | 0.12 ~ 0.15 |
| 输入 | 开门/关门按钮 | 2.00 / 2.01 |
| 输入 | 开门到位/关门到位 | 2.02 / 2.03 |
| 输出 | 电梯上行/下行 | 1.00 / 1.01 |
| 输出 | 开门/关门 | 1.02 / 1.03 |
| 输出 | 七段数码管 a ~ g | 6.00 ~ 6.06 |
注意这个分配表里输入点是跳着用的,0.00 到 0.15 共 16 点,2.00 到 2.03 共 4 点,合起来是 20 个输入;输出用了 1.00 到 1.15 共 16 点,6.00 到 6.06 共 7 点,合起来 23 个输出。选 PLC 型号时,输入输出点数要按这个表做冗余,比如实际用了 20 入 23 出,至少选 24 入 24 出的机型,给后续加功能留余量。
2.3 从分配表看程序的设计边界
看这张 I/O 表能发现两个设计意图。第一,外呼信号没有在输入侧做"上行优先"还是"下行优先"的处理,说明方向仲裁逻辑完全交给梯形图内部完成,这样改规则时不用动接线。第二,数码管直接用 7 个输出点驱动,而不是用 BCD 码加译码器,好处是梯形图里可以逐段控制,坏处是占用的输出点多,如果楼层数超过 8 层,建议改用串行显示模块。
3. 梯形图分块实现:方向判断是核心
3.1 初始化与指层控制
梯形图按功能分块实现:初始化、指层控制、开关门控制、轿内呼叫与标记控制、厅外呼叫与标记控制、上下行选择与指示控制、运行控制。初始化块负责上电时把所有呼叫登记位、方向标志位和定时器全部复位,避免停机前残留的中间状态影响下次启动。
指层控制用四个限位开关的输入信号来刷新当前楼层值,这个当前楼层值会同时用于数码管显影和方向判断。楼层值建议用保持继电器区间的字来保存,比如 HR0,这样 PLC 断电再上电后,电梯不需要重新自学习就能知道自己在哪层。数码管显示用 7 个输出点按共阴极或共阳极的编码表逐段点亮,编码表可以直接查手册,四层电梯只需要显示 1 到 4,逻辑上比十层的简单很多。
3.2 轿内呼叫与厅外呼叫的登记与消除
轿内呼叫的每个按钮对应一个置位位,按下后置位,到达目标楼层后复位。这里有一个容易踩的坑:复位条件不能只用"当前楼层等于目标楼层",因为电梯可能因为换速失败而越过目标楼层,这时应该用"当前楼层等于目标楼层且电梯处于停止状态"或者加一个越层补偿逻辑。
厅外呼叫要区分上呼和下呼,因为同一个楼层的上呼和下呼可能分别由不同方向的乘客触发。比如 2F 的上呼按钮和 2F 的下呼按钮是独立的两个输入,对应独立的两个记忆位。这就带来一个问题:电梯下行经过 2F 时,如果 2F 只有上呼被登记,电梯不应停靠,只有下呼被登记时才停。所以厅外呼叫的消除条件必须同时匹配运行方向和楼层位置。
以下是轿内呼叫登记与消除的欧姆龙助记符片段,对应一个楼层的选层按钮逻辑:
LD 0.12 // 轿内选1楼按钮 OR 100.00 // 或:1楼呼叫已登记保持位 AND NOT 0.01 // 停止按钮未按下 AND NOT 103.00 // 当前楼层不是1楼 OUT 100.00 // 输出到1楼呼叫保持位这段逻辑的思路是:按下选层按钮或保持位已经置位时,只要没按停止键且电梯还没到 1 楼,呼叫就一直保持。到达 1 楼后,限位开关动作会通过另一段逻辑把 100.00 复位,这就完成了"先置位、后复位"的完整闭环。为什么不用单纯的自锁?因为呼叫保持位需要在电梯到达目标楼层后自动消除,自锁电路只能锁住,消不掉。
3.3 同向优先与反向记忆的方向选择逻辑
这是整套程序里最难写的一块,也是五层以内电梯控制的核心差异点。设计要求里写得很清楚:轿厢在运行途中遇到多个呼叫时,优先响应与当前运动方向相同的就近楼层,反方向呼叫先记忆,等轿厢返回时再就近停车。
实现方式是用当前方向标志位把呼叫分成两组:顺向呼叫组和反向呼叫组。比如电梯正在上行,方向标志位为"上行",此时顺向呼叫是所有高于当前楼层的轿内选层和厅外上呼,反向呼叫是低于当前楼层的轿内选层和所有厅外下呼。上行过程中,只要顺向呼叫组非空,电梯就继续上行;顺向呼叫组为空时,检查反向呼叫组,若有则切换方向下行。
用助记符表达方向切换的核心判断可以写成这样:
LD 100.00 // 当前方向为上行 AND NOT 101.00 // 且无顺向呼叫(101.00为顺向呼叫存在标志) AND 102.00 // 反向呼叫存在(102.00为反向呼叫标志) OUT 103.01 // 请求切换为下行这段代码的意思是:电梯正在上行但没有顺向呼叫了,同时楼下有人等着,这时电梯需要反向。103.01 这个请求切换位不是直接输出给变频器的,而是经过一个延时和当前楼层判断后,才真正把输出从 1.00 切到 1.01。加延时的原因是防止电梯在换速过程中瞬间反向,那会对曳引机造成冲击。
3.4 开关门控制与8秒停层定时
设计要求里有一条"每层停 8 秒后继续上升",这个 8 秒不是简单的延时,而是从开门到位信号触发开始计时的。如果轿厢门因为乘客阻挡没有关到位,8 秒计时结束也不能启动运行,因为设计要求明确"轿厢不关门不允许运行"。
开关门控制的流程是:电梯平层停止后,PLC 输出开门信号,开门到位开关动作后停止开门;延时 8 秒后 PLC 输出关门信号,关门到位开关动作后停止关门,然后才允许给出运行指令。欧姆龙的定时器用法是 TIM 指令,编号 0000,设定值 #80 表示 0.1 秒单位乘 80,即 8 秒。
以下是关门到位后允许运行的判断片段:
LD 103.02 // 关门到位信号 AND 103.03 // 当前楼层限位有效 AND NOT 104.00 // 未处于检修模式 OUT 105.00 // 允许运行标志运行允许标志 105.00 会串进所有上下行输出回路中。这个设计的好处是:任何关门不到位、限位失效、检修状态都会直接切断运行输出,而不是靠变频器那边的保护,PLC 层面先做了一道闸,安全回路在硬接线上再兜底,属于双重保护。
4. 变频器参数整定与系统调试流程
4.1 PLC与变频器的速度给定方式
变频器的输入信号为方向指令和速度编码指令。方向由 1.00、1.01 输出点控制,速度编码由两个输出点组合给出,分别对应低速、高速和检修速度。实际接线时,方向信号接变频器的正转/反转端子,速度信号接多功能输入端子,具体端子号要查对应变频器手册,不同品牌差异很大。
加减速时间参数会影响电梯舒适感。常见做法是把加速时间设为 1.5 到 2.5 秒,减速时间设为 2 到 3 秒,具体数值根据电机功率和负载惯量调整。如果减速太快,乘客会有明显失重感;太慢则影响运行效率,可能超出行程时间限制。设计中有"层间运行时间小于 10 秒"的要求,这个指标要同时考虑平层爬行时间,留给高速段的时间通常只有 3 到 5 秒。
4.2 硬件安装与软件调试
硬件安装先检查动力线接线:三相电源是否按相序接入、变频器输出端与电机绕组是否匹配、制动单元电阻是否接牢。然后用万用表逐点核对 I/O 信号,重点检查限位开关是常开还是常闭。很多现场故障不是程序问题,而是常开常闭接反导致 PLC 读到的信号与预期相反。
软件调试建议按"初始化 → 指层 → 轿内呼叫 → 厅外呼叫 → 方向 → 开关门 → 运行"的顺序逐块验证。每加一块就下载一次程序,用监控模式看数据变化,别等全部写完再一次性调试。以下是推荐的分步验证顺序:
| 步骤 | 验证内容 | 观察点 |
|---|---|---|
| 1 | 初始化 | 断电复位后呼叫位、方向位清零 |
| 2 | 指层 | 手动碰限位开关,数码管楼层变化正确 |
| 3 | 开关门 | 按钮触发开门/关门,到位信号动作 |
| 4 | 轿内呼叫 | 按选层按钮,保持位置位,到达后复位 |
| 5 | 厅外呼叫 | 各层上下呼独立登记,方向匹配时才消号 |
| 6 | 方向选择 | 同向优先、反向记忆行为符合设计 |
| 7 | 运行 | 高速、低速切换平稳,平层准确 |
4.3 故障模拟与结果分析
调试不能只看正常流程,必须人为制造故障验证保护逻辑。把 2F 的限位开关信号断开,电梯运行到 2F 时不减速,此时地面的限位开关缺信号,PLC 应该触发超时报警并停车。设计中的第 6 条要求"楼层间运行时间少于 10 秒,否则报警",实现时可以用一个定时器从给出运行指令开始计时,10 秒内没有检测到新的限位信号就置位报警位。
报警位可以输出到指示灯或者蜂鸣器,同时在程序里切断上下行输出。报警后要设计复位逻辑,不能断电重启就自动消除,这样维修人员到了现场能看到报警状态,而不是只见电梯停了不知道为什么停。
还有一个值得测的场景是方向切换瞬间的安全:电梯上行途中突然失去所有顺向呼叫,同时反向呼叫存在,此时方向切换请求生效,但电梯必须确保已经完成减速和平层,才能反向启动。这个逻辑如果在梯形图里没有做好互锁,轻则电梯在井道里急停,重则对机械结构造成损伤。
5. 掉电保持、检修模式与监控的三个实用改进
5.1 用保持区保存呼叫登记
普通 CIO 区的数据在 PLC 断电后会丢失,这意味着电梯停电后乘客按的呼叫全部清零。对于四层电梯来说影响不大,但如果做成商用系统,建议把呼叫保持位映射到保持继电器区,比如把 100.00 换成 HR0.00 这样的地址。这样短时停电再恢复后,电梯能继续完成之前的任务,不会出现乘客明明按了 4F,来电后电梯却停在原地的情况。
修改方法是在数据分配时直接把保持位的地址改为 HR 区,梯形图逻辑不用变,只需要在符号表里替换地址。我建议在项目开始时就把呼叫位、当前楼层、方向标志全部规划到 HR 区,这样后续改地址的工作量最小。注意 HR 区的容量有限,四层电梯用不了多少,但如果是十六层以上的建筑,要提前估算 HR 区够不够用。
5.2 检修模式的慢速运行封锁
设计里提到检修运行是慢速方式,PLC 程序里要增加一个检修模式输入点,可以是 2.03 旁边预留的输入。检修模式生效时,所有自动运行逻辑旁路,只保留检修上行、检修下行两个按钮作为直接输入,速度编码给出检修速度,同时门锁回路短接。这个模式下安全回路仍然有效,急停、限速器信号依然起作用,不能为了检修方便把安全保护全部绕开。
实现时在梯形图里加一个总开关位,检修信号置位时把所有呼叫保持位、方向选择、自动开关门逻辑全部强制复位,运行输出只响应检修按钮的输入。这样改动的最大好处是检修完成后退出检修模式,自动逻辑不需要重新初始化,保持位已全部清空,系统直接进入待机状态。
5.3 用FINS/TCP把楼层状态推给上位机
欧姆龙 CJ 系列 PLC 自带 Ethernet 口,支持 FINS/TCP 协议。如果想把楼层显示、运行方向、报警状态推给监控大屏,可以直接用上位机通过 FINS 读取 PLC 的保持区数据。常见做法是用 Python 的 pyfins 库做一个小脚本,定时读取当前楼层字和方向位,然后写入 MySQL 或直接推送 WebSocket 给前端。
from pyfins import FINS fins = FINS(host="192.168.1.20", port=9600, node=10) fins.connected() data = fins.read(destination="CIO", address="1.00", count=16) print("上行输出:", data[0]) print("下行输出:", data[1])脚本每 500 毫秒读一次,做数据上报。要用这个方案,PLC 侧要预先在 CX-Programmer 里配置好节点号和数据链路,上位机和 PLC 要在同一个网段。这个改进适合把课本里的电梯控制延伸到"电梯物联网"这个方向上,代码量不大,效果直观。
最后留一个排查建议:如果电梯在某一层停靠后数码管显示正常但门不开,优先检查该楼层的开门到位信号和门锁回路,不要上来就改梯形图。绝大多数楼层相关故障都出在限位开关的机械位置偏移上,不是程序问题。用监控模式看输入点状态,比反复下载程序更省时间。
本文还有配套的精品资源,点击获取