当前位置: 首页 > news >正文

先给大伙儿拆解下五层电梯PLC程序的实现逻辑。这玩意儿核心是状态转移和信号竞争,咱们直接上硬核部分。(文末附IO表与接线说明)

五层电梯三菱plc程序有注释,有io分配表,电气接线图。 实现的功能如下。 (提供学习,由于文件形式发送) 功能:1、外呼梯功能:电梯门外有呼叫信号时,电梯运行到呼叫楼层停止,然后电梯开门到达一段时间后电梯关门,消去呼叫信号。 2、内呼梯功能:电梯门内有呼叫信号时,电梯运行到呼叫楼层停止,然后电梯开门到达一段时间后电梯关门,消去呼叫信号。 3、电梯门联锁功能:电梯运行时处于关门状态,不能开门。 电梯开门时电梯关门不运行,。 电梯关门时电梯开门不运行 4、顺向截梯功能:在电梯向上或向下运行时,当出现同方向的内、外呼梯信号出现时,电梯运行到相应的楼层停下响应呼叫后消去呼叫信号,而相反方向的呼叫信号不响应。 5、有优先级。

IO信号分配骚操作

按钮信号直接采用矩阵扫描节省输入点,比如X0-X4接1-5层上行按钮,X5-X9接下行按钮。电梯内部楼层选择用Y0-Y4直接对应1-5层,开门信号用Y10配合光电传感器X20做互锁。

// 外呼梯信号锁存(以3楼上行为例) LD M8000 // PLC运行常ON OUT TR0 // 临时寄存器 LD X2 // 3楼外呼上行按钮 OR M100 // 自保持触点 ANI T0 // 开门完成定时器 OUT M100 // 外呼信号保持

这里用T0定时器实现开门保持3秒逻辑,M100作为外呼信号记忆。注意用ANI闭点确保关门后自动复位呼叫信号。

方向决策是重头戏

// 运行方向判断(当前层=D0,目标层=D1) CMP D0 D1 M50 // 比较当前层与目标层 MOV K1 D2 // 方向寄存器初始化 LD M50 // D0 < D1时置位上行 OUT Y20 // 上行输出 LD M51 // D0 > D1时置位下行 OUT Y21 // 下行输出

这段用到了三菱PLC的比较指令,M50/M51分别对应大于/小于状态。D2寄存器的妙处在于存储临时目标层,配合MOV指令动态更新。

门锁互锁必须够狠

// 门机安全互锁 LD Y20 // 上行运行中 OR Y21 // 或下行运行中 OUT M30 // 运行状态标志 LD M30 ANI X20 // 门位置传感器(0=关到位) OUT Y10 // 开门动作禁止

当M30=1(电梯移动时),直接切断开门输出回路。这里用了硬件互锁+软件互锁双重保险,实测中遇到过光电传感器误触发,多加了个T5延时判断。

顺向截梯的代码骚套路

// 上行时响应同向呼叫 LD Y20 // 上行状态 CPS &lt;= D0 D1 M60 // 当前层<=目标层 LD M60 AND M100 // 外呼上行信号 OUT M101 // 有效截梯信号 MOV D1 D3 // 更新临时目标层

这里用了CPS指令实现动态范围比较,重点在于只更新比当前运行方向更远的目标层。比如电梯在2楼上升时,4楼外呼会被响应,但1楼外呼直接无视。

优先级处理的黑魔法

  1. 内呼 > 同向外呼 > 反向外呼
  2. 紧急停止信号直接切断所有输出
// 内呼优先处理 LD Y0-Y4 // 内呼楼层按钮 ORB // 或逻辑块 MOV K5 D10 // 优先级权重赋值 CMP D10 D11 M70 // 与当前目标优先级比较 LD M70 OUT M200 // 抢占执行标志

用D10-D14寄存器做优先级权重池,实时比较当前执行指令与新信号的权重值。实测发现用浮点数运算反而容易丢信号,直接上整数比较稳如老狗。

避坑指南

  • 层高脉冲计数必须加毛刺滤波(建议用T192定时器做10ms滤波)
  • 电机抱闸输出记得加0.5秒延时防止溜车
  • 开关门力矩用PWM控制比单纯定时更靠谱

完整IO表:

X0-X4 | 1-5层外呼上行 X5-X9 | 1-5层外呼下行 X10-X14 | 轿厢内选层 X20 | 门关到位信号 Y0-Y4 | 楼层指示灯 Y10 | 开门动作 Y11 | 关门动作 Y20/Y21 | 上行/下行输出

接线图要点:

  • 所有按钮COM端接24V-
  • 输出端继电器线圈并接续流二极管
  • 门机变频器控制线必须双绞+屏蔽接地

这程序最秀的地方在于用D寄存器玩出了数组效果,后期扩展楼层数只需要改比较值域。曾经在工地被甲方逼着加了个消防迫降功能,其实就是在优先级里插了个最高权重信号,下次可以单独唠这个。

http://www.cnnetsun.cn/news/69455.html

相关文章:

  • 「码同学」2025VIP性能测试课程
  • 零基础转行AI产品经理:大模型学习路线与面试题库全攻略
  • iOS 组件化:模块拆分、依赖反转、解耦实践
  • 不容错过!2026中东【沙特】工程机械展览会,震撼来袭
  • 测试数据生成的AI解决方案
  • PyWebview浅谈
  • HUB扩展:数字世界的隐形枢纽与生态重构者
  • 基于能量分配的光伏混合储能系统仿真模型:MPPT控制光伏最大功率跟踪,电池与超级电容协同工作实...
  • 【WebSocket稳定性提升秘诀】:如何在生产环境中规避7类典型错误
  • 为什么你的协程系统响应迟缓?优先级调度设计缺陷可能是罪魁祸首
  • 构造函数返回对象时的陷阱:为什么 `return {}` 会覆盖 new 操作符的默认行为
  • 宏任务与微任务的边界:为什么在不同浏览器环境下 Promise 的执行时序可能不一致
  • 智能工牌如何帮房企智能盘客,提升销售转化?
  • LP3713CH_5W/SOP7隔离适配器和充电器自供电PSR控制芯片 典型应用电路
  • FT8393MB1(5V/2.4A)12W线式电源控制芯片 典型应用电路
  • [吾爱大神原创工具] Python脚本打包为“EXE”工具(史上最高颜值)
  • 当电机遇上滑移:四轮驱动车能耗与稳定性的双线作战
  • AI视频工具普及,为何内容团队工时反增20%?
  • SQL多表查询实战:7种JOIN详解
  • 变量传递总是出错?掌握这3个核心原理,轻松打通R与Python壁垒
  • jmeter基础使用方法
  • 直接打开MATLAB,先来点刺激的——搞个巴特沃斯低通滤波器。别被名字吓到,其实就是个能让低频信号通过,高频滚犊子的电路模型。看这段
  • 大模型应用开发核心:构建高效准确的提示词指南
  • OpenAI发布GPT-5.2:是王者归来还是强弩之末?
  • HTTPS DDoS 排查 异常流量到抓包分析
  • 12、Docker与Kubernetes使用指南
  • 行为树优化全攻略(性能翻倍的4个秘密武器)
  • 直流电机双闭环调速系统仿真模型:转速外环与电流内环PI参数整定指南,无静差跟踪实现功能介绍
  • 滑膜控制下的差动制动防侧翻稳定系统设计与仿真验证:横摆力矩分配策略及其实车测试分析
  • 模型压缩技术详解:剪枝、量化与知识蒸馏,让你的大模型轻量化部署