在工控现场,工程师常遇到一个诡异的故障:从三菱PLC(如FX3U、FX5U)上传程序后,设备运行逻辑与预期完全不符,甚至直接停机。很多人第一反应是程序丢了,但实际上,这往往源于对三菱PLC程序存储机制(RAM与ROM)以及‘在线修改’功能的误解。
三菱PLC的程序默认运行在RAM中,而断电保持则依赖内置的Flash ROM(即标准ROM)。当工程师使用GX Works2/3进行‘在线修改’(即不停止PLC的写入)时,修改内容通常只写入了RAM。此时若直接断电或通过‘从PLC上传’操作,上传的往往是RAM中的最新程序。然而,部分型号或特定设置下,CPU会在重启时优先从ROM加载程序,导致RAM中的临时修改被覆盖,从而出现‘上传程序与实际运行逻辑不符’的怪象。
更隐蔽的陷阱在于‘程序存储器初始化’设置。例如在FX5U中,如果勾选了‘将程序写入内置Flash存储器’,则在线修改会同步写入ROM;但若未勾选,修改仅在RAM生效。实战中,我曾处理过一条产线:维护人员在触摸屏上修改了某个配方参数(实际上触发了PLC内部的数据寄存器改写),但未通过‘远程RUN/STOP’正确保存。次日开机后,所有参数回滚,造成批量报废。排查时发现,问题根源是PLC的‘软元件注释’被存储在注释区(ROM),而运行数据在RAM,两者同步机制因一个‘锁定’位未置位而失效。
因此,建议工程师在交付或维护三菱PLC项目时,养成以下习惯:第一,任何在线修改后,务必执行‘PLC写入’到ROM(或勾选自动写入);第二,定期使用‘比较’功能,对比RAM与ROM的程序差异,避免‘幽灵程序’存在;第三,对于关键设备,在PLC程序中加入上电自检逻辑,校验关键数据块(如D区)的校验和,不匹配则报警并禁止自动运行,而不是默默启动。