下面一段程序如果最后一條指令前面沒有注釋符號“//”,在下載后不能成功地切換到運行模式,sf燈亮。
最后一條指令加上注釋號(該指令不起作用),運行出錯時在cpu模塊信息的診斷緩沖區(qū)中,有下面的診斷信息:
事件8 / 15: 事件id 16# 2523
寫入時發(fā)生區(qū)域長度錯誤
全局db,雙字訪問,訪問地址:65532
ob 編號: 1
模塊地址: 30
所需的ob:編程錯誤ob (ob121)
在當前工作模式下,ob 未找到、或被禁用、或無法啟動
內(nèi)部錯誤, 進入的事件
08:55:02.726 2011-11-23
錯誤的原因是未給mw50賦值,其值為0,下面的減法運算結(jié)果為16#ffff:
lmw50
l1
-i
導致最后一條間接尋址指令“tdbd[ar1,p#0.0]”的地址值遠遠地超出了db1定義的范圍(200字節(jié))。
值得注意的是必須用“//”臨時將最后一條指令屏蔽,才能對程序進行監(jiān)控,從而發(fā)現(xiàn)問題。