作者:mouseandrabbit
转瞬即逝,参加工作,投身工控,已有一年零四个月了。离开了学校的优雅环境,进入了隆隆的机器世界;离别了学校的恩师良友,握上了工厂的师傅师兄;工控之路的我们,再慢慢的前行,等待钻进。
毕业之后,就直接进了一家钢企,从事自动化维护再开发。因学习勤奋,技术见长,领导让我排查全线在线PLC。照常的我们师徒二人,依照固定路线开始巡检,得知一设备的400控制PLC因UPS失电重启后,亮起(INTF)红灯时,我们就直奔现场。
确认故障。一番电话联系询问过后,我们着手开始了。硬件配置中。
如图(1)(2)项目在线
我们借助于CPU的模块信息,诊断缓存区,发现了问题的所在。
如图 (3)诊断缓存区
信息如下;
读取时发生区域长度错误
全局 DB,位访问, 访问地址: 2
FC 编号: 19
模块地址: 1050
所需的 OB:编程错误 OB (OB121)
优先等级: 1
内部错误, 进入的事件
未装载 DB
DB 编号: 34
FC 编号: 19
模块地址: 1048
所需的 OB:编程错误 OB (OB121)
优先等级: 1
内部错误, 进入的事件
基本上问题已经锁定了,FC 19,DB34 有问题,进一步。
.png)
如图 (4) 项目Blocks目录
进入项目后竟然没有DB34 数据块的存在,那么缺失的错误没疑问了,但FC19呢

如图 (5) FC 19 ONL
我们发现,在FC19中,FB4 的背景数据块 DB36 的OUT 赋予了 DB34 ,这么明显的错误怎么会出现呢?我们参照FB4 的其他调用 新建了 DB34 赋予了 NET 10 DB34 ,分析复核下载后,问题迎刃而解。
问题分析:UPS 断电PLC 因没有后备电池失电,RAM 存储卡内以及内部RAM 上的数据丢失。现场维护人员将调试半成品下载到PLC 内导致报警。马虎不得啊,事后我们为此400 PLC 上了备用 Battery ,做了备份。成功的排出了故障,也让我们吃一堑长一智,以更加严谨的态度,饱满的热情投身于工作之中。