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


具體情況是


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


        很苦惱,求救。!
fengyueye
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 16 個(gè)
工控威望: 104 點(diǎn)
下載積分: 1956 分
在線時(shí)間: 69(小時(shí))
注冊時(shí)間: 2016-03-16
最后登錄: 2024-09-14
查看fengyueye的 主題 / 回貼
1樓  發(fā)表于: 2016-10-31 08:45
寄存器的的存儲(chǔ)長度是有限的,前4個(gè)對,繼續(xù)累加出錯(cuò),估計(jì)是數(shù)據(jù)溢出了。
chenjun8612
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 89 個(gè)
工控威望: 214 點(diǎn)
下載積分: 663 分
在線時(shí)間: 130(小時(shí))
注冊時(shí)間: 2013-02-27
最后登錄: 2024-10-20
查看chenjun8612的 主題 / 回貼
2樓  發(fā)表于: 2016-11-21 15:24
把值轉(zhuǎn)為浮點(diǎn)再相加
時(shí)時(shí)勤拂拭,莫使惹塵埃!
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網(wǎng)絡(luò)英雄

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

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