简介:面向电梯PLC技能竞赛的“比赛工程2”全套工程文件包,主要实现电梯初始化上行至10层、六部十层联动控制逻辑,适合参加自动化、机电一体化赛项的高职院校学生、备赛指导教师及工业现场PLC调试人员参考。压缩包共84个文件,总体积约9.91MB,包含15个cfs配置脚本、11个xml工程参数、9个png界面截图、若干dat数据文件与plf程序文件,另有索引、日志等辅助类型,可据此复现完整比赛工程,掌握多电梯调度、平层定位、上下行初始化等核心程序的编写思路。已有1247人下载学习,适用于需要对照完整赛题方案、梳理初始化时序与上下行策略的读者。包内还保留转换日志和项目校验截图,能辅助排查不同版本PLC工程迁移中的配置差异,例如从13.0.1.0转换至14.0.0.0时的数据兼容问题,便于在备赛冲刺中快速定位故障点、理解工程模块划分,并迁移到同类电梯控制项目中深入研习。文件按功能归类,工程结构直观,可作为后续二次开发的基础模板。
1. 比赛工程2的电梯PLC考点:先从“初始化上行至10层”说起
如果你正在备赛或准备一道电梯PLC的面试题,很多人第一个反应是“我会梯形图”“我懂起保停电路”。但真正到了比赛工程2这类六部十层的电梯项目里,考官往往不按套路出牌——他第一眼不看你能不能把电梯跑起来,而是看你上电之后怎么初始化。“初始化上行至10层”这六个字,表面上是让电梯从当前层跑到顶层,实际上是把轿厢位置、信号状态、安全回路三个黑匣子一次全部校准。这道题答不好,后面程序写得再漂亮,在考官眼里都是空中楼阁。这篇笔记就把考什么、哪几个考点必出、真题怎么答、哪里最容易翻车,一次性拆开讲透。
2. 考点分布与电梯PLC控制系统的核心模块:先搞清楚考官在考什么
2.1 六部十层的电梯PLC,必考的三大模块拆解
比赛工程2的核心配置是六部电梯、十层站、PLC统一调度。跟单梯项目比,六部十层多出来的考点不在“如何让一台电梯动起来”,而在“六台电梯怎么不打架”。根据这类比赛和面试的普遍考法,考点分布通常集中在三个模块。
第一个模块是信号采集与I/O分配。十层楼意味着每台电梯至少有十层的内呼按钮、十层的平层感应、每层两个方向的外呼按钮(一层通常只有上行,顶层只有下行)。六台电梯加起来,输入输出点位数非常可观。考点不是让你背点数,而是考查你如何用最合理的I/O分配方案,让程序里每一个X点、Y点都能对应到实际物理按钮和指示灯。
第二个模块是运行逻辑与调度算法。内呼响应、外呼分配、顺向截梯、反向不响应、最远端反向、群控分区,这一套逻辑是拿分的大头。六部电梯的难点在于,同一时刻可能有多个外呼信号,你不但要让某台电梯正确响应,还要决定“派哪台去”最合理。
第三个模块是安全保护与故障处理。门锁回路、上下行互锁、超速保护、防碰撞逻辑、初始化过程中的信号屏蔽,这些在竞赛评分表里往往占三成以上的分值。尤其注意“初始化上行至10层”这个动作本身,它就是安全逻辑的一部分——上电瞬间位置信号可能是错误的,必须先让轿厢走到一个已知楼层,才能建立可靠的位置基准。
2.2 PLC扫描周期与电梯程序的运行机制:理论题也爱考
电梯PLC和普通PLC编程有个显著差异:电梯是运动控制系统,程序扫描周期直接关系到制动距离和平层精度。面试官或评委常问的一个经典问题是:“PLC扫描周期对电梯运行有什么影响?”
这里要先记住一个基本结论:PLC的扫描是“输入采样→程序执行→输出刷新”三个阶段循环往复。对电梯来说,如果扫描周期是10毫秒,而电梯以1.5米/秒运行时,一个扫描周期内电梯走了15毫米。平层感应开关的检测、门区信号的捕捉,都受这个数字影响。
这类题通常这么答:先说出扫描周期对信号响应的延迟作用,再结合实际——电梯在平层区需要同时检测减速点和平层点,如果程序扫描太慢,轿厢冲过头,就需要额外的“再平层”功能。所以比赛工程2的程序里,凡是涉及平层、门区、限位的信号,都必须放在扫描周期内稳定采样的逻辑段中,不能靠定时器去延迟判断。
2.3 真题演练:I/O分配表怎么画才能拿满分
比赛和面试里经常给一道这样的实操题:“请为单台十层电梯设计I/O分配表,并说明每个输入点的作用。”
答题思路分三步。第一步按信号类型分组:内呼信号(1层到10层内呼按钮,10个点)、外呼信号(1层上行1个,10层下行1个,中间8层每层2个,共18个点)、平层与门区信号(每层1个平层感应,可用1个点加层站判断代替)、轿厢内开关门按钮、门锁与安全回路信号。第二步做地址规划,不要跳着编地址,让同类信号连续,方便程序里做索引寻址。第三步留出备用点。
给出一个推荐格式的I/O分配表示例:
| 信号类型 | 元件 | 地址分配 | 说明 |
|---|---|---|---|
| 内呼 | 1层内呼按钮 | X0 | 轿厢内按下,登记1层请求 |
| 内呼 | 2层内呼按钮 | X1 | 轿厢内按下,登记2层请求 |
| 内呼 | …… | …… | 每层一个点,连续分配 |
| 外呼 | 1层上行按钮 | X20 | 1层大厅向上请求 |
| 外呼 | 2层上行按钮 | X21 | 2层大厅向上请求 |
| 外呼 | 2层下行按钮 | X22 | 2层大厅向下请求 |
| 平层 | 平层感应开关 | X40 | 轿厢到达层站时导通 |
| 安全 | 门锁回路 | X50 | 所有厅门轿门闭合才为ON |
答题时一定要补一句:I/O分配的关键不是地址数字本身,而是同类型信号集中排列和留有冗余点。因为比赛现场如果某个输入点损坏,备用点可以直接改地址,不用改程序结构。这道题考的是工程习惯,不是考记忆力。
3. 高频考点:六部十层群控必考的四个问题与答题模板
3.1 内呼与外呼信号的登记、消除与优先级判断
电梯程序里最基础也是最容易丢分的逻辑,是呼梯信号的“登记”和“消除”。很多初学者写的程序是“按一下按钮,电梯就动了”,完全没有“登记保持”的概念。在六部十层的比赛工程2里,正确的逻辑链是:按下内呼按钮→信号保持登记→电梯运行到达该层→平层停车→开门→信号消除。
这里有一个很容易错的细节:内呼信号必须保持,而外呼信号必须区分方向。比如你在一层按下上行,电梯从五层下来接你,如果它到达一层后你不上车,这个上行信号不能自动消除,得等乘客进入轿厢并关门后才取消。而如果另一个方向的下行梯先到一层,你的上行信号依然保持有效。这背后的考点是“独立记忆”,不能把内呼与外呼做简单的串联逻辑。
这类题通常这么答:先把信号登记理解为一个“置位”操作,再用到达条件做“复位”。举个例子,某层内呼信号的消除条件是本层平层且开门到位。如果是外呼信号,还需要增加对运行方向的判断——同方向到达才消除,反方向到达只能顺路带人,但不消除信号。
面试官最想听的是,你能分清“到达本层”和“顺向截梯”是两个不同的复位条件。
3.2 群控调度:分区调度与派梯逻辑
六部电梯十层楼,最核心的高频考点是“派哪部梯去响应外呼”。比赛和面试里最常考的调度策略有三种:先到先服务、统一集选、分区调度。
先到先服务逻辑简单,但在六梯场景下效率极低,经常出现几台电梯同时冲向同一层。统一集选让所有电梯都响应所有信号,程序好写,但能耗大、候梯时间长。比赛工程2这种六梯配置,标准答案通常是分区调度:把十层分成低区(1-5层)和高区(6-10层),每区分配三台电梯;程序里再加上一个“空闲梯支援”逻辑——低区某台电梯长时间无任务时,可以去响应低区的远端外呼,但不能跑到高区去抢任务。
分区调度的答题模板可以这样说:每台电梯维护一个“任务列表”,包含内呼请求和外呼请求;程序通过比较各电梯当前楼层、运行方向和任务数量,选择系数最小的电梯响应新外呼。系数的计算可以简化为“距离 + 方向惩罚”。如果目标电梯正在反方向运行,就在距离值上加一个惩罚项;如果目标电梯空闲,则直接分配。
这里面试官追问最多的是:“如果六台电梯都在忙着响应内呼,新来的外呼怎么办?”答案不是“找一台空的”,而是“计算哪一台最先能到达并处于同方向”。所以程序里必须有一个“预测到达时间”的算法,而不是简单的最近楼层优先。
3.3 初始化上行至10层:到底在做什么
现在回到标题里这个核心动作:“初始化上行至10层”。很多考生第一次接触这个要求时觉得莫名其妙——为什么初始化非要上行,为什么非要到10层?
从比赛工程2的设定来分析,六部电梯共同从底层站上电启动,所有电梯的位置信号处于未知状态。初始化上行至10层,本质上是让每台电梯都执行一次“找位运行”:从当前层(通常是1层)向上逐层运行,每到一层检测平层信号,直到最高层10层。整个过程不响应任何内呼和外呼信号,门保持关闭,到达10层后反向运行到指定待命层,程序才进入正常运行模式。
这个设计有三个目的。第一,建立统一的位置基准,所有电梯从10层这个已知点开始调度,避免出现某台梯“不知道自己在哪层”的混乱。第二,测试所有平层感应器和楼层信号是否正常——上行过程中哪一层信号缺失,程序就直接报错,而不是等运行中才发现。第三,保证安全,初始化过程中屏蔽所有呼梯信号,防止乘客在系统自检时误入轿厢。
面试时如果被问“初始化为什么一定设置到10层而不是中间层”,答题要点是:顶层是位置最明确的物理端点,上行到顶后必定经过所有平层感应器,能完成全楼层信号自检;中间层无法确认上方还有多少层未检测,逻辑上不够完整。
3.4 真题演练:电梯运行方向判定题
一道高频面试题:“电梯在5层,有7层内呼、6层外呼下行、8层外呼下行,电梯如何决策运行方向?”
答题思路分两层。第一层判断电梯当前状态,如果电梯静止,首先登记所有信号,然后按照“同向优先”原则选方向:5层上方有7层内呼和8层下行,顺路经过6层时只接7层内呼,经过8层时接下行外呼。第二层判断顺路条件:电梯上行经过某层时,只响应“该层内呼”和“该层上行外呼”,6层的外呼是下行方向,所以即使顺路也不能停靠。
这道题的易错点在于,很多考生只看“经过6层就停”,忽略了方向匹配。正确的口诀是:电梯只响应同方向呼梯,反向呼梯记录不执行。回答时要补充一句:如果电梯当前在5层且正下行,那就先向下响应4层及以下的外呼,再掉头向上处理7层内呼。方向判定的本质,是让电梯“一趟一个方向”,不能边走边频繁换向。
4. 实操考点:PLC扫描周期与防碰撞逻辑
4.1 为什么六部电梯不能只靠梯形图顺序写完
比赛工程2里最常见的“翻车”现场,是选手把单梯逻辑复制六份,然后并联在一起。结果程序也能动,但六台电梯各跑各的,外呼信号没人管,或者两台梯同时到达同一层抢开门。
根本原因在于:PLC程序是循环扫描的,不是并行执行的多线程。梯形图只能表达“当前扫描周期内各触点的逻辑组合”,指挥多电梯的“调度算法”,必须依靠共享数据区和状态标志位来实现。正确的做法是建立“公共数据块”,存放所有电梯的当前楼层、运行方向、任务状态、外呼登记信息。每台电梯在扫描周期内更新自己的状态,而群控逻辑统一读取这些数据做派梯决策。
结构化文本(简称ST)是更容易实现这类算法的语言。比如要登记一台电梯的内呼信号,可以用类似下面的ST逻辑写在一个独立的程序段中:
IF (内呼按钮_7层) THEN 内呼登记[7] := TRUE; // 置位登记,保持到被响应 END_IF; IF (平层信号 AND 当前楼层 = 7 AND 门开到位) THEN 内呼登记[7] := FALSE; // 到达且开门后,清除登记 END_IF;关键在于“置位/复位”的思路:按钮按下只是瞬间的脉冲,登记必须保持。很多考生直接写“按钮按下就让电梯去7层”,这在按钮短暂导通后立即失效,电梯根本不会动。结构上把登记和消除分成两个独立的判断块,是这道实操题的核心写法。
4.2 安全互锁与上下行接触器的双向保护
电梯PLC程序中,安全回路不是用来执行功能,而是用来防止事故。比赛工程2的评分表里,上下行接触器互锁是必查项。
所谓互锁,就是上行接触器的线圈回路中串入下行接触器的常闭触点,下行接触器的线圈回路中串入上行接触器的常闭触点。这样即使程序输出错误,物理上也不可能上下行同时接通。在PLC程序里,除了硬件互锁,还要加一层软件互锁——输出上行时,必须把下行输出强制为OFF。
下面是一段典型的软件互锁ST代码:
// 输出上下行指令前,先做强制互锁 IF (上行条件 AND NOT 下行输出) THEN 上行输出 := TRUE; ELSE 上行输出 := FALSE; END_IF; IF (下行条件 AND NOT 上行输出) THEN 下行输出 := TRUE; ELSE 下行输出 := FALSE; END_IF;这套逻辑能让程序在异常情况下自动切断反向输出。面试官追问的关键点是“如果上下行条件同时满足怎么办”——回答是:以上行优先,并立即停梯报警。互锁逻辑必须在程序的最末端做最后一道判断,让物理接触器始终保持在安全状态。
4.3 真题演练:电梯在平层区突然信号丢失怎么办
比赛调试现场最真实的“血泪经验”是:电梯运行得好好的,突然在平层区停车,然后什么信号都没了。这类题的考点是“信号丢失时的默认处理”。
答题思路按三步说。第一步判断信号类型:如果平层感应器信号丢失,程序无法确认当前楼层,必须进入慢车爬行模式,以检修速度继续寻找最近的平层开关。第二步处理轿厢位置:位置信号丢失时不能使用记忆楼层值,必须重新校准。第三步报警输出:通知控制中心,同时把本梯从群控调度中摘除,让其余五台电梯继续运行。
面试官最想听的关键句是:“信号丢失不可怕,可怕的是程序拿错误的位置数据继续参与调度。”所以比赛工程2的程序里,所有楼层信号都需要经过“有效性校验”——连续几个扫描周期读到的信号一致,才认为是有效信号。
5. 易错题与常见错误:电梯PLC竞赛里最容易丢分的五个点
5.1 内呼登记后没有信号保持
这是最基础的失分点。很多初学者写内呼逻辑时,直接用一个常开触点让电梯响应,按钮松开后信号消失,电梯停在原地。这类题错在把“瞬时按钮”当成“保持信号”。
为什么错:PLC扫描周期是毫秒级的,按钮按下通常只有几百毫秒,如果程序里没有置位锁存,扫描结束后登记信号就不存在了。怎么答对:必须用置位指令登记,用到达条件复位。写程序时记住一句话——呼梯信号的本质是“记忆”,不是“触发”。
5.2 平层停车只靠定时器
有些选手图省事,电梯到站后延时2秒就开门。这在比赛现场会被直接扣分,因为完全没考虑平层精度。
错在把时间控制当成了位置控制。电梯是否正确停靠,只能由平层感应器判断,定时器无法应对平层信号提前或滞后出现的情况。正确做法是以平层感应信号作为停车触发条件,再叠加一个“门区确认”延时,确保轿厢完全进入门区后再开门。
5.3 外呼信号不分方向,到站就消除
这是所有六部十层项目里最容易集体翻车的地方。程序里写了“该层有外呼就停车、开门、消除信号”,结果一台电梯上行时,把前面某层的下行外呼也响应了,信号还消失了,导致下一趟下行没人接。
为什么错:外呼信号属于“方向性信号”,上行外呼和下行外呼是两个独立的登记位。下行乘客在下行电梯到达前,信号必须持续有效。怎么答对:消除条件必须同时判断运行方向。上行的电梯只能消除该层的上行外呼,下行电梯只能消除下行外呼。
5.4 初始化过程中没有屏蔽呼梯信号
比赛验收时经常发生这种事故:电梯上电后开始初始化上行,结果半途有人按了外呼,电梯直接停在中途响应呼梯,初始化失败。
错在缺少对运行模式的状态切换。初始化阶段系统处于“自检模式”,此时所有呼梯信号应被强制忽略,只保留安全信号和位置检测信号。这个状态位一旦建立,必须在到达10层并反向运行到待命层后才解除。
5.5 群控调度时“最近距离优先”一刀切
这是高级考点。很多选手在分配外呼时直接找离呼梯层最近的电梯,看似合理,实际上如果这台电梯正在相反方向高速运行,它到达目标层的时间反而比一台更远但同方向的电梯更长。
为什么错:最近距离只考虑了空间,没考虑时间与方向成本。怎么答对:调度算法要加入方向惩罚系数。电梯当前方向与外呼方向一致时,距离系数为1;方向相反时,距离系数乘以2或3;电梯空闲时设为最低优先级,优先派空闲梯。
6. 答题技巧与押题思路:从会写程序到拿高分的关键一跃
到了临近比赛或面试的阶段,别再死磕梯形图指令了。你缺的不是编程能力,而是“把工程逻辑讲清楚”的能力。电梯PLC项目的考核,从来都是程序占一半、讲解占一半。评委看的不只是你有没有让电梯跑起来,而是你能不能回答出“为什么这么设计”。
第一个技巧是:讲初始化时,要先讲“状态”,再讲“动作”。不要一上来就说“上行到10层”,而是先说“系统上电后位置信号未知,因此进入找位状态;找位状态下的动作是屏蔽呼梯、慢速上行、逐层检测;到达10层后状态切换为正常运行”。这样的讲法,评委一听就知道你理解系统的整体架构,而不是只会照抄代码。
第二个技巧是:调试时养成看“标志位”的习惯。比赛工程2的现场调试中,很多选手用的是“黑匣子式”调试——电梯不动了就改一点程序再试,完全靠猜。正确的做法是在程序里加一个专门的“状态显示区”,把当前楼层、方向、模式、优先级这几个关键标志位实时显示在触摸屏上。电梯出问题,先看状态区哪个标志位不对,再倒推是哪段逻辑失效。这套方法能省下大量现场调试时间,也是评委非常认可的工程能力。
第三个技巧是押题方向。六部十层的比赛工程,评委最爱追问三件事:一是六台电梯在高峰期如何避免扎堆,二是初始化上行过程中遇到门锁断开怎么办,三是一台电梯故障后群控如何重新分配任务。这三个方向都指向同一个核心——你的程序有没有“容错”和“重新分配”机制。标准答案是:故障梯隔离,其未完成的内呼任务重新分配给同区最近梯,外呼保持登记状态不变,由群控重新派梯。这几句话说出来,基本把高分拿稳了。
最后说一个自己的教训。早前我做类似工程项目时,总觉得初始化那段代码“只是走个流程”,随便写个上行指令就交差了。直到一次现场验收,电梯上电后没走到10层,半路停住,所有楼层信号全部乱掉,我才意识到初始化不是“功能”,是“地基”。从那以后,我每次写电梯PLC程序,都强制自己先写初始化状态机,再写运行逻辑。顺序对了,后面再怎么改都不会乱。希望这篇笔记能帮你在比赛和面试里少走一段弯路,把该拿的分稳稳拿到。
本文还有配套的精品资源,点击获取