下面一段程序如果最后一條指令前面沒有注釋符號“//”,在下載后不能成功地切換到運(yùn)行模式,SF燈亮。
最后一條指令加上注釋號(該指令不起作用),運(yùn)行出錯(cuò)時(shí)在CPU模塊信息的診斷緩沖區(qū)中,有下面的診斷信息:
事件8 / 15: 事件ID 16# 2523
寫入時(shí)發(fā)生區(qū)域長度錯(cuò)誤
全局DB,雙字訪問,訪問地址:65532
OB 編號: 1
模塊地址: 30
所需的OB:編程錯(cuò)誤OB (OB121)
在當(dāng)前工作模式下,OB 未找到、或被禁用、或無法啟動(dòng)
內(nèi)部錯(cuò)誤, 進(jìn)入的事件
08:55:02.726 2011-11-23
錯(cuò)誤的原因是未給MW50賦值,其值為0,下面的減法運(yùn)算結(jié)果為16#FFFF:
L MW 50
L 1
-I
導(dǎo)致最后一條間接尋址指令“ T DBD [AR1,P#0.0]”的地址值遠(yuǎn)遠(yuǎn)地超出了DB1定義的范圍(200字節(jié))。
值得注意的是必須用“//”臨時(shí)將最后一條指令屏蔽,才能對程序進(jìn)行監(jiān)控,從而發(fā)現(xiàn)問題。