下面一段程序如果最后一条指令前面没有注释符号“//”,在下载后不能成功地切换到运行模式,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:
lmw50
l1
-i
导致最后一条间接寻址指令“tdbd[ar1,p#0.0]”的地址值远远地超出了db1定义的范围(200字节)。
值得注意的是必须用“//”临时将最后一条指令屏蔽,才能对程序进行监控,从而发现问题。