看到三菱論壇里有網友發(fā)貼求助<寄存器不能清零,求助 >,大意是數據寄器在使用一段時間后會出現(xiàn)不能清零現(xiàn)象。換地址也不可以。為此將程序上傳請求幫助。
我打開程序查找該數據寄存器地址,第一地址為計數器賦值,采用加一指令,程序指令如下:ANDD< D62 K999999999 / DINCP D660
另一個清零指令 LD T66 MOVP K0 D660 / RST D660
上面的程序來看,是看不出多少問題,后面的RTS指令我估計是樓主沒辦法的情況下加上去,但是就這樣也是不能清零。
我發(fā)現(xiàn)一個問題就是:前面加一信號用了32位,這說明數據很大,應該是大于32767.而后面清零指令只用了16位。也就是說清零只能清除16以下,大于32767的數據將不能清零。
為了證實我的想法。進行模擬仿真。將D660賦值大于32767.為了調方便,做了一點小更改:LDP X0 DMOV K45000 D660 / LD X1 MOVP K0 D660
按上述程序調試并清零,當數據小于32767以下,也就是16位數據位程序能清零,當把45000傳進去以后,程序不能清零,且數據變?yōu)樨撝怠_@就證實我了是論證,于是將清零程序改寫為32位 LD X1 DMOVP K0 D660
再進行清零動作,OK
在程序編寫的時候,一定要注意32位和16位的區(qū)別,當賦值大于32位時,清零同樣也要用32.否則只能清除16位以下數據。










