6六层电梯MCGS7.7和三菱FX3U系列PLC联机运行程序3,带io表新,开门延时6秒,COM4口通讯
通讯口设置这块儿,三菱FX3U的编程口自带RS422转成了COM4的RS232。在GX Works2里直接配置通讯参数的时候,记得把D8120寄存器设成H0087(9600波特率/7位数据位/偶校验)。MCGS那边新建三菱FX系列串口设备时,得把站号改成和PLC一致的0号站。
IO表规划挺有意思:
X0-X5 对应1-6层呼叫按钮
X6-XB 楼层平层信号
Y0-Y5 对应轿厢指示灯
Y10-Y17控制门机动作
重点说下开门延时逻辑。程序里用T0定时器实现6秒保持:
LD M10 //开门触发信号 OUT T0 K60 //6秒计时 LD T0 OR M11 //手动关门信号 OUT Y10 //关门动作这段代码里藏着个细节——定时器单位是100ms,所以K60对应6秒。实际调试发现门机到位信号偶尔延迟,后来在MCGS脚本里加了条事件处理:
![截图] 点击开门按钮时强制复位T0
避免上次未完成的计时影响新指令。
MCGS界面组态有个骚操作:直接用modbus地址映射PLC寄存器。比如D100寄存器对应楼层显示,在画面属性里绑定变量时填4x100(注意这里是十进制地址)。后来发现数值显示异常,查手册才知道MCGS对三菱PLC的寄存器地址做了+1处理,实际应该填4x099。
通讯不稳定的时候,拿串口监听工具抓包发现,偶尔出现CRC校验错误。解决方法是在PLC程序开头加了段心跳检测:
LD M8000 //运行常ON MOV K5 D50 //心跳计数器 CMP D50 K0 //检测通讯状态 M50 = ON //通讯异常标志配合MCGS的周期读取D50,数值不变就弹窗报警。
调试时最坑的是平层信号抖动问题。最后在PLC程序里加了数字滤波:
LD X6 //1楼平层信号 ANB T1 K5 //5ms滤波 OUT M0 //有效信号顺便把FX3U内置的输入响应时间调到20ms,世界终于清净了。
这套系统现在跑起来还算稳定,就是开门那6秒总被住户吐槽太慢。后来在触摸屏做了个隐藏参数设置界面,长按楼层键3秒能调延时时间——千万别让物业知道这后门。