ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

三菱FX系列PLC五层电梯控制系统设计与梯形图实现

三菱FX系列PLC五层电梯控制系统设计与梯形图实现 做自动化这些年电梯控制这套逻辑几乎绕不开。不是说每个人都会去写电梯程序而是电梯里那套“顺向截梯、最远端换向、位置自保持”的处理思路几乎把PLC顺序控制和信号互锁里最容易翻车的点全占了。前阵子我刚好完成了一套五层电梯教学模型的完整改造用的就是三菱FX系列PLC从IO分配、梯形图设计到现场联调算是一步步把坑踩平了。这次就借这个“基于三菱PLC的五层电梯控制系统设计探索”的题目把整套思路、关键程序和调试技巧完整梳理出来正在做课程设计、毕设或者想接电梯类小项目现场的朋友可以直接把这篇文章当参考底稿用。1. 项目概述五层电梯的“麻雀虽小五脏俱全”1.1 五层电梯控制系统到底在控制什么很多人一听“五层电梯”觉得不过是个小模型复杂度有限。但真去把需求捋一遍你会发现电梯控制其实是典型的“多输入多输出”实时逻辑系统楼层呼叫、轿厢指令、平层检测、开关门控制、运行方向决策、超载急停保护每一块互相咬合任何一处信号漏处理都会导致逻辑错乱。以这个五层电梯模型为例需要处理的核心信号包括每层楼的上下行外呼按钮1层只有上行5层只有下行中间层上下行都有轿厢内的5个楼层选层按钮开门、关门按钮以及开门到位、关门到位限位信号每层楼一个平层感应器用于检测轿厢是否准确停在楼层超载传感器、急停开关等安全类输入输出侧则需要控制上行接触器、下行接触器、开门继电器、关门继电器、各楼层及方向指示灯从这里能看出来电梯的“控制系统”绝不只是让电机转起来核心矛盾其实在调度逻辑上多个呼叫同时存在时电梯该怎么决定先去哪层运行途中出现新的同向呼叫该怎么响应这就引出了PLC程序里最重要的顺向截梯和反向记忆逻辑。1.2 方案选型为什么选择三菱FX系列PLC做这类中小型设备控制三菱FX系列几乎是绕不开的选择。FX3U或者FX3G这类机型指令丰富、梯形图直观而且GX Works2/3的在线监控和仿真调试做得非常顺手特别适合从零到一搭建这种逻辑密集型程序。拿我这次用的FX3U-32MR来说16路输入16路继电器输出对于五层电梯模型刚好够用IO点分配起来不会太紧张也给后续扩展留了一部分裕量。三菱PLC的另一个优势是内部辅助继电器M和数据寄存器D资源充足做楼层记忆、呼叫登记、方向判断这些中间逻辑时不需要刻意省软元件程序结构可以写得很清晰。选型时有一个很实际的判断标准这个项目的控制难点在逻辑调度而非高速运动控制。电梯模型不像伺服定位那样需要高精度脉冲控制用继电器输出的PLC就能满足通断控制需求此时FX3U的性价比和上手难度都非常合适。2. 控制需求拆解与IO分配设计2.1 输入输出点计算与软元件规划任何PLC项目的起步都是同一件事把外部信号一个个列出来算清楚需要多少输入、多少输出再规划内部辅助继电器。这一步看起来不起眼但做得好不好直接影响后期编程效率。对这个五层电梯项目我按如下方式梳理输入信号信号类别数量具体点位举例平层感应信号51层至5层各一个平层开关轿厢内选层按钮5内呼1至5层外呼上行按钮41层上行、2层上行、3层上行、4层上行外呼下行按钮42层下行、3层下行、4层下行、5层下行开关门按钮与限位4开门按钮、关门按钮、开门到位、关门到位安全类信号2超载、急停合计24预留2至3点备用输出侧相对简单上行接触器、下行接触器、开门继电器、关门继电器再加楼层显示和呼叫指示灯。这样算下来FX3U-32MR的16点输出也够用不过楼层显示和呼梯灯如果全接的话会略显紧张实际项目中我给楼层显示做了编码输出或者直接用了数码管驱动模块。IO分配建议做成一张硬件接线表先画在纸上再进软件尤其是X和Y的地址决定了后面所有梯形图的触点引用。我习惯把输入按功能分区X0至X4平层感应X5至X11内呼和外呼按钮X12、X13开关门X14、X15限位X16、X17安全信号这样后面写程序时触点地址记忆难度大大降低查线也方便。2.2 内部软元件功能规划输入输出分好后就要规划PLC内部的辅助继电器M和数据寄存器D。我见过不少新手在这儿偷懒直接拿M随便用结果程序写到一半自己都分不清哪个M代表哪层楼。我的习惯是把软元件按功能块起名分区比如M0至M4楼层位置记忆当前轿厢在哪一层M10至M14内呼目标楼层登记M20至M23外呼上行登记1至4层5层无上行M30至M33外呼下行登记2至5层下行M50上行运行状态M51下行运行状态M60开门输出状态M61关门输出状态D0当前楼层号D1目标楼层号这样规划之后程序逻辑在脑海里就已经成型了每次平层开关动作时刷新M0至M4和D0呼梯按钮动作时置位对应的M方向判断用当前楼层和目标楼层比较到达目标楼层后复位对应的呼梯登记。整个程序结构等于先有了骨架填充梯形图只是时间问题。2.3 电气接线环节的实操细节IO分配完成后紧接着就是接线。模型的接线虽然不像真梯那么复杂但有几个地方特别容易出问题。平层感应器的信号噪声问题是我的第一个教训。模型电梯如果用的是磁感应传感器信号线又和电机动力线走同一个线槽电机启停瞬间很容易把平层信号淹没掉导致PLC偶尔漏记楼层。解决方法是信号线远离动力线单独走必要时在输入回路上并一个10至20毫秒的RC滤波。另外传感器和感应铁片的安装位置要反复调确保轿厢在每个楼层的触发位置一致不然就会出现某层能停准、某层停不准的怪现象。开关门限位我强烈建议选用机械式限位开关而不是便宜的轻触开关轻触开关在反复撞击下寿命很短后期维护会非常头疼。限位开关的安装位置也要精确门完全打开或完全关闭后再触发行程不要在半程触发否则开关门输出会被提前切断。安全回路的处理也值得多说一句。虽然教学模型不需要完全符合真梯的国标安全要求但急停开关和超载信号的逻辑必须认真对待。急停信号在程序中要能做到无条件切断所有运行输出并且需要手动复位后才能重新启动这就是典型的安全保持逻辑。超载信号的优先级要高于一切正常的开关门和运行指令超载时只能执行开门动作。3. 核心控制逻辑与梯形图实现3.1 楼层位置检测与自保持逻辑楼层位置判断是所有电梯逻辑的基础位置错了后面全乱。我这个设计用的是每层一个平层感应器的方案轿厢到达某一层时该层的平层感应器X接通程序同时完成两个操作把当前楼层写入D0并把对应的楼层位置M置位。这段逻辑用梯形图实现时有一个细节非常关键必须使用“互锁置位”而不是简单赋值。每一层平层感应器都可能因为信号抖动或干扰出现短暂误动如果只做简单线圈驱动位置信号会七上八下。我处理的方式是当第一层平层X0接通置位M0同时用RST指令复位M1至M4当第二层平层X1接通置位M1同时复位M0、M2至M4依此类推这样无论信号怎么闪最终只有当前真实经过的楼层对应的M保持ON状态其余全部复位。这也是老工程师常说的“互锁置位法”在位置检测类的场景里极其好用。D0里存的是当前楼层数字我用的是区间比较或者MOV传送的方式。每个平层感应器触点接通时执行一次MOV K1到D0、MOV K2到D0这样的操作这样后续方向判断和楼层显示都能直接使用数值比较程序会简洁很多。3.2 方向判定与顺向截梯算法电梯方向的判定是整个程序的核心。我最初的实现很简单粗暴有任意目标楼层高于当前楼层就上行有任意目标楼层低于当前楼层就下行。但实际调试发现这种简单逻辑在出现反向呼叫时会频繁反转方向电梯在楼层之间来回折腾非常不专业。后来我改成了标准的运行方向保持逻辑电梯一旦开始上行就维持上行状态直到上方已经没有需要响应的目标楼层才允许切换为下行。这里的“目标楼层”包括内呼和经过登记的外呼。外呼登记和顺向截梯的实现思路是这样的当电梯上行经过某层时如果该层的上行外呼按钮已经被按下并且该楼层高于当前楼层那么该楼层会被登记为顺向停靠目标。对于下行方向同理。具体的梯形图处理我用的是“目标楼层判定后置位M”的方式例如电梯上行状态M50为ON当前D0等于23层上行外呼信号X7接通则置位M223层上行外呼登记当轿厢在运行中到达某一层且该楼层等于任意一个被置位的登记楼层时先停梯再复位对应的登记这里有一个容易忽略的细节外呼按钮按下时只会点亮呼梯指示灯登记是否成功要取决于当前运行方向和位置。如果电梯正在向上走你按了下行的外呼楼层在电梯上方那这个信号暂时不会被处理直到电梯在上方完成所有同向任务后换向时才会响应。这种“反向记忆”功能让电梯整体的运行效率明显提升乘客体验也好很多。3.3 运行启动与换速停靠的时序设计运行控制这部分包含两个关键动作启动和停靠。模型电梯虽然是低速运行但程序结构应该仿真梯的逻辑否则以后做真梯项目还得打掉重来。启动时序上我给上行和下行分别做了互锁。上行输出Y0接通的条件是有上行目标D1大于D0、无下行运行状态M51、开门到位、关门到位、无急停、无超载。下行同理。这里关门到位信号绝对不能省否则门没关电梯就跑了属于严重安全隐患。停靠逻辑用的是提前换速思路。在模型上做不到真梯那种距离传感器分级减速但可以用楼层计数配合平层信号实现当轿厢经过目标楼层的前一层时接通换速信号将运行输出从高速切换为低速低速状态下继续爬行到目标楼层平层开关动作然后完全停梯。这个换速概念虽然在小模型上看起来无所谓但却是从模型过渡到真梯必须掌握的重要思路。停梯后的开门时序同样重要。平层到位后先停梯延时0.5秒待轿厢完全站稳再输出开门。如果停梯瞬间马上开门轿厢还有惯性门打开时乘客会感觉晃动明显。这个小延时在模型上感受不出差别但程序习惯一定要养好。3.4 开关门控制与安全联锁开关门逻辑看起来简单实际上坑也不少。我的控制策略是这样的平层停梯且轿厢门机构在初始状态时自动开门开门按钮在任何停梯状态都能触发开门开门到位后开始延时计时延时结束自动关门关门过程中如果开门按钮或光幕信号动作立即停止关门并重新开门关门到位后才能允许运行输出延时关门的时间参数我用的是定时器T0设定为5秒。开门到位信号X14接通后启动T0T0计时到达后触发关门输出Y3。如果中途X12开门按钮或X16超载信号断开则立即复位关门输出同时复位T0并接通开门输出重新开门。这个“关门中反向开门”的处理必须做成互锁避免开门输出和关门输出同时动作把继电器打坏。一个特别容易犯的错误关门限位信号和开门限位信号在同一时刻都断开。门在中间位置时两个限位都是断开的如果程序里用“非开门限位”来当关门条件就会导致门在中间位置被反复开关。正确做法是同时检测两个限位状态只有关门到位为ON且开门到位为OFF时才真正确认门已关闭。4. 实操过程从工程创建到现场联调4.1 GX Works2工程搭建与参数设定软件部分我用的GX Works2这是三菱PLC最主流的编程环境。新建工程时选择对应PLC型号FX3U系列编程语言选梯形图。工程建好后第一步不是急着写逻辑而是先把全局标签和注释表做好。我给每个输入X、输出Y、辅助继电器M都起了名字比如X0叫“一层平层”、M10叫“一层内呼登记”。这一步的意义在写长程序时才能体会到没有注释的程序三天后再看就像看天书有了完整的注释表排查问题时甚至不用打开梯形图光看软元件监控表就能定位大部分逻辑问题。参数设定方面FX3U默认的输入滤波时间通常是10毫秒对于电梯这类存在接触器抖动和机械振动的场合适当增加到20毫秒能明显减少误触发。但要注意不要加得太大否则快速呼梯信号可能被滤掉一般20毫秒以内比较合理。4.2 梯形图编程的模块化拆解步骤拿到这么多逻辑一次写完整个梯形图是不现实的。我的习惯是把程序按功能拆成几个独立块每一块写好、测试好再合并第一块楼层位置检测与当前楼层刷新用平层信号驱动M和D的置位复位第二块内呼和外呼信号的登记与复位第三块目标楼层判定与上下行方向互锁第四块运行输出与换速控制第五块开关门时序与安全联锁第六块指示灯输出每一块之间通过辅助继电器M作为接口联系比如电梯是否在运行状态由M50、M51表达目标楼层存储在D1中这样块与块之间耦合度很低。写完后用GX Works2的编译检查功能过一遍重点是看有没有双线圈冲突、有没有输出重复赋值。双线圈问题在初学者里极其常见同一个Y0在程序多处驱动结果只有最后一个生效而且极难排查。4.3 仿真调试的步骤与心得GX Works2自带的仿真器是我前期调试的主力工具。仿真模式下没有真实IO全部通过软元件强制功能来模拟输入。比如模拟轿厢从1层运行到3层我就手动把X0一层平层强制ON再OFF确认D0变为1再把X2三层平层强制ON确认D0变为3同时M2置位其他M复位。方向逻辑的仿真更有意思先将当前楼层D0设为2置位M12三层内呼登记此时程序应输出上行Y0然后手动模拟三层平层接通检查是否完成停梯和开门。再用同样的方式验证反向呼叫、顺向截梯等多组场景。仿真能发现大部分逻辑漏洞但有一个问题它发现不了真实IO的时序差异。仿真中信号是理想的而实际中平层开关动作、按钮按下、接触器吸合都有几十毫秒的延迟这些延迟累积起来可能导致逻辑顺序错乱。所以仿真通过后一定要上真机测试。4.4 现场联调的关键步骤联调阶段我按照“先静后动、先手动后自动、先单步后连续”的原则进行。先把所有输出强制断开逐一短接输入端子确认X信号都能被PLC读到再逐个强制Y输出确认外部执行机构动作正确。这一步看似浪费时间但能排除大量接线错误。通电测试时我最初只给控制回路供电不给电机供电先验证所有门逻辑和平层信号都能被正确检测。然后接上电机但让电梯处于检修模式手动点动上下行确认接触器方向和电机转向一致。最后才进入自动运行模式逐层测试呼梯响应。自动模式测试要覆盖的场景包括但不限于单层呼梯从1层直接呼3层多层顺向同时按2层上呼、3层内呼、4层上呼电梯应依次停靠反向记忆电梯上行中按下行呼梯电梯应在完成同向目标后换向响应超载模拟超载时电梯不关门不走持续开门急停测试运行中拍急停电梯立即停止所有输出复位每个场景测试完记录下来遇到问题回到梯形图里查逻辑改完再编译下载重测。这个过程虽然重复但恰恰是积累经验最快的环节。5. 常见问题与排查技巧实录5.1 电梯“迷路”楼层位置丢失现象是电梯运行几次后不知道该在哪层停了有时候明明在2层却显示3层或者某次停靠后位置信息完全丢失。排查顺序先看平层感应器的安装位置和灵敏度。我遇到过一个典型案例感应铁片和传感器距离太远轿厢在震动下偶尔触发不到导致该层的平层信号根本没进PLC。用GX Works2在线监控输入点状态手动让轿厢缓慢经过各层确认每个平层X信号都能稳定接通这是第一步。第二步查程序逻辑。如果平层信号正常但D0频繁跳动问题大概率出在置位互锁不完整。比如只有“当X1接通时置位M1并复位M0”但漏掉了复位M2、M3、M4就会留下多个楼层位置同时为ON的隐性故障。用监控表观察M0至M4的状态正常情况下任何时候只有一个是ON发现多个ON就去找RST漏项。还有一个容易被忽略的原因数据寄存器D的掉电保持问题。FX3U的部分D区默认是停电保持的如果当前楼层存在D0这种保持型寄存器里断电重启后D0还保留旧值可能与实际楼层不一致。解决方法是把D0改成非保持区或者在程序开头统一初始化D0、M0至M4。5.2 运行方向反复切换现象是电梯在中间层附近来回改变方向乘客能明显感觉到电梯在“犹豫”。这个问题的根源几乎都在目标楼层判定逻辑。最简单的方向判定“有高层呼叫就上行有低层呼叫就下行”是行不通的因为当呼叫同时出现在不同楼层时方向会被不停翻转。正确的做法是前面提到的运行方向保持逻辑已经在上行状态时只要还有任何高于当前楼层的已登记目标就一直维持上行只有在上方目标全部清空后才允许切换到下行。排查时用监控表同时观察M50、M51和D0、D1。如果发现运行中D1的值不断变化说明目标楼层刷新逻辑有误可能在到达某层时误复位了其他楼层的呼梯登记。这里有个调试技巧把每个呼梯按钮对应的登记M全部加进监控表按下一组呼梯后逐步观察哪个M在什么时机被置位和复位马上就能定位问题出在登记条件还是复位条件。5.3 开着开着突然停住不动另一种高发故障是电梯运行过程中突然停住但没有任何报警。排查这类问题要先看急停和超载信号是否被误触发。我在实际项目中遇到过超载传感器灵敏度调得太高轿厢运行震动导致传感器间歇性动作程序检测到超载就立刻停梯并开门。解决方法是调整传感器安装位置避开震动源或者在程序里对超载信号加一个去抖延时。另一个常见原因是门锁信号闪断。模型电梯的关门到位限位如果接触不良运行中轻轻一震就瞬间断开程序检测到门锁断开立即切断运行输出。这种问题用在线监控里观察X15关门到位的状态就能发现处理方式是换用接触更可靠的限位开关同时在程序门锁信号的输入上增加20毫秒的滤波。有时候问题出在电机侧的接触器上。接触器线圈电压不足或者触点磨损会导致运行中主触点拉弧断开电梯失去动力停滞。这种故障光看PLC程序是发现不了的需要用万用表检查接触器主触点两端的电压降。5.4 使用在线监控快速定位逻辑问题调试过程中最常用也最有效的工具就是GX Works2的软元件监控功能。我会把关键中间变量全部放进监控窗口包括所有平层信号X0至X4所有楼层位置M0至M4和D0所有呼梯登记M10至M14、M20至M23、M30至M33运行状态M50、M51开关门状态M60、M61和定时器当前值一组故障发生后先冻结监控画面把故障瞬间各个软元件的状态截下来然后按时间顺序反推是哪个条件先发生了变化。这种排查方式比对着梯形图瞎猜高效得多。一个非常实用的功能是软元件批量监控里的“变化值记录”可以设置触发条件记录启动前后几百毫秒内各软元件的时序变化。很多间歇性故障在正常观察时一闪而过根本看不清但变化值记录能把整个过程完整还原基本能一击命中问题所在。6. 扩展方向从模型电梯到真实设备的距离6.1 从五层模型扩展到真实电梯的核心差异做完这套五层模型后很多人会问同一个问题这套程序能直接用在真梯上吗答案是逻辑骨架可以沿用但安全框架必须彻底重写。真梯和模型的差距主要在三个层面。第一是安全回路真梯有完整的安全钳、限速器、门锁回路、急停回路等硬件安全链这些是外部硬接线形成的保护体系PLC只在安全链闭合后才能运行而不像模型这样把安全功能放在PLC程序里实现。第二是拖动系统真梯的变频调速需要根据载重、速度曲线、平层精度做闭环控制普通继电器输出的FX系列无法满足要求通常需要变频器配合编码器或者专用电梯控制板。第三是通信架构真梯的轿厢和机房之间往往采用串行通信或总线方式传输信号几百个IO点不可能全部拉硬线。但这不代表模型白做了。所有楼层调度、顺向截梯、反向记忆、呼梯登记与复位的逻辑在真梯PLC程序里是同样存在的。我周围不少做电梯维保和改造的同行面试考核的内容依然是这些基础逻辑逻辑写得清不清楚直接影响能不能被录用。6.2 三菱PLC通讯扩展上位机监控与数据交互如果你用的PLC支持通讯扩展可以试着做一套上位机监控功能这对理解工业通讯非常有帮助。三菱FX系列最常用的扩展方式有两种一是通过编程口实现计算机与PLC的通讯二是加装485BD通讯板走Modbus RTU或者三菱专用协议。在实际应用中最常见的做法是PLC端通过485BD板和上位机组态软件通讯。组态软件以Modbus RTU方式读取PLC中的软元件数据比如读D0获取当前楼层读M50、M51获取运行方向读M0至M4获取楼层位置状态。更进一步的方案是上位机直接下发呼梯指令比如在监控画面上点击“呼梯到3层”上位机通过通讯写入M12的置位指令PLC响应后执行完整的楼层调度逻辑。如果你手头没有组态软件也可以直接用串口调试工具按Modbus RTU报文格式手动发指令比如读D0的报文是“01 03 00 00 00 01 CRC”返回的数据里就能解析出当前楼层。这个操作虽然简单却是理解工业现场设备如何交换数据的绝佳入门练习。6.3 更复杂的调度策略扩展基础的五层电梯程序完成后你可以在调度策略上继续深入。比如全并行电梯调度算法不止看目标楼层高低还要综合考虑呼梯方向、轿厢当前载重、各楼层等待时间等因素决定先响应哪组呼梯。这种算法在真梯的群控系统中非常常见但即便是单梯场景也可以设计得更智能。一个可以尝试的改进是“顺路捎带”策略。电梯上行过程中如果某层有下行呼梯但按路径来看电梯会在该层停靠后再往上走这个下行呼梯就不急于响应等电梯完成上行后下来时再处理。这种逻辑能用简单的位置比较实现但需要考虑的边界情况比想象中多比如五层上行过程中在四层出现了下行呼梯到底要不要停取决于呼梯时刻和当前位置的动态比较。这些扩展方向不需要改硬件纯粹在PLC程序里就能实现是验证逻辑思维的很好训练。6.4 最后想说的几点个人经验做这个项目最大的体会是电梯程序看起来复杂但拆开来看无非是“位置判断、目标登记、方向决策、执行输出”四个环节。每个环节都有明确的输入输出边界只要IO分配清晰、中间寄存器规划到位、互锁复位不偷懒程序的可靠性自然会上去。我踩过的几个比较深的坑整理在这里供大家参考IO分配和软元件规划阶段多花半小时后期调试至少能省两天注释一定要写特别是M和D的含义不写注释的程序隔一周自己都看不懂复位逻辑一定要完整楼层位置和呼梯登记都是用置位指令做的置位方便但容易漏复位所有安全信号的处理做成“常闭逻辑”也就是安全时信号为ON、故障时为OFF这样断线故障能自动暴露而不能被忽略现场调试如果出现难以理解的间歇性故障优先怀疑接线和传感器其次才是程序逻辑按这套思路完整走一遍五层电梯控制系统基本能稳定运行而且整个过程中积累的调试方法可以直接迁移到其他PLC项目里。如果你正在做类似的课程设计或者工程项目欢迎拿着这套框架去对比自己的程序结构把方向判定和互锁复位这两个核心逻辑吃透你会发现电梯程序其实没那么难。
返回列表