第一次遇到OB121编程错误的处理
昨天到一个项目地调试的时候,突然发现S7-300plc报SF故障,于是联机发现报OB121编程故障,如下图:个人感觉很奇怪,因为之前一直运行OK,难道是问题一直有,没人发现?
手机上网查询找答案的相关问题后,联机PLC在线删除了OB121,触发PLC停机,然后找到了故障点,修改地址后重新下载,启动PLC后正常。事故处理后细想,其实距离不让PLC停机就找到故障点只差最后一步了。因为本人通过事件的触发时间,几乎间隔100ms触发一青少年颠病起因次,初步判断应该在OB35,因为是背景DB,也在调用FB块的地方查看有没有什么1576出现过,无奈眼拙没找到。其实只要通过编辑里的查找替换,输入1576,就可以迅速定位到错误地址。
分析报警信息,其实已经说的很明白,只是以前没经历过,不能理解。读取时发生区域长度错误:读取操作,指令的左边。背景DB,双字访问,访问地址:1576:调用FB时背景数据赋值错误,错误地址是DBD1576。为了验证以下的想法,通过仿真做了一榆林哪家医院治疗癫痫有效下试验:1、 能否通过交叉参考定位到错误点。2、 能否在PLC不停机的情况下让PLC正常。3、 如果OB121发生在OB1里,PLC的工作情况怎样?等等结果如下:1、仿真时发现,报警信息可以通过“打开块”直接进入故障点,而PLC的“打开块”是灰色的。唐山市哪个医院可以治羊癫疯2、仿真时的CPU显示正常,实际PLC显示出错。3、交叉参考不能定位DBD1576。4、通过交叉参考查找程序结构,看哪些块调用FB,可在响应的程序块中查找定位。
有成年人癫痫病如何治疗点搞笑,验证到最后,最简单的不让PLC停机,直接查找到故障点,就是通过仿真,修改问题程序后直接下载到PLC中。需要说明,仿真的时候没办法下载程序。好吧,我再一次验证了仿真的重要性~