最近接手了一个四层电梯控制系统的改造项目,客户要求在原基础上增加外呼信号自动取消功能。这个看似简单的需求,在实际实现过程中却遇到了不少技术难点。项目采用组态王6.53作为上位机监控系统,下位机使用三菱FX3U PLC作为主控制器,通过串口通讯实现数据交互。
核心需求很明确:当乘客在任意楼层按下外呼按钮后,如果电梯在30秒内未能响应,系统需要自动取消该楼层的呼叫信号。这在实际场景中非常实用——避免了因电梯故障或网络延迟导致乘客长时间等待却无人响应的情况。同时,客户还额外要求增加手动取消功能,方便物业管理人员在特殊情况下进行干预。
电梯控制系统采用分布式I/O架构,主要硬件配置如下:
特别需要注意的是,FX2N扩展模块需要通过特殊适配器FX3U-CNV-BD连接到FX3U主单元。在硬件接线时,务必确认输入模块的COM端接24V电源正极(漏型输入配置)。
楼层外呼按钮信号通过X0-X3输入点接入PLC:
轿厢位置检测采用增量式编码器,通过PLC内置的高速计数器C235进行脉冲计数。根据编码器分辨率(600脉冲/转)和曳引机减速比(30:1),计算出每层对应的脉冲数约为1500个脉冲。
核心控制逻辑采用三菱PLC的梯形图编程实现。以下是基础外呼信号处理程序:
assembly复制LD M8000 // 运行监控触点
MOV K4X0 D100 // 将4层外呼输入信号存储到D100
ZRST Y020 Y027 // 复位所有外呼指示灯
// 1层外呼处理
LD X0 // 1层呼叫输入
OR M0 // 自保持触点
ANI T0 // 定时器未超时
OUT Y020 // 驱动1层指示灯
OUT T0 K300 // 启动30秒定时器
// 2层外呼处理
LD X1 // 2层呼叫输入
OR M1 // 自保持触点
ANI T1 // 定时器未超时
OUT Y021 // 驱动2层指示灯
OUT T1 K300 // 启动30秒定时器
这段程序的关键点在于:
注意:三菱FX系列PLC的定时器时基为100ms,因此K300对应30秒。实际调试中发现这个时间偏长,后调整为K150(15秒)更符合实际需求。
根据客户后期要求,增加了手动取消功能:
assembly复制// 手动取消信号处理
LD X10 // 1层取消按钮
RST Y020 // 复位1层指示灯
RST T0 // 复位1层定时器
LD X11 // 2层取消按钮
RST Y021 // 复位2层指示灯
RST T1 // 复位2层定时器
这里使用X10-X13作为手动取消按钮的输入点。需要注意的是,当电梯处于运行状态时,直接取消信号可能导致指示灯闪烁。解决方法是在取消逻辑中加入电梯运行状态判断:
assembly复制LD X10 // 1层取消按钮
AND M8340 // 电梯停止状态
RST Y020 // 安全取消1层呼叫
电梯控制最复杂的部分是运行方向的判断和信号互锁。以下是简化的方向判断逻辑:
assembly复制// 上行判断
LD SM400 // 常ON触点
CMP K1 D200 // 比较当前楼层与目标楼层
OUT M0 // 上行标志位
// 下行判断
LD SM400
CMP D200 K1
OUT M1 // 下行标志位
实际项目中还需要考虑:
组态王与PLC的通讯配置需要注意以下参数:
外呼指示灯变量绑定应采用D100寄存器的位地址:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 外呼指示灯不亮 | 1. 输出模块未供电 2. 寄存器地址错误 3. 输出点损坏 |
1. 检查24V电源 2. 确认D100位地址 3. 更换输出模块 |
| 定时器不工作 | 1. 定时器编号冲突 2. 时基设置错误 |
1. 检查T0-T3使用情况 2. 确认K值计算正确 |
| 通讯中断 | 1. 波特率不匹配 2. 接线松动 3. 干扰严重 |
1. 核对通讯参数 2. 检查RS485接线 3. 增加终端电阻 |
定时器时长调整:原设计30秒在实际使用中偏长,调整为15秒后用户体验更好。这个参数需要根据建筑物人流量具体调整。
信号防抖处理:机械按钮需增加10-20ms的防抖延时,避免误触发。
编码器安装注意事项:
通讯稳定性优化:
这个项目给我的最大启示是:电梯控制系统是机电一体化的典型应用,需要统筹考虑硬件配置、软件逻辑和人机交互。特别是现场调试阶段,不能仅依赖实验室测试数据,必须结合实际运行环境进行参数优化。