这个五层电梯控制系统采用MCGS7.7嵌入式触摸屏作为人机交互界面,搭配三菱FX3U PLC作为控制核心,构成典型的工业自动化双机架构。在实际项目中,这种组合既能满足电梯控制的实时性要求,又能提供友好的操作界面,是中小型电梯改造项目的常见方案。
系统工作原理可分解为三个核心环节:首先,MCGS触摸屏负责接收乘客的楼层呼叫指令,通过RS485通讯将指令传输给PLC;其次,PLC根据当前电梯位置、运行方向和各类安全信号,执行电梯调度算法并输出电机控制信号;最后,MCGS实时显示电梯运行状态和楼层信息,完成人机交互闭环。
关键提示:工业现场最容易被忽视的是电磁兼容性问题。我们的项目初期就因使用非屏蔽通讯线导致信号干扰,表现为楼层显示错乱。更换为带屏蔽层的RS485专用线缆后,通讯稳定性立即提升90%以上。
三菱FX3U-48MR PLC:选择48点继电器输出型,满足5层电梯的输入输出需求。其中:
MCGS TPC7062K触摸屏:7寸嵌入式型号,选择依据包括:
通讯线路施工规范
急停安全回路设计
plaintext复制急停按钮 → 安全继电器 → PLC输入X0
↓
硬线直连变频器使能端
这种双重保护设计确保急停信号即使通讯中断也能立即生效。
采用D100-D104寄存器存储各楼层限位开关状态(1-5楼),通过MOVP指令实现边沿触发:
assembly复制LD X010 // 1楼限位开关
MOVP K1 D100 // 上升沿触发写入
LD X011 // 2楼限位开关
MOVP K1 D101
... // 3-5楼同理
调试发现:若使用普通MOV指令,电梯在楼层临界位置会出现状态抖动。上升沿触发能有效避免这种"鬼畜现象"。
核心控制逻辑采用状态机设计,主要状态包括:
关键判断逻辑示例:
assembly复制CMP D200 K1 // D200存储当前楼层
MPS
AND X001 // 上行请求
OUT Y010 // 电机正转
MRD
AND X002 // 下行请求
OUT Y011 // 电机反转
机械振动滤波:为限位开关添加50ms计时器防抖
assembly复制LD X010
OUT T0 K50
LD T0
MOV K1 D100
滑行距离补偿:
plaintext复制实际停止位置 = 限位触发位置 + (速度×0.2秒)
在程序中预设了不同楼层的补偿值(D150-D154寄存器)
| 参数项 | 必须设置值 | 错误示例 | 后果 |
|---|---|---|---|
| 波特率 | 19200 | 115200 | 数据丢包 |
| 数据位 | 7 | 8 | 通讯失败 |
| 停止位 | 1 | 2 | 响应超时 |
| 校验方式 | 偶校验 | 无校验 | CRC错误 |
| 站号地址 | 整数1 | 1.0 | 无法建立连接 |
lua复制-- 按钮按下处理函数
function btn_press(floor)
if GetData("D"..(100+floor)) == 0 then -- 检查目标楼层状态
SetData(1, "M"..(200+floor)) -- 触发对应内部继电器
SetTimer(floor, 3000, "btn_reset") -- 3秒后自动复位
end
end
-- 按钮复位函数
function btn_reset(floor)
SetData(0, "M"..(200+floor))
end
血泪教训:地址拼接必须用字符串形式。曾尝试直接写M200+floor,MCGS会将其解析为M200变量加上floor数值运算,导致地址错乱。
检查物理层:
验证参数一致性:
监控数据流:
现象:电梯到达3楼时频繁过冲
排查过程:
现象:夜间模式外呼按钮仍有效
原因:未在MCGS脚本中关联模式切换信号
修复方案:
lua复制function night_mode(enable)
for i=1,5 do
SetVisible("btn_out"..i, not enable)
end
end
信号处理黄金法则:
通讯调试三板斧:
安全设计铁律:
这个项目让我深刻体会到,好的电梯控制系统就像优秀的交响乐团——PLC是精准的指挥家,MCGS是灵动的演奏者,而可靠的硬件就是优质的乐器。当程序调试到第17版终于稳定运行时,那种成就感确实让人难忘。建议后来者在类似项目中,务必预留足够的调试时间,因为现场总会出现你意想不到的状况。记住:耐心和茶,是工控工程师最好的调试工具。