quote:以下是引用麻省理工在2013-05-08 16:13:48的发言: S7-300 Alighment error Alignment error when writing Event 1 of 10: Event ID 16# 2529 Alignment error when writing P area, double-word access, Incorrect address: 0 Requested OB: Programming error OB (OB121) Priority class: 1 Internal error, Incoming event 08:27:08.621 AM 04/28/2013 (Coding: 16# 2529 0179 0030 0000 0000 0000)
Check help: Cause: A bit address (bits 0 to 2) was specified for byte, word, or double word access.
To correct or avoid errors: Make sure that the bit address contains access address 0.
CPU的SF灯闪烁,怎样才能让红灯不闪啊?
就着这位朋友的问题,我来讲讲我是如何来通过诊断信息判断故障的原因: 1.首先必须能够将这些英文看懂,也就是先翻译成中文; 2.其次对于每句话要能够明白其提示的意义; 3.根据其提示的意义结合HELP去判断问题点或故障点; 4.找出真正的原因并解决它。 如: S7-300 Alighment error------S7-300 排序错误(你应该知道大概的问题出在软件上,而非硬件错误); Alignment error when writing------当执行写操作时出现排序错误 Event 1 of 10: Event ID 16# 2529----第1个事件(共10个事件),事件ID 16进制的2529(这个是告知诊断信息中事件的基本信息) Alignment error when writing ----当执行写操作时出现排序错误 P area, double-word access, Incorrect address: 0 ----P区域(我理解是过程映像区),双字读取,错误地址:0 Requested OB: Programming error OB (OB121) -----需要的OB:程序错误OB(OB121),如果没有这个OB,CPU会停机; Priority class: 1 -----优先级:1 Internal error, Incoming event -----内部错误,错误存在(说明错误是一直存在的) 08:27:08.621 AM 04/28/2013 ------错误发生的时间 (用于判断错误发生的时间,从而判断是否和生产受到影响的原因有关联) (Coding: 16# 2529 0179 0030 0000 0000 0000) -----错误代码(很少用到)
Check help:(检查帮助) Cause: (原因) A bit address (bits 0 to 2) was specified for byte, word, or double word access.(bit0~2地址已经定义成字节,字或双字)
To correct or avoid errors: (解决或规避错误:) Make sure that the bit address contains access address 0.(确定BIT地址包含地址0) --------------综上所诉,我们知道这是一个因地址定义错误而产生的程序读取地址时出现地址冲突的问题。问题的具体原因在BIT0~2被定义成了字节,字或者双字类型,而程序中的使用此地址排序有冲突。 --------------虽然首次分析未必会很准确到位,但至少我们得到了问题(CPU的SF灯闪烁)出现的原因是跟BIT0~2有关系;那么我们就可以通过交叉参考把与BIT0~2有关的程序段都找出来,然后分析,是哪段程序出了问题,然后修改并测试,最终找到问题的根本原因。