ge以路過
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 7 個
工控威望: 97 點
下載積分: 556 分
在線時間: 5(小時)
注冊時間: 2015-10-04
最后登錄: 2019-04-23
查看ge以路過的 主題 / 回貼
樓主  發(fā)表于: 2016-10-29 21:39
在學(xué)習(xí)通訊,要做一個MODBUS ASCII 碼的通訊,但是在算LRC校驗值的時候,用到SUM指令,計算出的結(jié)果卻不對,找不到那里問題,控制字是正確的,


具體情況是


        總共從D10 到D15有六個寄存器的值要加,結(jié)果總是不對,我就把控制字改為兩個相加,在改為三個相加,再改為四個相加,結(jié)果都正確,就是改為五個相加,結(jié)果就開始出錯,不知道那里問題。(開機A200.11初始化bset   D0 到D30的值為0,D10到D15的值是運行過程中我MOV進(jìn)的常數(shù)值)


        很苦惱,求救。。
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網(wǎng)絡(luò)英雄

精華主題: 1 篇
發(fā)帖數(shù)量: 3437 個
工控威望: 20973 點
下載積分: 25427 分
在線時間: 1745(小時)
注冊時間: 2010-01-03
最后登錄: 2024-09-22
查看tkggtdkjpl的 主題 / 回貼
1樓  發(fā)表于: 2016-11-21 15:53
16位存儲器最大值是65535,帶符號是是32767 這是常識
自動化單機,生產(chǎn)線,項目編程調(diào)試!
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網(wǎng)絡(luò)英雄

精華主題: 1 篇
發(fā)帖數(shù)量: 3437 個
工控威望: 20973 點
下載積分: 25427 分
在線時間: 1745(小時)
注冊時間: 2010-01-03
最后登錄: 2024-09-22
查看tkggtdkjpl的 主題 / 回貼
2樓  發(fā)表于: 2016-11-21 15:55
數(shù)據(jù)溢出了,
另外SUM一般是用來做通迅的命令校驗用的,你如果是要做運算的話先把16位傳到32位存儲器,再用運算的指令+  +L
自動化單機,生產(chǎn)線,項目編程調(diào)試!