4四层电梯组态王6.53和三菱fx系列plc联机程序6,带外呼信号取消功能
最近在给客户调试四层电梯控制系统时,用到了组态王6.53和三菱FX3U PLC的联机方案。这个项目有个特别需求:外呼按钮按下后,如果电梯30秒内未响应,需要自动取消该层呼叫信号。折腾了几天终于把整套逻辑跑通,这里把关键代码和实现思路分享给大家。
先说说硬件配置:电梯每层的外呼按钮信号通过漏型输入模块FX2N-16EX接入PLC,轿厢位置信号由旋转编码器经高速计数器处理。组态王这边主要做状态监控和人机交互界面,重点在PLC程序里实现核心控制逻辑。
外呼信号处理的关键代码如下:
LD M8000 MOV K4X0 D100 //将4层外呼输入信号存储到D100 ZRST Y020 Y027 //复位所有外呼指示灯 //1层外呼处理 LD X0 OR M0 ANI T0 OUT Y020 OUT T0 K300 //30秒定时 //2层外呼处理 LD X1 OR M1 ANI T1 OUT Y021 OUT T1 K300 //...类似处理3、4层外呼信号这段程序用到了三菱PLC的ZRST批量复位指令,配合定时器实现呼叫超时自动取消。当某层外呼按钮按下时(X0-X3),对应输出点(Y020-Y023)置位并开始计时。若定时器T0-T3达到设定值300(30秒),相应输出点就会自动断开。
组态王这边需要建立与PLC的变量关联,在画面里用指示灯绑定Y020-Y023寄存器。这里有个坑要注意:组态王的寄存器地址要设为D100的二进制位,比如1层外呼对应D100.0,否则状态显示会错乱。
后来客户临时要求增加手动取消功能,又补充了这段程序:
//手动取消信号 LD X10 //取消1层按钮 RST Y020 LD X11 //取消2层按钮 RST Y021 //...类似处理3、4层取消这里用到了现场操作箱的备用输入点X10-X13,配合RST指令实现强制复位。测试时发现个有趣的现象:如果电梯正在运行中收到取消信号,需要等轿厢停稳后再执行复位,否则会出现信号闪烁的问题。
调试中发现FX3U的定时器是100ms时基,原程序设的K300实际是30秒。但在实际运行中,有工人反映时间太长,最后改成K150(15秒)才通过验收。这个细节说明现场调试不能完全依赖理论计算,必须考虑实际使用场景。
整个项目最难的部分其实是信号互锁逻辑。比如当电梯正在响应3层呼叫时,若2层突然按下外呼按钮,程序要能正确判断运行方向并决定是否"顺路"响应。这部分代码用了大量CMP比较指令和区间判断,有机会下次再单独写篇来讲。
最后提个醒:组态王和三菱PLC的通讯建议用编程口协议,波特率设成19200比较稳定。之前用MX Component驱动时遇到过数据丢包,后来换成直接串口通讯反而更可靠。如果走以太网通讯,记得在PLC参数里设置好IP地址和端口号。