间接寻址错误原因分析

下面一段程序如果最后一条指令前面没有注释符号“//”,在下载后不能成功地切换到运行模式,SF灯亮。

最后一条指令加上注释号(该指令不起作用),运行出错时在CPU模块信息的诊断缓冲区中,有下面的诊断信息:

事件8 / 15:  事件ID 16# 2523

写入时发生区域长度错误

全局DB,双字访问,访问地址:65532

OB 编号:      1

模块地址:    30

所需的OB:编程错误OB (OB121)

在当前工作模式下,OB 未找到、或被禁用、或无法启动

内部错误, 进入的事件

08:55:02.726  2011-11-23

错误的原因是未给MW50赋值,其值为0,下面的减法运算结果为16#FFFF:

L     MW    50
 L     1
 -I    

导致最后一条间接寻址指令“ T    DBD [AR1,P#0.0]”的地址值远远地超出了DB1定义的范围(200字节)。

值得注意的是必须用“//”临时将最后一条指令屏蔽,才能对程序进行监控,从而发现问题。

,

下面一段程序如果最后一条指令前面没有注释符号“//”,在下载后不能成功地切换到运行模式,SF灯亮。

最后一条指令加上注释号(该指令不起作用),运行出错时在CPU模块信息的诊断缓冲区中,有下面的诊断信息:

事件8 / 15:  事件ID 16# 2523

写入时发生区域长度错误

全局DB,双字访问,访问地址:65532

OB 编号:      1

模块地址:    30

所需的OB:编程错误OB (OB121)

在当前工作模式下,OB 未找到、或被禁用、或无法启动

内部错误, 进入的事件

08:55:02.726  2011-11-23

错误的原因是未给MW50赋值,其值为0,下面的减法运算结果为16#FFFF:

L     MW    50
 L     1
 -I    

导致最后一条间接寻址指令“ T    DBD [AR1,P#0.0]”的地址值远远地超出了DB1定义的范围(200字节)。

值得注意的是必须用“//”临时将最后一条指令屏蔽,才能对程序进行监控,从而发现问题。

间接寻址错误原因分析

相关文章:

你感兴趣的文章:

标签云: